Skip to content

Commit 3858d4d

Browse files
author
Marc Zyngier
committed
irqchip/gic-v4.1: Suppress per-VLPI doorbell
Since GICv4.1 gives us a per-VPE doorbell, avoid programming anything else on VMOVI/VMAPI/VMAPTI and on any other action that would have otherwise resulted in a per-VLPI doorbell to be programmed. Signed-off-by: Marc Zyngier <[email protected]> Reviewed-by: Zenghui Yu <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent b4a4bd0 commit 3858d4d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

drivers/irqchip/irq-gic-v3-its.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ static struct its_vpe *its_build_vmapti_cmd(struct its_node *its,
718718
{
719719
u32 db;
720720

721-
if (desc->its_vmapti_cmd.db_enabled)
721+
if (!is_v4_1(its) && desc->its_vmapti_cmd.db_enabled)
722722
db = desc->its_vmapti_cmd.vpe->vpe_db_lpi;
723723
else
724724
db = 1023;
@@ -741,7 +741,7 @@ static struct its_vpe *its_build_vmovi_cmd(struct its_node *its,
741741
{
742742
u32 db;
743743

744-
if (desc->its_vmovi_cmd.db_enabled)
744+
if (!is_v4_1(its) && desc->its_vmovi_cmd.db_enabled)
745745
db = desc->its_vmovi_cmd.vpe->vpe_db_lpi;
746746
else
747747
db = 1023;
@@ -1353,6 +1353,13 @@ static void its_vlpi_set_doorbell(struct irq_data *d, bool enable)
13531353
u32 event = its_get_event_id(d);
13541354
struct its_vlpi_map *map;
13551355

1356+
/*
1357+
* GICv4.1 does away with the per-LPI nonsense, nothing to do
1358+
* here.
1359+
*/
1360+
if (is_v4_1(its_dev->its))
1361+
return;
1362+
13561363
map = dev_event_to_vlpi_map(its_dev, event);
13571364

13581365
if (map->db_enabled == enable)

0 commit comments

Comments
 (0)