mbox series

[v6,00/13] Modular Broadcom irqchip drivers

Message ID 20211020184859.2705451-1-f.fainelli@gmail.com (mailing list archive)
Headers show
Series Modular Broadcom irqchip drivers | expand

Message

Florian Fainelli Oct. 20, 2021, 6:48 p.m. UTC
Hi Thomas, Marc,

This patch series aims at allowing the 3 interrupt controller drivers
used on Broadcom STB platforms to be built as modules in order for those
to be shipped in a GKI enabled system (Android).

The irq-bcm7038-l1 requires us to export a number of symbols, which is
not great, but there are not obvious solutions other than adding
accessor functions to get the same information.

Assuming you are happy with the changes though, please do take the last
two changes as well through your tree.

Thanks!

Changes in v6:

- dropped changing the prototype of of_init_irq_cb and instead
  resolved the platform_device from irq-bcm7120-l2 since this is
  the only driver that needs this to call platform_irq_count()

Changes in v5:

- put patch #9 as the first one
- add missing platform_device argument to the irq-bcm7038-l1 and
  irq-brcmstb-l2 drivers (Marc)

Changes in v4:

- added Thomas' Acked-by for patch #1
- added Rob's Reviewed-by for patch 9 and updated qcom-pdc.c as
  suggested
- s/argument/parameter/ in patch #14 as suggested by Sergey

Changes in v3:

- avoid the use of the cpu_logical_map array for platforms other than
  MIPS
- removed the bogus irq_set_affinity callback for platforms other than
  MIPS
- bring-back the export of irq_gc_noop() lost in the v2

Changes in v2:

- avoid using irq_to_desc() and use irq_get_irq_data() instead
- re-order patches to avoid linking failure for irq-brcmstb-l2
- removed the use of .irq_cpu_offline() and converted BMIPS to use
  irq_migrate_all_off_this_cpu()
- avoid exporting of_irq_count() and use a platform device passed
  down from the irqchip platform driver registration code instead
- added kernel-doc fix


Florian Fainelli (13):
  MIPS: BMIPS: Remove use of irq_cpu_offline
  irqchip/irq-bcm7038-l1: Remove .irq_cpu_offline()
  irqchip/irq-bcm7038-l1: Use irq_get_irq_data()
  irqchip/irq-bcm7038-l1: Gate use of CPU logical map to MIPS
  irqchip/irq-bcm7038-l1: Restrict affinity setting to MIPS
  irqchip/irq-bcm7038-l1: Switch to IRQCHIP_PLATFORM_DRIVER
  genirq: Export irq_gc_{unmask_enable,mask_disable}_reg
  irqchip/irq-brcmstb-l2: Switch to IRQCHIP_PLATFORM_DRIVER
  genirq: Export irq_gc_noop()
  irqchip/irq-bcm7120-l2: Switch to IRQCHIP_PLATFORM_DRIVER
  arm64: broadcom: Removed forced select of interrupt controllers
  ARM: bcm: Removed forced select of interrupt controllers
  irqchip: Fix kernel-doc parameter typo for IRQCHIP_DECLARE

 arch/arm/mach-bcm/Kconfig        |  4 ---
 arch/arm64/Kconfig.platforms     |  3 --
 arch/mips/Kconfig                |  1 +
 arch/mips/kernel/smp-bmips.c     |  3 +-
 drivers/irqchip/Kconfig          | 12 ++++++--
 drivers/irqchip/irq-bcm7038-l1.c | 47 ++++++++------------------------
 drivers/irqchip/irq-bcm7120-l2.c | 21 ++++++++++----
 drivers/irqchip/irq-brcmstb-l2.c | 16 ++++++-----
 include/linux/irqchip.h          |  2 +-
 kernel/irq/generic-chip.c        |  3 ++
 10 files changed, 51 insertions(+), 61 deletions(-)

Comments

Marc Zyngier Oct. 20, 2021, 9:13 p.m. UTC | #1
On Wed, 20 Oct 2021 11:48:46 -0700, Florian Fainelli wrote:
> This patch series aims at allowing the 3 interrupt controller drivers
> used on Broadcom STB platforms to be built as modules in order for those
> to be shipped in a GKI enabled system (Android).
> 
> The irq-bcm7038-l1 requires us to export a number of symbols, which is
> not great, but there are not obvious solutions other than adding
> accessor functions to get the same information.
> 
> [...]

Applied to irq/irqchip-next, thanks!

[01/13] MIPS: BMIPS: Remove use of irq_cpu_offline
        commit: bf8bde41d296849fd5f9db8becd71ad4e84bc521
[02/13] irqchip/irq-bcm7038-l1: Remove .irq_cpu_offline()
        commit: 57de689ce7829219db007dca5c88ae023a8be2d3
[03/13] irqchip/irq-bcm7038-l1: Use irq_get_irq_data()
        commit: 4b55192009fc62d2817efa2346ec1c0da4be1033
[04/13] irqchip/irq-bcm7038-l1: Gate use of CPU logical map to MIPS
        commit: 35eb2ef5df42d3c3d2186ae6dab5622a31e6ceee
[05/13] irqchip/irq-bcm7038-l1: Restrict affinity setting to MIPS
        commit: 3578fd47137c405b6fb9f90e2e6d1654c71f5e1e
[06/13] irqchip/irq-bcm7038-l1: Switch to IRQCHIP_PLATFORM_DRIVER
        commit: c057c799e379f940b0e14dc83f96540a4c27730a
[07/13] genirq: Export irq_gc_{unmask_enable,mask_disable}_reg
        commit: fcd0f63dec4abc281988ac08b83ca3ae6946c13b
[08/13] irqchip/irq-brcmstb-l2: Switch to IRQCHIP_PLATFORM_DRIVER
        commit: 51d9db5c8fbbed160081d4cb5c193abdf67ded05
[09/13] genirq: Export irq_gc_noop()
        commit: 945486bf1ee3362068d95b5e1b5d4a7779ea0aaf
[10/13] irqchip/irq-bcm7120-l2: Switch to IRQCHIP_PLATFORM_DRIVER
        commit: 3ac268d5ed2233d4a2db541d8fd744ccc13f46b0
[11/13] arm64: broadcom: Removed forced select of interrupt controllers
        commit: 9db71e8966bf7c80ab89d8d5b113d8daa3b237ea
[12/13] ARM: bcm: Removed forced select of interrupt controllers
        commit: c40ef4c57599c30efc0c1e8ad6bec4f842295521
[13/13] irqchip: Fix kernel-doc parameter typo for IRQCHIP_DECLARE
        commit: b8419e7be6c6029eee3448fda45f4f9ad340c4ca

Cheers,

	M.