patches.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: "Uwe Kleine-König" <u.kleine-koenig@baylibre.com>,
	"Uwe Kleine-König" <ukleinek@kernel.org>,
	"Sasha Levin" <sashal@kernel.org>,
	linux-pwm@vger.kernel.org
Subject: [PATCH AUTOSEL 6.17-6.12] pwm: pca9685: Use bulk write to atomicially update registers
Date: Thu,  9 Oct 2025 11:56:10 -0400	[thread overview]
Message-ID: <20251009155752.773732-104-sashal@kernel.org> (raw)
In-Reply-To: <20251009155752.773732-1-sashal@kernel.org>

From: Uwe Kleine-König <u.kleine-koenig@baylibre.com>

[ Upstream commit de5855613263b426ee697dd30224322f2e634dec ]

The output of a PWM channel is configured by four register values. Write
them in a single i2c transaction to ensure glitch free updates.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Link: https://lore.kernel.org/r/bfa8c0267c9ec059d0d77f146998d564654c75ca.1753784092.git.u.kleine-koenig@baylibre.com
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

YES
- The driver currently programs each PCA9685 channel by four independent
  I²C writes, so the hardware latches intermediate ON/OFF values and the
  output glitches whenever duty/phase changes. The commit fixes that by
  introducing `pca9685_write_4reg()` and switching the two callsites in
  `pca9685_pwm_set_duty()` to a single `regmap_bulk_write()` transaction
  (`drivers/pwm/pwm-pca9685.c:136-183`), eliminating the observable
  glitch for both PWM and the GPIO shim users.
- To make the bulk write possible, the probe code now enables the
  device’s auto-increment bit and clears the OCH latch mode (`MODE1_AI`
  and rewrites of MODE2 in `drivers/pwm/pwm-pca9685.c:557-586`). This
  guarantees that the four-byte transfer is accepted as one atomic
  update and keeps the controller in its documented default signalling
  modes (invert/open-drain remain governed by the same DT properties).
- The reset path for the “all LED” channel is moved to the same helper
  (`drivers/pwm/pwm-pca9685.c:584-586`), so the fix also covers the
  initial state and any error paths that need to reinitialise the chip.
- The change is tightly scoped to `drivers/pwm/pwm-pca9685.c`, does not
  add features, and relies only on long-standing regmap APIs, so it
  backports cleanly without extra dependencies. The only behavioural
  change beyond glitch avoidance is that MODE2 is no longer inherited
  from firmware, but the new value matches the datasheet defaults; no
  existing in-kernel consumer depends on custom OUTNE/OCH bits, keeping
  regression risk low compared to the very visible glitch it resolves.

Given the real user-facing malfunction it corrects and the limited,
well-understood impact area, this is a solid candidate for the stable
trees.

 drivers/pwm/pwm-pca9685.c | 46 ++++++++++++++++++++++++---------------
 1 file changed, 29 insertions(+), 17 deletions(-)

diff --git a/drivers/pwm/pwm-pca9685.c b/drivers/pwm/pwm-pca9685.c
index 9ce75704a15f8..91f96b28ce1b5 100644
--- a/drivers/pwm/pwm-pca9685.c
+++ b/drivers/pwm/pwm-pca9685.c
@@ -61,6 +61,8 @@
 #define MODE1_SUB2		BIT(2)
 #define MODE1_SUB1		BIT(3)
 #define MODE1_SLEEP		BIT(4)
+#define MODE1_AI		BIT(5)
+
 #define MODE2_INVRT		BIT(4)
 #define MODE2_OUTDRV		BIT(2)
 
@@ -131,6 +133,19 @@ static int pca9685_write_reg(struct pwm_chip *chip, unsigned int reg, unsigned i
 	return err;
 }
 
+static int pca9685_write_4reg(struct pwm_chip *chip, unsigned int reg, u8 val[4])
+{
+	struct pca9685 *pca = to_pca(chip);
+	struct device *dev = pwmchip_parent(chip);
+	int err;
+
+	err = regmap_bulk_write(pca->regmap, reg, val, 4);
+	if (err)
+		dev_err(dev, "regmap_write to register 0x%x failed: %pe\n", reg, ERR_PTR(err));
+
+	return err;
+}
+
 /* Helper function to set the duty cycle ratio to duty/4096 (e.g. duty=2048 -> 50%) */
 static void pca9685_pwm_set_duty(struct pwm_chip *chip, int channel, unsigned int duty)
 {
@@ -143,12 +158,10 @@ static void pca9685_pwm_set_duty(struct pwm_chip *chip, int channel, unsigned in
 		return;
 	} else if (duty >= PCA9685_COUNTER_RANGE) {
 		/* Set the full ON bit and clear the full OFF bit */
-		pca9685_write_reg(chip, REG_ON_H(channel), LED_FULL);
-		pca9685_write_reg(chip, REG_OFF_H(channel), 0);
+		pca9685_write_4reg(chip, REG_ON_L(channel), (u8[4]){ 0, LED_FULL, 0, 0 });
 		return;
 	}
 
-
 	if (pwm->state.usage_power && channel < PCA9685_MAXCHAN) {
 		/*
 		 * If usage_power is set, the pca9685 driver will phase shift
@@ -163,12 +176,9 @@ static void pca9685_pwm_set_duty(struct pwm_chip *chip, int channel, unsigned in
 
 	off = (on + duty) % PCA9685_COUNTER_RANGE;
 
-	/* Set ON time (clears full ON bit) */
-	pca9685_write_reg(chip, REG_ON_L(channel), on & 0xff);
-	pca9685_write_reg(chip, REG_ON_H(channel), (on >> 8) & 0xf);
-	/* Set OFF time (clears full OFF bit) */
-	pca9685_write_reg(chip, REG_OFF_L(channel), off & 0xff);
-	pca9685_write_reg(chip, REG_OFF_H(channel), (off >> 8) & 0xf);
+	/* implicitly clear full ON and full OFF bit */
+	pca9685_write_4reg(chip, REG_ON_L(channel),
+			   (u8[4]){ on & 0xff, (on >> 8) & 0xf, off & 0xff, (off >> 8) & 0xf });
 }
 
 static unsigned int pca9685_pwm_get_duty(struct pwm_chip *chip, int channel)
@@ -544,9 +554,8 @@ static int pca9685_pwm_probe(struct i2c_client *client)
 
 	mutex_init(&pca->lock);
 
-	ret = pca9685_read_reg(chip, PCA9685_MODE2, &reg);
-	if (ret)
-		return ret;
+	/* clear MODE2_OCH */
+	reg = 0;
 
 	if (device_property_read_bool(&client->dev, "invert"))
 		reg |= MODE2_INVRT;
@@ -562,16 +571,19 @@ static int pca9685_pwm_probe(struct i2c_client *client)
 	if (ret)
 		return ret;
 
-	/* Disable all LED ALLCALL and SUBx addresses to avoid bus collisions */
+	/*
+	 * Disable all LED ALLCALL and SUBx addresses to avoid bus collisions,
+	 * enable Auto-Increment.
+	 */
 	pca9685_read_reg(chip, PCA9685_MODE1, &reg);
 	reg &= ~(MODE1_ALLCALL | MODE1_SUB1 | MODE1_SUB2 | MODE1_SUB3);
+	reg |= MODE1_AI;
 	pca9685_write_reg(chip, PCA9685_MODE1, reg);
 
 	/* Reset OFF/ON registers to POR default */
-	pca9685_write_reg(chip, PCA9685_ALL_LED_OFF_L, 0);
-	pca9685_write_reg(chip, PCA9685_ALL_LED_OFF_H, LED_FULL);
-	pca9685_write_reg(chip, PCA9685_ALL_LED_ON_L, 0);
-	pca9685_write_reg(chip, PCA9685_ALL_LED_ON_H, LED_FULL);
+	ret = pca9685_write_4reg(chip, PCA9685_ALL_LED_ON_L, (u8[]){ 0, LED_FULL, 0, LED_FULL });
+	if (ret < 0)
+		return dev_err_probe(&client->dev, ret, "Failed to reset ON/OFF registers\n");
 
 	chip->ops = &pca9685_pwm_ops;
 
-- 
2.51.0


  parent reply	other threads:[~2025-10-09 16:01 UTC|newest]

Thread overview: 131+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-09 15:54 [PATCH AUTOSEL 6.17-6.6] hwmon: (k10temp) Add device ID for Strix Halo Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.12] clocksource/drivers/timer-rtl-otto: Work around dying timers Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.12] mfd: intel-lpss: Add Intel Wildcat Lake LPSS PCI IDs Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.4] bpf: Don't use %pK through printk Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.16] mfd: qnap-mcu: Handle errors returned from qnap_mcu_write Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.15] ACPI: scan: Add Intel CVS ACPI HIDs to acpi_ignore_dep_ids[] Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.1] bpftool: Fix -Wuninitialized-const-pointer warnings with clang >= 21 Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.12] bpf: Use tnums for JEQ/JNE is_branch_taken logic Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.12] soc: apple: mailbox: Add Apple A11 and T2 mailbox support Sasha Levin
2025-10-10  2:22   ` Nick Chan
2025-11-04  0:22     ` Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.4] ACPICA: dispatcher: Use acpi_ds_clear_operands() in acpi_ds_call_control_method() Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.12] soc: sunxi: sram: add entry for a523 Sasha Levin
2025-10-09 16:38   ` Andre Przywara
2025-11-04  0:22     ` Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.10] pinctrl: single: fix bias pull up/down handling in pin_config_set Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.16] mmc: sdhci: Disable SD card clock before changing parameters Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.4] tee: allow a driver to allocate a tee_device without a pool Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.15] nvmet-fc: avoid scheduling association deletion twice Sasha Levin
2025-10-10  7:39   ` Daniel Wagner
2025-11-04  0:26     ` Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.16] soc: ti: k3-socinfo: Add information for AM62L SR1.1 Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.10] cpuidle: Fail cpuidle device registration if there is one already Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.12] firewire: ohci: move self_id_complete tracepoint after validating register Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.16] pinctrl: renesas: rzg2l: Add suspend/resume support for Schmitt control registers Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.4] arc: Fix __fls() const-foldability via __builtin_clzl() Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17] io_uring/zcrx: check all niovs filled with dma addresses Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.16] selftests/bpf: Fix incorrect array size calculation Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.6] blk-cgroup: fix possible deadlock while configuring policy Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.12] selftests/bpf: Fix selftest verifier_arena_large failure Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.12] ACPI: sysfs: Use ACPI_FREE() for freeing an ACPI object Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.15] power: supply: sbs-charger: Support multiple devices Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.12] thermal: intel: selftests: workload_hint: Mask unsupported types Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.4] memstick: Add timeout to prevent indefinite waiting Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.15] ACPI: PRM: Skip handlers with NULL handler_address or NULL VA Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.1] spi: rpc-if: Add resume support for RZ/G3E Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-5.10] soc/tegra: fuse: Add Tegra114 nvmem cells and fuse lookups Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.16] rust: kunit: allow `cfg` on `test`s Sasha Levin
2025-10-09 15:54 ` [PATCH AUTOSEL 6.17-6.6] power: supply: qcom_battmgr: handle charging state change notifications Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] mfd: qnap-mcu: Include linux/types.h in qnap-mcu.h shared header Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] hwmon: (dell-smm) Remove Dell Precision 490 custom config data Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17] kunit: Enable PCI on UML without triggering WARN() Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] selftests: ublk: fix behavior when fio is not installed Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] i3c: dw: Add shutdown support to dw_i3c_master driver Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.1] bpf: Clear pfmemalloc flag when freeing all fragments Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17] mfd: macsmc: Add "apple,t8103-smc" compatible Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.1] nvme: Use non zero KATO for persistent discovery connections Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.6] power: supply: qcom_battmgr: add OOI chemistry Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] io_uring/zctx: check chained notif contexts Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.10] tools/power x86_energy_perf_policy: Fix incorrect fopen mode usage Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] uprobe: Do not emulate/sstep original instruction when ip is changed Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] tools/power x86_energy_perf_policy: Enhance HWP enable Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.15] tools/cpupower: fix error return value in cpupower_write_sysfs() Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] selftests/bpf: Fix bpf_prog_detach2 usage in test_lirc_mode2 Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] firmware: qcom: tzmem: disable sc7180 platform Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17] kselftest/arm64: tpidr2: Switch to waitpid() over wait4() Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] mfd: core: Increment of_node's refcount before linking it to the platform device Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] mfd: stmpe: Remove IRQ domain upon removal Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] soc: qcom: smem: Fix endian-unaware access of num_entries Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] cpufreq/longhaul: handle NULL policy in longhaul_exit Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] spi: loopback-test: Don't use %pK through printk Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] selftests/bpf: Fix flaky bpf_cookie selftest Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17] selftests: drv-net: Pull data before parsing headers Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] firmware: ti_sci: Enable abort handling of entry to LPM Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.15] soc: aspeed: socinfo: Add AST27xx silicon IDs Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] pinctrl: qcom: make the pinmuxing strict Sasha Levin
2025-10-09 16:08   ` Konrad Dybcio
2025-11-04  0:28     ` Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] libbpf: Fix USDT SIB argument handling causing unrecognized register error Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.1] irqchip/loongson-pch-lpc: Use legacy domain for PCH-LPC IRQ controller Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.6] arm64: zynqmp: Revert usb node drive strength and slew rate for zcu106 Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] bpftool: Add CET-aware symbol matching for x86_64 architectures Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] firmware: qcom: scm: Allow QSEECOM on Dell Inspiron 7441 / Latitude 7455 Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.10] mfd: da9063: Split chip variant reading in two bus transactions Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] tools/cpupower: Fix incorrect size in cpuidle_state_disable() Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] io_uring/rsrc: respect submitter_task in io_register_clone_buffers() Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17] pmdomain: thead: create auxiliary device for rebooting Sasha Levin
2025-10-09 16:02   ` Icenowy Zheng
2025-11-04  0:28     ` Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] spi: spi-qpic-snand: handle 'use_ecc' parameter of qcom_spi_config_cw_read() Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] cpufreq: ondemand: Update the efficient idle check for Intel extended Families Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] firmware: qcom: scm: preserve assign_mem() error return value Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] i3c: mipi-i3c-hci-pci: Add support for Intel Wildcat Lake-U I3C Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.6] bpf: Do not limit bpf_cgroup_from_id to current's namespace Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] arm64: zynqmp: Disable coresight by default Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] mfd: madera: Work around false-positive -Wininitialized warning Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.6] ARM: tegra: transformer-20: add missing magnetometer interrupt Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] tools/power x86_energy_perf_policy: Prefer driver HWP limits Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] selftests/futex: Fix futex_wait() for 32bit ARM Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] tools/power turbostat: Fix incorrect sorting of PMT telemetry Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] io_uring/zcrx: account niov arrays to cgroup Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.15] hwmon: (sbtsi_temp) AMD CPU extended temperature range support Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] ACPI: video: force native for Lenovo 82K8 Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] irqchip/loongson-eiointc: Route interrupt parsed from bios table Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.12] cpufreq: ti: Add support for AM62D2 Sasha Levin
2025-10-13  3:49   ` Paresh Bhagat
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] mfd: cs42l43: Move IRQ enable/disable to encompass force suspend Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.1] selftests/bpf: Upon failures, exit with code 1 in test_xsk.sh Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.1] irqchip/sifive-plic: Respect mask state when setting affinity Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.6] pmdomain: apple: Add "apple,t8103-pmgr-pwrstate" Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] video: backlight: lp855x_bl: Set correct EPROM start for LP8556 Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-5.4] clocksource/drivers/vf-pit: Replace raw_readl/writel to readl/writel Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.16] selftests/bpf: Fix arena_spin_lock selftest failure Sasha Levin
2025-10-09 15:55 ` [PATCH AUTOSEL 6.17-6.6] pinctrl: keembay: release allocated memory in detach path Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.12] mfd: kempld: Switch back to earlier ->init() behavior Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.6] ARM: tegra: transformer-20: fix audio-codec interrupt Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.12] ARM: tegra: p880: set correct touchscreen clipping Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.12] ACPI: resource: Skip IRQ override on ASUS Vivobook Pro N6506CU Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.16] block: check for valid bio while splitting Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.16] arm64: versal-net: Update rtc calibration value Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.12] thermal: gov_step_wise: Allow cooling level to be reduced earlier Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-5.10] nvme-fc: use lock accessing port_state and rport state Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-5.4] mfd: si476x: Add GPIOLIB_LEGACY dependency Sasha Levin
2025-10-09 16:03   ` Arnd Bergmann
2025-11-04  0:30     ` Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-5.10] soc: ti: pruss: don't use %pK through printk Sasha Levin
2025-10-09 15:56 ` Sasha Levin [this message]
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.6] hwmon: (k10temp) Add thermal support for AMD Family 1Ah-based models Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-5.4] mfd: stmpe-i2c: Add missing MODULE_LICENSE Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.12] ACPI: SPCR: Support Precise Baud Rate field Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-5.4] mmc: sdhci-msm: Enable tuning for SDR50 mode for SD card Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.12] clocksource/drivers/timer-rtl-otto: Do not interfere with interrupts Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.6] riscv: bpf: Fix uninitialized symbol 'retval_off' Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-5.4] irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-5.4] hwmon: (dell-smm) Add support for Dell OptiPlex 7040 Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.12] hwmon: (lenovo-ec-sensors) Update P8 supprt Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-5.4] mmc: host: renesas_sdhi: Fix the actual clock Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.1] hwmon: sy7636a: add alias Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.1] futex: Don't leak robust_list pointer on exec race Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.16] mfd: simple-mfd-i2c: Add compatible strings for Layerscape QIXIS FPGA Sasha Levin
2025-10-09 15:56 ` [PATCH AUTOSEL 6.17-6.1] hwmon: (asus-ec-sensors) increase timeout for locking ACPI mutex Sasha Levin

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=20251009155752.773732-104-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --cc=u.kleine-koenig@baylibre.com \
    --cc=ukleinek@kernel.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;
as well as URLs for NNTP newsgroup(s).