Commit c8c9e103 authored by Philippe Mathieu-Daudé's avatar Philippe Mathieu-Daudé Committed by Paolo Bonzini
Browse files

hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init



I2CSlaveClass::init is no more used, remove it.

Signed-off-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20180419212727.26095-3-f4bug@amsat.org>
Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Message-Id: <20180528144509.15812-3-armbru@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 19473e51
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -617,14 +617,12 @@ static const VMStateDescription vmstate_wm8750 = {
    }
};

static int wm8750_init(I2CSlave *i2c)
static void wm8750_realize(DeviceState *dev, Error **errp)
{
    WM8750State *s = WM8750(i2c);
    WM8750State *s = WM8750(dev);

    AUD_register_card(CODEC, &s->card);
    wm8750_reset(I2C_SLAVE(s));

    return 0;
}

#if 0
@@ -707,7 +705,7 @@ static void wm8750_class_init(ObjectClass *klass, void *data)
    DeviceClass *dc = DEVICE_CLASS(klass);
    I2CSlaveClass *sc = I2C_SLAVE_CLASS(klass);

    sc->init = wm8750_init;
    dc->realize = wm8750_realize;
    sc->event = wm8750_event;
    sc->recv = wm8750_rx;
    sc->send = wm8750_tx;
+4 −5
Original line number Diff line number Diff line
@@ -297,13 +297,12 @@ static const GraphicHwOps ssd0303_ops = {
    .gfx_update  = ssd0303_update_display,
};

static int ssd0303_init(I2CSlave *i2c)
static void ssd0303_realize(DeviceState *dev, Error **errp)
{
    ssd0303_state *s = SSD0303(i2c);
    ssd0303_state *s = SSD0303(dev);

    s->con = graphic_console_init(DEVICE(i2c), 0, &ssd0303_ops, s);
    s->con = graphic_console_init(dev, 0, &ssd0303_ops, s);
    qemu_console_resize(s->con, 96 * MAGNIFY, 16 * MAGNIFY);
    return 0;
}

static void ssd0303_class_init(ObjectClass *klass, void *data)
@@ -311,7 +310,7 @@ static void ssd0303_class_init(ObjectClass *klass, void *data)
    DeviceClass *dc = DEVICE_CLASS(klass);
    I2CSlaveClass *k = I2C_SLAVE_CLASS(klass);

    k->init = ssd0303_init;
    dc->realize = ssd0303_realize;
    k->event = ssd0303_event;
    k->recv = ssd0303_recv;
    k->send = ssd0303_send;
+4 −5
Original line number Diff line number Diff line
@@ -182,14 +182,13 @@ static void max7310_gpio_set(void *opaque, int line, int level)

/* MAX7310 is SMBus-compatible (can be used with only SMBus protocols),
 * but also accepts sequences that are not SMBus so return an I2C device.  */
static int max7310_init(I2CSlave *i2c)
static void max7310_realize(DeviceState *dev, Error **errp)
{
    MAX7310State *s = MAX7310(i2c);
    I2CSlave *i2c = I2C_SLAVE(dev);
    MAX7310State *s = MAX7310(dev);

    qdev_init_gpio_in(&i2c->qdev, max7310_gpio_set, 8);
    qdev_init_gpio_out(&i2c->qdev, s->handler, 8);

    return 0;
}

static void max7310_class_init(ObjectClass *klass, void *data)
@@ -197,7 +196,7 @@ static void max7310_class_init(ObjectClass *klass, void *data)
    DeviceClass *dc = DEVICE_CLASS(klass);
    I2CSlaveClass *k = I2C_SLAVE_CLASS(klass);

    k->init = max7310_init;
    dc->realize = max7310_realize;
    k->event = max7310_event;
    k->recv = max7310_rx;
    k->send = max7310_tx;
+0 −13
Original line number Diff line number Diff line
@@ -258,18 +258,6 @@ const VMStateDescription vmstate_i2c_slave = {
    }
};

static int i2c_slave_qdev_init(DeviceState *dev)
{
    I2CSlave *s = I2C_SLAVE(dev);
    I2CSlaveClass *sc = I2C_SLAVE_GET_CLASS(s);

    if (sc->init) {
        return sc->init(s);
    }

    return 0;
}

DeviceState *i2c_create_slave(I2CBus *bus, const char *name, uint8_t addr)
{
    DeviceState *dev;
@@ -283,7 +271,6 @@ DeviceState *i2c_create_slave(I2CBus *bus, const char *name, uint8_t addr)
static void i2c_slave_class_init(ObjectClass *klass, void *data)
{
    DeviceClass *k = DEVICE_CLASS(klass);
    k->init = i2c_slave_qdev_init;
    set_bit(DEVICE_CATEGORY_MISC, k->categories);
    k->bus_type = TYPE_I2C_BUS;
    k->props = i2c_props;
+4 −5
Original line number Diff line number Diff line
@@ -464,20 +464,19 @@ static const VMStateDescription vmstate_lm_kbd = {
};


static int lm8323_init(I2CSlave *i2c)
static void lm8323_realize(DeviceState *dev, Error **errp)
{
    LM823KbdState *s = LM8323(i2c);
    LM823KbdState *s = LM8323(dev);

    s->model = 0x8323;
    s->pwm.tm[0] = timer_new_ns(QEMU_CLOCK_VIRTUAL, lm_kbd_pwm0_tick, s);
    s->pwm.tm[1] = timer_new_ns(QEMU_CLOCK_VIRTUAL, lm_kbd_pwm1_tick, s);
    s->pwm.tm[2] = timer_new_ns(QEMU_CLOCK_VIRTUAL, lm_kbd_pwm2_tick, s);
    qdev_init_gpio_out(DEVICE(i2c), &s->nirq, 1);
    qdev_init_gpio_out(dev, &s->nirq, 1);

    lm_kbd_reset(s);

    qemu_register_reset((void *) lm_kbd_reset, s);
    return 0;
}

void lm832x_key_event(DeviceState *dev, int key, int state)
@@ -505,7 +504,7 @@ static void lm8323_class_init(ObjectClass *klass, void *data)
    DeviceClass *dc = DEVICE_CLASS(klass);
    I2CSlaveClass *k = I2C_SLAVE_CLASS(klass);

    k->init = lm8323_init;
    dc->realize = lm8323_realize;
    k->event = lm_i2c_event;
    k->recv = lm_i2c_rx;
    k->send = lm_i2c_tx;
Loading