diff options
Diffstat (limited to 'hw/input')
-rw-r--r-- | hw/input/pl050.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/hw/input/pl050.c b/hw/input/pl050.c index 8e32b8ed46..0d91b0eaea 100644 --- a/hw/input/pl050.c +++ b/hw/input/pl050.c @@ -101,7 +101,7 @@ static uint64_t pl050_read(void *opaque, hwaddr offset, } case 2: /* KMIDATA */ if (s->pending) { - s->last = ps2_read_data(s->dev); + s->last = ps2_read_data(s->ps2dev); } return s->last; case 3: /* KMICLKDIV */ @@ -130,9 +130,9 @@ static void pl050_write(void *opaque, hwaddr offset, /* ??? This should toggle the TX interrupt line. */ /* ??? This means kbd/mouse can block each other. */ if (s->is_mouse) { - ps2_write_mouse(s->dev, value); + ps2_write_mouse(PS2_MOUSE_DEVICE(s->ps2dev), value); } else { - ps2_write_keyboard(s->dev, value); + ps2_write_keyboard(PS2_KBD_DEVICE(s->ps2dev), value); } break; case 3: /* KMICLKDIV */ @@ -158,11 +158,12 @@ static void pl050_realize(DeviceState *dev, Error **errp) sysbus_init_mmio(sbd, &s->iomem); sysbus_init_irq(sbd, &s->irq); if (s->is_mouse) { - s->dev = ps2_mouse_init(); + s->ps2dev = ps2_mouse_init(); } else { - s->dev = ps2_kbd_init(); + s->ps2dev = ps2_kbd_init(); } - qdev_connect_gpio_out(DEVICE(s->dev), PS2_DEVICE_IRQ, + + qdev_connect_gpio_out(DEVICE(s->ps2dev), PS2_DEVICE_IRQ, qdev_get_gpio_in_named(dev, "ps2-input-irq", 0)); } |