As of commit a9fd4f3fcdc7e5757424f7e5888f660cf34bb1a9 (git-bisected), on a macbook pro 4.1, when headphones are plugged in the speakers mute yet the headphones produce no sound whatsoever. It's possible to manually unmute the speakers while headphones are plugged in; no combination of settings gives sound on the headphones. Prior to this, alsa correctly switched between headphone and speaker output.
Note, git-bisection was completed using only patches that touch sound/pci/hda, and so may theoretically be inaccurate.
Does this still happen with 2.6.31-rc8 kernel? If yes, please give alsa-info.sh output (run with --no-upload option).
Created attachment 22890 [details] alsa-info output on speakers Output on 2.6.31-rc8; headphones still not working
Created attachment 22891 [details] alsa-info output on headphones
So, if I understand correctly, the speaker is correctly muted automatically via the headphone plugging (and I suppose unmute after unplugging). But, the no sound comes from the headphone. Right? What happens if you raise "Line-Out Playback Volume"? For example, % amixer -c0 set "Line-Out" 0dB
You understand correctly. The line-out control does nothing, on its own or in combination, nor do any others; I've tried unmuting and raising the volume using every control in alsamixer (including the input ones).
OK, then try to get hda-verb program from: http://ftp.kernel.org/pub/linux/kernel/people/tiwai/misc/hda-verb/ and run like below (as root): # hda-verb /dev/snd/hwC0D0 0x15 SET_PIN_WID 0xc0 (Note that this requires the hd-audio drivers built with CONFIG_SND_HDA_HWDEP=y.) Does it give any change?
Also, try to load snd-hda-intel module with model=auto option, and adjust mixer again. Does it work better?
hda-verb did nothing, before or after reloading with model=auto. Loading snd-hda-intel with model=auto caused alsamixer to show a number of new channels, including one for headphones; it looked quite promising. Unfortunately, it caused no sound to be emitted, period, in either headphone or speaker mode.
If this doesn't work, please give alsa-info.sh output at this state. (In reply to comment #9) > hda-verb did nothing, before or after reloading with model=auto. That hda-verb command is for without model option. Do load the driver without model=auto option, run hda-verb command, and give alsa-info.sh output again. > Loading snd-hda-intel with model=auto caused alsamixer to show a number of > new > channels, including one for headphones; it looked quite promising. > Unfortunately, it caused no sound to be emitted, period, in either headphone > or > speaker mode. MacBookPro requires GPIO1 setup with model=auto. Run the following sequence: # hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01 # hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01 # hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01 Then try again. If this doesn't work, give alsa-info.sh at this state, too.
Also, if you can have the old working version, please give alsa-info.sh output on that. In that way, we can compare the difference what was actually changed.
Created attachment 22894 [details] Alsa-info output for last working version (on speakers)
Created attachment 22895 [details] Alsa-info output for last working version (on headphones)
Created attachment 22896 [details] alsa-info output, post hda-verb, with headphones plugged before running hda-verb
Created attachment 22897 [details] alsa-info output for model=auto, triple hda-verb invocation Indeed, this didn't work either. No output, with speakers or without.
Could you try the patch below (without model option)? This will add the individual Headphone and Speaker volumes, too. Also, the Line-Out volume is renamed as Surround volume since it's the optional surround volume for 4ch mode.
Created attachment 22910 [details] Fix / improve ALC889A mbp3 quirk
That worked perfectly; thank you very much. Not only do the headphones work, but I can now control the headphone and speaker volume separately, the way I could in OS X back when I used it. I vote to apply it. ;) One cosmetic flaw: The speaker volume shows up at the far right of alsamixer, instead of next to the headphone controls like they ought to. That is, it goes "master - headphones - pcm - (...lots of extra controls...) - speaker", while it ought to go "master - headphones - speaker - pcm". I don't know if you have any control over the order they show up there, but if it's an easy fix, I'd appreciate fixing that.
Thanks for checking. The patch is now in sound git tree and also submitted to Linus. Regarding the speaker volume position; this has nothing to do with the kernel but an issue of alsa-lib. I'm going to fix this later.