On Wed, Jun 5, 2024 at 2:39 PM Bartosz Golaszewski <brgl@xxxxxxxx> wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > Hi! > > These are the power sequencing patches sent separately after some > improvements suggested by Bjorn Helgaas. I intend to pick them up into a > new branch and maintain the subsystem from now on. I then plan to > provide an immutable tag to the Bluetooth and PCI subsystems so that the > rest of the C changes can be applied. This new branch will then be > directly sent to Linus Torvalds for the next merge window. > > Changelog: > > Since v8: > - split the pwrseq patches out into their own series > - rename incref/decref functions to get/put for consistency > - fix typos > - make it very explicit in docs that arrays of targets and units must be > NULL-terminated > - Link to v8: https://lore.kernel.org/r/20240528-pwrseq-v8-0-d354d52b763c@xxxxxxxxxx > > Since v7: > - added DTS changes for sm8650-hdk > - added circular dependency detection for pwrseq units > - fixed a KASAN reported use-after-free error in remove path > - improve Kconfig descriptions > - fix typos in bindings and Kconfig > - fixed issues reported by smatch > - fix the unbind path in PCI pwrctl > - lots of minor improvements to the pwrseq core > > Since v6: > - kernel doc fixes > - drop myself from the DT bindings maintainers list for ath12k > - wait until the PCI bridge device is fully added before creating the > PCI pwrctl platform devices for its sub-nodes, otherwise we may see > sysfs and procfs attribute failures (due to duplication, we're > basically trying to probe the same device twice at the same time) > - I kept the regulators for QCA6390's ath11k as required as they only > apply to this specific Qualcomm package > > Since v5: > - unify the approach to modelling the WCN WLAN/BT chips by always exposing > the PMU node on the device tree and making the WLAN and BT nodes become > consumers of its power outputs; this includes a major rework of the DT > sources, bindings and driver code; there's no more a separate PCI > pwrctl driver for WCN7850, instead its power-up sequence was moved > into the pwrseq driver common for all WCN chips > - don't set load_uA from new regulator consumers > - fix reported kerneldoc issues > - drop voltage ranges for PMU outputs from DT > - many minor tweaks and reworks > > v1: Original RFC: > > https://lore.kernel.org/lkml/20240104130123.37115-1-brgl@xxxxxxxx/T/ > > v2: First real patch series (should have been PATCH v2) adding what I > referred to back then as PCI power sequencing: > > https://lore.kernel.org/linux-arm-kernel/2024021413-grumbling-unlivable-c145@gregkh/T/ > > v3: RFC for the DT representation of the PMU supplying the WLAN and BT > modules inside the QCA6391 package (was largely separate from the > series but probably should have been called PATCH or RFC v3): > > https://lore.kernel.org/all/CAMRc=Mc+GNoi57eTQg71DXkQKjdaoAmCpB=h2ndEpGnmdhVV-Q@xxxxxxxxxxxxxx/T/ > > v4: Second attempt at the full series with changed scope (introduction of > the pwrseq subsystem, should have been RFC v4) > > https://lore.kernel.org/lkml/20240201155532.49707-1-brgl@xxxxxxxx/T/ > > v5: Two different ways of handling QCA6390 and WCN7850: > > https://lore.kernel.org/lkml/20240216203215.40870-1-brgl@xxxxxxxx/ > > Bartosz Golaszewski (2): > power: sequencing: implement the pwrseq core > power: pwrseq: add a driver for the PMU module on the QCom WCN > chipsets > > MAINTAINERS | 8 + > drivers/power/Kconfig | 1 + > drivers/power/Makefile | 1 + > drivers/power/sequencing/Kconfig | 29 + > drivers/power/sequencing/Makefile | 6 + > drivers/power/sequencing/core.c | 1105 ++++++++++++++++++++ > drivers/power/sequencing/pwrseq-qcom-wcn.c | 336 ++++++ > include/linux/pwrseq/consumer.h | 56 + > include/linux/pwrseq/provider.h | 75 ++ > 9 files changed, 1617 insertions(+) > create mode 100644 drivers/power/sequencing/Kconfig > create mode 100644 drivers/power/sequencing/Makefile > create mode 100644 drivers/power/sequencing/core.c > create mode 100644 drivers/power/sequencing/pwrseq-qcom-wcn.c > create mode 100644 include/linux/pwrseq/consumer.h > create mode 100644 include/linux/pwrseq/provider.h > > -- > 2.40.1 > With no objections, I plan to pick it up into its own pwrseq branch on Wednesday. Review and Ack tags are welcome. Bartosz