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
next prev parent 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).