aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2017-12-27 02:53:59 -0500
committerTakashi Iwai <tiwai@suse.de>2017-12-27 02:53:59 -0500
commit44be77c590f381bc629815ac789b8b15ecc4ddcf (patch)
tree22834a996dc465bc34eceee70c12214594dd3fe8
parenta36c2638380c0a4676647a1f553b70b20d3ebce1 (diff)
ALSA: hda - Fix missing COEF init for ALC225/295/299
There was a long-standing problem on HP Spectre X360 with Kabylake where it lacks of the front speaker output in some situations. Also there are other products showing the similar behavior. The culprit seems to be the missing COEF setup on ALC codecs, ALC225/295/299, which are all compatible. This patch adds the proper COEF setup (to initialize idx 0x67 / bits 0x3000) for addressing the issue. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=195457 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_realtek.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 1522ba31e16d..8fd2d9c62c96 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -324,8 +324,12 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
324 case 0x10ec0292: 324 case 0x10ec0292:
325 alc_update_coef_idx(codec, 0x4, 1<<15, 0); 325 alc_update_coef_idx(codec, 0x4, 1<<15, 0);
326 break; 326 break;
327 case 0x10ec0215:
328 case 0x10ec0225: 327 case 0x10ec0225:
328 case 0x10ec0295:
329 case 0x10ec0299:
330 alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
331 /* fallthrough */
332 case 0x10ec0215:
329 case 0x10ec0233: 333 case 0x10ec0233:
330 case 0x10ec0236: 334 case 0x10ec0236:
331 case 0x10ec0255: 335 case 0x10ec0255:
@@ -336,10 +340,8 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
336 case 0x10ec0286: 340 case 0x10ec0286:
337 case 0x10ec0288: 341 case 0x10ec0288:
338 case 0x10ec0285: 342 case 0x10ec0285:
339 case 0x10ec0295:
340 case 0x10ec0298: 343 case 0x10ec0298:
341 case 0x10ec0289: 344 case 0x10ec0289:
342 case 0x10ec0299:
343 alc_update_coef_idx(codec, 0x10, 1<<9, 0); 345 alc_update_coef_idx(codec, 0x10, 1<<9, 0);
344 break; 346 break;
345 case 0x10ec0275: 347 case 0x10ec0275: