irqchip/gic-v3-its: Set implementation defined bit to enable VLPIs

A long time ago, GITS_CTLR[1] used to be called GITC_CTLR.EnableVLPI.
It has been subsequently deprecated and is now an "Implementation
Defined" bit that may ot may not be set for GICv4. Brilliant.

And the current crop of the FastModel requires that bit for VLPIs
to be enabled. Oh well... Let's set it and find out what breaks.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>

+6 -2
+5 -2
drivers/irqchip/irq-gic-v3-its.c
··· 2714 return 0; 2715 2716 /* Disable the generation of all interrupts to this ITS */ 2717 - val &= ~GITS_CTLR_ENABLE; 2718 writel_relaxed(val, base + GITS_CTLR); 2719 2720 /* Poll GITS_CTLR and wait until ITS becomes quiescent */ ··· 2998 2999 gits_write_cwriter(0, its->base + GITS_CWRITER); 3000 ctlr = readl_relaxed(its->base + GITS_CTLR); 3001 - writel_relaxed(ctlr | GITS_CTLR_ENABLE, its->base + GITS_CTLR); 3002 3003 err = its_init_domain(handle, its); 3004 if (err)
··· 2714 return 0; 2715 2716 /* Disable the generation of all interrupts to this ITS */ 2717 + val &= ~(GITS_CTLR_ENABLE | GITS_CTLR_ImDe); 2718 writel_relaxed(val, base + GITS_CTLR); 2719 2720 /* Poll GITS_CTLR and wait until ITS becomes quiescent */ ··· 2998 2999 gits_write_cwriter(0, its->base + GITS_CWRITER); 3000 ctlr = readl_relaxed(its->base + GITS_CTLR); 3001 + ctlr |= GITS_CTLR_ENABLE; 3002 + if (its->is_v4) 3003 + ctlr |= GITS_CTLR_ImDe; 3004 + writel_relaxed(ctlr, its->base + GITS_CTLR); 3005 3006 err = its_init_domain(handle, its); 3007 if (err)
+1
include/linux/irqchip/arm-gic-v3.h
··· 298 #define GITS_TRANSLATER 0x10040 299 300 #define GITS_CTLR_ENABLE (1U << 0) 301 #define GITS_CTLR_ITS_NUMBER_SHIFT 4 302 #define GITS_CTLR_ITS_NUMBER (0xFU << GITS_CTLR_ITS_NUMBER_SHIFT) 303 #define GITS_CTLR_QUIESCENT (1U << 31)
··· 298 #define GITS_TRANSLATER 0x10040 299 300 #define GITS_CTLR_ENABLE (1U << 0) 301 + #define GITS_CTLR_ImDe (1U << 1) 302 #define GITS_CTLR_ITS_NUMBER_SHIFT 4 303 #define GITS_CTLR_ITS_NUMBER (0xFU << GITS_CTLR_ITS_NUMBER_SHIFT) 304 #define GITS_CTLR_QUIESCENT (1U << 31)