xilinx_spi: QOM cast cleanup

Signed-off-by: Andreas Färber <afaerber@suse.de>
master
Andreas Färber 2013-07-27 14:07:22 +02:00
parent 3d29bceec1
commit 3efc10e17d
1 changed files with 16 additions and 11 deletions

View File

@ -73,8 +73,12 @@
#define FIFO_CAPACITY 256 #define FIFO_CAPACITY 256
#define TYPE_XILINX_SPI "xlnx.xps-spi"
#define XILINX_SPI(obj) OBJECT_CHECK(XilinxSPI, (obj), TYPE_XILINX_SPI)
typedef struct XilinxSPI { typedef struct XilinxSPI {
SysBusDevice busdev; SysBusDevice parent_obj;
MemoryRegion mmio; MemoryRegion mmio;
qemu_irq irq; qemu_irq irq;
@ -109,7 +113,7 @@ static void rxfifo_reset(XilinxSPI *s)
static void xlx_spi_update_cs(XilinxSPI *s) static void xlx_spi_update_cs(XilinxSPI *s)
{ {
int i; int i;
for (i = 0; i < s->num_cs; ++i) { for (i = 0; i < s->num_cs; ++i) {
qemu_set_irq(s->cs_lines[i], !(~s->regs[R_SPISSR] & 1 << i)); qemu_set_irq(s->cs_lines[i], !(~s->regs[R_SPISSR] & 1 << i));
@ -154,7 +158,7 @@ static void xlx_spi_do_reset(XilinxSPI *s)
static void xlx_spi_reset(DeviceState *d) static void xlx_spi_reset(DeviceState *d)
{ {
xlx_spi_do_reset(DO_UPCAST(XilinxSPI, busdev.qdev, d)); xlx_spi_do_reset(XILINX_SPI(d));
} }
static inline int spi_master_enabled(XilinxSPI *s) static inline int spi_master_enabled(XilinxSPI *s)
@ -314,25 +318,26 @@ static const MemoryRegionOps spi_ops = {
} }
}; };
static int xilinx_spi_init(SysBusDevice *dev) static int xilinx_spi_init(SysBusDevice *sbd)
{ {
DeviceState *dev = DEVICE(sbd);
XilinxSPI *s = XILINX_SPI(dev);
int i; int i;
XilinxSPI *s = FROM_SYSBUS(typeof(*s), dev);
DB_PRINT("\n"); DB_PRINT("\n");
s->spi = ssi_create_bus(&dev->qdev, "spi"); s->spi = ssi_create_bus(dev, "spi");
sysbus_init_irq(dev, &s->irq); sysbus_init_irq(sbd, &s->irq);
s->cs_lines = g_new(qemu_irq, s->num_cs); s->cs_lines = g_new(qemu_irq, s->num_cs);
ssi_auto_connect_slaves(DEVICE(s), s->cs_lines, s->spi); ssi_auto_connect_slaves(dev, s->cs_lines, s->spi);
for (i = 0; i < s->num_cs; ++i) { for (i = 0; i < s->num_cs; ++i) {
sysbus_init_irq(dev, &s->cs_lines[i]); sysbus_init_irq(sbd, &s->cs_lines[i]);
} }
memory_region_init_io(&s->mmio, OBJECT(s), &spi_ops, s, memory_region_init_io(&s->mmio, OBJECT(s), &spi_ops, s,
"xilinx-spi", R_MAX * 4); "xilinx-spi", R_MAX * 4);
sysbus_init_mmio(dev, &s->mmio); sysbus_init_mmio(sbd, &s->mmio);
s->irqline = -1; s->irqline = -1;
@ -372,7 +377,7 @@ static void xilinx_spi_class_init(ObjectClass *klass, void *data)
} }
static const TypeInfo xilinx_spi_info = { static const TypeInfo xilinx_spi_info = {
.name = "xlnx.xps-spi", .name = TYPE_XILINX_SPI,
.parent = TYPE_SYS_BUS_DEVICE, .parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(XilinxSPI), .instance_size = sizeof(XilinxSPI),
.class_init = xilinx_spi_class_init, .class_init = xilinx_spi_class_init,