LKML Archive on lore.kernel.org help / color / mirror / Atom feed
* [RFT, PATCH v2 0/2] platform/x86: hp_accel: Clean up and convert @ 2021-08-23 9:32 Andy Shevchenko 2021-08-23 9:32 ` [PATCH v2 1/2] platform/x86: hp_accel: Remove _INI method call Andy Shevchenko ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Andy Shevchenko @ 2021-08-23 9:32 UTC (permalink / raw) To: Kai-Heng Feng, Andy Shevchenko, linux-kernel, platform-driver-x86 Cc: Eric Piel, Arnd Bergmann, Greg Kroah-Hartman, Hans de Goede, Mark Gross The pure ACPI drivers are not needed since we have a platform glue layer in place. This allow to drop a lot of boiler plate code and duplication. Patch 1 remove confusing call to _INI method and citing myself from v1: "Not sure what buys us to run _INI on PM calls. It's against the spec AFAICT. In any case ACPICA runs _INI as per specification when devices are instantiated." Patch 2 converts to platform driver. Both needs to be tested, that's why Hans mentioned Kai-Heng. Changelog v2: - split to two patches (Hans) - Cc'ed to Kai-Heng (Hans) - removed stale data structure field in the header file Andy Shevchenko (2): platform/x86: hp_accel: Remove _INI method call platform/x86: hp_accel: Convert to be a platform driver drivers/misc/lis3lv02d/lis3lv02d.h | 1 - drivers/platform/x86/hp_accel.c | 78 ++++++------------------------ 2 files changed, 15 insertions(+), 64 deletions(-) -- 2.32.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/2] platform/x86: hp_accel: Remove _INI method call 2021-08-23 9:32 [RFT, PATCH v2 0/2] platform/x86: hp_accel: Clean up and convert Andy Shevchenko @ 2021-08-23 9:32 ` Andy Shevchenko 2021-08-25 10:40 ` Kai-Heng Feng 2021-08-23 9:32 ` [PATCH v2 2/2] platform/x86: hp_accel: Convert to be a platform driver Andy Shevchenko 2021-08-26 13:13 ` [RFT, PATCH v2 0/2] platform/x86: hp_accel: Clean up and convert Hans de Goede 2 siblings, 1 reply; 7+ messages in thread From: Andy Shevchenko @ 2021-08-23 9:32 UTC (permalink / raw) To: Kai-Heng Feng, Andy Shevchenko, linux-kernel, platform-driver-x86 Cc: Eric Piel, Arnd Bergmann, Greg Kroah-Hartman, Hans de Goede, Mark Gross According to ACPI specification the _INI method must be called when device is enumerated first time. After that there is no need to repeat the procedure. Convert the lis3lv02d_acpi_init() to be a stub (Note, we may not remove it because it is called unconditionally by the accelerometer main driver). Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/misc/lis3lv02d/lis3lv02d.h | 1 - drivers/platform/x86/hp_accel.c | 14 +------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/drivers/misc/lis3lv02d/lis3lv02d.h b/drivers/misc/lis3lv02d/lis3lv02d.h index 7ac788fae1b8..c394c0b08519 100644 --- a/drivers/misc/lis3lv02d/lis3lv02d.h +++ b/drivers/misc/lis3lv02d/lis3lv02d.h @@ -271,7 +271,6 @@ struct lis3lv02d { int regs_size; u8 *reg_cache; bool regs_stored; - bool init_required; u8 odr_mask; /* ODR bit mask */ u8 whoami; /* indicates measurement precision */ s16 (*read_data) (struct lis3lv02d *lis3, int reg); diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c index 8c0867bda828..54a4addc7903 100644 --- a/drivers/platform/x86/hp_accel.c +++ b/drivers/platform/x86/hp_accel.c @@ -78,23 +78,14 @@ static const struct acpi_device_id lis3lv02d_device_ids[] = { }; MODULE_DEVICE_TABLE(acpi, lis3lv02d_device_ids); - /** - * lis3lv02d_acpi_init - ACPI _INI method: initialize the device. + * lis3lv02d_acpi_init - initialize the device for ACPI * @lis3: pointer to the device struct * * Returns 0 on success. */ static int lis3lv02d_acpi_init(struct lis3lv02d *lis3) { - struct acpi_device *dev = lis3->bus_priv; - if (!lis3->init_required) - return 0; - - if (acpi_evaluate_object(dev->handle, METHOD_NAME__INI, - NULL, NULL) != AE_OK) - return -EINVAL; - return 0; } @@ -359,7 +350,6 @@ static int lis3lv02d_add(struct acpi_device *device) } /* call the core layer do its init */ - lis3_dev.init_required = true; ret = lis3lv02d_init_device(&lis3_dev); if (ret) return ret; @@ -407,14 +397,12 @@ static int lis3lv02d_suspend(struct device *dev) static int lis3lv02d_resume(struct device *dev) { - lis3_dev.init_required = false; lis3lv02d_poweron(&lis3_dev); return 0; } static int lis3lv02d_restore(struct device *dev) { - lis3_dev.init_required = true; lis3lv02d_poweron(&lis3_dev); return 0; } -- 2.32.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] platform/x86: hp_accel: Remove _INI method call 2021-08-23 9:32 ` [PATCH v2 1/2] platform/x86: hp_accel: Remove _INI method call Andy Shevchenko @ 2021-08-25 10:40 ` Kai-Heng Feng 0 siblings, 0 replies; 7+ messages in thread From: Kai-Heng Feng @ 2021-08-25 10:40 UTC (permalink / raw) To: Andy Shevchenko Cc: LKML, platform-driver-x86, Eric Piel, Arnd Bergmann, Greg Kroah-Hartman, Hans de Goede, Mark Gross On Mon, Aug 23, 2021 at 5:32 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > According to ACPI specification the _INI method must be called > when device is enumerated first time. After that there is no need > to repeat the procedure. Convert the lis3lv02d_acpi_init() to be > a stub (Note, we may not remove it because it is called unconditionally > by the accelerometer main driver). > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> The lis3lv02d still works after boot and after resume. Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > --- > drivers/misc/lis3lv02d/lis3lv02d.h | 1 - > drivers/platform/x86/hp_accel.c | 14 +------------- > 2 files changed, 1 insertion(+), 14 deletions(-) > > diff --git a/drivers/misc/lis3lv02d/lis3lv02d.h b/drivers/misc/lis3lv02d/lis3lv02d.h > index 7ac788fae1b8..c394c0b08519 100644 > --- a/drivers/misc/lis3lv02d/lis3lv02d.h > +++ b/drivers/misc/lis3lv02d/lis3lv02d.h > @@ -271,7 +271,6 @@ struct lis3lv02d { > int regs_size; > u8 *reg_cache; > bool regs_stored; > - bool init_required; > u8 odr_mask; /* ODR bit mask */ > u8 whoami; /* indicates measurement precision */ > s16 (*read_data) (struct lis3lv02d *lis3, int reg); > diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c > index 8c0867bda828..54a4addc7903 100644 > --- a/drivers/platform/x86/hp_accel.c > +++ b/drivers/platform/x86/hp_accel.c > @@ -78,23 +78,14 @@ static const struct acpi_device_id lis3lv02d_device_ids[] = { > }; > MODULE_DEVICE_TABLE(acpi, lis3lv02d_device_ids); > > - > /** > - * lis3lv02d_acpi_init - ACPI _INI method: initialize the device. > + * lis3lv02d_acpi_init - initialize the device for ACPI > * @lis3: pointer to the device struct > * > * Returns 0 on success. > */ > static int lis3lv02d_acpi_init(struct lis3lv02d *lis3) > { > - struct acpi_device *dev = lis3->bus_priv; > - if (!lis3->init_required) > - return 0; > - > - if (acpi_evaluate_object(dev->handle, METHOD_NAME__INI, > - NULL, NULL) != AE_OK) > - return -EINVAL; > - > return 0; > } > > @@ -359,7 +350,6 @@ static int lis3lv02d_add(struct acpi_device *device) > } > > /* call the core layer do its init */ > - lis3_dev.init_required = true; > ret = lis3lv02d_init_device(&lis3_dev); > if (ret) > return ret; > @@ -407,14 +397,12 @@ static int lis3lv02d_suspend(struct device *dev) > > static int lis3lv02d_resume(struct device *dev) > { > - lis3_dev.init_required = false; > lis3lv02d_poweron(&lis3_dev); > return 0; > } > > static int lis3lv02d_restore(struct device *dev) > { > - lis3_dev.init_required = true; > lis3lv02d_poweron(&lis3_dev); > return 0; > } > -- > 2.32.0 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 2/2] platform/x86: hp_accel: Convert to be a platform driver 2021-08-23 9:32 [RFT, PATCH v2 0/2] platform/x86: hp_accel: Clean up and convert Andy Shevchenko 2021-08-23 9:32 ` [PATCH v2 1/2] platform/x86: hp_accel: Remove _INI method call Andy Shevchenko @ 2021-08-23 9:32 ` Andy Shevchenko 2021-08-25 10:41 ` Kai-Heng Feng 2021-08-26 13:13 ` [RFT, PATCH v2 0/2] platform/x86: hp_accel: Clean up and convert Hans de Goede 2 siblings, 1 reply; 7+ messages in thread From: Andy Shevchenko @ 2021-08-23 9:32 UTC (permalink / raw) To: Kai-Heng Feng, Andy Shevchenko, linux-kernel, platform-driver-x86 Cc: Eric Piel, Arnd Bergmann, Greg Kroah-Hartman, Hans de Goede, Mark Gross ACPI core in conjunction with platform driver core provides an infrastructure to enumerate ACPI devices. Use it in order to remove a lot of boilerplate code. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/platform/x86/hp_accel.c | 64 ++++++++------------------------- 1 file changed, 14 insertions(+), 50 deletions(-) diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c index 54a4addc7903..cc53f725c041 100644 --- a/drivers/platform/x86/hp_accel.c +++ b/drivers/platform/x86/hp_accel.c @@ -28,9 +28,6 @@ #include <linux/serio.h> #include "../../misc/lis3lv02d/lis3lv02d.h" -#define DRIVER_NAME "hp_accel" -#define ACPI_MDPS_CLASS "accelerometer" - /* Delayed LEDs infrastructure ------------------------------------ */ /* Special LED class that can defer work */ @@ -269,30 +266,6 @@ static struct delayed_led_classdev hpled_led = { .set_brightness = hpled_set, }; -static acpi_status -lis3lv02d_get_resource(struct acpi_resource *resource, void *context) -{ - if (resource->type == ACPI_RESOURCE_TYPE_EXTENDED_IRQ) { - struct acpi_resource_extended_irq *irq; - u32 *device_irq = context; - - irq = &resource->data.extended_irq; - *device_irq = irq->interrupts[0]; - } - - return AE_OK; -} - -static void lis3lv02d_enum_resources(struct acpi_device *device) -{ - acpi_status status; - - status = acpi_walk_resources(device->handle, METHOD_NAME__CRS, - lis3lv02d_get_resource, &lis3_dev.irq); - if (ACPI_FAILURE(status)) - printk(KERN_DEBUG DRIVER_NAME ": Error getting resources\n"); -} - static bool hp_accel_i8042_filter(unsigned char data, unsigned char str, struct serio *port) { @@ -322,23 +295,19 @@ static bool hp_accel_i8042_filter(unsigned char data, unsigned char str, return false; } -static int lis3lv02d_add(struct acpi_device *device) +static int lis3lv02d_probe(struct platform_device *device) { int ret; - if (!device) - return -EINVAL; - - lis3_dev.bus_priv = device; + lis3_dev.bus_priv = ACPI_COMPANION(&device->dev); lis3_dev.init = lis3lv02d_acpi_init; lis3_dev.read = lis3lv02d_acpi_read; lis3_dev.write = lis3lv02d_acpi_write; - strcpy(acpi_device_name(device), DRIVER_NAME); - strcpy(acpi_device_class(device), ACPI_MDPS_CLASS); - device->driver_data = &lis3_dev; /* obtain IRQ number of our device from ACPI */ - lis3lv02d_enum_resources(device); + ret = platform_get_irq_optional(device, 0); + if (ret > 0) + lis3_dev.irq = ret; /* If possible use a "standard" axes order */ if (lis3_dev.ac.x && lis3_dev.ac.y && lis3_dev.ac.z) { @@ -371,11 +340,8 @@ static int lis3lv02d_add(struct acpi_device *device) return ret; } -static int lis3lv02d_remove(struct acpi_device *device) +static int lis3lv02d_remove(struct platform_device *device) { - if (!device) - return -EINVAL; - i8042_remove_filter(hp_accel_i8042_filter); lis3lv02d_joystick_disable(&lis3_dev); lis3lv02d_poweroff(&lis3_dev); @@ -386,7 +352,6 @@ static int lis3lv02d_remove(struct acpi_device *device) return lis3lv02d_remove_fs(&lis3_dev); } - #ifdef CONFIG_PM_SLEEP static int lis3lv02d_suspend(struct device *dev) { @@ -422,17 +387,16 @@ static const struct dev_pm_ops hp_accel_pm = { #endif /* For the HP MDPS aka 3D Driveguard */ -static struct acpi_driver lis3lv02d_driver = { - .name = DRIVER_NAME, - .class = ACPI_MDPS_CLASS, - .ids = lis3lv02d_device_ids, - .ops = { - .add = lis3lv02d_add, - .remove = lis3lv02d_remove, +static struct platform_driver lis3lv02d_driver = { + .probe = lis3lv02d_probe, + .remove = lis3lv02d_remove, + .driver = { + .name = "hp_accel", + .pm = HP_ACCEL_PM, + .acpi_match_table = lis3lv02d_device_ids, }, - .drv.pm = HP_ACCEL_PM, }; -module_acpi_driver(lis3lv02d_driver); +module_platform_driver(lis3lv02d_driver); MODULE_DESCRIPTION("Glue between LIS3LV02Dx and HP ACPI BIOS and support for disk protection LED."); MODULE_AUTHOR("Yan Burman, Eric Piel, Pavel Machek"); -- 2.32.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] platform/x86: hp_accel: Convert to be a platform driver 2021-08-23 9:32 ` [PATCH v2 2/2] platform/x86: hp_accel: Convert to be a platform driver Andy Shevchenko @ 2021-08-25 10:41 ` Kai-Heng Feng 2021-08-25 11:11 ` Andy Shevchenko 0 siblings, 1 reply; 7+ messages in thread From: Kai-Heng Feng @ 2021-08-25 10:41 UTC (permalink / raw) To: Andy Shevchenko Cc: LKML, platform-driver-x86, Eric Piel, Arnd Bergmann, Greg Kroah-Hartman, Hans de Goede, Mark Gross On Mon, Aug 23, 2021 at 5:32 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > ACPI core in conjunction with platform driver core provides > an infrastructure to enumerate ACPI devices. Use it in order > to remove a lot of boilerplate code. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> The lis3lv02d still works with this patch. Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > --- > drivers/platform/x86/hp_accel.c | 64 ++++++++------------------------- > 1 file changed, 14 insertions(+), 50 deletions(-) > > diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c > index 54a4addc7903..cc53f725c041 100644 > --- a/drivers/platform/x86/hp_accel.c > +++ b/drivers/platform/x86/hp_accel.c > @@ -28,9 +28,6 @@ > #include <linux/serio.h> > #include "../../misc/lis3lv02d/lis3lv02d.h" > > -#define DRIVER_NAME "hp_accel" > -#define ACPI_MDPS_CLASS "accelerometer" > - > /* Delayed LEDs infrastructure ------------------------------------ */ > > /* Special LED class that can defer work */ > @@ -269,30 +266,6 @@ static struct delayed_led_classdev hpled_led = { > .set_brightness = hpled_set, > }; > > -static acpi_status > -lis3lv02d_get_resource(struct acpi_resource *resource, void *context) > -{ > - if (resource->type == ACPI_RESOURCE_TYPE_EXTENDED_IRQ) { > - struct acpi_resource_extended_irq *irq; > - u32 *device_irq = context; > - > - irq = &resource->data.extended_irq; > - *device_irq = irq->interrupts[0]; > - } > - > - return AE_OK; > -} > - > -static void lis3lv02d_enum_resources(struct acpi_device *device) > -{ > - acpi_status status; > - > - status = acpi_walk_resources(device->handle, METHOD_NAME__CRS, > - lis3lv02d_get_resource, &lis3_dev.irq); > - if (ACPI_FAILURE(status)) > - printk(KERN_DEBUG DRIVER_NAME ": Error getting resources\n"); > -} > - > static bool hp_accel_i8042_filter(unsigned char data, unsigned char str, > struct serio *port) > { > @@ -322,23 +295,19 @@ static bool hp_accel_i8042_filter(unsigned char data, unsigned char str, > return false; > } > > -static int lis3lv02d_add(struct acpi_device *device) > +static int lis3lv02d_probe(struct platform_device *device) > { > int ret; > > - if (!device) > - return -EINVAL; > - > - lis3_dev.bus_priv = device; > + lis3_dev.bus_priv = ACPI_COMPANION(&device->dev); > lis3_dev.init = lis3lv02d_acpi_init; > lis3_dev.read = lis3lv02d_acpi_read; > lis3_dev.write = lis3lv02d_acpi_write; > - strcpy(acpi_device_name(device), DRIVER_NAME); > - strcpy(acpi_device_class(device), ACPI_MDPS_CLASS); > - device->driver_data = &lis3_dev; > > /* obtain IRQ number of our device from ACPI */ > - lis3lv02d_enum_resources(device); > + ret = platform_get_irq_optional(device, 0); > + if (ret > 0) > + lis3_dev.irq = ret; > > /* If possible use a "standard" axes order */ > if (lis3_dev.ac.x && lis3_dev.ac.y && lis3_dev.ac.z) { > @@ -371,11 +340,8 @@ static int lis3lv02d_add(struct acpi_device *device) > return ret; > } > > -static int lis3lv02d_remove(struct acpi_device *device) > +static int lis3lv02d_remove(struct platform_device *device) > { > - if (!device) > - return -EINVAL; > - > i8042_remove_filter(hp_accel_i8042_filter); > lis3lv02d_joystick_disable(&lis3_dev); > lis3lv02d_poweroff(&lis3_dev); > @@ -386,7 +352,6 @@ static int lis3lv02d_remove(struct acpi_device *device) > return lis3lv02d_remove_fs(&lis3_dev); > } > > - > #ifdef CONFIG_PM_SLEEP > static int lis3lv02d_suspend(struct device *dev) > { > @@ -422,17 +387,16 @@ static const struct dev_pm_ops hp_accel_pm = { > #endif > > /* For the HP MDPS aka 3D Driveguard */ > -static struct acpi_driver lis3lv02d_driver = { > - .name = DRIVER_NAME, > - .class = ACPI_MDPS_CLASS, > - .ids = lis3lv02d_device_ids, > - .ops = { > - .add = lis3lv02d_add, > - .remove = lis3lv02d_remove, > +static struct platform_driver lis3lv02d_driver = { > + .probe = lis3lv02d_probe, > + .remove = lis3lv02d_remove, > + .driver = { > + .name = "hp_accel", > + .pm = HP_ACCEL_PM, > + .acpi_match_table = lis3lv02d_device_ids, > }, > - .drv.pm = HP_ACCEL_PM, > }; > -module_acpi_driver(lis3lv02d_driver); > +module_platform_driver(lis3lv02d_driver); > > MODULE_DESCRIPTION("Glue between LIS3LV02Dx and HP ACPI BIOS and support for disk protection LED."); > MODULE_AUTHOR("Yan Burman, Eric Piel, Pavel Machek"); > -- > 2.32.0 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] platform/x86: hp_accel: Convert to be a platform driver 2021-08-25 10:41 ` Kai-Heng Feng @ 2021-08-25 11:11 ` Andy Shevchenko 0 siblings, 0 replies; 7+ messages in thread From: Andy Shevchenko @ 2021-08-25 11:11 UTC (permalink / raw) To: Kai-Heng Feng Cc: Andy Shevchenko, LKML, Platform Driver, Eric Piel, Arnd Bergmann, Greg Kroah-Hartman, Hans de Goede, Mark Gross On Wed, Aug 25, 2021 at 1:42 PM Kai-Heng Feng <kai.heng.feng@canonical.com> wrote: > > On Mon, Aug 23, 2021 at 5:32 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: > > > > ACPI core in conjunction with platform driver core provides > > an infrastructure to enumerate ACPI devices. Use it in order > > to remove a lot of boilerplate code. > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > The lis3lv02d still works with this patch. > > Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Thank you, Kai-Heng! Hans, I think it's good to go. -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFT, PATCH v2 0/2] platform/x86: hp_accel: Clean up and convert 2021-08-23 9:32 [RFT, PATCH v2 0/2] platform/x86: hp_accel: Clean up and convert Andy Shevchenko 2021-08-23 9:32 ` [PATCH v2 1/2] platform/x86: hp_accel: Remove _INI method call Andy Shevchenko 2021-08-23 9:32 ` [PATCH v2 2/2] platform/x86: hp_accel: Convert to be a platform driver Andy Shevchenko @ 2021-08-26 13:13 ` Hans de Goede 2 siblings, 0 replies; 7+ messages in thread From: Hans de Goede @ 2021-08-26 13:13 UTC (permalink / raw) To: Andy Shevchenko, Kai-Heng Feng, linux-kernel, platform-driver-x86 Cc: Eric Piel, Arnd Bergmann, Greg Kroah-Hartman, Mark Gross Hi, On 8/23/21 11:32 AM, Andy Shevchenko wrote: > The pure ACPI drivers are not needed since we have a platform glue layer in > place. This allow to drop a lot of boiler plate code and duplication. > > Patch 1 remove confusing call to _INI method and citing myself from v1: > "Not sure what buys us to run _INI on PM calls. It's against the spec > AFAICT. In any case ACPICA runs _INI as per specification when devices are > instantiated." > > Patch 2 converts to platform driver. Thank you for your patch-series, I've applied the series to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-08-26 13:13 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-08-23 9:32 [RFT, PATCH v2 0/2] platform/x86: hp_accel: Clean up and convert Andy Shevchenko 2021-08-23 9:32 ` [PATCH v2 1/2] platform/x86: hp_accel: Remove _INI method call Andy Shevchenko 2021-08-25 10:40 ` Kai-Heng Feng 2021-08-23 9:32 ` [PATCH v2 2/2] platform/x86: hp_accel: Convert to be a platform driver Andy Shevchenko 2021-08-25 10:41 ` Kai-Heng Feng 2021-08-25 11:11 ` Andy Shevchenko 2021-08-26 13:13 ` [RFT, PATCH v2 0/2] platform/x86: hp_accel: Clean up and convert Hans de Goede
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).