Am 24.07.2013 09:48, schrieb Andreas Färber: > Signed-off-by: Andreas Färber <afaer...@suse.de> > --- > hw/arm/spitz.c | 17 ++++++++++------- > 1 file changed, 10 insertions(+), 7 deletions(-) > > diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c > index 0bf5c5c..70f23b3 100644 > --- a/hw/arm/spitz.c > +++ b/hw/arm/spitz.c > @@ -215,8 +215,13 @@ static const int spitz_gpiomap[5] = { > SPITZ_GPIO_SWA, SPITZ_GPIO_SWB, > }; > > +#define TYPE_SPITZ_KEYBOARD "spitz-keyboard" > +#define SPITZ_KEYBOARD(obj) \ > + OBJECT_CHECK(SpitzKeyboardState, (obj), TYPE_SPITZ_KEYBOARD) > + > typedef struct { > - SysBusDevice busdev; > + SysBusDevice parent_obj; > + > qemu_irq sense[SPITZ_KEY_SENSE_NUM]; > qemu_irq gpiomap[5]; > int keymap[0x80]; > @@ -461,8 +466,8 @@ static void spitz_keyboard_register(PXA2xxState *cpu) > DeviceState *dev; > SpitzKeyboardState *s; > > - dev = sysbus_create_simple("spitz-keyboard", -1, NULL); > - s = FROM_SYSBUS(SpitzKeyboardState, SYS_BUS_DEVICE(dev)); > + dev = sysbus_create_simple(TYPE_SPITZ_KEYBOARD, -1, NULL); > + s = SPITZ_KEYBOARD(dev); > > for (i = 0; i < SPITZ_KEY_SENSE_NUM; i ++) > qdev_connect_gpio_out(dev, i, qdev_get_gpio_in(cpu->gpio, > spitz_gpio_key_sense[i])); > @@ -487,11 +492,9 @@ static void spitz_keyboard_register(PXA2xxState *cpu) > > static int spitz_keyboard_init(SysBusDevice *dev) > { > - SpitzKeyboardState *s; > + SpitzKeyboardState *s = SPITZ_KEYBOARD(dev); > int i, j; > > - s = FROM_SYSBUS(SpitzKeyboardState, dev); > - > for (i = 0; i < 0x80; i ++) > s->keymap[i] = -1; > for (i = 0; i < SPITZ_KEY_SENSE_NUM + 1; i ++) [snip]
Needs the following addition. Andreas diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c index 70f23b3..34f9582 100644 --- a/hw/arm/spitz.c +++ b/hw/arm/spitz.c @@ -490,8 +490,9 @@ static void spitz_keyboard_register(PXA2xxState *cpu) qemu_add_kbd_event_handler(spitz_keyboard_handler, s); } -static int spitz_keyboard_init(SysBusDevice *dev) +static int spitz_keyboard_init(SysBusDevice *sbd) { + DeviceState *dev = DEVICE(sbd); SpitzKeyboardState *s = SPITZ_KEYBOARD(dev); int i, j; @@ -505,8 +506,8 @@ static int spitz_keyboard_init(SysBusDevice *dev) spitz_keyboard_pre_map(s); s->kbdtimer = qemu_new_timer_ns(vm_clock, spitz_keyboard_tick, s); - qdev_init_gpio_in(&dev->qdev, spitz_keyboard_strobe, SPITZ_KEY_STROBE_NUM); - qdev_init_gpio_out(&dev->qdev, s->sense, SPITZ_KEY_SENSE_NUM); + qdev_init_gpio_in(dev, spitz_keyboard_strobe, SPITZ_KEY_STROBE_NUM); + qdev_init_gpio_out(dev, s->sense, SPITZ_KEY_SENSE_NUM); return 0; } -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg