From 97736d47febf13174f1be038d49e26d64adeca65 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Aug 2022 12:24:22 +0100 Subject: [PATCH] bcm2708-dmaengine: Use platform_get_irq The platform driver framework no longer creates IRQ resources for platform devices because they are expected to use platform_get_irq. This causes the bcm2808_fb acceleration to fail. Fix the problem by calling platform_get_irq as intended. See: https://github.com/raspberrypi/linux/issues/5131 Signed-off-by: Phil Elwell --- drivers/dma/bcm2708-dmaengine.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/dma/bcm2708-dmaengine.c b/drivers/dma/bcm2708-dmaengine.c index 075da9aadf6d6a..a9a7f92584c8cc 100644 --- a/drivers/dma/bcm2708-dmaengine.c +++ b/drivers/dma/bcm2708-dmaengine.c @@ -199,8 +199,8 @@ extern int bcm_dma_chan_alloc(unsigned required_feature_set, { struct vc_dmaman *dmaman = g_dmaman; struct platform_device *pdev = to_platform_device(dmaman_dev); - struct resource *r; int chan; + int irq; if (!dmaman_dev) return -ENODEV; @@ -210,8 +210,8 @@ extern int bcm_dma_chan_alloc(unsigned required_feature_set, if (chan < 0) goto out; - r = platform_get_resource(pdev, IORESOURCE_IRQ, (unsigned int)chan); - if (!r) { + irq = platform_get_irq(pdev, (unsigned int)chan); + if (irq < 0) { dev_err(dmaman_dev, "failed to get irq for DMA channel %d\n", chan); vc_dmaman_chan_free(dmaman, chan); @@ -220,7 +220,7 @@ extern int bcm_dma_chan_alloc(unsigned required_feature_set, } *out_dma_base = BCM2708_DMA_CHANIO(dmaman->dma_base, chan); - *out_dma_irq = r->start; + *out_dma_irq = irq; dev_dbg(dmaman_dev, "Legacy API allocated channel=%d, base=%p, irq=%i\n", chan, *out_dma_base, *out_dma_irq);