From: eric.auger@linaro.org (Eric Auger)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/4] VFIO: platform: add reset struct and lookup table
Date: Wed, 10 Jun 2015 13:45:27 +0200 [thread overview]
Message-ID: <55782357.9070601@linaro.org> (raw)
In-Reply-To: <1433874374.4927.114.camel@redhat.com>
Hi Alex,
On 06/09/2015 08:26 PM, Alex Williamson wrote:
> On Fri, 2015-06-05 at 17:06 +0200, Eric Auger wrote:
>> This patch introduces the vfio_platform_reset_combo struct that
>> stores all the information useful to handle the reset modality:
>> compat string, name of the reset function, name of the module that
>> implements the reset function. A lookup table of such structures
>> is added, currently containing a single sentinel element. A new
>> type field is added in vfio_platform_device to store what kind of
>> reset is associated to the device, if any.
>>
>> Signed-off-by: Eric Auger <eric.auger@linaro.org>
>> ---
>> drivers/vfio/platform/vfio_platform_common.c | 6 ++++++
>> drivers/vfio/platform/vfio_platform_private.h | 12 ++++++++++++
>> 2 files changed, 18 insertions(+)
>>
>> diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c
>> index abcff7a..d970776 100644
>> --- a/drivers/vfio/platform/vfio_platform_common.c
>> +++ b/drivers/vfio/platform/vfio_platform_common.c
>> @@ -25,6 +25,12 @@
>>
>> static DEFINE_MUTEX(driver_lock);
>>
>> +static const struct vfio_platform_reset_combo reset_lookup_table[] = {
>> + {
>> + .type = VFIO_PLATFORM_RESET_TYPE_MAX
>> + },
>> +};
>> +
>> static int vfio_platform_regions_init(struct vfio_platform_device *vdev)
>> {
>> int cnt = 0, i;
>> diff --git a/drivers/vfio/platform/vfio_platform_private.h b/drivers/vfio/platform/vfio_platform_private.h
>> index 5d31e04..d864124 100644
>> --- a/drivers/vfio/platform/vfio_platform_private.h
>> +++ b/drivers/vfio/platform/vfio_platform_private.h
>> @@ -49,6 +49,10 @@ struct vfio_platform_region {
>> void __iomem *ioaddr;
>> };
>>
>> +enum vfio_platform_reset_type {
>> + VFIO_PLATFORM_RESET_TYPE_MAX /* last element */,
>> +};
>> +
>> struct vfio_platform_device {
>> struct vfio_platform_region *regions;
>> u32 num_regions;
>> @@ -56,6 +60,7 @@ struct vfio_platform_device {
>> u32 num_irqs;
>> int refcnt;
>> struct mutex igate;
>> + enum vfio_platform_reset_type type;
>>
>> /*
>> * These fields should be filled by the bus specific binder
>> @@ -69,6 +74,13 @@ struct vfio_platform_device {
>> int (*get_irq)(struct vfio_platform_device *vdev, int i);
>> };
>>
>> +struct vfio_platform_reset_combo {
>> + enum vfio_platform_reset_type type;
>> + char *compat;
>> + char *reset_function_name;
>> + char *module_name;
>> +};
>> +
>
> I don't really understand the benefit of vfio_platform_reset_type, what
> does it add? If we want an array end marker, we could just use NULL,
> but if we're dealing with a static table, we could always use ARRAY_SIZE
> and avoid an end marker altogether. If the concern is matching the
> symbol to put when the device is released, we could just use
> symbol_put_addr() and avoid any sort of lookup. Seems like there could
> also be a smattering of "const" in this struct definition too.
Agreed. I will respin accordingly.
Best Regards
Eric
>
>> extern int vfio_platform_probe_common(struct vfio_platform_device *vdev,
>> struct device *dev);
>> extern struct vfio_platform_device *vfio_platform_remove_common
>
>
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
WARNING: multiple messages have this Message-ID (diff)
From: Eric Auger <eric.auger@linaro.org>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: b.reynal@virtualopensystems.com, patches@linaro.org,
linux-kernel@vger.kernel.org, agraf@suse.de,
linux-arm-kernel@lists.infradead.org, eric.auger@st.com,
christoffer.dall@linaro.org
Subject: Re: [PATCH v2 1/4] VFIO: platform: add reset struct and lookup table
Date: Wed, 10 Jun 2015 13:45:27 +0200 [thread overview]
Message-ID: <55782357.9070601@linaro.org> (raw)
In-Reply-To: <1433874374.4927.114.camel@redhat.com>
Hi Alex,
On 06/09/2015 08:26 PM, Alex Williamson wrote:
> On Fri, 2015-06-05 at 17:06 +0200, Eric Auger wrote:
>> This patch introduces the vfio_platform_reset_combo struct that
>> stores all the information useful to handle the reset modality:
>> compat string, name of the reset function, name of the module that
>> implements the reset function. A lookup table of such structures
>> is added, currently containing a single sentinel element. A new
>> type field is added in vfio_platform_device to store what kind of
>> reset is associated to the device, if any.
>>
>> Signed-off-by: Eric Auger <eric.auger@linaro.org>
>> ---
>> drivers/vfio/platform/vfio_platform_common.c | 6 ++++++
>> drivers/vfio/platform/vfio_platform_private.h | 12 ++++++++++++
>> 2 files changed, 18 insertions(+)
>>
>> diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c
>> index abcff7a..d970776 100644
>> --- a/drivers/vfio/platform/vfio_platform_common.c
>> +++ b/drivers/vfio/platform/vfio_platform_common.c
>> @@ -25,6 +25,12 @@
>>
>> static DEFINE_MUTEX(driver_lock);
>>
>> +static const struct vfio_platform_reset_combo reset_lookup_table[] = {
>> + {
>> + .type = VFIO_PLATFORM_RESET_TYPE_MAX
>> + },
>> +};
>> +
>> static int vfio_platform_regions_init(struct vfio_platform_device *vdev)
>> {
>> int cnt = 0, i;
>> diff --git a/drivers/vfio/platform/vfio_platform_private.h b/drivers/vfio/platform/vfio_platform_private.h
>> index 5d31e04..d864124 100644
>> --- a/drivers/vfio/platform/vfio_platform_private.h
>> +++ b/drivers/vfio/platform/vfio_platform_private.h
>> @@ -49,6 +49,10 @@ struct vfio_platform_region {
>> void __iomem *ioaddr;
>> };
>>
>> +enum vfio_platform_reset_type {
>> + VFIO_PLATFORM_RESET_TYPE_MAX /* last element */,
>> +};
>> +
>> struct vfio_platform_device {
>> struct vfio_platform_region *regions;
>> u32 num_regions;
>> @@ -56,6 +60,7 @@ struct vfio_platform_device {
>> u32 num_irqs;
>> int refcnt;
>> struct mutex igate;
>> + enum vfio_platform_reset_type type;
>>
>> /*
>> * These fields should be filled by the bus specific binder
>> @@ -69,6 +74,13 @@ struct vfio_platform_device {
>> int (*get_irq)(struct vfio_platform_device *vdev, int i);
>> };
>>
>> +struct vfio_platform_reset_combo {
>> + enum vfio_platform_reset_type type;
>> + char *compat;
>> + char *reset_function_name;
>> + char *module_name;
>> +};
>> +
>
> I don't really understand the benefit of vfio_platform_reset_type, what
> does it add? If we want an array end marker, we could just use NULL,
> but if we're dealing with a static table, we could always use ARRAY_SIZE
> and avoid an end marker altogether. If the concern is matching the
> symbol to put when the device is released, we could just use
> symbol_put_addr() and avoid any sort of lookup. Seems like there could
> also be a smattering of "const" in this struct definition too.
Agreed. I will respin accordingly.
Best Regards
Eric
>
>> extern int vfio_platform_probe_common(struct vfio_platform_device *vdev,
>> struct device *dev);
>> extern struct vfio_platform_device *vfio_platform_remove_common
>
>
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
next prev parent reply other threads:[~2015-06-10 11:45 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-05 15:06 [PATCH v2 0/4] VFIO platform reset Eric Auger
2015-06-05 15:06 ` Eric Auger
2015-06-05 15:06 ` [PATCH v2 1/4] VFIO: platform: add reset struct and lookup table Eric Auger
2015-06-05 15:06 ` Eric Auger
2015-06-09 18:26 ` Alex Williamson
2015-06-09 18:26 ` Alex Williamson
2015-06-10 11:45 ` Eric Auger [this message]
2015-06-10 11:45 ` Eric Auger
2015-06-05 15:06 ` [PATCH v2 2/4] VFIO: platform: add reset callback Eric Auger
2015-06-05 15:06 ` Eric Auger
2015-06-05 15:06 ` [PATCH v2 3/4] VFIO: platform: populate the reset function on probe Eric Auger
2015-06-05 15:06 ` Eric Auger
2015-06-09 18:26 ` Alex Williamson
2015-06-09 18:26 ` Alex Williamson
2015-06-10 11:44 ` Eric Auger
2015-06-10 11:44 ` Eric Auger
2015-06-10 15:10 ` Alex Williamson
2015-06-10 15:10 ` Alex Williamson
2015-06-10 15:13 ` Eric Auger
2015-06-10 15:13 ` Eric Auger
2015-06-11 9:37 ` Eric Auger
2015-06-11 9:37 ` Eric Auger
2015-06-05 15:06 ` [PATCH v2 4/4] VFIO: platform: Calxeda xgmac reset module Eric Auger
2015-06-05 15:06 ` Eric Auger
2015-06-06 12:57 ` Paul Bolle
2015-06-06 12:57 ` Paul Bolle
2015-06-08 8:02 ` Eric Auger
2015-06-08 8:02 ` Eric Auger
2015-06-05 18:05 ` [PATCH v2 0/4] VFIO platform reset Rob Herring
2015-06-05 18:05 ` Rob Herring
2015-06-05 21:14 ` Scott Wood
2015-06-05 21:14 ` Scott Wood
2015-06-08 7:51 ` Eric Auger
2015-06-08 7:51 ` Eric Auger
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=55782357.9070601@linaro.org \
--to=eric.auger@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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.