]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 16 Aug 2025 05:46:15 +0000 (07:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 16 Aug 2025 05:46:15 +0000 (07:46 +0200)
added patches:
mfd-cros_ec-separate-charge-control-probing-from-usb-pd.patch

queue-6.15/mfd-cros_ec-separate-charge-control-probing-from-usb-pd.patch [new file with mode: 0644]
queue-6.15/series

diff --git a/queue-6.15/mfd-cros_ec-separate-charge-control-probing-from-usb-pd.patch b/queue-6.15/mfd-cros_ec-separate-charge-control-probing-from-usb-pd.patch
new file mode 100644 (file)
index 0000000..c07dd78
--- /dev/null
@@ -0,0 +1,71 @@
+From e40fc1160d491c3bcaf8e940ae0dde0a7c5e8e14 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <linux@weissschuh.net>
+Date: Wed, 21 May 2025 16:42:51 +0200
+Subject: mfd: cros_ec: Separate charge-control probing from USB-PD
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Thomas Weißschuh <linux@weissschuh.net>
+
+commit e40fc1160d491c3bcaf8e940ae0dde0a7c5e8e14 upstream.
+
+The charge-control subsystem in the ChromeOS EC is not strictly tied to
+its USB-PD subsystem.
+
+Since commit 7613bc0d116a ("mfd: cros_ec: Don't load charger with UCSI")
+the presence of EC_FEATURE_UCSI_PPM would inhibit the probing of the
+charge-control driver.
+
+Furthermore recent versions of the EC firmware in Framework laptops
+hard-disable EC_FEATURE_USB_PD to avoid probing cros-usbpd-charger,
+which then also breaks cros-charge-control.
+
+Instead use the dedicated EC_FEATURE_CHARGER.
+
+Cc: stable@vger.kernel.org
+Link: https://github.com/FrameworkComputer/EmbeddedController/commit/1d7bcf1d50137c8c01969eb65880bc83e424597e
+Fixes: 555b5fcdb844 ("mfd: cros_ec: Register charge control subdevice")
+Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
+Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
+Tested-by: Tom Vincent <linux@tlvince.com>
+Link: https://lore.kernel.org/r/20250521-cros-ec-mfd-chctl-probe-v1-1-6ebfe3a6efa7@weissschuh.net
+Signed-off-by: Lee Jones <lee@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/mfd/cros_ec_dev.c |   10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+--- a/drivers/mfd/cros_ec_dev.c
++++ b/drivers/mfd/cros_ec_dev.c
+@@ -87,7 +87,6 @@ static const struct mfd_cell cros_ec_sen
+ };
+ static const struct mfd_cell cros_usbpd_charger_cells[] = {
+-      { .name = "cros-charge-control", },
+       { .name = "cros-usbpd-charger", },
+       { .name = "cros-usbpd-logger", },
+ };
+@@ -112,6 +111,10 @@ static const struct mfd_cell cros_ec_ucs
+       { .name = "cros_ec_ucsi", },
+ };
++static const struct mfd_cell cros_ec_charge_control_cells[] = {
++      { .name = "cros-charge-control", },
++};
++
+ static const struct cros_feature_to_cells cros_subdevices[] = {
+       {
+               .id             = EC_FEATURE_CEC,
+@@ -148,6 +151,11 @@ static const struct cros_feature_to_cell
+               .mfd_cells      = cros_ec_keyboard_leds_cells,
+               .num_cells      = ARRAY_SIZE(cros_ec_keyboard_leds_cells),
+       },
++      {
++              .id             = EC_FEATURE_CHARGER,
++              .mfd_cells      = cros_ec_charge_control_cells,
++              .num_cells      = ARRAY_SIZE(cros_ec_charge_control_cells),
++      },
+ };
+ static const struct mfd_cell cros_ec_platform_cells[] = {
index baf32c10e42f3428d8423637f44649a9bb2c5d22..2f0e67372d764cd3f3d3ed68fb3974f67235fae3 100644 (file)
@@ -49,3 +49,4 @@ pci-acpi-fix-runtime-pm-ref-imbalance-on-hot-plug-capable-ports.patch
 acpi-processor-perflib-move-problematic-pr-performance-check.patch
 block-make-req_op_zone_finish-a-write-operation.patch
 mm-memory-tier-fix-abstract-distance-calculation-overflow.patch
+mfd-cros_ec-separate-charge-control-probing-from-usb-pd.patch