diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-15 12:10:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-15 12:10:53 -0500 |
commit | b84da9fa47cf6e8dfd71d673a2f744ec1cac452c (patch) | |
tree | 800a1cb1e939eb84f7e7018be64e94be5c972ca0 /drivers/irqchip/irq-mips-gic.c | |
parent | 12b76f3bf336388916ddf8047156f9e9993ff4e9 (diff) | |
parent | da34232641a91ca785a787c23c158488e459b938 (diff) |
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS updates from Ralf Baechle:
"These are the highlists of the main MIPS pull request for 4.4:
- Add latencytop support
- Support appended DTBs
- VDSO support and initially use it for gettimeofday.
- Drop the .MIPS.abiflags and ELF NOTE sections from vmlinux
- Support for the 5KE, an internal test core.
- Switch all MIPS platfroms to libata drivers.
- Improved support, cleanups for ralink and Lantiq platforms.
- Support for the new xilfpga platform.
- A number of DTB improvments for BMIPS.
- Improved support for CM and CPS.
- Minor JZ4740 and BCM47xx enhancements"
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (120 commits)
MIPS: idle: add case for CPU_5KE
MIPS: Octeon: Support APPENDED_DTB
MIPS: vmlinux: create a section for appended DTB
MIPS: Clean up compat_siginfo_t
MIPS: Fix PAGE_MASK definition
MIPS: BMIPS: Enable GZIP ramdisk and timed printks
MIPS: Add xilfpga defconfig
MIPS: xilfpga: Add mipsfpga platform code
MIPS: xilfpga: Add xilfpga device tree files.
dt-bindings: MIPS: Document xilfpga bindings and boot style
MIPS: Make MIPS_CMDLINE_DTB default
MIPS: Make the kernel arguments from dtb available
MIPS: Use USE_OF as the guard for appended dtb
MIPS: BCM63XX: Use pr_* instead of printk
MIPS: Loongson: Cleanup CONFIG_LOONGSON_SUSPEND.
MIPS: lantiq: Disable xbar fpi burst mode
MIPS: lantiq: Force the crossbar to big endian
MIPS: lantiq: Initialize the USB core on boot
MIPS: lantiq: Return correct value for fpi clock on ar9
MIPS: ralink: Add missing clock on rt305x
...
Diffstat (limited to 'drivers/irqchip/irq-mips-gic.c')
-rw-r--r-- | drivers/irqchip/irq-mips-gic.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-mips-gic.c b/drivers/irqchip/irq-mips-gic.c index aeaa061f0dbf..9e17ef27a183 100644 --- a/drivers/irqchip/irq-mips-gic.c +++ b/drivers/irqchip/irq-mips-gic.c | |||
@@ -29,6 +29,7 @@ struct gic_pcpu_mask { | |||
29 | DECLARE_BITMAP(pcpu_mask, GIC_MAX_INTRS); | 29 | DECLARE_BITMAP(pcpu_mask, GIC_MAX_INTRS); |
30 | }; | 30 | }; |
31 | 31 | ||
32 | static unsigned long __gic_base_addr; | ||
32 | static void __iomem *gic_base; | 33 | static void __iomem *gic_base; |
33 | static struct gic_pcpu_mask pcpu_masks[NR_CPUS]; | 34 | static struct gic_pcpu_mask pcpu_masks[NR_CPUS]; |
34 | static DEFINE_SPINLOCK(gic_lock); | 35 | static DEFINE_SPINLOCK(gic_lock); |
@@ -301,6 +302,17 @@ int gic_get_c0_fdc_int(void) | |||
301 | GIC_LOCAL_TO_HWIRQ(GIC_LOCAL_INT_FDC)); | 302 | GIC_LOCAL_TO_HWIRQ(GIC_LOCAL_INT_FDC)); |
302 | } | 303 | } |
303 | 304 | ||
305 | int gic_get_usm_range(struct resource *gic_usm_res) | ||
306 | { | ||
307 | if (!gic_present) | ||
308 | return -1; | ||
309 | |||
310 | gic_usm_res->start = __gic_base_addr + USM_VISIBLE_SECTION_OFS; | ||
311 | gic_usm_res->end = gic_usm_res->start + (USM_VISIBLE_SECTION_SIZE - 1); | ||
312 | |||
313 | return 0; | ||
314 | } | ||
315 | |||
304 | static void gic_handle_shared_int(bool chained) | 316 | static void gic_handle_shared_int(bool chained) |
305 | { | 317 | { |
306 | unsigned int i, intr, virq, gic_reg_step = mips_cm_is64 ? 8 : 4; | 318 | unsigned int i, intr, virq, gic_reg_step = mips_cm_is64 ? 8 : 4; |
@@ -798,6 +810,8 @@ static void __init __gic_init(unsigned long gic_base_addr, | |||
798 | { | 810 | { |
799 | unsigned int gicconfig; | 811 | unsigned int gicconfig; |
800 | 812 | ||
813 | __gic_base_addr = gic_base_addr; | ||
814 | |||
801 | gic_base = ioremap_nocache(gic_base_addr, gic_addrspace_size); | 815 | gic_base = ioremap_nocache(gic_base_addr, gic_addrspace_size); |
802 | 816 | ||
803 | gicconfig = gic_read(GIC_REG(SHARED, GIC_SH_CONFIG)); | 817 | gicconfig = gic_read(GIC_REG(SHARED, GIC_SH_CONFIG)); |