Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 62106
b: refs/heads/master
c: f95474e
h: refs/heads/master
v: v3
  • Loading branch information
Takashi Iwai authored and Jaroslav Kysela committed Jul 20, 2007
1 parent 49bb765 commit cb5a955
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 341d4eb0cffdcd5fbdbd696dc26671f91e7c418c
refs/heads/master: f95474ec05106a2af46220fbf8624adc17fcb3e7
57 changes: 57 additions & 0 deletions trunk/sound/pci/hda/patch_realtek.c
Original file line number Diff line number Diff line change
Expand Up @@ -723,6 +723,38 @@ static void alc_subsystem_id(struct hda_codec *codec,
}
}

/*
* Fix-up pin default configurations
*/

struct alc_pincfg {
hda_nid_t nid;
u32 val;
};

static void alc_fix_pincfg(struct hda_codec *codec,
const struct snd_pci_quirk *quirk,
const struct alc_pincfg **pinfix)
{
const struct alc_pincfg *cfg;

quirk = snd_pci_quirk_lookup(codec->bus->pci, quirk);
if (!quirk)
return;

cfg = pinfix[quirk->value];
for (; cfg->nid; cfg++) {
int i;
u32 val = cfg->val;
for (i = 0; i < 4; i++) {
snd_hda_codec_write(codec, cfg->nid, 0,
AC_VERB_SET_CONFIG_DEFAULT_BYTES_0 + i,
val & 0xff);
val >>= 8;
}
}
}

/*
* ALC880 3-stack model
*
Expand Down Expand Up @@ -5409,6 +5441,29 @@ static struct alc_config_preset alc882_presets[] = {
};


/*
* Pin config fixes
*/
enum {
PINFIX_ABIT_AW9D_MAX
};

static struct alc_pincfg alc882_abit_aw9d_pinfix[] = {
{ 0x15, 0x01080104 }, /* side */
{ 0x16, 0x01011012 }, /* rear */
{ 0x17, 0x01016011 }, /* clfe */
{ }
};

static const struct alc_pincfg *alc882_pin_fixes[] = {
[PINFIX_ABIT_AW9D_MAX] = alc882_abit_aw9d_pinfix,
};

static struct snd_pci_quirk alc882_pinfix_tbl[] = {
SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX),
{}
};

/*
* BIOS auto configuration
*/
Expand Down Expand Up @@ -5532,6 +5587,8 @@ static int patch_alc882(struct hda_codec *codec)
}
}

alc_fix_pincfg(codec, alc882_pinfix_tbl, alc882_pin_fixes);

if (board_config == ALC882_AUTO) {
/* automatic parse from the BIOS config */
err = alc882_parse_auto_config(codec);
Expand Down

0 comments on commit cb5a955

Please sign in to comment.