mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-27 14:43:58 +08:00
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>
This commit is contained in:
parent
e57a3e2847
commit
d51c4b4da7
@ -2714,7 +2714,7 @@ static int its_force_quiescent(void __iomem *base)
|
||||
return 0;
|
||||
|
||||
/* Disable the generation of all interrupts to this ITS */
|
||||
val &= ~GITS_CTLR_ENABLE;
|
||||
val &= ~(GITS_CTLR_ENABLE | GITS_CTLR_ImDe);
|
||||
writel_relaxed(val, base + GITS_CTLR);
|
||||
|
||||
/* Poll GITS_CTLR and wait until ITS becomes quiescent */
|
||||
@ -2998,7 +2998,10 @@ static int __init its_probe_one(struct resource *res,
|
||||
|
||||
gits_write_cwriter(0, its->base + GITS_CWRITER);
|
||||
ctlr = readl_relaxed(its->base + GITS_CTLR);
|
||||
writel_relaxed(ctlr | GITS_CTLR_ENABLE, its->base + GITS_CTLR);
|
||||
ctlr |= GITS_CTLR_ENABLE;
|
||||
if (its->is_v4)
|
||||
ctlr |= GITS_CTLR_ImDe;
|
||||
writel_relaxed(ctlr, its->base + GITS_CTLR);
|
||||
|
||||
err = its_init_domain(handle, its);
|
||||
if (err)
|
||||
|
@ -298,6 +298,7 @@
|
||||
#define GITS_TRANSLATER 0x10040
|
||||
|
||||
#define GITS_CTLR_ENABLE (1U << 0)
|
||||
#define GITS_CTLR_ImDe (1U << 1)
|
||||
#define GITS_CTLR_ITS_NUMBER_SHIFT 4
|
||||
#define GITS_CTLR_ITS_NUMBER (0xFU << GITS_CTLR_ITS_NUMBER_SHIFT)
|
||||
#define GITS_CTLR_QUIESCENT (1U << 31)
|
||||
|
Loading…
Reference in New Issue
Block a user