[alsa-devel] Cirrus CS4207 not working on 4.14.24

Jorge Fernandez Monteagudo jorgefm at cirsa.com
Fri Mar 9 10:45:35 CET 2018


Hi!


Your little patch works! I've attached the alsa-info for the 4.14.24 kernel once the

system is running and no sound is available.


The nodes are related to audio output. 0x03 DAC2 PCM linked to 0x0A: Line Out1

I suspect nodes 0x09, 0x0A and 0x0B are not able to recover from D3 state.


Regards

________________________________
De: Takashi Iwai <tiwai at suse.de>
Enviado: viernes, 9 de marzo de 2018 10:11:16
Para: Jorge Fernandez Monteagudo
Cc: alsa-devel at alsa-project.org
Asunto: Re: [alsa-devel] Cirrus CS4207 not working on 4.14.24

On Fri, 09 Mar 2018 08:56:08 +0100,
Jorge Fernandez Monteagudo wrote:
>
> Hi all!
>
>
> I've updated my system from a 3.16.7 kernel to a 4.14.24 kernel and sound stops working.
>
> I have a Cirrus logic CS4207 codec. I've tracked down the problem using the '/proc/asound/card0/codec\#0'
>
> info. With the 3.16.7 kernel all nodes power states are:
>
>
> Node 0x03: Power: setting=D0, actual=D0
> Node 0x0a: Power: setting=D0, actual=D0
>
> and with 4.14.24 they are on
>
>
> Node 0x03: Power: setting=D0, actual=D3
> Node 0x0a: Power: setting=D3, actual=D3

And what nodes are these?
At best, please give alsa-info.sh output.


> Once in this situation I'm able to go to D0 again and make the sound works. I've used
> hda-verb 0.4 to SET_POWER_STATE to 0 with no luck. Finally, I've patched the 4.14.24
> to avoid changing to D3 and now the sound is working again. I know it's not the way to go
> but I need the sound...

It's the feature of power-saving, and can be turned off by passing the
hint via "patch" firmware.  If you can compile, the easiest way would
be the oneliner like:

--- a/sound/pci/hda/patch_cirrus.c
+++ b/sound/pci/hda/patch_cirrus.c
@@ -589,7 +589,7 @@ static struct cs_spec *cs_alloc_spec(struct hda_codec *codec, int vendor_nid)
                 return NULL;
         codec->spec = spec;
         spec->vendor_nid = vendor_nid;
-       codec->power_save_node = 1;
+       // codec->power_save_node = 1;
         snd_hda_gen_spec_init(&spec->gen);

         return spec;

If the widgets 0x03 and/or 0x0a have to be always turned on, we can
keep them on.  There are several ways to do that.


Takashi
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: alsa-info.txt
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20180309/759640a7/attachment-0001.txt>


More information about the Alsa-devel mailing list