-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rear audio port disables front audio port when connected. #144
Comments
@osy86 Is there anything more I can gather to help with your investigations? Is there a layout ID change I could do? I'm happy to try things on my side and report back. |
Realistically I won't have time to look into this for a while. You can take the existing XML in AppleALC for ALC700 and play around with the XML entries and see what happens. Right now both the front and rear are mapped to node 2 https://github.com/acidanthera/AppleALC/blob/master/Resources/ALC700/Platforms11.xml you can find all the connected paths here https://osy.gitbook.io/hac-mini-guide/details/hda-fix maybe try changing one of them to node 3? |
Thanks! I'll give this a go and report back :) |
I tried building AppleALC with the front port changed to Node 3 and rear port as node 2 (as well as the other way round) no change in behaviour. I'll try get more info from Linux using the graph tool to see what happens when the front audio port is connected vs the rear. |
What happens on linux when you have both ports plugged in? |
I booted the NUC using an Ubuntu 19.10 live USB and the front audio jack disables the rear jack when both are connected. This is the correct behaviour that I would expect (which is the opposite of what happens in macOS.) I tried to generate a codecgraph for each state, but they all end up identical. |
Here is the dmesg output from boot, and also the codec#0 output from each state.
codec#0_ALC700_both.txt What I noticed is the following when diffing those outputs; When changing from rear port only to either front port only or both ports connected, this is the change that happens; Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out ( Pin Default 0x01011020: [Jack] Line Out at Ext Rear Node 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out ( |
@osy86 Is there anything else I could try? |
Those change basically are just volume changes so it doesn't seem that any internal config changed. My hunch is that it's an OSX config issue. Probably something in the XML tells the driver which port takes priority. Maybe it's worth asking around to see if anyone else experienced similar issues on other boards? |
@osy86 I have done some google searching and come up empty on people with similar issues. Do you think you might have some time to look into switching the port priority for macOS? Thanks in advance! I love this project and the amazing work you do :) |
This seems to be an OSX default behaviour. Line Out > Headphones > Speaker. Maybe if we fake the port to be speaker instead of line out, it might work, but I don't know if that will cause other issues. You can try changing https://github.com/acidanthera/AppleALC/blob/master/Resources/ALC700/Platforms11.xml#L127 to 20 or 21 or 22 or 22 and see if you get any output. It might not work because there might be some internal verb call that is needed. |
Here's another possible workaround. Change https://github.com/acidanthera/AppleALC/blob/master/Resources/PinConfigs.kext/Contents/Info.plist#L5501 to |
Thank you for the things to try. I'll give those a go now and report back :) |
I tried changing https://github.com/acidanthera/AppleALC/blob/master/Resources/PinConfigs.kext/Contents/Info.plist#L5501 to I am now trying to other option of changing the NodeID for the Rear Line Out in Platforms11.xml |
Something is wrong if you don’t get audio device. Make sure it still works with no change. |
It works if I build from |
Try opening the plist and Xcode and using the bytes directly |
I tried using Xcode and PlistEdit Pro. Both end up with the bytes you specified, but it results in no audio device. If I go back to the previous Xcode PlistEdit Pro When I build in Xcode, I am cleaning the build dir, and then clicking "Build" The built kext is created in |
Don't worry it's fixed :) Once AppleALC is updated, I will make a new release. |
I think it is called |
Oh I was only looking for "speaker". Does "AnalogOut" work? |
<key>Inputs</key>
<array>
<string>ExtMic</string>
<string>LineIn</string>
<string>SPDIFIn</string>
</array>
...
<key>LineOut</key>
<dict>
<key>MuteGPIO</key>
<integer>1</integer>
</dict>
...
<key>Outputs</key>
<array>
<string>Headphone</string>
<string>IntSpeaker</string>
<string>LineOut</string>
<string>SPDIFOut</string>
</array> Seems like the back port is line out. Are you sure the front port takes priority over the back line out? |
I have sent an email to a friend of mine that has a Mac Pro 5,1 to ask him to verify. |
Ahh! so from my friends feedback and this thread here https://forums.macrumors.com/threads/how-to-make-my-mac-automaticially-switch-to-headphone-out-when-plugged-in.245931/ it looks like the Mac Pro can show both This Blog post here covers more detail https://weblog.rogueamoeba.com/2007/09/05/ "On Mac Pros, the line output device is no longer paired with the headphone output, which means that plugging in headphones doesn’t automatically switch your output to the headphone jack. No longer do you need to manually change your output via the Sound system preference, or even in SoundSource. With SoundSource’s “Auto-Switch To Headphones” option turned on, your output will switch automatically." I wonder if it would be better to have the ALC700 show both the Headphone and Line Out outputs when both are connected, then I can simply toggle it via the sound toolbar or using the Sound Source app :) |
This is one of those times I disagree with OSX’s design. I think back=“int speakers” and front=hp is the behaviour any sane person expects. |
I just built AppleALC using your changes in acidanthera/AppleALC#494 and it is working great. One interesting side effect is that Thank you for all your time spent looking into this and finding a solution! |
* Fix issue with headphone port priority (fixes #144) * Support updating boot-args using `nvram` command * WhateverGreen updated to support AMD GPU codecs Updated: AirportBrcmFixup 2.0.5 AppleALC 1.4.6 AppleSupport 2.1.5 BrcmPatchRAM 2.5.1 Lilu 1.4.1 MacInfoPkg 2.1.0 OpenCorePkg 0.5.4 VirtualSMC 1.1.0 WhateverGreen 1.3.6
* Fix issue with headphone port priority (fixes #144) * Support updating boot-args using `nvram` command * WhateverGreen updated to support AMD GPU codecs Updated: AirportBrcmFixup 2.0.5 AppleALC 1.4.6 AppleSupport 2.1.5 BrcmPatchRAM 2.5.1 Lilu 1.4.1 MacInfoPkg 2.1.0 OpenCorePkg 0.5.4 VirtualSMC 1.1.0 WhateverGreen 1.3.6
* Fix issue with headphone port priority (fixes #144) * Support updating boot-args using `nvram` command * WhateverGreen updated to support AMD GPU codecs Updated: AirportBrcmFixup 2.0.5 AppleALC 1.4.6 AppleSupport 2.1.5 BrcmPatchRAM 2.5.1 Lilu 1.4.1 MacInfoPkg 2.1.0 OpenCorePkg 0.5.4 VirtualSMC 1.1.0 WhateverGreen 1.3.6
* Fix issue with headphone port priority (fixes #144) * Support updating boot-args using `nvram` command * WhateverGreen updated to support AMD GPU codecs Updated: AirportBrcmFixup 2.0.5 AppleALC 1.4.6 AppleSupport 2.1.5 BrcmPatchRAM 2.5.1 Lilu 1.4.1 MacInfoPkg 2.1.0 OpenCorePkg 0.5.4 VirtualSMC 1.1.0 WhateverGreen 1.3.6
Describe the bug
When the rear audio port is connected to speakers, the front audio port is disabled. If I disconnect the speakers from the rear audio port, the front audio port works. Here is a table of the various states.
Expected behavior
In the last case above, I would expect that plugging headphones into the front port would disable my speakers connected to the rear port. If I plug my speakers into the front and then use the rear port for my headphones the behaviour is as I would expect it to be.
Is it possible to flip the way the ports behave?
Configuration
Modifications
Using DW1820 Wireless Card with the kexts installed from the 2.4 installer
The text was updated successfully, but these errors were encountered: