At Wed, 30 Jan 2008 17:33:57 -0500, Matthew Ranostay wrote: > > Takashi Iwai wrote: > > At Wed, 30 Jan 2008 09:14:02 -0500, > > Matthew Ranostay wrote: > >> On several laptops that have STAC9228 codecs have unused DACs, this powers them down to a D3 state. > >> > >> Signed-off-by: Matthew Ranostay <mranostay@xxxxxxxxxxxxxxxxx> > > > > I think they will be eventually powered up again in > > hda_set_power_state() in hda_codec.c. As a temporary solution, we can > > have a sort of blacklist in struct hda_codec for always turning the > > power off for such widgets. > > > > As a long-term solution, the automatic detection of such widgets would > > be nice... > > > > > > Takashi > > > > > >> --- > >> diff -r 86c8c0a82bb9 pci/hda/patch_sigmatel.c > >> --- a/pci/hda/patch_sigmatel.c Wed Jan 30 11:52:33 2008 +0100 > >> +++ b/pci/hda/patch_sigmatel.c Wed Jan 30 08:58:37 2008 -0500 > >> @@ -288,6 +288,10 @@ static hda_nid_t stac927x_adc_nids[3] = > >> > >> static hda_nid_t stac927x_mux_nids[3] = { > >> 0x15, 0x16, 0x17 > >> +}; > >> + > >> +static hda_nid_t stac927x_dac_nids[5] = { > >> + 0x02, 0x03, 0x04, 0x05, 0x06 > >> }; > >> > >> static hda_nid_t stac927x_dmux_nids[1] = { > >> @@ -3537,7 +3541,7 @@ static int patch_stac927x(struct hda_cod > >> static int patch_stac927x(struct hda_codec *codec) > >> { > >> struct sigmatel_spec *spec; > >> - int err; > >> + int err, i; > >> > >> spec = kzalloc(sizeof(*spec), GFP_KERNEL); > >> if (spec == NULL) > >> @@ -3628,6 +3632,14 @@ static int patch_stac927x(struct hda_cod > >> stac92xx_free(codec); > >> return err; > >> } > >> + > >> + /* on some 3-stack systems not all the DACs are used > >> + * this powers down ones that aren't used > >> + */ > >> + for (i = 0; i < ARRAY_SIZE(stac927x_dac_nids); i++) > >> + if (!is_in_dac_nids(spec, stac927x_dac_nids[i])) > >> + snd_hda_codec_write_cache(codec, stac927x_dac_nids[i], > >> + 0, AC_VERB_SET_POWER_STATE, AC_PWRST_D3); > >> > >> codec->patch_ops = stac92xx_patch_ops; > >> > > > > I think this what you had in mind. > Also is putting the function call in stac92xx_resume correct? Yeah, thanks, I forgot it. I applied it to my tree. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel