ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs
Fix HDA beep frequency on IDT 92HD73xx and 92HD71Bxx codecs. These codecs use the standard beep frequency calculation although the datasheet says it's linear frequency. Other IDT/STAC codecs might have the same problem. They should be fixed individually later. Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
ea87d1c493
commit
1b0e372d7b
@ -202,6 +202,7 @@ struct sigmatel_spec {
|
||||
unsigned int spdif_mute: 1;
|
||||
unsigned int check_volume_offset:1;
|
||||
unsigned int auto_mic:1;
|
||||
unsigned int linear_tone_beep:1;
|
||||
|
||||
/* gpio lines */
|
||||
unsigned int eapd_mask;
|
||||
@ -3802,7 +3803,7 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out
|
||||
return err;
|
||||
if (codec->beep) {
|
||||
/* IDT/STAC codecs have linear beep tone parameter */
|
||||
codec->beep->linear_tone = 1;
|
||||
codec->beep->linear_tone = spec->linear_tone_beep;
|
||||
/* if no beep switch is available, make its own one */
|
||||
caps = query_amp_caps(codec, nid, HDA_OUTPUT);
|
||||
if (!(caps & AC_AMPCAP_MUTE)) {
|
||||
@ -5005,6 +5006,7 @@ static int patch_stac9200(struct hda_codec *codec)
|
||||
|
||||
codec->no_trigger_sense = 1;
|
||||
codec->spec = spec;
|
||||
spec->linear_tone_beep = 1;
|
||||
spec->num_pins = ARRAY_SIZE(stac9200_pin_nids);
|
||||
spec->pin_nids = stac9200_pin_nids;
|
||||
spec->board_config = snd_hda_check_board_config(codec, STAC_9200_MODELS,
|
||||
@ -5068,6 +5070,7 @@ static int patch_stac925x(struct hda_codec *codec)
|
||||
|
||||
codec->no_trigger_sense = 1;
|
||||
codec->spec = spec;
|
||||
spec->linear_tone_beep = 1;
|
||||
spec->num_pins = ARRAY_SIZE(stac925x_pin_nids);
|
||||
spec->pin_nids = stac925x_pin_nids;
|
||||
|
||||
@ -5153,6 +5156,7 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
|
||||
|
||||
codec->no_trigger_sense = 1;
|
||||
codec->spec = spec;
|
||||
spec->linear_tone_beep = 0;
|
||||
codec->slave_dig_outs = stac92hd73xx_slave_dig_outs;
|
||||
spec->num_pins = ARRAY_SIZE(stac92hd73xx_pin_nids);
|
||||
spec->pin_nids = stac92hd73xx_pin_nids;
|
||||
@ -5300,6 +5304,7 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
|
||||
|
||||
codec->no_trigger_sense = 1;
|
||||
codec->spec = spec;
|
||||
spec->linear_tone_beep = 1;
|
||||
codec->slave_dig_outs = stac92hd83xxx_slave_dig_outs;
|
||||
spec->digbeep_nid = 0x21;
|
||||
spec->mux_nids = stac92hd83xxx_mux_nids;
|
||||
@ -5522,6 +5527,7 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
|
||||
|
||||
codec->no_trigger_sense = 1;
|
||||
codec->spec = spec;
|
||||
spec->linear_tone_beep = 0;
|
||||
codec->patch_ops = stac92xx_patch_ops;
|
||||
spec->num_pins = STAC92HD71BXX_NUM_PINS;
|
||||
switch (codec->vendor_id) {
|
||||
@ -5779,6 +5785,7 @@ static int patch_stac922x(struct hda_codec *codec)
|
||||
|
||||
codec->no_trigger_sense = 1;
|
||||
codec->spec = spec;
|
||||
spec->linear_tone_beep = 1;
|
||||
spec->num_pins = ARRAY_SIZE(stac922x_pin_nids);
|
||||
spec->pin_nids = stac922x_pin_nids;
|
||||
spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS,
|
||||
@ -5883,6 +5890,7 @@ static int patch_stac927x(struct hda_codec *codec)
|
||||
|
||||
codec->no_trigger_sense = 1;
|
||||
codec->spec = spec;
|
||||
spec->linear_tone_beep = 1;
|
||||
codec->slave_dig_outs = stac927x_slave_dig_outs;
|
||||
spec->num_pins = ARRAY_SIZE(stac927x_pin_nids);
|
||||
spec->pin_nids = stac927x_pin_nids;
|
||||
@ -6018,6 +6026,7 @@ static int patch_stac9205(struct hda_codec *codec)
|
||||
|
||||
codec->no_trigger_sense = 1;
|
||||
codec->spec = spec;
|
||||
spec->linear_tone_beep = 1;
|
||||
spec->num_pins = ARRAY_SIZE(stac9205_pin_nids);
|
||||
spec->pin_nids = stac9205_pin_nids;
|
||||
spec->board_config = snd_hda_check_board_config(codec, STAC_9205_MODELS,
|
||||
@ -6174,6 +6183,7 @@ static int patch_stac9872(struct hda_codec *codec)
|
||||
return -ENOMEM;
|
||||
codec->no_trigger_sense = 1;
|
||||
codec->spec = spec;
|
||||
spec->linear_tone_beep = 1;
|
||||
spec->num_pins = ARRAY_SIZE(stac9872_pin_nids);
|
||||
spec->pin_nids = stac9872_pin_nids;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user