History

Merge tag 'gic-fixes-for-4.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent

Pull GIC updates from Marc Zyngier: - Fix for 32bit accesses that should be 64bit on 64bit machines - Fix for a field decoding macro - Beautify a warning message

Thomas Gleixner committed 10 years ago

Commit a4429502 parents 3118dac fd5bed43 files · +7 −7Browse files

Unified · Split

3 files
  1. drivers/irqchip/irq-gic-v3-its.c +5 −5
  2. drivers/irqchip/irq-gic.c +1 −1
  3. include/linux/irqchip/arm-gic-v3.h +1 −1
drivers/irqchip/irq-gic-v3-its.c+5−5
@@ -1023,7 +1023,7 @@ static void its_free_tables(struct its_node *its) · 1022 unmodified lines
1023 1023
1024static int its_alloc_tables(struct its_node *its)1024static int its_alloc_tables(struct its_node *its)
1025{1025{
1026 u64 typer = readq_relaxed(its->base + GITS_TYPER);1026 u64 typer = gic_read_typer(its->base + GITS_TYPER);
1027 u32 ids = GITS_TYPER_DEVBITS(typer);1027 u32 ids = GITS_TYPER_DEVBITS(typer);
1028 u64 shr = GITS_BASER_InnerShareable;1028 u64 shr = GITS_BASER_InnerShareable;
1029 u64 cache = GITS_BASER_WaWb;1029 u64 cache = GITS_BASER_WaWb;
@@ -1198,7 +1198,7 @@ static void its_cpu_init_collection(void) · 168 unmodified lines
1198 * We now have to bind each collection to its target1198 * We now have to bind each collection to its target
1199 * redistributor.1199 * redistributor.
1200 */1200 */
1201 if (readq_relaxed(its->base + GITS_TYPER) & GITS_TYPER_PTA) {1201 if (gic_read_typer(its->base + GITS_TYPER) & GITS_TYPER_PTA) {
1202 /*1202 /*
1203 * This ITS wants the physical address of the1203 * This ITS wants the physical address of the
1204 * redistributor.1204 * redistributor.
@@ -1208,7 +1208,7 @@ static void its_cpu_init_collection(void) · 3 unmodified lines
1208 /*1208 /*
1209 * This ITS wants a linear CPU number.1209 * This ITS wants a linear CPU number.
1210 */1210 */
1211 target = readq_relaxed(gic_data_rdist_rd_base() + GICR_TYPER);1211 target = gic_read_typer(gic_data_rdist_rd_base() + GICR_TYPER);
1212 target = GICR_TYPER_CPU_NUMBER(target) << 16;1212 target = GICR_TYPER_CPU_NUMBER(target) << 16;
1213 }1213 }
1214 1214
@@ -1691,7 +1691,7 @@ static int __init its_probe_one(struct resource *res, · 476 unmodified lines
1691 INIT_LIST_HEAD(&its->its_device_list);1691 INIT_LIST_HEAD(&its->its_device_list);
1692 its->base = its_base;1692 its->base = its_base;
1693 its->phys_base = res->start;1693 its->phys_base = res->start;
1694 its->ite_size = ((readl_relaxed(its_base + GITS_TYPER) >> 4) & 0xf) + 1;1694 its->ite_size = ((gic_read_typer(its_base + GITS_TYPER) >> 4) & 0xf) + 1;
1695 its->numa_node = numa_node;1695 its->numa_node = numa_node;
1696 1696
1697 its->cmd_base = kzalloc(ITS_CMD_QUEUE_SZ, GFP_KERNEL);1697 its->cmd_base = kzalloc(ITS_CMD_QUEUE_SZ, GFP_KERNEL);
@@ -1763,7 +1763,7 @@ out_unmap: · 65 unmodified lines
1763 1763
1764static bool gic_rdists_supports_plpis(void)1764static bool gic_rdists_supports_plpis(void)
1765{1765{
1766 return !!(readl_relaxed(gic_data_rdist_rd_base() + GICR_TYPER) & GICR_TYPER_PLPIS);1766 return !!(gic_read_typer(gic_data_rdist_rd_base() + GICR_TYPER) & GICR_TYPER_PLPIS);
1767}1767}
1768 1768
1769int its_cpu_init(void)1769int its_cpu_init(void)
drivers/irqchip/irq-gic.c+1−1
@@ -1279,7 +1279,7 @@ static bool gic_check_eoimode(struct device_node *node, void __iomem **base) · 1278 unmodified lines
1279 */1279 */
1280 *base += 0xf000;1280 *base += 0xf000;
1281 cpuif_res.start += 0xf000;1281 cpuif_res.start += 0xf000;
1282 pr_warn("GIC: Adjusting CPU interface base to %pa",1282 pr_warn("GIC: Adjusting CPU interface base to %pa\n",
1283 &cpuif_res.start);1283 &cpuif_res.start);
1284 }1284 }
1285 1285
include/linux/irqchip/arm-gic-v3.h+1−1
@@ -290,7 +290,7 @@ · 289 unmodified lines
290#define GITS_BASER_TYPE_SHIFT (56)290#define GITS_BASER_TYPE_SHIFT (56)
291#define GITS_BASER_TYPE(r) (((r) >> GITS_BASER_TYPE_SHIFT) & 7)291#define GITS_BASER_TYPE(r) (((r) >> GITS_BASER_TYPE_SHIFT) & 7)
292#define GITS_BASER_ENTRY_SIZE_SHIFT (48)292#define GITS_BASER_ENTRY_SIZE_SHIFT (48)
293#define GITS_BASER_ENTRY_SIZE(r) ((((r) >> GITS_BASER_ENTRY_SIZE_SHIFT) & 0xff) + 1)293#define GITS_BASER_ENTRY_SIZE(r) ((((r) >> GITS_BASER_ENTRY_SIZE_SHIFT) & 0x1f) + 1)
294#define GITS_BASER_SHAREABILITY_SHIFT (10)294#define GITS_BASER_SHAREABILITY_SHIFT (10)
295#define GITS_BASER_InnerShareable \295#define GITS_BASER_InnerShareable \
296 GIC_BASER_SHAREABILITY(GITS_BASER, InnerShareable)296 GIC_BASER_SHAREABILITY(GITS_BASER, InnerShareable)