Contribute
Register

[XPS-9360] USB-C to HDMI Audio still not working

Status
Not open for further replies.
Ok so if I understand your previous post correctly, I should change dropOEM to True, but where I'm confused is should I take the SSDTs that patchmatic dumped and remove the ones that are duplicates or just use the SSDTs that I dumped from Clover F4? Currently the guide for the XPS 13 9360 doesn't call for any patches on SSDTs.

If there are no patches needed on SSDTs, then you should not have any patched SSDTs in ACPI/patched.
(and DropOem=false).

There are two valid configurations:
- OEM SSDTs in ACPI/patched, DropOem=true
OR
- No OEM SSDTs in ACPI/patched, DropOem=false

No other combinations are valid.
 
If there are no patches needed on SSDTs, then you should not have any patched SSDTs in ACPI/patched.
(and DropOem=false).

There are two valid configurations:
- OEM SSDTs in ACPI/patched, DropOem=true
OR
- No OEM SSDTs in ACPI/patched, DropOem=false

No other combinations are valid.
Oh, now I understand. That makes perfect sense. Ok so now that we got that straightened out...

How about this patch I applied to DSDT for HDAS, should I have used XDSM rather than _DSM or did I have it correct?
Oh wait I think I know what I didn't do correctly. Since I applied the [syn] Rename _DSM to XDSM, wouldn't I need to change that 1st line in the HDAS patch to
Code:
 into method label XDSM parent_label HDAS remove_entry;

And how do I go about changing or spoofing those numbers with FakePCIID? Do I do that within the kext file itself or via patch to kext in clover config? And to answer that last question below in the quote, I have not tried it without FakePCIID.
Did you also try spoofing 0x9d70 with FakePCIID? This ioreg shows spoof of 0xa170.
I assume you also tried without FakePCIID (no spoof, so system sees native 0x9d71)

But... looking at ioreg... you did not inject "hda-gfx" on HDEF.

UPDATE: Tried with no FakePCIID kext file. Although I kept FakePCIID_Intel_HDMI_Audio kext. Still no audio. Should I remove the other one and get you a another snapshot of ioreg? Here are the PR files.
 

Attachments

  • rmntna_no_FakePCIID_PR_Files.zip
    5.1 MB · Views: 134
Last edited:
How about this patch I applied to DSDT for HDAS, should I have used XDSM rather than _DSM or did I have it correct?

You should NOT have a patch removing any XDSM methods...
There is no need to remove an XDSM as they have no effect (system looks only at _DSM methods).

And how do I go about changing or spoofing those numbers with FakePCIID? Do I do that within the kext file itself or via patch to kext in clover config? And to answer that last question below in the quote, I have not tried it without FakePCIID.

Look at the Info.plist. The spoofed ID is determined by RM,device-id.

UPDATE: Tried with no FakePCIID kext file. Although I kept FakePCIID_Intel_HDMI_Audio kext. Still no audio. Should I remove the other one and get you a another snapshot of ioreg? Here are the PR files.

FakePCIID_Intel_HDMI_Audio.kext has no effect without FakePCIID.kext.
The ioreg shows no second audio device (in working scenario, you will see two IOHDACodecDevice nodes under AppleHDAController).
Try other variants of FakePCIID_Intel_HDMI_Audio.
 
You should NOT have a patch removing any XDSM methods...
There is no need to remove an XDSM as they have no effect (system looks only at _DSM methods).



Look at the Info.plist. The spoofed ID is determined by RM,device-id.



FakePCIID_Intel_HDMI_Audio.kext has no effect without FakePCIID.kext.
The ioreg shows no second audio device (in working scenario, you will see two IOHDACodecDevice nodes under AppleHDAController).
Try other variants of FakePCIID_Intel_HDMI_Audio.
Ok will do. Thank you. As for other variants of the FakePCIID_Intel_HDMI_Audio.kext, are you referring to the variant ones that you had uploaded or in your repo or something else?
 
Ok will do. Thank you. As for other variants of the FakePCIID_Intel_HDMI_Audio.kext, are you referring to the variant ones that you had uploaded or in your repo or something else?

The one that I uploaded has extra Info.plist entries to match against your native HDEF id.
And then, there are two different values you try for RM,device-id (as there are two known/supported native Skylake IDs).
 
The one that I uploaded has extra Info.plist entries to match against your native HDEF id.
And then, there are two different values you try for RM,device-id (as there are two known/supported native Skylake IDs).
Ok great I'll give that a try and let you know how it goes. Thanks again for all your help.
 
Solved!
No need to patch the framebuffers at all.
The steps and resources needed are minimal and straightforward.

Steps:
>> ig-platform-id: 19160002.
>> Do the common DSDT renames (GFX02IGPU, HDAS2HDEF).
>> Inject correct properties for HDEF and IGPU (you can use the pre-made RehabMan's SSDT-IGPU.aml and SSDT-HDEF.aml), eventually overriding HDEF layout-id to 13 if you are following my LTS 9360 guide.
>> Remove Graphics and audio injections from Clover.
>> Remove any FAKEPCIID-INTEL_HDMI_AUDIO kext. In some systems it's needed, but it's not our case.
>> Remove ANY framebuffer hot- or hard-patches.

You'll have native and hot-pluggable HDMI audio via the USB-C connector.
It works with every USB-C => HDMI cable or adapter on the market.

Background:
I also tried to patch the 02001619 framebuffer 0105 connector, but to no avail. Even if I manually force a 08 value inside the kext, IOReg always reports 04. Every other port behaves correctly, if I patch it, it changes connector type reported value. But not 0105. I think it's due to the polymorphic nature of the 0105 port, which is USB-C alternate mode, either DP or HDMI. Anyway, even without framebuffer patching, HDMI video+audio work OOB, and in System Properties, the external HDMI display is correctly listed as HDMI.

Screen Shot 2017-07-04 at 16.53.47.png
Screen Shot 2017-07-04 at 17.07.35.png
Screen Shot 2017-07-04 at 17.07.06.png
Screen Shot 2017-07-04 at 17.06.29.png
Screen Shot 2017-07-04 at 17.06.13.png

Screen Shot 2017-07-04 at 17.09.18.png
 
Last edited:
Solved!
No need to patch the framebuffers at all.
The steps and resources needed are minimal and straightforward.

Steps:
>> ig-platform-id: 19160002.
>> Do the common DSDT renames (GFX02IGPU, HDAS2HDEF).
>> Inject correct properties for HDEF and IGPU (you can use the pre-made RehabMan's SSDT-IGPU.aml and SSDT-HDEF.aml), eventually overriding HDEF layout-id to 13 if you are following my LTS 9360 guide.
>> Remove Graphics and audio injections from Clover.
>> Remove any FAKEPCIID-INTEL_HDMI_AUDIO kext. No need for it, we don't have HDAU devices.
>> Remove ANY framebuffer hot- or hard-patches.

You'll have native and hot-pluggable HDMI audio via the USB-C connector.
It works with every USB-C => HDMI cable or adapter on the market.

Background:
I also tried to patch the 02001619 framebuffer 0105 connector, but to no avail. Even if I manually force a 08 value inside the kext, IOReg always reports 04. Every other port behaves correctly, if I patch it, it changes connector type reported value. But not 0105. I think it's due to the polymorphic nature of the 0105 port, which is USB-C alternate mode, either DP or HDMI. Anyway, even without framebuffer patching, HDMI video+audio work OOB, and in System Properties, the external HDMI display is correctly listed as HDMI.

View attachment 264883 View attachment 264884 View attachment 264885 View attachment 264886 View attachment 264887
View attachment 264888

Note that some Skylake/KabyLake HDEF requires FakePCIID.kext+FakePCIID_Intel_HDMI_Audio.kext.
Not all though.
It is one of those random things where you have to try both ways...
 
Note that some Skylake/KabyLake HDEF requires FakePCIID.kext+FakePCIID_Intel_HDMI_Audio.kext.
Not all though.
It is one of those random things where you have to try both ways...

Thank you. Edited the text to make it clear.

bozma88 said:
>> Remove any FAKEPCIID-INTEL_HDMI_AUDIO kext. In some systems it's needed, but it's not our case.
 
Mod please delete this post please.
 
Last edited:
Status
Not open for further replies.
Back
Top