[alsa-devel] Cirrus CS4207 not working on 4.14.24
Takashi Iwai
tiwai at suse.de
Fri Mar 9 10:11:16 CET 2018
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
More information about the Alsa-devel
mailing list