irqchip: Revert modular support for drivers using IRQCHIP_PLATFORM_DRIVER 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:920ecb8c35
("irqchip/mtk-cirq: Convert to a platform driver")f97dbf48ca
("irqchip/mtk-sysirq: Convert to a platform driver")5be57099d4
("irqchip/qcom-pdc: Switch to using IRQCHIP_PLATFORM_DRIVER helper macros")95bf9305d2
("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
This commit is contained in:
Родитель
7828a3ef86
Коммит
a150dac5a8
|
@ -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
|
||||
|
|
|
@ -295,6 +295,4 @@ out_free:
|
|||
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);
|
||||
|
|
|
@ -231,6 +231,4 @@ out_free_chip:
|
|||
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);
|
||||
|
|
|
@ -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 @@ fail:
|
|||
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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче