Messages in this thread | | | Date | Mon, 11 Jan 2016 10:44:32 +0000 | From | Marc Zyngier <> | Subject | Re: [PATCH V2 1/2] irqchip/gic: Remove static irq_chip definition for eoimode1 |
| |
On 22/12/15 12:09, Jon Hunter wrote: > There are only 3 differences (not including the name) in the definitions > of the gic_chip and gic_eoimode1_chip structures. Instead of statically > defining the gic_eoimode1_chip structure, remove it and populate the > eoimode1 functions dynamically for the appropriate GIC irqchips. > > Signed-off-by: Jon Hunter <jonathanh@nvidia.com> > --- > drivers/irqchip/irq-gic.c | 26 +++++--------------------- > 1 file changed, 5 insertions(+), 21 deletions(-) > > diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c > index fcbe0b90870d..94ad60c424a7 100644 > --- a/drivers/irqchip/irq-gic.c > +++ b/drivers/irqchip/irq-gic.c > @@ -394,23 +394,6 @@ static struct irq_chip gic_chip = { > IRQCHIP_MASK_ON_SUSPEND, > }; > > -static struct irq_chip gic_eoimode1_chip = { > - .name = "GICv2", > - .irq_mask = gic_eoimode1_mask_irq, > - .irq_unmask = gic_unmask_irq, > - .irq_eoi = gic_eoimode1_eoi_irq, > - .irq_set_type = gic_set_type, > -#ifdef CONFIG_SMP > - .irq_set_affinity = gic_set_affinity, > -#endif > - .irq_get_irqchip_state = gic_irq_get_irqchip_state, > - .irq_set_irqchip_state = gic_irq_set_irqchip_state, > - .irq_set_vcpu_affinity = gic_irq_set_vcpu_affinity, > - .flags = IRQCHIP_SET_TYPE_MASKED | > - IRQCHIP_SKIP_SET_WAKE | > - IRQCHIP_MASK_ON_SUSPEND, > -}; > - > void __init gic_cascade_irq(unsigned int gic_nr, unsigned int irq) > { > BUG_ON(gic_nr >= CONFIG_ARM_GIC_MAX_NR); > @@ -1030,13 +1013,14 @@ static void __init __gic_init_bases(unsigned int gic_nr, int irq_start, > gic_check_cpu_features(); > > gic = &gic_data[gic_nr]; > + gic->chip = gic_chip; > + gic->chip.name = kasprintf(GFP_KERNEL, "GIC-%d", gic_nr);
I'd really like to keep GICv2 being displayed when the GIC is in EOIMode==1, as it has proved to be a valuable debugging information in the recent past.
> > /* Initialize irq_chip */ > if (static_key_true(&supports_deactivate) && gic_nr == 0) { > - gic->chip = gic_eoimode1_chip; > - } else { > - gic->chip = gic_chip; > - gic->chip.name = kasprintf(GFP_KERNEL, "GIC-%d", gic_nr); > + gic->chip.irq_mask = gic_eoimode1_mask_irq; > + gic->chip.irq_eoi = gic_eoimode1_eoi_irq; > + gic->chip.irq_set_vcpu_affinity = gic_irq_set_vcpu_affinity; > } > > #ifdef CONFIG_GIC_NON_BANKED >
Other than that, I'm fine with that change (as well as the following one).
Thanks,
M. -- Jazz is not dead. It just smells funny...
| |