Skip to content

Commit b342c1f

Browse files
prabhakarladdaeinki
authored andcommitted
drm/exynos/exynos_drm_fimd: Use platform_get_irq_byname() to get the interrupt
platform_get_resource_byname(pdev, IORESOURCE_IRQ, ..) relies on static allocation of IRQ resources in DT core code, this causes an issue when using hierarchical interrupt domains using "interrupts" property in the node as this bypassed the hierarchical setup and messed up the irq chaining. In preparation for removal of static setup of IRQ resource from DT core code use platform_get_irq_byname(). Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
1 parent be52abd commit b342c1f

1 file changed

Lines changed: 4 additions & 9 deletions

File tree

drivers/gpu/drm/exynos/exynos_drm_fimd.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,7 +1133,6 @@ static int fimd_probe(struct platform_device *pdev)
11331133
struct device *dev = &pdev->dev;
11341134
struct fimd_context *ctx;
11351135
struct device_node *i80_if_timings;
1136-
struct resource *res;
11371136
int ret;
11381137

11391138
if (!dev->of_node)
@@ -1206,15 +1205,11 @@ static int fimd_probe(struct platform_device *pdev)
12061205
if (IS_ERR(ctx->regs))
12071206
return PTR_ERR(ctx->regs);
12081207

1209-
res = platform_get_resource_byname(pdev, IORESOURCE_IRQ,
1210-
ctx->i80_if ? "lcd_sys" : "vsync");
1211-
if (!res) {
1212-
dev_err(dev, "irq request failed.\n");
1213-
return -ENXIO;
1214-
}
1208+
ret = platform_get_irq_byname(pdev, ctx->i80_if ? "lcd_sys" : "vsync");
1209+
if (ret < 0)
1210+
return ret;
12151211

1216-
ret = devm_request_irq(dev, res->start, fimd_irq_handler,
1217-
0, "drm_fimd", ctx);
1212+
ret = devm_request_irq(dev, ret, fimd_irq_handler, 0, "drm_fimd", ctx);
12181213
if (ret) {
12191214
dev_err(dev, "irq request failed.\n");
12201215
return ret;

0 commit comments

Comments
 (0)