Watch
1
0
Fork
You've already forked hp-envy-27-p014-hda
0

evidence: publish HP ENVY HDA records

Source-Sha: df779aa3e2cdb4774c0012b2f4f44791307634c6
Policy-Sha: 4c7fb444a162068e847747dd5a03c057631225e8eb05e44d0e358eae6c4e4266
Tree-Digest: 1c9cc7ba9fa0cdc70bcfa82d4eda9a4dbec0a391b9106858d0f69b944ac7cdb7
This commit is contained in:
Casey Tunturi 2026-09-14 13:44:54 -04:00
commit 4ce9e03773
44 changed files with 51208 additions and 0 deletions

44
SHA256SUMS Normal file
View file

@ -0,0 +1,44 @@
9298a3b6a346d44bf4b390f18598551c72d430ed2c1a17cfa9f13495fd7c5f2e PROVENANCE.md
4a8a551fdd0a835ae1f4d4c3479584ce8e609c2191bf59c776bddd75789477ca alsa-info/2026-09-11.txt
74723b9299b72b659e0b4c3175ebd01d33c2f63382852004cf73bacb58534c51 logs/rebind-markers.log
d6209fafc79f0dfc8880beb90643c4d1c6c7f84013fafe220f66728a79ae79b2 logs/resume-kernel.log
aa30ced89b5f270cb0d2eff78dcda2003ecf8a801aa4ad8ce3c2637fe5ff0224 patches/v1/0001-alsa-hda-intel-reset-link-for-hp-envy-27-p014.patch
837b65e7a33aa51381ca175808afe3660318efce51709d75e1a0189c88ba5bfd results/cold-boot-negative/O-to-no-probe-reset.diff
070c4d8ce661d74258b957cc704fa902b031a5dc12bdc5c0546a50d955413aff results/cold-boot-negative/cold-boot.log
040a3fc252efd4d06ec48ffd1b37a003f9c30abdad5f41a487108d23ac1fe647 results/cold-boot-negative/identity.sha256
639583b5688a72e296f43896304077145344642c96e5f3fc1535fcf6e684cdb0 results/cold-boot-negative/intel.c
95d8c07fc4c8ad18fdeb822e11f3fd778ede7287c90a6f4dacb50ee7a5420de9 results/power-save-denylist/K-to-power-save-denylist.diff
79f38379874131e1a84b08a9b98321477d15d65882df981af84fcba4aacd6e67 results/power-save-denylist/identity.sha256
89499ba5c65405f69c535c131b8daa00dbd9d47460b868f7a102fda5c9780fc7 results/power-save-denylist/intel.c
9e0bf1362b3c8bca8770c4f9bcfd64e22578d66836c31fee28833505f8493ef4 results/power-save-denylist/probe.log
2d25c08fa6484cad70e4761d702ca10ea46aad58126f425b67c468dbea199126 results/power-save-denylist/s3-matched.log
7de9988519bf0efeaae9a3ff02af6041b3536b0ab7f55abb57076d4c1c7a8af5 results/power-save-denylist/s3-short.log
5f7200e8565bd20600e54034f3129d1bc1dbd20967dea4771694c2dcf9ac4595 results/resume-reset-negative/denylist-to-no-resume-reset.diff
e1a45f8e4c9154e681d10b3cf7e54f4e657d32660e2dc978b094224e757a1939 results/resume-reset-negative/identity.sha256
5244dc9bddba5deb05ef628485b4d84b6fec9098137c20a8a1f388b3677853cf results/resume-reset-negative/intel.c
9f3b36a04baf25297078309e7c45e64156c8712d7d4312b834f36f0986e8b929 results/resume-reset-negative/s3-control.log
b3b9e8fb1e4a13bd559fb70032bae68b3ea47316324f4b308243639ab7919d93 results/sep11-standard-reset/experiment-probe.log
9381d4922a89f32343eeb32c10a8dc26b85158048aa48d2cc39cb4eb1d654ab0 results/sep11-standard-reset/probe-standard-reset.sh
01bf026ea290b3209cd66321d31303a2f67ece92c052c4a801d4a620fc3a7bc8 results/sep11-standard-reset/restored-K.log
2c95c24e9618ef0acc66911eaa784dce24b3753d7b16423f9be5fda5bd3efd12 results/sep11-standard-reset/standard-reset.patch
f458f487b4dc7da5e4e36ffa96912cb1fb7a58a4af1928552ad95e1044c408e7 results/temporary-pio-negative/alternating.log
181c45174c2e9d2e8e92ff7fe0ed17a8c3f18a15beea791a277a3b08d53766cc results/temporary-pio-negative/cold-boot.log
37ea08c0ca68bb8895c63b16bfef6283cf7d11c09aed7ee685461c5c594941d1 results/temporary-pio-negative/denylist-to-no-pio.diff
cbd05f16167f8fc939cf543f711daddb98463947ddfc83cdc6731cdb6c268969 results/temporary-pio-negative/identity.sha256
bb022ee62d5657349f889ff58e6bd2ca88f80e8d832935ab1ce52f8b7b8c5a71 results/temporary-pio-negative/intel.c
5ef0bb717ac44a496d849110768af2f6e1e1c6b816b5905b72fa0810564d04c6 results/temporary-pio-negative/restored-after-negative.log
df73a4a704c55861bc45bc3ebf584ad98062fc297cbd7381a2414010cfebfc45 results/tight-reset-negative/K-to-no-probe-reset.diff
33f6845d3516f469efdbadf519362d786db75da4c5d07ce801b2b7659c863ff2 results/tight-reset-negative/alternating.log
3513e4d8a9fe434e4867e45e86af87f020cb038047a23f7b0c31a9982f33e0eb results/tight-reset-negative/identity.sha256
dcfbdcaddf0a1ec13e7f7c3df5944df806aee87c06bf6d232cb6a2a8153d1c73 results/tight-reset-negative/intel.c
2dd35145df89576f163d92fc1fbf3e84033957d2c5201481de03109ccf8cddcf sources/A-no-rintcnt.intel.c
2f0859440eb4bf803e936df1389a061f51a2f0d8bb6fdb3a4f3990882049dad3 sources/B-no-pci-cycle.intel.c
cb93723c96cb74678c9f6fce3474c8f8ec6174349f7f54dbcfaefac54af298bd sources/C-no-irq-quiesce.intel.c
4b8ac9b30508bc0254a45214598a4b94eb1cd0cfbba964b1de157d6cc68dc304 sources/D-normal-init.intel.c
9eb9bcd4331788b3e44c9dec227bd484fb61749786c063b10072c9655c4e4438 sources/E-pio-bringup-only.intel.c
3c4cd470eb35fd611653c5dc5a74d8332e04f96c17e8f1a09c5c16c7386c9eba sources/F-rearm-gate.intel.c
c294f87f2e74084f9f5c14e22c8e0368ae8f4a4e0e474b50adc458ce7bcb088d sources/G-no-gate-clear.intel.c
5c49d059e780b8c1366b3fdf8be24280f25230003b4b900313c82a55ace63f90 sources/H-no-kickstart.intel.c
308110130a013b8e6968a63484f574ca4430b6176d2151da0f4236ebf4d45a7d sources/I-normal-probe.intel.c
037d2b2f5ec835fb3ecfc8f9172b05e3cca040d169172158e9506effb466d120 sources/J-resume-reset-corb.intel.c
f3e6689e6a3e9d9ada8a69ac71c3ab6aac2fd100b461f6cafbd92fd97c690fe6 sources/K-upstream-cut.intel.c

1587
alsa-info/2026-09-11.txt Normal file

File diff suppressed because it is too large Load diff

14
logs/rebind-markers.log Normal file
View file

@ -0,0 +1,14 @@
2026-08-28T10:36:51.417861-04:00 fedora hp27-audit[13093]: A-no-rintcnt start
2026-08-28T10:37:30.092451-04:00 fedora hp27-audit[13544]: A-no-rintcnt pass 10/10
2026-08-28T10:39:03.925778-04:00 fedora hp27-audit[13959]: B-no-pci-cycle start
2026-08-28T10:39:39.828097-04:00 fedora hp27-audit[14412]: B-no-pci-cycle pass 10/10
2026-08-28T10:41:06.336948-04:00 fedora hp27-audit[14825]: C-no-irq-quiesce start
2026-08-28T10:41:42.210206-04:00 fedora hp27-audit[15277]: C-no-irq-quiesce pass 10/10
2026-08-28T10:48:52.308247-04:00 fedora hp27-audit[15703]: D-normal-init start
2026-08-28T10:49:28.222976-04:00 fedora hp27-audit[16157]: D-normal-init pass 10/10
2026-08-28T10:51:32.418226-04:00 fedora hp27-audit[16613]: E-pio-bringup-only start
2026-08-28T10:52:08.443772-04:00 fedora hp27-audit[17101]: E-pio-bringup-only pass
2026-08-28T10:57:49.832633-04:00 fedora hp27-audit[17524]: F-rearm-gate start
2026-08-28T10:58:25.815859-04:00 fedora hp27-audit[18007]: F-rearm-gate pass
2026-08-28T11:00:05.642833-04:00 fedora hp27-audit[18419]: G-no-gate-clear start
2026-08-28T11:00:41.554819-04:00 fedora hp27-audit[18871]: G-no-gate-clear pass 10/10

88
logs/resume-kernel.log Normal file
View file

@ -0,0 +1,88 @@
2026-08-28T11:43:52.874379-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T11:55:26.224953-04:00 fedora kernel: PM: suspend devices took 0.167 seconds
2026-08-28T11:55:26.225036-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T11:55:26.225336-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T11:55:26.225631-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T11:55:26.254368-04:00 fedora kernel: PM: suspend exit
2026-08-28T11:55:27.226310-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to polling mode: last cmd=0x00170500
2026-08-28T11:55:28.228299-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: No response from codec, disabling MSI: last cmd=0x00170500
2026-08-28T11:55:29.230306-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to single_cmd mode: last cmd=0x00170500
2026-08-28T14:36:46.767682-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T14:44:49.229947-04:00 fedora kernel: PM: suspend devices took 0.167 seconds
2026-08-28T14:44:49.230010-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T14:44:49.230288-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T14:44:49.232782-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T14:44:49.250891-04:00 fedora kernel: PM: suspend exit
2026-08-28T14:44:50.228818-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to polling mode: last cmd=0x00170500
2026-08-28T14:44:51.230870-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: No response from codec, disabling MSI: last cmd=0x00170500
2026-08-28T14:44:52.232822-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to single_cmd mode: last cmd=0x00170500
2026-08-28T15:27:18.805870-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T15:27:51.300639-04:00 fedora kernel: PM: suspend devices took 0.281 seconds
2026-08-28T15:27:51.300810-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T15:27:51.301197-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T15:27:51.301509-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T15:27:51.303715-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: hp27p014: system-resume reset STATESTS=0x0001 codec_mask=0x5
2026-08-28T15:27:51.319833-04:00 fedora kernel: PM: suspend exit
2026-08-28T15:32:46.425580-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T15:33:00.288220-04:00 fedora kernel: PM: suspend devices took 0.280 seconds
2026-08-28T15:33:00.288301-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T15:33:00.289167-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T15:33:00.290400-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T15:33:00.292638-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: hp27p014: system-resume reset STATESTS=0x0001 codec_mask=0x5
2026-08-28T15:33:00.310732-04:00 fedora kernel: PM: suspend exit
2026-08-28T15:34:02.522592-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T15:34:16.297924-04:00 fedora kernel: PM: suspend devices took 0.284 seconds
2026-08-28T15:34:16.298530-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T15:34:16.298854-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T15:34:16.299232-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T15:34:16.301692-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: hp27p014: system-resume reset STATESTS=0x0001 codec_mask=0x5
2026-08-28T15:34:16.321981-04:00 fedora kernel: PM: suspend exit
2026-08-28T15:34:23.565866-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T15:34:37.299006-04:00 fedora kernel: PM: suspend devices took 0.278 seconds
2026-08-28T15:34:37.299257-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T15:34:37.299733-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T15:34:37.300116-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T15:34:37.302715-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: hp27p014: system-resume reset STATESTS=0x0001 codec_mask=0x5
2026-08-28T15:34:37.315038-04:00 fedora kernel: PM: suspend exit
2026-08-28T15:46:33.662386-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T15:46:47.291051-04:00 fedora kernel: PM: suspend devices took 0.286 seconds
2026-08-28T15:46:47.291389-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T15:46:47.291877-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T15:46:47.292257-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T15:46:47.315083-04:00 fedora kernel: PM: suspend exit
2026-08-28T15:46:54.503954-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T15:47:08.297583-04:00 fedora kernel: PM: suspend devices took 0.290 seconds
2026-08-28T15:47:08.298999-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T15:47:08.300317-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T15:47:08.300630-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T15:47:08.323257-04:00 fedora kernel: PM: suspend exit
2026-08-28T15:47:15.516115-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T15:47:29.289948-04:00 fedora kernel: PM: suspend devices took 0.299 seconds
2026-08-28T15:47:29.290164-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T15:47:29.290518-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T15:47:29.290831-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T15:47:29.309987-04:00 fedora kernel: PM: suspend exit
2026-08-28T15:47:36.469837-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T15:47:50.298059-04:00 fedora kernel: PM: suspend devices took 0.293 seconds
2026-08-28T15:47:50.298119-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T15:47:50.298384-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T15:47:50.298694-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T15:47:50.315043-04:00 fedora kernel: PM: suspend exit
2026-08-28T16:10:34.127529-04:00 fedora kernel: PM: suspend entry (deep)
2026-08-28T16:10:47.296633-04:00 fedora kernel: PM: suspend devices took 0.293 seconds
2026-08-28T16:10:47.296860-04:00 fedora kernel: ACPI: PM: Preparing to enter system sleep state S3
2026-08-28T16:10:47.297560-04:00 fedora kernel: ACPI: PM: Low-level resume complete
2026-08-28T16:10:47.298461-04:00 fedora kernel: ACPI: PM: Waking up from system sleep state S3
2026-08-28T16:10:47.323603-04:00 fedora kernel: PM: suspend exit
2026-09-11T08:45:35.981150-04:00 fedora kernel: input: HDA Intel PCH Dock Line Out as /devices/pci0000:00/0000:00:1f.3/sound/card0/input52
2026-09-11T08:45:35.981203-04:00 fedora kernel: input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input53
2026-09-11T08:46:26.719157-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
2026-09-11T08:46:26.742196-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: hp27-L: reset=0 pm_prepared=0 status=0x0 stopped=0x0 after=0x4 mask=0x4->0x4 gctl=0x1
2026-09-11T08:46:26.742662-04:00 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input54
2026-09-11T08:46:26.742707-04:00 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input55
2026-09-11T08:46:26.742751-04:00 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input56
2026-09-11T08:46:34.730278-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: spurious response 0x233:0x2, last cmd=0x201f0500
2026-09-11T08:46:34.730845-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: spurious response 0x233:0x2, last cmd=0x201f0500
2026-09-11T08:46:35.745219-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to polling mode: last cmd=0x201f0500
2026-09-11T08:46:36.748210-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: No response from codec, disabling MSI: last cmd=0x201f0500
2026-09-11T08:46:37.751294-04:00 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to single_cmd mode: last cmd=0x201f0500

View file

@ -0,0 +1,151 @@
From 041e8d4dd82a6a987797c474856739dd9eb38f01 Mon Sep 17 00:00:00 2001
From: Casey Tunturi <casey@samaritansolutions.net>
Date: Fri, 28 Aug 2026 15:55:43 -0400
Subject: [PATCH] ALSA: hda: intel: reset link for HP ENVY 27-p014
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260828-hp-envy-27-hda-reset-v1-1-718428502580@samaritansolutions.net>
X-Change-ID: 20260828-hp-envy-27-hda-reset-40651087e528
While bringing up audio on an HP ENVY 27-p014, I found that the normal
link reset only discovers the HDMI codec. The CX20753/4 at address 0
appears after a second CRST pulse, with STATESTS left alone and no fixed
delays.
I added that pulse when address 0 is missing, and again before the codecs
resume. Initial setup uses immediate commands long enough to add the
codec, then returns the controller to CORB/RIRB.
That brought analog audio up at boot, and capture kept working through
four deep suspend and resume cycles.
Signed-off-by: Casey Tunturi <casey@samaritansolutions.net>
---
sound/hda/controllers/intel.c | 77 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/sound/hda/controllers/intel.c b/sound/hda/controllers/intel.c
index 24015c73a..0be97a46f 100644
--- a/sound/hda/controllers/intel.c
+++ b/sound/hda/controllers/intel.c
@@ -987,6 +987,46 @@ static bool azx_is_pm_ready(struct snd_card *card)
return true;
}
+static bool hp_envy_27_needs_reset(struct azx *chip)
+{
+ struct pci_dev *pci = chip->pci;
+
+ return pci->subsystem_vendor == 0x103c &&
+ pci->subsystem_device == 0x2b3e;
+}
+
+static u16 hp_envy_27_reset_link(struct azx *chip)
+{
+ struct hdac_bus *bus = azx_bus(chip);
+ u32 gctl;
+ u16 statests;
+ int timeout;
+
+ snd_hdac_bus_stop_chip(bus);
+
+ gctl = snd_hdac_chip_readl(bus, GCTL);
+ snd_hdac_chip_writel(bus, GCTL, gctl & ~AZX_GCTL_RESET);
+ for (timeout = 250; timeout; timeout--) {
+ if (!(snd_hdac_chip_readl(bus, GCTL) & AZX_GCTL_RESET))
+ break;
+ udelay(1);
+ }
+
+ gctl = snd_hdac_chip_readl(bus, GCTL);
+ snd_hdac_chip_writel(bus, GCTL, gctl | AZX_GCTL_RESET);
+ for (timeout = 250; timeout; timeout--) {
+ if (snd_hdac_chip_readl(bus, GCTL) & AZX_GCTL_RESET)
+ break;
+ udelay(1);
+ }
+
+ statests = snd_hdac_chip_readw(bus, STATESTS);
+ bus->codec_mask |= statests;
+ snd_hdac_bus_init_chip(bus, false);
+
+ return statests;
+}
+
static void __azx_runtime_resume(struct azx *chip)
{
struct hda_intel *hda = container_of(chip, struct hda_intel, chip);
@@ -1003,6 +1043,8 @@ static void __azx_runtime_resume(struct azx *chip)
azx_init_pci(chip);
hda_intel_init_chip(chip, true);
+ if (chip->pm_prepared && hp_envy_27_needs_reset(chip))
+ hp_envy_27_reset_link(chip);
/* Avoid codec resume if runtime resume is for system suspend */
if (!chip->pm_prepared) {
@@ -2356,6 +2398,34 @@ static const unsigned int azx_max_codecs[AZX_NUM_DRIVERS] = {
[AZX_DRIVER_TERA] = 1,
};
+static int hp_envy_27_probe_codec(struct azx *chip)
+{
+ struct hdac_bus *bus = azx_bus(chip);
+ struct hda_codec *codec = NULL;
+ bool use_pio;
+ int probe_mask;
+ int err;
+
+ if (!hp_envy_27_needs_reset(chip) || (bus->codec_mask & BIT(0)))
+ return 0;
+ if (!(hp_envy_27_reset_link(chip) & BIT(0)))
+ return -ENODEV;
+
+ probe_mask = chip->codec_probe_mask;
+ use_pio = bus->use_pio_for_commands;
+ chip->codec_probe_mask = BIT(0);
+ bus->use_pio_for_commands = true;
+ err = snd_hda_codec_new(&chip->bus, chip->card, 0, &codec);
+ chip->codec_probe_mask = probe_mask;
+ if (!err && codec)
+ err = snd_hda_codec_configure(codec);
+ else if (!err)
+ err = -ENODEV;
+ bus->use_pio_for_commands = use_pio;
+
+ return err;
+}
+
static int azx_probe_continue(struct azx *chip)
{
struct hda_intel *hda = container_of(chip, struct hda_intel, chip);
@@ -2428,6 +2498,11 @@ static int azx_probe_continue(struct azx *chip)
}
}
+ err = hp_envy_27_probe_codec(chip);
+ if (err < 0 && err != -ENODEV)
+ dev_warn(chip->card->dev,
+ "failed to probe HP ENVY 27 analog codec: %d\n", err);
+
err = snd_card_register(chip->card);
if (err < 0)
goto out_free;
@@ -2444,6 +2519,8 @@ static int azx_probe_continue(struct azx *chip)
pm_runtime_allow(&pci->dev);
pm_runtime_put_autosuspend(&pci->dev);
}
+ if (hp_envy_27_needs_reset(chip))
+ pm_runtime_forbid(&pci->dev);
out_free:
if (err < 0) {
---
base-commit: c4a0927f535f779700d5ccda8182c2db01e9d551
change-id: 20260828-hp-envy-27-hda-reset-40651087e528
Best regards,
--
Casey Tunturi <casey@samaritansolutions.net>

View file

@ -0,0 +1,11 @@
--- O-no-temporary-pio/intel.c
+++ Q-cold-boot-negative/intel.c
@@ -2408,7 +2408,7 @@ static int hp_envy_27_probe_codec(struct azx *chip)
if (!hp_envy_27_needs_reset(chip) || (bus->codec_mask & BIT(0)))
return 0;
- if (!(hp_envy_27_reset_link(chip) & BIT(0)))
+ if (!(snd_hdac_chip_readw(bus, STATESTS) & BIT(0)))
return -ENODEV;
probe_mask = chip->codec_probe_mask;

View file

@ -0,0 +1,24 @@
2026-09-11T16:05:47-04:00
boot_id=fe8090ab-1078-4b36-9cc7-ed162e65074b
Linux fedora 7.1.4-100.fc43.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Jul 18 19:16:31 UTC 2026 x86_64 GNU/Linux
1275d4fd8058c508728bbbdd3c2b65c36614fe9635ea44032ec3601ad731ee13 /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xdf320000 irq 134
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
power_save=1
pci_power_control=auto
pci_runtime_status=suspended
Simple mixer control 'PCM',0
Simple mixer control 'IEC958',0
Simple mixer control 'IEC958',1
Simple mixer control 'IEC958',2
Sep 11 16:01:53 fedora kernel: snd_hda_intel: loading out-of-tree module taints kernel.
Sep 11 16:01:53 fedora kernel: snd_hda_intel: module verification failed: signature and/or required key missing - tainting kernel
Sep 11 16:01:53 fedora kernel: snd_hda_intel 0000:00:1f.3: enabling device (0100 -> 0102)
Sep 11 16:01:54 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 16:01:54 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input30
Sep 11 16:01:54 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input31
Sep 11 16:01:54 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input32
Sep 11 16:01:54 fedora kernel: snd_hda_intel 0000:00:1f.3: device 103c:2b3e is on the power_save denylist, forcing power_save to 0

View file

@ -0,0 +1,2 @@
639583b5688a72e296f43896304077145344642c96e5f3fc1535fcf6e684cdb0 intel.c
1275d4fd8058c508728bbbdd3c2b65c36614fe9635ea44032ec3601ad731ee13 snd-hda-intel.ko

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,20 @@
--- source/resume/K-upstream-cut.intel.c
+++ tests/power-save-denylist/intel.c
@@ -2329,6 +2329,7 @@
* to causes problems on these devices.
*/
static const struct snd_pci_quirk power_save_denylist[] = {
+ SND_PCI_QUIRK(0x103c, 0x2b3e, "HP ENVY 27-p014", 0),
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
SND_PCI_QUIRK(0x1849, 0xc892, "Asrock B85M-ITX", 0),
/* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
@@ -2519,9 +2520,6 @@
pm_runtime_allow(&pci->dev);
pm_runtime_put_autosuspend(&pci->dev);
}
- if (hp_envy_27_needs_reset(chip))
- pm_runtime_forbid(&pci->dev);
-
out_free:
if (err < 0) {
pci_set_drvdata(pci, NULL);

View file

@ -0,0 +1,2 @@
89499ba5c65405f69c535c131b8daa00dbd9d47460b868f7a102fda5c9780fc7 intel.c
6d6d2ba28c071b17af61a0a178f0def6124c85c144d391ca97d4ec4c5606f29e snd-hda-intel.ko

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
timestamp=2026-09-11T14:53:45-04:00
6d6d2ba28c071b17af61a0a178f0def6124c85c144d391ca97d4ec4c5606f29e /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
power_save=1
power_control=auto
runtime_status=active
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xdf320000 irq 134
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
hdaudioC0D0 vendor=0x14f15111 runtime=active
hdaudioC0D2 vendor=0x80862809 runtime=suspended
Sep 11 14:53:40 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: CX20753/4: BIOS auto-probing.
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: autoconfig for CX20753/4: line_outs=1 (0x1d/0x0/0x0/0x0/0x0) type:line
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: speaker_outs=1 (0x17/0x0/0x0/0x0/0x0)
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: hp_outs=1 (0x16/0x0/0x0/0x0/0x0)
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: mono: mono_out=0x0
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: inputs:
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Mic=0x19
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Internal Mic=0x1a
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Line=0x18
Sep 11 14:53:40 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Dock Line=0x1e
Sep 11 14:53:40 fedora kernel: snd_hda_intel 0000:00:1f.3: device 103c:2b3e is on the power_save denylist, forcing power_save to 0

View file

@ -0,0 +1,20 @@
=== PRE 2026-09-11T15:24:29-04:00
6d6d2ba28c071b17af61a0a178f0def6124c85c144d391ca97d4ec4c5606f29e /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
pre_mixer_rc=0
pre_capture_rc=124 bytes=552236
=== POST 2026-09-11T15:31:31-04:00
post_mixer_rc=0
post_capture_rc=124 bytes=936332
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Sep 11 15:24:32 fedora kernel: PM: suspend entry (deep)
Sep 11 15:31:26 fedora kernel: PM: suspend devices took 0.280 seconds
Sep 11 15:31:26 fedora kernel: ACPI: PM: Low-level resume complete
Sep 11 15:31:26 fedora kernel: PM: resume devices took 0.272 seconds
Sep 11 15:31:26 fedora kernel: PM: suspend exit

View file

@ -0,0 +1,13 @@
timestamp=2026-09-11T14:55:46-04:00
6d6d2ba28c071b17af61a0a178f0def6124c85c144d391ca97d4ec4c5606f29e /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
control=auto
controller=active
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Sep 11 14:55:09 fedora kernel: PM: suspend entry (deep)
Sep 11 14:55:41 fedora kernel: PM: suspend devices took 0.323 seconds
Sep 11 14:55:41 fedora kernel: ACPI: PM: Low-level resume complete
Sep 11 14:55:41 fedora kernel: PM: resume devices took 0.199 seconds
Sep 11 14:55:41 fedora kernel: PM: suspend exit

View file

@ -0,0 +1,11 @@
--- tests/power-save-denylist/intel.c
+++ tests/resume-reset-negative/intel.c
@@ -1043,8 +1043,6 @@
azx_init_pci(chip);
hda_intel_init_chip(chip, true);
- if (chip->pm_prepared && hp_envy_27_needs_reset(chip))
- hp_envy_27_reset_link(chip);
/* Avoid codec resume if runtime resume is for system suspend */
if (!chip->pm_prepared) {

View file

@ -0,0 +1,2 @@
5244dc9bddba5deb05ef628485b4d84b6fec9098137c20a8a1f388b3677853cf intel.c
a8ff27ed56cc4184b5477fe7440b40adf64914eac403c6abb852fe6a8b4cd3fb snd-hda-intel.ko

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,29 @@
=== PRE 2026-09-11T15:13:01-04:00
a8ff27ed56cc4184b5477fe7440b40adf64914eac403c6abb852fe6a8b4cd3fb /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
pre_mixer_rc=0
pre_capture_rc=124 bytes=552204
=== POST 2026-09-11T15:18:57-04:00
post_mixer_rc=0
post_capture_rc=1 bytes=44
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Sep 11 15:13:04 fedora kernel: PM: suspend entry (deep)
Sep 11 15:18:52 fedora kernel: PM: suspend devices took 0.181 seconds
Sep 11 15:18:52 fedora kernel: ACPI: PM: Low-level resume complete
Sep 11 15:18:52 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to polling mode: last cmd=0x00170500
Sep 11 15:18:52 fedora kernel: snd_hda_intel 0000:00:1f.3: No response from codec, disabling MSI: last cmd=0x00170500
Sep 11 15:18:52 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to single_cmd mode: last cmd=0x00170500
Sep 11 15:18:52 fedora kernel: PM: resume devices took 3.249 seconds
Sep 11 15:18:52 fedora kernel: PM: suspend exit
=== RESTORED 2026-09-11T15:19:59-04:00
6d6d2ba28c071b17af61a0a178f0def6124c85c144d391ca97d4ec4c5606f29e /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1

View file

@ -0,0 +1,60 @@
Running as unit: hp27-reset-L-probe-20260911.service
Baseline before test
2026-09-11T08:45:55-04:00
04 00 00 00 14 00 00 00 03 00 00 00 47 4e 55 00
b6 ce b1 92 17 b7 7e 67 0e 93 a0 10 d5 a2 6b 56
9d 08 ac 26
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xdf320000 irq 134
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Codec: Conexant CX20753/4
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x14f15111
Subsystem Id: 0x14f10101
Revision Id: 0x100100
Codec: Intel Skylake HDMI
Address: 2
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x80862809
Subsystem Id: 0x80860101
Revision Id: 0x100000
on
Loading L standard-reset experiment
2026-09-11T08:46:34-04:00
04 00 00 00 14 00 00 00 03 00 00 00 47 4e 55 00
c8 45 2c 05 6a f2 70 3f 4f 09 ae 19 a6 11 a7 51
6c 57 ca 64
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xdf320000 irq 134
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Codec: Intel Skylake HDMI
Address: 2
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x80862809
Subsystem Id: 0x80860101
Revision Id: 0x100000
on
Sep 11 08:46:26 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 08:46:26 fedora kernel: snd_hda_intel 0000:00:1f.3: hp27-L: reset=0 pm_prepared=0 status=0x0 stopped=0x0 after=0x4 mask=0x4->0x4 gctl=0x1
Sep 11 08:46:26 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input54
Sep 11 08:46:26 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input55
Sep 11 08:46:26 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input56
Sep 11 08:46:34 fedora kernel: snd_hda_intel 0000:00:1f.3: spurious response 0x233:0x2, last cmd=0x201f0500
Sep 11 08:46:34 fedora kernel: snd_hda_intel 0000:00:1f.3: spurious response 0x233:0x2, last cmd=0x201f0500
Sep 11 08:46:35 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to polling mode: last cmd=0x201f0500
Sep 11 08:46:36 fedora kernel: snd_hda_intel 0000:00:1f.3: No response from codec, disabling MSI: last cmd=0x201f0500
Sep 11 08:46:37 fedora kernel: snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to single_cmd mode: last cmd=0x201f0500
Restoring verified K module
rmmod: ERROR: Module snd_hda_intel is in use
RECOVERY FAILED: driver still in use
Finished with result: exit-code
Main processes terminated with: code=exited, status=90/n/a
Service runtime: 42.536s
CPU time consumed: 226ms
Memory peak: 3.6M (swap: 0B)

View file

@ -0,0 +1,80 @@
#!/usr/bin/env bash
set -euo pipefail
baseline=/lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
candidate=/lib/modules/hp27-experiment-L-wkJWVQET/snd-hda-intel.ko
expected=d7683f3e64a65614b53dd658343e6e80bfe76a5efd268cc87fbc2e69b7ba6115
audio_uid=$(id -u TARGET_USER)
removed=0
userctl() { runuser -u TARGET_USER -- env XDG_RUNTIME_DIR="/run/user/$audio_uid" systemctl --user "$@"; }
services=(pipewire.service pipewire.socket wireplumber.service pipewire-pulse.service pipewire-pulse.socket)
snapshot() {
date --iso-8601=seconds
od -An -tx1 /sys/module/snd_hda_intel/notes/.note.gnu.build-id
cat /proc/asound/cards /proc/asound/pcm
for codec in /proc/asound/card*/codec*; do
if test -f "$codec"; then head -n 6 "$codec"; fi
done
cat /sys/bus/pci/devices/0000:00:1f.3/power/control
}
unload_controller() { if test -e /sys/bus/pci/drivers/snd_hda_intel/0000:00:1f.3; then printf "%s" 0000:00:1f.3 > /sys/bus/pci/drivers/snd_hda_intel/unbind; fi; rmmod snd_hda_intel; }
recover() {
result=$?
trap - EXIT HUP INT TERM
set +e
if test "$removed" = 0; then
systemctl start alsa-state.service
userctl start "${services[@]}"
echo 'K was not unloaded; audio services restored'
exit "$result"
fi
echo 'Restoring verified K module'
if test -d /sys/module/snd_hda_intel; then
if ! unload_controller; then
echo 'RECOVERY FAILED: driver still in use'
systemctl start alsa-state.service
userctl start "${services[@]}"
exit 90
fi
fi
if ! modprobe snd_hda_intel; then
echo 'RECOVERY FAILED: K could not load'
systemctl start alsa-state.service
userctl start "${services[@]}"
exit 91
fi
sleep 5
snapshot
systemctl start alsa-state.service
userctl start "${services[@]}"
if ! grep -q 'Codec: Conexant CX20753/4' /proc/asound/card*/codec\#0; then
echo 'RECOVERY FAILED: Conexant absent'
exit 92
fi
echo 'K restored; Conexant enumerated; audio services restarted'
exit "$result"
}
test "$(id -u)" = 0
test "$(uname -r)" = 7.1.4-100.fc43.x86_64
test "$(cat /sys/bus/pci/devices/0000:00:1f.3/vendor)" = 0x8086
test "$(cat /sys/bus/pci/devices/0000:00:1f.3/device)" = 0xa170
test "$(cat /sys/bus/pci/devices/0000:00:1f.3/subsystem_vendor)" = 0x103c
test "$(cat /sys/bus/pci/devices/0000:00:1f.3/subsystem_device)" = 0x2b3e
test "$(sha256sum "$baseline" | cut -d ' ' -f 1)" = "$expected"
test "$(sha256sum /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko | cut -d ' ' -f 1)" = "$expected"
test -s "$candidate"
test "$(modinfo -F vermagic "$candidate")" = "$(modinfo -F vermagic "$baseline")"
echo 'Baseline before test'
snapshot
trap recover EXIT
trap 'exit 129' HUP
trap 'exit 130' INT
trap 'exit 143' TERM
userctl stop "${services[@]}"
systemctl stop alsa-state.service
unload_controller
removed=1
echo 'Loading L standard-reset experiment'
insmod "$candidate"
sleep 8
snapshot
journalctl -b -k --since '-1 minute' --no-pager

View file

@ -0,0 +1,15 @@
2026-09-11T08:48:26-04:00
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
04 00 00 00 14 00 00 00 03 00 00 00 47 4e 55 00
b6 ce b1 92 17 b7 7e 67 0e 93 a0 10 d5 a2 6b 56
9d 08 ac 26
active
active
active
active
active
active
d7683f3e64a65614b53dd658343e6e80bfe76a5efd268cc87fbc2e69b7ba6115 /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko

View file

@ -0,0 +1,56 @@
--- intel.c
+++ intel.c
@@ -998,31 +998,22 @@
-static u16 hp_envy_27_reset_link(struct azx *chip)
-{
- struct hdac_bus *bus = azx_bus(chip);
- u32 gctl;
- u16 statests;
- int timeout;
-
- snd_hdac_bus_stop_chip(bus);
-
- gctl = snd_hdac_chip_readl(bus, GCTL);
- snd_hdac_chip_writel(bus, GCTL, gctl & ~AZX_GCTL_RESET);
- for (timeout = 250; timeout; timeout--) {
- if (!(snd_hdac_chip_readl(bus, GCTL) & AZX_GCTL_RESET))
- break;
- udelay(1);
- }
-
- gctl = snd_hdac_chip_readl(bus, GCTL);
- snd_hdac_chip_writel(bus, GCTL, gctl | AZX_GCTL_RESET);
- for (timeout = 250; timeout; timeout--) {
- if (snd_hdac_chip_readl(bus, GCTL) & AZX_GCTL_RESET)
- break;
- udelay(1);
- }
-
- statests = snd_hdac_chip_readw(bus, STATESTS);
- bus->codec_mask |= statests;
- snd_hdac_bus_init_chip(bus, false);
-
- return statests;
-}
+static u16 hp_envy_27_reset_link(struct azx *chip)
+{
+ struct hdac_bus *bus = azx_bus(chip);
+ u16 before, stopped, statests;
+ unsigned long mask = bus->codec_mask;
+ int err;
+
+ before = snd_hdac_chip_readw(bus, STATESTS);
+ snd_hdac_bus_stop_chip(bus);
+ stopped = snd_hdac_chip_readw(bus, STATESTS);
+
+ err = snd_hdac_bus_reset_link(bus, true);
+ statests = snd_hdac_chip_readw(bus, STATESTS);
+ bus->codec_mask |= statests;
+ dev_info(chip->card->dev,
+ "hp27-L: reset=%d pm_prepared=%u status=%#x stopped=%#x after=%#x mask=%#lx->%#lx gctl=%#x\n",
+ err, chip->pm_prepared, before, stopped, statests,
+ mask, bus->codec_mask, snd_hdac_chip_readl(bus, GCTL));
+ snd_hdac_bus_init_chip(bus, false);
+
+ return err ? 0 : statests;
+}

View file

@ -0,0 +1,36 @@
=== NO-PIO-1 2026-09-11T15:08:27-04:00
8d86fc590923ce9732afb77fe73d27883feccbf454bbdaa0d39b7a75e8f58f62 /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
mixer_reads=25/25
Sep 11 15:08:22 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 15:08:22 fedora kernel: snd_hda_intel 0000:00:1f.3: device 103c:2b3e is on the power_save denylist, forcing power_save to 0
=== M 2026-09-11T15:08:49-04:00
6d6d2ba28c071b17af61a0a178f0def6124c85c144d391ca97d4ec4c5606f29e /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
mixer_reads=25/25
Sep 11 15:08:44 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 15:08:44 fedora kernel: snd_hda_intel 0000:00:1f.3: device 103c:2b3e is on the power_save denylist, forcing power_save to 0
=== NO-PIO-2 2026-09-11T15:09:10-04:00
8d86fc590923ce9732afb77fe73d27883feccbf454bbdaa0d39b7a75e8f58f62 /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
mixer_reads=25/25
Sep 11 15:09:05 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 15:09:05 fedora kernel: snd_hda_intel 0000:00:1f.3: device 103c:2b3e is on the power_save denylist, forcing power_save to 0
=== M-RESTORED 2026-09-11T15:09:32-04:00
6d6d2ba28c071b17af61a0a178f0def6124c85c144d391ca97d4ec4c5606f29e /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
mixer_reads=25/25
Sep 11 15:09:27 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 15:09:27 fedora kernel: snd_hda_intel 0000:00:1f.3: device 103c:2b3e is on the power_save denylist, forcing power_save to 0

View file

@ -0,0 +1,54 @@
2026-09-11T15:58:35-04:00
boot_id=e1bc5638-2ae3-4ab3-9bd9-db7f0a5bfae6
Linux fedora 7.1.4-100.fc43.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Jul 18 19:16:31 UTC 2026 x86_64 GNU/Linux
8d86fc590923ce9732afb77fe73d27883feccbf454bbdaa0d39b7a75e8f58f62 /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xdf320000 irq 134
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
power_save=1
pci_power_control=auto
pci_runtime_status=active
Simple mixer control 'Master',0
Simple mixer control 'Headphone',0
Simple mixer control 'Speaker+LO',0
Simple mixer control 'PCM',0
Simple mixer control 'Line',0
Simple mixer control 'Line Boost',0
Simple mixer control 'Mic',0
Simple mixer control 'Mic Boost',0
Simple mixer control 'IEC958',0
Simple mixer control 'IEC958',1
Simple mixer control 'IEC958',2
Simple mixer control 'Beep',0
Simple mixer control 'Capture',0
Simple mixer control 'Auto-Mute Mode',0
Simple mixer control 'Dock Line',0
Simple mixer control 'Dock Line Boost',0
Simple mixer control 'Internal Mic',0
Simple mixer control 'Internal Mic Boost',0
Sep 11 15:44:10 fedora kernel: snd_hda_intel: loading out-of-tree module taints kernel.
Sep 11 15:44:10 fedora kernel: snd_hda_intel: module verification failed: signature and/or required key missing - tainting kernel
Sep 11 15:44:10 fedora kernel: snd_hda_intel 0000:00:1f.3: enabling device (0100 -> 0102)
Sep 11 15:44:10 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: CX20753/4: BIOS auto-probing.
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: autoconfig for CX20753/4: line_outs=1 (0x1d/0x0/0x0/0x0/0x0) type:line
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: speaker_outs=1 (0x17/0x0/0x0/0x0/0x0)
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: hp_outs=1 (0x16/0x0/0x0/0x0/0x0)
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: mono: mono_out=0x0
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: inputs:
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Mic=0x19
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Internal Mic=0x1a
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Line=0x18
Sep 11 15:44:11 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Dock Line=0x1e
Sep 11 15:44:11 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input30
Sep 11 15:44:11 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input31
Sep 11 15:44:11 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input32
Sep 11 15:44:11 fedora kernel: input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input33
Sep 11 15:44:11 fedora kernel: input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1f.3/sound/card0/input34
Sep 11 15:44:11 fedora kernel: input: HDA Intel PCH Dock Line as /devices/pci0000:00/0000:00:1f.3/sound/card0/input35
Sep 11 15:44:11 fedora kernel: input: HDA Intel PCH Dock Line Out as /devices/pci0000:00/0000:00:1f.3/sound/card0/input36
Sep 11 15:44:11 fedora kernel: input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input37
Sep 11 15:44:11 fedora kernel: snd_hda_intel 0000:00:1f.3: device 103c:2b3e is on the power_save denylist, forcing power_save to 0

View file

@ -0,0 +1,27 @@
--- tests/power-save-denylist/intel.c
+++ tests/temporary-pio-negative/intel.c
@@ -2403,7 +2403,6 @@
{
struct hdac_bus *bus = azx_bus(chip);
struct hda_codec *codec = NULL;
- bool use_pio;
int probe_mask;
int err;
@@ -2413,16 +2412,13 @@
return -ENODEV;
probe_mask = chip->codec_probe_mask;
- use_pio = bus->use_pio_for_commands;
chip->codec_probe_mask = BIT(0);
- bus->use_pio_for_commands = true;
err = snd_hda_codec_new(&chip->bus, chip->card, 0, &codec);
chip->codec_probe_mask = probe_mask;
if (!err && codec)
err = snd_hda_codec_configure(codec);
else if (!err)
err = -ENODEV;
- bus->use_pio_for_commands = use_pio;
return err;
}

View file

@ -0,0 +1,2 @@
bb022ee62d5657349f889ff58e6bd2ca88f80e8d832935ab1ce52f8b7b8c5a71 intel.c
8d86fc590923ce9732afb77fe73d27883feccbf454bbdaa0d39b7a75e8f58f62 snd-hda-intel.ko

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,40 @@
2026-09-11T16:06:54-04:00
8d86fc590923ce9732afb77fe73d27883feccbf454bbdaa0d39b7a75e8f58f62 /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xdf320000 irq 134
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Codec: Conexant CX20753/4
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x14f15111
Subsystem Id: 0x14f10101
Revision Id: 0x100100
Codec: Intel Skylake HDMI
Address: 2
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x80862809
Subsystem Id: 0x80860101
Revision Id: 0x100000
Sep 11 16:06:49 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: CX20753/4: BIOS auto-probing.
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: autoconfig for CX20753/4: line_outs=1 (0x1d/0x0/0x0/0x0/0x0) type:line
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: speaker_outs=1 (0x17/0x0/0x0/0x0/0x0)
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: hp_outs=1 (0x16/0x0/0x0/0x0/0x0)
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: mono: mono_out=0x0
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: inputs:
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Mic=0x19
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Internal Mic=0x1a
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Line=0x18
Sep 11 16:06:49 fedora kernel: snd_hda_codec_conexant hdaudioC0D0: Dock Line=0x1e
Sep 11 16:06:49 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input33
Sep 11 16:06:49 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input34
Sep 11 16:06:49 fedora kernel: input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input35
Sep 11 16:06:49 fedora kernel: input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input36
Sep 11 16:06:49 fedora kernel: input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1f.3/sound/card0/input37
Sep 11 16:06:49 fedora kernel: input: HDA Intel PCH Dock Line as /devices/pci0000:00/0000:00:1f.3/sound/card0/input38
Sep 11 16:06:49 fedora kernel: input: HDA Intel PCH Dock Line Out as /devices/pci0000:00/0000:00:1f.3/sound/card0/input39
Sep 11 16:06:49 fedora kernel: input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input40
Sep 11 16:06:49 fedora kernel: snd_hda_intel 0000:00:1f.3: device 103c:2b3e is on the power_save denylist, forcing power_save to 0

View file

@ -0,0 +1,11 @@
--- source/resume/K-upstream-cut.intel.c
+++ tests/tight-reset-negative/intel.c
@@ -2408,7 +2408,7 @@
if (!hp_envy_27_needs_reset(chip) || (bus->codec_mask & BIT(0)))
return 0;
- if (!(hp_envy_27_reset_link(chip) & BIT(0)))
+ if (!(snd_hdac_chip_readw(bus, STATESTS) & BIT(0)))
return -ENODEV;
probe_mask = chip->codec_probe_mask;

View file

@ -0,0 +1,27 @@
=== NEG-1 2026-09-11T15:02:09-04:00
11451c218fccf3c45e89bcc627855e00898b02d2bb57fbac44b56009657045c1 /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Sep 11 15:02:04 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
=== K 2026-09-11T15:02:30-04:00
d7683f3e64a65614b53dd658343e6e80bfe76a5efd268cc87fbc2e69b7ba6115 /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Sep 11 15:02:25 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
=== NEG-2 2026-09-11T15:02:52-04:00
11451c218fccf3c45e89bcc627855e00898b02d2bb57fbac44b56009657045c1 /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Sep 11 15:02:47 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
=== M-RESTORED 2026-09-11T15:03:14-04:00
6d6d2ba28c071b17af61a0a178f0def6124c85c144d391ca97d4ec4c5606f29e /lib/modules/7.1.4-100.fc43.x86_64/updates/snd-hda-intel.ko
00-00: CX20753/4 Analog : CX20753/4 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
Sep 11 15:03:09 fedora kernel: snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
Sep 11 15:03:09 fedora kernel: snd_hda_intel 0000:00:1f.3: device 103c:2b3e is on the power_save denylist, forcing power_save to 0

View file

@ -0,0 +1,2 @@
dcfbdcaddf0a1ec13e7f7c3df5944df806aee87c06bf6d232cb6a2a8153d1c73 intel.c
11451c218fccf3c45e89bcc627855e00898b02d2bb57fbac44b56009657045c1 snd-hda-intel.ko

File diff suppressed because it is too large Load diff

3172
sources/A-no-rintcnt.intel.c Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

3106
sources/F-rearm-gate.intel.c Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff