From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53063) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WFWcr-0002F9-QK for qemu-devel@nongnu.org; Mon, 17 Feb 2014 17:25:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WFWcj-00062w-4f for qemu-devel@nongnu.org; Mon, 17 Feb 2014 17:25:21 -0500 Received: from cantor2.suse.de ([195.135.220.15]:41640 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WFWci-00060w-QQ for qemu-devel@nongnu.org; Mon, 17 Feb 2014 17:25:13 -0500 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 9ABE6AC9C for ; Mon, 17 Feb 2014 22:25:12 +0000 (UTC) From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Mon, 17 Feb 2014 23:24:28 +0100 Message-Id: <1392675899-21210-19-git-send-email-afaerber@suse.de> In-Reply-To: <1392675899-21210-1-git-send-email-afaerber@suse.de> References: <1392675899-21210-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL v2 18/49] twl92230: QOM'ify List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Andreas=20F=C3=A4rber?= Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with QOM cast macro. Rename parent field. Add missing braces while at it. Reviewed-by: Peter Crosthwaite Signed-off-by: Andreas F=C3=A4rber --- hw/timer/twl92230.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c index f3ea365..85d5990 100644 --- a/hw/timer/twl92230.c +++ b/hw/timer/twl92230.c @@ -27,8 +27,11 @@ =20 #define VERBOSE 1 =20 -typedef struct { - I2CSlave i2c; +#define TYPE_TWL92230 "twl92230" +#define TWL92230(obj) OBJECT_CHECK(MenelausState, (obj), TYPE_TWL92230) + +typedef struct MenelausState { + I2CSlave parent_obj; =20 int firstbyte; uint8_t reg; @@ -127,7 +130,8 @@ static void menelaus_rtc_hz(void *opaque) =20 static void menelaus_reset(I2CSlave *i2c) { - MenelausState *s =3D (MenelausState *) i2c; + MenelausState *s =3D TWL92230(i2c); + s->reg =3D 0x00; =20 s->vcore[0] =3D 0x0c; /* XXX: X-loader needs 0x8c? check! */ @@ -492,8 +496,9 @@ static void menelaus_write(void *opaque, uint8_t addr= , uint8_t value) break; =20 case MENELAUS_DEVICE_OFF: - if (value & 1) - menelaus_reset(&s->i2c); + if (value & 1) { + menelaus_reset(I2C_SLAVE(s)); + } break; =20 case MENELAUS_OSC_CTRL: @@ -708,7 +713,7 @@ static void menelaus_write(void *opaque, uint8_t addr= , uint8_t value) =20 static void menelaus_event(I2CSlave *i2c, enum i2c_event event) { - MenelausState *s =3D (MenelausState *) i2c; + MenelausState *s =3D TWL92230(i2c); =20 if (event =3D=3D I2C_START_SEND) s->firstbyte =3D 1; @@ -716,7 +721,8 @@ static void menelaus_event(I2CSlave *i2c, enum i2c_ev= ent event) =20 static int menelaus_tx(I2CSlave *i2c, uint8_t data) { - MenelausState *s =3D (MenelausState *) i2c; + MenelausState *s =3D TWL92230(i2c); + /* Interpret register address byte */ if (s->firstbyte) { s->reg =3D data; @@ -729,7 +735,7 @@ static int menelaus_tx(I2CSlave *i2c, uint8_t data) =20 static int menelaus_rx(I2CSlave *i2c) { - MenelausState *s =3D (MenelausState *) i2c; + MenelausState *s =3D TWL92230(i2c); =20 return menelaus_read(s, s->reg ++); } @@ -834,23 +840,24 @@ static const VMStateDescription vmstate_menelaus =3D= { VMSTATE_STRUCT(rtc.alm, MenelausState, 0, vmstate_menelaus_tm, struct tm), VMSTATE_UINT8(pwrbtn_state, MenelausState), - VMSTATE_I2C_SLAVE(i2c, MenelausState), + VMSTATE_I2C_SLAVE(parent_obj, MenelausState), VMSTATE_END_OF_LIST() } }; =20 static int twl92230_init(I2CSlave *i2c) { - MenelausState *s =3D FROM_I2C_SLAVE(MenelausState, i2c); + DeviceState *dev =3D DEVICE(i2c); + MenelausState *s =3D TWL92230(i2c); =20 s->rtc.hz_tm =3D timer_new_ms(rtc_clock, menelaus_rtc_hz, s); /* Three output pins plus one interrupt pin. */ - qdev_init_gpio_out(&i2c->qdev, s->out, 4); + qdev_init_gpio_out(dev, s->out, 4); =20 /* Three input pins plus one power-button pin. */ - qdev_init_gpio_in(&i2c->qdev, menelaus_gpio_set, 4); + qdev_init_gpio_in(dev, menelaus_gpio_set, 4); =20 - menelaus_reset(&s->i2c); + menelaus_reset(i2c); =20 return 0; } @@ -868,7 +875,7 @@ static void twl92230_class_init(ObjectClass *klass, v= oid *data) } =20 static const TypeInfo twl92230_info =3D { - .name =3D "twl92230", + .name =3D TYPE_TWL92230, .parent =3D TYPE_I2C_SLAVE, .instance_size =3D sizeof(MenelausState), .class_init =3D twl92230_class_init, --=20 1.8.4.5