diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-22 12:33:51 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-22 12:33:51 -0400 |
| commit | bfb7bfef6f9e8f113b892070fd622ae1c52e676b (patch) | |
| tree | 9ee8628ba8301756b007ca30b25be6bdc5d337ea | |
| parent | 90e01058bc36b03c638a073cda13bc8e12f3d0f4 (diff) | |
| parent | a442950d4af036006757bc3da00a2cb939fb2f59 (diff) | |
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Ingo Molnar:
"Mostly irqchip driver fixes, plus a symbol export"
* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
kernel/irq: Export irq_set_parent()
irqchip/gic: Add missing \n to CPU IF adjustment message
irqchip/jcore: Don't show Kconfig menu item for driver
irqchip/eznps: Drop pointless static qualifier in nps400_of_init()
irqchip/gic-v3-its: Fix entry size mask for GITS_BASER
irqchip/gic-v3-its: Fix 64bit GIC{R,ITS}_TYPER accesses
| -rw-r--r-- | drivers/irqchip/Kconfig | 4 | ||||
| -rw-r--r-- | drivers/irqchip/irq-eznps.c | 2 | ||||
| -rw-r--r-- | drivers/irqchip/irq-gic-v3-its.c | 10 | ||||
| -rw-r--r-- | drivers/irqchip/irq-gic.c | 2 | ||||
| -rw-r--r-- | include/linux/irqchip/arm-gic-v3.h | 2 | ||||
| -rw-r--r-- | kernel/irq/manage.c | 1 |
6 files changed, 11 insertions, 10 deletions
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig index 82b0b5daf3f5..bc0af3307bbf 100644 --- a/drivers/irqchip/Kconfig +++ b/drivers/irqchip/Kconfig | |||
| @@ -158,8 +158,8 @@ config PIC32_EVIC | |||
| 158 | select IRQ_DOMAIN | 158 | select IRQ_DOMAIN |
| 159 | 159 | ||
| 160 | config JCORE_AIC | 160 | config JCORE_AIC |
| 161 | bool "J-Core integrated AIC" | 161 | bool "J-Core integrated AIC" if COMPILE_TEST |
| 162 | depends on OF && (SUPERH || COMPILE_TEST) | 162 | depends on OF |
| 163 | select IRQ_DOMAIN | 163 | select IRQ_DOMAIN |
| 164 | help | 164 | help |
| 165 | Support for the J-Core integrated AIC. | 165 | Support for the J-Core integrated AIC. |
diff --git a/drivers/irqchip/irq-eznps.c b/drivers/irqchip/irq-eznps.c index ebc2b0b15f67..2a7a38830a8d 100644 --- a/drivers/irqchip/irq-eznps.c +++ b/drivers/irqchip/irq-eznps.c | |||
| @@ -135,7 +135,7 @@ static const struct irq_domain_ops nps400_irq_ops = { | |||
| 135 | static int __init nps400_of_init(struct device_node *node, | 135 | static int __init nps400_of_init(struct device_node *node, |
| 136 | struct device_node *parent) | 136 | struct device_node *parent) |
| 137 | { | 137 | { |
| 138 | static struct irq_domain *nps400_root_domain; | 138 | struct irq_domain *nps400_root_domain; |
| 139 | 139 | ||
| 140 | if (parent) { | 140 | if (parent) { |
| 141 | pr_err("DeviceTree incore ic not a root irq controller\n"); | 141 | pr_err("DeviceTree incore ic not a root irq controller\n"); |
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index 003495d91f9c..c5dee300e8a3 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c | |||
| @@ -1023,7 +1023,7 @@ static void its_free_tables(struct its_node *its) | |||
| 1023 | 1023 | ||
| 1024 | static int its_alloc_tables(struct its_node *its) | 1024 | static 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) | |||
| 1198 | * We now have to bind each collection to its target | 1198 | * 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 the | 1203 | * This ITS wants the physical address of the |
| 1204 | * redistributor. | 1204 | * redistributor. |
| @@ -1208,7 +1208,7 @@ static void its_cpu_init_collection(void) | |||
| 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, | |||
| 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: | |||
| 1763 | 1763 | ||
| 1764 | static bool gic_rdists_supports_plpis(void) | 1764 | static 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 | ||
| 1769 | int its_cpu_init(void) | 1769 | int its_cpu_init(void) |
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c index 58e5b4e87056..d6c404b3584d 100644 --- a/drivers/irqchip/irq-gic.c +++ b/drivers/irqchip/irq-gic.c | |||
| @@ -1279,7 +1279,7 @@ static bool gic_check_eoimode(struct device_node *node, void __iomem **base) | |||
| 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 | ||
diff --git a/include/linux/irqchip/arm-gic-v3.h b/include/linux/irqchip/arm-gic-v3.h index 8361c8d3edd1..b7e34313cdfe 100644 --- a/include/linux/irqchip/arm-gic-v3.h +++ b/include/linux/irqchip/arm-gic-v3.h | |||
| @@ -290,7 +290,7 @@ | |||
| 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) |
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 0c5f1a5db654..9c4d30483264 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
| @@ -721,6 +721,7 @@ int irq_set_parent(int irq, int parent_irq) | |||
| 721 | irq_put_desc_unlock(desc, flags); | 721 | irq_put_desc_unlock(desc, flags); |
| 722 | return 0; | 722 | return 0; |
| 723 | } | 723 | } |
| 724 | EXPORT_SYMBOL_GPL(irq_set_parent); | ||
| 724 | #endif | 725 | #endif |
| 725 | 726 | ||
| 726 | /* | 727 | /* |
