|
@@ -120,11 +120,10 @@ static void gic_redist_wait_for_rwp(void)
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_ARM64
|
|
#ifdef CONFIG_ARM64
|
|
-static DEFINE_STATIC_KEY_FALSE(is_cavium_thunderx);
|
|
|
|
|
|
|
|
static u64 __maybe_unused gic_read_iar(void)
|
|
static u64 __maybe_unused gic_read_iar(void)
|
|
{
|
|
{
|
|
- if (static_branch_unlikely(&is_cavium_thunderx))
|
|
|
|
|
|
+ if (cpus_have_const_cap(ARM64_WORKAROUND_CAVIUM_23154))
|
|
return gic_read_iar_cavium_thunderx();
|
|
return gic_read_iar_cavium_thunderx();
|
|
else
|
|
else
|
|
return gic_read_iar_common();
|
|
return gic_read_iar_common();
|
|
@@ -905,14 +904,6 @@ static const struct irq_domain_ops partition_domain_ops = {
|
|
.select = gic_irq_domain_select,
|
|
.select = gic_irq_domain_select,
|
|
};
|
|
};
|
|
|
|
|
|
-static void gicv3_enable_quirks(void)
|
|
|
|
-{
|
|
|
|
-#ifdef CONFIG_ARM64
|
|
|
|
- if (cpus_have_cap(ARM64_WORKAROUND_CAVIUM_23154))
|
|
|
|
- static_branch_enable(&is_cavium_thunderx);
|
|
|
|
-#endif
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static int __init gic_init_bases(void __iomem *dist_base,
|
|
static int __init gic_init_bases(void __iomem *dist_base,
|
|
struct redist_region *rdist_regs,
|
|
struct redist_region *rdist_regs,
|
|
u32 nr_redist_regions,
|
|
u32 nr_redist_regions,
|
|
@@ -935,8 +926,6 @@ static int __init gic_init_bases(void __iomem *dist_base,
|
|
gic_data.nr_redist_regions = nr_redist_regions;
|
|
gic_data.nr_redist_regions = nr_redist_regions;
|
|
gic_data.redist_stride = redist_stride;
|
|
gic_data.redist_stride = redist_stride;
|
|
|
|
|
|
- gicv3_enable_quirks();
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Find out how many interrupts are supported.
|
|
* Find out how many interrupts are supported.
|
|
* The GIC only supports up to 1020 interrupt sources (SGI+PPI+SPI)
|
|
* The GIC only supports up to 1020 interrupt sources (SGI+PPI+SPI)
|