linux/drivers
Linus Torvalds e763c9ec71 pwrseq updates for v6.11-rc1
- add the pwrseq core framework
 - add the first power sequencing driver: pwrseq-qcom-wcn
 - add power control (pwrctl) changes to PCI core
 - add the first PCI pwrctl power sequencing driver
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEFp3rbAvDxGAT0sefEacuoBRx13IFAmaQ72wACgkQEacuoBRx
 13K4fg//Qd8vxOH06/VSJRCwEvilUfYgDe/WiqTcBXL+8cK/3B0fUhfD83wgMnJn
 /yw2GgS5OjAvYe47nvM4T5M/XMpQ967XTED9cXxJWpBwcee+LZ6hsBGlPuSRunpo
 DQ4EuDh8wQ4j8Gw5pXj7dgtCN7zx4Idj+amh9i2ep+/7ZqT9UFqe294Tq9pX0X+a
 rhOrTooQo4uiwpSAh6k1db3o1VpVDhlx+m2CCQV6V5F3r7eiPv2tQE2B8GvlJlY/
 KjGECsbxKMch6dtKQumRnn3R07v1b3SlQOQOSP99blNv8dfDBOKS0dFPI4se2n2b
 FvKCtmfC9QD9MPvTFKGSIZTTLMInfGpniLyxMD3Ubu+l26AA7eLpv4BICExFo71c
 5gM/Xm8ypsrW7WadhAsl0mNS1CpbFZ2jNTBtuBrP5AFTMOvPqmYbN0VjRgYbX0Yw
 qXyu540iP8t8c0eTqRyrabhXFEehTso5cJGqtKvIARuoK1rF+wOPxTBU+RHjJWg/
 xp7ckCGP+VymcD1xNGpHPweHxwu0z2RMI4zYg2i6WOjWz6FY/V2x1Pf3PGlXF7pq
 yaTMqK5tiGizCF2/RNFGDFQ8re0qtZfh6/mNtT45GGbUBaYltPGQFdFhsaI6rwEi
 LMO7M387u0fPJlS0/ib8I+S5ZfKo65xjC/jQSuUL8WfQf85Ck9k=
 =rI5g
 -----END PGP SIGNATURE-----

Merge tag 'pwrseq-updates-for-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull power sequencing updates from Bartosz Golaszewski:
 "This has been in development since last year's Linux Plumbers
  Conference and was inspired by the need to enable support upstream for
  Bluetooth/WLAN chips on Qualcomm platforms.

  The main problem we're fixing is powering up devices which are
  represented as separate objects in the kernel (binding to different
  drivers) but which share parts of the power-up sequence and thus need
  some kind of a mediator who knows the possible interactions and can
  assure they don't interfere with neither device's bring up. An example
  of such an inter-driver interaction is the WCN family of BT/WLAN chips
  from Qualcomm of which some models require the user to observe a
  certain delay between driving the bt-enable and wlan-enable GPIOs.

  This is not a new problem but up to this point all attempts at
  addressing it ended up hitting one wall or another and being dropped.
  The main obstacle was the fact that most these attempts tried to
  introduce the concept of a "power sequence" into the device-tree
  bindings which breaks the main DT rule: describe the hardware, not its
  behavior. The solution I proposed focuses on making the power
  sequencer drivers interpret the actual HW description flexibly. More
  details on that are in the linked cover letter.

  The second problem fixed here is powering up PCI devices before they
  are detected on the bus. This is achieved by creating special platform
  devices for device-tree nodes describing hard-wired PCI devices which
  bind to the so-called PCI power control drivers which enable required
  resources and trigger a bus rescan once the controlled device is up
  then setup the correct devlink hierarchy for power-management.

  By combining the two new frameworks we implemented the power
  sequencing PCI power control driver which is capable of powering up
  the WLAN modules of the QCom WCN family of chipsets.

  All this has spent a significant amount of time in linux-next and
  enabled WLAN/BT support on several Qualcomm platforms. To further
  prove that this is useful and needed: right after this was picked up
  into next, I was sent a series using the subsystem for a similar
  use-case on Amlogic platforms.

  This contains the core power sequencing framework, the first driver,
  PCI changes using the pwrseq library (blessed by Bjorn Helgaas) and
  some fixes that came later"

* tag 'pwrseq-updates-for-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
  PCI/pwrctl: only call of_platform_populate() if CONFIG_OF is enabled
  power: sequencing: simplify returning pointer without cleanup
  PCI/pwrctl: Add a PCI power control driver for power sequenced devices
  PCI/pwrctl: Add PCI power control core code
  PCI/pwrctl: Create platform devices for child OF nodes of the port node
  PCI/pwrctl: Reuse the OF node for power controlled devices
  PCI: Hold the rescan mutex when scanning for the first time
  power: pwrseq: add a driver for the PMU module on the QCom WCN chipsets
  power: sequencing: implement the pwrseq core
2024-07-15 17:34:31 -07:00
..
accel The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
accessibility Char/Misc bugfix for 6.10-rc1 2024-05-24 08:43:25 -07:00
acpi chrome platform changes for 6.11 2024-07-15 17:25:38 -07:00
amba
android binder: fix max_thread type inconsistency 2024-05-04 18:59:47 +02:00
ata for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
atm atm/fore200e: Delete unused 'fore200e_boards' 2024-05-06 18:26:47 -07:00
auxdisplay - Fix-ups 2024-05-22 10:45:12 -07:00
base arm64 updates for 6.11: 2024-07-15 17:06:19 -07:00
bcma
block for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
bluetooth Bluetooth: btnxpuart: Enable Power Save feature on startup 2024-06-28 14:30:37 -04:00
bus tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
cache
cdrom cdrom: Add missing MODULE_DESCRIPTION() 2024-06-22 19:36:08 -06:00
cdx
char Hi, 2024-07-15 16:57:27 -07:00
clk A set of clk fixes for the Qualcomm, Mediatek, and Allwinner drivers: 2024-07-07 10:59:38 -07:00
clocksource clocksource/drivers/realtek: Add timer driver for rtl-otto platforms 2024-07-12 16:07:06 +02:00
comedi Merge 6.9-rc5 into char-misc-next 2024-04-23 13:16:03 +02:00
connector
counter counter: ti-eqep: enable clock at probe 2024-06-22 13:48:11 +09:00
cpufreq cpufreq: ACPI: Mark boost policy as enabled when setting boost 2024-07-01 18:10:52 +02:00
cpuidle pmdomain core: 2024-05-16 08:50:32 -07:00
crypto This push fixes a build failure in qat. 2024-06-27 17:43:15 -07:00
cxl cxl: documentation: add missing files to cxl driver-api 2024-06-25 14:45:27 -07:00
dax The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
dca
devfreq PM / devfreq: exynos: Use DEFINE_SIMPLE_DEV_PM_OPS for PM functions 2024-05-09 00:30:37 +09:00
dio
dma dmaengine: ioatdma: Fix missing kmem_cache_destroy() 2024-06-11 23:39:26 +05:30
dma-buf Merge remote-tracking branch 'drm/drm-fixes' into drm-misc-fixes 2024-05-28 22:21:34 +02:00
dpll dpll: fix return value check for kmemdup 2024-05-13 16:53:53 -07:00
edac EDAC/igen6: Convert PCIBIOS_* return codes to errnos 2024-06-04 11:29:52 +02:00
eisa alpha: remove DECpc AXP150 (Jensen) support 2024-05-03 22:09:50 +02:00
extcon extcon: adc-jack: Document missing struct members 2024-05-09 01:03:39 +09:00
firewire firewire: core: record card index in bus_reset_handle tracepoints event 2024-06-15 14:59:26 +09:00
firmware chrome platform firmware changes for 6.11 2024-07-15 17:28:40 -07:00
fpga Char/Misc and other driver subsystem changes for 6.10-rc1 2024-05-22 12:26:46 -07:00
fsi
gnss
gpio gpiolib: of: add polarity quirk for TSC2005 2024-07-05 11:00:45 +02:00
gpu amd-drm-fixes-6.10-2024-07-11: 2024-07-12 13:32:36 +10:00
greybus greybus: Fix use-after-free bug in gb_interface_release due to race condition. 2024-05-04 18:59:41 +02:00
hid for-linus-2024060801 2024-06-08 10:48:11 -07:00
hsi
hte
hv Drivers: hv: Cosmetic changes for hv.c and balloon.c 2024-06-06 06:03:29 +00:00
hwmon chrome platform changes for 6.11 2024-07-15 17:25:38 -07:00
hwspinlock
hwtracing Char/Misc and other driver subsystem changes for 6.10-rc1 2024-05-22 12:26:46 -07:00
i2c This tag includes three fixes for the Renesas R-Car driver: 2024-07-13 10:50:55 +02:00
i3c i3c: dw: Add hot-join support. 2024-05-23 00:29:19 +02:00
idle
iio iio: light: apds9306: Fix error handing 2024-06-29 18:51:25 +01:00
infiniband RDMA/mana_ib: Ignore optional access flags for MRs 2024-06-21 10:19:36 -03:00
input Input updates for v6.10-rc5 2024-06-24 14:36:11 -04:00
interconnect tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
iommu iommu/amd: Fix GT feature enablement again 2024-06-27 12:14:19 +02:00
ipack
irqchip arm64 updates for 6.11: 2024-07-15 17:06:19 -07:00
isdn
leds leds: class: Revert: "If no default trigger is given, make hw_control trigger the default trigger" 2024-06-16 09:33:28 -07:00
macintosh powerpc updates for 6.10 2024-05-17 09:05:46 -07:00
mailbox mailbox: zynqmp-ipi: drop irq_to_desc() call 2024-05-31 12:39:15 -05:00
mcb mcb: lpc: Convert to platform remove callback returning void 2024-04-29 10:53:31 +02:00
md for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
media media fixes for v6.10-rc7 2024-07-03 10:10:45 -07:00
memory ARM development updates for v6.10-rc1 2024-05-17 08:53:47 -07:00
memstick memstick: rtsx_usb_ms: Convert to platform remove callback returning void 2024-04-25 11:58:52 +02:00
message SCSI misc on 20240514 2024-05-14 18:25:53 -07:00
mfd mfd: axp20x: AXP717: Fix missing IRQ status registers range 2024-06-14 08:43:39 +01:00
misc mei: vsc: Fix spelling error 2024-07-04 12:21:39 +02:00
mmc for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
most
mtd for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
mux mux: remove usage of the deprecated ida_simple_xx() API 2024-04-29 08:20:07 -07:00
net Updates for timers, timekeeping and related functionality: 2024-07-15 15:03:09 -07:00
nfc nfc/nci: Add the inconsistency check between the input data length and count 2024-05-29 13:08:31 +01:00
ntb ntb: idt: Use PCI_IRQ_INTX instead of PCI_IRQ_LEGACY 2024-04-25 12:53:30 -05:00
nubus
nvdimm block: move the dax flag to queue_limits 2024-06-19 07:58:28 -06:00
nvme for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
nvmem nvmem: core: limit cell sysfs permissions to main attribute ones 2024-07-03 16:37:51 +02:00
of of/irq: Disable "interrupt-map" parsing for PASEMI Nemo 2024-07-08 15:42:20 -06:00
opp OPP Updates for 6.10 2024-05-17 13:01:24 +02:00
parisc change alloc_pages name in dma_map_ops to avoid name conflicts 2024-04-25 20:55:53 -07:00
parport parport: amiga: Mark driver struct with __refdata to prevent section mismatch 2024-06-04 18:08:31 +02:00
pci pwrseq updates for v6.11-rc1 2024-07-15 17:34:31 -07:00
pcmcia
peci
perf arm64 updates for 6.11: 2024-07-15 17:06:19 -07:00
phy phy: qcom: qmp-combo: Switch from V6 to V6 N4 register offsets 2024-06-03 19:30:47 +05:30
pinctrl pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set 2024-06-17 10:36:56 +02:00
platform chrome platform changes for 6.11 2024-07-15 17:25:38 -07:00
pmdomain pmdomain: qcom: rpmhpd: Skip retention level for Power Domains 2024-07-09 12:47:46 +02:00
pnp PNP: Hide pnp_bus_type from the non-PNP code 2024-05-28 21:53:51 +02:00
power pwrseq updates for v6.11-rc1 2024-07-15 17:34:31 -07:00
powercap powercap: intel_rapl_tpmi: Enable PMU support 2024-04-30 21:10:37 +02:00
pps pps: remove usage of the deprecated ida_simple_xx() API 2024-04-29 08:20:06 -07:00
ps3
ptp ptp: fix integer overflow in max_vclocks_store 2024-06-18 13:26:44 -07:00
pwm pwm: stm32: Fix error message to not describe the previous error path 2024-06-22 16:13:19 +02:00
rapidio rapidio: remove choice for enumeration 2024-05-14 23:36:19 +09:00
ras RAS/AMD/ATL: Use system settings for MI300 DRAM to normalized address translation 2024-06-16 11:22:57 +02:00
regulator regulator: axp20x: AXP717: fix LDO supply rails and off-by-ones 2024-06-12 21:30:43 +01:00
remoteproc remoteproc: k3-r5: Jump to error handling labels in start/stop errors 2024-05-06 13:34:12 -06:00
reset reset: hisilicon: hi6220: add missing MODULE_DESCRIPTION() macro 2024-06-21 13:49:25 +02:00
rpmsg virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
rtc pcf8563: add wakeup-source support 2024-05-07 23:40:46 +02:00
s390 for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
sbus
scsi for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
sh
siox
slimbus Linux 6.9-rc7 2024-05-08 19:21:51 +01:00
soc Qualcomm driver fixes for v6.10 2024-07-08 16:17:09 +02:00
soundwire soundwire: fix usages of device_get_named_child_node() 2024-06-03 17:35:24 +05:30
spi spi: mux: set ctlr->bits_per_word_mask 2024-07-09 17:42:33 +01:00
spmi spmi: pmic-arb: Add multi bus support 2024-05-08 19:46:11 +01:00
ssb
staging staging: vchiq_debugfs: Fix build if CONFIG_DEBUG_FS is not set 2024-06-27 15:47:30 +02:00
target block: remove the blk_integrity_profile structure 2024-06-14 10:20:06 -06:00
tc
tee Fix optee missing-field-initializers warning 2024-06-27 17:10:38 +02:00
thermal thermal: core: Fix list sorting in __thermal_zone_device_update() 2024-07-08 17:24:22 +02:00
thunderbolt thunderbolt: debugfs: Fix margin debugfs node creation condition 2024-05-31 13:13:39 +03:00
tty serial: qcom-geni: do not kill the machine on fifo underrun 2024-07-04 12:30:30 +02:00
ufs for-6.11/block-20240710 2024-07-15 14:20:22 -07:00
uio Merge 6.9-rc5 into char-misc-next 2024-04-23 13:16:03 +02:00
usb USB-serial fixes for 6.10-rc8 2024-07-10 19:55:07 +02:00
vdpa Merge tag 'stable/vduse-virtio-net' into vhost 2024-05-22 08:32:48 -04:00
vfio vfio/pci: Init the count variable in collecting hot-reset devices 2024-07-10 08:47:46 -06:00
vhost virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
video - Fix-ups 2024-05-22 10:45:12 -07:00
virt The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
virtio virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
w1
watchdog watchdog: add missing MODULE_DESCRIPTION() macros 2024-06-15 12:49:57 +02:00
xen xen: branch for v6.10-rc1 2024-05-24 10:24:49 -07:00
zorro zorro: Use helpers from ioport.h 2024-04-29 16:45:53 +02:00
Kconfig
Makefile kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00