Contribute
Register

HP EliteBook 840 G2

Status
Not open for further replies.
I'm back,

I think the Docking station's DisplayPort is not working because they are DualLink.

On the hp eliteBook 820 G2, the build-in DP port is a single port,
but when connecting the docking station, this one is reported as DualLink.

Build-in = DPx1 --> docking station = DPx2
connecting on the Docking DP port use the same Framebuffer as the build-in one.

i tried to patch the dsdt (no gpu in ssdt) to activate the duallink, but only got a black screen on the internal screen.

I used this patch for single link:
(from Austere.J : http://www.tonymacx86.com/yosemite-...hd-graphics-5500-os-x-yosemite-10-10-3-a.html)
Code:
into method label _DSM parent_adr 0x00020000 remove_entry;
into device name_adr 0x00020000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package(0x08)\n
    {\n
        "device-id", Buffer(0x04) { 0x16, 0x16, 0x00, 0x00 },\n
        "AAPL,ig-platform-id", Buffer(0x04) { 0x02, 0x00, 0x16, 0x16 },\n
        "hda-gfx", Buffer(0x0A) { "onboard-1" },\n
        "model", Buffer(0x17) { "Intel HD 5500" },\n
    })\n
}\n
end;

then i changed it to:
Code:
into method label _DSM parent_adr 0x00020000 remove_entry;
into device name_adr 0x00020000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package(0x10)\n
    {\n
        "device-id", Buffer(0x04) { 0x16, 0x16, 0x00, 0x00 },\n
        "AAPL00,DualLink", Buffer() { 0x01, 0x00, 0x00, 0x00 },\n
        "AAPL,ig-platform-id", Buffer(0x04) { 0x02, 0x00, 0x16, 0x16 },\n
        "hda-gfx", Buffer(0x0A) { "onboard-1" },\n
        "model", Buffer(0x17) { "Intel HD 5500" },\n
    })\n
}\n
end;

I also tried to add DGPT:
Code:
into method label _DSM parent_adr 0x00020000 remove_entry;
into device name_adr 0x00020000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package(0x10)\n
    {\n
        "device-id", Buffer(0x04) { 0x16, 0x16, 0x00, 0x00 },\n
        "AAPL00,DualLink", Buffer() { 0x01, 0x00, 0x00, 0x00 },\n
        "AAPL,ig-platform-id", Buffer(0x04) { 0x02, 0x00, 0x16, 0x16 },\n
        "hda-gfx", Buffer(0x0A) { "onboard-1" },\n
        "model", Buffer(0x17) { "Intel HD 5500" },\n
    })\n
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
Return (Local0)\n
}\n
end;
and
Code:
# Add method DTGP to the main block, it's used by other patches
#
into method label DTGP remove_entry;
into definitionblock code_regex . insert
begin
Method (DTGP, 5, NotSerialized)\n
{\n
    If (LEqual (Arg0, Buffer (0x10)\n
            {\n
                /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, \n
                /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n
            }))\n
    {\n
        If (LEqual (Arg1, One))\n
        {\n
            If (LEqual (Arg2, Zero))\n
            {\n
                Store (Buffer (One)\n
                    {\n
                        0x03\n
                    }, Arg4)\n
                Return (One)\n
            }\n
            If (LEqual (Arg2, One))\n
            {\n
                Return (One)\n
            }\n
        }\n
    }\n
    Store (Buffer (One)\n
        {\n
            0x00\n
        }, Arg4)\n
    Return (Zero)\n
}
end

none of them worked.

someone to debug me ?
I attach my ioreg and dumped and patched dsdt (single link/screen).

thanks !
 

Attachments

  • anjali.ioreg
    3.9 MB · Views: 192
  • dsdt.zip
    157.7 KB · Views: 98
AAPL00,DualLink has no effect as the kext doesn't contain the string:
Code:
# check yourself
strings /System/Library/Extensions/AppleIntelBDWGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelBDWGraphicsFramebuffer |grep -y duallink

DualLink was last used with HD3000.

I believe the duallink flag is now in the framebuffer connector data...

Note difference in HD4000 (Capri) data for LVDS 0x01660003 vs 0x01660004:

0x01660003: 0503 0000 0200 0000 3000 0000

0x01660004: 0503 0000 0200 0000 3002 0000
 
strings /System/Library/Extensions/AppleIntelBDWGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelBDWGraphicsFramebuffer |grep -y duallink
==> nothing
that's it, no DualLink in the kext.

searching AAPL give:
strings /System/Library/Extensions/AppleIntelBDWGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelBDWGraphicsFramebuffer |grep -y AAPL
Code:
AAPL,DisplayPipe
AAPL,boot-display
AAPL,override-has-edid-digital
AAPL0%d,IgnoreConnection
AAPL0%d,no-hotplug-interrupt
AAPL,ig-platform-id
AAPL00,T1
AAPL00,T2
AAPL00,T3
AAPL00,T4
AAPL00,T5
AAPL00,T6
AAPL00,T7
AAPL0%d,override-no-connect
AAPL0%d,override-has-edid
AAPL0%d,override-no-edid
AAPL0%d,override-has-edid-digital
AAPL0%d,no-hotplug-support
AAPL,gray-value

well, so i have to add a AAPL00,DualLink strings in it.

sudo perl -pi -e 's|??|; s|??|' /System/Library/Extensions/AppleIntelBDWGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelBDWGraphicsFramebuffer

how to find <?? > value ?

Edit:
see you have edited.
ok, i will look at this.

cheers

Edit:
i have:
2000000300200000
1050B0000040000070500000
2040B000004000007050000
I haven't found information about the 07050000
I've seen that all DP have that value in all broadwell layout.
 
yeah,

1050B000004000007050000
pathcing to:
1050B000004000030020000 ==> black screen
patching to:
1050B000004000007020000 ==> black screen

07050000 is surely
07 = something
05 = something
0000 = ?

many days i'm searching, but no info about what it is.

thanks
 
yeah,

1050B000004000007050000
pathcing to:
1050B000004000030020000 ==> black screen
patching to:
1050B000004000007020000 ==> black screen

You want to change only that single bit.

Note that bit assignments may be different between the different graphics drivers.
 
well, not sure if changing this bit will enable dualLink.

but no more info about this bit.

i've read a bit of data, and DP connector have different value, ex:
0x01660003:
0205 0000 0004 0000 0704 0000
0304 0000 0004 0000 8100 0000

0x16260006:
0105 0B00 0004 0000 0705 0000

in AppleIntelBDWGraphicsFramebuffer:
eDP, always look like:
0105 0900 0400 0000 0400 0000
DP, always look like:
0105 0B00 0004 0000 0705 0000
the only DP with a different bit is:
0x161e0001:
0105 0900 0004 0000 0710 0000

nothing revelant.
so have to test till i got a working one.
9999 possibilities ! good !
 
well, not sure if changing this bit will enable dualLink.

I'm not sure either. I *know* it does on HD4000. But that's why I suggested you test it.

but no more info about this bit.

i've read a bit of data, and DP connector have different value, ex:
0x01660003:
0205 0000 0004 0000 0704 0000
0304 0000 0004 0000 8100 0000

0x16260006:
0105 0B00 0004 0000 0705 0000

Yes DP and LVDS have different data. I'm referring only to the single bit I highlighted earlier.

nothing revelant.

Maybe/maybe not. You'll find out when you test it.

so have to test till i got a working one.
9999 possibilities ! good !

Only one test required to see if the same bit helps.
 
here some info,

when i have black screen, i see display in ioreg, but nothing in monitor preference.

010509000004000007050000 => black screen laptop and docking (with display-pipe ff ff 00 00)
01050B000004000007050000 => working laptop DPx1 (with display-pipe 01 00 00 00) not working docking DPx2 (with display-pipe ff ff 00 00)

to have a the docking DPx2, i think that’s be pipe issue.
01050A000004000007050000 => working laptop DPx1 (with display-pipe 01 00 00 00) not working docking DPx2 (with display-pipe 01 00 00 00)

So this is better, but not working.
fb#2 set to:
02040A000004000080000000
but nothing plugged on it, so doesn’t matter.
it still not working for the docking dpx2

i’ve found this about pipe:
A = eDPx2 (mac/windows)
B = DP/eDP/HDMI (mac/windows)
C = DP/eDP/HDMI (mac/windows)
D = eDPx4 et VGA (windows)

well, trying to change DP to eDP, and let’s see.
change
01050A000004000007050000
02040A000004000080000000
to
01050A000400000007050000
02040A000400000007050000
=> working laptop DPx1 (with display-pipe 01 00 00 00) not working docking DPx2 (with display-pipe 01 00 00 00)

still not working !

well i test dualLink patch:
ASCII: AAPL,ig-platform-id
HEX: 4141504C2C69672D706C6174666F726D2D6964

ASCII: AAPL00,T7
Hex: 4141504C30302C5437

ASCII: AAPL00,DualLink
Hex: 4141504C30302C4475616C4C696E6B

adding patch in clover => AAPL00,T7 to AAPL00,DualLink
==> no change

adding dual link dsdt patch ==> no change

I’m using Dp to Hdmi convertor.
maybe i should try Hdmi connector type.

i’m tired now.
let’s try later.

but for now, i'm sure that is pipe and connector type who cares in my case.

see you
 
yeah,

1050B000004000007050000

Note that to set the dual-link bit, need instead of 5 (4+1), ... 7 (4+1+2).

Just thought I should point that out...
 
Status
Not open for further replies.
Back
Top