[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V2 07/10] introduce fixed-clock
From: |
Cédric Le Goater |
Subject: |
Re: [Qemu-devel] [PATCH V2 07/10] introduce fixed-clock |
Date: |
Mon, 6 Feb 2017 17:13:35 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 |
On 01/26/2017 10:47 AM, address@hidden wrote:
> From: KONRAD Frederic <address@hidden>
>
> This is a fixed clock device.
> It justs behave as an empty device with a parametrable output rate.
>
> Signed-off-by: KONRAD Frederic <address@hidden>
> ---
> hw/misc/Makefile.objs | 1 +
> hw/misc/fixed-clock.c | 88
> +++++++++++++++++++++++++++++++++++++++++++
> include/hw/misc/fixed-clock.h | 30 +++++++++++++++
> 3 files changed, 119 insertions(+)
> create mode 100644 hw/misc/fixed-clock.c
> create mode 100644 include/hw/misc/fixed-clock.h
>
> diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs
> index 1a89615..2670c2d 100644
> --- a/hw/misc/Makefile.objs
> +++ b/hw/misc/Makefile.objs
> @@ -53,3 +53,4 @@ obj-$(CONFIG_EDU) += edu.o
> obj-$(CONFIG_HYPERV_TESTDEV) += hyperv_testdev.o
> obj-$(CONFIG_AUX) += auxbus.o
> obj-$(CONFIG_ASPEED_SOC) += aspeed_scu.o aspeed_sdmc.o
> +obj-y += fixed-clock.o
> diff --git a/hw/misc/fixed-clock.c b/hw/misc/fixed-clock.c
> new file mode 100644
> index 0000000..aa124d8
> --- /dev/null
> +++ b/hw/misc/fixed-clock.c
> @@ -0,0 +1,88 @@
> +/*
> + * Fixed clock
> + *
> + * Copyright (C) 2016 : GreenSocs Ltd
> + * http://www.greensocs.com/ , email: address@hidden
> + *
> + * Frederic Konrad <address@hidden>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation, either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License along
> + * with this program; if not, see <http://www.gnu.org/licenses/>.
> + *
> + */
> +
> +#include "qemu/osdep.h"
> +#include "hw/qdev.h"
> +#include "hw/misc/fixed-clock.h"
> +#include "qemu/qemu-clock.h"
> +#include "qapi/error.h"
> +
> +#ifndef DEBUG_FIXED_CLOCK
> +#define DEBUG_FIXED_CLOCK 0
> +#endif
> +
> +#define DPRINTF(fmt, ...) do {
> \
> + if (DEBUG_FIXED_CLOCK) {
> \
> + qemu_log(__FILE__": " fmt , ## __VA_ARGS__);
> \
> + }
> \
> +} while (0);
> +
> +typedef struct {
> + DeviceState parent_obj;
> +
> + uint32_t rate;
> + struct qemu_clk out;
This really feels redundant. See my previous suggestion.
Thanks,
C.
> +} FixedClock;
> +
> +static Property fixed_clock_properties[] = {
> + DEFINE_PROP_UINT32("rate", FixedClock, rate, 0),
> + DEFINE_PROP_END_OF_LIST()
> +};
> +
> +static void fixed_clock_realizefn(DeviceState *dev, Error **errp)
> +{
> + FixedClock *s = FIXED_CLOCK(dev);
> +
> + qemu_clk_update_rate(&s->out, s->rate);
> +}
> +
> +static void fixed_clock_instance_init(Object *obj)
> +{
> + FixedClock *s = FIXED_CLOCK(obj);
> +
> + object_initialize(&s->out, sizeof(s->out), TYPE_CLOCK);
> + qemu_clk_device_add_clock(DEVICE(obj), &s->out, "clk_out");
> +}
> +
> +static void fixed_clock_class_init(ObjectClass *klass, void *data)
> +{
> + DeviceClass *dc = DEVICE_CLASS(klass);
> +
> + dc->realize = fixed_clock_realizefn;
> + dc->props = fixed_clock_properties;
> +}
> +
> +static const TypeInfo fixed_clock_info = {
> + .name = TYPE_FIXED_CLOCK,
> + .parent = TYPE_DEVICE,
> + .instance_size = sizeof(FixedClock),
> + .instance_init = fixed_clock_instance_init,
> + .class_init = fixed_clock_class_init,
> +};
> +
> +static void fixed_clock_register_types(void)
> +{
> + type_register_static(&fixed_clock_info);
> +}
> +
> +type_init(fixed_clock_register_types);
> diff --git a/include/hw/misc/fixed-clock.h b/include/hw/misc/fixed-clock.h
> new file mode 100644
> index 0000000..1376444
> --- /dev/null
> +++ b/include/hw/misc/fixed-clock.h
> @@ -0,0 +1,30 @@
> +/*
> + * Fixed clock
> + *
> + * Copyright (C) 2016 : GreenSocs Ltd
> + * http://www.greensocs.com/ , email: address@hidden
> + *
> + * Frederic Konrad <address@hidden>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation, either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License along
> + * with this program; if not, see <http://www.gnu.org/licenses/>.
> + *
> + */
> +
> +#ifndef FIXED_CLOCK_H
> +#define FIXED_CLOCK_H
> +
> +#define TYPE_FIXED_CLOCK "fixed-clock"
> +#define FIXED_CLOCK(obj) OBJECT_CHECK(FixedClock, (obj), TYPE_FIXED_CLOCK)
> +
> +#endif /* FIXED_CLOCK_H */
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH V2 07/10] introduce fixed-clock,
Cédric Le Goater <=