From: Markus Armbruster <armbru@redhat.com>
To: BALATON Zoltan <balaton@eik.bme.hu>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Corey Minyard" <cminyard@mvista.com>,
"Andrew Jeffery" <andrew@aj.id.au>,
"Joel Stanley" <joel@jms.id.au>,
qemu-devel@nongnu.org, "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
qemu-arm@nongnu.org, qemu-ppc@nongnu.org,
"Cédric Le Goater" <clg@kaod.org>,
"Jan Kiszka" <jan.kiszka@web.de>,
"David Gibson" <david@gibson.dropbear.id.au>
Subject: Re: [PATCH 2/5] hw/i2c: Rename i2c_try_create_slave() as i2c_slave_new()
Date: Tue, 30 Jun 2020 11:37:46 +0200 [thread overview]
Message-ID: <87mu4khp1x.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <alpine.BSF.2.22.395.2006292333540.63145@zero.eik.bme.hu> (BALATON Zoltan's message of "Mon, 29 Jun 2020 23:37:05 +0200 (CEST)")
BALATON Zoltan <balaton@eik.bme.hu> writes:
> On Mon, 29 Jun 2020, Philippe Mathieu-Daudé wrote:
>> We use "new" names for functions that allocate and initialize
>> device objects: pci_new(), isa_new(), usb_new().
>> Let's call this one i2c_slave_new(). Since we have to update
>> all the callers, also let it return a I2CSlave object.
>
> All the callers now need a cast due to change to I2CSlave * instead of
Actually, all but one; I'll mark it inline.
> what they expect. Does that really worth it? Also this introduces
> inconsistency between i2c_create_slave and i2c_new so not sure about
For what it's worth, this inconsistency is healed in PATCH 4.
> that part but I don't really mind either way. Maybe return what most
> callers expect so the calls are simple and don't need an additional
> cast in most of the cases?
I'd prefer consistency with similar FOO_new() functions for abstract
devices plugging into a FOOBus: pci_new(), isa_new(), usb_new().
> Regards,
> BALATON Zoltan
>
>> Suggested-by: Markus Armbruster <armbru@redhat.com>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> include/hw/i2c/i2c.h | 2 +-
>> hw/arm/aspeed.c | 4 ++--
>> hw/i2c/core.c | 9 ++++-----
>> 3 files changed, 7 insertions(+), 8 deletions(-)
>>
>> diff --git a/include/hw/i2c/i2c.h b/include/hw/i2c/i2c.h
>> index d6e3d85faf..18efc668f1 100644
>> --- a/include/hw/i2c/i2c.h
>> +++ b/include/hw/i2c/i2c.h
>> @@ -79,8 +79,8 @@ int i2c_send_recv(I2CBus *bus, uint8_t *data, bool send);
>> int i2c_send(I2CBus *bus, uint8_t data);
>> uint8_t i2c_recv(I2CBus *bus);
>>
>> +I2CSlave *i2c_slave_new(const char *name, uint8_t addr);
>> DeviceState *i2c_create_slave(I2CBus *bus, const char *name, uint8_t addr);
>> -DeviceState *i2c_try_create_slave(const char *name, uint8_t addr);
>> bool i2c_realize_and_unref(DeviceState *dev, I2CBus *bus, Error **errp);
>>
>> /* lm832x.c */
>> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
>> index 1285bf82c0..54ca36e0b6 100644
>> --- a/hw/arm/aspeed.c
>> +++ b/hw/arm/aspeed.c
>> @@ -513,7 +513,7 @@ static void witherspoon_bmc_i2c_init(AspeedMachineState *bmc)
>> /* Bus 3: TODO bmp280@77 */
>> /* Bus 3: TODO max31785@52 */
>> /* Bus 3: TODO dps310@76 */
>> - dev = i2c_try_create_slave(TYPE_PCA9552, 0x60);
>> + dev = DEVICE(i2c_slave_new(TYPE_PCA9552, 0x60));
>> qdev_prop_set_string(dev, "description", "pca1");
>> i2c_realize_and_unref(dev, aspeed_i2c_get_bus(&soc->i2c, 3),
>> &error_fatal);
>> @@ -531,7 +531,7 @@ static void witherspoon_bmc_i2c_init(AspeedMachineState *bmc)
>>
>> smbus_eeprom_init_one(aspeed_i2c_get_bus(&soc->i2c, 11), 0x51,
>> eeprom_buf);
>> - dev = i2c_try_create_slave(TYPE_PCA9552, 0x60);
>> + dev = DEVICE(i2c_slave_new(TYPE_PCA9552, 0x60));
>> qdev_prop_set_string(dev, "description", "pca0");
>> i2c_realize_and_unref(dev, aspeed_i2c_get_bus(&soc->i2c, 11),
>> &error_fatal);
>> diff --git a/hw/i2c/core.c b/hw/i2c/core.c
>> index acf34a12d6..6eacb4a463 100644
>> --- a/hw/i2c/core.c
>> +++ b/hw/i2c/core.c
>> @@ -267,13 +267,13 @@ const VMStateDescription vmstate_i2c_slave = {
>> }
>> };
>>
>> -DeviceState *i2c_try_create_slave(const char *name, uint8_t addr)
>> +I2CSlave *i2c_slave_new(const char *name, uint8_t addr)
>> {
>> DeviceState *dev;
>>
>> dev = qdev_new(name);
>> qdev_prop_set_uint8(dev, "address", addr);
>> - return dev;
>> + return I2C_SLAVE(dev);
>> }
>>
>> bool i2c_realize_and_unref(DeviceState *dev, I2CBus *bus, Error **errp)
>> @@ -283,10 +283,9 @@ bool i2c_realize_and_unref(DeviceState *dev, I2CBus *bus, Error **errp)
>>
>> DeviceState *i2c_create_slave(I2CBus *bus, const char *name, uint8_t addr)
>> {
>> - DeviceState *dev;
>> + DeviceState *dev = DEVICE(i2c_slave_new(name, addr));
>>
>> - dev = i2c_try_create_slave(name, addr);
>> - i2c_realize_and_unref(dev, bus, &error_fatal);
>> + i2c_realize_and_unref(I2C_SLAVE(dev), bus, &error_fatal);
>>
>> return dev;
>> }
Fewer casts:
DeviceState *i2c_create_slave(I2CBus *bus, const char *name, uint8_t addr)
{
I2CSlave *dev = i2c_slave_new(name, addr );
i2c_realize_and_unref(dev, bus, &error_fatal);
return DEVICE(dev);
}
It's all the same after PATCH 4. You decide whether to polish the
intermediate state.
Reviewed-by: Markus Armbruster <armbru@redhat.com>
next prev parent reply other threads:[~2020-06-30 9:38 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-29 17:38 [PATCH 0/5] hw/i2c: Rename method names for consistency and add documentation Philippe Mathieu-Daudé
2020-06-29 17:38 ` Philippe Mathieu-Daudé
2020-06-29 17:38 ` [PATCH 1/5] hw/i2c/aspeed_i2c: Simplify aspeed_i2c_get_bus() Philippe Mathieu-Daudé
2020-06-29 17:38 ` Philippe Mathieu-Daudé
2020-06-30 9:28 ` Markus Armbruster
2020-07-13 12:23 ` Cédric Le Goater
2020-07-13 12:23 ` Cédric Le Goater
2020-06-29 17:38 ` [PATCH 2/5] hw/i2c: Rename i2c_try_create_slave() as i2c_slave_new() Philippe Mathieu-Daudé
2020-06-29 17:38 ` Philippe Mathieu-Daudé
2020-06-29 21:29 ` Corey Minyard
2020-06-29 21:37 ` BALATON Zoltan
2020-06-29 21:37 ` BALATON Zoltan
2020-06-30 8:29 ` Philippe Mathieu-Daudé
2020-06-30 8:29 ` Philippe Mathieu-Daudé
2020-06-30 9:37 ` Markus Armbruster [this message]
2020-06-29 17:38 ` [PATCH 3/5] hw/i2c: Rename i2c_realize_and_unref() as i2c_slave_realize_and_unref() Philippe Mathieu-Daudé
2020-06-29 17:38 ` Philippe Mathieu-Daudé
2020-06-29 21:29 ` Corey Minyard
2020-06-29 17:38 ` [PATCH 4/5] hw/i2c: Rename i2c_create_slave() as i2c_slave_create_simple() Philippe Mathieu-Daudé
2020-06-29 17:38 ` Philippe Mathieu-Daudé
2020-06-29 21:29 ` Corey Minyard
2020-06-30 9:48 ` Markus Armbruster
2020-06-29 17:38 ` [PATCH 5/5] hw/i2c: Document the I2C qdev helpers Philippe Mathieu-Daudé
2020-06-29 17:38 ` Philippe Mathieu-Daudé
2020-06-29 21:30 ` Corey Minyard
2020-06-30 10:15 ` Markus Armbruster
2020-06-30 10:45 ` Philippe Mathieu-Daudé
2020-06-30 13:16 ` Peter Maydell
2020-07-14 7:05 ` Markus Armbruster
2020-07-14 9:32 ` Peter Maydell
2020-06-29 21:28 ` [PATCH 0/5] hw/i2c: Rename method names for consistency and add documentation Corey Minyard
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=87mu4khp1x.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=andrew@aj.id.au \
--cc=balaton@eik.bme.hu \
--cc=clg@kaod.org \
--cc=cminyard@mvista.com \
--cc=david@gibson.dropbear.id.au \
--cc=f4bug@amsat.org \
--cc=jan.kiszka@web.de \
--cc=joel@jms.id.au \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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.