Contribute
Register

HP Probook 6470b

Status
Not open for further replies.

I think you're using the wrong EHC DSDT patches (and old ones at that...). Your board has 7-series chip. Native IDs are 8086:1e26, 8086:1e2d. But you're mapping them to 6-series chip 8086:1c26/1c2d. Current patches do not do any device-id mapping, since the native IDs are already correct/supported.

Is this your ioreg with your DSDT that *has* sleep problems, or ioreg with DSDT that *doesn't have* sleep problems?
 
I think you're using the wrong EHC DSDT patches (and old ones at that...). Your board has 7-series chip. Native IDs are 8086:1e26, 8086:1e2d. But you're mapping them to 6-series chip 8086:1c26/1c2d. Current patches do not do any device-id mapping, since the native IDs are already correct/supported.

Is this your ioreg with your DSDT that *has* sleep problems, or ioreg with DSDT that *doesn't have* sleep problems?

ID's 8086:1e26, 8086:1e2d - doesn't sleep. The "new" DSDT.
ID's 8086:1c26, 8086:1c2d - sleep works. This is "old" DSDT.

I am too stupid for DSDT :(
I tried to insert these lines into already patched, "new" DSDT.

"device-id",
Buffer() { 0x26, 0x1c, 0x00, 0x00 },

but got some mess like in the picture, with desired device-id, but 1e26 everywhere else and, of course, sleep doesn't work.
Screen Shot 2013-07-12 at 22.11.09.png
 
ID's 8086:1e26, 8086:1e2d - doesn't sleep. The "new" DSDT.
ID's 8086:1c26, 8086:1c2d - sleep works. This is "old" DSDT.

I am too stupid for DSDT :(
I tried to insert these lines into already patched, "new" DSDT.

"device-id",
Buffer() { 0x26, 0x1c, 0x00, 0x00 },

but got some mess like in the picture, with desired device-id, but 1e26 everywhere else and, of course, sleep doesn't work.
View attachment 61330

Have you tried using the 4x40s EHCI patch?

As far as I can tell, that's the one you should be using. Your native IDs are the ones like the 4540s/7-series chipset.
 
Have you tried using the 4x40s EHCI patch?

As far as I can tell, that's the one you should be using. Your native IDs are the ones like the 4540s/7-series chipset.

As I understand, it is applied automagically if I choose "ProBook 4x40s Ivy Bridge" from your repo in MaciASL.
Actually, I explicitly applied it, too, with the same results :|
The current device ID's are below and sleep doesn't work…
I'm kinda lost.
kpkp, could I look @ your DSDT, please? The downloads section in the first page doesn't work.
Screen Shot 2013-07-12 at 23.04.58.png
 
As I understand, it is applied automagically if I choose "ProBook 4x40s Ivy Bridge" from your repo in MaciASL.
Actually, I explicitly applied it, too, with the same results :|

It is -- I wasn't sure that's what you were doing. Certainly it wasn't when you originally created your "working" DSDT... (because that DSDT is mapping the EHCI device IDs to those used on 6-series hardware)

The current device ID's are below and sleep doesn't work…
I'm kinda lost.
kpkp, could I look @ your DSDT, please? The downloads section in first page doesn't work.
View attachment 61336

Let's make sure we understand what isn't working about sleep... The problem is that the laptop goes to sleep, but then wakes up almost immediately, right? So, sleep is working, is just that it wakes up when it should not.

Did you check your BIOS to be sure sure "Wake on USB" is turned *not* enabled? I know that 4x40s users have to do the same thing. Whether there is a DSDT thing we can do to avoid that, I don't know as I don't have this hardware.
 
As I understand, it is applied automagically if I choose "ProBook 4x40s Ivy Bridge" from your repo in MaciASL.
Actually, I explicitly applied it, too, with the same results :|
The current device ID's are below and sleep doesn't work…
I'm kinda lost.
kpkp, could I look @ your DSDT, please? The downloads section in the first page doesn't work.
View attachment 61336
Here you have a new and a older version (bigger dsdt).
 

Attachments

  • Archive.zip
    71.8 KB · Views: 102
Let's make sure we understand what isn't working about sleep... The problem is that the laptop goes to sleep, but then wakes up almost immediately, right? So, sleep is working, is just that it wakes up when it should not.
Yes, that's correct.

Did you check your BIOS to be sure sure "Wake on USB" is turned *not* enabled? I know that 4x40s users have to do the same thing. Whether there is a DSDT thing we can do to avoid that, I don't know as I don't have this hardware.
Now I had to disable both "Wake on LAN" and "Wake on USB" and then laptop sleeps.
This is great as I really don't need these options.
The only thing that leaves me confused is that there exists another DSDT version where sleep works no matter if these options are on or off. But DSDT ways are inscrutable.
 
Now I had to disable both "Wake on LAN" and "Wake on USB" and then laptop sleeps.
This is great as I really don't need these options.
The only thing that leaves me confused is that there exists another DSDT version where sleep works no matter if these options are on or off. But DSDT ways are inscrutable.

That's exactly what is written down in the guide for 4x40s. Given your board/chipset is very similar, not surprising. Your other DSDT was mapping the IDs to 6-series IDs and that probably tweaks the USB drivers in a particular way. Surprising it works, really, because your chipset is not 6-series, but is 7-series.

If you look at the 4x30s EHCI patches, I have recently commented out the device-id mapping because it is not necessary on the 4x30s (same thing on EHCI 4x40s patches)... The native device-ids are already the same as Apple hardware:

Code:
#    EHCI fix  inject  device 0x1C26 into EHC1 
into method label _DSM parent_adr 0x001D0000 remove_entry;
into device name_adr 0x001D0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        ////Note: Native device-id is already the same as these...\n
        ////"device-id",\n
        ////Buffer() { 0x26, 0x1c, 0x00, 0x00 },\n
        "built-in",\n
        Buffer() { 0x00 },\n
        "AAPL,clock-id",\n
        Buffer() { 0x01 },\n
        "device_type",\n
        Buffer() { "EHCI" },\n
        "AAPL,current-available",\n
        0x0834,\n
        "AAPL,current-extra",\n
        0x0898,\n
        "AAPL,current-extra-in-sleep",\n
        0x0640,\n
        "AAPL,device-internal",\n
        0x02,\n
        "AAPL,max-port-current-in-sleep",\n
        0x0834,\n
        Buffer() { 0x00 }\n
    })\n
}\n
end;

#    EHCI fix inject  device 0x1C2D into EHC2
into method label _DSM parent_adr 0x001A0000 remove_entry;
into device name_adr 0x001A0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        ////Note: Native device-id is already the same as these...\n
        ////"device-id",\n
        ////Buffer() { 0x2d, 0x1c, 0x00, 0x00 },\n
        "built-in",\n
        Buffer() { 0x00 },\n
        "AAPL,clock-id",\n
        Buffer() { 0x02 },\n
        "device_type",\n
        Buffer() { "EHCI" },\n
        "AAPL,current-available",\n
        0x0834,\n
        "AAPL,current-extra",\n
        0x0898,\n
        "AAPL,current-extra-in-sleep",\n
        0x0640,\n
        "AAPL,device-internal",\n
        0x02,\n
        "AAPL,max-port-current-in-sleep",\n
        0x0834,\n
        Buffer() { 0x00 }\n
    })\n
}\n
end;

You were using an earlier version of the patches where those lines were not commented. Thus you were tricking the driver into thinking that your device-ids were that of typical Sandy Bridge (6-series) hardware, instead of what it truly is...
 
A comparison between yours and mine shows that there really is no significant difference. First place where F.40 differs from F.42 (see my post #418) and the other is Method (FCPU, 0, Serialized).
I assume you also have "Wake on LAN" and "Wake on USB" disabled in BIOS.
Screen Shot 2013-07-13 at 16.23.08.png
 
Status
Not open for further replies.
Back
Top