qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 02/11] pxa2xx: QOM'ify I2C slave
Date: Sun, 09 Feb 2014 13:24:33 +0100	[thread overview]
Message-ID: <52F77381.9020109@suse.de> (raw)
In-Reply-To: <CAEgOgz48FXNRX4_JstD4A_6RKYxApNgUwuYzpeR5KvoD6EpU9A@mail.gmail.com>

Am 09.02.2014 02:35, schrieb Peter Crosthwaite:
> On Sat, Feb 1, 2014 at 12:34 AM, Andreas Färber <afaerber@suse.de> wrote:
>> Replace usages of FROM_I2C_SLAVE() with QOM cast macro and rename parent
>> field to assure we caught all.
>>
>> Signed-off-by: Andreas Färber <afaerber@suse.de>
>> ---
>>  hw/arm/pxa2xx.c | 38 +++++++++++++++++++++++++-------------
>>  1 file changed, 25 insertions(+), 13 deletions(-)
>>
>> diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
>> index daf60e8..e5f1e10 100644
>> --- a/hw/arm/pxa2xx.c
>> +++ b/hw/arm/pxa2xx.c
>> @@ -1222,8 +1222,14 @@ static const TypeInfo pxa2xx_rtc_sysbus_info = {
>>  };
>>
>>  /* I2C Interface */
>> -typedef struct {
>> -    I2CSlave i2c;
>> +
>> +#define TYPE_PXA2XX_I2C_SLAVE "pxa2xx-i2c-slave"
>> +#define PXA2XX_I2C_SLAVE(obj) \
>> +    OBJECT_CHECK(PXA2xxI2CSlaveState, (obj), TYPE_PXA2XX_I2C_SLAVE)
>> +
>> +typedef struct PXA2xxI2CSlaveState {
>> +    I2CSlave parent_obj;
>> +
>>      PXA2xxI2CState *host;
>>  } PXA2xxI2CSlaveState;
>>
>> @@ -1268,7 +1274,7 @@ static void pxa2xx_i2c_update(PXA2xxI2CState *s)
>>  /* These are only stubs now.  */
>>  static void pxa2xx_i2c_event(I2CSlave *i2c, enum i2c_event event)
>>  {
>> -    PXA2xxI2CSlaveState *slave = FROM_I2C_SLAVE(PXA2xxI2CSlaveState, i2c);
>> +    PXA2xxI2CSlaveState *slave = PXA2XX_I2C_SLAVE(i2c);
>>      PXA2xxI2CState *s = slave->host;
>>
>>      switch (event) {
>> @@ -1292,10 +1298,12 @@ static void pxa2xx_i2c_event(I2CSlave *i2c, enum i2c_event event)
>>
>>  static int pxa2xx_i2c_rx(I2CSlave *i2c)
>>  {
>> -    PXA2xxI2CSlaveState *slave = FROM_I2C_SLAVE(PXA2xxI2CSlaveState, i2c);
>> +    PXA2xxI2CSlaveState *slave = PXA2XX_I2C_SLAVE(i2c);
>>      PXA2xxI2CState *s = slave->host;
>> -    if ((s->control & (1 << 14)) || !(s->control & (1 << 6)))
>> +
>> +    if ((s->control & (1 << 14)) || !(s->control & (1 << 6))) {
>>          return 0;
>> +    }
> 
> This will look funny when git-blamed. Should out-of-scope trivials be
> separate patch so anyone git-blame will at least see "Fix coding
> style" rather than then misleading "QOM'ify I2C"?.

We've had the policy of fixing Coding Style on lines touched or adjacent
to those touched, to gradually get rid of them - this one was within 3
lines of context. I'm sure PXA code will have many more Coding Style
faults, so placing 2 out of X in their own patch seems silly. Should I
rather drop them?

> With the multiple
> instances of this cleanup it should at least feature in the commit
> message.

You're right that I should've mentioned it. Same for replacing parent
field accesses. Fixed.

Regards,
Andreas

>>
>>      if (s->status & (1 << 0)) {                        /* RWM */
>>          s->status |= 1 << 6;                   /* set ITE */
>> @@ -1307,10 +1315,12 @@ static int pxa2xx_i2c_rx(I2CSlave *i2c)
>>
>>  static int pxa2xx_i2c_tx(I2CSlave *i2c, uint8_t data)
>>  {
>> -    PXA2xxI2CSlaveState *slave = FROM_I2C_SLAVE(PXA2xxI2CSlaveState, i2c);
>> +    PXA2xxI2CSlaveState *slave = PXA2XX_I2C_SLAVE(i2c);
>>      PXA2xxI2CState *s = slave->host;
>> -    if ((s->control & (1 << 14)) || !(s->control & (1 << 6)))
>> +
>> +    if ((s->control & (1 << 14)) || !(s->control & (1 << 6))) {
>>          return 1;
>> +    }
>>
>>      if (!(s->status & (1 << 0))) {             /* RWM */
>>          s->status |= 1 << 7;                   /* set IRF */
>> @@ -1325,6 +1335,7 @@ static uint64_t pxa2xx_i2c_read(void *opaque, hwaddr addr,
>>                                  unsigned size)
>>  {
>>      PXA2xxI2CState *s = (PXA2xxI2CState *) opaque;
>> +    I2CSlave *slave;
>>
>>      addr -= s->offset;
>>      switch (addr) {
>> @@ -1333,7 +1344,8 @@ static uint64_t pxa2xx_i2c_read(void *opaque, hwaddr addr,
>>      case ISR:
>>          return s->status | (i2c_bus_busy(s->bus) << 2);
>>      case ISAR:
>> -        return s->slave->i2c.address;
>> +        slave = I2C_SLAVE(s->slave);
>> +        return slave->address;
>>      case IDBR:
>>          return s->data;
>>      case IBMR:
>> @@ -1408,7 +1420,7 @@ static void pxa2xx_i2c_write(void *opaque, hwaddr addr,
>>          break;
>>
>>      case ISAR:
>> -        i2c_set_slave_address(&s->slave->i2c, value & 0x7f);
>> +        i2c_set_slave_address(I2C_SLAVE(s->slave), value & 0x7f);
>>          break;
>>
>>      case IDBR:
>> @@ -1432,7 +1444,7 @@ static const VMStateDescription vmstate_pxa2xx_i2c_slave = {
>>      .minimum_version_id = 1,
>>      .minimum_version_id_old = 1,
>>      .fields      = (VMStateField []) {
>> -        VMSTATE_I2C_SLAVE(i2c, PXA2xxI2CSlaveState),
>> +        VMSTATE_I2C_SLAVE(parent_obj, PXA2xxI2CSlaveState),
>>          VMSTATE_END_OF_LIST()
>>      }
>>  };
>> @@ -1470,7 +1482,7 @@ static void pxa2xx_i2c_slave_class_init(ObjectClass *klass, void *data)
>>  }
>>
>>  static const TypeInfo pxa2xx_i2c_slave_info = {
>> -    .name          = "pxa2xx-i2c-slave",
>> +    .name          = TYPE_PXA2XX_I2C_SLAVE,
>>      .parent        = TYPE_I2C_SLAVE,
>>      .instance_size = sizeof(PXA2xxI2CSlaveState),
>>      .class_init    = pxa2xx_i2c_slave_class_init,
>> @@ -1496,8 +1508,8 @@ PXA2xxI2CState *pxa2xx_i2c_init(hwaddr base,
>>      s = PXA2XX_I2C(i2c_dev);
>>      /* FIXME: Should the slave device really be on a separate bus?  */
>>      i2cbus = i2c_init_bus(dev, "dummy");
>> -    dev = i2c_create_slave(i2cbus, "pxa2xx-i2c-slave", 0);
>> -    s->slave = FROM_I2C_SLAVE(PXA2xxI2CSlaveState, I2C_SLAVE(dev));
>> +    dev = i2c_create_slave(i2cbus, TYPE_PXA2XX_I2C_SLAVE, 0);
>> +    s->slave = PXA2XX_I2C_SLAVE(dev);
>>      s->slave->host = s;
>>
>>      return s;
>> --
>> 1.8.4.5
>>
>>


-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

  reply	other threads:[~2014-02-09 12:24 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-31 14:34 [Qemu-devel] [PATCH 00/11] I2C QOM'ification, part 1 Andreas Färber
2014-01-31 14:34 ` [Qemu-devel] [PATCH 01/11] i2c: Rename i2c_bus to I2CBus Andreas Färber
2014-02-09  1:24   ` Peter Crosthwaite
2014-01-31 14:34 ` [Qemu-devel] [PATCH 02/11] pxa2xx: QOM'ify I2C slave Andreas Färber
2014-02-09  1:35   ` Peter Crosthwaite
2014-02-09 12:24     ` Andreas Färber [this message]
2014-02-09 12:36       ` Peter Maydell
2014-02-09 12:56   ` Andreas Färber
2014-01-31 14:34 ` [Qemu-devel] [PATCH 03/11] tosa: QOM'ify DAC Andreas Färber
2014-02-09  1:37   ` Peter Crosthwaite
2014-01-31 14:34 ` [Qemu-devel] [PATCH 04/11] z2: QOM'ify AER915 Andreas Färber
2014-02-09  1:38   ` Peter Crosthwaite
2014-02-09 13:04     ` Andreas Färber
2014-01-31 14:34 ` [Qemu-devel] [PATCH 05/11] wm8750: QOM'ify Andreas Färber
2014-02-09  1:41   ` Peter Crosthwaite
2014-02-09 13:10   ` Andreas Färber
2014-01-31 14:34 ` [Qemu-devel] [PATCH 06/11] ssd0303: QOM'ify Andreas Färber
2014-02-09  1:42   ` Peter Crosthwaite
2014-01-31 14:34 ` [Qemu-devel] [PATCH 07/11] max7310: QOM'ify Andreas Färber
2014-02-09  1:43   ` Peter Crosthwaite
2014-01-31 14:34 ` [Qemu-devel] [PATCH 08/11] lm832x: QOM'ify Andreas Färber
2014-02-09  1:45   ` Peter Crosthwaite
2014-01-31 14:34 ` [Qemu-devel] [PATCH 09/11] ds1338: QOM'ify Andreas Färber
2014-02-09  1:45   ` Peter Crosthwaite
2014-01-31 14:34 ` [Qemu-devel] [PATCH 10/11] twl92230: QOM'ify Andreas Färber
2014-02-09  1:50   ` Peter Crosthwaite
2014-01-31 14:34 ` [Qemu-devel] [PATCH 11/11] i2c: Drop FROM_I2C_SLAVE() macro Andreas Färber
2014-02-09  1:53   ` Peter Crosthwaite
2014-02-09 12:49     ` Andreas Färber
2014-02-08 17:22 ` [Qemu-devel] [PATCH 00/11] I2C QOM'ification, part 1 Andreas Färber
2014-02-09  1:29 ` Peter Crosthwaite
2014-02-09  1:59   ` Andreas Färber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52F77381.9020109@suse.de \
    --to=afaerber@suse.de \
    --cc=peter.crosthwaite@xilinx.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).