Skip to content

Commit

Permalink
irqchip: Revert modular support for drivers using IRQCHIP_PLATFORM_DR…
Browse files Browse the repository at this point in the history
…IVER helperse

It has become obvious that switching a number of irqchip drivers
to being platform drivers without considering the platform was a
mistake. We have multiple reports of end-point drivers not
probing because the irqchip driver isn't there yet, breaking
the expectations of the users.

This patch reverts:

920ecb8 ("irqchip/mtk-cirq: Convert to a platform driver")
f97dbf4 ("irqchip/mtk-sysirq: Convert to a platform driver")
5be5709 ("irqchip/qcom-pdc: Switch to using IRQCHIP_PLATFORM_DRIVER helper macros")
95bf930 ("irqchip/qcom-pdc: Allow QCOM_PDC to be loadable as a permanent module")

and leave QCOM PDC, MTK sysrq and cirq drivers as built-in, special purpose
drivers for the time being until we have worked out a better solution.

Reported-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Reported-by: Frank Wunderlich <linux@fw-web.de>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/93debe6a0308b66d3f307af67ba7ec2c@kernel.org
  • Loading branch information
Marc Zyngier committed Aug 25, 2020
1 parent 7828a3e commit a150dac
Showing 4 changed files with 4 additions and 14 deletions.
2 changes: 1 addition & 1 deletion drivers/irqchip/Kconfig
Original file line number Diff line number Diff line change
@@ -425,7 +425,7 @@ config GOLDFISH_PIC
for Goldfish based virtual platforms.

config QCOM_PDC
tristate "QCOM PDC"
bool "QCOM PDC"
depends on ARCH_QCOM
select IRQ_DOMAIN_HIERARCHY
help
4 changes: 1 addition & 3 deletions drivers/irqchip/irq-mtk-cirq.c
Original file line number Diff line number Diff line change
@@ -295,6 +295,4 @@ static int __init mtk_cirq_of_init(struct device_node *node,
return ret;
}

IRQCHIP_PLATFORM_DRIVER_BEGIN(mtk_cirq)
IRQCHIP_MATCH("mediatek,mtk-cirq", mtk_cirq_of_init)
IRQCHIP_PLATFORM_DRIVER_END(mtk_cirq)
IRQCHIP_DECLARE(mtk_cirq, "mediatek,mtk-cirq", mtk_cirq_of_init);
4 changes: 1 addition & 3 deletions drivers/irqchip/irq-mtk-sysirq.c
Original file line number Diff line number Diff line change
@@ -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);
8 changes: 1 addition & 7 deletions drivers/irqchip/qcom-pdc.c
Original file line number Diff line number Diff line change
@@ -11,11 +11,9 @@
#include <linux/irqdomain.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
#include <linux/of_irq.h>
#include <linux/soc/qcom/irq.h>
#include <linux/spinlock.h>
#include <linux/slab.h>
@@ -432,8 +430,4 @@ static int qcom_pdc_init(struct device_node *node, struct device_node *parent)
return ret;
}

IRQCHIP_PLATFORM_DRIVER_BEGIN(qcom_pdc)
IRQCHIP_MATCH("qcom,pdc", qcom_pdc_init)
IRQCHIP_PLATFORM_DRIVER_END(qcom_pdc)
MODULE_DESCRIPTION("Qualcomm Technologies, Inc. Power Domain Controller");
MODULE_LICENSE("GPL v2");
IRQCHIP_DECLARE(qcom_pdc, "qcom,pdc", qcom_pdc_init);

0 comments on commit a150dac

Please sign in to comment.