FSD CSI IP has only one IRQ line, shared between imx-mipi-csis and fsd-csi-media drivers. To extend this driver for FSD SoC support, move the IRQ flag and IRQ handler to the device data(structure mipi_csis_info). Signed-off-by: Inbaraj E <inbaraj.e@xxxxxxxxxxx> --- drivers/media/platform/nxp/imx-mipi-csis.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/nxp/imx-mipi-csis.c b/drivers/media/platform/nxp/imx-mipi-csis.c index 4afa75734f05..a3e2c8ae332f 100644 --- a/drivers/media/platform/nxp/imx-mipi-csis.c +++ b/drivers/media/platform/nxp/imx-mipi-csis.c @@ -285,6 +285,8 @@ struct mipi_csis_info { enum mipi_csis_version version; unsigned int num_clocks; const char *clk_names[MIPI_CSIS_MAX_CLOCKS]; + unsigned int irq_flag; + irq_handler_t irq_handler; }; struct mipi_csis_device { @@ -1462,7 +1464,7 @@ static int mipi_csis_probe(struct platform_device *pdev) mipi_csis_phy_reset(csis); /* Now that the hardware is initialized, request the interrupt. */ - ret = devm_request_irq(dev, irq, mipi_csis_irq_handler, 0, + ret = devm_request_irq(dev, irq, csis->info->irq_handler, csis->info->irq_flag, dev_name(dev), csis); if (ret) { dev_err(dev, "Interrupt request failed\n"); @@ -1536,6 +1538,8 @@ static const struct of_device_id mipi_csis_of_match[] = { .version = MIPI_CSIS_V3_3, .num_clocks = 3, .clk_names = {"pclk", "wrap", "phy"}, + .irq_flag = 0, + .irq_handler = mipi_csis_irq_handler, }, }, { .compatible = "fsl,imx8mm-mipi-csi2", @@ -1543,6 +1547,8 @@ static const struct of_device_id mipi_csis_of_match[] = { .version = MIPI_CSIS_V3_6_3, .num_clocks = 4, .clk_names = {"pclk", "wrap", "phy", "axi"}, + .irq_flag = 0, + .irq_handler = mipi_csis_irq_handler, }, }, { /* sentinel */ }, -- 2.49.0