Commit 9e41bade authored by Alastair D'Silva's avatar Alastair D'Silva Committed by Peter Maydell
Browse files

hw/i2c: Add a NULL check for i2c slave init callbacks



Add a NULL check for i2c slave init callbacks, so that we no longer
need to implement empty init functions.

Signed-off-by: default avatarAlastair D'Silva <alastair@d-silva.org>
Message-id: 20161202054617.6749-4-alastair@au1.ibm.com
Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
[PMM: squashed in later tweak from Alistair to if() phrasing]
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent 8e953a65
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -1449,17 +1449,10 @@ static const VMStateDescription vmstate_pxa2xx_i2c = {
    }
};

static int pxa2xx_i2c_slave_init(I2CSlave *i2c)
{
    /* Nothing to do.  */
    return 0;
}

static void pxa2xx_i2c_slave_class_init(ObjectClass *klass, void *data)
{
    I2CSlaveClass *k = I2C_SLAVE_CLASS(klass);

    k->init = pxa2xx_i2c_slave_init;
    k->event = pxa2xx_i2c_event;
    k->recv = pxa2xx_i2c_rx;
    k->send = pxa2xx_i2c_tx;
+0 −7
Original line number Diff line number Diff line
@@ -202,12 +202,6 @@ static int tosa_dac_recv(I2CSlave *s)
    return -1;
}

static int tosa_dac_init(I2CSlave *i2c)
{
    /* Nothing to do.  */
    return 0;
}

static void tosa_tg_init(PXA2xxState *cpu)
{
    I2CBus *bus = pxa2xx_i2c_bus(cpu->i2c[0]);
@@ -275,7 +269,6 @@ static void tosa_dac_class_init(ObjectClass *klass, void *data)
{
    I2CSlaveClass *k = I2C_SLAVE_CLASS(klass);

    k->init = tosa_dac_init;
    k->event = tosa_dac_event;
    k->recv = tosa_dac_recv;
    k->send = tosa_dac_send;
+0 −7
Original line number Diff line number Diff line
@@ -263,12 +263,6 @@ static int aer915_recv(I2CSlave *slave)
    return retval;
}

static int aer915_init(I2CSlave *i2c)
{
    /* Nothing to do.  */
    return 0;
}

static VMStateDescription vmstate_aer915_state = {
    .name = "aer915",
    .version_id = 1,
@@ -285,7 +279,6 @@ static void aer915_class_init(ObjectClass *klass, void *data)
    DeviceClass *dc = DEVICE_CLASS(klass);
    I2CSlaveClass *k = I2C_SLAVE_CLASS(klass);

    k->init = aer915_init;
    k->event = aer915_event;
    k->recv = aer915_recv;
    k->send = aer915_send;
+5 −1
Original line number Diff line number Diff line
@@ -260,9 +260,13 @@ 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;
+0 −6
Original line number Diff line number Diff line
@@ -198,11 +198,6 @@ static int ds1338_send(I2CSlave *i2c, uint8_t data)
    return 0;
}

static int ds1338_init(I2CSlave *i2c)
{
    return 0;
}

static void ds1338_reset(DeviceState *dev)
{
    DS1338State *s = DS1338(dev);
@@ -220,7 +215,6 @@ static void ds1338_class_init(ObjectClass *klass, void *data)
    DeviceClass *dc = DEVICE_CLASS(klass);
    I2CSlaveClass *k = I2C_SLAVE_CLASS(klass);

    k->init = ds1338_init;
    k->event = ds1338_event;
    k->recv = ds1338_recv;
    k->send = ds1338_send;