diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index 8ccff68c76d7..5b735395a320 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -2168,7 +2168,9 @@ static struct page *its_allocate_prop_table(gfp_t gfp_flags) { struct page *prop_page; - if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566")) + if (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || + of_machine_is_compatible("rockchip,rk3566")) gfp_flags |= GFP_DMA32; prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ)); if (!prop_page) @@ -2306,7 +2308,9 @@ static int its_setup_baser(struct its_node *its, struct its_baser *baser, } gfp_flags = GFP_KERNEL | __GFP_ZERO; - if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566")) + if (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || + of_machine_is_compatible("rockchip,rk3566")) gfp_flags |= GFP_DMA32; page = alloc_pages_node(its->numa_node, gfp_flags, order); if (!page) @@ -2357,6 +2361,7 @@ retry_baser: if (IS_ENABLED(CONFIG_NO_GKI) && (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588"))) { if (tmp & GITS_BASER_SHAREABILITY_MASK) @@ -2947,7 +2952,9 @@ static struct page *its_allocate_pending_table(gfp_t gfp_flags) { struct page *pend_page; - if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566")) + if (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || + of_machine_is_compatible("rockchip,rk3566")) gfp_flags |= GFP_DMA32; pend_page = alloc_pages(gfp_flags | __GFP_ZERO, get_order(LPI_PENDBASE_SZ)); @@ -3108,6 +3115,7 @@ static void its_cpu_init_lpis(void) if (IS_ENABLED(CONFIG_NO_GKI) && (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588"))) tmp &= ~GICR_PROPBASER_SHAREABILITY_MASK; @@ -3138,6 +3146,7 @@ static void its_cpu_init_lpis(void) if (IS_ENABLED(CONFIG_NO_GKI) && (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588"))) tmp &= ~GICR_PENDBASER_SHAREABILITY_MASK; @@ -3306,7 +3315,9 @@ static bool its_alloc_table_entry(struct its_node *its, if (!table[idx]) { gfp_t gfp_flags = GFP_KERNEL | __GFP_ZERO; - if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566")) + if (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || + of_machine_is_compatible("rockchip,rk3566")) gfp_flags |= GFP_DMA32; page = alloc_pages_node(its->numa_node, gfp_flags, get_order(baser->psz)); @@ -3414,7 +3425,9 @@ static struct its_device *its_create_device(struct its_node *its, u32 dev_id, sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1); sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1; gfp_flags = GFP_KERNEL; - if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566")) { + if (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || + of_machine_is_compatible("rockchip,rk3566")) { gfp_flags |= GFP_DMA32; itt = (void *)__get_free_pages(gfp_flags, get_order(sz)); } else { @@ -3436,6 +3449,7 @@ static struct its_device *its_create_device(struct its_node *its, u32 dev_id, kfree(dev); if (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || of_machine_is_compatible("rockchip,rk3566")) free_pages((unsigned long)itt, get_order(sz)); else @@ -3480,6 +3494,7 @@ static void its_free_device(struct its_device *its_dev) kfree(its_dev->event_map.col_map); if (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || of_machine_is_compatible("rockchip,rk3566")) free_pages((unsigned long)its_dev->itt, get_order(its_dev->itt_sz)); else @@ -5085,7 +5100,9 @@ static int __init its_probe_one(struct resource *res, its->numa_node = numa_node; gfp_flags = GFP_KERNEL | __GFP_ZERO; - if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566")) + if (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || + of_machine_is_compatible("rockchip,rk3566")) gfp_flags |= GFP_DMA32; page = alloc_pages_node(its->numa_node, gfp_flags, get_order(ITS_CMD_QUEUE_SZ)); @@ -5120,6 +5137,7 @@ static int __init its_probe_one(struct resource *res, if (IS_ENABLED(CONFIG_NO_GKI) && (of_machine_is_compatible("rockchip,rk3568") || + of_machine_is_compatible("rockchip,rk3567") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588"))) tmp &= ~GITS_CBASER_SHAREABILITY_MASK;