Skip to content

Commit

Permalink
Add quirks for AD1984A codec and Lenovo X300 laptop.
Browse files Browse the repository at this point in the history
PR:		kern/148741
MFC after:	2 weeks
  • Loading branch information
amotin committed Dec 12, 2012
1 parent 41f4406 commit ce4c6d9
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
19 changes: 18 additions & 1 deletion sys/dev/sound/pci/hda/hdaa_patches.c
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,17 @@ hdac_pin_patch(struct hdaa_widget *w)
}

/* New patches */
if (id == HDA_CODEC_AD1986A &&
if (id == HDA_CODEC_AD1984A &&
subid == LENOVO_X300_SUBVENDOR) {
switch (nid) {
case 17: /* Headphones with redirection */
patch = "as=1 seq=15";
break;
case 20: /* Two mics together */
patch = "as=2 seq=15";
break;
}
} else if (id == HDA_CODEC_AD1986A &&
(subid == ASUS_M2NPVMX_SUBVENDOR ||
subid == ASUS_A8NVMCSM_SUBVENDOR ||
subid == ASUS_P5PL2_SUBVENDOR)) {
Expand Down Expand Up @@ -372,6 +382,13 @@ hdaa_widget_patch(struct hdaa_widget *w)
HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT;
w->waspin = 1;
}
/*
* Clear "digital" flag from digital mic input, as its signal then goes
* to "analog" mixer and this separation just limits functionaity.
*/
if (hdaa_codec_id(devinfo) == HDA_CODEC_AD1984A &&
w->nid == 23)
w->param.widget_cap &= ~HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK;
HDA_BOOTVERBOSE(
if (w->param.widget_cap != orig) {
device_printf(w->devinfo->dev,
Expand Down
1 change: 1 addition & 0 deletions sys/dev/sound/pci/hda/hdac.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,7 @@
#define LENOVO_3KN200_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x384e)
#define LENOVO_B450_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x3a0d)
#define LENOVO_TCA55_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x1015)
#define LENOVO_X300_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x20ac)
#define LENOVO_ALL_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0xffff)

/* Samsung */
Expand Down

0 comments on commit ce4c6d9

Please sign in to comment.