From: Lee Jones <lee@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Pavel Machek <pavel@ucw.cz>
Subject: [GIT PULL] LEDs for v7.4
Date: Mon, 26 Oct 2026 15:20:12 +0000 [thread overview]
Message-ID: <20261026152012.GD2195460@google.com> (raw)
Good afternoon Linus,
The following changes since commit cee9395acd8043be0644b25c34bfa86623f2b935:
Linux 7.3-rc1 (2026-08-30 13:34:40 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds.git leds-next-7.4
for you to fetch changes up to 59cf91cf87abb67a49b1bb7b9d3b06486abde8cf:
dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema (2026-10-15 16:53:25 +0100)
----------------------------------------------------------------
LEDs for v7.4
- New Support & Features
- Core: Add `led_trigger_notify_hw_control_changed()` to allow drivers to notify the
core of autonomous hardware control transitions
- Core: Add the `hw_offloaded()` trigger callback and `trigger_may_offload_to_hw` sysfs
attribute to expose hardware-offloaded triggers
- Netdev Trigger: Implement the `hw_offloaded()` callback to report hardware control
state to the LED core
- Analog Devices LTC3208: Add support for the LTC3208 7-channel multi-display I2C LED
driver
- ChromeOS EC: Implement the `hw_offloaded()` callback for the `chromeos-auto` trigger
- CZ.NIC Turris Omnia: Implement the `hw_offloaded()` callback and declare `omnia-mcu`
as a hardware control trigger
- STMicroelectronics ST1202: Add hardware-accelerated blink support via `blink_set()`
- Improvements & Fixes
- Class: Always hold the `led_access` mutex in `brightness_show()` to avoid exposing
transient registration states
- Class: Deactivate active hardware control triggers when writing to the `brightness`
sysfs attribute
- Core: Enforce strict validation in `led_trigger_is_hw_controlled()` and warn on legacy
fallback paths
- Flash Class: Initialize the fault variable in `flash_fault_show()` to prevent
undefined behavior when callbacks perform bitwise ORs
- Kinetic KTD2692: Pass the driver context directly to `regulator_disable_action()` to
prevent a NULL pointer dereference during error unwinding
- Maxim MAX77705: Use `fwnode_for_each_child_node_scoped()` in `max77705_add_led()` to
prevent child node reference leaks on error paths
- NXP PCA9532: Check the return value of `i2c_smbus_read_byte_data()` in
`pca9532_getled()` to avoid integer underflow on read errors
- Qualcomm WLED: Fix a NULL pointer dereference in `wled_remove()` by setting platform
driver data in `wled_probe()`
- Qualcomm WLED: Fix the WLED3 brightness register stride to prevent consecutive string
writes from overlapping
- Qualcomm WLED: Read back the hardware-programmed brightness at probe, expose it via
`get_brightness()`, and prevent unbalanced OVP IRQ enabling
- STMicroelectronics ST1202: Clear unused PWM pattern slots in `pattern_set()` and
`blink_set()` to prevent unintended output when sharing the global sequencer
- STMicroelectronics ST1202: Program and cap the channel current according to
`max_brightness` across brightness, blink, and hardware pattern modes, and scale
pattern brightness to the 12-bit PWM range
- STMicroelectronics ST1202: Retain a reference to each child LED firmware node for the
lifetime of the device
- STMicroelectronics ST1202: Use only the blocking `brightness_set_blocking()` callback
to avoid sleeping in atomic context during I2C transfers
- TI LM3692x: Check the final register write in `lm3692x_leds_enable()` to prevent
regulator/GPIO leaks and an inconsistent enabled state
- TI LP8860: Fix a `device_node` reference leak in `lp8860_probe()` using
`__free(device_node)`
- Cleanups & Refactoring
- Core: Move `led_trigger_is_hw_controlled()` and `led_trigger_group` from `led-class.c`
into `led-triggers.c`
- Core: Replace conditional `set_bit()`/`clear_bit()` patterns with `assign_bit()` and
`__assign_bit()`
- Flash Class: Simplify `flash_fault_show()` using `sysfs_emit_at()` and omit the
trailing space
- Maintainers: Add Griffin Kroah-Hartman as an LED subsystem reviewer
- Intel SS4200: Fix a spelling typo in a comment
- ISSI IS31FL32xx: Convert DT-specific parsing helpers to generic device and fwnode
property APIs
- NXP PCA955x: Drop redundant intermediate platform data and allocate the LED array
using a flexible array member
- Qualcomm LPG: Convert LED and channel parsing to fwnode APIs and avoid leaving
`default_trigger` uninitialized
- Skyworks AAT1290: Use `ARRAY_SIZE()` when allocating `mm_current_scale` to match the
target pointer type for type-aware allocators
- STMicroelectronics ST1202: Introduce a `st1202_iled_max()` helper to unify channel
current ceiling calculations
- STMicroelectronics ST1202: Standardize variable and macro naming, fix helper spelling,
and use `u8` consistently instead of `uint8_t`
- Syscon: Convert from OF-specific property helpers to the generic device property and
fwnode APIs
- Device Tree Binding Updates
- Core: Allow PHY RX triggers (`phy[0-9]+rx`) in `linux,default-trigger`
- Core: Standardize example indentation across multiple LED and backlight binding
schemas
- Analog Devices LTC3208: Document the LTC3208 multi-display LED driver
- LaCie netxbig: Convert LED bindings to DT schema
- Motorola CPCAP: Convert LED bindings to DT schemaLEDs for v7.4
- New Support & Features
- Core: Add `led_trigger_notify_hw_control_changed()` to allow drivers to notify the
core of autonomous hardware control transitions
- Core: Add the `hw_offloaded()` trigger callback and `trigger_may_offload_to_hw` sysfs
attribute to expose hardware-offloaded triggers
- Netdev Trigger: Implement the `hw_offloaded()` callback to report hardware control
state to the LED core
- Analog Devices LTC3208: Add support for the LTC3208 7-channel multi-display I2C LED
driver
- ChromeOS EC: Implement the `hw_offloaded()` callback for the `chromeos-auto` trigger
- CZ.NIC Turris Omnia: Implement the `hw_offloaded()` callback and declare `omnia-mcu`
as a hardware control trigger
- STMicroelectronics ST1202: Add hardware-accelerated blink support via `blink_set()`
- Improvements & Fixes
- Class: Always hold the `led_access` mutex in `brightness_show()` to avoid exposing
transient registration states
- Class: Deactivate active hardware control triggers when writing to the `brightness`
sysfs attribute
- Core: Enforce strict validation in `led_trigger_is_hw_controlled()` and warn on legacy
fallback paths
- Flash Class: Initialize the fault variable in `flash_fault_show()` to prevent
undefined behavior when callbacks perform bitwise ORs
- Kinetic KTD2692: Pass the driver context directly to `regulator_disable_action()` to
prevent a NULL pointer dereference during error unwinding
- Maxim MAX77705: Use `fwnode_for_each_child_node_scoped()` in `max77705_add_led()` to
prevent child node reference leaks on error paths
- NXP PCA9532: Check the return value of `i2c_smbus_read_byte_data()` in
`pca9532_getled()` to avoid integer underflow on read errors
- Qualcomm WLED: Fix a NULL pointer dereference in `wled_remove()` by setting platform
driver data in `wled_probe()`
- Qualcomm WLED: Fix the WLED3 brightness register stride to prevent consecutive string
writes from overlapping
- Qualcomm WLED: Read back the hardware-programmed brightness at probe, expose it via
`get_brightness()`, and prevent unbalanced OVP IRQ enabling
- STMicroelectronics ST1202: Clear unused PWM pattern slots in `pattern_set()` and
`blink_set()` to prevent unintended output when sharing the global sequencer
- STMicroelectronics ST1202: Program and cap the channel current according to
`max_brightness` across brightness, blink, and hardware pattern modes, and scale
pattern brightness to the 12-bit PWM range
- STMicroelectronics ST1202: Retain a reference to each child LED firmware node for the
lifetime of the device
- STMicroelectronics ST1202: Use only the blocking `brightness_set_blocking()` callback
to avoid sleeping in atomic context during I2C transfers
- TI LM3692x: Check the final register write in `lm3692x_leds_enable()` to prevent
regulator/GPIO leaks and an inconsistent enabled state
- TI LP8860: Fix a `device_node` reference leak in `lp8860_probe()` using
`__free(device_node)`
- Cleanups & Refactoring
- Core: Move `led_trigger_is_hw_controlled()` and `led_trigger_group` from `led-class.c`
into `led-triggers.c`
- Core: Replace conditional `set_bit()`/`clear_bit()` patterns with `assign_bit()` and
`__assign_bit()`
- Flash Class: Simplify `flash_fault_show()` using `sysfs_emit_at()` and omit the
trailing space
- Maintainers: Add Griffin Kroah-Hartman as an LED subsystem reviewer
- Intel SS4200: Fix a spelling typo in a comment
- ISSI IS31FL32xx: Convert DT-specific parsing helpers to generic device and fwnode
property APIs
- NXP PCA955x: Drop redundant intermediate platform data and allocate the LED array
using a flexible array member
- Qualcomm LPG: Convert LED and channel parsing to fwnode APIs and avoid leaving
`default_trigger` uninitialized
- Skyworks AAT1290: Use `ARRAY_SIZE()` when allocating `mm_current_scale` to match the
target pointer type for type-aware allocators
- STMicroelectronics ST1202: Introduce a `st1202_iled_max()` helper to unify channel
current ceiling calculations
- STMicroelectronics ST1202: Standardize variable and macro naming, fix helper spelling,
and use `u8` consistently instead of `uint8_t`
- Syscon: Convert from OF-specific property helpers to the generic device property and
fwnode APIs
- Device Tree Binding Updates
- Core: Allow PHY RX triggers (`phy[0-9]+rx`) in `linux,default-trigger`
- Core: Standardize example indentation across multiple LED and backlight binding
schemas
- Analog Devices LTC3208: Document the LTC3208 multi-display LED driver
- LaCie netxbig: Convert LED bindings to DT schema
- Motorola CPCAP: Convert LED bindings to DT schema
----------------------------------------------------------------
Cong Nguyen (1):
leds: lm3692x: Fix regulator/gpio leak and wrong enabled state on last write failure
David Heidelberg (4):
backlight: qcom-wled: Fix NULL pointer dereference in wled_remove()
backlight: qcom-wled: Fix WLED3 brightness register stride
backlight: qcom-wled: Fix unbalanced OVP IRQ enable at probe
backlight: qcom-wled: Read back the programmed brightness at probe
Dmitry Antipov (2):
leds: flash: Prevent using uninitialized variable in flash_fault_show()
leds: flash: Simplify flash_fault_show()
Griffin Kroah-Hartman (1):
MAINTAINERS: Add myself as a LED SUBSYSTEM reviewer
Haibo Chen (1):
leds: pca9532: Check i2c_smbus_read_byte_data() return value
Hemanth Selam (1):
leds: ss4200: Fix typo "retrive" in comment
Jan Carlo Roleda (2):
dt-bindings: leds: Document LTC3208 Multidisplay LED Driver
leds: ltc3208: Add driver for LTC3208 Multidisplay LED Driver
Kees Cook (1):
leds: aat1290: Allocate mm_current_scale with ARRAY_SIZE()
Krzysztof Kozlowski (1):
dt-bindings: leds: Use consistent indentation in the example
Manuel Fombuena (14):
leds: st1202: Add hardware-accelerated blink support
leds: st1202: Correct the name of the prescaler conversion helper
leds: st1202: Spell out the phase-shift configuration bit
leds: st1202: Name pattern index variables consistently
leds: st1202: Use u8 consistently for 8-bit values
leds: st1202: Clear unused pattern slots in pattern_set()
leds: st1202: Scale pattern brightness to the 12-bit PWM range
leds: st1202: Program the channel current for hardware patterns
leds: st1202: Take a reference on the LED firmware node
leds: st1202: Do not set brightness from atomic context
leds: st1202: Clear unused pattern slots in blink_set()
leds: st1202: Honour max_brightness when blinking
leds: st1202: Cap the channel current in st1202_led_set()
leds: st1202: Give the channel current ceiling a single helper
Manush Prajwal (1):
leds: max77705: Use fwnode_for_each_child_node_scoped() in max77705_add_led()
Miles Krause (1):
leds: lp8860: Fix device_node leak in lp8860_probe()
Myeonghun Pak (1):
leds: ktd2692: Pass context to regulator cleanup
Peng Fan (1):
leds: Use assign_bit() where applicable
Rob Herring (Arm) (1):
dt-bindings: leds: Allow PHY RX triggers
Rong Zhang (10):
leds: class: Always protect brightness_show() with led_access
leds: trigger: Move led_trigger_is_hw_controlled() to the right place
leds: class: Remove hardware control trigger when writing brightness
leds: trigger: Move led_trigger_group to the right place
leds: trigger: Add hw_offloaded() callback and provide trigger_may_offload_to_hw attribute
leds: cros_ec: Implement hw_offloaded() trigger callback
leds: turris-omnia: Implement hw_offloaded() trigger callback and declare hw_control_trigger
leds: trigger: netdev: Implement hw_offloaded() callback
leds: trigger: Enforce strict checks in led_trigger_is_hw_controlled()
leds: trigger: Add led_trigger_notify_hw_control_changed() interface
Rosen Penev (4):
leds: syscon: Use device property API
leds: is31fl32xx: Use fwnode/device property APIs
leds: rgb: qcom-lpg: Use fwnode APIs for LED parsing
leds: pca955x: Drop platform data and allocate LEDs with the device
Svyatoslav Ryhel (1):
dt-bindings: leds: leds-cpcap: Convert to DT schema
Udaya Kiran Challa (1):
dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema
Documentation/ABI/testing/sysfs-class-led | 28 ++-
.../ABI/testing/sysfs-class-led-trigger-netdev | 3 +
.../devicetree/bindings/leds/adi,ltc3208.yaml | 183 ++++++++++++++++
.../bindings/leds/backlight/lm3630a-backlight.yaml | 52 ++---
.../bindings/leds/backlight/lp855x-backlight.yaml | 18 +-
.../bindings/leds/backlight/qcom-wled.yaml | 2 +-
Documentation/devicetree/bindings/leds/common.yaml | 2 +-
.../bindings/leds/lacie,netxbig-leds.yaml | 136 ++++++++++++
.../devicetree/bindings/leds/leds-consumer.yaml | 14 +-
.../devicetree/bindings/leds/leds-cpcap.txt | 29 ---
.../devicetree/bindings/leds/leds-lp50xx.yaml | 12 +-
.../devicetree/bindings/leds/leds-lp5860.yaml | 12 +-
.../devicetree/bindings/leds/leds-netxbig.txt | 92 --------
.../bindings/leds/motorola,cpcap-leds.yaml | 42 ++++
.../devicetree/bindings/leds/nxp,pca963x.yaml | 24 +--
Documentation/leds/leds-class.rst | 72 +++++++
Documentation/leds/leds-st1202.rst | 5 +
MAINTAINERS | 9 +
drivers/leds/Kconfig | 12 ++
drivers/leds/Makefile | 1 +
drivers/leds/flash/leds-aat1290.c | 5 +-
drivers/leds/flash/leds-ktd2692.c | 10 +-
drivers/leds/led-class-flash.c | 21 +-
drivers/leds/led-class.c | 46 ++--
drivers/leds/led-core.c | 5 +-
drivers/leds/led-triggers.c | 177 ++++++++++++++-
drivers/leds/leds-cros_ec.c | 6 +
drivers/leds/leds-is31fl32xx.c | 20 +-
drivers/leds/leds-lm3692x.c | 4 +-
drivers/leds/leds-lp8860.c | 5 +-
drivers/leds/leds-ltc3208.c | 234 ++++++++++++++++++++
drivers/leds/leds-max77705.c | 3 +-
drivers/leds/leds-pca9532.c | 9 +-
drivers/leds/leds-pca955x.c | 94 +++-----
drivers/leds/leds-pca963x.c | 5 +-
drivers/leds/leds-ss4200.c | 2 +-
drivers/leds/leds-st1202.c | 240 ++++++++++++++++-----
drivers/leds/leds-syscon.c | 9 +-
drivers/leds/leds-turris-omnia.c | 7 +
drivers/leds/leds.h | 8 +-
drivers/leds/rgb/leds-qcom-lpg.c | 38 ++--
drivers/leds/trigger/Kconfig | 10 +
drivers/leds/trigger/ledtrig-netdev.c | 13 +-
drivers/video/backlight/qcom-wled.c | 99 +++++++--
include/linux/leds.h | 24 +++
45 files changed, 1406 insertions(+), 436 deletions(-)
create mode 100644 Documentation/devicetree/bindings/leds/adi,ltc3208.yaml
create mode 100644 Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/leds-cpcap.txt
delete mode 100644 Documentation/devicetree/bindings/leds/leds-netxbig.txt
create mode 100644 Documentation/devicetree/bindings/leds/motorola,cpcap-leds.yaml
create mode 100644 drivers/leds/leds-ltc3208.c
--
Lee Jones
next reply other threads:[~2026-10-26 15:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-26 15:20 Lee Jones [this message]
2026-10-26 19:10 ` Linus Torvalds
2026-10-26 20:07 ` Lee Jones
2026-10-26 19:20 ` pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261026152012.GD2195460@google.com \
--to=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®