qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 2/6] hw/i2c: Add a NULL check for i2c slave i


From: Cédric Le Goater
Subject: Re: [Qemu-devel] [PATCH v2 2/6] hw/i2c: Add a NULL check for i2c slave init callbacks
Date: Wed, 30 Nov 2016 09:02:03 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0

On 11/30/2016 06:36 AM, Alastair D'Silva wrote:
> From: Alastair D'Silva <address@hidden>
> 
> Add a NULL check for i2c slave init callbacks, so that we no longer
> need to implement empty init functions.
> 
> Signed-off-by: Alastair D'Silva <address@hidden>

Reviewed-by:  Cédric Le Goater <address@hidden>

> ---
>  hw/arm/pxa2xx.c   | 9 +--------
>  hw/arm/tosa.c     | 7 -------
>  hw/arm/z2.c       | 7 -------
>  hw/i2c/core.c     | 6 +++++-
>  hw/timer/ds1338.c | 6 ------
>  5 files changed, 6 insertions(+), 29 deletions(-)
> 
> diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
> index 21ea1d6..bdcf6bc 100644
> --- a/hw/arm/pxa2xx.c
> +++ b/hw/arm/pxa2xx.c
> @@ -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;
> @@ -2070,7 +2063,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space,
>      }
>      if (!revision)
>          revision = "pxa270";
> -    
> +
>      s->cpu = cpu_arm_init(revision);
>      if (s->cpu == NULL) {
>          fprintf(stderr, "Unable to find CPU definition\n");
> diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c
> index 1ee12f4..39d9dbb 100644
> --- a/hw/arm/tosa.c
> +++ b/hw/arm/tosa.c
> @@ -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;
> diff --git a/hw/arm/z2.c b/hw/arm/z2.c
> index 68a92f3..b3a6bbd 100644
> --- a/hw/arm/z2.c
> +++ b/hw/arm/z2.c
> @@ -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;
> diff --git a/hw/i2c/core.c b/hw/i2c/core.c
> index abd4c4c..ae3ca94 100644
> --- a/hw/i2c/core.c
> +++ b/hw/i2c/core.c
> @@ -260,7 +260,11 @@ static int i2c_slave_qdev_init(DeviceState *dev)
>      I2CSlave *s = I2C_SLAVE(dev);
>      I2CSlaveClass *sc = I2C_SLAVE_GET_CLASS(s);
>  
> -    return sc->init(s);
> +    if (sc->init) {
> +        return sc->init(s);
> +    } else {
> +        return 0;
> +    }
>  }
>  
>  DeviceState *i2c_create_slave(I2CBus *bus, const char *name, uint8_t addr)
> diff --git a/hw/timer/ds1338.c b/hw/timer/ds1338.c
> index 0112949..f5d04dd 100644
> --- a/hw/timer/ds1338.c
> +++ b/hw/timer/ds1338.c
> @@ -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;
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]