[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20200819161907.1155110-1-enric.balletbo@collabora.com>
Date: Wed, 19 Aug 2020 18:19:07 +0200
From: Enric Balletbo i Serra <enric.balletbo@...labora.com>
To: linux-kernel@...r.kernel.org
Cc: Collabora Kernel ML <kernel@...labora.com>,
Frank Wunderlich <linux@...web.de>, matthias.bgg@...il.com,
drinkcat@...omium.org, hsinyi@...omium.org,
Saravana Kannan <saravanak@...gle.com>,
Marc Zyngier <maz@...nel.org>,
Hanks Chen <hanks.chen@...iatek.com>,
Jason Cooper <jason@...edaemon.net>,
Thomas Gleixner <tglx@...utronix.de>,
linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org
Subject: [PATCH] Revert "irqchip/mtk-sysirq: Convert to a platform driver"
This reverts commit f97dbf48ca43009e8b8bcdf07f47fc9f06149b36.
Although converting to a platform driver sounds good, doing this for the
MediaTek devices has a side effect, the probe of the driver is delayed
and the interrupt controller is not available for other drivers when
they probe. For MT8173 that means that the `systimer` and `mtk_cmdq`
drivers will fail to probe with the following errors:
[ 0.000197] Failed to map interrupt for /soc/timer@...08000
[ 0.000209] Failed to initialize '/soc/timer@...08000': -22
[ 0.067386] mtk_cmdq 10212000.mailbox: failed to register ISR (-22)
For MT8183, apart from the above errors, you will get the `pinctrl`
driver without the EINT support, because the `pinctrl` is probed before
the interrupt controller, for what is worth, then it doesn't booting
properly.
[ 0.062309] mt8183-pinctrl 10005000.pinctrl: Failed to add EINT, but pinctrl still can work
While deferring these drivers until the irqchip is available could be an
option, at this point, seems reasonable to revert this commit for now until
all these drivers are properly handling/deferring when the irqchip is not
available.
Cc: Saravana Kannan <saravanak@...gle.com>
Cc: Marc Zyngier <maz@...nel.org>
Cc: Hanks Chen <hanks.chen@...iatek.com>
Fixes: f97dbf48ca43 ("irqchip/mtk-sysirq: Convert to a platform driver")
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@...labora.com>
---
drivers/irqchip/irq-mtk-sysirq.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/irqchip/irq-mtk-sysirq.c b/drivers/irqchip/irq-mtk-sysirq.c
index 7299c5ab4d10..6ff98b87e5c0 100644
--- a/drivers/irqchip/irq-mtk-sysirq.c
+++ b/drivers/irqchip/irq-mtk-sysirq.c
@@ -231,6 +231,4 @@ static int __init mtk_sysirq_of_init(struct device_node *node,
kfree(chip_data);
return ret;
}
-IRQCHIP_PLATFORM_DRIVER_BEGIN(mtk_sysirq)
-IRQCHIP_MATCH("mediatek,mt6577-sysirq", mtk_sysirq_of_init)
-IRQCHIP_PLATFORM_DRIVER_END(mtk_sysirq)
+IRQCHIP_DECLARE(mtk_sysirq, "mediatek,mt6577-sysirq", mtk_sysirq_of_init);
--
2.28.0
Powered by blists - more mailing lists