diff --git a/sys/dev/sound/pci/hda/hdaa_patches.c b/sys/dev/sound/pci/hda/hdaa_patches.c --- a/sys/dev/sound/pci/hda/hdaa_patches.c +++ b/sys/dev/sound/pci/hda/hdaa_patches.c @@ -389,6 +389,16 @@ patch = "as=1 seq=15"; break; } + } else if (id == HDA_CODEC_ALC257 && + (subid == LENOVO_L5AMD_SUBVENDOR)) { + switch (nid) { + case 20: + patch = "as=1 seq=0"; + break; + case 33: + patch = "as=1 seq=15"; + break; + } } else if (id == HDA_CODEC_ALC285 && (subid == LENOVO_X120KH_SUBVENDOR || subid == LENOVO_X120QD_SUBVENDOR)) { @@ -808,10 +818,10 @@ subid == 0x834a1043 || subid == 0x83981043 || subid == 0x83ce1043) { /* - * The ditital mics on some Asus laptops produce + * The digital mics on some Asus laptops produce * differential signals instead of expected stereo. * That results in silence if downmix it to mono. - * To workaround, make codec to handle signal as mono. + * To workaround, make codec handle signal as mono. */ val = hdaa_read_coef(dev, 0x20, 0x07); hdaa_write_coef(dev, 0x20, 0x07, val|0x80); diff --git a/sys/dev/sound/pci/hda/hdac.h b/sys/dev/sound/pci/hda/hdac.h --- a/sys/dev/sound/pci/hda/hdac.h +++ b/sys/dev/sound/pci/hda/hdac.h @@ -288,6 +288,7 @@ #define LENOVO_T520_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x21cf) #define LENOVO_T530_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x21f6) #define LENOVO_G580_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x3977) +#define LENOVO_L5AMD_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x381b) #define LENOVO_ALL_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0xffff) /* Samsung */