* [PATCH 1/1] irqchip: Add config MTK_SYSIRQ and MTK_CIRQ @ 2020-06-18 12:31 Hanks Chen 2020-06-18 12:41 ` Marc Zyngier 0 siblings, 1 reply; 6+ messages in thread From: Hanks Chen @ 2020-06-18 12:31 UTC (permalink / raw) To: Thomas Gleixner, Jason Cooper, Marc Zyngier, Matthias Brugger Cc: linux-arm-kernel, linux-mediatek, linux-kernel, wsd_upstream, CC Hwang, Loda Chou, Hanks Chen Mediatek sysirq and cirq drivers as-is were bound together to the config of ARCH_MEDIATEK. These two drivers should be able to be configured separately. For example, on new Mediatek mobile chips such as Dimensity 820, the sysirq driver is not used since the hardware module is removed. Add two new configs to sysirq and cirq drivers. - config MTK_SYSIRQ for the interrupt polarity controller driver: sysirq - config MTK_CIRQ for the low-power interrupt driver: cirq Signed-off-by: cc.hwang <cc.hwang@mediatek.com> Signed-off-by: Hanks Chen <hanks.chen@mediatek.com> --- drivers/irqchip/Kconfig | 12 ++++++++++++ drivers/irqchip/Makefile | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig index 29fead2..cc9aa18 100644 --- a/drivers/irqchip/Kconfig +++ b/drivers/irqchip/Kconfig @@ -572,4 +572,16 @@ config LOONGSON_PCH_MSI help Support for the Loongson PCH MSI Controller. +config MTK_SYSIRQ + tristate "Mediatek interrupt polarity controller" + help + Interrupt polarity controller driver to swap polarity for + interrupts for Mediatek mobile chips. + +config MTK_CIRQ + bool "Mediatek low-power interrupt controller" + help + Low-power interrupt controller driver to monitor IRQS + in the sleep mode for Mediatek mobile chips. + endmenu diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile index 133f9c4..30421d2 100644 --- a/drivers/irqchip/Makefile +++ b/drivers/irqchip/Makefile @@ -69,7 +69,8 @@ obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o obj-$(CONFIG_BRCMSTB_L2_IRQ) += irq-brcmstb-l2.o obj-$(CONFIG_KEYSTONE_IRQ) += irq-keystone.o obj-$(CONFIG_MIPS_GIC) += irq-mips-gic.o -obj-$(CONFIG_ARCH_MEDIATEK) += irq-mtk-sysirq.o irq-mtk-cirq.o +obj-$(CONFIG_MTK_SYSIRQ) += irq-mtk-sysirq.o +obj-$(CONFIG_MTK_CIRQ) += irq-mtk-cirq.o obj-$(CONFIG_ARCH_DIGICOLOR) += irq-digicolor.o obj-$(CONFIG_RENESAS_H8300H_INTC) += irq-renesas-h8300h.o obj-$(CONFIG_RENESAS_H8S_INTC) += irq-renesas-h8s.o -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] irqchip: Add config MTK_SYSIRQ and MTK_CIRQ 2020-06-18 12:31 [PATCH 1/1] irqchip: Add config MTK_SYSIRQ and MTK_CIRQ Hanks Chen @ 2020-06-18 12:41 ` Marc Zyngier 2020-06-18 14:22 ` Hanks Chen 0 siblings, 1 reply; 6+ messages in thread From: Marc Zyngier @ 2020-06-18 12:41 UTC (permalink / raw) To: Hanks Chen Cc: Thomas Gleixner, Jason Cooper, Matthias Brugger, linux-arm-kernel, linux-mediatek, linux-kernel, wsd_upstream, CC Hwang, Loda Chou On 2020-06-18 13:31, Hanks Chen wrote: > Mediatek sysirq and cirq drivers as-is were bound together to the > config > of ARCH_MEDIATEK. These two drivers should be able to be configured > separately. For example, on new Mediatek mobile chips such as > Dimensity > 820, the sysirq driver is not used since the hardware module is > removed. > > Add two new configs to sysirq and cirq drivers. > - config MTK_SYSIRQ for the interrupt polarity controller driver: > sysirq > - config MTK_CIRQ for the low-power interrupt driver: cirq > > Signed-off-by: cc.hwang <cc.hwang@mediatek.com> > Signed-off-by: Hanks Chen <hanks.chen@mediatek.com> > --- > drivers/irqchip/Kconfig | 12 ++++++++++++ > drivers/irqchip/Makefile | 3 ++- > 2 files changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig > index 29fead2..cc9aa18 100644 > --- a/drivers/irqchip/Kconfig > +++ b/drivers/irqchip/Kconfig > @@ -572,4 +572,16 @@ config LOONGSON_PCH_MSI > help > Support for the Loongson PCH MSI Controller. > > +config MTK_SYSIRQ > + tristate "Mediatek interrupt polarity controller" How do you expect this to work as a module? > + help > + Interrupt polarity controller driver to swap polarity for > + interrupts for Mediatek mobile chips. > + > +config MTK_CIRQ > + bool "Mediatek low-power interrupt controller" > + help > + Low-power interrupt controller driver to monitor IRQS > + in the sleep mode for Mediatek mobile chips. > + > endmenu > diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile > index 133f9c4..30421d2 100644 > --- a/drivers/irqchip/Makefile > +++ b/drivers/irqchip/Makefile > @@ -69,7 +69,8 @@ obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o > obj-$(CONFIG_BRCMSTB_L2_IRQ) += irq-brcmstb-l2.o > obj-$(CONFIG_KEYSTONE_IRQ) += irq-keystone.o > obj-$(CONFIG_MIPS_GIC) += irq-mips-gic.o > -obj-$(CONFIG_ARCH_MEDIATEK) += irq-mtk-sysirq.o irq-mtk-cirq.o > +obj-$(CONFIG_MTK_SYSIRQ) += irq-mtk-sysirq.o > +obj-$(CONFIG_MTK_CIRQ) += irq-mtk-cirq.o > obj-$(CONFIG_ARCH_DIGICOLOR) += irq-digicolor.o > obj-$(CONFIG_RENESAS_H8300H_INTC) += irq-renesas-h8300h.o > obj-$(CONFIG_RENESAS_H8S_INTC) += irq-renesas-h8s.o In general, this approach doesn't look right. As it stands, this is just breaking existing configurations Do you really expect users to know exactly which interrupt controllers their system is going to use? This seems like the wrong assumption. If you really want to save the handful of bytes these drivers take in your image, then add the relevant dependency information in Kconfig. M. -- Jazz is not dead. It just smells funny... ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] irqchip: Add config MTK_SYSIRQ and MTK_CIRQ 2020-06-18 12:41 ` Marc Zyngier @ 2020-06-18 14:22 ` Hanks Chen 2020-06-23 6:36 ` Hanks Chen 0 siblings, 1 reply; 6+ messages in thread From: Hanks Chen @ 2020-06-18 14:22 UTC (permalink / raw) To: Marc Zyngier Cc: Thomas Gleixner, Jason Cooper, Matthias Brugger, linux-arm-kernel, linux-mediatek, linux-kernel, wsd_upstream, CC Hwang, Loda Chou On Thu, 2020-06-18 at 13:41 +0100, Marc Zyngier wrote: > On 2020-06-18 13:31, Hanks Chen wrote: > > Mediatek sysirq and cirq drivers as-is were bound together to the > > config > > of ARCH_MEDIATEK. These two drivers should be able to be configured > > separately. For example, on new Mediatek mobile chips such as > > Dimensity > > 820, the sysirq driver is not used since the hardware module is > > removed. > > > > Add two new configs to sysirq and cirq drivers. > > - config MTK_SYSIRQ for the interrupt polarity controller driver: > > sysirq > > - config MTK_CIRQ for the low-power interrupt driver: cirq > > > > Signed-off-by: cc.hwang <cc.hwang@mediatek.com> > > Signed-off-by: Hanks Chen <hanks.chen@mediatek.com> > > --- > > drivers/irqchip/Kconfig | 12 ++++++++++++ > > drivers/irqchip/Makefile | 3 ++- > > 2 files changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig > > index 29fead2..cc9aa18 100644 > > --- a/drivers/irqchip/Kconfig > > +++ b/drivers/irqchip/Kconfig > > @@ -572,4 +572,16 @@ config LOONGSON_PCH_MSI > > help > > Support for the Loongson PCH MSI Controller. > > > > +config MTK_SYSIRQ > > + tristate "Mediatek interrupt polarity controller" > > How do you expect this to work as a module? My fault, I missed some patches.I'll add them in next patches. These should be three patches: 1. break existing configurations and create new config for them 2. Change Kconfig to be loadable as a module and ensure all platforms are executable. 3. Make the irq-mtk-sysirq driver as a loadable kernel module for GKI and flexibility. . Thank you for your comment > > > + help > > + Interrupt polarity controller driver to swap polarity for > > + interrupts for Mediatek mobile chips. > > + > > +config MTK_CIRQ > > + bool "Mediatek low-power interrupt controller" > > + help > > + Low-power interrupt controller driver to monitor IRQS > > + in the sleep mode for Mediatek mobile chips. > > + > > endmenu > > diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile > > index 133f9c4..30421d2 100644 > > --- a/drivers/irqchip/Makefile > > +++ b/drivers/irqchip/Makefile > > @@ -69,7 +69,8 @@ obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o > > obj-$(CONFIG_BRCMSTB_L2_IRQ) += irq-brcmstb-l2.o > > obj-$(CONFIG_KEYSTONE_IRQ) += irq-keystone.o > > obj-$(CONFIG_MIPS_GIC) += irq-mips-gic.o > > -obj-$(CONFIG_ARCH_MEDIATEK) += irq-mtk-sysirq.o irq-mtk-cirq.o > > +obj-$(CONFIG_MTK_SYSIRQ) += irq-mtk-sysirq.o > > +obj-$(CONFIG_MTK_CIRQ) += irq-mtk-cirq.o > > obj-$(CONFIG_ARCH_DIGICOLOR) += irq-digicolor.o > > obj-$(CONFIG_RENESAS_H8300H_INTC) += irq-renesas-h8300h.o > > obj-$(CONFIG_RENESAS_H8S_INTC) += irq-renesas-h8s.o > > In general, this approach doesn't look right. As it stands, this is just > breaking existing configurations > > Do you really expect users to know exactly which interrupt controllers > their system is going to use? This seems like the wrong assumption. If > you really want to save the handful of bytes these drivers take in your > image, then add the relevant dependency information in Kconfig. > 1. This patch will add a dependency on it in Kconfig, which ensures all platforms are executable. 2. We want to follow the Android GKI and according to the requirement of GKI(General Kernel Image), all SoC and Board Peripheral drivers are loadable kernel modules.so I need to breaking existing configurations and create new config for them. Thank you for your comment > M. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] irqchip: Add config MTK_SYSIRQ and MTK_CIRQ 2020-06-18 14:22 ` Hanks Chen @ 2020-06-23 6:36 ` Hanks Chen 2020-06-23 8:37 ` Marc Zyngier 0 siblings, 1 reply; 6+ messages in thread From: Hanks Chen @ 2020-06-23 6:36 UTC (permalink / raw) To: Marc Zyngier Cc: CC Hwang, Jason Cooper, wsd_upstream, Loda Chou, linux-kernel, linux-mediatek, Matthias Brugger, Thomas Gleixner, linux-arm-kernel On Thu, 2020-06-18 at 22:22 +0800, Hanks Chen wrote: > On Thu, 2020-06-18 at 13:41 +0100, Marc Zyngier wrote: > > On 2020-06-18 13:31, Hanks Chen wrote: > > > Mediatek sysirq and cirq drivers as-is were bound together to the > > > config > > > of ARCH_MEDIATEK. These two drivers should be able to be configured > > > separately. For example, on new Mediatek mobile chips such as > > > Dimensity > > > 820, the sysirq driver is not used since the hardware module is > > > removed. > > > > > > Add two new configs to sysirq and cirq drivers. > > > - config MTK_SYSIRQ for the interrupt polarity controller driver: > > > sysirq > > > - config MTK_CIRQ for the low-power interrupt driver: cirq > > > > > > Signed-off-by: cc.hwang <cc.hwang@mediatek.com> > > > Signed-off-by: Hanks Chen <hanks.chen@mediatek.com> > > > --- > > > drivers/irqchip/Kconfig | 12 ++++++++++++ > > > drivers/irqchip/Makefile | 3 ++- > > > 2 files changed, 14 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig > > > index 29fead2..cc9aa18 100644 > > > --- a/drivers/irqchip/Kconfig > > > +++ b/drivers/irqchip/Kconfig > > > @@ -572,4 +572,16 @@ config LOONGSON_PCH_MSI > > > help > > > Support for the Loongson PCH MSI Controller. > > > > > > +config MTK_SYSIRQ > > > + tristate "Mediatek interrupt polarity controller" > > > > How do you expect this to work as a module? > > My fault, I missed some patches.I'll add them in next patches. > > These should be three patches: > 1. break existing configurations and create new config for them > 2. Change Kconfig to be loadable as a module and ensure all platforms > are executable. > 3. Make the irq-mtk-sysirq driver as a loadable kernel module for GKI > and flexibility. > . > Thank you for your comment > > > > > > + help > > > + Interrupt polarity controller driver to swap polarity for > > > + interrupts for Mediatek mobile chips. > > > + > > > +config MTK_CIRQ > > > + bool "Mediatek low-power interrupt controller" > > > + help > > > + Low-power interrupt controller driver to monitor IRQS > > > + in the sleep mode for Mediatek mobile chips. > > > + > > > endmenu > > > diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile > > > index 133f9c4..30421d2 100644 > > > --- a/drivers/irqchip/Makefile > > > +++ b/drivers/irqchip/Makefile > > > @@ -69,7 +69,8 @@ obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o > > > obj-$(CONFIG_BRCMSTB_L2_IRQ) += irq-brcmstb-l2.o > > > obj-$(CONFIG_KEYSTONE_IRQ) += irq-keystone.o > > > obj-$(CONFIG_MIPS_GIC) += irq-mips-gic.o > > > -obj-$(CONFIG_ARCH_MEDIATEK) += irq-mtk-sysirq.o irq-mtk-cirq.o > > > +obj-$(CONFIG_MTK_SYSIRQ) += irq-mtk-sysirq.o > > > +obj-$(CONFIG_MTK_CIRQ) += irq-mtk-cirq.o > > > obj-$(CONFIG_ARCH_DIGICOLOR) += irq-digicolor.o > > > obj-$(CONFIG_RENESAS_H8300H_INTC) += irq-renesas-h8300h.o > > > obj-$(CONFIG_RENESAS_H8S_INTC) += irq-renesas-h8s.o > > > > In general, this approach doesn't look right. As it stands, this is just > > breaking existing configurations > > > > Do you really expect users to know exactly which interrupt controllers > > their system is going to use? This seems like the wrong assumption. If > > you really want to save the handful of bytes these drivers take in your > > image, then add the relevant dependency information in Kconfig. > > > > 1. This patch will add a dependency on it in Kconfig, which ensures all > platforms are executable. > 2. We want to follow the Android GKI and according to the requirement of > GKI(General Kernel Image), all SoC and Board Peripheral drivers are > loadable kernel modules.so I need to breaking existing configurations > and create new config for them. > Thank you for your comment Hi Marc, I want to break the dependency between ARCH_MEDIATEK and CIRQ/SYSIRQ, because we need to follow the GKI. Could I add the MTK_CIRQ and MTK_SYSIRQ into defconfig? (arch/arm64/config/defconfig) It would ensures all platform are executable. e.g. --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig CONFIG_QCOM_PDC=y +CONFIG_MTK_SYSIRQ=m +CONFIG_MTK_CIRQ=y CONFIG_RESET_QCOM_AOSS=y --- a/drivers/irqchip/Kconfig +++ b/drivers/irqchip/Kconfig @@ -572,4 +572,18 @@ config LOONGSON_PCH_MSI help Support for the Loongson PCH MSI Controller. +config MTK_SYSIRQ + tristate "Mediatek interrupt polarity controller" + depends on ARCH_MEDIATEK || COMPILE_TEST + help + Interrupt polarity controller driver to swap polarity for + interrupts for Mediatek mobile chips. + +config MTK_CIRQ + bool "Mediatek low-power interrupt controller" + depends on ARCH_MEDIATEK || COMPILE_TEST + help + Low-power interrupt controller driver to monitor IRQS + in the sleep mode for Mediatek mobile chips. + P.S I'll make the irq-mtk-sysirq driver as a loadable kernel module for GKI Thanks > > M. > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] irqchip: Add config MTK_SYSIRQ and MTK_CIRQ 2020-06-23 6:36 ` Hanks Chen @ 2020-06-23 8:37 ` Marc Zyngier 2020-07-17 2:55 ` Saravana Kannan 0 siblings, 1 reply; 6+ messages in thread From: Marc Zyngier @ 2020-06-23 8:37 UTC (permalink / raw) To: Hanks Chen Cc: CC Hwang, Jason Cooper, wsd_upstream, Loda Chou, linux-kernel, linux-mediatek, Matthias Brugger, Thomas Gleixner, linux-arm-kernel, saravanak + Saravana On 2020-06-23 07:36, Hanks Chen wrote: [...] > Hi Marc, > > I want to break the dependency between ARCH_MEDIATEK and CIRQ/SYSIRQ, > because we need to follow the GKI. This isn't what GKI mandates. GKI requires that the SoC code is compiled as modules, not that it is dissociated from its platform (which would be completely pointless). > Could I add the MTK_CIRQ and MTK_SYSIRQ into defconfig? > (arch/arm64/config/defconfig) I don't deal with defconfig at all. That's a patch for the arm-soc people. > > It would ensures all platform are executable. > > e.g. > --- a/arch/arm64/configs/defconfig > +++ b/arch/arm64/configs/defconfig > > CONFIG_QCOM_PDC=y > +CONFIG_MTK_SYSIRQ=m > +CONFIG_MTK_CIRQ=y > CONFIG_RESET_QCOM_AOSS=y > > --- a/drivers/irqchip/Kconfig > +++ b/drivers/irqchip/Kconfig > @@ -572,4 +572,18 @@ config LOONGSON_PCH_MSI > help > Support for the Loongson PCH MSI Controller. > > +config MTK_SYSIRQ > + tristate "Mediatek interrupt polarity controller" > + depends on ARCH_MEDIATEK || COMPILE_TEST > + help > + Interrupt polarity controller driver to swap polarity for > + interrupts for Mediatek mobile chips. > + > +config MTK_CIRQ > + bool "Mediatek low-power interrupt controller" > + depends on ARCH_MEDIATEK || COMPILE_TEST > + help > + Low-power interrupt controller driver to monitor IRQS > + in the sleep mode for Mediatek mobile chips. > + > > > P.S I'll make the irq-mtk-sysirq driver as a loadable kernel module for > GKI You might as well turn both drivers into modules. Saravana was working on a set of patches to ease this transition. Thanks, M. -- Jazz is not dead. It just smells funny... ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] irqchip: Add config MTK_SYSIRQ and MTK_CIRQ 2020-06-23 8:37 ` Marc Zyngier @ 2020-07-17 2:55 ` Saravana Kannan 0 siblings, 0 replies; 6+ messages in thread From: Saravana Kannan @ 2020-07-17 2:55 UTC (permalink / raw) To: Marc Zyngier Cc: Hanks Chen, CC Hwang, Jason Cooper, wsd_upstream, Loda Chou, LKML, moderated list:ARM/Mediatek SoC support, Matthias Brugger, Thomas Gleixner, linux-arm-kernel On Tue, Jun 23, 2020 at 1:37 AM Marc Zyngier <maz@kernel.org> wrote: > > + Saravana > > On 2020-06-23 07:36, Hanks Chen wrote: > > [...] > > > Hi Marc, > > > > I want to break the dependency between ARCH_MEDIATEK and CIRQ/SYSIRQ, > > because we need to follow the GKI. > > This isn't what GKI mandates. GKI requires that the SoC code is compiled > as modules, not that it is dissociated from its platform (which would > be completely pointless). > > > Could I add the MTK_CIRQ and MTK_SYSIRQ into defconfig? > > (arch/arm64/config/defconfig) > > I don't deal with defconfig at all. That's a patch for the arm-soc > people. > > > > > It would ensures all platform are executable. > > > > e.g. > > --- a/arch/arm64/configs/defconfig > > +++ b/arch/arm64/configs/defconfig > > > > CONFIG_QCOM_PDC=y > > +CONFIG_MTK_SYSIRQ=m > > +CONFIG_MTK_CIRQ=y > > CONFIG_RESET_QCOM_AOSS=y > > > > --- a/drivers/irqchip/Kconfig > > +++ b/drivers/irqchip/Kconfig > > @@ -572,4 +572,18 @@ config LOONGSON_PCH_MSI > > help > > Support for the Loongson PCH MSI Controller. > > > > +config MTK_SYSIRQ > > + tristate "Mediatek interrupt polarity controller" > > + depends on ARCH_MEDIATEK || COMPILE_TEST > > + help > > + Interrupt polarity controller driver to swap polarity for > > + interrupts for Mediatek mobile chips. > > + > > +config MTK_CIRQ > > + bool "Mediatek low-power interrupt controller" > > + depends on ARCH_MEDIATEK || COMPILE_TEST > > + help > > + Low-power interrupt controller driver to monitor IRQS > > + in the sleep mode for Mediatek mobile chips. > > + > > > > > > P.S I'll make the irq-mtk-sysirq driver as a loadable kernel module for > > GKI > > You might as well turn both drivers into modules. Saravana was working > on a set of patches to ease this transition. Sent out v2 of that patch now. https://lore.kernel.org/lkml/20200717024447.3128361-1-saravanak@google.com/T/#u -Saravana ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-07-17 2:56 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-06-18 12:31 [PATCH 1/1] irqchip: Add config MTK_SYSIRQ and MTK_CIRQ Hanks Chen 2020-06-18 12:41 ` Marc Zyngier 2020-06-18 14:22 ` Hanks Chen 2020-06-23 6:36 ` Hanks Chen 2020-06-23 8:37 ` Marc Zyngier 2020-07-17 2:55 ` Saravana Kannan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox