Jump to content

SSDT Help - Battery Issue


poopoo88

Recommended Posts

Hi, 

 

I have a Dell 7737, i7 I've installed Majjove on it and have it near running, I have one issue driving me crazy. 

 

When my laptop boots with the A/C adapter connected it doesn't show charging, unless I unplug the power cord and plug it back. Then it's completely fine.

 

This battery glitch only happens when I am running a DSDT +  SSDT patch to disable my Nvidia card. 

 

I have configured the DSDT and when I boot with the DSDT only, the battery is working fine. Even without the DSDT at all the battery works fine. (needless to say other things break without the DSDT) 

 

However when I boot with the DSDT + SSDT-6-NvUtlTbl to disable discrete graphics, I encounter the battery charger status showing incorrect only on boot (until I unplug/replug). The Discrete card is disabled though and everything else works fine except the battery glitch.

 

I feel I am overlooking something in the SSDT-6-NvUtlTbl file which is interfering with the battery display. Can someone help if there's something I need to patch or comment to in this SSDT? 

 

I uploaded both .dsl files into archive.zip.

 

Archive.zip

 

SSDT-5-NvUltTbl.zip

Link to comment
Share on other sites

  • Administrators

You've not specified what you did in terms of changes/patches so we cannot guess...

 

This being said, I notice that you've modified the _INI method of that SSDT table from:

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.RP05.PEGP._ADR)
            NBAK ()
        }

to:

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.RP05.PEGP._ADR)
            _OFF ()
        }

 

Assuming you've not modified anything else, try this instead:

        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.RP05.PEGP._ADR)
            NBAK ()
            _OFF ()
        }

 

It would also help if you would post your entire set of raw tables saved in ACPI/origin folder. A copy of your saved IOReg from IORegistryExplorer would be very useful too.

 

Link to comment
Share on other sites

Hi,

 

Thanks I will give that a try later tonight. If It still doesn't work I will start over (again) and start from scratch. I am sure something must be off somewhere.

 

These are the current patches I am using int he DSDT:

Rename GFX0 to IGPU
7/8-series USB
IRQ Fix
SMBUS Fix
RTC Fix
Shutdown Fix 2
HPET Fix
OS Check Fix (Windows 8)
AC Adapter Fix
Add MCHC
Fix _WAK arg0 2
Fix PNOT/PPNT
Add IMEI
Fix _WAK IAOE
Rename B0D3 to HDAU
USB3 _PRW(0x6D)—-to fix instant wake from sleep
[battery]Dell-Inspiron-15-7000

and

 

# Syntax errors
into definitionblock code_regex External\s+\(_SB_\.PCI0\.PEG0\) remove_matched;
into definitionblock code_regex External\s+\(_SB_\.PCI0\.PEG0\.PEGP\) remove_matched;
into definitionblock code_regex External\s+\(_SB_\.PCI0\.RP05\.PEGP\) remove_matched;
into definitionblock code_regex External\s+\(_SB_\.PCI0\.PEG0,\sUnknownObj\) remove_matched;
into definitionblock code_regex External\s+\(_SB_\.PCI0\.PEG0\.PEGP,\sUnknownObj\) remove_matched;
into definitionblock code_regex External\s+\(_SB_\.PCI0\.RP05\.PEGP,\sUnknownObj\) remove_matched;

into method label _L69 code_regex Notify\s\(\\_SB\.PCI0\.PEG0\.PEGP,\s0x02\) remove_matched;
into method label ADBG replace_content begin Return(0) end;
into method label HRPR code_regex (OperationRegion.*)\\_GPE.MMTB\s+\(0x04\), replace_matched begin %1\\_GPE.MMTB, 0x04)\n end;
into method label HRPR code_regex (Field\s+\(HRPE.*\n.*\n.*\n.*\})\) replace_matched begin %1 end;
into method label _WAK code_regex Store\s\(\\_GPE\.MMTB\s\(Local2,\s\\_GPE\.OSUP\s\(Local2\)\),\sStore\s\(Local1,\sREG6\)\) remove_matched;
into method label _INI code_regex Store\s\(\\_GPE\.MMTB\s\(Local3,\s\\_GPE\.OSUP\s\(Local3\)\),\sStore\s\(Local2,\sREG6\)\) remove_matched;
into method label _INI parent_label _SB.PCI0 code_regex (Store\s\(\\_GPE\.MMTB.*) replace_matched begin // %1 end;
into method label _WAK code_regex (Store\s\(\\_GPE\.MMTB.*) replace_matched begin // %1 end;

# Prevent freeze caused by WMI
into method label WMIA replace_content begin // nothing end;

# Force BAT0 device
into method label _STA parent_label BAT0 replace_content begin Return (0x1F) end;

# Fix PNOT method
into method label PNOT replace_content begin // nothing end;

#     Enable functions keys
#     Override DSDT oemId (for Clover, since it patches with "Apple ")
into method label _DSM parent_label PS2K remove_entry;
into device label PS2K insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        // Note: Function key part seems to not be necessary
        // "AAPL,has-embedded-fn-keys", Buffer() { 0x01, 0x00, 0x00, 0x00 },\n
        "RM,oem-id", "DELL",\n
    })\n
}\n
end;

#   Inject Audio info
into method label _DSM parent_label HDEF remove_entry;
into device label HDEF insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "layout-id", Buffer() { 0x03, 0x00, 0x00, 0x00 },\n
        "hda-gfx", Buffer() { "onboard-1" },\n
        "PinConfigurations", Buffer() { },\n
    })\n
}\n
end;

I then followed the guide to I posted above to disable the discrete graphics.

 

I also have a bunch of patches on the ACPI tab in Clover. (Can't get a screen shot at the moment)

 

I will follow your advice, test with your modification. If still no luck I am going to start from scratch and try again and will get back to you.

 

Thanks,

Link to comment
Share on other sites

×
×
  • Create New...