mbox series

[v7,0/9] Remove .notify callback in acpi_device_ops

Message ID 20230703080252.2899090-1-michal.wilczynski@intel.com (mailing list archive)
Headers show
Series Remove .notify callback in acpi_device_ops | expand

Message

Wilczynski, Michal July 3, 2023, 8:02 a.m. UTC
*** IMPORTANT ***
This is part 1 - only drivers in acpi directory to ease up review
process. Rest of the drivers will be handled in separate patchsets.

Currently drivers support ACPI event handlers by defining .notify
callback in acpi_device_ops. This solution is suboptimal as event
handler installer installs intermediary function acpi_notify_device as a
handler in every driver. Also this approach requires extra variable
'flags' for specifying event types that the driver want to subscribe to.
Additionally this is a pre-work required to align acpi_driver with
platform_driver and eventually replace acpi_driver with platform_driver.

Remove .notify callback from the acpi_device_ops. Replace it with each
driver installing and removing it's event handlers.

This is part 1 - only drivers in acpi directory to ease up review
process.

v7:
 - fix warning by declaring acpi_nfit_remove_notify_handler() as static

v6:
 - fixed unnecessary RCT in all drivers, as it's not a purpose of
   this patch series
 - changed error label names to simplify them
 - dropped commit that remove a comma
 - squashed commit moving code for nfit
 - improved nfit driver to use devm instead of .remove()
 - re-based as Rafael changes [1] are merged already

v5:
 - rebased on top of Rafael changes [1], they're not merged yet
 - fixed rollback in multiple drivers so they don't leak resources on
   failure
 - made this part 1, meaning only drivers in acpi directory, rest of
   the drivers will be handled in separate patchsets to ease up review

v4:
 - added one commit for previously missed driver sony-laptop,
   refactored return statements, added NULL check for event installer
v3:
 - lkp still reported some failures for eeepc, fujitsu and
   toshiba_bluetooth, fix those
v2:
 - fix compilation errors for drivers

[1]: https://lore.kernel.org/linux-acpi/1847933.atdPhlSkOF@kreacher/

Michal Wilczynski (9):
  acpi/bus: Introduce wrappers for ACPICA event handler install/remove
  acpi/bus: Set driver_data to NULL every time .add() fails
  acpi/ac: Move handler installing logic to driver
  acpi/video: Move handler installing logic to driver
  acpi/battery: Move handler installing logic to driver
  acpi/hed: Move handler installing logic to driver
  acpi/nfit: Move handler installing logic to driver
  acpi/nfit: Remove unnecessary .remove callback
  acpi/thermal: Move handler installing logic to driver

 drivers/acpi/ac.c         | 29 ++++++++++++++++++-------
 drivers/acpi/acpi_video.c | 22 ++++++++++++++++---
 drivers/acpi/battery.c    | 26 +++++++++++++++++-----
 drivers/acpi/bus.c        | 30 +++++++++++++++++++++++++-
 drivers/acpi/hed.c        | 17 ++++++++++++---
 drivers/acpi/nfit/core.c  | 45 +++++++++++++++++++++++++++------------
 drivers/acpi/thermal.c    | 25 +++++++++++++++++-----
 include/acpi/acpi_bus.h   |  6 ++++++
 8 files changed, 161 insertions(+), 39 deletions(-)

Comments

Rafael J. Wysocki July 14, 2023, 5:03 p.m. UTC | #1
On Mon, Jul 3, 2023 at 10:03 AM Michal Wilczynski
<michal.wilczynski@intel.com> wrote:
>
> *** IMPORTANT ***
> This is part 1 - only drivers in acpi directory to ease up review
> process. Rest of the drivers will be handled in separate patchsets.
>
> Currently drivers support ACPI event handlers by defining .notify
> callback in acpi_device_ops. This solution is suboptimal as event
> handler installer installs intermediary function acpi_notify_device as a
> handler in every driver. Also this approach requires extra variable
> 'flags' for specifying event types that the driver want to subscribe to.
> Additionally this is a pre-work required to align acpi_driver with
> platform_driver and eventually replace acpi_driver with platform_driver.
>
> Remove .notify callback from the acpi_device_ops. Replace it with each
> driver installing and removing it's event handlers.
>
> This is part 1 - only drivers in acpi directory to ease up review
> process.
>
> v7:
>  - fix warning by declaring acpi_nfit_remove_notify_handler() as static
>
> v6:
>  - fixed unnecessary RCT in all drivers, as it's not a purpose of
>    this patch series
>  - changed error label names to simplify them
>  - dropped commit that remove a comma
>  - squashed commit moving code for nfit
>  - improved nfit driver to use devm instead of .remove()
>  - re-based as Rafael changes [1] are merged already
>
> v5:
>  - rebased on top of Rafael changes [1], they're not merged yet
>  - fixed rollback in multiple drivers so they don't leak resources on
>    failure
>  - made this part 1, meaning only drivers in acpi directory, rest of
>    the drivers will be handled in separate patchsets to ease up review
>
> v4:
>  - added one commit for previously missed driver sony-laptop,
>    refactored return statements, added NULL check for event installer
> v3:
>  - lkp still reported some failures for eeepc, fujitsu and
>    toshiba_bluetooth, fix those
> v2:
>  - fix compilation errors for drivers
>
> [1]: https://lore.kernel.org/linux-acpi/1847933.atdPhlSkOF@kreacher/
>
> Michal Wilczynski (9):
>   acpi/bus: Introduce wrappers for ACPICA event handler install/remove
>   acpi/bus: Set driver_data to NULL every time .add() fails
>   acpi/ac: Move handler installing logic to driver
>   acpi/video: Move handler installing logic to driver
>   acpi/battery: Move handler installing logic to driver
>   acpi/hed: Move handler installing logic to driver
>   acpi/nfit: Move handler installing logic to driver
>   acpi/nfit: Remove unnecessary .remove callback
>   acpi/thermal: Move handler installing logic to driver

Dan hasn't spoken up yet, but I went ahead and queued up the patches
(with some modifications) for 6.6.

I've edited the subjects and rewritten the changelogs and I've
adjusted some white space around function calls (nothing major).

Thanks!