Contribute
Register

Dell Inspiron 15 3542

Status
Not open for further replies.
Sorry, I overlooked that my patched SSDTs start from SSDT-1. I already have the patched DSDT and SSDTs in the /EFI/Clover/ACPI/patched/ folder in the EFI partition. Should this additional SSDT be renamed to SSDT-9 since the last SSDT I have is SSDT-8.aml or just be added as SSDT.aml. I ask this question because I don't know if adding it just like that would result in it getting dropped or not.

The name doesn't matter. Whatever name you choose must be in SortedOrder.

It was mentioned in your guide that all SSDTs reference each other and are dependent on each other.

Can be true of OEM SSDTs (and thus patched OEM SSDTs), but not necessarily true of add-on SSDTs.

This is the SGOF definition:
Code:
        Method (SGOF, 0, Serialized)
        {
            If (LEqual (CCHK (Zero), Zero))
            {
                Return (Zero)
            }

            Store (Zero, ONOF)
            Store (LCTL, ELCT)
            Store (SVID, HVID)
            Store (SDID, HDID)
            Store (LREN, LTRE)
            Store (One, LNKD)
            While (LNotEqual (LNKS, Zero))
            {
                Sleep (One)
            }

            SGPO (HLRS, One)
            SGPO (PWEN, Zero)
            Return (Zero)
        }

It does not seem to be calling any EC method.

Calls SGPO, so you'll need to look at that method too.

How can I test whether the EC method is being called or not? Isn't it enough that it is within the method although in an "if" block?

You would need to use ACPIDebug to verify code path.
 
The name doesn't matter. Whatever name you choose must be in SortedOrder.



Can be true of OEM SSDTs (and thus patched OEM SSDTs), but not necessarily true of add-on SSDTs.



Calls SGPO, so you'll need to look at that method too.



You would need to use ACPIDebug to verify code path.

Hello RehabMan! A Happy New Year to you. It's been a while since your last post to this thread. I was trying to implement power management as well as disable discrete graphics. The motive to accomplish both is to get my sleep working (which still doesn't work properly yet). I have divided the post into two sections for your convenience.

Implementing Power Management

I added the generated SSDT.aml from ssdtPRGen.sh to my patched ACPI files. I tested it with AppleIntelInfo.kext.

Here is the output:
Code:
bash-3.2$ sudo cat /tmp/AppleIntelInfo.dat

AppleIntelInfo.kext v1.2 Copyright © 2012-2015 Pike R. Alpha. All rights reserved

Settings:
------------------------------------
logMSRs............................: 1
logIGPU............................: 1
logIntelRegs.......................: 1
logCStates.........................: 1
logIPGStyle........................: 1
InitialTSC.........................: 0x70c0c24506
MWAIT C-States.....................: 286531872

Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35)  : 0x20004
MSR_PLATFORM_INFO..........(0xCE)  : 0x8083DF3011400
MSR_PMG_CST_CONFIG_CONTROL.(0xE2)  : 0x1E008404
MSR_PMG_IO_CAPTURE_BASE....(0xE4)  : 0x51814
IA32_MPERF.................(0xE7)  : 0x37B9CE2CF6
IA32_APERF.................(0xE8)  : 0x4E33CCBAFA
MSR_FLEX_RATIO.............(0x194) : 0x11400
MSR_IA32_PERF_STATUS.......(0x198) : 0x1D1C00001C00
MSR_IA32_PERF_CONTROL......(0x199) : 0x1F00
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x88280800
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x400001
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x1C1C1C1F
IA32_ENERGY_PERF_BIAS......(0x1B0) : 0xF
MSR_POWER_CTL..............(0x1FC) : 0x4005F
MSR_RAPL_POWER_UNIT........(0x606) : 0xA0E03
MSR_PKG_POWER_LIMIT........(0x610) : 0x804280C800DD80C8
MSR_PKG_ENERGY_STATUS......(0x611) : 0x319A026
MSR_PKG_POWER_INFO.........(0x614) : 0x78
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x4010141480000100
MSR_PP0_POWER_LIMIT........(0x638) : 0x0
MSR_PP0_ENERGY_STATUS......(0x639) : 0x235C140
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_PP1_POWER_LIMIT........(0x640) : 0x0
MSR_PP1_ENERGY_STATUS......(0x641) : 0x5EFFD
MSR_PP1_POLICY.............(0x642) : 0x18
MSR_CONFIG_TDP_NOMINAL.....(0x648) : 0x14
MSR_CONFIG_TDP_LEVEL1......(0x649) : 0x8005C
MSR_CONFIG_TDP_LEVEL2......(0x64a) : 0x1400C8
MSR_CONFIG_TDP_CONTROL.....(0x64b) : 0x0
MSR_TURBO_ACTIVATION_RATIO.(0x64c) : 0x0
MSR_PKGC3_IRTL.............(0x60a) : 0x8842
MSR_PKGC6_IRTL.............(0x60b) : 0x8873
MSR_PKGC7_IRTL.............(0x60c) : 0x8891
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0x358A136B8
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
MSR_PKG_C7_RESIDENCY.......(0x3fa) : 0x0
MSR_PKG_C8_RESIDENCY.......(0x630) : 0x0
MSR_PKG_C9_RESIDENCY.......(0x631) : 0x0
MSR_PKG_C10_RESIDENCY......(0x632) : 0x0
MSR_PKG_C8_LATENCY.........(0x633) : 0x0
MSR_PKG_C9_LATENCY.........(0x634) : 0x0
MSR_PKG_C10_LATENCY........(0x635) : 0x0
IA32_TSC_DEADLINE..........(0x6E0) : 0x70C31333D0
PCH device.................: 0x9C438086

Intel Register Data
------------------------------------
CPU_VGACNTRL...............: 0xAD504299
IS_HASWELL(devid) || IS_BROADWELL(devid)
HSW_PWR_WELL_CTL1..........: 0x55ac6270
HSW_PWR_WELL_CTL2..........: 0x0000328c
HSW_PWR_WELL_CTL3..........: 0x55ac6390
HSW_PWR_WELL_CTL4..........: 0x0000328c
HSW_PWR_WELL_CTL5..........: 0x5701d478
HSW_PWR_WELL_CTL6..........: 0x00002e95
PIPE_DDI_FUNC_CTL_A........: 0x2d746e65 (disabled, DDIC, mode reserved, bpc reserved, -VSync, -HSync, EDP C ONOFF, reserved width)
PIPE_DDI_FUNC_CTL_B........: 0x5735df40 (disabled, port reserved, mode reserved, 12 bpc, -VSync, +HSync, EDP B ONOFF, x1)
PIPE_DDI_FUNC_CTL_C........: 0x00000000 (disabled, no port, HDMI, 8 bpc, -VSync, -HSync, EDP A ON, x1)
PIPE_DDI_FUNC_CTL_EDP......: 0x3e0d4cf9 (disabled, DDID, mode reserved, 8 bpc, -VSync, +HSync, EDP A ONOFF, reserved width)
DP_TP_CTL_A................: 0x00000000
DP_TP_CTL_B................: 0x00000001
DP_TP_CTL_C................: 0x00000000
DP_TP_CTL_D................: 0x00000000
DP_TP_CTL_E................: 0x00000001
DP_TP_STATUS_A.............: 0x00000000
DP_TP_STATUS_B.............: 0x70c17274
DP_TP_STATUS_C.............: 0x00000000
DP_TP_STATUS_D.............: 0x00000000
DP_TP_STATUS_E.............: 0x70c47274
DDI_BUF_CTL_A..............: 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_B..............: 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_C..............: 0x00000001 (disabled not reversed x1 detected)
DDI_BUF_CTL_D..............: 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_E..............: 0x00000000 (disabled not reversed x1 not detected)
SPLL_CTL...................: 0x00000000
LCPLL_CTL..................: 0x00650064
WRPLL_CTL1.................: 0x0b64a6f7
WRPLL_CTL2.................: 0x069b1b9c
PORT_CLK_SEL_A.............: 0x0c248658 (LCPLL 2700)
PORT_CLK_SEL_B.............: 0x00000000 (LCPLL 2700)
PORT_CLK_SEL_C.............: 0x0b64a6f7 (LCPLL 2700)
PORT_CLK_SEL_D.............: 0x00000000 (LCPLL 2700)
PORT_CLK_SEL_E.............: 0x00000000 (LCPLL 2700)
PIPE_CLK_SEL_A.............: 0x952e0000 (DDID)
PIPE_CLK_SEL_B.............: 0x90a17357 (DDID)
PIPE_CLK_SEL_C.............: 0x0003c000 (None)
SFUSE_STRAP................: 0x752f6d6f (display enabled, crt yes, lane reversal no, port b yes, port c yes, port d yes)
PIPEASRC...................: 0x6c5f7265 (27744, 29286)
DSPACNTR...................: 0x6e75662c (disabled)
DSPASTRIDE.................: 0x7b29286e (32285857)
DSPASURF...................: 0x636f6428
DSPATILEOFF................: 0x6f2e2974 (10612, 28462)
PIPEBSRC...................: 0x00000001 (1, 2)
DSPBCNTR...................: 0x00000000 (disabled)
DSPBSTRIDE.................: 0x00000000 (0)
DSPBSURF...................: 0x00000000
DSPBTILEOFF................: 0x00000000 (0, 0)
PIPECSRC...................: 0x00000a80 (1, 2689)
DSPCCNTR...................: 0x00000000 (disabled)
DSPCSTRIDE.................: 0x00000000 (0)
DSPCSURF...................: 0x00000000
DSPCTILEOFF................: 0x00000000 (0, 0)
PIPEACONF..................: 0x61706573 (disabled, active, if-id, rotate 90, 12bpc)
HTOTAL_A...................: 0x23222c22 (11299 active, 8995 total)
HBLANK_A...................: 0x77742323 (8996 start, 30581 end)
HSYNC_A....................: 0x65747469 (29802 start, 25973 end)
VTOTAL_A...................: 0x6d695f72 (24435 active, 28010 total)
VBLANK_A...................: 0x222c2267 (8808 start, 8749 end)
VSYNC_A....................: 0x74232323 (8996 start, 29732 end)
VSYNCSHIFT_A...............: 0x23232322
PIPEA_DATA_M1..............: 0x5f726574 (TU 48, val 0x726574 7497076)
PIPEA_DATA_N1..............: 0x75646f6d (val 0x646f6d 6582125)
PIPEA_LINK_M1..............: 0x74697774 (val 0x697774 6911860)
PIPEA_LINK_N1..............: 0x5f726574 (val 0x726574 7497076)
PIPEBCONF..................: 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_B...................: 0x5735cf08 (53001 active, 22326 total)
HBLANK_B...................: 0x00002e95 (11926 start, 1 end)
HSYNC_B....................: 0x01dbc000 (49153 start, 476 end)
VTOTAL_B...................: 0x06000300 (769 active, 1537 total)
VBLANK_B...................: 0x1271e588 (58761 start, 4722 end)
VSYNC_B....................: 0x00000000 (1 start, 1 end)
VSYNCSHIFT_B...............: 0x01db8000
PIPEB_DATA_M1..............: 0x1271e588 (TU 10, val 0x71e588 7464328)
PIPEB_DATA_N1..............: 0x00000000 (val 0x0 0)
PIPEB_LINK_M1..............: 0x572bbca0 (val 0x2bbca0 2866336)
PIPEB_LINK_N1..............: 0x00002e95 (val 0x2e95 11925)
PIPECCONF..................: 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_C...................: 0x00000000 (1 active, 1 total)
HBLANK_C...................: 0x00000000 (1 start, 1 end)
HSYNC_C....................: 0x00000000 (1 start, 1 end)
VTOTAL_C...................: 0x00000000 (1 active, 1 total)
VBLANK_C...................: 0x4acf6060 (24673 start, 19152 end)
VSYNC_C....................: 0x00000709 (1802 start, 1 end)
VSYNCSHIFT_C...............: 0x74901a10
PIPEC_DATA_M1..............: 0x4a04cb68 (TU 38, val 0x4cb68 314216)
PIPEC_DATA_N1..............: 0x00000709 (val 0x709 1801)
PIPEC_LINK_M1..............: 0x00000000 (val 0x0 0)
PIPEC_LINK_N1..............: 0x00000000 (val 0x0 0)
PIPEEDPCONF................: 0x5f00000d (disabled, active, pf-pd, rotate 0, 8bpc)
HTOTAL_EDP.................: 0x7cc885f9 (34298 active, 31945 total)
HBLANK_EDP.................: 0x00003795 (14230 start, 1 end)
HSYNC_EDP..................: 0x7cc886a1 (34466 start, 31945 end)
VTOTAL_EDP.................: 0x00003795 (14230 active, 1 total)
VBLANK_EDP.................: 0x7cc88749 (34634 start, 31945 end)
VSYNC_EDP..................: 0x00003795 (14230 start, 1 end)
VSYNCSHIFT_EDP.............: 0x7cc88941
PIPEEDP_DATA_M1............: 0x7cc889e9 (TU 63, val 0xc889e9 13142505)
PIPEEDP_DATA_N1............: 0x00003795 (val 0x3795 14229)
PIPEEDP_LINK_M1............: 0x7cc88b39 (val 0xc88b39 13142841)
PIPEEDP_LINK_N1............: 0x00003795 (val 0x3795 14229)
PFA_CTL_1..................: 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFA_WIN_POS................: 0x00000001 (0, 1)
PFA_WIN_SIZE...............: 0xa0908674 (144, 1652)
PFB_CTL_1..................: 0x00000001 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFB_WIN_POS................: 0x00000000 (0, 0)
PFB_WIN_SIZE...............: 0x00000000 (0, 0)
PFC_CTL_1..................: 0xff804189 (enable, auto_scale no, auto_scale_cal yes, v_filter bypass, vadapt enable, mode most, filter_sel edge_soften,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFC_WIN_POS................: 0xff804189 (8064, 393)
PFC_WIN_SIZE...............: 0x000024c6 (0, 1222)
TRANS_HTOTAL_A.............: 0x1685baf8 (47865 active, 5766 total)
TRANS_HBLANK_A.............: 0x00000001 (2 start, 1 end)
TRANS_HSYNC_A..............: 0x1685c198 (49561 start, 5766 end)
TRANS_VTOTAL_A.............: 0x00000001 (2 active, 1 total)
TRANS_VBLANK_A.............: 0x00000004 (5 start, 1 end)
TRANS_VSYNC_A..............: 0x00000000 (1 start, 1 end)
TRANS_VSYNCSHIFT_A.........: 0x113e37d8
TRANSACONF.................: 0xdf5ea782 (enable, active, rsvd)
FDI_RXA_MISC...............: 0x5e4a278c (FDI Delay 1932)
FDI_RXA_TUSIZE1............: 0x3717846e
FDI_RXA_IIR................: 0x1480b282
FDI_RXA_IMR................: 0xc39b951e
BLC_PWM_CPU_CTL2...........: 0x4d55545a (enable 0, pipe C, blinking 0, granularity 8)
BLC_PWM_CPU_CTL............: 0x4d55545a (cycle 21594, freq 19797)
BLC_PWM2_CPU_CTL2..........: 0x00000000 (enable 0, pipe A, blinking 0, granularity 128)
BLC_PWM2_CPU_CTL...........: 0x00000000 (cycle 0, freq 0)
BLC_MISC_CTL...............: 0x00000000 (PWM1-PCH PWM2-CPU)
BLC_PWM_PCH_CTL1...........: 0xff804139 (enable 1, override 1, inverted polarity 1)
BLC_PWM_PCH_CTL2...........: 0x000024c6 (freq 0, cycle 9414)
UTIL_PIN_CTL...............: 0x0000026d (enable 0, transcoder A, mode data, data 0 inverted polarity 0)
PCH_PP_STATUS..............: 0x00000000 (off, not ready, sequencing idle)
PCH_PP_CONTROL.............: 0x00000000 (blacklight disabled, do not power down on reset, panel off)
PCH_PP_ON_DELAYS...........: 0x00000000
PCH_PP_OFF_DELAYS..........: 0x00000000
PCH_PP_DIVISOR.............: 0x00000000
PIXCLK_GATE................: 0xff8f5be9
SDEISR.....................: 0x00000000 (port d:0, port c:0, port b:0, crt:0)
RC6_RESIDENCY_TIME.........: 0x2c227478
IS_GEN6(devid) || IS_GEN7(devid)
FENCE START 0..............: 0x69736f70
FENCE END 0................: 0x6e6f6974
FENCE START 1..............: 0x6c65723a
FENCE END 1................: 0x76697461
FENCE START 2..............: 0x6c663b65
FENCE END 2................: 0x3a74616f
FENCE START 3..............: 0x7466656c
FENCE END 3................: 0x6469773b
FENCE START 4..............: 0x353a6874
FENCE END 4................: 0x683b2530
FENCE START 5..............: 0x68676965
FENCE END 5................: 0x30373a74
FENCE START 6..............: 0x703b7870
FENCE END 6................: 0x69646461
FENCE START 7..............: 0x313a676e
FENCE END 7................: 0x7d787035
FENCE START 8..............: 0x6c6f632e
FENCE END 8................: 0x7463656c
FENCE START 9..............: 0x2d6e6f69
FENCE END 9................: 0x6d657469
FENCE START 10.............: 0x636f2e20
FENCE END 10...............: 0x6f636974
FENCE START 11.............: 0x7b782d6e
FENCE END 11...............: 0x69736f70
FENCE START 12.............: 0x6e6f6974
FENCE END 12...............: 0x7362613a
FENCE START 13.............: 0x74756c6f
FENCE END 13...............: 0x6f743b65
FENCE START 14.............: 0x30313a70
FENCE END 14...............: 0x723b7870
FENCE START 15.............: 0x74686769
FENCE END 15...............: 0x7030313a
FENCE START 16.............: 0x6f633b78
FENCE END 16...............: 0x3a726f6c
FENCE START 17.............: 0x63636323
FENCE END 17...............: 0x7865743b
FENCE START 18.............: 0x65642d74
FENCE END 18...............: 0x61726f63
FENCE START 19.............: 0x6e6f6974
FENCE END 19...............: 0x6e6f6e3a
FENCE START 20.............: 0x632e7d65
FENCE END 20...............: 0x656c6c6f
FENCE START 20.............: 0x632e7d65
FENCE END 20...............: 0x656c6c6f
FENCE START 21.............: 0x6f697463
FENCE END 21...............: 0x74692d6e
FENCE START 22.............: 0x2e206d65
FENCE END 22...............: 0x6f706572
FENCE START 23.............: 0x6d616e2d
FENCE END 23...............: 0x69647b65
FENCE START 24.............: 0x616c7073
FENCE END 24...............: 0x6c623a79
FENCE START 25.............: 0x3b6b636f
FENCE END 25...............: 0x746e6f66
FENCE START 26.............: 0x7a69732d
FENCE END 26...............: 0x36313a65
FENCE START 27.............: 0x663b7870
FENCE END 27...............: 0x2d746e6f
FENCE START 28.............: 0x67696577
FENCE END 28...............: 0x623a7468
FENCE START 29.............: 0x7d646c6f
FENCE END 29...............: 0x6c6f632e
FENCE START 30.............: 0x7463656c
FENCE END 30...............: 0x2d6e6f69
FENCE START 31.............: 0x6d657469
FENCE END 31...............: 0x73632e20
GEN6_RP_CONTROL............: 0x00000000 (disabled)
GEN6_RPNSWREQ..............: 0x00000000
GEN6_RP_DOWN_TIMEOUT.......: 0x00000000
GEN6_RP_INTERRUPT_LIMITS...: 0x00000000
GEN6_RP_UP_THRESHOLD.......: 0x00000000
GEN6_RP_UP_EI..............: 0x00000000
GEN6_RP_DOWN_EI............: 0x00000000
GEN6_RP_IDLE_HYSTERSIS.....: 0x00000000
GEN6_RC_STATE..............: 0xc0a07457
GEN6_RC_CONTROL............: 0x00000001
GEN6_RC1_WAKE_RATE_LIMIT...: 0x00000000
GEN6_RC6_WAKE_RATE_LIMIT...: 0x00000000
GEN6_RC_EVALUATION_INTERVAL: 0x00000000
GEN6_RC_IDLE_HYSTERSIS.....: 0x00000000
GEN6_RC_SLEEP..............: 0x00000000
GEN6_RC1e_THRESHOLD........: 0x00000000
GEN6_RC6_THRESHOLD.........: 0x00000002
GEN6_RC_VIDEO_FREQ.........: 0x00000000
GEN6_PMIER.................: 0x000010a6
GEN6_PMIMR.................: 0x000010a6
GEN6_PMINTRMSK.............: 0x00000000

CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 800 MHz
CPU Maximum non-Turbo Frequency....: 2000 MHz
CPU Maximum Turbo Frequency........: 3100 MHz

IGPU Info:
------------------------------------
IGPU Current Frequency.............:  550 MHz
IGPU Minimum Frequency.............:  200 MHz
IGPU Maximum Non-Turbo Frequency...:  200 MHz
IGPU Maximum Turbo Frequency.......: 1100 MHz
IGPU Maximum limit.................: No Limit

CPU P-States [ (28) ] iGPU P-States [ (11) ]
CPU C3-Cores [ 0 1 3 ]
CPU C6-Cores [ 0 1 2 3 ]
CPU C7-Cores [ 0 1 2 3 ]
CPU C3-Cores [ 0 1 2 3 ]

I have made sure that hibernation (suspend to disk or S4 sleep) is disabled.

Is power management implemented now?

Disabling nVidia Graphics

Before going any further into code investigation here, I found _OFF and _INI methods both in SSDT-6 and in SSDT-8. Should I look for EC methods in the _OFF methods of both the SSDTs.

_OFF method in SSDT-6:
Code:
            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If (LEqual (TDGC, One))
                {
                    CreateField (TGPC, Zero, 0x03, GUPC)
                    If (LEqual (ToInteger (GUPC), One))
                    {
                        \_SB.PCI0.RP05.PEGP.GC6I ()
                        Store (Zero, _STA)
                    }
                    Else
                    {
                        If (LEqual (ToInteger (GUPC), 0x02))
                        {
                            \_SB.PCI0.RP05.PEGP.GC6I ()
                            Store (Zero, _STA)
                        }
                    }
                }
                Else
                {
                    \_SB.PCI0.RP05.PEGP.SGOF ()
                    Store (Zero, _STA)
                }
            }

_OFF method in SSDT-8:
Code:
        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
            If (LNotEqual (GPRF, One))
            {
                If (LEqual (CTXT, Zero))
                {
                    Store (PCIC, BUF1)
                    Store (GMM1, BUF2)
                    Store (GMM2, BUF3)
                    Store (GMM3, BUF4)
                    Store (GIO1, BUF5)
                    Store (GIRQ, BUF6)
                    Store (SID, BUF7)
                    Store (One, CTXT)
                }
            }

            SGOF ()
        }

\_SB.PCI0.RP05.PEGP.GC6I in SSDT-8:
Code:
        Method (GC6I, 0, Serialized)
        {
            Store ("<<< GC6I >>>", Debug)
            \_SB.PCI0.LPCB.EC.ECNV (Zero)
            Sleep (0x0A)
            Store (LREN, LTRE)
            Store (One, \_SB.PCI0.RP05.LNKD)
        }

\_SB.PCI0.RP05.PEGP.SGOF in SSDT-6 looks like this:
Code:
        Method (SGOF, 0, Serialized)
        {
            If (LEqual (CCHK (Zero), Zero))
            {
                Return (Zero)
            }

            Store (Zero, ONOF)
            Store (LCTL, ELCT)
            Store (SVID, HVID)
            Store (SDID, HDID)
            Store (LREN, LTRE)
            Store (One, LNKD)
            While (LNotEqual (LNKS, Zero))
            {
                Sleep (One)
            }

            SGPO (HLRS, One)
            SGPO (PWEN, Zero)
            Return (Zero)
        }

And SGPO also in SSDT-6 looks like this:
Code:
        Method (SGPO, 2, Serialized)
        {
            If (And (SGMD, 0x0F))
            {
                If (LEqual (SGGP, One))
                {
                    ShiftRight (Arg0, 0x07, Local1)
                    And (Arg0, 0x7F, Arg0)
                    If (LEqual (Local1, Zero))
                    {
                        Not (Arg1, Arg1)
                    }

                    And (Arg1, One, Arg1)
                    If (LLessEqual (Arg0, 0x5E))
                    {
                        Store (Add (Add (\GBAS, 0x0100), Multiply (Arg0, 0x08)), Local0)
                        OperationRegion (LGPI, SystemIO, Local0, 0x08)
                        Field (LGPI, ByteAcc, NoLock, Preserve)
                        {
                                ,   31, 
                            TEMP,   1
                        }

                        Store (Arg1, TEMP)
                    }
                }
            }
        }

The _INI method in the two SSDTs look like this:

_INI method from SSDT-6:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.RP05.PEGP._ADR)
        }


_INI method from SSDT-8:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (DID1, Index (TLPK, Zero))
            Store (DID2, Index (TLPK, 0x02))
            Store (DID3, Index (TLPK, 0x04))
            Store (DID4, Index (TLPK, 0x06))
            Store (DID5, Index (TLPK, 0x08))
            Store (DID6, Index (TLPK, 0x0A))
            Store (DID7, Index (TLPK, 0x0C))
            Store (DID2, Index (TLPK, 0x0E))
            Store (DID1, Index (TLPK, 0x0F))
            Store (DID2, Index (TLPK, 0x11))
            Store (DID3, Index (TLPK, 0x12))
            Store (DID2, Index (TLPK, 0x14))
            Store (DID4, Index (TLPK, 0x15))
            Store (DID2, Index (TLPK, 0x17))
            Store (DID5, Index (TLPK, 0x18))
            Store (DID2, Index (TLPK, 0x1A))
            Store (DID6, Index (TLPK, 0x1B))
            Store (DID2, Index (TLPK, 0x1D))
            Store (DID7, Index (TLPK, 0x1E))
        }

Also, there are several _REG methods in DSDT, which one should I add the omitted EC line from the GC6I method to?

Looking forward to hear from you.
 
Hello RehabMan! A Happy New Year to you. It's been a while since your last post to this thread. I was trying to implement power management as well as disable discrete graphics. The motive to accomplish both is to get my sleep working (which still doesn't work properly yet). I have divided the post into two sections for your convenience.

Implementing Power Management

I added the generated SSDT.aml from ssdtPRGen.sh to my patched ACPI files. I tested it with AppleIntelInfo.kext.

Here is the output:
Code:
bash-3.2$ sudo cat /tmp/AppleIntelInfo.dat

AppleIntelInfo.kext v1.2 Copyright © 2012-2015 Pike R. Alpha. All rights reserved

Settings:
------------------------------------
logMSRs............................: 1
logIGPU............................: 1
logIntelRegs.......................: 1
logCStates.........................: 1
logIPGStyle........................: 1
InitialTSC.........................: 0x70c0c24506
MWAIT C-States.....................: 286531872

Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35)  : 0x20004
MSR_PLATFORM_INFO..........(0xCE)  : 0x8083DF3011400
MSR_PMG_CST_CONFIG_CONTROL.(0xE2)  : 0x1E008404
MSR_PMG_IO_CAPTURE_BASE....(0xE4)  : 0x51814
IA32_MPERF.................(0xE7)  : 0x37B9CE2CF6
IA32_APERF.................(0xE8)  : 0x4E33CCBAFA
MSR_FLEX_RATIO.............(0x194) : 0x11400
MSR_IA32_PERF_STATUS.......(0x198) : 0x1D1C00001C00
MSR_IA32_PERF_CONTROL......(0x199) : 0x1F00
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x88280800
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x400001
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x1C1C1C1F
IA32_ENERGY_PERF_BIAS......(0x1B0) : 0xF
MSR_POWER_CTL..............(0x1FC) : 0x4005F
MSR_RAPL_POWER_UNIT........(0x606) : 0xA0E03
MSR_PKG_POWER_LIMIT........(0x610) : 0x804280C800DD80C8
MSR_PKG_ENERGY_STATUS......(0x611) : 0x319A026
MSR_PKG_POWER_INFO.........(0x614) : 0x78
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x4010141480000100
MSR_PP0_POWER_LIMIT........(0x638) : 0x0
MSR_PP0_ENERGY_STATUS......(0x639) : 0x235C140
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_PP1_POWER_LIMIT........(0x640) : 0x0
MSR_PP1_ENERGY_STATUS......(0x641) : 0x5EFFD
MSR_PP1_POLICY.............(0x642) : 0x18
MSR_CONFIG_TDP_NOMINAL.....(0x648) : 0x14
MSR_CONFIG_TDP_LEVEL1......(0x649) : 0x8005C
MSR_CONFIG_TDP_LEVEL2......(0x64a) : 0x1400C8
MSR_CONFIG_TDP_CONTROL.....(0x64b) : 0x0
MSR_TURBO_ACTIVATION_RATIO.(0x64c) : 0x0
MSR_PKGC3_IRTL.............(0x60a) : 0x8842
MSR_PKGC6_IRTL.............(0x60b) : 0x8873
MSR_PKGC7_IRTL.............(0x60c) : 0x8891
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0x358A136B8
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
MSR_PKG_C7_RESIDENCY.......(0x3fa) : 0x0
MSR_PKG_C8_RESIDENCY.......(0x630) : 0x0
MSR_PKG_C9_RESIDENCY.......(0x631) : 0x0
MSR_PKG_C10_RESIDENCY......(0x632) : 0x0
MSR_PKG_C8_LATENCY.........(0x633) : 0x0
MSR_PKG_C9_LATENCY.........(0x634) : 0x0
MSR_PKG_C10_LATENCY........(0x635) : 0x0
IA32_TSC_DEADLINE..........(0x6E0) : 0x70C31333D0
PCH device.................: 0x9C438086

Intel Register Data
------------------------------------
CPU_VGACNTRL...............: 0xAD504299
IS_HASWELL(devid) || IS_BROADWELL(devid)
HSW_PWR_WELL_CTL1..........: 0x55ac6270
HSW_PWR_WELL_CTL2..........: 0x0000328c
HSW_PWR_WELL_CTL3..........: 0x55ac6390
HSW_PWR_WELL_CTL4..........: 0x0000328c
HSW_PWR_WELL_CTL5..........: 0x5701d478
HSW_PWR_WELL_CTL6..........: 0x00002e95
PIPE_DDI_FUNC_CTL_A........: 0x2d746e65 (disabled, DDIC, mode reserved, bpc reserved, -VSync, -HSync, EDP C ONOFF, reserved width)
PIPE_DDI_FUNC_CTL_B........: 0x5735df40 (disabled, port reserved, mode reserved, 12 bpc, -VSync, +HSync, EDP B ONOFF, x1)
PIPE_DDI_FUNC_CTL_C........: 0x00000000 (disabled, no port, HDMI, 8 bpc, -VSync, -HSync, EDP A ON, x1)
PIPE_DDI_FUNC_CTL_EDP......: 0x3e0d4cf9 (disabled, DDID, mode reserved, 8 bpc, -VSync, +HSync, EDP A ONOFF, reserved width)
DP_TP_CTL_A................: 0x00000000
DP_TP_CTL_B................: 0x00000001
DP_TP_CTL_C................: 0x00000000
DP_TP_CTL_D................: 0x00000000
DP_TP_CTL_E................: 0x00000001
DP_TP_STATUS_A.............: 0x00000000
DP_TP_STATUS_B.............: 0x70c17274
DP_TP_STATUS_C.............: 0x00000000
DP_TP_STATUS_D.............: 0x00000000
DP_TP_STATUS_E.............: 0x70c47274
DDI_BUF_CTL_A..............: 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_B..............: 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_C..............: 0x00000001 (disabled not reversed x1 detected)
DDI_BUF_CTL_D..............: 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_E..............: 0x00000000 (disabled not reversed x1 not detected)
SPLL_CTL...................: 0x00000000
LCPLL_CTL..................: 0x00650064
WRPLL_CTL1.................: 0x0b64a6f7
WRPLL_CTL2.................: 0x069b1b9c
PORT_CLK_SEL_A.............: 0x0c248658 (LCPLL 2700)
PORT_CLK_SEL_B.............: 0x00000000 (LCPLL 2700)
PORT_CLK_SEL_C.............: 0x0b64a6f7 (LCPLL 2700)
PORT_CLK_SEL_D.............: 0x00000000 (LCPLL 2700)
PORT_CLK_SEL_E.............: 0x00000000 (LCPLL 2700)
PIPE_CLK_SEL_A.............: 0x952e0000 (DDID)
PIPE_CLK_SEL_B.............: 0x90a17357 (DDID)
PIPE_CLK_SEL_C.............: 0x0003c000 (None)
SFUSE_STRAP................: 0x752f6d6f (display enabled, crt yes, lane reversal no, port b yes, port c yes, port d yes)
PIPEASRC...................: 0x6c5f7265 (27744, 29286)
DSPACNTR...................: 0x6e75662c (disabled)
DSPASTRIDE.................: 0x7b29286e (32285857)
DSPASURF...................: 0x636f6428
DSPATILEOFF................: 0x6f2e2974 (10612, 28462)
PIPEBSRC...................: 0x00000001 (1, 2)
DSPBCNTR...................: 0x00000000 (disabled)
DSPBSTRIDE.................: 0x00000000 (0)
DSPBSURF...................: 0x00000000
DSPBTILEOFF................: 0x00000000 (0, 0)
PIPECSRC...................: 0x00000a80 (1, 2689)
DSPCCNTR...................: 0x00000000 (disabled)
DSPCSTRIDE.................: 0x00000000 (0)
DSPCSURF...................: 0x00000000
DSPCTILEOFF................: 0x00000000 (0, 0)
PIPEACONF..................: 0x61706573 (disabled, active, if-id, rotate 90, 12bpc)
HTOTAL_A...................: 0x23222c22 (11299 active, 8995 total)
HBLANK_A...................: 0x77742323 (8996 start, 30581 end)
HSYNC_A....................: 0x65747469 (29802 start, 25973 end)
VTOTAL_A...................: 0x6d695f72 (24435 active, 28010 total)
VBLANK_A...................: 0x222c2267 (8808 start, 8749 end)
VSYNC_A....................: 0x74232323 (8996 start, 29732 end)
VSYNCSHIFT_A...............: 0x23232322
PIPEA_DATA_M1..............: 0x5f726574 (TU 48, val 0x726574 7497076)
PIPEA_DATA_N1..............: 0x75646f6d (val 0x646f6d 6582125)
PIPEA_LINK_M1..............: 0x74697774 (val 0x697774 6911860)
PIPEA_LINK_N1..............: 0x5f726574 (val 0x726574 7497076)
PIPEBCONF..................: 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_B...................: 0x5735cf08 (53001 active, 22326 total)
HBLANK_B...................: 0x00002e95 (11926 start, 1 end)
HSYNC_B....................: 0x01dbc000 (49153 start, 476 end)
VTOTAL_B...................: 0x06000300 (769 active, 1537 total)
VBLANK_B...................: 0x1271e588 (58761 start, 4722 end)
VSYNC_B....................: 0x00000000 (1 start, 1 end)
VSYNCSHIFT_B...............: 0x01db8000
PIPEB_DATA_M1..............: 0x1271e588 (TU 10, val 0x71e588 7464328)
PIPEB_DATA_N1..............: 0x00000000 (val 0x0 0)
PIPEB_LINK_M1..............: 0x572bbca0 (val 0x2bbca0 2866336)
PIPEB_LINK_N1..............: 0x00002e95 (val 0x2e95 11925)
PIPECCONF..................: 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_C...................: 0x00000000 (1 active, 1 total)
HBLANK_C...................: 0x00000000 (1 start, 1 end)
HSYNC_C....................: 0x00000000 (1 start, 1 end)
VTOTAL_C...................: 0x00000000 (1 active, 1 total)
VBLANK_C...................: 0x4acf6060 (24673 start, 19152 end)
VSYNC_C....................: 0x00000709 (1802 start, 1 end)
VSYNCSHIFT_C...............: 0x74901a10
PIPEC_DATA_M1..............: 0x4a04cb68 (TU 38, val 0x4cb68 314216)
PIPEC_DATA_N1..............: 0x00000709 (val 0x709 1801)
PIPEC_LINK_M1..............: 0x00000000 (val 0x0 0)
PIPEC_LINK_N1..............: 0x00000000 (val 0x0 0)
PIPEEDPCONF................: 0x5f00000d (disabled, active, pf-pd, rotate 0, 8bpc)
HTOTAL_EDP.................: 0x7cc885f9 (34298 active, 31945 total)
HBLANK_EDP.................: 0x00003795 (14230 start, 1 end)
HSYNC_EDP..................: 0x7cc886a1 (34466 start, 31945 end)
VTOTAL_EDP.................: 0x00003795 (14230 active, 1 total)
VBLANK_EDP.................: 0x7cc88749 (34634 start, 31945 end)
VSYNC_EDP..................: 0x00003795 (14230 start, 1 end)
VSYNCSHIFT_EDP.............: 0x7cc88941
PIPEEDP_DATA_M1............: 0x7cc889e9 (TU 63, val 0xc889e9 13142505)
PIPEEDP_DATA_N1............: 0x00003795 (val 0x3795 14229)
PIPEEDP_LINK_M1............: 0x7cc88b39 (val 0xc88b39 13142841)
PIPEEDP_LINK_N1............: 0x00003795 (val 0x3795 14229)
PFA_CTL_1..................: 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFA_WIN_POS................: 0x00000001 (0, 1)
PFA_WIN_SIZE...............: 0xa0908674 (144, 1652)
PFB_CTL_1..................: 0x00000001 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFB_WIN_POS................: 0x00000000 (0, 0)
PFB_WIN_SIZE...............: 0x00000000 (0, 0)
PFC_CTL_1..................: 0xff804189 (enable, auto_scale no, auto_scale_cal yes, v_filter bypass, vadapt enable, mode most, filter_sel edge_soften,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFC_WIN_POS................: 0xff804189 (8064, 393)
PFC_WIN_SIZE...............: 0x000024c6 (0, 1222)
TRANS_HTOTAL_A.............: 0x1685baf8 (47865 active, 5766 total)
TRANS_HBLANK_A.............: 0x00000001 (2 start, 1 end)
TRANS_HSYNC_A..............: 0x1685c198 (49561 start, 5766 end)
TRANS_VTOTAL_A.............: 0x00000001 (2 active, 1 total)
TRANS_VBLANK_A.............: 0x00000004 (5 start, 1 end)
TRANS_VSYNC_A..............: 0x00000000 (1 start, 1 end)
TRANS_VSYNCSHIFT_A.........: 0x113e37d8
TRANSACONF.................: 0xdf5ea782 (enable, active, rsvd)
FDI_RXA_MISC...............: 0x5e4a278c (FDI Delay 1932)
FDI_RXA_TUSIZE1............: 0x3717846e
FDI_RXA_IIR................: 0x1480b282
FDI_RXA_IMR................: 0xc39b951e
BLC_PWM_CPU_CTL2...........: 0x4d55545a (enable 0, pipe C, blinking 0, granularity 8)
BLC_PWM_CPU_CTL............: 0x4d55545a (cycle 21594, freq 19797)
BLC_PWM2_CPU_CTL2..........: 0x00000000 (enable 0, pipe A, blinking 0, granularity 128)
BLC_PWM2_CPU_CTL...........: 0x00000000 (cycle 0, freq 0)
BLC_MISC_CTL...............: 0x00000000 (PWM1-PCH PWM2-CPU)
BLC_PWM_PCH_CTL1...........: 0xff804139 (enable 1, override 1, inverted polarity 1)
BLC_PWM_PCH_CTL2...........: 0x000024c6 (freq 0, cycle 9414)
UTIL_PIN_CTL...............: 0x0000026d (enable 0, transcoder A, mode data, data 0 inverted polarity 0)
PCH_PP_STATUS..............: 0x00000000 (off, not ready, sequencing idle)
PCH_PP_CONTROL.............: 0x00000000 (blacklight disabled, do not power down on reset, panel off)
PCH_PP_ON_DELAYS...........: 0x00000000
PCH_PP_OFF_DELAYS..........: 0x00000000
PCH_PP_DIVISOR.............: 0x00000000
PIXCLK_GATE................: 0xff8f5be9
SDEISR.....................: 0x00000000 (port d:0, port c:0, port b:0, crt:0)
RC6_RESIDENCY_TIME.........: 0x2c227478
IS_GEN6(devid) || IS_GEN7(devid)
FENCE START 0..............: 0x69736f70
FENCE END 0................: 0x6e6f6974
FENCE START 1..............: 0x6c65723a
FENCE END 1................: 0x76697461
FENCE START 2..............: 0x6c663b65
FENCE END 2................: 0x3a74616f
FENCE START 3..............: 0x7466656c
FENCE END 3................: 0x6469773b
FENCE START 4..............: 0x353a6874
FENCE END 4................: 0x683b2530
FENCE START 5..............: 0x68676965
FENCE END 5................: 0x30373a74
FENCE START 6..............: 0x703b7870
FENCE END 6................: 0x69646461
FENCE START 7..............: 0x313a676e
FENCE END 7................: 0x7d787035
FENCE START 8..............: 0x6c6f632e
FENCE END 8................: 0x7463656c
FENCE START 9..............: 0x2d6e6f69
FENCE END 9................: 0x6d657469
FENCE START 10.............: 0x636f2e20
FENCE END 10...............: 0x6f636974
FENCE START 11.............: 0x7b782d6e
FENCE END 11...............: 0x69736f70
FENCE START 12.............: 0x6e6f6974
FENCE END 12...............: 0x7362613a
FENCE START 13.............: 0x74756c6f
FENCE END 13...............: 0x6f743b65
FENCE START 14.............: 0x30313a70
FENCE END 14...............: 0x723b7870
FENCE START 15.............: 0x74686769
FENCE END 15...............: 0x7030313a
FENCE START 16.............: 0x6f633b78
FENCE END 16...............: 0x3a726f6c
FENCE START 17.............: 0x63636323
FENCE END 17...............: 0x7865743b
FENCE START 18.............: 0x65642d74
FENCE END 18...............: 0x61726f63
FENCE START 19.............: 0x6e6f6974
FENCE END 19...............: 0x6e6f6e3a
FENCE START 20.............: 0x632e7d65
FENCE END 20...............: 0x656c6c6f
FENCE START 20.............: 0x632e7d65
FENCE END 20...............: 0x656c6c6f
FENCE START 21.............: 0x6f697463
FENCE END 21...............: 0x74692d6e
FENCE START 22.............: 0x2e206d65
FENCE END 22...............: 0x6f706572
FENCE START 23.............: 0x6d616e2d
FENCE END 23...............: 0x69647b65
FENCE START 24.............: 0x616c7073
FENCE END 24...............: 0x6c623a79
FENCE START 25.............: 0x3b6b636f
FENCE END 25...............: 0x746e6f66
FENCE START 26.............: 0x7a69732d
FENCE END 26...............: 0x36313a65
FENCE START 27.............: 0x663b7870
FENCE END 27...............: 0x2d746e6f
FENCE START 28.............: 0x67696577
FENCE END 28...............: 0x623a7468
FENCE START 29.............: 0x7d646c6f
FENCE END 29...............: 0x6c6f632e
FENCE START 30.............: 0x7463656c
FENCE END 30...............: 0x2d6e6f69
FENCE START 31.............: 0x6d657469
FENCE END 31...............: 0x73632e20
GEN6_RP_CONTROL............: 0x00000000 (disabled)
GEN6_RPNSWREQ..............: 0x00000000
GEN6_RP_DOWN_TIMEOUT.......: 0x00000000
GEN6_RP_INTERRUPT_LIMITS...: 0x00000000
GEN6_RP_UP_THRESHOLD.......: 0x00000000
GEN6_RP_UP_EI..............: 0x00000000
GEN6_RP_DOWN_EI............: 0x00000000
GEN6_RP_IDLE_HYSTERSIS.....: 0x00000000
GEN6_RC_STATE..............: 0xc0a07457
GEN6_RC_CONTROL............: 0x00000001
GEN6_RC1_WAKE_RATE_LIMIT...: 0x00000000
GEN6_RC6_WAKE_RATE_LIMIT...: 0x00000000
GEN6_RC_EVALUATION_INTERVAL: 0x00000000
GEN6_RC_IDLE_HYSTERSIS.....: 0x00000000
GEN6_RC_SLEEP..............: 0x00000000
GEN6_RC1e_THRESHOLD........: 0x00000000
GEN6_RC6_THRESHOLD.........: 0x00000002
GEN6_RC_VIDEO_FREQ.........: 0x00000000
GEN6_PMIER.................: 0x000010a6
GEN6_PMIMR.................: 0x000010a6
GEN6_PMINTRMSK.............: 0x00000000

CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 800 MHz
CPU Maximum non-Turbo Frequency....: 2000 MHz
CPU Maximum Turbo Frequency........: 3100 MHz

IGPU Info:
------------------------------------
IGPU Current Frequency.............:  550 MHz
IGPU Minimum Frequency.............:  200 MHz
IGPU Maximum Non-Turbo Frequency...:  200 MHz
IGPU Maximum Turbo Frequency.......: 1100 MHz
IGPU Maximum limit.................: No Limit

CPU P-States [ (28) ] iGPU P-States [ (11) ]
CPU C3-Cores [ 0 1 3 ]
CPU C6-Cores [ 0 1 2 3 ]
CPU C7-Cores [ 0 1 2 3 ]
CPU C3-Cores [ 0 1 2 3 ]

I have made sure that hibernation (suspend to disk or S4 sleep) is disabled.

Is power management implemented now?

Disabling nVidia Graphics

Before going any further into code investigation here, I found _OFF and _INI methods both in SSDT-6 and in SSDT-8. Should I look for EC methods in the _OFF methods of both the SSDTs.

_OFF method in SSDT-6:
Code:
            Method (_OFF, 0, Serialized)  // _OFF: Power Off
            {
                If (LEqual (TDGC, One))
                {
                    CreateField (TGPC, Zero, 0x03, GUPC)
                    If (LEqual (ToInteger (GUPC), One))
                    {
                        \_SB.PCI0.RP05.PEGP.GC6I ()
                        Store (Zero, _STA)
                    }
                    Else
                    {
                        If (LEqual (ToInteger (GUPC), 0x02))
                        {
                            \_SB.PCI0.RP05.PEGP.GC6I ()
                            Store (Zero, _STA)
                        }
                    }
                }
                Else
                {
                    \_SB.PCI0.RP05.PEGP.SGOF ()
                    Store (Zero, _STA)
                }
            }

_OFF method in SSDT-8:
Code:
        Method (_OFF, 0, Serialized)  // _OFF: Power Off
        {
            If (LNotEqual (GPRF, One))
            {
                If (LEqual (CTXT, Zero))
                {
                    Store (PCIC, BUF1)
                    Store (GMM1, BUF2)
                    Store (GMM2, BUF3)
                    Store (GMM3, BUF4)
                    Store (GIO1, BUF5)
                    Store (GIRQ, BUF6)
                    Store (SID, BUF7)
                    Store (One, CTXT)
                }
            }

            SGOF ()
        }

\_SB.PCI0.RP05.PEGP.GC6I in SSDT-8:
Code:
        Method (GC6I, 0, Serialized)
        {
            Store ("<<< GC6I >>>", Debug)
            \_SB.PCI0.LPCB.EC.ECNV (Zero)
            Sleep (0x0A)
            Store (LREN, LTRE)
            Store (One, \_SB.PCI0.RP05.LNKD)
        }

\_SB.PCI0.RP05.PEGP.SGOF in SSDT-6 looks like this:
Code:
        Method (SGOF, 0, Serialized)
        {
            If (LEqual (CCHK (Zero), Zero))
            {
                Return (Zero)
            }

            Store (Zero, ONOF)
            Store (LCTL, ELCT)
            Store (SVID, HVID)
            Store (SDID, HDID)
            Store (LREN, LTRE)
            Store (One, LNKD)
            While (LNotEqual (LNKS, Zero))
            {
                Sleep (One)
            }

            SGPO (HLRS, One)
            SGPO (PWEN, Zero)
            Return (Zero)
        }

And SGPO also in SSDT-6 looks like this:
Code:
        Method (SGPO, 2, Serialized)
        {
            If (And (SGMD, 0x0F))
            {
                If (LEqual (SGGP, One))
                {
                    ShiftRight (Arg0, 0x07, Local1)
                    And (Arg0, 0x7F, Arg0)
                    If (LEqual (Local1, Zero))
                    {
                        Not (Arg1, Arg1)
                    }

                    And (Arg1, One, Arg1)
                    If (LLessEqual (Arg0, 0x5E))
                    {
                        Store (Add (Add (\GBAS, 0x0100), Multiply (Arg0, 0x08)), Local0)
                        OperationRegion (LGPI, SystemIO, Local0, 0x08)
                        Field (LGPI, ByteAcc, NoLock, Preserve)
                        {
                                ,   31, 
                            TEMP,   1
                        }

                        Store (Arg1, TEMP)
                    }
                }
            }
        }

The _INI method in the two SSDTs look like this:

_INI method from SSDT-6:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.RP05.PEGP._ADR)
        }


_INI method from SSDT-8:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (DID1, Index (TLPK, Zero))
            Store (DID2, Index (TLPK, 0x02))
            Store (DID3, Index (TLPK, 0x04))
            Store (DID4, Index (TLPK, 0x06))
            Store (DID5, Index (TLPK, 0x08))
            Store (DID6, Index (TLPK, 0x0A))
            Store (DID7, Index (TLPK, 0x0C))
            Store (DID2, Index (TLPK, 0x0E))
            Store (DID1, Index (TLPK, 0x0F))
            Store (DID2, Index (TLPK, 0x11))
            Store (DID3, Index (TLPK, 0x12))
            Store (DID2, Index (TLPK, 0x14))
            Store (DID4, Index (TLPK, 0x15))
            Store (DID2, Index (TLPK, 0x17))
            Store (DID5, Index (TLPK, 0x18))
            Store (DID2, Index (TLPK, 0x1A))
            Store (DID6, Index (TLPK, 0x1B))
            Store (DID2, Index (TLPK, 0x1D))
            Store (DID7, Index (TLPK, 0x1E))
        }

Also, there are several _REG methods in DSDT, which one should I add the omitted EC line from the GC6I method to?

Looking forward to hear from you.

There can be only one _OFF method for the discrete device. You're probably not looking at it correctly...

Also, same goes for _REG for EC. There is only one.

If you need help...

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.

And output from:
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc

Also, post EFI/Clover folder (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory, especially if you have an overabundance of themes installed.

Also post output of:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /
 
There can be only one _OFF method for the discrete device. You're probably not looking at it correctly...

Also, same goes for _REG for EC. There is only one.

If you need help...

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.

And output from:
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc

Also, post EFI/Clover folder (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory, especially if you have an overabundance of themes installed.

Also post output of:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Files attached.

Console output:
Code:
bash-3.2$ kextstat|grep -y acpiplat
   13    1 0xffffff7f82ec3000 0x66000    0x66000    com.apple.driver.AppleACPIPlatform (4.0) 295F7A91-2DF7-3FFE-9550-A0C1A6F9D575 <12 11 7 6 5 4 3 1>
bash-3.2$ kextstat|grep -y appleintelcpu
bash-3.2$ kextstat|grep -y applelpc
   99    0 0xffffff7f8299d000 0x3000     0x3000     com.apple.driver.AppleLPC (3.1) 0C90B22D-637B-3000-8C44-B7955D57E10A <85 12 5 4 3>
bash-3.2$ sudo touch /System/Library/Extensions && sudo kextcache -u /
Password:
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_XHCIMux.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_Intel_HDMI_Audio.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_HD4600_HD4400.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_BCM94352Z_as_BCM94360CS2.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext CodecCommander.kext
kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleHDAHardwareConfigDriver.kext
kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext AppleHDA.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ACPIBatteryManager.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ACPIBacklight.kext
 

Attachments

  • RehabMan.zip
    34.2 KB · Views: 84
  • Ashin’s MacBook Pro.ioreg
    2.2 MB · Views: 97
  • CLOVER.zip
    3.3 MB · Views: 82
Files attached.

Console output:
Code:
bash-3.2$ kextstat|grep -y acpiplat
   13    1 0xffffff7f82ec3000 0x66000    0x66000    com.apple.driver.AppleACPIPlatform (4.0) 295F7A91-2DF7-3FFE-9550-A0C1A6F9D575 <12 11 7 6 5 4 3 1>
bash-3.2$ kextstat|grep -y appleintelcpu
bash-3.2$ kextstat|grep -y applelpc
   99    0 0xffffff7f8299d000 0x3000     0x3000     com.apple.driver.AppleLPC (3.1) 0C90B22D-637B-3000-8C44-B7955D57E10A <85 12 5 4 3>
bash-3.2$ sudo touch /System/Library/Extensions && sudo kextcache -u /
Password:
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_XHCIMux.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_Intel_HDMI_Audio.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_HD4600_HD4400.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_BCM94352Z_as_BCM94360CS2.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext CodecCommander.kext
kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleHDAHardwareConfigDriver.kext
kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext AppleHDA.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ACPIBatteryManager.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ACPIBacklight.kext

Please note that FakePCIID_BCM94352Z_as_BCM94360CS2.kext and FakePCIID_HD4600_HD4400.kext are from a different version of FakePCIID than FakePCIID_Intel_HDMI_Audio.kext. Bad idea to mix kexts like that. Delete all FakePCIID kexts and install a matched set by downloading the current version.

Bad idea to rename SSDTs. Keep original names from ACPI/origin. You should have:
SSDT.aml (from ssdtPRgen.sh)
SSDT-0.aml
SSDT-1.aml
SSDT-2.aml
SSDT-6.aml
SSDT-7.aml
SSDT-8.aml
SSDT-9.aml
SSDT-10.aml

in ACPI/patched when done.

The _OFF method is in SSDT-10.aml (the _OFF in SSDT-8.aml should be ignored as it is in a PowerResource macro). _INI is in SSDT-8.aml.

Your ACPI has no EmbeddedControl, no EC... therefore no concern over EC related code and _REG.

Note: Apply only one "OS Check Fix"... You will need custom hand-edits in OSID.
 
Please note that FakePCIID_BCM94352Z_as_BCM94360CS2.kext and FakePCIID_HD4600_HD4400.kext are from a different version of FakePCIID than FakePCIID_Intel_HDMI_Audio.kext. Bad idea to mix kexts like that. Delete all FakePCIID kexts and install a matched set by downloading the current version.

Bad idea to rename SSDTs. Keep original names from ACPI/origin. You should have:
SSDT.aml (from ssdtPRgen.sh)
SSDT-0.aml
SSDT-1.aml
SSDT-2.aml
SSDT-6.aml
SSDT-7.aml
SSDT-8.aml
SSDT-9.aml
SSDT-10.aml

in ACPI/patched when done.

The _OFF method is in SSDT-10.aml (the _OFF in SSDT-8.aml should be ignored as it is in a PowerResource macro). _INI is in SSDT-8.aml.

Your ACPI has no EmbeddedControl, no EC... therefore no concern over EC related code and _REG.

Note: Apply only one "OS Check Fix"... You will need custom hand-edits in OSID.

So, I do not need to remove any EC related code from the _OFF method or it's sub methods, neither do I have to add it to _REG. I only have to call the _OFF method from the _INI method in SSDT-8 as an external method to disable discrete graphics, right?

Also, is native power management implemented now?

The hand-edit to the OSID, how should I go about it?
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (0x07D0, OSYS)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI ("Linux"))
                {
                    Store (0x03E8, OSYS)
                }

                If (_OSI ("Windows 2001"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x07D2, OSYS)
                }

                If (_OSI ("Windows 2001.1"))
                {
                    Store (0x07D3, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2006")))
                {
                    Store (0x07D6, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2009")))
                {
                    Store (0x07D9, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2012")))
                {
                    Store (0x07DC, OSYS)
                }

                If (_OSI ("Windows 2013"))
                {
                    Store (0x07DD, OSYS)
                }
            }
        }
 
So, I do not need to remove any EC related code from the _OFF method or it's sub methods, neither do I have to add it to _REG. I only have to call the _OFF method from the _INI method in SSDT-8 as an external method to disable discrete graphics, right?

Correct. Your computer doesn't use an EmbeddedControl region.

Also, is native power management implemented now?

In ioreg, it appeared as such.

The hand-edit to the OSID, how should I go about it?

Add a case for _OSI("Darwin")
 
Correct. Your computer doesn't use an EmbeddedControl region.



In ioreg, it appeared as such.



Add a case for _OSI("Darwin")

Like this?
Code:
                If(_OSI("Darwin"))
                {
                    Store (0x07DE, OSYS)
                }
 
Like this?
Code:
                If(_OSI("Darwin"))
                {
                    Store (0x07DE, OSYS)
                }

What version of Windows does 0x07DE correspond to?

Show your intention, in detail. Unpatched method + patched method.
 
What version of Windows does 0x07DE correspond to?

Show your intention, in detail. Unpatched method + patched method.

I am just following the next increment.

Unpatched method:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (0x07D0, OSYS)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI ("Linux"))
                {
                    Store (0x03E8, OSYS)
                }

                If (_OSI ("Windows 2001"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x07D2, OSYS)
                }

                If (_OSI ("Windows 2001.1"))
                {
                    Store (0x07D3, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2006")))
                {
                    Store (0x07D6, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2009")))
                {
                    Store (0x07D9, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2012")))
                {
                    Store (0x07DC, OSYS)
                }

                If (_OSI ("Windows 2013"))
                {
                    Store (0x07DD, OSYS)
                }
            }
        }

Patched method:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (0x07D0, OSYS)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI ("Linux"))
                {
                    Store (0x03E8, OSYS)
                }

                If (_OSI ("Windows 2001"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x07D2, OSYS)
                }

                If (_OSI ("Windows 2001.1"))
                {
                    Store (0x07D3, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2006")))
                {
                    Store (0x07D6, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2009")))
                {
                    Store (0x07D9, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2012")))
                {
                    Store (0x07DC, OSYS)
                }

                If (_OSI ("Windows 2013"))
                {
                    Store (0x07DD, OSYS)
                }

                If(_OSI("Darwin"))
                {
                    Store (0x07DE, OSYS)
                }
            }
        }
 
Status
Not open for further replies.
Back
Top