Bug 66321

Summary: AD1984A Unable to produce sound after updating to 3.12.0
Product: Drivers Reporter: reg
Component: Sound(ALSA)Assignee: Jaroslav Kysela (perex)
Status: RESOLVED CODE_FIX    
Severity: normal CC: tiwai
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 3.12.2 Subsystem:
Regression: No Bisected commit-id:
Attachments: alsa-info under 3.12.2 which is not producing sound
alsa-info under modified 3.12.2 with files from 3.11.6, working normally
Test fix patch

Description reg 2013-12-02 08:52:19 UTC
Everything works perfectly on 3.11.6 but after I update to 3.12.0 (now 3.12.2), my integrated sound card (which is AD1984A) can no longer produce any sound. I used roughly the same configuration for 3.11 and 3.12, and no matter how I change them, I am unable to get sound under 3.12.
When I try to list the audio devices, it is noticeable that although the device is identified correctly, a second fake device is also discovered with the name ...AD1984A alt ...(cannot remember exactly now since I find a temporary solution)
My temporary solution is to replace sound/pci/hda/patch_analog.c with the one from 3.11.6.
Anyone can help?
Comment 1 Takashi Iwai 2013-12-02 09:08:33 UTC
Please give alsa-info.sh output.  Run it with --no-upload option and attach to bugzilla (don't paste).
Comment 2 Takashi Iwai 2013-12-02 09:09:36 UTC
Also, at best, give alsa-info.sh outputs on both working and non-working kernels, so that we can compare the results easily.
Comment 3 reg 2013-12-02 10:17:35 UTC
Created attachment 117131 [details]
alsa-info under 3.12.2 which is not producing sound
Comment 4 reg 2013-12-02 10:18:26 UTC
Created attachment 117141 [details]
alsa-info under modified 3.12.2 with files from 3.11.6, working normally
Comment 5 Takashi Iwai 2013-12-02 10:25:23 UTC
Thanks.

Through a quick glance, the major differences are EAPD on each output pin.

Try the following:
  hda-verb /dev/snd/hwC0D0 0x16 SET_EAPD 0x00
  hda-verb /dev/snd/hwC0D0 0x12 SET_EAPD 0x00
Comment 6 Takashi Iwai 2013-12-02 10:29:53 UTC
BTW, "PCM Playback Volume" is set relatively low in your setup.  Try to adjust it to 0dB.
   amixer -c0 set PCM 0dB

Also, which output are you testing?  Don't both speaker and headphone outputs work?
Comment 7 Takashi Iwai 2013-12-02 10:33:30 UTC
Yet another thing to test.  The following might be needed for HP machines, too:
   hda-verb /dev/snd/hwC0D0 0x1c SET_PIN_WID 0x40

If the EAPD change in comment 5 doesn't give any difference, try this instead.
Comment 8 reg 2013-12-02 10:40:01 UTC
Thank you very much for the prompt reply.
After I performed the setting for EAPD, I can finally hear a faint sound. Although under 3.11.6, this setting will produce sufficient volume.
Now pushing everything to maximum will produce acceptable volume.

Thank you again for solving this problem for me!
Comment 9 Takashi Iwai 2013-12-02 10:54:15 UTC
Good to hear.  Now need to understand what's really going wrong, and need to modify the driver accordingly...

Which command did fix the issue actually?  The one for 0x16 or for 0x12?

In 3.11.x, EAPD on 0x16 is turned on/off dynamically per the headphone plugging, but EAPD on 0x12 is untouched.

You can turn each of them on by writing 0x20, e.g.
   hda-verb /dev/snd/hwC0D0 0x12 SET_EAPD 0x20

so you'll be able to figure out which setup breaks which output.
Comment 10 reg 2013-12-02 11:06:25 UTC
Upon testing, it should be 0x12 that breaks the output
Wish this could help
Comment 11 Takashi Iwai 2013-12-02 11:08:31 UTC
OK, could you check whether the patch below fixes the problem with 3.12.x?
Comment 12 Takashi Iwai 2013-12-02 11:08:46 UTC
Created attachment 117151 [details]
Test fix patch
Comment 13 Takashi Iwai 2013-12-02 11:09:19 UTC
(BTW please don't change to RESOLVED/CODE_FIX, as we didn't fix any code yet :)
Comment 14 reg 2013-12-02 11:28:44 UTC
recompiled the kernel with this fix, now working perfectly
Comment 15 Takashi Iwai 2013-12-02 12:31:55 UTC
Thanks for a quick check.  The patch is merged now, so finally we can close as CODE_FIX :)