irqchip: irq-armada-370-xp: generic MSI infrastructure and assorted fixes
Subsystems (4)
v2 cover irqchip: irq-armada-370-xp: generic MSI infrastructure and assorted fixes
Hello,
This patch series converts the Armada 370/XP irqchip driver (also used on Armada 375, 38x and 39x) to the new MSI infrastructure put in place by Marc. It doesn't bring any functional difference other than using the right, modern, MSI mechanism, which might ultimately allows Marc to remove the old way of implementing MSI support.
It has been tested on Armada 38x and Armada XP with an Intel e1000e NIC and an Intel IGB NIC, both of which use MSI interrupts.
Note that this patch series depends on the patch series from Marc Zyngier for proper operation (however there is no build dependency) :
https://lkml.org/lkml/2016/1/26/405
Changes since v1:
- Rebased on top of v4.5-rc1, and the latest version of Marc Zyngier irqchip core fixes, which are needed for this series to work.
- Added Acked-by from Gregory Clement on patch "irqchip:
irq-armada-370-xp: add Kconfig option for the driver"
- Add a new patch that changes hardcoded "16" values by the appropriate PCI_MSI_DOORBELL_START definition. Noticed by Gregory Clement.
- Drop the ->irq_enable() and ->irq_disable() callbacks from struct irq_chip armada_370_xp_msi_irq_chip, as they are not needed, since we already provide the same callbacks for ->irq_mask() and ->irq_unmask(). Noticed by Marc Zyngier.
- Drop the MSI_FLAG_MULTI_PCI_MSI, since we don't (yet) support allocating multiple MSIs as once. Noticed by Marc Zyngier.
- Added a separate commit actually implementing the allocation of multiple MSIs at once, and therefore adds the MSI_FLAG_MULTI_PCI_MSI.
- Reorder code in armada_370_xp_mpic_of_init() to make a BUG_ON() really useful. Noticed by Marc Zyngier.
Thanks!
Thomas
Thomas Petazzoni (6):
irqchip: irq-armada-370-xp: add Kconfig option for the driver
irqchip: irq-armada-370-xp: use the generic MSI infrastructure
irqchip: irq-armada-370-xp: use PCI_MSI_DOORBELL_START where
appropriate
irqchip: irq-armada-370-xp: use shorter names for irq_chip
irqchip: irq-armada-370-xp: allow allocation of multiple MSIs
ARM: mvebu: use the ARMADA_370_XP_IRQ option
arch/arm/mach-mvebu/Kconfig | 6 +- drivers/irqchip/Kconfig | 6 ++ drivers/irqchip/Makefile | 2 +- drivers/irqchip/irq-armada-370-xp.c | 156 +++++++++++++++--------------------- 4 files changed, 78 insertions(+), 92 deletions(-)
Signature · 1 line
2.6.4
PATCH v2 1/6 irqchip: irq-armada-370-xp: add Kconfig option for the driver
Instead of building the irq-armada-370-xp driver directly when CONFIG_ARCH_MVEBU is enabled, this commit introduces an intermediate CONFIG_ARMADA_370_XP_IRQ hidden Kconfig option.
This allows this option to select other interrupt-related Kconfig options (which will be needed in follow-up commits) rather than having such selects done from arch/arm/mach-<foo>/.
--- drivers/irqchip/Kconfig | 5 +++++ drivers/irqchip/Makefile | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-)
drivers/irqchip/Kconfig +5 -0
@@ -60,6 +60,11 @@ config ARM_VIC_NR The maximum number of VICs available in the system, for power management. +config ARMADA_370_XP_IRQ + bool + default y if ARCH_MVEBU + select GENERIC_IRQ_CHIP + config ATMEL_AIC_IRQ bool select GENERIC_IRQ_CHIP
drivers/irqchip/Makefile +1 -1
@@ -5,7 +5,6 @@ obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o obj-$(CONFIG_ARCH_HIP04) += irq-hip04.o obj-$(CONFIG_ARCH_MMP) += irq-mmp.o -obj-$(CONFIG_ARCH_MVEBU) += irq-armada-370-xp.o obj-$(CONFIG_IRQ_MXS) += irq-mxs.o obj-$(CONFIG_ARCH_TEGRA) += irq-tegra.o obj-$(CONFIG_ARCH_S3C24XX) += irq-s3c24xx.o
@@ -28,6 +27,7 @@ obj-$(CONFIG_ARM_GIC_V3_ITS) += irq-gic-v3-its.o irq-gic-v3-its-pci-msi.o irq-g obj-$(CONFIG_HISILICON_IRQ_MBIGEN) += irq-mbigen.o obj-$(CONFIG_ARM_NVIC) += irq-nvic.o obj-$(CONFIG_ARM_VIC) += irq-vic.o +obj-$(CONFIG_ARMADA_370_XP_IRQ) += irq-armada-370-xp.o obj-$(CONFIG_ATMEL_AIC_IRQ) += irq-atmel-aic-common.o irq-atmel-aic.o obj-$(CONFIG_ATMEL_AIC5_IRQ) += irq-atmel-aic-common.o irq-atmel-aic5.o obj-$(CONFIG_I8259) += irq-i8259.o
Signature · 1 line
2.6.4
PATCH v2 2/6 irqchip: irq-armada-370-xp: use the generic MSI infrastructure
In reply to Thomas PetazzoniThis commit moves the irq-armada-370-xp driver from using the PCI-specific MSI infrastructure to the generic MSI infrastructure, to which drivers are progressively converted.
In this hardware, the MSI controller is directly bundled inside the interrupt controller, so we have a single Device Tree node to which multiple IRQ domaines are attached: the wired interrupt domain and the MSI interrupt domain. In order to ensure that they can be differentiated, we have to force the bus_token of the wired interrupt domain to be DOMAIN_BUS_WIRED. The MSI domain bus_token is automatically set to the appropriate value by pci_msi_create_irq_domain().
--- drivers/irqchip/Kconfig | 1 + drivers/irqchip/irq-armada-370-xp.c | 149 +++++++++++++++--------------------- 2 files changed, 62 insertions(+), 88 deletions(-)
drivers/irqchip/Kconfig +1 -0
@@ -64,6 +64,7 @@ config ARMADA_370_XP_IRQ bool default y if ARCH_MVEBU select GENERIC_IRQ_CHIP + select PCI_MSI_IRQ_DOMAIN if PCI_MSI config ATMEL_AIC_IRQ bool
drivers/irqchip/irq-armada-370-xp.c +61 -88
214 lines not on this page · raw message
Signature · 1 line
2.6.4
PATCH v2 2/6 irqchip: irq-armada-370-xp: use the generic MSI infrastructure
Quoted 13 lines · Thomas Petazzoni
This commit moves the irq-armada-370-xp driver from using the PCI-specific MSI infrastructure to the generic MSI infrastructure, to which drivers are progressively converted.
In this hardware, the MSI controller is directly bundled inside the interrupt controller, so we have a single Device Tree node to which multiple IRQ domaines are attached: the wired interrupt domain and the MSI interrupt domain. In order to ensure that they can be differentiated, we have to force the
bus_tokenof the wired interrupt domain to beDOMAIN_BUS_WIRED. The MSI domainbus_tokenis automatically set to the appropriate value bypci_msi_create_irq_domain().
Quoted 2 lines
Signed-off-by Thomas Petazzoni <[email protected]>Suggested-by Marc Zyngier <[email protected]>
M.
Signature · 1 line
Jazz is not dead. It just smells funny...
PATCH v2 3/6 irqchip: irq-armada-370-xp: use PCI_MSI_DOORBELL_START where appropriate
In reply to Thomas PetazzoniAs suggested by Gregory Clement, this commit adjusts the irq-armada-370-xp driver to use the PCI_MSI_DOORBELL_START define in the armada_370_xp_handle_msi_irq() function, rather than hardcoding its value.
--- drivers/irqchip/irq-armada-370-xp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/irqchip/irq-armada-370-xp.c +2 -2
@@ -401,10 +401,10 @@ static void armada_370_xp_handle_msi_irq(struct pt_regs *regs, bool is_chained)if (is_chained) { irq =irq_find_mapping (armada_370_xp_msi_inner_domain, - msinr -16 ); + msinr -PCI_MSI_DOORBELL_START );generic_handle_irq (irq); }else { - irq = msinr -16 ; + irq = msinr -PCI_MSI_DOORBELL_START ;handle_domain_irq (armada_370_xp_msi_inner_domain, irq, regs); }
Signature · 1 line
2.6.4
PATCH v2 3/6 irqchip: irq-armada-370-xp: use PCI_MSI_DOORBELL_START where appropriate
Hi Thomas,
Quoted 7 lines · Thomas Petazzoni
As suggested by Gregory Clement, this commit adjusts the irq-armada-370-xp driver to use the
PCI_MSI_DOORBELL_STARTdefine in thearmada_370_xp_handle_msi_irq()function, rather than hardcoding its value.Suggested-by Gregory CLEMENT <[email protected]>Signed-off-by Thomas Petazzoni <[email protected]>
Thanks,
Gregory
Quoted 24 lines
--- drivers/irqchip/irq-armada-370-xp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)drivers/irqchip/irq-armada-370-xp.c +2
-2@@ -401,10 +401,10 @@ static void armada_370_xp_handle_msi_irq(struct pt_regs *regs, bool is_chained)if (is_chained) { irq =irq_find_mapping (armada_370_xp_msi_inner_domain, - msinr -16 ); + msinr -PCI_MSI_DOORBELL_START );generic_handle_irq (irq); }else { - irq = msinr -16 ; + irq = msinr -PCI_MSI_DOORBELL_START ;handle_domain_irq (armada_370_xp_msi_inner_domain, irq, regs); }Signature · 1 line
2.6.4
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH v2 4/6 irqchip: irq-armada-370-xp: use shorter names for irq_chip
In reply to Thomas PetazzoniIn order to make the output of /proc/interrupts, use shorter names for the irq_chip registered by the irq-armada-370-xp driver. Using capital letters also matches better what is done for the GIC driver, which uses just "GIC" as the irq_chip->name.
--- drivers/irqchip/irq-armada-370-xp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/irqchip/irq-armada-370-xp.c +3 -3
@@ -117,7 +117,7 @@ static void armada_370_xp_irq_unmask(struct irq_data *d)#ifdef CONFIG_PCI_MSI static struct irq_chip armada_370_xp_msi_irq_chip = { - .name ="armada_370_xp_msi_irq" , + .name ="MPIC MSI" , .irq_mask = pci_msi_mask_irq, .irq_unmask = pci_msi_unmask_irq, };
@@ -141,7 +141,7 @@ static int armada_370_xp_msi_set_affinity(struct irq_data *irq_data, }static struct irq_chip armada_370_xp_msi_bottom_irq_chip = { - .name ="armada_370_xp_msi_irq" , + .name ="MPIC MSI" , .irq_compose_msi_msg = armada_370_xp_compose_msi_msg, .irq_set_affinity = armada_370_xp_msi_set_affinity, };
@@ -253,7 +253,7 @@ static int armada_xp_set_affinity(struct irq_data *d,#endif static struct irq_chip armada_370_xp_irq_chip = { - .name ="armada_370_xp_irq" , + .name ="MPIC" , .irq_mask = armada_370_xp_irq_mask, .irq_mask_ack = armada_370_xp_irq_mask, .irq_unmask = armada_370_xp_irq_unmask,
Signature · 1 line
2.6.4
PATCH v2 4/6 irqchip: irq-armada-370-xp: use shorter names for irq_chip
Hi Thomas,
Quoted 6 lines · Thomas Petazzoni
In order to make the output of
/proc/interrupts, use shorter names for theirq_chipregistered by the irq-armada-370-xp driver. Using capital letters also matches better what is done for the GIC driver, which uses just "GIC" as theirq_chip->name.Signed-off-by Thomas Petazzoni <[email protected]>
As you managed to convince me:
Thanks,
Gregory
Quoted 38 lines
--- drivers/irqchip/irq-armada-370-xp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)drivers/irqchip/irq-armada-370-xp.c +3
-3@@ -117,7 +117,7 @@ static void armada_370_xp_irq_unmask(struct irq_data *d)#ifdef CONFIG_PCI_MSI static struct irq_chip armada_370_xp_msi_irq_chip = { - .name ="armada_370_xp_msi_irq" , + .name ="MPIC MSI" , .irq_mask = pci_msi_mask_irq, .irq_unmask = pci_msi_unmask_irq, };@@ -141,7 +141,7 @@ static int armada_370_xp_msi_set_affinity(struct irq_data *irq_data, }static struct irq_chip armada_370_xp_msi_bottom_irq_chip = { - .name ="armada_370_xp_msi_irq" , + .name ="MPIC MSI" , .irq_compose_msi_msg = armada_370_xp_compose_msi_msg, .irq_set_affinity = armada_370_xp_msi_set_affinity, };@@ -253,7 +253,7 @@ static int armada_xp_set_affinity(struct irq_data *d,#endif static struct irq_chip armada_370_xp_irq_chip = { - .name ="armada_370_xp_irq" , + .name ="MPIC" , .irq_mask = armada_370_xp_irq_mask, .irq_mask_ack = armada_370_xp_irq_mask, .irq_unmask = armada_370_xp_irq_unmask,Signature · 1 line
2.6.4
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH v2 5/6 irqchip: irq-armada-370-xp: allow allocation of multiple MSIs
In reply to Thomas PetazzoniAdd support for allocating multiple MSIs at the same time, so that the MSI_FLAG_MULTI_PCI_MSI flag can be added to the msi_domain_info structure.
--- drivers/irqchip/irq-armada-370-xp.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-)
drivers/irqchip/irq-armada-370-xp.c +14 -11
@@ -123,7 +123,8 @@ static struct irq_chip armada_370_xp_msi_irq_chip = { };static struct msi_domain_info armada_370_xp_msi_domain_info = { - .flags = (MSI_FLAG_USE_DEF_DOM_OPS |MSI_FLAG_USE_DEF_CHIP_OPS ), + .flags = (MSI_FLAG_USE_DEF_DOM_OPS |MSI_FLAG_USE_DEF_CHIP_OPS | +MSI_FLAG_MULTI_PCI_MSI ), .chip = &armada_370_xp_msi_irq_chip, };
@@ -149,21 +150,26 @@ static struct irq_chip armada_370_xp_msi_bottom_irq_chip = {static int armada_370_xp_msi_alloc (struct irq_domain *domain,unsigned int virq,unsigned int nr_irqs,void *args) { -int hwirq; +int hwirq, i;mutex_lock (&msi_used_lock); - hwirq =find_first_zero_bit (&msi_used,PCI_MSI_DOORBELL_NR ); + + hwirq =bitmap_find_next_zero_area (msi_used,PCI_MSI_DOORBELL_NR , +0 , nr_irqs,0 );if (hwirq >=PCI_MSI_DOORBELL_NR ) {mutex_unlock (&msi_used_lock);return -ENOSPC ; } -set_bit (hwirq, msi_used); +bitmap_set (msi_used, hwirq, nr_irqs);mutex_unlock (&msi_used_lock); -irq_domain_set_info (domain, virq, hwirq, &armada_370_xp_msi_bottom_irq_chip, - domain->host_data, handle_simple_irq, -NULL ,NULL ); +for (i =0 ; i < nr_irqs; i++) { +irq_domain_set_info (domain, virq + i, hwirq + i, + &armada_370_xp_msi_bottom_irq_chip, + domain->host_data, handle_simple_irq, +NULL ,NULL ); + }return hwirq; }
@@ -174,10 +180,7 @@ static void armada_370_xp_msi_free(struct irq_domain *domain,struct irq_data *d =irq_domain_get_irq_data (domain, virq);mutex_lock (&msi_used_lock); -if (!test_bit (d->hwirq, msi_used)) -pr_err ("trying to free unused MSI#%lu\n" , d->hwirq); -else -clear_bit (d->hwirq, msi_used); +bitmap_clear (msi_used, d->hwirq, nr_irqs);mutex_unlock (&msi_used_lock); }
Signature · 1 line
2.6.4
PATCH v2 5/6 irqchip: irq-armada-370-xp: allow allocation of multiple MSIs
Hi Thomas,
Quoted 5 lines · Thomas Petazzoni
Add support for allocating multiple MSIs at the same time, so that the
MSI_FLAG_MULTI_PCI_MSIflag can be added to themsi_domain_infostructure.Signed-off-by Thomas Petazzoni <[email protected]>
Thanks,
Gregory
Quoted 66 lines
--- drivers/irqchip/irq-armada-370-xp.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-)drivers/irqchip/irq-armada-370-xp.c +14
-11@@ -123,7 +123,8 @@ static struct irq_chip armada_370_xp_msi_irq_chip = { };static struct msi_domain_info armada_370_xp_msi_domain_info = { - .flags = (MSI_FLAG_USE_DEF_DOM_OPS |MSI_FLAG_USE_DEF_CHIP_OPS ), + .flags = (MSI_FLAG_USE_DEF_DOM_OPS |MSI_FLAG_USE_DEF_CHIP_OPS | +MSI_FLAG_MULTI_PCI_MSI ), .chip = &armada_370_xp_msi_irq_chip, };@@ -149,21 +150,26 @@ static struct irq_chip armada_370_xp_msi_bottom_irq_chip = {static int armada_370_xp_msi_alloc (struct irq_domain *domain,unsigned int virq,unsigned int nr_irqs,void *args) { -int hwirq; +int hwirq, i;mutex_lock (&msi_used_lock); - hwirq =find_first_zero_bit (&msi_used,PCI_MSI_DOORBELL_NR ); + + hwirq =bitmap_find_next_zero_area (msi_used,PCI_MSI_DOORBELL_NR , +0 , nr_irqs,0 );if (hwirq >=PCI_MSI_DOORBELL_NR ) {mutex_unlock (&msi_used_lock);return -ENOSPC ; } -set_bit (hwirq, msi_used); +bitmap_set (msi_used, hwirq, nr_irqs);mutex_unlock (&msi_used_lock); -irq_domain_set_info (domain, virq, hwirq, &armada_370_xp_msi_bottom_irq_chip, - domain->host_data, handle_simple_irq, -NULL ,NULL ); +for (i =0 ; i < nr_irqs; i++) { +irq_domain_set_info (domain, virq + i, hwirq + i, + &armada_370_xp_msi_bottom_irq_chip, + domain->host_data, handle_simple_irq, +NULL ,NULL ); + }return hwirq; }@@ -174,10 +180,7 @@ static void armada_370_xp_msi_free(struct irq_domain *domain,struct irq_data *d =irq_domain_get_irq_data (domain, virq);mutex_lock (&msi_used_lock); -if (!test_bit (d->hwirq, msi_used)) -pr_err ("trying to free unused MSI#%lu\n" , d->hwirq); -else -clear_bit (d->hwirq, msi_used); +bitmap_clear (msi_used, d->hwirq, nr_irqs);mutex_unlock (&msi_used_lock); }Signature · 1 line
2.6.4
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH v2 6/6 ARM: mvebu: use the ARMADA_370_XP_IRQ option
In reply to Thomas PetazzoniNow that there is a ARMADA_370_XP_IRQ option to enable the irqchip driver for Armada 370, XP, 375, 38x and 39x, let's select this option when needed. Note that this selection is currently not mandatory because ARMADA_370_XP_IRQ is for now always enabled when ARCH_MVEBU=y, but this is something that we will change in the future, and therefore we should make the relevant platforms select ARMADA_370_XP_IRQ when needed.
Due to this, selecting GENERIC_IRQ_CHIP is no longer needed.
--- arch/arm/mach-mvebu/Kconfig | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
arch/arm/mach-mvebu/Kconfig +5 -1
@@ -3,7 +3,6 @@ menuconfig ARCH_MVEBU depends on ARCH_MULTI_V7 || ARCH_MULTI_V5 select ARCH_SUPPORTS_BIG_ENDIAN select CLKSRC_MMIO - select GENERIC_IRQ_CHIP select PINCTRL select PLAT_ORION select SOC_BUS
@@ -29,6 +28,7 @@ config MACH_ARMADA_370 bool "Marvell Armada 370 boards" depends on ARCH_MULTI_V7 select ARMADA_370_CLK + select ARMADA_370_XP_IRQ select CPU_PJ4B select MACH_MVEBU_V7 select PINCTRL_ARMADA_370
@@ -39,6 +39,7 @@ config MACH_ARMADA_370 config MACH_ARMADA_375 bool "Marvell Armada 375 boards" depends on ARCH_MULTI_V7 + select ARMADA_370_XP_IRQ select ARM_ERRATA_720789 select ARM_ERRATA_753970 select ARM_GIC
@@ -58,6 +59,7 @@ config MACH_ARMADA_38X select ARM_ERRATA_720789 select ARM_ERRATA_753970 select ARM_GIC + select ARMADA_370_XP_IRQ select ARMADA_38X_CLK select HAVE_ARM_SCU select HAVE_ARM_TWD if SMP
@@ -72,6 +74,7 @@ config MACH_ARMADA_39X bool "Marvell Armada 39x boards" depends on ARCH_MULTI_V7 select ARM_GIC + select ARMADA_370_XP_IRQ select ARMADA_39X_CLK select CACHE_L2X0 select HAVE_ARM_SCU
@@ -86,6 +89,7 @@ config MACH_ARMADA_39X config MACH_ARMADA_XP bool "Marvell Armada XP boards" depends on ARCH_MULTI_V7 + select ARMADA_370_XP_IRQ select ARMADA_XP_CLK select CPU_PJ4B select MACH_MVEBU_V7
Signature · 1 line
2.6.4
PATCH v2 6/6 ARM: mvebu: use the ARMADA_370_XP_IRQ option
Hi Thomas,
Quoted 11 lines · Thomas Petazzoni
Now that there is a
ARMADA_370_XP_IRQoption to enable the irqchip driver for Armada 370, XP, 375, 38x and 39x, let's select this option when needed. Note that this selection is currently not mandatory becauseARMADA_370_XP_IRQis for now always enabled when ARCH_MVEBU=y, but this is something that we will change in the future, and therefore we should make the relevant platforms selectARMADA_370_XP_IRQwhen needed.Due to this, selecting
GENERIC_IRQ_CHIPis no longer needed.Signed-off-by Thomas Petazzoni <[email protected]>
This patch can also be merged through the irqchip tree to be sure that will be merged after the 2st patch whiwh select GENERIC_IRQ_CHIP when ARMADA_370_XP_IRQ is selected.
Thanks,
Gregory
Quoted 59 lines
--- arch/arm/mach-mvebu/Kconfig | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)arch/arm/mach-mvebu/Kconfig +5
-1@@ -3,7 +3,6 @@ menuconfig ARCH_MVEBU depends on ARCH_MULTI_V7 || ARCH_MULTI_V5 select ARCH_SUPPORTS_BIG_ENDIAN select CLKSRC_MMIO - select GENERIC_IRQ_CHIP select PINCTRL select PLAT_ORION select SOC_BUS@@ -29,6 +28,7 @@ config MACH_ARMADA_370 bool "Marvell Armada 370 boards" depends on ARCH_MULTI_V7 select ARMADA_370_CLK + select ARMADA_370_XP_IRQ select CPU_PJ4B select MACH_MVEBU_V7 select PINCTRL_ARMADA_370@@ -39,6 +39,7 @@ config MACH_ARMADA_370 config MACH_ARMADA_375 bool "Marvell Armada 375 boards" depends on ARCH_MULTI_V7 + select ARMADA_370_XP_IRQ select ARM_ERRATA_720789 select ARM_ERRATA_753970 select ARM_GIC@@ -58,6 +59,7 @@ config MACH_ARMADA_38X select ARM_ERRATA_720789 select ARM_ERRATA_753970 select ARM_GIC + select ARMADA_370_XP_IRQ select ARMADA_38X_CLK select HAVE_ARM_SCU select HAVE_ARM_TWD if SMP@@ -72,6 +74,7 @@ config MACH_ARMADA_39X bool "Marvell Armada 39x boards" depends on ARCH_MULTI_V7 select ARM_GIC + select ARMADA_370_XP_IRQ select ARMADA_39X_CLK select CACHE_L2X0 select HAVE_ARM_SCU@@ -86,6 +89,7 @@ config MACH_ARMADA_39X config MACH_ARMADA_XP bool "Marvell Armada XP boards" depends on ARCH_MULTI_V7 + select ARMADA_370_XP_IRQ select ARMADA_XP_CLK select CPU_PJ4B select MACH_MVEBU_V7Signature · 1 line
2.6.4
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
v2 cover irqchip: irq-armada-370-xp: generic MSI infrastructure and assorted fixes
In reply to Thomas PetazzoniHello,
Quoted 8 lines · Thomas Petazzoni
Thomas Petazzoni (6):
irqchip: irq-armada-370-xp: addKconfigoption for the driver
irqchip: irq-armada-370-xp: use the generic MSI infrastructure
irqchip: irq-armada-370-xp: usePCI_MSI_DOORBELL_STARTwhere
appropriate
irqchip: irq-armada-370-xp: use shorter names forirq_chip
irqchip: irq-armada-370-xp: allow allocation of multiple MSIs
ARM: mvebu: use theARMADA_370_XP_IRQoption
Jason, Thomas, any chance to get this applied soonish?
The core patch of the series, which migrates the irq-armada-370-xp driver to use the generic MSI infrastructure has been Reviewed-by: Marc Zyngier, and the other patches in the series have Acked-by/Reviewed-by from Gregory Clement.
Of course, if there's anything left to be changed, I'd be happy to respin a new version of this series.
Thanks a lot!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
v2 cover irqchip: irq-armada-370-xp: generic MSI infrastructure and assorted fixes
Quoted 15 lines · Thomas Petazzoni
Hello,
Quoted 8 lines · Thomas Petazzoni
Thomas Petazzoni (6):
irqchip: irq-armada-370-xp: addKconfigoption for the driver
irqchip: irq-armada-370-xp: use the generic MSI infrastructure
irqchip: irq-armada-370-xp: usePCI_MSI_DOORBELL_STARTwhere
appropriate
irqchip: irq-armada-370-xp: use shorter names forirq_chip
irqchip: irq-armada-370-xp: allow allocation of multiple MSIs
ARM: mvebu: use theARMADA_370_XP_IRQoptionJason, Thomas, any chance to get this applied soonish?
Quoted 8 lines
The core patch of the series, which migrates the irq-armada-370-xp driver to use the generic MSI infrastructure has been Reviewed-by: Marc Zyngier, and the other patches in the series have Acked-by/Reviewed-by from Gregory Clement.
Of course, if there's anything left to be changed, I'd be happy to respin a new version of this series.
Noticing the distribution list, it would be good to repost these patches with acks and co to LKML...
Thanks,
M.
Signature · 1 line
Jazz is not dead. It just smells funny...
v2 cover irqchip: irq-armada-370-xp: generic MSI infrastructure and assorted fixes
Hello,
Quoted 7 lines · Marc Zyngier
Quoted 7 lines
Jason, Thomas, any chance to get this applied soonish?
The core patch of the series, which migrates the irq-armada-370-xp driver to use the generic MSI infrastructure has been Reviewed-by: Marc Zyngier, and the other patches in the series have Acked-by/Reviewed-by from Gregory Clement.
Quoted 6 lines
Quoted 3 lines
Of course, if there's anything left to be changed, I'd be happy to respin a new version of this series.
Noticing the distribution list, it would be good to repost these patches with acks and co to LKML...
Right, will do. Thanks for the suggestion.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
v2 cover irqchip: irq-armada-370-xp: generic MSI infrastructure and assorted fixes
In reply to Marc ZyngierQuoted 21 lines · Marc Zyngier
Quoted 20 lines · Thomas Petazzoni
Hello,
Quoted 8 lines · Thomas Petazzoni
Thomas Petazzoni (6):
irqchip: irq-armada-370-xp: addKconfigoption for the driver
irqchip: irq-armada-370-xp: use the generic MSI infrastructure
irqchip: irq-armada-370-xp: usePCI_MSI_DOORBELL_STARTwhere
appropriate
irqchip: irq-armada-370-xp: use shorter names forirq_chip
irqchip: irq-armada-370-xp: allow allocation of multiple MSIs
ARM: mvebu: use theARMADA_370_XP_IRQoptionJason, Thomas, any chance to get this applied soonish?
The core patch of the series, which migrates the irq-armada-370-xp driver to use the generic MSI infrastructure has been Reviewed-by: Marc Zyngier, and the other patches in the series have Acked-by/Reviewed-by from Gregory Clement.
Quoted 6 lines
Quoted 3 lines
Of course, if there's anything left to be changed, I'd be happy to respin a new version of this series.
Noticing the distribution list, it would be good to repost these patches with acks and co to LKML...
agreed, and I'll pick it up within the next day or so. Still getting my home network setup... too much wifi. :(
thx,
Jason.
v2 cover irqchip: irq-armada-370-xp: generic MSI infrastructure and assorted fixes
Hi Jason,
Quoted 26 lines · Jason Cooper
Quoted 25 lines · Marc Zyngier
Quoted 23 lines · Thomas Petazzoni
Hello,
Quoted 8 lines · Thomas Petazzoni
Thomas Petazzoni (6):
irqchip: irq-armada-370-xp: addKconfigoption for the driver
irqchip: irq-armada-370-xp: use the generic MSI infrastructure
irqchip: irq-armada-370-xp: usePCI_MSI_DOORBELL_STARTwhere
appropriate
irqchip: irq-armada-370-xp: use shorter names forirq_chip
irqchip: irq-armada-370-xp: allow allocation of multiple MSIs
ARM: mvebu: use theARMADA_370_XP_IRQoptionJason, Thomas, any chance to get this applied soonish?
The core patch of the series, which migrates the irq-armada-370-xp driver to use the generic MSI infrastructure has been Reviewed-by: Marc Zyngier, and the other patches in the series have Acked-by/Reviewed-by from Gregory Clement.
Of course, if there's anything left to be changed, I'd be happy to respin a new version of this series.
Quoted 5 lines
Quoted 2 lines
Noticing the distribution list, it would be good to repost these patches with acks and co to LKML...
agreed, and I'll pick it up within the next day or so. Still getting my home network setup... too much wifi. :(
I proposed that you take the 6th patch to ensure that this driver will always be selected for the mvebu platform which need it. It is still OK but, since this offer, I sent a series which depend of the 1st patch:
http://thread.gmane.org/gmane.linux.ide/61178
Would you agree to provide an immutable tag containing the first patch? Thanks to this I will be able to provide it to the arm-soc maintainer for my pull request.
Thanks,
Gregory
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
v2 cover irqchip: irq-armada-370-xp: generic MSI infrastructure and assorted fixes
Quoted 33 lines · Gregory CLEMENT
Hi Jason,
Quoted 29 lines · Jason Cooper
Quoted 27 lines · Marc Zyngier
Quoted 15 lines · Thomas Petazzoni
Hello,
Quoted 8 lines · Thomas Petazzoni
Thomas Petazzoni (6):
irqchip: irq-armada-370-xp: addKconfigoption for the driver
irqchip: irq-armada-370-xp: use the generic MSI infrastructure
irqchip: irq-armada-370-xp: usePCI_MSI_DOORBELL_STARTwhere
appropriate
irqchip: irq-armada-370-xp: use shorter names forirq_chip
irqchip: irq-armada-370-xp: allow allocation of multiple MSIs
ARM: mvebu: use theARMADA_370_XP_IRQoptionJason, Thomas, any chance to get this applied soonish?
Quoted 8 lines
The core patch of the series, which migrates the irq-armada-370-xp driver to use the generic MSI infrastructure has been Reviewed-by: Marc Zyngier, and the other patches in the series have Acked-by/Reviewed-by from Gregory Clement.
Of course, if there's anything left to be changed, I'd be happy to respin a new version of this series.
Noticing the distribution list, it would be good to repost these patches with acks and co to LKML...
Quoted 7 lines
Quoted 2 lines
agreed, and I'll pick it up within the next day or so. Still getting my home network setup... too much wifi. :(
I proposed that you take the 6th patch to ensure that this driver will always be selected for the mvebu platform which need it. It is still OK but, since this offer, I sent a series which depend of the 1st patch:
http://thread.gmane.org/gmane.linux.ide/61178
I saw that. ;-)
Quoted 3 lines
Would you agree to provide an immutable tag containing the first patch? Thanks to this I will be able to provide it to the arm-soc maintainer for my pull request.
Sure, that's my default MO since most of the time, people only touch irqchip drivers when they are changing something else. Thus, there's usually a dependency on the irqchip changes.
thx,
Jason.