Contribute
Register
Status
Not open for further replies.
I think this was the patch I used (or a derivative of it) probably and older version of it since I did it in June/July

Code:
# Maintained by: PJALM for: PJALM Intel7 at: Thu Aug 15 09:07:46 UTC 2013# Patch Name   : USB Multiplex


# Intel z77 USB2/USB3 Multiplexing Fix
# USB3 patches in thanks to SJ_Underwater and Mieze
# Code optimizations thanks to RehabMan and PikeRAlpha


# Add method OSDW to the main block, it's used by the USB3 patches
into method label OSDW remove_entry;
into definitionblock code_regex . insert
begin
Method (OSDW, 0, NotSerialized)\n
{\n
    If (LEqual (OSYS, 0x2710))\n
    {\n
        Return (One)\n
    }\n
    Else\n
    {\n
        Return (Zero)\n
    }\n
}
end;


# Fix method _OSC
into method label _OSC parent_label PCI0 remove_entry;
into device label PCI0 parent_label _SB insert
begin
Method (_OSC, 4, Serialized)\n
{\n
    Store (Arg3, Local0)\n
    CreateDWordField (Local0, Zero, CDW1)\n
    CreateDWordField (Local0, 0x04, CDW2)\n
    CreateDWordField (Local0, 0x08, CDW3)\n
    Store (CDW2, SUPP)\n
    Store (CDW3, CTRL)\n
    If (LEqual (One, OSDW ()))\n
    {\n
        If (LAnd (LEqual (Arg0, GUID), NEXP))\n
        {\n
            If (Not (And (CDW1, One)))\n
            {\n
                If (And (CTRL, 0x02))\n
                {\n
                    NHPG ()\n
                }\n
\n
                If (And (CTRL, 0x04))\n
                {\n
                    NPME ()\n
                }\n
            }\n
\n
            If (LNotEqual (Arg1, One))\n
            {\n
                Or (CDW1, 0x08, CDW1)\n
            }\n
\n
            If (LNotEqual (CDW3, CTRL))\n
            {\n
                Or (CDW1, 0x10, CDW1)\n
            }\n
\n
            Store (CTRL, CDW3)\n
            Store (CTRL, OSCC)\n
            Return (Local0)\n
        }\n
        Else\n
        {\n
            Or (CDW1, 0x04, CDW1)\n
            Return (Local0)\n
        }\n
    }\n
    Else\n
    {\n
        If (LEqual (Arg0, Buffer (0x10)\n
            {\n
                /* 0000 */   0xA9, 0x12, 0x95, 0x7C, 0x05, 0x17, 0xB4, 0x4C,\n
                /* 0008 */   0xAF, 0x7D, 0x50, 0x6A, 0x24, 0x23, 0xAB, 0x71\n
            }))\n
        {\n
            Store (One, ^XHC1.PASS)\n
            Store (One, ^XHC1.PAHC)\n
            Store (One, ^XHC1.PBSS)\n
            Store (One, ^XHC1.PBHC)\n
            Store (One, ^XHC1.PCSS)\n
            Store (One, ^XHC1.PCHC)\n
            Store (One, ^XHC1.PDSS)\n
            Store (One, ^XHC1.PDHC)\n
        }\n
        Return (Local0)\n
    }\n
}
end;


# Fix EHC1
into Device label PR11 code_regex Name\s\(MUXS[^)]+\) remove_matched;
into device label PR11 parent_label PR01 insert begin Name (MUXS, "XHCA") end;
into Device label PR12 code_regex Name\s\(MUXS[^)]+\) remove_matched;
into device label PR12 parent_label PR01 insert begin Name (MUXS, "XHCB") end;
into Device label PR13 code_regex Name\s\(MUXS[^)]+\) remove_matched;
into device label PR13 parent_label PR01 insert begin Name (MUXS, "XHCC") end;
into Device label PR18 code_regex Name\s\(MUXS[^)]+\) remove_matched;
into device label PR18 parent_label PR01 insert begin Name (MUXS, "XHCD") end;


into method label XHCA parent_label EHC1 remove_entry;
into method label XHCB parent_label EHC1 remove_entry;
into method label XHCC parent_label EHC1 remove_entry;
into method label XHCD parent_label EHC1 remove_entry;
into method label EHCA parent_label EHC1 remove_entry;
into method label EHCB parent_label EHC1 remove_entry;
into method label EHCC parent_label EHC1 remove_entry;
into method label EHCD parent_label EHC1 remove_entry;
into method label XHCN parent_label EHC1 remove_entry;
into device label EHC1 code_regex Name\s\(XHCN,\sOne\) remove_matched;


into device label EHC1 insert begin
Name (XHCN, One)\n
Method (XHCA, 0, NotSerialized)\n
{\n
    Store (One, ^^XHC1.PAHC)\n
}\n
Method (XHCB, 0, NotSerialized)\n
{\n
    Store (One, ^^XHC1.PBHC)\n
}\n
Method (XHCC, 0, NotSerialized)\n
{\n
    Store (One, ^^XHC1.PCHC)\n
}\n
Method (XHCD, 0, NotSerialized)\n
{\n
    Store (One, ^^XHC1.PDHC)\n
}\n
Method (EHCA, 0, NotSerialized)\n
{\n
    Store (Zero, ^^XHC1.PAHC)\n
}\n
Method (EHCB, 0, NotSerialized)\n
{\n
    Store (Zero, ^^XHC1.PBHC)\n
}\n
Method (EHCC, 0, NotSerialized)\n
{\n
    Store (Zero, ^^XHC1.PCHC)\n
}\n
Method (EHCD, 0, NotSerialized)\n
{\n
    Store (Zero, ^^XHC1.PDHC)\n
}\n
end;


# Fix EHC2
into method label XHCN parent_label EHC2 remove_entry;
into device label EHC2 code_regex Name\s\(XHCN,\sOne\) remove_matched;
into device label EHC2 insert begin Name (XHCN, One)\n end;


# Fix XHC1
into device label XHC set_label begin XHC1 end;
into_all all code_regex XHC(?=\W) replaceall_matched begin XHC1 end;
into method label _WAK code_regex \_SB.PCI0.XHC1.XWAK replace_matched begin _SB.PCI0.XHC1._INI end;


into device label XHC1 replace_content begin
Name (_ADR, 0x00140000)\n
Name (_S3D, 0x02)\n
Name (_S4D, 0x02)\n
Name (XRST, Zero)\n
\n
OperationRegion (XPRT, PCI_Config, 0x74, 0x10)\n
Field (XPRT, DWordAcc, NoLock, Preserve)\n
{\n
    Offset (0x01),\n
    PMEE,   1,\n
        ,   6,\n
    PMES,   1\n
}\n
\n
OperationRegion (XH1C, PCI_Config, 0xD0, 0x10)\n
Field (XH1C, ByteAcc, NoLock, Preserve)\n
{\n
    PAHC,   1,\n
    PBHC,   1,\n
    PCHC,   1,\n
    PDHC,   1,\n
    Offset (0x08),\n
    PASS,   1,\n
    PBSS,   1,\n
    PCSS,   1,\n
    PDSS,   1\n
}\n
\n
OperationRegion (XHC2, PCI_Config, 0x44, 0x04)\n
Field (XHC2, ByteAcc, NoLock, Preserve)\n
{\n
    Offset (0x01),\n
    MIAI,   2\n
}\n
\n
Method (_INI, 0, NotSerialized)\n
{\n
    If (OSDW ())\n
    {\n
        Store (Zero, MIAI)\n
    }\n
\n
    If (LAnd (LGreaterEqual (OSYS, 0x07DC), LLess (OSYS, 0x2710)))\n
    {\n
        Store (One, PASS)\n
        Store (One, PAHC)\n
        Store (One, PBSS)\n
        Store (One, PBHC)\n
        Store (One, PCSS)\n
        Store (One, PCHC)\n
        Store (One, PDSS)\n
        Store (One, PDHC)\n
    }\n
}\n
\n
Device (RHUB)\n
{\n
    Name (_ADR, Zero)\n
    Device (PRT1)\n
    {\n
        Name (_ADR, One)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
                {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCA")\n
    }\n
\n
    Device (PRT2)\n
    {\n
        Name (_ADR, 0x02)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
            {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCB")\n
    }\n
\n
    Device (PRT3)\n
    {\n
        Name (_ADR, 0x03)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
                {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCC")\n
    }\n
\n
    Device (PRT4)\n
    {\n
        Name (_ADR, 0x04)\n
        Method (_UPC, 0, Serialized)\n
        {\n
            Name (UPCP, Package (0x04)\n
            {\n
                0xFF,\n
                0x03,\n
                Zero,\n
                Zero\n
            })\n
            Return (UPCP)\n
        }\n
\n
        Method (_PLD, 0, Serialized)\n
        {\n
            Name (PLDP, Package (0x01)\n
            {\n
                Buffer (0x10)\n
                {\n
                    /* 0000 */   0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                    /* 0008 */   0x69, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00\n
                }\n
            })\n
            Return (PLDP)\n
        }\n
        Name (MUXS, "EHCD")\n
    }\n
}\n
\n
Method (_PRW, 0, NotSerialized)\n
{\n
    Return (GPRW (0x0D, 0x04))\n
}\n
\n
Method (XHCA, 0, NotSerialized)\n
{\n
    Store (One, PAHC)\n
}\n
\n
Method (XHCB, 0, NotSerialized)\n
{\n
    Store (One, PBHC)\n
}\n
\n
Method (XHCC, 0, NotSerialized)\n
{\n
    Store (One, PCHC)\n
}\n
\n
Method (XHCD, 0, NotSerialized)\n
{\n
    Store (One, PDHC)\n
}\n
\n
Method (EHCA, 0, NotSerialized)\n
{\n
    Store (Zero, PAHC)\n
}\n
\n
Method (EHCB, 0, NotSerialized)\n
{\n
    Store (Zero, PBHC)\n
}\n
\n
Method (EHCC, 0, NotSerialized)\n
{\n
    Store (Zero, PCHC)\n
}\n
\n
Method (EHCD, 0, NotSerialized)\n
{\n
    Store (Zero, PDHC)\n
}\n
\n
Method (_DSM, 4, NotSerialized)\n
{\n
    Store (Package (0x15)\n
        {\n
            "AAPL,slot-name", "Built In",\n
            "name", "Intel xHCI Controller",\n
            "model", "Intel 7 Series Chipset Family USB xHCI Host Controller",\n
            "device_type", "USB Controller",\n
            "AAPL,current-available", 0x0834,\n
            "AAPL,current-extra", 0x0A8C,\n
            "AAPL,current-in-sleep", 0x03E8,\n
            "AAPL,current-extra-in-sleep", 0x0834,\n
            "AAPL,max-port-current-in-sleep", 0x0A8C,\n
            "AAPL,device-internal", 0x02,\n
            Buffer (One) {0x00}\n
        }, Local0)\n
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
    Return (Local0)\n
}
end;


Jos1984, XMYUKON,
you can experiment and do a quick test with this one if you like. Not promising it will fix anything, but the fun part is the experiment right? :)

Just wanted to chime in that this patched worked for me on the U410. Restored USB 2.0 devices on the 3.0 ports with stock AppleUSBXHCI. Sweet.

Now I have a camera and USB 3.0 :D
 
Good info in the past posts.

Just wanted to chime in that this patched worked for me on the U410. Restored USB 2.0 devices on the 3.0 ports with stock AppleUSBXHCI. Sweet.

Now I have a camera and USB 3.0 :D

Does sleep work as well? How do you verify 3.0?
 
Also, apologies Rehabman. I didn't mean to step all over or derail all the work and help you are providing on recent posts to Jos and XM

Could you verify (yes or no) if your brightness controls make the Apple brightness pop up show as in this photo?

incremental-volume-brightness-adjustments-mac-os-x.jpg
 
Could you verify (yes or no) if your brightness controls make the Apple brightness pop up show as in this photo?

View attachment 69900

no brightness slider but the buttons work to adjust brightness (F11/F12).

yes, I do see the volume slider with the buttons and volume control works as well (F1/F2/F3)
 
no brightness slider but the buttons work.

I do see the volume slider with the buttons and volume control works as well

Same here. Hmm... I wonder if there is a solution.
 
Same here. Hmm... I wonder if there is a solution.

Rehabman answered this question once. the buttons are controlled via bios (or hard coded) or something like that.

you can try using F8 to see the brightness slider but it doesnt do anything to adjust brightness.
you can try remapping keys if you like.

this is just another cosmetic thing. doesn't bother me as long as the F11/F12 work to adjust brightness
 
Good info in the past posts.



Does sleep work as well? How do you verify 3.0?

try sticking in a usb3 stick and it doesnt freeze and the camera works

- - - Updated - - -

Hey no worries. Progress is progress. That UHC patch should give me a start in understanding. Me ... Watching football at the moment ... Nice work guys there is lots of good information in the recent posts.


Go Niners! :headbang:
 
I have been trying to learn everything I can about the brightness these last few hours. I am away from computer right now will post some links that I have been reading but I have not attempted anything. It's hard for me to manually inject a property without messing up the syntax lol. I think that brightness might work with a few more properties in the DSDT.
 
try sticking in a usb3 stick and it doesnt freeze and the camera works

I'm a poor guy. I don't own a USB3 stick :)

- - - Updated - - -

I have been trying to learn everything I can about the brightness these last few hours. I am away from computer right now will post some links that I have been reading but I have not attempted anything. It's hard for me to manually inject a property without messing up the syntax lol. I think that brightness might work with a few more properties in the DSDT.

Great. I think I may know what you are referring to but same here.
 
I just did a few tests on the USB 3.0. Its definitely USB 3.0. I copied 2GB via USB 3.0 HDD enclosure in about one to two minutes.

It was acting funny after sleep, but it was not interfering with sleep. When I returned from sleep the device kept mounting and unmounting.

If there is no 3.0 drive attached to the 3.0 hub then the camera on its own not interfere or malfunction after sleep. Additionally, I tested by having the camera on inside facetime, then putting the machine to sleep, the camera goes off (led indicator goes off), and when I wake it up the camera returns to the powered on state.

Issue with mounting and unmounting does not occur with USB 2.0 thumb drive, however the thumb drive shows up grey on the desktop and the USB 3.0 showing up orange.
 
Status
Not open for further replies.
Back
Top