* [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource()
2020-10-27 17:58 [PATCH v1 1/5] driver core: platform: Introduce platform_get_mem_or_io_resource() Andy Shevchenko
@ 2020-10-27 17:58 ` Andy Shevchenko
2020-12-03 12:54 ` Auger Eric
` (2 more replies)
2020-10-27 17:58 ` [PATCH v1 3/5] usb: host: sl811: " Andy Shevchenko
` (3 subsequent siblings)
4 siblings, 3 replies; 16+ messages in thread
From: Andy Shevchenko @ 2020-10-27 17:58 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-kernel
Cc: Andy Shevchenko, Eric Auger, Alex Williamson, Cornelia Huck, kvm
Switch to use new platform_get_mem_or_io_resource() instead of
home grown analogue.
Cc: Eric Auger <eric.auger@redhat.com>
Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Cornelia Huck <cohuck@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/vfio/platform/vfio_platform.c | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/drivers/vfio/platform/vfio_platform.c b/drivers/vfio/platform/vfio_platform.c
index 1e2769010089..84afafb6941b 100644
--- a/drivers/vfio/platform/vfio_platform.c
+++ b/drivers/vfio/platform/vfio_platform.c
@@ -25,19 +25,8 @@ static struct resource *get_platform_resource(struct vfio_platform_device *vdev,
int num)
{
struct platform_device *dev = (struct platform_device *) vdev->opaque;
- int i;
- for (i = 0; i < dev->num_resources; i++) {
- struct resource *r = &dev->resource[i];
-
- if (resource_type(r) & (IORESOURCE_MEM|IORESOURCE_IO)) {
- if (!num)
- return r;
-
- num--;
- }
- }
- return NULL;
+ return platform_get_mem_or_io_resource(dev, num);
}
static int get_platform_irq(struct vfio_platform_device *vdev, int i)
--
2.28.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource()
2020-10-27 17:58 ` [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource() Andy Shevchenko
@ 2020-12-03 12:54 ` Auger Eric
2020-12-03 13:07 ` Andy Shevchenko
2020-12-03 13:22 ` Cornelia Huck
2020-12-03 18:05 ` Alex Williamson
2 siblings, 1 reply; 16+ messages in thread
From: Auger Eric @ 2020-12-03 12:54 UTC (permalink / raw)
To: Andy Shevchenko, Greg Kroah-Hartman, linux-kernel
Cc: Alex Williamson, Cornelia Huck, kvm
Hi Andy,
On 10/27/20 6:58 PM, Andy Shevchenko wrote:
> Switch to use new platform_get_mem_or_io_resource() instead of
> home grown analogue.
>
> Cc: Eric Auger <eric.auger@redhat.com>
> Cc: Alex Williamson <alex.williamson@redhat.com>
> Cc: Cornelia Huck <cohuck@redhat.com>
> Cc: kvm@vger.kernel.org
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Eric Auger <eric.auger@redhat.com>
Thanks
Eric
> ---
> drivers/vfio/platform/vfio_platform.c | 13 +------------
> 1 file changed, 1 insertion(+), 12 deletions(-)
>
> diff --git a/drivers/vfio/platform/vfio_platform.c b/drivers/vfio/platform/vfio_platform.c
> index 1e2769010089..84afafb6941b 100644
> --- a/drivers/vfio/platform/vfio_platform.c
> +++ b/drivers/vfio/platform/vfio_platform.c
> @@ -25,19 +25,8 @@ static struct resource *get_platform_resource(struct vfio_platform_device *vdev,
> int num)
> {
> struct platform_device *dev = (struct platform_device *) vdev->opaque;
> - int i;
>
> - for (i = 0; i < dev->num_resources; i++) {
> - struct resource *r = &dev->resource[i];
> -
> - if (resource_type(r) & (IORESOURCE_MEM|IORESOURCE_IO)) {
> - if (!num)
> - return r;
> -
> - num--;
> - }
> - }
> - return NULL;
> + return platform_get_mem_or_io_resource(dev, num);
> }
>
> static int get_platform_irq(struct vfio_platform_device *vdev, int i)
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource()
2020-12-03 12:54 ` Auger Eric
@ 2020-12-03 13:07 ` Andy Shevchenko
2020-12-09 14:47 ` Greg Kroah-Hartman
0 siblings, 1 reply; 16+ messages in thread
From: Andy Shevchenko @ 2020-12-03 13:07 UTC (permalink / raw)
To: Auger Eric
Cc: Greg Kroah-Hartman, linux-kernel, Alex Williamson, Cornelia Huck, kvm
On Thu, Dec 03, 2020 at 01:54:38PM +0100, Auger Eric wrote:
> Hi Andy,
>
> On 10/27/20 6:58 PM, Andy Shevchenko wrote:
> > Switch to use new platform_get_mem_or_io_resource() instead of
> > home grown analogue.
> >
> > Cc: Eric Auger <eric.auger@redhat.com>
> > Cc: Alex Williamson <alex.williamson@redhat.com>
> > Cc: Cornelia Huck <cohuck@redhat.com>
> > Cc: kvm@vger.kernel.org
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Acked-by: Eric Auger <eric.auger@redhat.com>
Thanks!
Greg, do I need to do anything else with this series?
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource()
2020-12-03 13:07 ` Andy Shevchenko
@ 2020-12-09 14:47 ` Greg Kroah-Hartman
2020-12-09 16:48 ` Andy Shevchenko
0 siblings, 1 reply; 16+ messages in thread
From: Greg Kroah-Hartman @ 2020-12-09 14:47 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Auger Eric, linux-kernel, Alex Williamson, Cornelia Huck, kvm
On Thu, Dec 03, 2020 at 03:07:19PM +0200, Andy Shevchenko wrote:
> On Thu, Dec 03, 2020 at 01:54:38PM +0100, Auger Eric wrote:
> > Hi Andy,
> >
> > On 10/27/20 6:58 PM, Andy Shevchenko wrote:
> > > Switch to use new platform_get_mem_or_io_resource() instead of
> > > home grown analogue.
> > >
> > > Cc: Eric Auger <eric.auger@redhat.com>
> > > Cc: Alex Williamson <alex.williamson@redhat.com>
> > > Cc: Cornelia Huck <cohuck@redhat.com>
> > > Cc: kvm@vger.kernel.org
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Acked-by: Eric Auger <eric.auger@redhat.com>
>
> Thanks!
>
> Greg, do I need to do anything else with this series?
Have them taken by the vfio maintainers? I'm not that person :)
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource()
2020-12-09 14:47 ` Greg Kroah-Hartman
@ 2020-12-09 16:48 ` Andy Shevchenko
2020-12-09 16:53 ` Greg Kroah-Hartman
0 siblings, 1 reply; 16+ messages in thread
From: Andy Shevchenko @ 2020-12-09 16:48 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Auger Eric, linux-kernel, Alex Williamson, Cornelia Huck, kvm
On Wed, Dec 09, 2020 at 03:47:06PM +0100, Greg Kroah-Hartman wrote:
> On Thu, Dec 03, 2020 at 03:07:19PM +0200, Andy Shevchenko wrote:
> > On Thu, Dec 03, 2020 at 01:54:38PM +0100, Auger Eric wrote:
> > > On 10/27/20 6:58 PM, Andy Shevchenko wrote:
> > > > Switch to use new platform_get_mem_or_io_resource() instead of
> > > > home grown analogue.
> > > >
> > > > Cc: Eric Auger <eric.auger@redhat.com>
> > > > Cc: Alex Williamson <alex.williamson@redhat.com>
> > > > Cc: Cornelia Huck <cohuck@redhat.com>
> > > > Cc: kvm@vger.kernel.org
> > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > Acked-by: Eric Auger <eric.auger@redhat.com>
> >
> > Thanks!
> >
> > Greg, do I need to do anything else with this series?
>
> Have them taken by the vfio maintainers? I'm not that person :)
But it can't be done with a first patch that provides a new API.
The rest seems under your realm, if I didn't miss anything.
Btw, VFIO agreed on the change (as per given tags).
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource()
2020-12-09 16:48 ` Andy Shevchenko
@ 2020-12-09 16:53 ` Greg Kroah-Hartman
2020-12-09 18:22 ` Andy Shevchenko
0 siblings, 1 reply; 16+ messages in thread
From: Greg Kroah-Hartman @ 2020-12-09 16:53 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Auger Eric, linux-kernel, Alex Williamson, Cornelia Huck, kvm
On Wed, Dec 09, 2020 at 06:48:16PM +0200, Andy Shevchenko wrote:
> On Wed, Dec 09, 2020 at 03:47:06PM +0100, Greg Kroah-Hartman wrote:
> > On Thu, Dec 03, 2020 at 03:07:19PM +0200, Andy Shevchenko wrote:
> > > On Thu, Dec 03, 2020 at 01:54:38PM +0100, Auger Eric wrote:
> > > > On 10/27/20 6:58 PM, Andy Shevchenko wrote:
> > > > > Switch to use new platform_get_mem_or_io_resource() instead of
> > > > > home grown analogue.
> > > > >
> > > > > Cc: Eric Auger <eric.auger@redhat.com>
> > > > > Cc: Alex Williamson <alex.williamson@redhat.com>
> > > > > Cc: Cornelia Huck <cohuck@redhat.com>
> > > > > Cc: kvm@vger.kernel.org
> > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > > Acked-by: Eric Auger <eric.auger@redhat.com>
> > >
> > > Thanks!
> > >
> > > Greg, do I need to do anything else with this series?
> >
> > Have them taken by the vfio maintainers? I'm not that person :)
>
> But it can't be done with a first patch that provides a new API.
> The rest seems under your realm, if I didn't miss anything.
> Btw, VFIO agreed on the change (as per given tags).
Ok, can you resend all of these, with the vfio tags added, so I know to
take them all?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource()
2020-12-09 16:53 ` Greg Kroah-Hartman
@ 2020-12-09 18:22 ` Andy Shevchenko
0 siblings, 0 replies; 16+ messages in thread
From: Andy Shevchenko @ 2020-12-09 18:22 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Auger Eric, linux-kernel, Alex Williamson, Cornelia Huck, kvm
On Wed, Dec 09, 2020 at 05:53:45PM +0100, Greg Kroah-Hartman wrote:
> On Wed, Dec 09, 2020 at 06:48:16PM +0200, Andy Shevchenko wrote:
> > On Wed, Dec 09, 2020 at 03:47:06PM +0100, Greg Kroah-Hartman wrote:
> > > On Thu, Dec 03, 2020 at 03:07:19PM +0200, Andy Shevchenko wrote:
> > > > On Thu, Dec 03, 2020 at 01:54:38PM +0100, Auger Eric wrote:
...
> > > > Greg, do I need to do anything else with this series?
> > > Have them taken by the vfio maintainers? I'm not that person :)
> > But it can't be done with a first patch that provides a new API.
> > The rest seems under your realm, if I didn't miss anything.
> > Btw, VFIO agreed on the change (as per given tags).
> Ok, can you resend all of these, with the vfio tags added, so I know to
> take them all?
Sure. Will do soon.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource()
2020-10-27 17:58 ` [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource() Andy Shevchenko
2020-12-03 12:54 ` Auger Eric
@ 2020-12-03 13:22 ` Cornelia Huck
2020-12-03 18:05 ` Alex Williamson
2 siblings, 0 replies; 16+ messages in thread
From: Cornelia Huck @ 2020-12-03 13:22 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Greg Kroah-Hartman, linux-kernel, Eric Auger, Alex Williamson, kvm
On Tue, 27 Oct 2020 19:58:03 +0200
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> Switch to use new platform_get_mem_or_io_resource() instead of
> home grown analogue.
>
> Cc: Eric Auger <eric.auger@redhat.com>
> Cc: Alex Williamson <alex.williamson@redhat.com>
> Cc: Cornelia Huck <cohuck@redhat.com>
> Cc: kvm@vger.kernel.org
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/vfio/platform/vfio_platform.c | 13 +------------
> 1 file changed, 1 insertion(+), 12 deletions(-)
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource()
2020-10-27 17:58 ` [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource() Andy Shevchenko
2020-12-03 12:54 ` Auger Eric
2020-12-03 13:22 ` Cornelia Huck
@ 2020-12-03 18:05 ` Alex Williamson
2 siblings, 0 replies; 16+ messages in thread
From: Alex Williamson @ 2020-12-03 18:05 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Greg Kroah-Hartman, linux-kernel, Eric Auger, Cornelia Huck, kvm
On Tue, 27 Oct 2020 19:58:03 +0200
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> Switch to use new platform_get_mem_or_io_resource() instead of
> home grown analogue.
>
> Cc: Eric Auger <eric.auger@redhat.com>
> Cc: Alex Williamson <alex.williamson@redhat.com>
> Cc: Cornelia Huck <cohuck@redhat.com>
> Cc: kvm@vger.kernel.org
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/vfio/platform/vfio_platform.c | 13 +------------
> 1 file changed, 1 insertion(+), 12 deletions(-)
Acked-by: Alex Williamson <alex.williamson@redhat.com>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v1 3/5] usb: host: sl811: Switch to use platform_get_mem_or_io_resource()
2020-10-27 17:58 [PATCH v1 1/5] driver core: platform: Introduce platform_get_mem_or_io_resource() Andy Shevchenko
2020-10-27 17:58 ` [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource() Andy Shevchenko
@ 2020-10-27 17:58 ` Andy Shevchenko
2020-10-27 17:58 ` [PATCH v1 4/5] misc: pvpanic: Combine ACPI and platform drivers Andy Shevchenko
` (2 subsequent siblings)
4 siblings, 0 replies; 16+ messages in thread
From: Andy Shevchenko @ 2020-10-27 17:58 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-kernel; +Cc: Andy Shevchenko, linux-usb
Switch to use new platform_get_mem_or_io_resource() instead of
home grown analogue.
Note, the code has been moved upper in the function to allow farther cleanups,
such as resource sanity check.
Cc: linux-usb@vger.kernel.org
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/usb/host/sl811-hcd.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c
index adaf4063690a..7e0d6f686231 100644
--- a/drivers/usb/host/sl811-hcd.c
+++ b/drivers/usb/host/sl811-hcd.c
@@ -1614,12 +1614,18 @@ sl811h_probe(struct platform_device *dev)
void __iomem *addr_reg;
void __iomem *data_reg;
int retval;
- u8 tmp, ioaddr = 0;
+ u8 tmp, ioaddr;
unsigned long irqflags;
if (usb_disabled())
return -ENODEV;
+ /* the chip may be wired for either kind of addressing */
+ addr = platform_get_mem_or_io_resource(dev, 0);
+ data = platform_get_mem_or_io_resource(dev, 1);
+ if (!addr || !data || resource_type(addr) != resource_type(data))
+ return -ENODEV;
+
/* basic sanity checks first. board-specific init logic should
* have initialized these three resources and probably board
* specific platform_data. we don't probe for IRQs, and do only
@@ -1632,16 +1638,8 @@ sl811h_probe(struct platform_device *dev)
irq = ires->start;
irqflags = ires->flags & IRQF_TRIGGER_MASK;
- /* the chip may be wired for either kind of addressing */
- addr = platform_get_resource(dev, IORESOURCE_MEM, 0);
- data = platform_get_resource(dev, IORESOURCE_MEM, 1);
- retval = -EBUSY;
- if (!addr || !data) {
- addr = platform_get_resource(dev, IORESOURCE_IO, 0);
- data = platform_get_resource(dev, IORESOURCE_IO, 1);
- if (!addr || !data)
- return -ENODEV;
- ioaddr = 1;
+ ioaddr = resource_type(addr) == IORESOURCE_IO;
+ if (ioaddr) {
/*
* NOTE: 64-bit resource->start is getting truncated
* to avoid compiler warning, assuming that ->start
--
2.28.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v1 4/5] misc: pvpanic: Combine ACPI and platform drivers
2020-10-27 17:58 [PATCH v1 1/5] driver core: platform: Introduce platform_get_mem_or_io_resource() Andy Shevchenko
2020-10-27 17:58 ` [PATCH v1 2/5] vfio: platform: Switch to use platform_get_mem_or_io_resource() Andy Shevchenko
2020-10-27 17:58 ` [PATCH v1 3/5] usb: host: sl811: " Andy Shevchenko
@ 2020-10-27 17:58 ` Andy Shevchenko
[not found] ` <CAK8P3a3XgTD2bFej0=WsD3a=uMur36_C71EiOvw3wb5A9QPAfQ@mail.gmail.com>
2020-10-27 17:58 ` [PATCH v1 5/5] misc: pvpanic: Replace OF headers by mod_devicetable.h Andy Shevchenko
2020-12-03 13:21 ` [PATCH v1 1/5] driver core: platform: Introduce platform_get_mem_or_io_resource() Cornelia Huck
4 siblings, 1 reply; 16+ messages in thread
From: Andy Shevchenko @ 2020-10-27 17:58 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-kernel; +Cc: Andy Shevchenko, Peng Hao, Arnd Bergmann
There is nothing special in the driver that requires
to have special ACPI driver for it. Combine both
into simple platform driver.
Cc: Peng Hao <peng.hao2@zte.com.cn>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/misc/pvpanic.c | 130 ++++++-----------------------------------
1 file changed, 17 insertions(+), 113 deletions(-)
diff --git a/drivers/misc/pvpanic.c b/drivers/misc/pvpanic.c
index e16a5e51006e..103a09ed651d 100644
--- a/drivers/misc/pvpanic.c
+++ b/drivers/misc/pvpanic.c
@@ -8,7 +8,7 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-#include <linux/acpi.h>
+#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/kexec.h>
#include <linux/module.h>
@@ -49,101 +49,16 @@ static struct notifier_block pvpanic_panic_nb = {
.priority = 1, /* let this called before broken drm_fb_helper */
};
-#ifdef CONFIG_ACPI
-static int pvpanic_add(struct acpi_device *device);
-static int pvpanic_remove(struct acpi_device *device);
-
-static const struct acpi_device_id pvpanic_device_ids[] = {
- { "QEMU0001", 0 },
- { "", 0 }
-};
-MODULE_DEVICE_TABLE(acpi, pvpanic_device_ids);
-
-static struct acpi_driver pvpanic_driver = {
- .name = "pvpanic",
- .class = "QEMU",
- .ids = pvpanic_device_ids,
- .ops = {
- .add = pvpanic_add,
- .remove = pvpanic_remove,
- },
- .owner = THIS_MODULE,
-};
-
-static acpi_status
-pvpanic_walk_resources(struct acpi_resource *res, void *context)
-{
- struct resource r;
-
- if (acpi_dev_resource_io(res, &r)) {
-#ifdef CONFIG_HAS_IOPORT_MAP
- base = ioport_map(r.start, resource_size(&r));
- return AE_OK;
-#else
- return AE_ERROR;
-#endif
- } else if (acpi_dev_resource_memory(res, &r)) {
- base = ioremap(r.start, resource_size(&r));
- return AE_OK;
- }
-
- return AE_ERROR;
-}
-
-static int pvpanic_add(struct acpi_device *device)
-{
- int ret;
-
- ret = acpi_bus_get_status(device);
- if (ret < 0)
- return ret;
-
- if (!device->status.enabled || !device->status.functional)
- return -ENODEV;
-
- acpi_walk_resources(device->handle, METHOD_NAME__CRS,
- pvpanic_walk_resources, NULL);
-
- if (!base)
- return -ENODEV;
-
- atomic_notifier_chain_register(&panic_notifier_list,
- &pvpanic_panic_nb);
-
- return 0;
-}
-
-static int pvpanic_remove(struct acpi_device *device)
-{
-
- atomic_notifier_chain_unregister(&panic_notifier_list,
- &pvpanic_panic_nb);
- iounmap(base);
-
- return 0;
-}
-
-static int pvpanic_register_acpi_driver(void)
-{
- return acpi_bus_register_driver(&pvpanic_driver);
-}
-
-static void pvpanic_unregister_acpi_driver(void)
-{
- acpi_bus_unregister_driver(&pvpanic_driver);
-}
-#else
-static int pvpanic_register_acpi_driver(void)
-{
- return -ENODEV;
-}
-
-static void pvpanic_unregister_acpi_driver(void) {}
-#endif
-
static int pvpanic_mmio_probe(struct platform_device *pdev)
{
- base = devm_platform_ioremap_resource(pdev, 0);
+ struct device *dev = &pdev->dev;
+ struct resource *res;
+
+ res = platform_get_mem_or_io_resource(pdev, 0);
+ if (res && resource_type(res) == IORESOURCE_IO)
+ base = devm_ioport_map(dev, res->start, resource_size(res));
+ else
+ base = devm_ioremap_resource(dev, res);
if (IS_ERR(base))
return PTR_ERR(base);
@@ -167,30 +82,19 @@ static const struct of_device_id pvpanic_mmio_match[] = {
{}
};
+static const struct acpi_device_id pvpanic_device_ids[] = {
+ { "QEMU0001", 0 },
+ { "", 0 }
+};
+MODULE_DEVICE_TABLE(acpi, pvpanic_device_ids);
+
static struct platform_driver pvpanic_mmio_driver = {
.driver = {
.name = "pvpanic-mmio",
.of_match_table = pvpanic_mmio_match,
+ .acpi_match_table = pvpanic_device_ids,
},
.probe = pvpanic_mmio_probe,
.remove = pvpanic_mmio_remove,
};
-
-static int __init pvpanic_mmio_init(void)
-{
- if (acpi_disabled)
- return platform_driver_register(&pvpanic_mmio_driver);
- else
- return pvpanic_register_acpi_driver();
-}
-
-static void __exit pvpanic_mmio_exit(void)
-{
- if (acpi_disabled)
- platform_driver_unregister(&pvpanic_mmio_driver);
- else
- pvpanic_unregister_acpi_driver();
-}
-
-module_init(pvpanic_mmio_init);
-module_exit(pvpanic_mmio_exit);
+module_platform_driver(pvpanic_mmio_driver);
--
2.28.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v1 5/5] misc: pvpanic: Replace OF headers by mod_devicetable.h
2020-10-27 17:58 [PATCH v1 1/5] driver core: platform: Introduce platform_get_mem_or_io_resource() Andy Shevchenko
` (2 preceding siblings ...)
2020-10-27 17:58 ` [PATCH v1 4/5] misc: pvpanic: Combine ACPI and platform drivers Andy Shevchenko
@ 2020-10-27 17:58 ` Andy Shevchenko
2020-12-03 13:21 ` [PATCH v1 1/5] driver core: platform: Introduce platform_get_mem_or_io_resource() Cornelia Huck
4 siblings, 0 replies; 16+ messages in thread
From: Andy Shevchenko @ 2020-10-27 17:58 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-kernel; +Cc: Andy Shevchenko, Peng Hao, Arnd Bergmann
There is no use for OF headers in the driver, but mod_devicetable.h
must be included. Update driver accordingly.
Cc: Peng Hao <peng.hao2@zte.com.cn>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/misc/pvpanic.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/misc/pvpanic.c b/drivers/misc/pvpanic.c
index 103a09ed651d..a45e70c5b6b9 100644
--- a/drivers/misc/pvpanic.c
+++ b/drivers/misc/pvpanic.c
@@ -11,11 +11,11 @@
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/kexec.h>
+#include <linux/mod_devicetable.h>
#include <linux/module.h>
-#include <linux/of.h>
-#include <linux/of_address.h>
#include <linux/platform_device.h>
#include <linux/types.h>
+
#include <uapi/misc/pvpanic.h>
static void __iomem *base;
--
2.28.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v1 1/5] driver core: platform: Introduce platform_get_mem_or_io_resource()
2020-10-27 17:58 [PATCH v1 1/5] driver core: platform: Introduce platform_get_mem_or_io_resource() Andy Shevchenko
` (3 preceding siblings ...)
2020-10-27 17:58 ` [PATCH v1 5/5] misc: pvpanic: Replace OF headers by mod_devicetable.h Andy Shevchenko
@ 2020-12-03 13:21 ` Cornelia Huck
4 siblings, 0 replies; 16+ messages in thread
From: Cornelia Huck @ 2020-12-03 13:21 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Greg Kroah-Hartman, linux-kernel, Eric Auger, Alex Williamson,
kvm, linux-usb, Peng Hao, Arnd Bergmann
On Tue, 27 Oct 2020 19:58:02 +0200
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> There are at least few existing users of the proposed API which
> retrieves either MEM or IO resource from platform device.
>
> Make it common to utilize in the existing and new users.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Cc: Eric Auger <eric.auger@redhat.com>
> Cc: Alex Williamson <alex.williamson@redhat.com>
> Cc: Cornelia Huck <cohuck@redhat.com>
> Cc: kvm@vger.kernel.org
> Cc: linux-usb@vger.kernel.org
> Cc: Peng Hao <peng.hao2@zte.com.cn>
> Cc: Arnd Bergmann <arnd@arndb.de>
> ---
> include/linux/platform_device.h | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
> index 77a2aada106d..eb8d74744e29 100644
> --- a/include/linux/platform_device.h
> +++ b/include/linux/platform_device.h
> @@ -52,6 +52,19 @@ extern struct device platform_bus;
>
> extern struct resource *platform_get_resource(struct platform_device *,
> unsigned int, unsigned int);
> +static inline
> +struct resource *platform_get_mem_or_io_resource(struct platform_device *pdev,
Minor nit: If I would want to break up the long line, I'd use
static inline struct resource *
platform_get_mem_or_io_resource(...)
> + unsigned int num)
> +{
> + struct resource *res;
> +
> + res = platform_get_resource(pdev, IORESOURCE_MEM, num);
> + if (res)
> + return res;
> +
> + return platform_get_resource(pdev, IORESOURCE_IO, num);
> +}
> +
> extern struct device *
> platform_find_device_by_driver(struct device *start,
> const struct device_driver *drv);
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
^ permalink raw reply [flat|nested] 16+ messages in thread