提交 3680746a 编写于 作者: P Paul Burton 提交者: Ralf Baechle

irqchip: mips-gic: Convert remaining shared reg access to new accessors

Convert the remaining accesses to registers in the GIC shared register
block to use the new accessor functions provided by asm/mips-gic.h,
resulting in code which is often shorter & easier to read.
Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/17034/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 0efe3cbf
...@@ -119,7 +119,7 @@ static void gic_send_ipi(struct irq_data *d, unsigned int cpu) ...@@ -119,7 +119,7 @@ static void gic_send_ipi(struct irq_data *d, unsigned int cpu)
{ {
irq_hw_number_t hwirq = GIC_HWIRQ_TO_SHARED(irqd_to_hwirq(d)); irq_hw_number_t hwirq = GIC_HWIRQ_TO_SHARED(irqd_to_hwirq(d));
gic_write(GIC_REG(SHARED, GIC_SH_WEDGE), GIC_SH_WEDGE_SET(hwirq)); write_gic_wedge(GIC_WEDGE_RW | hwirq);
} }
int gic_get_c0_compare_int(void) int gic_get_c0_compare_int(void)
...@@ -215,7 +215,7 @@ static void gic_ack_irq(struct irq_data *d) ...@@ -215,7 +215,7 @@ static void gic_ack_irq(struct irq_data *d)
{ {
unsigned int irq = GIC_HWIRQ_TO_SHARED(d->hwirq); unsigned int irq = GIC_HWIRQ_TO_SHARED(d->hwirq);
gic_write(GIC_REG(SHARED, GIC_SH_WEDGE), GIC_SH_WEDGE_CLR(irq)); write_gic_wedge(irq);
} }
static int gic_set_type(struct irq_data *d, unsigned int type) static int gic_set_type(struct irq_data *d, unsigned int type)
...@@ -700,13 +700,13 @@ static void __init __gic_init(unsigned long gic_base_addr, ...@@ -700,13 +700,13 @@ static void __init __gic_init(unsigned long gic_base_addr,
mips_gic_base = ioremap_nocache(gic_base_addr, gic_addrspace_size); mips_gic_base = ioremap_nocache(gic_base_addr, gic_addrspace_size);
gicconfig = gic_read(GIC_REG(SHARED, GIC_SH_CONFIG)); gicconfig = read_gic_config();
gic_shared_intrs = (gicconfig & GIC_SH_CONFIG_NUMINTRS_MSK) >> gic_shared_intrs = gicconfig & GIC_CONFIG_NUMINTERRUPTS;
GIC_SH_CONFIG_NUMINTRS_SHF; gic_shared_intrs >>= __fls(GIC_CONFIG_NUMINTERRUPTS);
gic_shared_intrs = ((gic_shared_intrs + 1) * 8); gic_shared_intrs = (gic_shared_intrs + 1) * 8;
gic_vpes = (gicconfig & GIC_SH_CONFIG_NUMVPES_MSK) >> gic_vpes = gicconfig & GIC_CONFIG_PVPS;
GIC_SH_CONFIG_NUMVPES_SHF; gic_vpes >>= __fls(GIC_CONFIG_PVPS);
gic_vpes = gic_vpes + 1; gic_vpes = gic_vpes + 1;
if (cpu_has_veic) { if (cpu_has_veic) {
......
...@@ -19,8 +19,6 @@ ...@@ -19,8 +19,6 @@
#define GIC_REG(segment, offset) (segment##_##SECTION_OFS + offset##_##OFS) #define GIC_REG(segment, offset) (segment##_##SECTION_OFS + offset##_##OFS)
/* GIC Address Space */ /* GIC Address Space */
#define SHARED_SECTION_OFS 0x0000
#define SHARED_SECTION_SIZE 0x8000
#define VPE_LOCAL_SECTION_OFS 0x8000 #define VPE_LOCAL_SECTION_OFS 0x8000
#define VPE_LOCAL_SECTION_SIZE 0x4000 #define VPE_LOCAL_SECTION_SIZE 0x4000
#define VPE_OTHER_SECTION_OFS 0xc000 #define VPE_OTHER_SECTION_OFS 0xc000
...@@ -28,15 +26,6 @@ ...@@ -28,15 +26,6 @@
#define USM_VISIBLE_SECTION_OFS 0x10000 #define USM_VISIBLE_SECTION_OFS 0x10000
#define USM_VISIBLE_SECTION_SIZE 0x10000 #define USM_VISIBLE_SECTION_SIZE 0x10000
/* Register Map for Shared Section */
#define GIC_SH_CONFIG_OFS 0x0000
#define GIC_SH_REVISIONID_OFS 0x0020
/* Set/Clear corresponding bit in Edge Detect Register */
#define GIC_SH_WEDGE_OFS 0x0280
/* Register Map for Local Section */ /* Register Map for Local Section */
#define GIC_VPE_CTL_OFS 0x0000 #define GIC_VPE_CTL_OFS 0x0000
#define GIC_VPE_PEND_OFS 0x0004 #define GIC_VPE_PEND_OFS 0x0004
...@@ -65,15 +54,6 @@ ...@@ -65,15 +54,6 @@
#define GIC_UMV_SH_COUNTER_63_32_OFS 0x0004 #define GIC_UMV_SH_COUNTER_63_32_OFS 0x0004
/* Masks */ /* Masks */
#define GIC_SH_CONFIG_NUMINTRS_SHF 16
#define GIC_SH_CONFIG_NUMINTRS_MSK (MSK(8) << GIC_SH_CONFIG_NUMINTRS_SHF)
#define GIC_SH_CONFIG_NUMVPES_SHF 0
#define GIC_SH_CONFIG_NUMVPES_MSK (MSK(8) << GIC_SH_CONFIG_NUMVPES_SHF)
#define GIC_SH_WEDGE_SET(intr) ((intr) | (0x1 << 31))
#define GIC_SH_WEDGE_CLR(intr) ((intr) & ~(0x1 << 31))
#define GIC_MAP_SHF 0 #define GIC_MAP_SHF 0
#define GIC_MAP_MSK (MSK(6) << GIC_MAP_SHF) #define GIC_MAP_MSK (MSK(6) << GIC_MAP_SHF)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册