[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