mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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

             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®