Contribute
Register

[solved] no bt after sleep

Status
Not open for further replies.
no bt after sleep

done ,but still my usb 3.0 flash drive in usb 2.0 hub :(

Are you certain the flash is USB3? Have you verified in Windows?
Do you have other USB3 devices to test?

Otherwise likely problem is that USB3 is not enabled(due to XSEL doing nothing).

Instead of patching XSEL, patch XWAK:
Code:
into method label XWAK replace_content begin //nothing end;
 
no bt after sleep

Are you certain the flash is USB3? Have you verified in Windows?
Do you have other USB3 devices to test?
the flash drive i'm using is this
http://www.lexar.com/flash-drives/jumpdrive-s25?category=207
and also my seagate 1tb usb 3.0 HDD >> same results :(
Otherwise likely problem is that USB3 is not enabled(due to XSEL doing nothing).

Instead of patching XSEL, patch XWAK:
Code:
into method label XWAK replace_content begin //nothing end;
i'll test right now !
 
no bt after sleep

no , not working still in usb 2.0 hub
may try removing mux kext ?

Edit:-
after removing mux kext :>
but all usb properties now merged to usb 3.0 bus(is that okay)
by the way same results can be obtained with my old DSDT (which did not removed XWAK)
 
no bt after sleep

no , not working still in usb 2.0 hub

Let's check the work...

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip
Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

In terminal,
Code:
if [ -d ~/Downloads/RehabMan ]; then rm -R ~/Downloads/RehabMan; fi
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract

Note: It is easier if you use copy/paste instead of typing the commands manually.

Post contents of Downloads/RehabMan directory (as ZIP).

Also, post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.
 
no bt after sleep

Let's check the work...

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip
Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

In terminal,
Code:
if [ -d ~/Downloads/RehabMan ]; then rm -R ~/Downloads/RehabMan; fi
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract

Note: It is easier if you use copy/paste instead of typing the commands manually.

Post contents of Downloads/RehabMan directory (as ZIP).

Also, post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.
i modified my previous post bit can you please look
 
no bt after sleep

i modified my previous post bit can you please look

You forgot ioreg.

But I have an idea.... If you look at your DSDT, XSEL method:
Code:
            Method (XSEL, 0, Serialized)
            {
                If (LOr (LEqual (XHCI, 0x02), LEqual (XHCI, 0x03)))
                {
                    Store (One, XUSB)
                    Store (One, XRST)
                    Store (Zero, Local0)
                    And (PR3, 0xFFFFFFC0, Local0)
                    Or (Local0, PR3M, PR3)
                    Store (Zero, Local0)
                    And (PR2, 0xFFFF8000, Local0)
[B]                    Or (Local0, 0x5F, PR2)
[/B]                }
            }

From the line in bold, you can see that your computer is normally configured with all USB2 ports on XHC kept on XHC, *except* port 6. And port 6 is your bluetooth.

Why do I say that? 0x5F is 01011111 binary. Any 1 in PR2 means the port is kept on XHCI, not routed to EHCI. The highlighted 0 is the bit that corresponds to port 6 (it is zero based bit 5). Because that bit is zero, the port is routed to EHCI. My suggestion would be to enforce this exact configuration when running OS X.

You can do this by injecting RM,pr2-force on XHC with the 0x5f data...

Apply this patch:
Code:
# Insert Apple USB properties into USB 3.0 XHC
into method label _DSM parent_adr 0x00140000 remove_entry;
into device name_adr 0x00140000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n
        "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n
        "AAPL,current-available", 2100,\n
        "AAPL,current-extra", 2200,\n
        "AAPL,current-extra-in-sleep", 1600,\n
        "AAPL,device-internal", 0x02,\n
        "AAPL,max-port-current-in-sleep", 2100,\n
        [B]"RM,pr2-force", Buffer() { 0x5f, 00, 00, 00 },\n[/B]
    })\n
}\n
end;

Then, it won't matter that XSEL/XWAK are setting it (because it will set to the same value).

Note: You need to use FakePCIID_XHCIMux for RM,pr2-force to have an effect. You will notice that only your BT device gets routed to EHCI. The other ports will stay on XHC.
 
no bt after sleep

You forgot ioreg.

But I have an idea.... If you look at your DSDT, XSEL method:
Code:
            Method (XSEL, 0, Serialized)
            {
                If (LOr (LEqual (XHCI, 0x02), LEqual (XHCI, 0x03)))
                {
                    Store (One, XUSB)
                    Store (One, XRST)
                    Store (Zero, Local0)
                    And (PR3, 0xFFFFFFC0, Local0)
                    Or (Local0, PR3M, PR3)
                    Store (Zero, Local0)
                    And (PR2, 0xFFFF8000, Local0)
[B]                    Or (Local0, 0x5F, PR2)
[/B]                }
            }

From the line in bold, you can see that your computer is normally configured with all USB2 ports on XHC kept on XHC, *except* port 6. And port 6 is your bluetooth.

Why do I say that? 0x5F is 01011111 binary. Any 1 in PR2 means the port is kept on XHCI, not routed to EHCI. The highlighted 0 is the bit that corresponds to port 6 (it is zero based bit 5). Because that bit is zero, the port is routed to EHCI. My suggestion would be to enforce this exact configuration when running OS X.

You can do this by injecting RM,pr2-force on XHC with the 0x5f data...

Apply this patch:
Code:
# Insert Apple USB properties into USB 3.0 XHC
into method label _DSM parent_adr 0x00140000 remove_entry;
into device name_adr 0x00140000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n
        "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n
        "AAPL,current-available", 2100,\n
        "AAPL,current-extra", 2200,\n
        "AAPL,current-extra-in-sleep", 1600,\n
        "AAPL,device-internal", 0x02,\n
        "AAPL,max-port-current-in-sleep", 2100,\n
        [B]"RM,pr2-force", Buffer() { 0x5f, 00, 00, 00 },\n[/B]
    })\n
}\n
end;

Then, it won't matter that XSEL/XWAK are setting it (because it will set to the same value).

Note: You need to use FakePCIID_XHCIMux for RM,pr2-force to have an effect. You will notice that only your BT device gets routed to EHCI. The other ports will stay on XHC.
brilliant idea !!!!
i'll try
here i add ioreg(but i removed mux kext )
but to test above patch i'll install again
 
no bt after sleep

whoa!!!!!
that did the trick !!!:headbang:
thanks man!!
 
no bt after sleep

whoa!!!!!
that did the trick !!!:headbang:
thanks man!!

No USB3 device plugged in... but I assume still working and connecting to SSP1 on XHC?

Now you can do some further work on your port injector and get rid of USBInjectAll.
 
no bt after sleep

No USB3 device plugged in... but I assume still working and connecting to SSP1 on XHC?

Now you can do some further work on your port injector and get rid of USBInjectAll.
so that problem fixed ?
 
Status
Not open for further replies.
Back
Top