Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 216703
b: refs/heads/master
c: d433a67
h: refs/heads/master
i:
  216701: 5c0d90a
  216699: 6bf8b16
  216695: b032268
  216687: 6b26495
  216671: 2f4139c
  216639: 53eb62d
  216575: c6c1946
v: v3
  • Loading branch information
Takashi Iwai committed Sep 20, 2010
1 parent f0dcdb7 commit 1ded685
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e1ca7b4ea29707920650d86b22afdb7e94ad5986
refs/heads/master: d433a67831ab2c470cc53a3ff9b60f656767be15
21 changes: 15 additions & 6 deletions trunk/sound/pci/hda/patch_realtek.c
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,7 @@ struct alc_spec {
unsigned int no_analog :1; /* digital I/O only */
unsigned int dual_adc_switch:1; /* switch ADCs (for ALC275) */
int init_amp;
int codec_variant; /* flag for other variants */

/* for virtual master */
hda_nid_t vmaster_nid;
Expand Down Expand Up @@ -14568,6 +14569,13 @@ static int alc275_setup_dual_adc(struct hda_codec *codec)
return 0;
}

/* different alc269-variants */
enum {
ALC269_TYPE_NORMAL,
ALC269_TYPE_ALC259,
ALC269_TYPE_ALC271X,
};

/*
* BIOS auto configuration
*/
Expand Down Expand Up @@ -14596,7 +14604,7 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
if (spec->kctls.list)
add_mixer(spec, spec->kctls.list);

if ((alc_read_coef_idx(codec, 0) & 0x00f0) == 0x0010) {
if (spec->codec_variant != ALC269_TYPE_NORMAL) {
add_verb(spec, alc269vb_init_verbs);
alc_ssid_check(codec, 0, 0x1b, 0x14, 0x21);
} else {
Expand Down Expand Up @@ -14962,7 +14970,6 @@ static int patch_alc269(struct hda_codec *codec)
struct alc_spec *spec;
int board_config;
int err;
int is_alc269vb = 0;

spec = kzalloc(sizeof(*spec), GFP_KERNEL);
if (spec == NULL)
Expand All @@ -14974,11 +14981,13 @@ static int patch_alc269(struct hda_codec *codec)

if ((alc_read_coef_idx(codec, 0) & 0x00f0) == 0x0010){
if (codec->bus->pci->subsystem_vendor == 0x1025 &&
spec->cdefine.platform_type == 1)
spec->cdefine.platform_type == 1) {
alc_codec_rename(codec, "ALC271X");
else
spec->codec_variant = ALC269_TYPE_ALC271X;
} else {
alc_codec_rename(codec, "ALC259");
is_alc269vb = 1;
spec->codec_variant = ALC269_TYPE_ALC259;
}
} else
alc_fix_pll_init(codec, 0x20, 0x04, 15);

Expand Down Expand Up @@ -15040,7 +15049,7 @@ static int patch_alc269(struct hda_codec *codec)
spec->stream_digital_capture = &alc269_pcm_digital_capture;

if (!spec->adc_nids) { /* wasn't filled automatically? use default */
if (!is_alc269vb) {
if (spec->codec_variant != ALC269_TYPE_NORMAL) {
spec->adc_nids = alc269_adc_nids;
spec->num_adc_nids = ARRAY_SIZE(alc269_adc_nids);
spec->capsrc_nids = alc269_capsrc_nids;
Expand Down

0 comments on commit 1ded685

Please sign in to comment.