Messages in this thread Patch in this message | | | From | Enric Balletbo i Serra <> | Subject | [PATCH] Revert "irqchip/mtk-sysirq: Convert to a platform driver" | Date | Wed, 19 Aug 2020 18:19:07 +0200 |
| |
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@10008000 [ 0.000209] Failed to initialize '/soc/timer@10008000': -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@google.com> Cc: Marc Zyngier <maz@kernel.org> Cc: Hanks Chen <hanks.chen@mediatek.com> Fixes: f97dbf48ca43 ("irqchip/mtk-sysirq: Convert to a platform driver") Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.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
| |