[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 16/17] hw/arm/spitz: Provide usual QOM macros for corgi-ssp a
From: |
Alistair Francis |
Subject: |
Re: [PATCH 16/17] hw/arm/spitz: Provide usual QOM macros for corgi-ssp and spitz-lcdtg |
Date: |
Thu, 2 Jul 2020 10:51:03 -0700 |
On Sun, Jun 28, 2020 at 7:35 AM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> The QOM types "spitz-lcdtg" and "corgi-ssp" are missing the
> usual QOM TYPE and casting macros; provide and use them.
>
> In particular, we can safely use the QOM cast macros instead of
> FROM_SSI_SLAVE() because in both cases the 'ssidev' field of
> the instance state struct is the first field in it.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> hw/arm/spitz.c | 23 +++++++++++++++--------
> 1 file changed, 15 insertions(+), 8 deletions(-)
>
> diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c
> index 49eae3fce4e..f020aff9747 100644
> --- a/hw/arm/spitz.c
> +++ b/hw/arm/spitz.c
> @@ -579,6 +579,9 @@ static void spitz_keyboard_realize(DeviceState *dev,
> Error **errp)
> #define LCDTG_PICTRL 0x06
> #define LCDTG_POLCTRL 0x07
>
> +#define TYPE_SPITZ_LCDTG "spitz-lcdtg"
> +#define SPITZ_LCDTG(obj) OBJECT_CHECK(SpitzLCDTG, (obj), TYPE_SPITZ_LCDTG)
> +
> typedef struct {
> SSISlave ssidev;
> uint32_t bl_intensity;
> @@ -616,7 +619,7 @@ static inline void spitz_bl_power(void *opaque, int line,
> int level)
>
> static uint32_t spitz_lcdtg_transfer(SSISlave *dev, uint32_t value)
> {
> - SpitzLCDTG *s = FROM_SSI_SLAVE(SpitzLCDTG, dev);
> + SpitzLCDTG *s = SPITZ_LCDTG(dev);
> int addr;
> addr = value >> 5;
> value &= 0x1f;
> @@ -645,7 +648,7 @@ static uint32_t spitz_lcdtg_transfer(SSISlave *dev,
> uint32_t value)
>
> static void spitz_lcdtg_realize(SSISlave *ssi, Error **errp)
> {
> - SpitzLCDTG *s = FROM_SSI_SLAVE(SpitzLCDTG, ssi);
> + SpitzLCDTG *s = SPITZ_LCDTG(ssi);
> DeviceState *dev = DEVICE(s);
>
> s->bl_power = 0;
> @@ -664,6 +667,9 @@ static void spitz_lcdtg_realize(SSISlave *ssi, Error
> **errp)
> #define SPITZ_GPIO_MAX1111_CS 20
> #define SPITZ_GPIO_TP_INT 11
>
> +#define TYPE_CORGI_SSP "corgi-ssp"
> +#define CORGI_SSP(obj) OBJECT_CHECK(CorgiSSPState, (obj), TYPE_CORGI_SSP)
> +
> /* "Demux" the signal based on current chipselect */
> typedef struct {
> SSISlave ssidev;
> @@ -673,7 +679,7 @@ typedef struct {
>
> static uint32_t corgi_ssp_transfer(SSISlave *dev, uint32_t value)
> {
> - CorgiSSPState *s = FROM_SSI_SLAVE(CorgiSSPState, dev);
> + CorgiSSPState *s = CORGI_SSP(dev);
> int i;
>
> for (i = 0; i < 3; i++) {
> @@ -702,7 +708,7 @@ static void corgi_ssp_gpio_cs(void *opaque, int line, int
> level)
> static void corgi_ssp_realize(SSISlave *d, Error **errp)
> {
> DeviceState *dev = DEVICE(d);
> - CorgiSSPState *s = FROM_SSI_SLAVE(CorgiSSPState, d);
> + CorgiSSPState *s = CORGI_SSP(d);
>
> qdev_init_gpio_in(dev, corgi_ssp_gpio_cs, 3);
> s->bus[0] = ssi_create_bus(dev, "ssi0");
> @@ -714,10 +720,11 @@ static void spitz_ssp_attach(SpitzMachineState *sms)
> {
> void *bus;
>
> - sms->mux = ssi_create_slave(sms->mpu->ssp[CORGI_SSP_PORT - 1],
> "corgi-ssp");
> + sms->mux = ssi_create_slave(sms->mpu->ssp[CORGI_SSP_PORT - 1],
> + TYPE_CORGI_SSP);
>
> bus = qdev_get_child_bus(sms->mux, "ssi0");
> - sms->lcdtg = ssi_create_slave(bus, "spitz-lcdtg");
> + sms->lcdtg = ssi_create_slave(bus, TYPE_SPITZ_LCDTG);
>
> bus = qdev_get_child_bus(sms->mux, "ssi1");
> sms->ads7846 = ssi_create_slave(bus, "ads7846");
> @@ -1220,7 +1227,7 @@ static void corgi_ssp_class_init(ObjectClass *klass,
> void *data)
> }
>
> static const TypeInfo corgi_ssp_info = {
> - .name = "corgi-ssp",
> + .name = TYPE_CORGI_SSP,
> .parent = TYPE_SSI_SLAVE,
> .instance_size = sizeof(CorgiSSPState),
> .class_init = corgi_ssp_class_init,
> @@ -1249,7 +1256,7 @@ static void spitz_lcdtg_class_init(ObjectClass *klass,
> void *data)
> }
>
> static const TypeInfo spitz_lcdtg_info = {
> - .name = "spitz-lcdtg",
> + .name = TYPE_SPITZ_LCDTG,
> .parent = TYPE_SSI_SLAVE,
> .instance_size = sizeof(SpitzLCDTG),
> .class_init = spitz_lcdtg_class_init,
> --
> 2.20.1
>
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH 16/17] hw/arm/spitz: Provide usual QOM macros for corgi-ssp and spitz-lcdtg,
Alistair Francis <=