mbox series

[00/10,SRU,M] Fix system suspend problem for Cirrus CS35L41 HDA codec on HP ZBook Fury 16 G9

Message ID 20231122063541.11346-1-chris.chiu@canonical.com
Headers show
Series Fix system suspend problem for Cirrus CS35L41 HDA codec on HP ZBook Fury 16 G9 | expand

Message

Chris Chiu Nov. 22, 2023, 6:35 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/2042060

[Impact]
Few HP ZBook Fury 16 G9 laptops suffers audio problems after system resume from suspend. The audio play and capture functions are not working after resume from S3.

[Fix]
Backport the fix from Cirrus on linux-next https://lore.kernel.org/all/20231026150558.2105827-1-sbinding@opensource.cirrus.com/.

[Test Case]
1. Power on the HP ZBook Fury 16 G9 machine with CS35L41 HDA .
2. Perform system suspend/resume at least 3 times.
3. Verify the audio functions, including playback and capture

[Where problems could occur]
Only affect specific laptops with the CS35L41 HDA. The impact is restricted.

Stefan Binding (10):
  ALSA: hda: cs35l41: Support systems with missing _DSD properties
  ALSA: hda: cs35l41: Override the _DSD for HP Zbook Fury 17 G9 to
    correct boost type
  ALSA: hda: cs35l41: Use reset label to get GPIO for HP Zbook Fury 17
    G9
  ALSA: hda: cs35l41: Assert reset before system suspend
  ALSA: hda: cs35l41: Assert Reset prior to de-asserting in probe and
    system resume
  ALSA: hda: cs35l41: Run boot process during resume callbacks
  ALSA: hda: cs35l41: Force a software reset after hardware reset
  ALSA: hda: cs35l41: Do not unload firmware before reset in system
    suspend
  ALSA: hda: cs35l41: Check CSPL state after loading firmware
  ASoC: cs35l41: Detect CSPL errors when sending CSPL commands

 include/sound/cs35l41.h              |   3 +
 sound/pci/hda/Makefile               |   2 +-
 sound/pci/hda/cs35l41_hda.c          | 235 ++++++++++++++-------------
 sound/pci/hda/cs35l41_hda.h          |   1 +
 sound/pci/hda/cs35l41_hda_property.c | 112 +++++++++++++
 sound/pci/hda/cs35l41_hda_property.h |  18 ++
 sound/soc/codecs/cs35l41-lib.c       |   6 +
 7 files changed, 262 insertions(+), 115 deletions(-)
 create mode 100644 sound/pci/hda/cs35l41_hda_property.c
 create mode 100644 sound/pci/hda/cs35l41_hda_property.h

Comments

Stefan Bader Nov. 22, 2023, 9:06 a.m. UTC | #1
On 22.11.23 07:35, Chris Chiu wrote:
> BugLink: https://bugs.launchpad.net/bugs/2042060
> 
> [Impact]
> Few HP ZBook Fury 16 G9 laptops suffers audio problems after system resume from suspend. The audio play and capture functions are not working after resume from S3.
> 
> [Fix]
> Backport the fix from Cirrus on linux-next https://lore.kernel.org/all/20231026150558.2105827-1-sbinding@opensource.cirrus.com/.
> 
> [Test Case]
> 1. Power on the HP ZBook Fury 16 G9 machine with CS35L41 HDA .
> 2. Perform system suspend/resume at least 3 times.
> 3. Verify the audio functions, including playback and capture

What about 4. Verify on x different computers using the same driver that 
audio functions still work without new issues?

> 
> [Where problems could occur]
> Only affect specific laptops with the CS35L41 HDA. The impact is restricted.
> 
> Stefan Binding (10):
>    ALSA: hda: cs35l41: Support systems with missing _DSD properties
>    ALSA: hda: cs35l41: Override the _DSD for HP Zbook Fury 17 G9 to
>      correct boost type
>    ALSA: hda: cs35l41: Use reset label to get GPIO for HP Zbook Fury 17
>      G9
>    ALSA: hda: cs35l41: Assert reset before system suspend
>    ALSA: hda: cs35l41: Assert Reset prior to de-asserting in probe and
>      system resume
>    ALSA: hda: cs35l41: Run boot process during resume callbacks
>    ALSA: hda: cs35l41: Force a software reset after hardware reset
>    ALSA: hda: cs35l41: Do not unload firmware before reset in system
>      suspend
>    ALSA: hda: cs35l41: Check CSPL state after loading firmware
>    ASoC: cs35l41: Detect CSPL errors when sending CSPL commands
> 
>   include/sound/cs35l41.h              |   3 +
>   sound/pci/hda/Makefile               |   2 +-
>   sound/pci/hda/cs35l41_hda.c          | 235 ++++++++++++++-------------
>   sound/pci/hda/cs35l41_hda.h          |   1 +
>   sound/pci/hda/cs35l41_hda_property.c | 112 +++++++++++++
>   sound/pci/hda/cs35l41_hda_property.h |  18 ++
>   sound/soc/codecs/cs35l41-lib.c       |   6 +
>   7 files changed, 262 insertions(+), 115 deletions(-)
>   create mode 100644 sound/pci/hda/cs35l41_hda_property.c
>   create mode 100644 sound/pci/hda/cs35l41_hda_property.h
>
Chris Chiu Nov. 23, 2023, 6:24 a.m. UTC | #2
On Wed, Nov 22, 2023 at 5:06 PM Stefan Bader <stefan.bader@canonical.com> wrote:
>
> On 22.11.23 07:35, Chris Chiu wrote:
> > BugLink: https://bugs.launchpad.net/bugs/2042060
> >
> > [Impact]
> > Few HP ZBook Fury 16 G9 laptops suffers audio problems after system resume from suspend. The audio play and capture functions are not working after resume from S3.
> >
> > [Fix]
> > Backport the fix from Cirrus on linux-next https://lore.kernel.org/all/20231026150558.2105827-1-sbinding@opensource.cirrus.com/.
> >
> > [Test Case]
> > 1. Power on the HP ZBook Fury 16 G9 machine with CS35L41 HDA .
> > 2. Perform system suspend/resume at least 3 times.
> > 3. Verify the audio functions, including playback and capture
>
> What about 4. Verify on x different computers using the same driver that
> audio functions still work without new issues?
>
The patchset is applied only on the device ID "103C89C6" to quirk with
hp_vision_acpi_fix() and manipulate the reset_gpio accordingly. The patch
#1 has restricted the impact on particular HP model. That's why I didn't think
we need to test on other computers.

> >
> > [Where problems could occur]
> > Only affect specific laptops with the CS35L41 HDA. The impact is restricted.
> >
> > Stefan Binding (10):
> >    ALSA: hda: cs35l41: Support systems with missing _DSD properties
> >    ALSA: hda: cs35l41: Override the _DSD for HP Zbook Fury 17 G9 to
> >      correct boost type
> >    ALSA: hda: cs35l41: Use reset label to get GPIO for HP Zbook Fury 17
> >      G9
> >    ALSA: hda: cs35l41: Assert reset before system suspend
> >    ALSA: hda: cs35l41: Assert Reset prior to de-asserting in probe and
> >      system resume
> >    ALSA: hda: cs35l41: Run boot process during resume callbacks
> >    ALSA: hda: cs35l41: Force a software reset after hardware reset
> >    ALSA: hda: cs35l41: Do not unload firmware before reset in system
> >      suspend
> >    ALSA: hda: cs35l41: Check CSPL state after loading firmware
> >    ASoC: cs35l41: Detect CSPL errors when sending CSPL commands
> >
> >   include/sound/cs35l41.h              |   3 +
> >   sound/pci/hda/Makefile               |   2 +-
> >   sound/pci/hda/cs35l41_hda.c          | 235 ++++++++++++++-------------
> >   sound/pci/hda/cs35l41_hda.h          |   1 +
> >   sound/pci/hda/cs35l41_hda_property.c | 112 +++++++++++++
> >   sound/pci/hda/cs35l41_hda_property.h |  18 ++
> >   sound/soc/codecs/cs35l41-lib.c       |   6 +
> >   7 files changed, 262 insertions(+), 115 deletions(-)
> >   create mode 100644 sound/pci/hda/cs35l41_hda_property.c
> >   create mode 100644 sound/pci/hda/cs35l41_hda_property.h
> >
>
> --
> - Stefan
>
Stefan Bader Nov. 23, 2023, 9:13 a.m. UTC | #3
On 23.11.23 07:24, Chris Chiu wrote:
> On Wed, Nov 22, 2023 at 5:06 PM Stefan Bader <stefan.bader@canonical.com> wrote:
>>
>> On 22.11.23 07:35, Chris Chiu wrote:
>>> BugLink: https://bugs.launchpad.net/bugs/2042060
>>>
>>> [Impact]
>>> Few HP ZBook Fury 16 G9 laptops suffers audio problems after system resume from suspend. The audio play and capture functions are not working after resume from S3.
>>>
>>> [Fix]
>>> Backport the fix from Cirrus on linux-next https://lore.kernel.org/all/20231026150558.2105827-1-sbinding@opensource.cirrus.com/.
>>>
>>> [Test Case]
>>> 1. Power on the HP ZBook Fury 16 G9 machine with CS35L41 HDA .
>>> 2. Perform system suspend/resume at least 3 times.
>>> 3. Verify the audio functions, including playback and capture
>>
>> What about 4. Verify on x different computers using the same driver that
>> audio functions still work without new issues?
>>
> The patchset is applied only on the device ID "103C89C6" to quirk with
> hp_vision_acpi_fix() and manipulate the reset_gpio accordingly. The patch
> #1 has restricted the impact on particular HP model. That's why I didn't think
> we need to test on other computers.

OK, that is important info for the SRU in general. Because I still am 
not easily seeing thing in the patches. Patch #1 is relatively large in 
changes and even if the limitations to certain IDs are not missed. I 
would still lack the background knowledge to decide how tight those 
limitations are.
With the amount of requests coming in, and especially when they include 
a lot of change, the more important it becomes to have information that 
allows to estimate the impact of those changes.

So we think this change should have only any effect on that single 
laptop model. That is ok then to have tested it there only.
> 
>>>
>>> [Where problems could occur]
>>> Only affect specific laptops with the CS35L41 HDA. The impact is restricted.
>>>
>>> Stefan Binding (10):
>>>     ALSA: hda: cs35l41: Support systems with missing _DSD properties
>>>     ALSA: hda: cs35l41: Override the _DSD for HP Zbook Fury 17 G9 to
>>>       correct boost type
>>>     ALSA: hda: cs35l41: Use reset label to get GPIO for HP Zbook Fury 17
>>>       G9
>>>     ALSA: hda: cs35l41: Assert reset before system suspend
>>>     ALSA: hda: cs35l41: Assert Reset prior to de-asserting in probe and
>>>       system resume
>>>     ALSA: hda: cs35l41: Run boot process during resume callbacks
>>>     ALSA: hda: cs35l41: Force a software reset after hardware reset
>>>     ALSA: hda: cs35l41: Do not unload firmware before reset in system
>>>       suspend
>>>     ALSA: hda: cs35l41: Check CSPL state after loading firmware
>>>     ASoC: cs35l41: Detect CSPL errors when sending CSPL commands
>>>
>>>    include/sound/cs35l41.h              |   3 +
>>>    sound/pci/hda/Makefile               |   2 +-
>>>    sound/pci/hda/cs35l41_hda.c          | 235 ++++++++++++++-------------
>>>    sound/pci/hda/cs35l41_hda.h          |   1 +
>>>    sound/pci/hda/cs35l41_hda_property.c | 112 +++++++++++++
>>>    sound/pci/hda/cs35l41_hda_property.h |  18 ++
>>>    sound/soc/codecs/cs35l41-lib.c       |   6 +
>>>    7 files changed, 262 insertions(+), 115 deletions(-)
>>>    create mode 100644 sound/pci/hda/cs35l41_hda_property.c
>>>    create mode 100644 sound/pci/hda/cs35l41_hda_property.h
>>>
>>
>> --
>> - Stefan
>>
Stefan Bader Nov. 24, 2023, 8:29 a.m. UTC | #4
On 22.11.23 07:35, Chris Chiu wrote:
> BugLink: https://bugs.launchpad.net/bugs/2042060
> 
> [Impact]
> Few HP ZBook Fury 16 G9 laptops suffers audio problems after system resume from suspend. The audio play and capture functions are not working after resume from S3.
> 
> [Fix]
> Backport the fix from Cirrus on linux-next https://lore.kernel.org/all/20231026150558.2105827-1-sbinding@opensource.cirrus.com/.
> 
> [Test Case]
> 1. Power on the HP ZBook Fury 16 G9 machine with CS35L41 HDA .
> 2. Perform system suspend/resume at least 3 times.
> 3. Verify the audio functions, including playback and capture
> 
> [Where problems could occur]
> Only affect specific laptops with the CS35L41 HDA. The impact is restricted.
> 
> Stefan Binding (10):
>    ALSA: hda: cs35l41: Support systems with missing _DSD properties
>    ALSA: hda: cs35l41: Override the _DSD for HP Zbook Fury 17 G9 to
>      correct boost type
>    ALSA: hda: cs35l41: Use reset label to get GPIO for HP Zbook Fury 17
>      G9
>    ALSA: hda: cs35l41: Assert reset before system suspend
>    ALSA: hda: cs35l41: Assert Reset prior to de-asserting in probe and
>      system resume
>    ALSA: hda: cs35l41: Run boot process during resume callbacks
>    ALSA: hda: cs35l41: Force a software reset after hardware reset
>    ALSA: hda: cs35l41: Do not unload firmware before reset in system
>      suspend
>    ALSA: hda: cs35l41: Check CSPL state after loading firmware
>    ASoC: cs35l41: Detect CSPL errors when sending CSPL commands
> 
>   include/sound/cs35l41.h              |   3 +
>   sound/pci/hda/Makefile               |   2 +-
>   sound/pci/hda/cs35l41_hda.c          | 235 ++++++++++++++-------------
>   sound/pci/hda/cs35l41_hda.h          |   1 +
>   sound/pci/hda/cs35l41_hda_property.c | 112 +++++++++++++
>   sound/pci/hda/cs35l41_hda_property.h |  18 ++
>   sound/soc/codecs/cs35l41-lib.c       |   6 +
>   7 files changed, 262 insertions(+), 115 deletions(-)
>   create mode 100644 sound/pci/hda/cs35l41_hda_property.c
>   create mode 100644 sound/pci/hda/cs35l41_hda_property.h
> 
It is quite a bit of code change but claimed to be limited to specific 
model(s) via ID matching. So hopefully will cause no additional headaches.

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Tim Gardner Nov. 27, 2023, 4:04 p.m. UTC | #5
On 11/21/23 11:35 PM, Chris Chiu wrote:
> BugLink: https://bugs.launchpad.net/bugs/2042060
> 
> [Impact]
> Few HP ZBook Fury 16 G9 laptops suffers audio problems after system resume from suspend. The audio play and capture functions are not working after resume from S3.
> 
> [Fix]
> Backport the fix from Cirrus on linux-next https://lore.kernel.org/all/20231026150558.2105827-1-sbinding@opensource.cirrus.com/.
> 
> [Test Case]
> 1. Power on the HP ZBook Fury 16 G9 machine with CS35L41 HDA .
> 2. Perform system suspend/resume at least 3 times.
> 3. Verify the audio functions, including playback and capture
> 
> [Where problems could occur]
> Only affect specific laptops with the CS35L41 HDA. The impact is restricted.
> 
> Stefan Binding (10):
>    ALSA: hda: cs35l41: Support systems with missing _DSD properties
>    ALSA: hda: cs35l41: Override the _DSD for HP Zbook Fury 17 G9 to
>      correct boost type
>    ALSA: hda: cs35l41: Use reset label to get GPIO for HP Zbook Fury 17
>      G9
>    ALSA: hda: cs35l41: Assert reset before system suspend
>    ALSA: hda: cs35l41: Assert Reset prior to de-asserting in probe and
>      system resume
>    ALSA: hda: cs35l41: Run boot process during resume callbacks
>    ALSA: hda: cs35l41: Force a software reset after hardware reset
>    ALSA: hda: cs35l41: Do not unload firmware before reset in system
>      suspend
>    ALSA: hda: cs35l41: Check CSPL state after loading firmware
>    ASoC: cs35l41: Detect CSPL errors when sending CSPL commands
> 
>   include/sound/cs35l41.h              |   3 +
>   sound/pci/hda/Makefile               |   2 +-
>   sound/pci/hda/cs35l41_hda.c          | 235 ++++++++++++++-------------
>   sound/pci/hda/cs35l41_hda.h          |   1 +
>   sound/pci/hda/cs35l41_hda_property.c | 112 +++++++++++++
>   sound/pci/hda/cs35l41_hda_property.h |  18 ++
>   sound/soc/codecs/cs35l41-lib.c       |   6 +
>   7 files changed, 262 insertions(+), 115 deletions(-)
>   create mode 100644 sound/pci/hda/cs35l41_hda_property.c
>   create mode 100644 sound/pci/hda/cs35l41_hda_property.h
> 
Acked-by: Tim Gardner <tim.gardner@canonical.com>

Clean series known to impact only a specific model.
Stefan Bader Dec. 1, 2023, 11:20 a.m. UTC | #6
On 22.11.23 07:35, Chris Chiu wrote:
> BugLink: https://bugs.launchpad.net/bugs/2042060
> 
> [Impact]
> Few HP ZBook Fury 16 G9 laptops suffers audio problems after system resume from suspend. The audio play and capture functions are not working after resume from S3.
> 
> [Fix]
> Backport the fix from Cirrus on linux-next https://lore.kernel.org/all/20231026150558.2105827-1-sbinding@opensource.cirrus.com/.
> 
> [Test Case]
> 1. Power on the HP ZBook Fury 16 G9 machine with CS35L41 HDA .
> 2. Perform system suspend/resume at least 3 times.
> 3. Verify the audio functions, including playback and capture
> 
> [Where problems could occur]
> Only affect specific laptops with the CS35L41 HDA. The impact is restricted.
> 
> Stefan Binding (10):
>    ALSA: hda: cs35l41: Support systems with missing _DSD properties
>    ALSA: hda: cs35l41: Override the _DSD for HP Zbook Fury 17 G9 to
>      correct boost type
>    ALSA: hda: cs35l41: Use reset label to get GPIO for HP Zbook Fury 17
>      G9
>    ALSA: hda: cs35l41: Assert reset before system suspend
>    ALSA: hda: cs35l41: Assert Reset prior to de-asserting in probe and
>      system resume
>    ALSA: hda: cs35l41: Run boot process during resume callbacks
>    ALSA: hda: cs35l41: Force a software reset after hardware reset
>    ALSA: hda: cs35l41: Do not unload firmware before reset in system
>      suspend
>    ALSA: hda: cs35l41: Check CSPL state after loading firmware
>    ASoC: cs35l41: Detect CSPL errors when sending CSPL commands
> 
>   include/sound/cs35l41.h              |   3 +
>   sound/pci/hda/Makefile               |   2 +-
>   sound/pci/hda/cs35l41_hda.c          | 235 ++++++++++++++-------------
>   sound/pci/hda/cs35l41_hda.h          |   1 +
>   sound/pci/hda/cs35l41_hda_property.c | 112 +++++++++++++
>   sound/pci/hda/cs35l41_hda_property.h |  18 ++
>   sound/soc/codecs/cs35l41-lib.c       |   6 +
>   7 files changed, 262 insertions(+), 115 deletions(-)
>   create mode 100644 sound/pci/hda/cs35l41_hda_property.c
>   create mode 100644 sound/pci/hda/cs35l41_hda_property.h
>

Skipped "ALSA: hda: cs35l41: Support systems with missing _DSD 
properties" because you already submitted that for 
https://bugs.launchpad.net/bugs/2039151 (btw there also with "ALSA: hda: 
cs35l41: Fix the loop check in cs35l41_add_dsd_properties" which is a 
fixup for the patch which now was skipped.

This really does not instill a lot of trust in those bulk submissions... 
Anyhow now

Applied to mantic:linux/master-next. Thanks.

-Stefan