Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected], [email protected]
Control: affects -1 + src:asahi-scripts
User: [email protected]
Usertags: pu

[ Reason ]
This update fixes bug #1128108. The bug was apparently always present
(see the bug's 'forwarded' link), but was never reported in Debian.
Now we received multiple reports. The bug was already fixed upstream.

[ Impact ]
The kernel panics at startup reproducibly (but intermittently) on some
Apple Silicon laptops due to a race between enabling auto suspend of
the SD card reader and loading the sdhci_pci driver.

[ Tests ]
The fix has been in testing for one month, where one of the reporters
tested it successfully, and it was tested by another reporters in trixie,
again with success.

[ Risks ]
Virtually none. The fix just disables auto suspend of the SD card reader.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
The fix is to disable auto suspend for the specific model of SD card reader
present on Apple Silicon machines, only on these machines. Apparently, auto
suspend is not supported anyway. In practice, this update adds an udev hwdb
override file [1] to the package.

[ Other info ]
asahi-scripts is a required package on all Apple Silicon machines (installed
by the asahi-platform-core metapackage).


[1] /usr/lib/udev/hwdb.d/65-autosuspend-override-asahi-sdhci.hwdb
diff -Nru asahi-scripts-20250130/debian/changelog 
asahi-scripts-20250130/debian/changelog
--- asahi-scripts-20250130/debian/changelog     2025-11-01 19:48:50.000000000 
+0100
+++ asahi-scripts-20250130/debian/changelog     2026-02-16 00:05:13.000000000 
+0100
@@ -1,3 +1,11 @@
+asahi-scripts (20250130-3+deb13u2) trixie; urgency=medium
+
+  * Team upload.
+  * Backport "Install hwdb file to override auto suspend on
+    GL9755 SD card reader" (Closes: #1128108)
+
+ -- NoisyCoil <[email protected]>  Mon, 16 Feb 2026 00:05:13 +0100
+
 asahi-scripts (20250130-3+deb13u1) trixie; urgency=medium
 
   * Team upload.
diff -Nru 
asahi-scripts-20250130/debian/patches/0000-Backport-install-hwdb-sd-card-autosuspend-override.patch
 
asahi-scripts-20250130/debian/patches/0000-Backport-install-hwdb-sd-card-autosuspend-override.patch
--- 
asahi-scripts-20250130/debian/patches/0000-Backport-install-hwdb-sd-card-autosuspend-override.patch
 1970-01-01 01:00:00.000000000 +0100
+++ 
asahi-scripts-20250130/debian/patches/0000-Backport-install-hwdb-sd-card-autosuspend-override.patch
 2026-02-12 21:47:53.000000000 +0100
@@ -0,0 +1,88 @@
+From: Janne Grunau <[email protected]>
+Date: Sun, 30 Mar 2025 10:01:40 +0200
+Subject: Install hwdb file to override auto suspend on GL9755 SD card reader
+
+systemd v255 shipped a hwdb update enabling auto suspend (runtime PM)
+for the SD card reader Apple uses in 14- and 16-inch Macbook Pros and
+Mac Studios
+(https://github.com/systemd/systemd/commit/2f72e94984fc2994ab2705e384f92e15cc026264).
+This PCI ID is imported from ChromiumOS. The driver in upstream Linux
+does not support runtime PM so this change is questionable to useless.
+Unfortunately it creates a race between enabling auto suspend and probing
+the sdhci_pci driver. If the default idle timeout (2000 ms) triggers
+before the driver is bound the default PCI device runtime suspend
+callback will be called. On Apple silicon devices the GL9755 card
+reader is inaccessible after it is resumed for the driver's probe
+function. Accessing the device's BAR results in a SError with
+ESR = 0x92000018.
+It's not entirely clear whether which is an issue with the device or
+with Apple silicon's PCIe implementation or Linux driver.
+
+Signed-off-by: Janne Grunau <[email protected]>
+---
+ Makefile                                             | 18 +++++++++++++-----
+ udev/hwdb.d/65-autosuspend-override-asahi-sdhci.hwdb |  2 ++
+ 2 files changed, 15 insertions(+), 5 deletions(-)
+ create mode 100644 udev/hwdb.d/65-autosuspend-override-asahi-sdhci.hwdb
+
+diff --git a/Makefile b/Makefile
+index fa032a5..48a9095 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,6 +10,7 @@ DRACUT_CONF_DIR=$(PREFIX)/lib/dracut/dracut.conf.d
+ DRACUT_MODULES_DIR=$(PREFIX)/lib/dracut/modules.d
+ SYSTEMD_UNIT_DIR=$(PREFIX)/lib/systemd/system
+ UDEV_RULES_DIR=$(PREFIX)/lib/udev/rules.d
++UDEV_HWDB_DIR=$(PREFIX)/lib/udev/hwdb.d
+ BUILD_SCRIPTS=$(addprefix build/,$(SCRIPTS))
+ BUILD_ARCH_SCRIPTS=$(addprefix build/,$(ARCH_SCRIPTS))
+ 
+@@ -54,7 +55,11 @@ install-macsmc-battery: install
+       install -m0755 -t $(DESTDIR)$(SYSTEMD_UNIT_DIR) 
macsmc-battery/systemd/macsmc-battery-charge-control-end-threshold.service
+       install -m0644 -t $(DESTDIR)$(UDEV_RULES_DIR) 
macsmc-battery/udev/93-macsmc-battery-charge-control.rules
+ 
+-install-arch: install install-mkinitcpio install-macsmc-battery
++install-udev-hwdb: install
++      install -dD $(DESTDIR)$(UDEV_HWDB_DIR)
++      install -m0644 -t $(DESTDIR)$(UDEV_HWDB_DIR) 
udev/hwdb.d/65-autosuspend-override-asahi-sdhci.hwdb
++
++install-arch: install install-mkinitcpio install-macsmc-battery 
install-udev-hwdb
+       install -m0755 -t $(DESTDIR)$(BIN_DIR)/ $(BUILD_ARCH_SCRIPTS)
+       install -dD $(DESTDIR)$(PREFIX)/lib/systemd/system
+       install -dD 
$(DESTDIR)$(PREFIX)/lib/systemd/system/{multi-user,sysinit}.target.wants
+@@ -64,7 +69,7 @@ install-arch: install install-mkinitcpio 
install-macsmc-battery
+       install -dD $(DESTDIR)$(PREFIX)/share/libalpm/hooks
+       install -m0644 -t $(DESTDIR)$(PREFIX)/share/libalpm/hooks 
libalpm/hooks/95-m1n1-install.hook
+ 
+-install-fedora: install install-dracut install-macsmc-battery
++install-fedora: install install-dracut install-macsmc-battery 
install-udev-hwdb
+ 
+ uninstall:
+       rm -f $(addprefix $(DESTDIR)$(BIN_DIR)/,$(SCRIPTS))
+@@ -82,12 +87,15 @@ uninstall-macsmc-battery:
+       rm -f 
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/macsmc-battery-charge-control-end-threshold.service
+       rm -f $(DESTDIR)$(UDEV_RULES_DIR)/93-macsmc-battery-charge-control.rules
+ 
+-uninstall-arch: uninstall-mkinitcpio uninstall-macsmc-battery
++uninstall-udev-hwdb:
++      rm -f 
$(DESTDIR)$(UDEV_HWDB_DIR)/65-autosuspend-override-asahi-sdhci.hwdb
++
++uninstall-arch: uninstall-mkinitcpio uninstall-macsmc-battery 
uninstall-udev-hwdb
+       rm -f $(addprefix $(DESTDIR)$(BIN_DIR)/,$(ARCH_SCRIPTS))
+       rm -f $(addprefix $(DESTDIR)$(PREFIX)/lib/systemd/system/,$(UNITS))
+       rm -f $(addprefix 
$(DESTDIR)$(PREFIX)/lib/systemd/system/multi-user.target.wants/,$(MULTI_USER_WANTS))
+       rm -f $(DESTDIR)$(PREFIX)/share/libalpm/hooks/95-m1n1-install.hook
+ 
+-uninstall-fedora: uninstall-dracut uninstall-macsmc-battery
++uninstall-fedora: uninstall-dracut uninstall-macsmc-battery 
uninstall-udev-hwdb
+ 
+-.PHONY: clean install install-mkinitcpio install-dracut install-arch 
install-fedora uninstall uninstall-mkinitcpio uninstall-dracut uninstall-arch 
uninstall-fedora
++.PHONY: clean install install-mkinitcpio install-dracut install-udev-hwdb 
install-arch install-fedora uninstall uninstall-mkinitcpio uninstall-dracut 
uninstall-udev-hwdb uninstall-arch uninstall-fedora
+diff --git a/udev/hwdb.d/65-autosuspend-override-asahi-sdhci.hwdb 
b/udev/hwdb.d/65-autosuspend-override-asahi-sdhci.hwdb
+new file mode 100644
+index 0000000..46b7dc4
+--- /dev/null
++++ b/udev/hwdb.d/65-autosuspend-override-asahi-sdhci.hwdb
+@@ -0,0 +1,2 @@
++pci:v000017A0d00009755*
++ ID_AUTOSUSPEND=0
diff -Nru 
asahi-scripts-20250130/debian/patches/0001-debian-add-install-debian-target.patch
 
asahi-scripts-20250130/debian/patches/0001-debian-add-install-debian-target.patch
--- 
asahi-scripts-20250130/debian/patches/0001-debian-add-install-debian-target.patch
   2025-11-01 19:48:27.000000000 +0100
+++ 
asahi-scripts-20250130/debian/patches/0001-debian-add-install-debian-target.patch
   2026-02-12 22:13:10.000000000 +0100
@@ -9,7 +9,7 @@
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index 29ec9a3..4154265 100644
+index 48a9095..a00820d 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -1,4 +1,4 @@
@@ -18,11 +18,11 @@
  SYS_PREFIX=$(PREFIX)
  CONFIG_DIR=/etc/default
  BIN_DIR=$(PREFIX)/bin
-@@ -67,6 +67,8 @@ install-arch: install install-mkinitcpio 
install-macsmc-battery
+@@ -71,6 +71,8 @@ install-arch: install install-mkinitcpio 
install-macsmc-battery install-udev-hwd
  
- install-fedora: install install-dracut install-macsmc-battery
+ install-fedora: install install-dracut install-macsmc-battery 
install-udev-hwdb
  
-+install-debian: install install-macsmc-battery
++install-debian: install install-macsmc-battery install-udev-hwdb
 +
  uninstall:
        rm -f $(addprefix $(DESTDIR)$(BIN_DIR)/,$(SCRIPTS))
diff -Nru 
asahi-scripts-20250130/debian/patches/0003-debian-Add-initramfs-tools-implementation-for-cpio-f.patch
 
asahi-scripts-20250130/debian/patches/0003-debian-Add-initramfs-tools-implementation-for-cpio-f.patch
--- 
asahi-scripts-20250130/debian/patches/0003-debian-Add-initramfs-tools-implementation-for-cpio-f.patch
       2025-11-01 19:48:38.000000000 +0100
+++ 
asahi-scripts-20250130/debian/patches/0003-debian-Add-initramfs-tools-implementation-for-cpio-f.patch
       2026-02-12 22:13:54.000000000 +0100
@@ -22,12 +22,12 @@
  create mode 100644 initramfs/scripts/init-top/asahi
 
 diff --git a/Makefile b/Makefile
-index aca6667..3d9b04e 100644
+index a00820d..24fbcb6 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -54,6 +54,19 @@ install-macsmc-battery: install
-       install -m0755 -t $(DESTDIR)$(SYSTEMD_UNIT_DIR) 
macsmc-battery/systemd/macsmc-battery-charge-control-end-threshold.service
-       install -m0644 -t $(DESTDIR)$(UDEV_RULES_DIR) 
macsmc-battery/udev/93-macsmc-battery-charge-control.rules
+@@ -59,6 +59,19 @@ install-udev-hwdb: install
+       install -dD $(DESTDIR)$(UDEV_HWDB_DIR)
+       install -m0644 -t $(DESTDIR)$(UDEV_HWDB_DIR) 
udev/hwdb.d/65-autosuspend-override-asahi-sdhci.hwdb
  
 +install-initramfs: install
 +      install -d $(DESTDIR)/etc/kernel/postinst.d/
@@ -42,15 +42,15 @@
 +      install -m0755 -t 
$(DESTDIR)$(PREFIX)/share/initramfs-tools/scripts/init-bottom 
initramfs/scripts/init-bottom/asahi
 +      install -m0644 -t $(DESTDIR)$(PREFIX)/share/asahi-scripts 
initramfs/modules
 +
- install-arch: install install-mkinitcpio install-macsmc-battery
+ install-arch: install install-mkinitcpio install-macsmc-battery 
install-udev-hwdb
        install -m0755 -t $(DESTDIR)$(BIN_DIR)/ $(BUILD_ARCH_SCRIPTS)
        install -dD $(DESTDIR)$(PREFIX)/lib/systemd/system
-@@ -66,7 +79,7 @@ install-arch: install install-mkinitcpio 
install-macsmc-battery
+@@ -71,7 +84,7 @@ install-arch: install install-mkinitcpio 
install-macsmc-battery install-udev-hwd
  
- install-fedora: install install-dracut install-macsmc-battery
+ install-fedora: install install-dracut install-macsmc-battery 
install-udev-hwdb
  
--install-debian: install install-macsmc-battery
-+install-debian: install install-macsmc-battery install-initramfs
+-install-debian: install install-macsmc-battery install-udev-hwdb
++install-debian: install install-macsmc-battery install-udev-hwdb 
install-initramfs
  
  uninstall:
        rm -f $(addprefix $(DESTDIR)$(BIN_DIR)/,$(SCRIPTS))
diff -Nru asahi-scripts-20250130/debian/patches/series 
asahi-scripts-20250130/debian/patches/series
--- asahi-scripts-20250130/debian/patches/series        2025-11-01 
19:48:38.000000000 +0100
+++ asahi-scripts-20250130/debian/patches/series        2026-02-12 
21:42:58.000000000 +0100
@@ -1,6 +1,7 @@
 0000-Backport-asahi-diagnose-Fix-macaudio-default-profile.patch
 0000-Backport-asahi-diagnose-drop-tas2764-checks.patch
 0000-Backport-update-m1n1-clobber-boot.bin.old-only-on-changes.patch
+0000-Backport-install-hwdb-sd-card-autosuspend-override.patch
 0001-debian-add-install-debian-target.patch
 0002-debian-Adjust-update-m1n1-for-debian.patch
 0003-debian-Add-initramfs-tools-implementation-for-cpio-f.patch

Reply via email to