[alsa-devel] [PATCH] hda: STAC92xx Line In/Mic as output check
Matthew Ranostay
mranostay at embeddedalley.com
Fri Jan 25 15:28:47 CET 2008
Takashi Iwai wrote:
> At Fri, 25 Jan 2008 08:43:55 -0500,
> Matthew Ranostay wrote:
>> This patch checks to see the Line In/Mic port have the ability to do output before creating the the control switches.
>> The 92hd71bxx series of codecs has this issue with the port 0xe, which only allows input.
>>
>> Signed-off-by: Matthew Ranostay <mranostay at embededalley.com>
>
> Looks good (but it has a garbage (`) in the patch)
>
You certainly have a eagle-eye there :)
> Anyway, applied to HG tree now. Thanks.
>
>
> Takashi
>
>
>> ---
>> diff -r 303f894ac2a8 pci/hda/patch_sigmatel.c
>> --- a/pci/hda/patch_sigmatel.c Thu Jan 24 18:46:42 2008 +0100
>> +++ b/pci/hda/patch_sigmatel.c Thu Jan 24 22:41:27 2008 -0500
>> @@ -2226,7 +2226,7 @@ static int stac92xx_auto_create_multi_ou
>> int i, err;
>>
>> struct sigmatel_spec *spec = codec->spec;
>> - unsigned int wid_caps;
>> + unsigned int wid_caps, pincap;
>>
>>
>> for (i = 0; i < cfg->line_outs; i++) {
>> @@ -2262,13 +2262,31 @@ static int stac92xx_auto_create_multi_ou
>> }
>> }
>>
>> - if (spec->line_switch)
>> - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_IO_SWITCH, "Line In as Output Switch", cfg->input_pins[AUTO_PIN_LINE] << 8)) < 0)
>> - return err;
>> -
>> - if (spec->mic_switch)
>> - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_IO_SWITCH, "Mic as Output Switch", (cfg->input_pins[AUTO_PIN_MIC] << 8) | 1)) < 0)
>> - return err;
>> + if (spec->line_switch) {
>> + nid = cfg->input_pins[AUTO_PIN_LINE];
>> + pincap = snd_hda_param_read(codec, nid,
>> + AC_PAR_PIN_CAP);
>> + if (pincap & AC_PINCAP_OUT) {
>> + err = stac92xx_add_control(spec,
>> + STAC_CTL_WIDGET_IO_SWITCH,
>> + "Line In as Output Switch", nid << 8);
>> + if (err < 0)
>> + return err;
>> + }
>> + }
>> +
>> + if (spec->mic_switch) {
>> + nid = cfg->input_pins[AUTO_PIN_MIC];
>> + pincap = snd_hda_param_read(codec, nid,
>> + AC_PAR_PIN_CAP);
>> + if (pincap & AC_PINCAP_OUT) {
>> + ` err = stac92xx_add_control(spec,
>> + STAC_CTL_WIDGET_IO_SWITCH,
>> + "Mic as Output Switch", (nid << 8) | 1);
>> + if (err < 0)
>> + return err;
>> + }
>> + }
>>
>> return 0;
>> }
>>
>
More information about the Alsa-devel
mailing list