← Back to team overview

hybrid-graphics-linux team mailing list archive

help finding the right acpi call

 

hi all, i added the kernel mod and ran the test script and non of the
methods worked...

my laptop is Sager np5125 built on Clevo 5100, Nvidia 330M.

i looked a bit in the dsdt file i exctracted, found nothing with VGA of VID
in it, but i did find GFX0, here are some parts, it's a lot so i won't copy
it all, if you could help me find the right command to turn off the dgpu it
whould be great, so i can use ubuntu on battery for longer than an hour and
a half.

Scope (^P0P2)
                {
                    Device (PEGP)
                    {
                        Name (_ADR, Zero)
                    }
                }

                Scope (^^PCI0)
                {
                    Device (GFX0)
                    {
                        Name (_ADR, 0x00020000)
                        Method (_INI, 0, NotSerialized)
                        {
                            Store (LIDS, CLID)
                        }

                        Method (_DOS, 1, NotSerialized)
                        {
                            Store (And (Arg0, 0x07), DSEN)
                        }

                        Method (_DOD, 0, NotSerialized)
                        {
                            Return (Package (0x03)
                            {
                                0x80010100,
                                0x80010300,
                                0x80010410
                            })
                        }

                        Device (CRT0)
                        {
                            Name (_ADR, 0x0100)
                            Method (_DCS, 0, NotSerialized)
                            {
                                Return (CDDS (0x0100))
                            }

                            Method (_DGS, 0, NotSerialized)
                            {
                                If (And (NSTE, 0x0101))
                                {
                                    Return (One)
                                }

                                Return (Zero)
                            }

                            Method (_DSS, 1, NotSerialized)
                            {
                                If (LEqual (And (Arg0, 0xC0000000),
0xC0000000))
                                {
                                    Store (NSTE, CSTE)
                                }
                            }
                        }

                        Device (HDMI)
                        {
                            Name (_ADR, 0x0300)
                            Method (_DCS, 0, NotSerialized)
                            {
                                Return (CDDS (0x0300))
                            }

                            Method (_DGS, 0, NotSerialized)
                            {
                                If (And (NSTE, 0x0202))
                                {
                                    Return (One)
                                }

                                Return (Zero)
                            }

                            Method (_DSS, 1, NotSerialized)
                            {
                                If (LEqual (And (Arg0, 0xC0000000),
0xC0000000))
                                {
                                    Store (NSTE, CSTE)
                                }
                            }
                        }

                        Device (LCD0)
                        {
                            Name (_ADR, 0x0410)
                            Method (_DCS, 0, NotSerialized)
                            {
                                Return (CDDS (0x0400))
                            }

                            Method (_DGS, 0, NotSerialized)
                            {
                                If (And (NSTE, 0x0808))
                                {
                                    Return (One)
                                }

                                Return (Zero)
                            }

                            Method (_DSS, 1, NotSerialized)
                            {
                                If (LEqual (And (Arg0, 0xC0000000),
0xC0000000))
                                {
                                    Store (NSTE, CSTE)
                                }
                            }

                            Method (_BCL, 0, NotSerialized)
                            {
                                Return (Package (0x0A)
                                {
                                    0x54,
                                    0x1C,
                                    Zero,
                                    0x0E,
                                    0x1C,
                                    0x2A,
                                    0x38,
                                    0x46,
                                    0x54,
                                    0x64
                                })
                            }

                            Method (_BCM, 1, NotSerialized)
                            {
                                If (LEqual (Arg0, Zero))
                                {
                                    Store (Arg0, BRTL)
                                }
                                Else
                                {
                                    Divide (Arg0, 0x0E, Local0, BRTL)
                                }

                                If (^^^LPCB.EC.ECOK)
                                {
                                    If (And (^^^LPCB.EC.WINF, One))
                                    {
                                        Store (BRTL, ^^^LPCB.EC.OEM2)
                                    }

                                    If (^^^^WMI.HKDR)
                                    {
                                        Add (^^^LPCB.EC.OEM2, 0xE0,
^^^^WMI.EVNT)
                                        Notify (WMI, 0xD0)
                                    }
                                }

                                Store (BRTL, P80H)
                            }

                            Method (_BQC, 0, NotSerialized)
                            {
                                If (^^^LPCB.EC.ECOK)
                                {
                                    If (LEqual (^^^LPCB.EC.OEM2, 0x07))
                                    {
                                        Return (0x64)
                                    }

                                    Multiply (^^^LPCB.EC.OEM2, 0x0E, Local0)
                                    Return (Local0)
                                }
                                Else
                                {
                                    Return (0x64)
                                }
                            }
                        }

_____________________________________________________________________________________________________________

Method (_Q10, 0, NotSerialized)
                        {
                            Store (0x10, P80H)
                            If (LEqual (OSYS, 0x03E8))
                            {
                                If (D2F0)
                                {
                                    Notify (GFX0, 0x80)
                                }
                            }
                            Else
                            {
                                If (D2F0)
                                {
                                    If (LEqual (Zero, And (0x03, DSEN)))
                                    {
                                        ^^^GFX0.SWIT ()
                                        If (LNotEqual (CSTE, NSTE))
                                        {
                                            Store (One, ^^^GFX0.CEVT)
                                            Store (0x03, ^^^GFX0.CSTS)
                                            If (LGreater (OSYS, 0x07D0)) {}
                                            Else
                                            {
                                                Notify (GFX0, Zero)
                                            }

                                            Sleep (0x02EE)
                                            Notify (GFX0, 0x80)
                                        }
                                    }
                                }
                            }
                        }

                        Method (_Q11, 0, NotSerialized)
                        {
                            Store (0x11, P80H)
                            If (And (WINF, One))
                            {
                                If (LEqual (OSYS, 0x03E8))
                                {
                                    Notify (^^^GFX0.LCD0, 0x87)
                                }
                                Else
                                {
                                    If (LEqual (^^^GFX0.CDDS (0x0410),
0x1F))
                                    {
                                        If (LEqual (OEM2, Zero))
                                        {
                                            If (^^^^WMI.HKDR)
                                            {
                                                Store (0xE0, ^^^^WMI.EVNT)
                                                Notify (WMI, 0xD0)
                                            }
                                        }
                                        Else
                                        {
                                            Notify (^^^GFX0.LCD0, 0x87)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                If (^^^^WMI.HKDR)
                                {
                                    Add (OEM2, 0xE0, ^^^^WMI.EVNT)
                                    Notify (WMI, 0xD0)
                                }
                            }
                        }

                        Method (_Q12, 0, NotSerialized)
                        {
                            Store (0x12, P80H)
                            If (And (WINF, One))
                            {
                                If (LEqual (OSYS, 0x03E8))
                                {
                                    Notify (^^^GFX0.LCD0, 0x86)
                                }
                                Else
                                {
                                    If (LEqual (^^^GFX0.CDDS (0x0410),
0x1F))
                                    {
                                        If (LEqual (OEM2, 0x07))
                                        {
                                            If (^^^^WMI.HKDR)
                                            {
                                                Store (0xE7, ^^^^WMI.EVNT)
                                                Notify (WMI, 0xD0)
                                            }
                                        }
                                        Else
                                        {
                                            Notify (^^^GFX0.LCD0, 0x86)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                If (^^^^WMI.HKDR)
                                {
                                    Add (OEM2, 0xE0, ^^^^WMI.EVNT)
                                    Notify (WMI, 0xD0)
                                }
                            }
                        }

______________________________________________________________________________________
If (\_SB.PCI0.D2F0)
            {
                Store (LIDS, \_SB.PCI0.GFX0.CLID)
            }
________________________________________________________________________________________
Method (_L06, 0, NotSerialized)
        {
            If (LAnd (\_SB.PCI0.GFX0.GSSE, LNot (GSMI)))
            {
                \_SB.PCI0.GFX0.GSCI ()
            }
        }
_____________________________________________________________________________________________



really hoping you can help me and the other 5125 owners...