* [Qemu-devel] [PATCH] hw/intc/arm_gic: Drop GIC_BASE_IRQ macro
@ 2018-08-24 16:18 Peter Maydell
2018-08-26 1:32 ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé
2018-09-07 7:46 ` [Qemu-devel] " Luc Michel
0 siblings, 2 replies; 3+ messages in thread
From: Peter Maydell @ 2018-08-24 16:18 UTC (permalink / raw)
To: qemu-arm, qemu-devel; +Cc: patches
The GIC_BASE_IRQ macro is a leftover from when we shared code
between the GICv2 and the v7M NVIC. Since the NVIC is now
split off, GIC_BASE_IRQ is always 0, and we can just delete it.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/intc/gic_internal.h | 2 --
hw/intc/arm_gic.c | 31 ++++++++++++++-----------------
hw/intc/arm_gic_common.c | 1 -
3 files changed, 14 insertions(+), 20 deletions(-)
diff --git a/hw/intc/gic_internal.h b/hw/intc/gic_internal.h
index 45c2af0bf59..8d29b40ca10 100644
--- a/hw/intc/gic_internal.h
+++ b/hw/intc/gic_internal.h
@@ -26,8 +26,6 @@
#define ALL_CPU_MASK ((unsigned)(((1 << GIC_NCPU) - 1)))
-#define GIC_BASE_IRQ 0
-
#define GIC_DIST_SET_ENABLED(irq, cm) (s->irq_state[irq].enabled |= (cm))
#define GIC_DIST_CLEAR_ENABLED(irq, cm) (s->irq_state[irq].enabled &= ~(cm))
#define GIC_DIST_TEST_ENABLED(irq, cm) ((s->irq_state[irq].enabled & (cm)) != 0)
diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
index 542b4b93eab..b3ac2d11fc5 100644
--- a/hw/intc/arm_gic.c
+++ b/hw/intc/arm_gic.c
@@ -955,7 +955,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
res = 0;
if (!(s->security_extn && !attrs.secure) && gic_has_groups(s)) {
/* Every byte offset holds 8 group status bits */
- irq = (offset - 0x080) * 8 + GIC_BASE_IRQ;
+ irq = (offset - 0x080) * 8;
if (irq >= s->num_irq) {
goto bad_reg;
}
@@ -974,7 +974,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
irq = (offset - 0x100) * 8;
else
irq = (offset - 0x180) * 8;
- irq += GIC_BASE_IRQ;
if (irq >= s->num_irq)
goto bad_reg;
res = 0;
@@ -994,7 +993,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
irq = (offset - 0x200) * 8;
else
irq = (offset - 0x280) * 8;
- irq += GIC_BASE_IRQ;
if (irq >= s->num_irq)
goto bad_reg;
res = 0;
@@ -1019,7 +1017,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
goto bad_reg;
}
- irq += GIC_BASE_IRQ;
if (irq >= s->num_irq)
goto bad_reg;
res = 0;
@@ -1036,7 +1033,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
}
} else if (offset < 0x800) {
/* Interrupt Priority. */
- irq = (offset - 0x400) + GIC_BASE_IRQ;
+ irq = (offset - 0x400);
if (irq >= s->num_irq)
goto bad_reg;
res = gic_dist_get_priority(s, cpu, irq, attrs);
@@ -1046,7 +1043,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
/* For uniprocessor GICs these RAZ/WI */
res = 0;
} else {
- irq = (offset - 0x800) + GIC_BASE_IRQ;
+ irq = (offset - 0x800);
if (irq >= s->num_irq) {
goto bad_reg;
}
@@ -1060,7 +1057,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
}
} else if (offset < 0xf00) {
/* Interrupt Configuration. */
- irq = (offset - 0xc00) * 4 + GIC_BASE_IRQ;
+ irq = (offset - 0xc00) * 4;
if (irq >= s->num_irq)
goto bad_reg;
res = 0;
@@ -1183,7 +1180,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
*/
if (!(s->security_extn && !attrs.secure) && gic_has_groups(s)) {
/* Every byte offset holds 8 group status bits */
- irq = (offset - 0x80) * 8 + GIC_BASE_IRQ;
+ irq = (offset - 0x80) * 8;
if (irq >= s->num_irq) {
goto bad_reg;
}
@@ -1204,7 +1201,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
}
} else if (offset < 0x180) {
/* Interrupt Set Enable. */
- irq = (offset - 0x100) * 8 + GIC_BASE_IRQ;
+ irq = (offset - 0x100) * 8;
if (irq >= s->num_irq)
goto bad_reg;
if (irq < GIC_NR_SGIS) {
@@ -1239,7 +1236,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
}
} else if (offset < 0x200) {
/* Interrupt Clear Enable. */
- irq = (offset - 0x180) * 8 + GIC_BASE_IRQ;
+ irq = (offset - 0x180) * 8;
if (irq >= s->num_irq)
goto bad_reg;
if (irq < GIC_NR_SGIS) {
@@ -1264,7 +1261,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
}
} else if (offset < 0x280) {
/* Interrupt Set Pending. */
- irq = (offset - 0x200) * 8 + GIC_BASE_IRQ;
+ irq = (offset - 0x200) * 8;
if (irq >= s->num_irq)
goto bad_reg;
if (irq < GIC_NR_SGIS) {
@@ -1283,7 +1280,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
}
} else if (offset < 0x300) {
/* Interrupt Clear Pending. */
- irq = (offset - 0x280) * 8 + GIC_BASE_IRQ;
+ irq = (offset - 0x280) * 8;
if (irq >= s->num_irq)
goto bad_reg;
if (irq < GIC_NR_SGIS) {
@@ -1309,7 +1306,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
goto bad_reg;
}
- irq = (offset - 0x300) * 8 + GIC_BASE_IRQ;
+ irq = (offset - 0x300) * 8;
if (irq >= s->num_irq) {
goto bad_reg;
}
@@ -1333,7 +1330,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
goto bad_reg;
}
- irq = (offset - 0x380) * 8 + GIC_BASE_IRQ;
+ irq = (offset - 0x380) * 8;
if (irq >= s->num_irq) {
goto bad_reg;
}
@@ -1353,7 +1350,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
}
} else if (offset < 0x800) {
/* Interrupt Priority. */
- irq = (offset - 0x400) + GIC_BASE_IRQ;
+ irq = (offset - 0x400);
if (irq >= s->num_irq)
goto bad_reg;
gic_dist_set_priority(s, cpu, irq, value, attrs);
@@ -1362,7 +1359,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
* annoying exception of the 11MPCore's GIC.
*/
if (s->num_cpu != 1 || s->revision == REV_11MPCORE) {
- irq = (offset - 0x800) + GIC_BASE_IRQ;
+ irq = (offset - 0x800);
if (irq >= s->num_irq) {
goto bad_reg;
}
@@ -1375,7 +1372,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
}
} else if (offset < 0xf00) {
/* Interrupt Configuration. */
- irq = (offset - 0xc00) * 4 + GIC_BASE_IRQ;
+ irq = (offset - 0xc00) * 4;
if (irq >= s->num_irq)
goto bad_reg;
if (irq < GIC_NR_SGIS)
diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c
index 547dc41185e..57569a4e590 100644
--- a/hw/intc/arm_gic_common.c
+++ b/hw/intc/arm_gic_common.c
@@ -191,7 +191,6 @@ static void arm_gic_common_realize(DeviceState *dev, Error **errp)
s->num_cpu, GIC_NCPU);
return;
}
- s->num_irq += GIC_BASE_IRQ;
if (s->num_irq > GIC_MAXIRQ) {
error_setg(errp,
"requested %u interrupt lines exceeds GIC maximum %d",
--
2.18.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [Qemu-arm] [PATCH] hw/intc/arm_gic: Drop GIC_BASE_IRQ macro
2018-08-24 16:18 [Qemu-devel] [PATCH] hw/intc/arm_gic: Drop GIC_BASE_IRQ macro Peter Maydell
@ 2018-08-26 1:32 ` Philippe Mathieu-Daudé
2018-09-07 7:46 ` [Qemu-devel] " Luc Michel
1 sibling, 0 replies; 3+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-08-26 1:32 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-arm, qemu-devel@nongnu.org Developers, patches
Le ven. 24 août 2018 13:18, Peter Maydell <peter.maydell@linaro.org> a
écrit :
> The GIC_BASE_IRQ macro is a leftover from when we shared code
> between the GICv2 and the v7M NVIC. Since the NVIC is now
> split off, GIC_BASE_IRQ is always 0, and we can just delete it.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
> hw/intc/gic_internal.h | 2 --
> hw/intc/arm_gic.c | 31 ++++++++++++++-----------------
> hw/intc/arm_gic_common.c | 1 -
> 3 files changed, 14 insertions(+), 20 deletions(-)
>
> diff --git a/hw/intc/gic_internal.h b/hw/intc/gic_internal.h
> index 45c2af0bf59..8d29b40ca10 100644
> --- a/hw/intc/gic_internal.h
> +++ b/hw/intc/gic_internal.h
> @@ -26,8 +26,6 @@
>
> #define ALL_CPU_MASK ((unsigned)(((1 << GIC_NCPU) - 1)))
>
> -#define GIC_BASE_IRQ 0
> -
> #define GIC_DIST_SET_ENABLED(irq, cm) (s->irq_state[irq].enabled |= (cm))
> #define GIC_DIST_CLEAR_ENABLED(irq, cm) (s->irq_state[irq].enabled &=
> ~(cm))
> #define GIC_DIST_TEST_ENABLED(irq, cm) ((s->irq_state[irq].enabled &
> (cm)) != 0)
> diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
> index 542b4b93eab..b3ac2d11fc5 100644
> --- a/hw/intc/arm_gic.c
> +++ b/hw/intc/arm_gic.c
> @@ -955,7 +955,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr
> offset, MemTxAttrs attrs)
> res = 0;
> if (!(s->security_extn && !attrs.secure) &&
> gic_has_groups(s)) {
> /* Every byte offset holds 8 group status bits */
> - irq = (offset - 0x080) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x080) * 8;
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -974,7 +974,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr
> offset, MemTxAttrs attrs)
> irq = (offset - 0x100) * 8;
> else
> irq = (offset - 0x180) * 8;
> - irq += GIC_BASE_IRQ;
> if (irq >= s->num_irq)
> goto bad_reg;
> res = 0;
> @@ -994,7 +993,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr
> offset, MemTxAttrs attrs)
> irq = (offset - 0x200) * 8;
> else
> irq = (offset - 0x280) * 8;
> - irq += GIC_BASE_IRQ;
> if (irq >= s->num_irq)
> goto bad_reg;
> res = 0;
> @@ -1019,7 +1017,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr
> offset, MemTxAttrs attrs)
> goto bad_reg;
> }
>
> - irq += GIC_BASE_IRQ;
> if (irq >= s->num_irq)
> goto bad_reg;
> res = 0;
> @@ -1036,7 +1033,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr
> offset, MemTxAttrs attrs)
> }
> } else if (offset < 0x800) {
> /* Interrupt Priority. */
> - irq = (offset - 0x400) + GIC_BASE_IRQ;
> + irq = (offset - 0x400);
> if (irq >= s->num_irq)
> goto bad_reg;
> res = gic_dist_get_priority(s, cpu, irq, attrs);
> @@ -1046,7 +1043,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr
> offset, MemTxAttrs attrs)
> /* For uniprocessor GICs these RAZ/WI */
> res = 0;
> } else {
> - irq = (offset - 0x800) + GIC_BASE_IRQ;
> + irq = (offset - 0x800);
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1060,7 +1057,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr
> offset, MemTxAttrs attrs)
> }
> } else if (offset < 0xf00) {
> /* Interrupt Configuration. */
> - irq = (offset - 0xc00) * 4 + GIC_BASE_IRQ;
> + irq = (offset - 0xc00) * 4;
> if (irq >= s->num_irq)
> goto bad_reg;
> res = 0;
> @@ -1183,7 +1180,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> */
> if (!(s->security_extn && !attrs.secure) &&
> gic_has_groups(s)) {
> /* Every byte offset holds 8 group status bits */
> - irq = (offset - 0x80) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x80) * 8;
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1204,7 +1201,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> }
> } else if (offset < 0x180) {
> /* Interrupt Set Enable. */
> - irq = (offset - 0x100) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x100) * 8;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS) {
> @@ -1239,7 +1236,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> }
> } else if (offset < 0x200) {
> /* Interrupt Clear Enable. */
> - irq = (offset - 0x180) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x180) * 8;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS) {
> @@ -1264,7 +1261,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> }
> } else if (offset < 0x280) {
> /* Interrupt Set Pending. */
> - irq = (offset - 0x200) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x200) * 8;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS) {
> @@ -1283,7 +1280,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> }
> } else if (offset < 0x300) {
> /* Interrupt Clear Pending. */
> - irq = (offset - 0x280) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x280) * 8;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS) {
> @@ -1309,7 +1306,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> goto bad_reg;
> }
>
> - irq = (offset - 0x300) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x300) * 8;
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1333,7 +1330,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> goto bad_reg;
> }
>
> - irq = (offset - 0x380) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x380) * 8;
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1353,7 +1350,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> }
> } else if (offset < 0x800) {
> /* Interrupt Priority. */
> - irq = (offset - 0x400) + GIC_BASE_IRQ;
> + irq = (offset - 0x400);
> if (irq >= s->num_irq)
> goto bad_reg;
> gic_dist_set_priority(s, cpu, irq, value, attrs);
> @@ -1362,7 +1359,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> * annoying exception of the 11MPCore's GIC.
> */
> if (s->num_cpu != 1 || s->revision == REV_11MPCORE) {
> - irq = (offset - 0x800) + GIC_BASE_IRQ;
> + irq = (offset - 0x800);
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1375,7 +1372,7 @@ static void gic_dist_writeb(void *opaque, hwaddr
> offset,
> }
> } else if (offset < 0xf00) {
> /* Interrupt Configuration. */
> - irq = (offset - 0xc00) * 4 + GIC_BASE_IRQ;
> + irq = (offset - 0xc00) * 4;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS)
> diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c
> index 547dc41185e..57569a4e590 100644
> --- a/hw/intc/arm_gic_common.c
> +++ b/hw/intc/arm_gic_common.c
> @@ -191,7 +191,6 @@ static void arm_gic_common_realize(DeviceState *dev,
> Error **errp)
> s->num_cpu, GIC_NCPU);
> return;
> }
> - s->num_irq += GIC_BASE_IRQ;
> if (s->num_irq > GIC_MAXIRQ) {
> error_setg(errp,
> "requested %u interrupt lines exceeds GIC maximum %d",
> --
> 2.18.0
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] hw/intc/arm_gic: Drop GIC_BASE_IRQ macro
2018-08-24 16:18 [Qemu-devel] [PATCH] hw/intc/arm_gic: Drop GIC_BASE_IRQ macro Peter Maydell
2018-08-26 1:32 ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé
@ 2018-09-07 7:46 ` Luc Michel
1 sibling, 0 replies; 3+ messages in thread
From: Luc Michel @ 2018-09-07 7:46 UTC (permalink / raw)
To: Peter Maydell, qemu-arm, qemu-devel; +Cc: patches
[-- Attachment #1: Type: text/plain, Size: 8107 bytes --]
On 8/24/18 6:18 PM, Peter Maydell wrote:
> The GIC_BASE_IRQ macro is a leftover from when we shared code
> between the GICv2 and the v7M NVIC. Since the NVIC is now
> split off, GIC_BASE_IRQ is always 0, and we can just delete it.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Luc Michel <luc.michel@greensocs.com>
> ---
> hw/intc/gic_internal.h | 2 --
> hw/intc/arm_gic.c | 31 ++++++++++++++-----------------
> hw/intc/arm_gic_common.c | 1 -
> 3 files changed, 14 insertions(+), 20 deletions(-)
>
> diff --git a/hw/intc/gic_internal.h b/hw/intc/gic_internal.h
> index 45c2af0bf59..8d29b40ca10 100644
> --- a/hw/intc/gic_internal.h
> +++ b/hw/intc/gic_internal.h
> @@ -26,8 +26,6 @@
>
> #define ALL_CPU_MASK ((unsigned)(((1 << GIC_NCPU) - 1)))
>
> -#define GIC_BASE_IRQ 0
> -
> #define GIC_DIST_SET_ENABLED(irq, cm) (s->irq_state[irq].enabled |= (cm))
> #define GIC_DIST_CLEAR_ENABLED(irq, cm) (s->irq_state[irq].enabled &= ~(cm))
> #define GIC_DIST_TEST_ENABLED(irq, cm) ((s->irq_state[irq].enabled & (cm)) != 0)
> diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
> index 542b4b93eab..b3ac2d11fc5 100644
> --- a/hw/intc/arm_gic.c
> +++ b/hw/intc/arm_gic.c
> @@ -955,7 +955,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
> res = 0;
> if (!(s->security_extn && !attrs.secure) && gic_has_groups(s)) {
> /* Every byte offset holds 8 group status bits */
> - irq = (offset - 0x080) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x080) * 8;
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -974,7 +974,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
> irq = (offset - 0x100) * 8;
> else
> irq = (offset - 0x180) * 8;
> - irq += GIC_BASE_IRQ;
> if (irq >= s->num_irq)
> goto bad_reg;
> res = 0;
> @@ -994,7 +993,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
> irq = (offset - 0x200) * 8;
> else
> irq = (offset - 0x280) * 8;
> - irq += GIC_BASE_IRQ;
> if (irq >= s->num_irq)
> goto bad_reg;
> res = 0;
> @@ -1019,7 +1017,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
> goto bad_reg;
> }
>
> - irq += GIC_BASE_IRQ;
> if (irq >= s->num_irq)
> goto bad_reg;
> res = 0;
> @@ -1036,7 +1033,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
> }
> } else if (offset < 0x800) {
> /* Interrupt Priority. */
> - irq = (offset - 0x400) + GIC_BASE_IRQ;
> + irq = (offset - 0x400);
> if (irq >= s->num_irq)
> goto bad_reg;
> res = gic_dist_get_priority(s, cpu, irq, attrs);
> @@ -1046,7 +1043,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
> /* For uniprocessor GICs these RAZ/WI */
> res = 0;
> } else {
> - irq = (offset - 0x800) + GIC_BASE_IRQ;
> + irq = (offset - 0x800);
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1060,7 +1057,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
> }
> } else if (offset < 0xf00) {
> /* Interrupt Configuration. */
> - irq = (offset - 0xc00) * 4 + GIC_BASE_IRQ;
> + irq = (offset - 0xc00) * 4;
> if (irq >= s->num_irq)
> goto bad_reg;
> res = 0;
> @@ -1183,7 +1180,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> */
> if (!(s->security_extn && !attrs.secure) && gic_has_groups(s)) {
> /* Every byte offset holds 8 group status bits */
> - irq = (offset - 0x80) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x80) * 8;
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1204,7 +1201,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> }
> } else if (offset < 0x180) {
> /* Interrupt Set Enable. */
> - irq = (offset - 0x100) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x100) * 8;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS) {
> @@ -1239,7 +1236,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> }
> } else if (offset < 0x200) {
> /* Interrupt Clear Enable. */
> - irq = (offset - 0x180) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x180) * 8;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS) {
> @@ -1264,7 +1261,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> }
> } else if (offset < 0x280) {
> /* Interrupt Set Pending. */
> - irq = (offset - 0x200) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x200) * 8;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS) {
> @@ -1283,7 +1280,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> }
> } else if (offset < 0x300) {
> /* Interrupt Clear Pending. */
> - irq = (offset - 0x280) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x280) * 8;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS) {
> @@ -1309,7 +1306,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> goto bad_reg;
> }
>
> - irq = (offset - 0x300) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x300) * 8;
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1333,7 +1330,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> goto bad_reg;
> }
>
> - irq = (offset - 0x380) * 8 + GIC_BASE_IRQ;
> + irq = (offset - 0x380) * 8;
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1353,7 +1350,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> }
> } else if (offset < 0x800) {
> /* Interrupt Priority. */
> - irq = (offset - 0x400) + GIC_BASE_IRQ;
> + irq = (offset - 0x400);
> if (irq >= s->num_irq)
> goto bad_reg;
> gic_dist_set_priority(s, cpu, irq, value, attrs);
> @@ -1362,7 +1359,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> * annoying exception of the 11MPCore's GIC.
> */
> if (s->num_cpu != 1 || s->revision == REV_11MPCORE) {
> - irq = (offset - 0x800) + GIC_BASE_IRQ;
> + irq = (offset - 0x800);
> if (irq >= s->num_irq) {
> goto bad_reg;
> }
> @@ -1375,7 +1372,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
> }
> } else if (offset < 0xf00) {
> /* Interrupt Configuration. */
> - irq = (offset - 0xc00) * 4 + GIC_BASE_IRQ;
> + irq = (offset - 0xc00) * 4;
> if (irq >= s->num_irq)
> goto bad_reg;
> if (irq < GIC_NR_SGIS)
> diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c
> index 547dc41185e..57569a4e590 100644
> --- a/hw/intc/arm_gic_common.c
> +++ b/hw/intc/arm_gic_common.c
> @@ -191,7 +191,6 @@ static void arm_gic_common_realize(DeviceState *dev, Error **errp)
> s->num_cpu, GIC_NCPU);
> return;
> }
> - s->num_irq += GIC_BASE_IRQ;
> if (s->num_irq > GIC_MAXIRQ) {
> error_setg(errp,
> "requested %u interrupt lines exceeds GIC maximum %d",
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-09-07 7:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-24 16:18 [Qemu-devel] [PATCH] hw/intc/arm_gic: Drop GIC_BASE_IRQ macro Peter Maydell
2018-08-26 1:32 ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé
2018-09-07 7:46 ` [Qemu-devel] " Luc Michel
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.