LINUX.ORG.RU

Регулировка скорости кулера ноутбука через nbfc

 , , ,


1

0

Имеется ноутбук acer travalmate P259-MG-382r (NX.VE2ER.018).

Проблема в том что у него совсем не крутится системный вентилятор в линуксе (в Win10 крутится и регулирует скорость сам), fancontrol не находит вентиляторы, решил использовать nbfc, но в DSDT нашел только 0x58 CTMP, вроде это температура процессора или чего-то.

Боюсь что-то испортить, не могу потом без ПК месяц сидеть пока с починки приедет, у меня работа на нем.

Device (EC0)
        {
            Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */)  // _HID: Hardware ID
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                IO (Decode16,
                    0x0062,             // Range Minimum
                    0x0062,             // Range Maximum
                    0x00,               // Alignment
                    0x01,               // Length
                    )
                IO (Decode16,
                    0x0066,             // Range Minimum
                    0x0066,             // Range Maximum
                    0x00,               // Alignment
                    0x01,               // Length
                    )
            })
            Method (_GPE, 0, NotSerialized)  // _GPE: General Purpose Events
            {
                Local0 = GGPE (0x02040010)
                Return (Local0)
            }

            Name (SEL0, 0xF0)
            Name (BFLG, Zero)
            Name (RDBT, Zero)
            Name (RDWL, Zero)
            Name (RD3G, Zero)
            Name (RDRF, Zero)
            Name (PB10, Zero)
            Method (_REG, 2, NotSerialized)  // _REG: Region Availability
            {
                If ((Arg0 == 0x03))
                {
                    Local0 = Arg1
                    If (Local0)
                    {
                        ECOK = One
                    }
                    Else
                    {
                        ECOK = Zero
                    }
                }

                If (ECOK)
                {
                    Acquire (MUT1, 0xFFFF)
                    If ((OSYS >= 0x07DC))
                    {
                        OSW8 = One
                        ^^^^RDWL = One
                        ^^^^RDBT = One
                        ^^^^RD3G = One
                    }
                    Else
                    {
                        OSW8 = Zero
                    }

                    If ((OSYS >= 0x07DD))
                    {
                        TPRS = 0x55
                        W81F = One
                    }
                    Else
                    {
                        TPRS = Zero
                        W81F = Zero
                    }

                    If (((OSYS < 0x07DD) || (PTPS == Zero)))
                    {
                        TOHP = TPDS /* \_SB_.TPDS */
                        TPRD = One
                    }

                    ILID ()
                    WLST = ^^^^RDWL /* \_SB_.RDWL */
                    BLTS = ^^^^RDBT /* \_SB_.RDBT */
                    ED3G = ^^^^RD3G /* \_SB_.RD3G */
                    CPLE = One
                    Release (MUT1)
                }

                If ((LINX != One))
                {
                    If (((BBTP == 0x02) && (OSYS == 0x07D9)))
                    {
                        SSMP = 0xD9
                    }
                }

                If ((OSYS == 0x07D9))
                {
                    CSBM = 0x07
                }
                Else
                {
                    CSBM = Zero
                }
            }

            OperationRegion (VERM, EmbeddedControl, Zero, 0xFF)
            Field (VERM, ByteAcc, NoLock, Preserve)
            {
                LNPS,   8
            }

            OperationRegion (ERAM, SystemMemory, 0xFE708500, 0x0100)
            Field (ERAM, ByteAcc, NoLock, Preserve)
            {
                ECTM,   8, 
                Offset (0x04), 
                CMCM,   8, 
                CMD1,   8, 
                CMD2,   8, 
                CMD3,   8, 
                Offset (0x18), 
                SMPR,   8, 
                SMST,   8, 
                SMAD,   8, 
                SMCM,   8, 
                SMD0,   256, 
                BCNT,   8, 
                SMAA,   8, 
                BATD,   16, 
                ACDF,   1, 
                Offset (0x41), 
                    ,   1, 
                APBF,   1, 
                    ,   3, 
                FLS4,   1, 
                Offset (0x42), 
                FLS3,   1, 
                    ,   1, 
                S0EF,   1, 
                    ,   4, 
                PECE,   1, 
                    ,   1, 
                LMAT,   1, 
                Offset (0x45), 
                ECPF,   8, 
                Offset (0x48), 
                KBBL,   1, 
                    ,   1, 
                RFST,   1, 
                Offset (0x49), 
                ERCT,   8, 
                Offset (0x4B), 
                TBLV,   8, 
                ARCD,   1, 
                    ,   3, 
                DOCK,   1, 
                LANC,   1, 
                LIDT,   1, 
                CRTS,   1, 
                Offset (0x4E), 
                TJMX,   3, 
                    ,   1, 
                VGAF,   1, 
                EDTS,   1, 
                Offset (0x53), 
                DOFF,   8, 
                Offset (0x58), 
                CTMP,   8, 
                RG59,   8, 
                Offset (0x60), 
                WLAN,   1, 
                BLTH,   1, 
                ST3G,   1, 
                CPLE,   1, 
                    ,   1, 
                ED3G,   1, 
                WLST,   1, 
                BLTS,   1, 
                AIRM,   1, 
                DPBL,   1, 
                    ,   4, 
                NIWM,   1, 
                TOHP,   1, 
                Offset (0x63), 
                WLPH,   1, 
                BBST,   1, 
                ODST,   1, 
                GPSW,   1, 
                Offset (0x64), 
                Offset (0x70), 
                BTMD,   8, 
                MBTS,   1, 
                MBTF,   1, 
                    ,   1, 
                MFCF,   1, 
                    ,   2, 
                MBDX,   1, 
                MBAD,   1, 
                MBTC,   1, 
                    ,   4, 
                MBPC,   1, 
                Offset (0x77), 
                BA1C,   8, 
                MCYC,   16, 
                MTMP,   16, 
                MDAT,   16, 
                MCUR,   16, 
                MBRM,   16, 
                MBVG,   16, 
                BHVC,   16, 
                BLVC,   16, 
                LFCC,   16, 
                BTSN,   16, 
                BTDC,   16, 
                BTDV,   16, 
                BTMN,   8, 
                Offset (0xBB), 
                TARU,   8, 
                TARN,   8, 
                TARD,   8, 
                Offset (0xC0), 
                ROMD,   8, 
                Offset (0xD0), 
                EBPL,   1, 
                    ,   1, 
                    ,   1, 
                TPRD,   1, 
                Offset (0xD1), 
                    ,   1, 
                ECS4,   1, 
                ECS3,   1, 
                RFAT,   1, 
                OSW8,   1, 
                WOLF,   1, 
                WOWL,   1, 
                Offset (0xD5), 
                ECDY,   8, 
                DBPL,   8, 
                CPTS,   8
            }

            Scope (\_SB)
            {
                OperationRegion (EROM, SystemMemory, 0xFE708900, 0x0100)
                Field (EROM, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x29), 
                    SPRG,   8, 
                    Offset (0x40), 
                    BCL0,   8, 
                    BCL1,   8, 
                    BCL2,   8, 
                    BCL3,   8, 
                    BCL4,   8, 
                    BCL5,   8, 
                    BCL6,   8, 
                    BCL7,   8, 
                    BCL8,   8, 
                    BCL9,   8, 
                    Offset (0xF6), 
                    C6SW,   8, 
                    Offset (0xFC), 
                    TPVD,   8, 
                    SIMU,   8, 
                    Offset (0xFF), 
                    PJNA,   8
                }

                OperationRegion (EMBX, SystemMemory, 0xFE708A00, 0x0100)
                Field (EMBX, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x80), 
                    ODB0,   8, 
                    ODB1,   8, 
                    ODB2,   8, 
                    ODB3,   8, 
                    ODB4,   8, 
                    ODB5,   8, 
                    ODB6,   8, 
                    ODB7,   8, 
                    ODB8,   8, 
                    ODB9,   8, 
                    ODBA,   8, 
                    ODBB,   8, 
                    ODBC,   8, 
                    ODBD,   8, 
                    ODBE,   8, 
                    ODBF,   8, 
                    ODX0,   32, 
                    ODX1,   32, 
                    ODX2,   32, 
                    ODX3,   32, 
                    Offset (0xA5), 
                    BL86,   8, 
                    BL87,   8, 
                    BL88,   8, 
                    BL89,   8, 
                    BL8A,   8, 
                    BLVA,   8, 
                    OSS4,   1, 
                    Offset (0xAC), 
                    Offset (0xAE), 
                    W81F,   1, 
                    Offset (0xAF), 
                    WUSB,   1, 
                    WPBN,   1, 
                    Offset (0xB1), 
                    U3DE,   1, 
                    Offset (0xB4), 
                    VSSD,   16, 
                    Offset (0xB8), 
                    AUES,   1, 
                    CRES,   1, 
                    UPES,   1, 
                    BTES,   1, 
                    CDES,   1, 
                    Offset (0xC0), 
                    VSID,   8, 
                    VRID,   8, 
                    DVID,   16, 
                    Offset (0xC8), 
                    PWSF,   1, 
                    ODEF,   1, 
                        ,   1, 
                        ,   1, 
                        ,   1, 
                        ,   1, 
                    TMLF,   1, 
                    Offset (0xC9), 
                    KBBF,   1, 
                    USCB,   1, 
                    RFBS,   1, 
                    USCF,   1, 
                    HKEY,   1, 
                    ZPOD,   1, 
                        ,   1, 
                    IOAC,   1, 
                    Offset (0xCB), 
                    Offset (0xCC), 
                    Offset (0xD0), 
                    CFID,   8, 
                    CPSI,   8, 
                    PPCD,   8, 
                    CPTB,   1, 
                    DCTB,   1, 
                    Offset (0xD4), 
                    VGAD,   2, 
                    Offset (0xD5), 
                    PPDC,   8, 
                    SGST,   8, 
                    EDSP,   8, 
                    BLVL,   8, 
                    BBTP,   8, 
                    TPRS,   8, 
                    Offset (0xDC), 
                    APS4,   8, 
                    Offset (0xDE), 
                    CDSB,   8, 
                    GPDT,   8, 
                    PMNL,   8, 
                    PMNH,   8, 
                    PPDL,   8, 
                    PPDH,   8, 
                    IPWM,   8, 
                    QPCU,   8, 
                    QPCN,   8, 
                    QPCD,   8, 
                    TPMS,   1, 
                    GSEN,   1, 
                    FPRS,   1, 
                    SMCD,   1, 
                    Offset (0xE9), 
                    DEFL,   1, 
                    Offset (0xEA), 
                        ,   1, 
                        ,   1, 
                        ,   1, 
                        ,   1, 
                    Offset (0xEB), 
                    Offset (0xEC), 
                    PTPS,   8, 
                    BID0,   1, 
                    BID1,   1, 
                    BID2,   1, 
                    BID3,   1, 
                    BID4,   1, 
                    BID5,   1, 
                    BID6,   1, 
                    BID7,   1, 
                    Offset (0xEF), 
                    IFIL,   1, 
                    IF3L,   1, 
                    Offset (0xF0), 
                    SRAM,   1, 
                    SDTU,   1, 
                    Offset (0xF1), 
                    DRID,   8, 
                    TPID,   8, 
                        ,   1, 
                    NKST,   1, 
                    BOTY,   1, 
                    Offset (0xF4), 
                    S4CT,   8, 
                    LFCT,   8, 
                    LLCT,   8, 
                    XPS5,   8, 
                    IWLN,   1, 
                    IWWL,   1, 
                    IWS3,   1, 
                    IWS4,   1, 
                    Offset (0xF9), 
                    Offset (0xFB), 
                    WFVD,   8, 
                    ISWR,   8, 
                    IECM,   8
                }
            }

            Mutex (MUT1, 0x00)
            Mutex (MUT0, 0x00)
            Method (APOL, 1, NotSerialized)
            {
                DBPL = Arg0
                EBPL = One
            }

            OperationRegion (ECIO, SystemIO, 0x60, 0x10)
            Field (ECIO, ByteAcc, NoLock, Preserve)
            {
                Offset (0x02), 
                EDAT,   8, 
                Offset (0x06), 
                CMDS,   8, 
                Offset (0x08), 
                EC68,   8, 
                Offset (0x0A), 
                EC6A,   8, 
                Offset (0x0C), 
                EC6C,   8, 
                Offset (0x0E), 
                EC6E,   8
            }

            Method (IBE2, 0, Serialized)
            {
                While ((EC6E & 0x02))
                {
                    Sleep (0x50)
                }
            }

            Method (ECMD, 1, Serialized)
            {
                IBE2 ()
                EC6E = Arg0
                IBE2 ()
            }

            Method (ILID, 0, NotSerialized)
            {
                If (IGDS)
                {
                    If (((ECTM & 0x08) == 0x08))
                    {
                        LIDS = One
                        ^^^GFX0.CLID = One
                    }
                    ElseIf (LIDT)
                    {
                        LIDS = Zero
                        ^^^GFX0.CLID = Zero
                    }
                    Else
                    {
                        LIDS = One
                        ^^^GFX0.CLID = One
                    }
                }
            }

            Method (_Q01, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, One)
            }

            Method (_Q02, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (0x02, One)
                Notify (SMKB, 0x80) // Status Change
            }

            Method (_Q04, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x83)
            }

            Method (_Q05, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x82)
                TPDS = TOHP /* \_SB_.PCI0.LPCB.EC0_.TOHP */
            }

            Method (_Q06, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x82)
                TPDS = TOHP /* \_SB_.PCI0.LPCB.EC0_.TOHP */
            }

            Method (_Q0A, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x22)
            }

            Method (_Q0B, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x24)
            }

            Method (_Q0C, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x23)
            }

            Method (_Q0E, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If ((LMAT == One))
                {
                    HKEV (One, 0x64)
                }
                Else
                {
                    HKDS ()
                }
            }

            Method (_Q0F, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (0x02, 0x64)
            }

            Method (_Q12, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x21)
            }

            Name (BATO, 0x80)
            Name (BATN, Zero)
            Name (ECEV, 0xC0)
            Name (Q29F, Zero)
            Method (_Q20, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If ((SMST & 0x40))
                {
                    Local0 = SMAA /* \_SB_.PCI0.LPCB.EC0_.SMAA */
                    If ((Local0 == 0x14))
                    {
                        SELE ()
                        If ((0x40 & ECEV))
                        {
                            Notify (BAT1, 0x81) // Information Change
                            BINH ()
                        }

                        If ((0x02 & ECEV))
                        {
                            Notify (ACAD, Zero) // Bus Check
                            AINH ()
                        }

                        ^^^^BAT1.RCAP = Zero
                        Notify (BAT1, 0x80) // Status Change
                        BATO = BATD /* \_SB_.PCI0.LPCB.EC0_.BATD */
                        SMST &= 0xBF
                    }
                }
            }

            Method (_Q29, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
            }

            Method (_Q57, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x84)
            }

            Method (_Q58, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x84)
            }

            Method (_Q5B, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x24)
            }

            Method (_Q62, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x25)
            }

            Method (_Q63, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If ((LMAT == One))
                {
                    If ((OSYS >= 0x07DC)){}
                    ElseIf ((RFST == Zero))
                    {
                        RFST = One
                        If ((WLAN == One))
                        {
                            WLST = One
                        }

                        If ((ST3G == One))
                        {
                            ED3G = One
                        }
                    }
                    Else
                    {
                        RFST = Zero
                        If ((WLAN == One))
                        {
                            WLST = Zero
                        }

                        If ((ST3G == One))
                        {
                            ED3G = Zero
                        }
                    }
                }

                HKEV (One, 0x02)
            }

            Method (_Q68, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^^^WMID.FEBC [Zero] = One
                Notify (WMID, 0xBD) // Device-Specific
            }

            Method (_Q80, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                Notify (\_TZ.TZ01, 0x80) // Thermal Status Change
            }

            Method (_Q81, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                Notify (\_TZ.TZ01, 0x80) // Thermal Status Change
            }

            Mutex (PPCF, 0x00)
            Method (_Q83, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                Notify (\_TZ.TZ01, 0x80) // Thermal Status Change
            }

            Method (_Q84, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
            }

            Method (_Q85, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                Notify (BAT1, 0x81) // Information Change
            }

            Method (_Q8C, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                UTPS ()
                Notify (\_TZ.TZ01, 0x80) // Thermal Status Change
            }

            Method (_Q8D, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                UTPS ()
                Notify (\_TZ.TZ01, 0x80) // Thermal Status Change
            }

            Method (_QAC, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                UTPS ()
                Notify (\_TZ.TZ01, 0x80) // Thermal Status Change
            }

            Method (_QAD, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                UTPS ()
                Notify (\_TZ.TZ01, 0x80) // Thermal Status Change
            }

            Method (UTPS, 0, NotSerialized)
            {
                Acquire (PPCF, 0xFFFF)
                If (((CPTS == One) || (CPTS == 0x02)))
                {
                    If ((PPCD > One))
                    {
                        Divide (PPCD, 0x02, Local1, Local0)
                        If (CondRefOf (\_PR.CPU0._PPC))
                        {
                            \_PR.CPPC = Local0
                        }
                    }

                    Notify (^^^RP01.PXSX, 0xD1) // Hardware-Specific
                }
                ElseIf (((CPTS == 0x03) || (CPTS == 0x04)))
                {
                    If ((PPCD > One))
                    {
                        Divide (PPCD, 0x02, Local1, Local0)
                        If (CondRefOf (\_PR.CPU0._PPC))
                        {
                            \_PR.CPPC = Local0
                        }
                    }

                    Notify (^^^RP01.PXSX, 0xD2) // Hardware-Specific
                }
                ElseIf ((CPTS == Zero))
                {
                    If (CondRefOf (\_PR.CPU0._PPC))
                    {
                        \_PR.CPPC = Zero
                    }

                    Notify (^^^RP01.PXSX, 0xD1) // Hardware-Specific
                }

                PNOT ()
                Release (PPCF)
            }

            Method (_Q8E, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (((OSYS < 0x07D6) || (LINX == One)))
                {
                    If ((BLVL < 0x09))
                    {
                        BLVL++
                    }

                    BRXP ()
                }
                Else
                {
                    Notify (^^^GFX0.DD1F, 0x86) // Device-Specific
                }

                If ((LMAT == One))
                {
                    HKEV (One, 0x61)
                }
            }

            Method (_Q8F, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (((OSYS < 0x07D6) || (LINX == One)))
                {
                    If ((BLVL > Zero))
                    {
                        BLVL--
                    }

                    BRXP ()
                }
                Else
                {
                    Notify (^^^GFX0.DD1F, 0x87) // Device-Specific
                }

                If ((LMAT == One))
                {
                    HKEV (One, 0x62)
                }
            }

            Method (_Q90, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^^^^RDWL = WLST /* \_SB_.PCI0.LPCB.EC0_.WLST */
            }

            Method (_Q91, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^^^^RDWL = WLST /* \_SB_.PCI0.LPCB.EC0_.WLST */
            }

            Method (_Q92, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^^^^RDBT = BLTS /* \_SB_.PCI0.LPCB.EC0_.BLTS */
            }

            Method (_Q93, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^^^^RDBT = BLTS /* \_SB_.PCI0.LPCB.EC0_.BLTS */
            }

            Method (_Q9B, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ILID ()
                Notify (LID0, 0x80) // Status Change
            }

            Method (_Q9C, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ILID ()
                Notify (LID0, 0x80) // Status Change
            }

            Method (_Q9D, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x63)
            }

            Method (_Q9E, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x63)
            }

            Method (_QA0, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^^^^RD3G = ED3G /* \_SB_.PCI0.LPCB.EC0_.ED3G */
            }

            Method (_QA1, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                ^^^^RD3G = ED3G /* \_SB_.PCI0.LPCB.EC0_.ED3G */
            }

            Method (_QA6, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
            }

            Method (_QC0, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                HKEV (One, 0x8D)
            }

            Method (_QC6, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                Notify (BAT1, 0x80) // Status Change
            }

            Method (SELE, 0, NotSerialized)
            {
                BATN = BATD /* \_SB_.PCI0.LPCB.EC0_.BATD */
                ECEV = Zero
                If ((0xC0 & BATN))
                {
                    ECEV |= One
                    If ((0x0300 & BATN))
                    {
                        ECEV |= 0x04
                    }
                }

                Local0 = (BATN & One)
                Local1 = (BATO & One)
                If (Local0)
                {
                    ECEV |= 0x0100
                }
                Else
                {
                    ECEV &= 0xFEFF
                }

                If (~(Local0 == Local1))
                {
                    ECEV |= 0x40
                }

                Local0 = (BATN & 0x02)
                Local1 = (BATO & 0x02)
                If (Local0)
                {
                    ECEV |= 0x0200
                }
                Else
                {
                    ECEV &= 0xFDFF
                }

                If (~(Local0 == Local1))
                {
                    ECEV |= 0x80
                }

                Local0 = (BATN & 0xC0)
                Local1 = (BATO & 0xC0)
                If (~(Local0 == Local1))
                {
                    ECEV |= 0x02
                }

                If ((One & ECEV))
                {
                    If ((0x04 & ECEV))
                    {
                        If ((BATN & 0x20))
                        {
                            ECEV |= 0x10
                        }
                        Else
                        {
                            ECEV |= 0x20
                        }
                    }
                }
            }

            Method (BINH, 0, NotSerialized)
            {
            }

            Method (AINH, 0, NotSerialized)
            {
                SCTB ()
                If (((OSYS < 0x07D6) || (LINX == One)))
                {
                    If (ACDF)
                    {
                        If ((BLVL < 0x04))
                        {
                            BLVL += 0x05
                        }
                        Else
                        {
                            BLVL = 0x09
                        }
                    }
                    ElseIf ((BLVL > 0x05))
                    {
                        BLVL -= 0x05
                    }
                    Else
                    {
                        BLVL = Zero
                    }

                    BRXP ()
                }
            }

            Method (HKEV, 2, NotSerialized)
            {
                ^^^WMID.FEBC [Zero] = Arg0
                ^^^WMID.FEBC [One] = Arg1
                ^^^WMID.FEBC [0x02] = Zero
                ^^^WMID.FEBC [0x03] = Zero
                Notify (WMID, 0xBC) // Device-Specific
            }

            Method (HKDS, 0, NotSerialized)
            {
                ^^^GFX0.GHDS (Zero)
            }

            Method (BRXP, 0, NotSerialized)
            {
                If (((SGST == 0x04) || (SGST == Zero)))
                {
                    Local1 = (DerefOf (PNLT [BLVL]) * 0x64)
                    Local2 = (Local1 / 0x0100)
                    ^^^GFX0.AINT (One, Local2)
                }
                Else
                {
                }
            }

            Mutex (CTBM, 0x00)
            Method (SCTB, 0, NotSerialized)
            {
                Acquire (CTBM, 0xFFFF)
                If (CPTB)
                {
                    If ((!ACDF && VGAF))
                    {
                        DCTB = One
                    }
                    Else
                    {
                        DCTB = Zero
                    }

                    SSMP = 0xD8
                }

                Release (CTBM)
            }
        }

Это такой прикол- выложить сюда весь dsdt? На гите nbfc есть руководство по выявлению регистров для управления вентиляторами. Также там есть поддерживаемые модели ноутбуков.

Jeronimo ★★
()

Раз уж деассемблировал, посмотри, есть ли там поддержка linux? Поиском по тексту dsdt.

Jeronimo ★★
()

Вроде есть, но оно не работает

If (_OSI ("Linux"))
{
OSYS = 0x03E8
LINX = One
}
Lesha_Vel
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.