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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.