qemu-devel.nongnu.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).