All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH qom-next for-1.6 17/20] pxa2xx_timer: QOM cast cleanup
Date: Mon, 29 Jul 2013 05:50:11 +0200	[thread overview]
Message-ID: <51F5E673.4080405@suse.de> (raw)
In-Reply-To: <1374932223-7490-18-git-send-email-afaerber@suse.de>

Am 27.07.2013 15:37, schrieb Andreas Färber:
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  hw/timer/pxa2xx_timer.c | 38 +++++++++++++++++++++++++++-----------
>  1 file changed, 27 insertions(+), 11 deletions(-)
> 
> diff --git a/hw/timer/pxa2xx_timer.c b/hw/timer/pxa2xx_timer.c
> index 4d28719..ff63fa6 100644
> --- a/hw/timer/pxa2xx_timer.c
> +++ b/hw/timer/pxa2xx_timer.c
> @@ -60,6 +60,10 @@ static int pxa2xx_timer4_freq[8] = {
>      [5 ... 7] = 0,
>  };
>  
> +#define TYPE_PXA2XX_TIMER "pxa2xx-timer"
> +#define PXA2XX_TIMER(obj) \
> +    OBJECT_CHECK(PXA2xxTimerInfo, (obj), TYPE_PXA2XX_TIMER)
> +
>  typedef struct PXA2xxTimerInfo PXA2xxTimerInfo;
>  
>  typedef struct {
> @@ -80,7 +84,8 @@ typedef struct {
>  } PXA2xxTimer4;
>  
>  struct PXA2xxTimerInfo {
> -    SysBusDevice busdev;
> +    SysBusDevice parent_obj;
> +
>      MemoryRegion iomem;
>      uint32_t flags;
>  
> @@ -429,10 +434,9 @@ static int pxa25x_timer_post_load(void *opaque, int version_id)
>  
>  static int pxa2xx_timer_init(SysBusDevice *dev)
>  {
> +    PXA2xxTimerInfo *s = PXA2XX_TIMER(dev);
>      int i;
> -    PXA2xxTimerInfo *s;
>  
> -    s = FROM_SYSBUS(PXA2xxTimerInfo, dev);
>      s->irq_enabled = 0;
>      s->oldclock = 0;
>      s->clock = 0;
> @@ -527,18 +531,15 @@ static const VMStateDescription vmstate_pxa2xx_timer_regs = {
>  static Property pxa25x_timer_dev_properties[] = {
>      DEFINE_PROP_UINT32("freq", PXA2xxTimerInfo, freq, PXA25X_FREQ),
>      DEFINE_PROP_BIT("tm4", PXA2xxTimerInfo, flags,
> -    PXA2XX_TIMER_HAVE_TM4, false),
> +                    PXA2XX_TIMER_HAVE_TM4, false),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  
>  static void pxa25x_timer_dev_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
> -    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
>  
> -    k->init = pxa2xx_timer_init;
>      dc->desc = "PXA25x timer";
> -    dc->vmsd = &vmstate_pxa2xx_timer_regs;
>      dc->props = pxa25x_timer_dev_properties;
>  }
>  
> @@ -552,18 +553,15 @@ static const TypeInfo pxa25x_timer_dev_info = {
>  static Property pxa27x_timer_dev_properties[] = {
>      DEFINE_PROP_UINT32("freq", PXA2xxTimerInfo, freq, PXA27X_FREQ),
>      DEFINE_PROP_BIT("tm4", PXA2xxTimerInfo, flags,
> -    PXA2XX_TIMER_HAVE_TM4, true),
> +                    PXA2XX_TIMER_HAVE_TM4, true),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  
>  static void pxa27x_timer_dev_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
> -    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
>  
> -    k->init = pxa2xx_timer_init;
>      dc->desc = "PXA27x timer";
> -    dc->vmsd = &vmstate_pxa2xx_timer_regs;
>      dc->props = pxa27x_timer_dev_properties;
>  }
>  
> @@ -574,8 +572,26 @@ static const TypeInfo pxa27x_timer_dev_info = {
>      .class_init    = pxa27x_timer_dev_class_init,
>  };
>  
> +static void pxa2xx_timer_class_init(ObjectClass *oc, void *data)
> +{
> +    DeviceClass *dc = DEVICE_CLASS(oc);
> +    SysBusDeviceClass *sdc = SYS_BUS_DEVICE_CLASS(oc);
> +
> +    sdc->init = pxa2xx_timer_init;
> +    dc->vmsd = &vmstate_pxa2xx_timer_regs;
> +}
> +
> +static const TypeInfo pxa2xx_timer_type_info = {
> +    .name          = TYPE_PXA2XX_TIMER,
> +    .parent        = TYPE_SYS_BUS_DEVICE,
> +    .instance_size = sizeof(PXA2xxTimerInfo),
> +    .abstract      = true,
> +    .class_init    = pxa2xx_timer_class_init,
> +};
> +
>  static void pxa2xx_timer_register_types(void)
>  {
> +    type_register_static(&pxa2xx_timer_type_info);
>      type_register_static(&pxa25x_timer_dev_info);
>      type_register_static(&pxa27x_timer_dev_info);
>  }

Needs the following addition (and subject fix), found by qtests:

diff --git a/hw/timer/pxa2xx_timer.c b/hw/timer/pxa2xx_timer.c
index ff63fa6..cdabccd 100644
--- a/hw/timer/pxa2xx_timer.c
+++ b/hw/timer/pxa2xx_timer.c
@@ -545,7 +545,7 @@ static void pxa25x_timer_dev_class_init(ObjectClass
*klass, void *data)

 static const TypeInfo pxa25x_timer_dev_info = {
     .name          = "pxa25x-timer",
-    .parent        = TYPE_SYS_BUS_DEVICE,
+    .parent        = TYPE_PXA2XX_TIMER,
     .instance_size = sizeof(PXA2xxTimerInfo),
     .class_init    = pxa25x_timer_dev_class_init,
 };
@@ -567,7 +567,7 @@ static void pxa27x_timer_dev_class_init(ObjectClass
*klass, void *data)

 static const TypeInfo pxa27x_timer_dev_info = {
     .name          = "pxa27x-timer",
-    .parent        = TYPE_SYS_BUS_DEVICE,
+    .parent        = TYPE_PXA2XX_TIMER,
     .instance_size = sizeof(PXA2xxTimerInfo),
     .class_init    = pxa27x_timer_dev_class_init,

Andreas

-- 
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:[~2013-07-29  3:50 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 01/20] arm_timer: Rename sp804_state to SP804State Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 02/20] arm_timer: QOM cast cleanup for SP804State Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 03/20] arm_timer: QOM cast cleanup for icp_pit_state Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 04/20] cadence_ttc: QOM cast cleanup Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 05/20] etraxfs_timer: Rename etrax_timer to ETRAXTimerState Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 06/20] etraxfs_timer: QOM cast cleanup Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 07/20] exynos4210_mct: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 08/20] exynos4210_pwm: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 09/20] exynos4210_rtc: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 10/20] grlib_gptimer: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 11/20] lm32_timer: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 12/20] m48t59: QOM cast cleanup for M48t59SysBusState Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 13/20] milkymist-sysctl: QOM cast cleanup Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 14/20] pl031: Rename pl031_state to PL031State Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 15/20] pl031: QOM cast cleanup Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 16/20] puv3_ost: " Andreas Färber
2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 17/20] pxa2xx_timer: " Andreas Färber
2013-07-29  3:50   ` Andreas Färber [this message]
2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 18/20] slavio_timer: " Andreas Färber
2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 19/20] tusb6010: " Andreas Färber
2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 20/20] xilinx_timer: " 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=51F5E673.4080405@suse.de \
    --to=afaerber@suse.de \
    --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.