mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/arm: Remove REG macro in vgic driver
REG macro does not compute any value and offset variable is no more required. Hence removed Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com> Acked-by: Julien Grall <julien.grall@linaro.org> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
1 parent
44add14c2e
commit
b5074c82bd
1 file changed
+32
-36
+32
-36
@@ -31,8 +31,6 @@
|
||||
#include <asm/gic.h>
|
||||
#include <asm/vgic.h>
|
||||
|
||||
#define REG(n) (n)
|
||||
|
||||
static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info);
|
||||
static int vgic_distr_mmio_write(struct vcpu *v, mmio_info_t *info);
|
||||
|
||||
@@ -156,8 +154,7 @@ static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info)
|
||||
struct cpu_user_regs *regs = guest_cpu_user_regs();
|
||||
register_t *r = select_user_reg(regs, dabt.reg);
|
||||
struct vgic_irq_rank *rank;
|
||||
int offset = (int)(info->gpa - v->domain->arch.vgic.dbase);
|
||||
int gicd_reg = REG(offset);
|
||||
int gicd_reg = (int)(info->gpa - v->domain->arch.vgic.dbase);
|
||||
|
||||
switch ( gicd_reg )
|
||||
{
|
||||
@@ -185,7 +182,7 @@ static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info)
|
||||
return 1;
|
||||
|
||||
/* Implementation defined -- read as zero */
|
||||
case REG(0x020) ... REG(0x03c):
|
||||
case 0x020 ... 0x03c:
|
||||
goto read_as_zero;
|
||||
|
||||
case GICD_IGROUPR ... GICD_IGROUPRN:
|
||||
@@ -215,7 +212,7 @@ static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info)
|
||||
rank = vgic_rank_offset(v, 1, gicd_reg - GICD_ISPENDR, DABT_WORD);
|
||||
if ( rank == NULL) goto read_as_zero;
|
||||
vgic_lock_rank(v, rank);
|
||||
*r = vgic_byte_read(rank->ipend, dabt.sign, offset);
|
||||
*r = vgic_byte_read(rank->ipend, dabt.sign, gicd_reg);
|
||||
vgic_unlock_rank(v, rank);
|
||||
return 1;
|
||||
|
||||
@@ -224,7 +221,7 @@ static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info)
|
||||
rank = vgic_rank_offset(v, 1, gicd_reg - GICD_ICPENDR, DABT_WORD);
|
||||
if ( rank == NULL) goto read_as_zero;
|
||||
vgic_lock_rank(v, rank);
|
||||
*r = vgic_byte_read(rank->ipend, dabt.sign, offset);
|
||||
*r = vgic_byte_read(rank->ipend, dabt.sign, gicd_reg);
|
||||
vgic_unlock_rank(v, rank);
|
||||
return 1;
|
||||
|
||||
@@ -255,7 +252,7 @@ static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info)
|
||||
*r = rank->itargets[REG_RANK_INDEX(8, gicd_reg - GICD_ITARGETSR,
|
||||
DABT_WORD)];
|
||||
if ( dabt.size == DABT_BYTE )
|
||||
*r = vgic_byte_read(*r, dabt.sign, offset);
|
||||
*r = vgic_byte_read(*r, dabt.sign, gicd_reg);
|
||||
vgic_unlock_rank(v, rank);
|
||||
return 1;
|
||||
|
||||
@@ -268,7 +265,7 @@ static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info)
|
||||
*r = rank->ipriority[REG_RANK_INDEX(8, gicd_reg - GICD_IPRIORITYR,
|
||||
DABT_WORD)];
|
||||
if ( dabt.size == DABT_BYTE )
|
||||
*r = vgic_byte_read(*r, dabt.sign, offset);
|
||||
*r = vgic_byte_read(*r, dabt.sign, gicd_reg);
|
||||
vgic_unlock_rank(v, rank);
|
||||
return 1;
|
||||
|
||||
@@ -296,7 +293,7 @@ static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info)
|
||||
rank = vgic_rank_offset(v, 1, gicd_reg - GICD_CPENDSGIR, DABT_WORD);
|
||||
if ( rank == NULL) goto read_as_zero;
|
||||
vgic_lock_rank(v, rank);
|
||||
*r = vgic_byte_read(rank->pendsgi, dabt.sign, offset);
|
||||
*r = vgic_byte_read(rank->pendsgi, dabt.sign, gicd_reg);
|
||||
vgic_unlock_rank(v, rank);
|
||||
return 1;
|
||||
|
||||
@@ -305,12 +302,12 @@ static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info)
|
||||
rank = vgic_rank_offset(v, 1, gicd_reg - GICD_SPENDSGIR, DABT_WORD);
|
||||
if ( rank == NULL) goto read_as_zero;
|
||||
vgic_lock_rank(v, rank);
|
||||
*r = vgic_byte_read(rank->pendsgi, dabt.sign, offset);
|
||||
*r = vgic_byte_read(rank->pendsgi, dabt.sign, gicd_reg);
|
||||
vgic_unlock_rank(v, rank);
|
||||
return 1;
|
||||
|
||||
/* Implementation defined -- read as zero */
|
||||
case REG(0xfd0) ... REG(0xfe4):
|
||||
case 0xfd0 ... 0xfe4:
|
||||
goto read_as_zero;
|
||||
|
||||
case GICD_ICPIDR2:
|
||||
@@ -319,27 +316,27 @@ static int vgic_distr_mmio_read(struct vcpu *v, mmio_info_t *info)
|
||||
return 0;
|
||||
|
||||
/* Implementation defined -- read as zero */
|
||||
case REG(0xfec) ... REG(0xffc):
|
||||
case 0xfec ... 0xffc:
|
||||
goto read_as_zero;
|
||||
|
||||
/* Reserved -- read as zero */
|
||||
case REG(0x00c) ... REG(0x01c):
|
||||
case REG(0x040) ... REG(0x07c):
|
||||
case REG(0x7fc):
|
||||
case REG(0xbfc):
|
||||
case REG(0xf04) ... REG(0xf0c):
|
||||
case REG(0xf30) ... REG(0xfcc):
|
||||
case 0x00c ... 0x01c:
|
||||
case 0x040 ... 0x07c:
|
||||
case 0x7fc:
|
||||
case 0xbfc:
|
||||
case 0xf04 ... 0xf0c:
|
||||
case 0xf30 ... 0xfcc:
|
||||
goto read_as_zero;
|
||||
|
||||
default:
|
||||
printk("vGICD: unhandled read r%d offset %#08x\n",
|
||||
dabt.reg, offset);
|
||||
dabt.reg, gicd_reg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bad_width:
|
||||
printk("vGICD: bad read width %d r%d offset %#08x\n",
|
||||
dabt.size, dabt.reg, offset);
|
||||
dabt.size, dabt.reg, gicd_reg);
|
||||
domain_crash_synchronous();
|
||||
return 0;
|
||||
|
||||
@@ -464,8 +461,7 @@ static int vgic_distr_mmio_write(struct vcpu *v, mmio_info_t *info)
|
||||
struct cpu_user_regs *regs = guest_cpu_user_regs();
|
||||
register_t *r = select_user_reg(regs, dabt.reg);
|
||||
struct vgic_irq_rank *rank;
|
||||
int offset = (int)(info->gpa - v->domain->arch.vgic.dbase);
|
||||
int gicd_reg = REG(offset);
|
||||
int gicd_reg = (int)(info->gpa - v->domain->arch.vgic.dbase);
|
||||
uint32_t tr;
|
||||
|
||||
switch ( gicd_reg )
|
||||
@@ -482,7 +478,7 @@ static int vgic_distr_mmio_write(struct vcpu *v, mmio_info_t *info)
|
||||
goto write_ignore;
|
||||
|
||||
/* Implementation defined -- write ignored */
|
||||
case REG(0x020) ... REG(0x03c):
|
||||
case 0x020 ... 0x03c:
|
||||
goto write_ignore;
|
||||
|
||||
case GICD_IGROUPR ... GICD_IGROUPRN:
|
||||
@@ -558,7 +554,7 @@ static int vgic_distr_mmio_write(struct vcpu *v, mmio_info_t *info)
|
||||
else
|
||||
{
|
||||
tr = REG_RANK_INDEX(8, gicd_reg - GICD_ITARGETSR, DABT_WORD);
|
||||
vgic_byte_write(&rank->itargets[tr], *r, offset);
|
||||
vgic_byte_write(&rank->itargets[tr], *r, gicd_reg);
|
||||
}
|
||||
vgic_unlock_rank(v, rank);
|
||||
return 1;
|
||||
@@ -574,7 +570,7 @@ static int vgic_distr_mmio_write(struct vcpu *v, mmio_info_t *info)
|
||||
else
|
||||
{
|
||||
tr = REG_RANK_INDEX(8, gicd_reg - GICD_IPRIORITYR, DABT_WORD);
|
||||
vgic_byte_write(&rank->ipriority[tr], *r, offset);
|
||||
vgic_byte_write(&rank->ipriority[tr], *r, gicd_reg);
|
||||
}
|
||||
vgic_unlock_rank(v, rank);
|
||||
return 1;
|
||||
@@ -615,7 +611,7 @@ static int vgic_distr_mmio_write(struct vcpu *v, mmio_info_t *info)
|
||||
return 0;
|
||||
|
||||
/* Implementation defined -- write ignored */
|
||||
case REG(0xfd0) ... REG(0xfe4):
|
||||
case 0xfd0 ... 0xfe4:
|
||||
goto write_ignore;
|
||||
|
||||
/* R/O -- write ignore */
|
||||
@@ -623,27 +619,27 @@ static int vgic_distr_mmio_write(struct vcpu *v, mmio_info_t *info)
|
||||
goto write_ignore;
|
||||
|
||||
/* Implementation defined -- write ignored */
|
||||
case REG(0xfec) ... REG(0xffc):
|
||||
case 0xfec ... 0xffc:
|
||||
goto write_ignore;
|
||||
|
||||
/* Reserved -- write ignored */
|
||||
case REG(0x00c) ... REG(0x01c):
|
||||
case REG(0x040) ... REG(0x07c):
|
||||
case REG(0x7fc):
|
||||
case REG(0xbfc):
|
||||
case REG(0xf04) ... REG(0xf0c):
|
||||
case REG(0xf30) ... REG(0xfcc):
|
||||
case 0x00c ... 0x01c:
|
||||
case 0x040 ... 0x07c:
|
||||
case 0x7fc:
|
||||
case 0xbfc:
|
||||
case 0xf04 ... 0xf0c:
|
||||
case 0xf30 ... 0xfcc:
|
||||
goto write_ignore;
|
||||
|
||||
default:
|
||||
printk("vGICD: unhandled write r%d=%"PRIregister" offset %#08x\n",
|
||||
dabt.reg, *r, offset);
|
||||
dabt.reg, *r, gicd_reg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bad_width:
|
||||
printk("vGICD: bad write width %d r%d=%"PRIregister" offset %#08x\n",
|
||||
dabt.size, dabt.reg, *r, offset);
|
||||
dabt.size, dabt.reg, *r, gicd_reg);
|
||||
domain_crash_synchronous();
|
||||
return 0;
|
||||
|
||||
|
||||