[PATCH v2 00/14] reset: major reset core refactoring

Bartosz Golaszewski posted 14 patches 1 month, 3 weeks ago
There is a newer version of this series
drivers/reset/core.c             | 477 +++++++++++++++++++++++++--------------
drivers/reset/reset-gpio.c       |  27 +--
include/linux/reset-controller.h |  21 +-
include/linux/reset.h            |  43 ++--
4 files changed, 359 insertions(+), 209 deletions(-)
[PATCH v2 00/14] reset: major reset core refactoring
Posted by Bartosz Golaszewski 1 month, 3 weeks ago
Here is the promised refactoring of the reset core. The main goal of the
series is to make the reset subsystem fwnode-agnostic - meaning it can
work with all kinds of firmware nodes instead of being OF-centric - but
there are some other related changes in here as well. I'm sending it all
out for review to give Phillipp a better picture of the end result but
individual pieces can be picked up earlier if accepted.

The series is logically split into several parts:

Patches 1-5: Several reset-gpio improvements. Most are not very
controversial but I included a reworked version of the patch adding a
firmware device link between the auxiliary reset device and its
consumers.

Patches 6-7: Just general improvements.

Patch 8: Before we support all firmware nodes (even software nodes for
which no devlinks are created) we need to make sure reset drivers can
survive a sudden unbinding of the supplier with consumers still holding
references to the controller. This patch addresses it using SRCU.

Patches 9,10: Rework locking in reset core. Make locking fine-grained
instead of using a single global lock for everything.

Patches 11-14: Make reset core use fwnode as primary source of
device properties and references. Convert reset-gpio to becoming the
first fwnode-agnostic driver.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
Changes in v2:
- fix lock guard usage
- tweak commit messages
- fix potential NULL-pointer dereference
- drop unneeded patch (squash it into another one)
- collect tags
- rebase on top of v7.0-rc1
- Link to v1: https://lore.kernel.org/r/20260105-reset-core-refactor-v1-0-ac443103498d@oss.qualcomm.com

---
Bartosz Golaszewski (14):
      reset: gpio: remove unneeded OF-node put
      reset: gpio: add a devlink between reset-gpio and its consumer
      reset: gpio: simplify fallback device matching
      reset: gpio: remove unneeded auxiliary_set_drvdata()
      reset: warn on reset-gpio release
      reset: fold ida_alloc() into reset_create_gpio_aux_device()
      reset: use lock guards in reset core
      reset: handle removing supplier before consumers
      reset: protect struct reset_controller_dev with its own mutex
      reset: protect struct reset_control with its own mutex
      reset: convert of_reset_control_get_count() to using firmware nodes
      reset: convert the core API to using firmware nodes
      reset: convert reset core to using firmware nodes
      reset: gpio: make the driver fwnode-agnostic

 drivers/reset/core.c             | 477 +++++++++++++++++++++++++--------------
 drivers/reset/reset-gpio.c       |  27 +--
 include/linux/reset-controller.h |  21 +-
 include/linux/reset.h            |  43 ++--
 4 files changed, 359 insertions(+), 209 deletions(-)
---
base-commit: c7c0b164c6629319df9172556b97795b591411f6
change-id: 20251222-reset-core-refactor-5fad7197cbcf

Best regards,
-- 
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Re: [PATCH v2 00/14] reset: major reset core refactoring
Posted by Bartosz Golaszewski 1 month, 2 weeks ago
On Mon, Feb 23, 2026 at 11:08 AM Bartosz Golaszewski
<bartosz.golaszewski@oss.qualcomm.com> wrote:
>
> Here is the promised refactoring of the reset core. The main goal of the
> series is to make the reset subsystem fwnode-agnostic - meaning it can
> work with all kinds of firmware nodes instead of being OF-centric - but
> there are some other related changes in here as well. I'm sending it all
> out for review to give Phillipp a better picture of the end result but
> individual pieces can be picked up earlier if accepted.
>
> The series is logically split into several parts:
>
> Patches 1-5: Several reset-gpio improvements. Most are not very
> controversial but I included a reworked version of the patch adding a
> firmware device link between the auxiliary reset device and its
> consumers.
>
> Patches 6-7: Just general improvements.
>
> Patch 8: Before we support all firmware nodes (even software nodes for
> which no devlinks are created) we need to make sure reset drivers can
> survive a sudden unbinding of the supplier with consumers still holding
> references to the controller. This patch addresses it using SRCU.
>
> Patches 9,10: Rework locking in reset core. Make locking fine-grained
> instead of using a single global lock for everything.
>
> Patches 11-14: Make reset core use fwnode as primary source of
> device properties and references. Convert reset-gpio to becoming the
> first fwnode-agnostic driver.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> ---

Hi Philipp!

I definitely don't mean to rush you but I wanted to ask what your plan
for this series is? If all looks good to you, I suggest to queue it
early into the cycle as with a rework that major I suspect there will
be some bug reports coming so it makes sense for it to cook for some
time in linux next and give me time to fix any regressions.

Bart