Faradis Posted November 7, 2015 Share Posted November 7, 2015 any one here can help me fixing my fan issue in Hwmonitor.app?? my Cpu and system fan reading is not showing in my  Hwmonitor.app only my GPU fan reading is showing i am on kolzak branch should i switch to slice branch my dump and screenshot are from my previous Yosemite installation right now i am on El-cap DarwinDumper_2.9.7_Clover_X64_3176_3182_Yos_faradisdrubo.zip Link to comment Share on other sites More sharing options...
Ramalama Posted November 8, 2015 Share Posted November 8, 2015  any one here can help me fixing my fan issue in Hwmonitor.app?? my Cpu and system fan reading is not showing in my  Hwmonitor.app only my GPU fan reading is showing i am on kolzak branch should i switch to slice branch my dump and screenshot are from my previous Yosemite installation right now i am on El-cap  seems like your superIO is not completely implemented into fakesmc... You can use ACPI Sensors and if you know where the fan registers located in your acpi (dsdt) you can make an extra code like:  Here is an example code, but look only at FAN1/FAN0, since its from me, and i have some other sensors implemented too... Device (SMCD) { Name (_HID, "MON0000") // _HID: Hardware ID Name (TACH, Package (0x0C) { "Right Fan", "FAN0", "Left Fan", "FAN1", "ALS value 1", "AL11", "ALS value 2", "AL12", "ALS RALS", "AL13", "ALS ALSA", "AL14" }) Method (FAN0, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.TACH (Zero), Local0) Return (Local0) } Method (FAN1, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.TACH (One), Local0) Return (Local0) } Method (AL11, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.RRAM (0x02A3), Local0) Return (Local0) } Method (AL12, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.RRAM (0x02A4), Local0) Return (Local0) } Method (AL13, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.RALS (), Local0) Return (Local0) } Method (AL14, 0, Serialized) { Store (\_SB.ALSA, Local0) Return (Local0) } } But i you can't write your own code, and don't know where the fans are located in dsdt... let it be... its just a visual change... i have removed this useless code from my newer dsdt's since its only visual^^  Cheers :-) Link to comment Share on other sites More sharing options...
Faradis Posted November 8, 2015 Author Share Posted November 8, 2015 seems like your superIO is not completely implemented into fakesmc... You can use ACPI Sensors and if you know where the fan registers located in your acpi (dsdt) you can make an extra code like:  Here is an example code, but look only at FAN1/FAN0, since its from me, and i have some other sensors implemented too... Device (SMCD) { Name (_HID, "MON0000") // _HID: Hardware ID Name (TACH, Package (0x0C) { "Right Fan", "FAN0", "Left Fan", "FAN1", "ALS value 1", "AL11", "ALS value 2", "AL12", "ALS RALS", "AL13", "ALS ALSA", "AL14" }) Method (FAN0, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.TACH (Zero), Local0) Return (Local0) } Method (FAN1, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.TACH (One), Local0) Return (Local0) } Method (AL11, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.RRAM (0x02A3), Local0) Return (Local0) } Method (AL12, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.RRAM (0x02A4), Local0) Return (Local0) } Method (AL13, 0, Serialized) { Store (\_SB.PCI0.LPCB.EC0.RALS (), Local0) Return (Local0) } Method (AL14, 0, Serialized) { Store (\_SB.ALSA, Local0) Return (Local0) } } But i you can't write your own code, and don't know where the fans are located in dsdt... let it be... its just a visual change... i have removed this useless code from my newer dsdt's since its only visual^^  Cheers :-) heres my sensor related code in my DSDT  Scope (_SB.PCI0.LPCB.ASOC)   {     Name (G611, Package (0x07)     {       0x06020011,       "CPU Voltage",       0x20000000,       Zero,       0x0320,       0x03E8,       0x02     })     Name (G612, Package (0x07)     {       0x06020012,       "CPU PLL Voltage",       0x20000000,       Zero,       0x05DC,       0x01F4,       0x02     })     Name (G613, Package (0x07)     {       0x06020013,       "IMC Voltage",       0x20000000,       Zero,       0x0320,       0x04B0,       0x02     })     Name (G615, Package (0x07)     {       0x06020015,       "PCH Voltage",       0x20000000,       Zero,       0x03E8,       0x012C,       0x02     })     Name (G617, Package (0x07)     {       0x06020017,       "DRAM VTDR Voltage",       0x20000000,       Zero,       0x0258,       0x02BC,       0x02     })     Name (G618, Package (0x07)     {       0x06020018,       "DRAM Bus Voltage",       0x20000000,       Zero,       0x04E2,       0x01F4,       0x02     })     Name (G619, Package (0x07)     {       0x06020019,       "3.3V Voltage",       0x20000000,       Zero,       0x0B9A,       0x0294,       0x02     })     Name (G61A, Package (0x07)     {       0x0602001A,       "5V Voltage",       0x20000000,       Zero,       0x1194,       0x03E8,       0x02     })     Name (G61B, Package (0x07)     {       0x0602001B,       "12V Voltage",       0x20000000,       Zero,       0x27D8,       0x0E10,       0x02     })     Name (G621, Package (0x07)     {       0x06030021,       "CPU Temperature",       0x20000000,       Zero,       0x0190,       0x01F4,       0x02     })     Name (G622, Package (0x07)     {       0x06030022,       "MB Temperature",       0x20000000,       Zero,       0x015E,       0x0190,       0x02     })     Name (G623, Package (0x07)     {       0x06030023,       "PCH Temperature",       0x20000000,       Zero,       0x015E,       0x0258,       0x02     })     Name (G625, Package (0x07)     {       0x06030025,       "OPT_TEMP1 Temperature",       0x20000000,       Zero,       Zero,       0x0384,       0x02     })     Name (G626, Package (0x07)     {       0x06030026,       "OPT_TEMP2 Temperature",       0x20000000,       Zero,       Zero,       0x0384,       0x02     })     Name (G631, Package (0x07)     {       0x06040031,       "CPU FAN Speed",       0x20000000,       Zero,       Zero,       Zero,       Zero     })     Name (G632, Package (0x07)     {       0x06040032,       "CHA_FAN1 FAN Speed",       0x20000000,       Zero,       Zero,       Zero,       Zero     })     Name (G633, Package (0x07)     {       0x06040033,       "CHA_FAN2 FAN Speed",       0x20000000,       Zero,       Zero,       Zero,       Zero     })     Name (G636, Package (0x07)     {       0x06040036,       "OPT_FAN1 FAN Speed",       0x20000000,       Zero,       Zero,       Zero,       Zero     })     Name (G637, Package (0x07)     {       0x06040037,       "OPT_FAN2 FAN Speed",       0x20000000,       Zero,       Zero,       Zero,       Zero     })     Name (GRP6, Package (0x13)     {       G611,       G612,       G613,       G615,       G617,       G618,       G619,       G61A,       G61B,       G621,       G622,       G623,       G625,       G626,       G631,       G632,       G633,       G636,       G637     })     Method (GIT6, 1, Serialized)     {       Name (T_0, Zero)       Store (And (Arg0, 0xFFFF), T_0)       If (LEqual (T_0, 0x11))       {         Store (^^SIOR.ECV0 (), ASB1)         If (LEqual (ASB1, 0xFF))         {           Store (Zero, ASB0)         }       }       Else       {         If (LEqual (T_0, 0x12))         {           Store (^^SIOR.ECV4 (), ASB1)           If (LEqual (ASB1, 0xFF))           {             Store (Zero, ASB0)           }         }         Else         {           If (LEqual (T_0, 0x13))           {             Store (^^SIOR.ECV3 (), ASB1)             If (LEqual (ASB1, 0xFF))             {               Store (Zero, ASB0)             }           }           Else           {             If (LEqual (T_0, 0x15))             {               Store (^^SIOR.ECV2 (), ASB1)               If (LEqual (ASB1, 0xFF))               {                 Store (Zero, ASB0)               }             }             Else             {               If (LEqual (T_0, 0x17))               {                 Store (^^SIOR.ECV6 (), ASB1)                 If (LEqual (ASB1, 0xFF))                 {                   Store (Zero, ASB0)                 }               }               Else               {                 If (LEqual (T_0, 0x18))                 {                   Store (^^SIOR.ECV1 (), ASB1)                   If (LEqual (ASB1, 0xFF))                   {                     Store (Zero, ASB0)                   }                 }                 Else                 {                   If (LEqual (T_0, 0x19))                   {                     Store (RVLT (Zero), ASB1)                     If (LEqual (ASB1, 0xFF))                     {                       Store (Zero, ASB0)                     }                   }                   Else                   {                     If (LEqual (T_0, 0x1A))                     {                       Store (RVLT (One), ASB1)                       If (LEqual (ASB1, 0xFF))                       {                         Store (Zero, ASB0)                       }                     }                     Else                     {                       If (LEqual (T_0, 0x1B))                       {                         Store (RVLT (0x02), ASB1)                         If (LEqual (ASB1, 0xFF))                         {                           Store (Zero, ASB0)                         }                       }                       Else                       {                         If (LEqual (T_0, 0x21))                         {                           Store (^^SIOR.HWT1 (), ASB1)                           If (LEqual (ASB1, 0xFF))                           {                             Store (Zero, ASB0)                           }                         }                         Else                         {                           If (LEqual (T_0, 0x22))                           {                             Store (^^SIOR.BRT2 (), ASB1)                             If (LEqual (ASB1, 0xFF))                             {                               Store (Zero, ASB0)                             }                           }                           Else                           {                             If (LEqual (T_0, 0x23))                             {                               Store (^^SIOR.SBT2 (), ASB1)                               If (LEqual (ASB1, 0xFF))                               {                                 Store (Zero, ASB0)                               }                             }                             Else                             {                               If (LEqual (T_0, 0x25))                               {                                 Store (^^SIOR.OFT1 (), ASB1)                                 If (LEqual (ASB1, 0xFF))                                 {                                   Store (Zero, ASB0)                                 }                               }                               Else                               {                                 If (LEqual (T_0, 0x26))                                 {                                   Store (^^SIOR.OFT2 (), ASB1)                                   If (LEqual (ASB1, 0xFF))                                   {                                     Store (Zero, ASB0)                                   }                                 }                                 Else                                 {                                   If (LEqual (T_0, 0x27))                                   {                                     Store (^^SIOR.OFT3 (), ASB1)                                     If (LEqual (ASB1, 0xFF))                                     {                                       Store (Zero, ASB0)                                     }                                   }                                   Else                                   {                                     If (LEqual (T_0, 0x31))                                     {                                       Store (^^SIOR.HWF5 (), ASB1)                                       If (LEqual (ASB1, 0xFF))                                       {                                         Store (Zero, ASB0)                                       }                                     }                                     Else                                     {                                       If (LEqual (T_0, 0x32))                                       {                                         Store (^^SIOR.HWFA (), ASB1)                                         If (LEqual (ASB1, 0xFF))                                         {                                           Store (Zero, ASB0)                                         }                                       }                                       Else                                       {                                         If (LEqual (T_0, 0x33))                                         {                                           Store (^^SIOR.HWFB (), ASB1)                                           If (LEqual (ASB1, 0xFF))                                           {                                             Store (Zero, ASB0)                                           }                                         }                                         Else                                         {                                           If (LEqual (T_0, 0x34))                                           {                                             Store (^^SIOR.HWFC (), ASB1)                                             If (LEqual (ASB1, 0xFF))                                             {                                               Store (Zero, ASB0)                                             }                                           }                                           Else                                           {                                             If (LEqual (T_0, 0x35))                                             {                                               Store (^^SIOR.HWF6 (), ASB1)                                               If (LEqual (ASB1, 0xFF))                                               {                                                 Store (Zero, ASB0)                                               }                                             }                                             Else                                             {                                               If (LEqual (T_0, 0x36))                                               {                                                 Store (^^SIOR.HWF9 (), ASB1)                                                 If (LEqual (ASB1, 0xFF))                                                 {                                                   Store (Zero, ASB0)                                                 }                                               }                                               Else                                               {                                                 If (LEqual (T_0, 0x37))                                                 {                                                   Store (^^SIOR.HWF8 (), ASB1)                                                   If (LEqual (ASB1, 0xFF))                                                   {                                                     Store (Zero, ASB0)                                                   }                                                 }                                                 Else                                                 {                                                   If (LEqual (T_0, 0x38))                                                   {                                                     Store (^^SIOR.HWF7 (), ASB1)                                                     If (LEqual (ASB1, 0xFF))                                                     {                                                       Store (Zero, ASB0)                                                     }                                                   }                                                 }                                               }                                             }                                           }                                         }                                       }                                     }                                   }                                 }                               }                             }                           }                         }                       }                     }                   }                 }               }             }           }         }       }     }      Method (SIT6, 3, NotSerialized)     {     }   } but how to implement it to SMCD devices Link to comment Share on other sites More sharing options...
Faradis Posted November 8, 2015 Author Share Posted November 8, 2015 @Ramalama do you have any idea how to fix this issue here is my bios screenshot here is all my dumps from mac and windows https://drive.google.com/folderview?id=0B3mRWZgu0fL_fmlpUW1wSGZsaW1UWmNMOVRuVjZjWVRHOTBWeGhPZGpOb1Zhb3F5MTdIQnc&usp=sharing Link to comment Share on other sites More sharing options...
Ramalama Posted November 8, 2015 Share Posted November 8, 2015 seems like you have already good acpi implementation... Â i hope you are using patched dsdt already... if yes, you can add some code... Â but really, thats only a visual thing... just a useless thing you want to have^^ Â like i said, i had this code in my dsdt long ago, but i have removed it... Â on normally usage, i don't look into hwmonitor, i didn't have it even installed, lol^^ Â if you want to tune something in fakesmc, check which mac is the nearest mac to your pc... which one is almost same... download from this mac ioreg files... check which smh-device the real mac uses and change your smc-device to that... or add some keys inside your fakesmc... you can check your log, which errors you get for not existing keys... Â but the fan monitor... really... for what?^^ Â Â i gave you an example above, its easy to implement, you need just some basic knowledge of acpi spec/language... Â Cheers :-) Link to comment Share on other sites More sharing options...
Faradis Posted November 8, 2015 Author Share Posted November 8, 2015 seems like you have already good acpi implementation...  i hope you are using patched dsdt already... if yes, you can add some code...  but really, thats only a visual thing... just a useless thing you want to have^^  like i said, i had this code in my dsdt long ago, but i have removed it...  on normally usage, i don't look into hwmonitor, i didn't have it even installed, lol^^  if you want to tune something in fakesmc, check which mac is the nearest mac to your pc... which one is almost same... download from this mac ioreg files... check which smh-device the real mac uses and change your smc-device to that... or add some keys inside your fakesmc... you can check your log, which errors you get for not existing keys...  but the fan monitor... really... for what?^^   i gave you an example above, its easy to implement, you need just some basic knowledge of acpi spec/language...  Cheers :-)  heres is my fan related code From my dsdt  Scope (_SB.PCI0.LPCB.SIOR)   {     Name (SNCT, Zero)     Name (E1BK, Zero)     Method (HWV0, 0, NotSerialized)     {       Return (Multiply (VCOR, 0x08))     }      Method (HWV1, 0, NotSerialized)     {       Return (Multiply (V12V, 0x08))     }      Method (HWV3, 0, NotSerialized)     {       Return (Multiply (V33V, 0x08))     }      Method (HWV4, 0, NotSerialized)     {       Return (Multiply (V50V, 0x08))     }      Method (HWT0, 0, NotSerialized)     {       ENFG (0x0C)       Store (CR20, Local0)       EXFG ()       If (LEqual (Local0, 0xB3))       {         Store (Zero, BSEL)         Store (Zero, SR7D)         Store (SR7E, Local1)       }       Else       {         Store (MBTE, Local1)       }        If (And (Local1, 0x80))       {         Or (Local1, 0xFFFFFF00, Local1)       }        Multiply (Local1, 0x0A, Local1)       Return (Local1)     }      Method (HWT1, 0, NotSerialized)     {       Store (One, BSEL)       Store (TSR1, Local1)       If (And (Local1, 0x80))       {         Or (Local1, 0xFFFFFF00, Local1)       }        WBYT (0x80, 0x1D, Local1)       Multiply (Local1, 0x0A, Local1)       Store (TSR2, Local2)       Multiply (Local2, 0x05, Local2)       Add (Local1, Local2, Local1)       Return (Local1)     }      Method (HWT2, 0, NotSerialized)     {       Store (0x02, BSEL)       Store (TSR1, Local1)       If (And (Local1, 0x80))       {         Or (Local1, 0xFFFFFF00, Local1)       }        Multiply (Local1, 0x0A, Local1)       Store (TSR2, Local2)       Multiply (Local2, 0x05, Local2)       Add (Local1, Local2, Local1)       Return (Local1)     }      OperationRegion (DBGE, SystemIO, 0x80, 0x04)     Field (DBGE, WordAcc, NoLock, Preserve)     {       DBGG,  22     }      Method (HWF0, 0, NotSerialized)     {       Store (FAN1, Local0)       Store (Zero, BSEL)       And (FD21, 0x20, Local1)       ShiftRight (Local1, 0x05, Local1)       Multiply (Local1, 0x04, Local1)       And (FDR1, 0x30, Local2)       ShiftRight (Local2, 0x04, Local2)       Add (Local1, Local2, Local1)       If (LOr (LGreater (Local1, 0x05), LLess (Local1, 0x02)))       {         If (LGreater (Local0, 0xF0))         {           Store (0x02, Local1)         }         Else         {           If (LLess (Local0, 0x1E))           {             Store (0x05, Local1)           }           Else           {             Store (0x03, Local1)           }         }          Divide (Local1, 0x04, Local2, Local3)         ShiftLeft (Local3, 0x05, Local3)         Store (FD21, Local4)         And (Local4, 0xDF, Local4)         Or (Local3, Local4, FD21)         Store (FDR1, Local4)         And (Local4, 0xCF, Local4)         ShiftLeft (Local2, 0x04, Local2)         Or (Local4, One, Local4)         Or (Local4, Local2, FDR1)         Sleep (0x32)         Store (FAN1, Local0)       }        While (LOr (LAnd (LGreater (Local0, 0xF0), LLess (Local1, 0x05)), LAnd (         LLess (Local0, 0x1E), LGreater (Local1, 0x02))))       {         If (LAnd (LGreater (Local0, 0xF0), LLess (Local1, 0x05)))         {           Add (Local1, One, Local1)           Divide (Local1, 0x04, Local2, Local3)           Store (Zero, BSEL)           ShiftLeft (Local3, 0x05, Local3)           Store (FD21, Local4)           And (Local4, 0xDF, Local4)           Or (Local3, Local4, FD21)           Store (FDR1, Local4)           And (Local4, 0xCF, Local4)           ShiftLeft (Local2, 0x04, Local2)           Or (Local4, One, Local4)           Or (Local4, Local2, FDR1)           Sleep (0x32)           Store (FAN1, Local0)           Sleep (0x32)           Store (FAN1, Local0)           Sleep (0x32)           Store (FAN1, Local0)         }         Else         {           Subtract (Local1, One, Local1)           Divide (Local1, 0x04, Local2, Local3)           Store (Zero, BSEL)           ShiftLeft (Local3, 0x05, Local3)           Store (FD21, Local4)           And (Local4, 0xDF, Local4)           Or (Local3, Local4, FD21)           Store (FDR1, Local4)           And (Local4, 0xCF, Local4)           ShiftLeft (Local2, 0x04, Local2)           Or (Local4, One, Local4)           Or (Local4, Local2, FDR1)           Sleep (0x32)           Store (FAN1, Local0)           Sleep (0x32)           Store (FAN1, Local0)           Sleep (0x32)           Store (FAN1, Local0)         }       }        If (LAnd (LEqual (Local0, 0xFF), LEqual (Local1, 0x05)))       {         Return (Zero)       }        If (LAnd (LEqual (Local0, Zero), LEqual (Local1, 0x02)))       {         Return (0xFFFF)       }        Store (One, Local2)       While (Local1)       {         Multiply (Local2, 0x02, Local2)         Decrement (Local1)       }        Multiply (Local0, Local2, Local0)       Divide (0x00149970, Local0, Local1, Local0)       Return (Local0)     }      Method (HWF1, 0, NotSerialized)     {       Store (Zero, BSEL)       Store (FAN2, Local0)       And (FD21, 0x40, Local1)       ShiftRight (Local1, 0x06, Local1)       Multiply (Local1, 0x04, Local1)       And (FDR1, 0xC0, Local2)       ShiftRight (Local2, 0x06, Local2)       Add (Local1, Local2, Local1)       If (LOr (LGreater (Local1, 0x05), LLess (Local1, 0x02)))       {         If (LGreater (Local0, 0xF0))         {           Store (0x02, Local1)         }         Else         {           If (LLess (Local0, 0x1E))           {             Store (0x05, Local1)           }           Else           {             Store (0x03, Local1)           }         }          Divide (Local1, 0x04, Local2, Local3)         ShiftLeft (Local3, 0x06, Local3)         Store (FD21, Local4)         And (Local4, 0xBF, Local4)         Or (Local3, Local4, FD21)         Store (FDR1, Local4)         And (Local4, 0x3F, Local4)         ShiftLeft (Local2, 0x06, Local2)         Or (Local4, One, Local4)         Or (Local4, Local2, FDR1)         Sleep (0x32)         Store (Zero, BSEL)         Store (FAN2, Local0)       }        While (LOr (LAnd (LGreater (Local0, 0xF0), LLess (Local1, 0x05)), LAnd (         LLess (Local0, 0x1E), LGreater (Local1, 0x02))))       {         If (LAnd (LLess (Local0, 0x1E), LGreater (Local1, 0x02)))         {           Subtract (Local1, One, Local1)           Divide (Local1, 0x04, Local2, Local3)           Store (Zero, BSEL)           ShiftLeft (Local3, 0x06, Local3)           Store (FD21, Local4)           And (Local4, 0xBF, Local4)           Or (Local3, Local4, FD21)           Store (FDR1, Local4)           And (Local4, 0x3F, Local4)           ShiftLeft (Local2, 0x06, Local2)           Or (Local4, One, Local4)           Or (Local4, Local2, FDR1)           Sleep (0x32)           Store (Zero, BSEL)           Store (FAN2, Local0)           Sleep (0x32)           Store (FAN2, Local0)           Sleep (0x32)           Store (FAN2, Local0)         }         Else         {           Add (Local1, One, Local1)           Divide (Local1, 0x04, Local2, Local3)           Store (Zero, BSEL)           ShiftLeft (Local3, 0x06, Local3)           Store (FD21, Local4)           And (Local4, 0xBF, Local4)           Or (Local3, Local4, FD21)           Store (FDR1, Local4)           And (Local4, 0x3F, Local4)           ShiftLeft (Local2, 0x06, Local2)           Or (Local4, One, Local4)           Or (Local4, Local2, FDR1)           Sleep (0x32)           Store (Zero, BSEL)           Store (FAN2, Local0)           Sleep (0x32)           Store (FAN2, Local0)           Sleep (0x32)           Store (FAN2, Local0)         }       }        If (LAnd (LEqual (Local0, 0xFF), LEqual (Local1, 0x05)))       {         Return (Zero)       }        If (LAnd (LEqual (Local0, Zero), LEqual (Local1, 0x02)))       {         Return (0xFFFF)       }        Store (One, Local2)       While (Local1)       {         Multiply (Local2, 0x02, Local2)         Decrement (Local1)       }        Multiply (Local0, Local2, Local0)       Divide (0x00149970, Local0, Local1, Local0)       Return (Local0)     }      Method (HWF2, 0, NotSerialized)     {       Store (FAN3, Local0)       Store (Zero, BSEL)       And (FD21, 0x80, Local1)       ShiftRight (Local1, 0x07, Local1)       Multiply (Local1, 0x04, Local1)       Divide (FD13, 0x40, Local2, Local3)       Add (Local1, Local3, Local1)       If (LOr (LGreater (Local1, 0x05), LLess (Local1, 0x02)))       {         If (LGreater (Local0, 0xF0))         {           Store (0x02, Local1)         }         Else         {           If (LLess (Local0, 0x1E))           {             Store (0x05, Local1)           }           Else           {             Store (0x03, Local1)           }         }          Divide (Local1, 0x04, Local2, Local3)         ShiftLeft (Local3, 0x07, Local3)         Store (FD21, Local4)         And (Local4, 0x7F, Local4)         Or (Local3, Local4, FD21)         Store (FD13, Local3)         And (Local3, 0x3F, Local3)         Multiply (Local2, 0x40, Local2)         Add (Local3, Local2, Local2)         Store (Local2, FD13)         Sleep (0x32)         Store (FAN3, Local0)       }        While (LOr (LAnd (LGreater (Local0, 0xF0), LLess (Local1, 0x05)), LAnd (         LLess (Local0, 0x1E), LGreater (Local1, 0x02))))       {         If (LAnd (LGreater (Local0, 0xF0), LLess (Local1, 0x05)))         {           If (LEqual (Local0, 0xFF))           {             Store (0x05, Local1)           }           Else           {             Add (Local1, One, Local1)           }            Divide (Local1, 0x04, Local2, Local3)           Store (Zero, BSEL)           ShiftLeft (Local3, 0x07, Local3)           Store (FD21, Local4)           And (Local4, 0x7F, Local4)           Or (Local3, Local4, FD21)           Store (FD13, Local3)           And (Local3, 0x3F, Local3)           Multiply (Local2, 0x40, Local2)           Add (Local3, Local2, Local2)           Store (Local2, FD13)           If (LNotEqual (Local0, 0xFF))           {             Sleep (0x32)           }            Store (FAN3, Local0)           Sleep (0x32)           Store (FAN3, Local0)           Sleep (0x32)           Store (FAN3, Local0)         }         Else         {           Subtract (Local1, One, Local1)           Divide (Local1, 0x04, Local2, Local3)           Store (Zero, BSEL)           ShiftLeft (Local3, 0x07, Local3)           Store (FD21, Local4)           And (Local4, 0x7F, Local4)           Or (Local3, Local4, FD21)           Store (FD13, Local3)           And (Local3, 0x3F, Local3)           Multiply (Local2, 0x40, Local2)           Add (Local3, Local2, Local2)           Store (Local2, FD13)           Sleep (0x32)           Store (FAN3, Local0)           Sleep (0x32)           Store (FAN3, Local0)           Sleep (0x32)           Store (FAN3, Local0)         }       }        If (LAnd (LEqual (Local0, 0xFF), LEqual (Local1, 0x05)))       {         Return (Zero)       }        If (LAnd (LEqual (Local0, Zero), LEqual (Local1, 0x02)))       {         Return (0xFFFF)       }        Store (One, Local2)       While (Local1)       {         Multiply (Local2, 0x02, Local2)         Decrement (Local1)       }        Multiply (Local0, Local2, Local0)       Divide (0x00149970, Local0, Local1, Local0)       Return (Local0)     }      Method (HWF4, 0, NotSerialized)     {       Store (0x05, BSEL)       Store (FAN4, Local0)       Store (Zero, BSEL)       And (FND4, 0x80, Local1)       ShiftRight (Local1, 0x07, Local1)       Multiply (Local1, 0x04, Local1)       And (FND4, 0x0C, Local2)       ShiftRight (Local2, 0x02, Local2)       Add (Local1, Local2, Local1)       If (LOr (LGreater (Local1, 0x05), LLess (Local1, 0x02)))       {         If (LGreater (Local0, 0xF0))         {           Store (0x02, Local1)         }         Else         {           If (LLess (Local0, 0x1E))           {             Store (0x05, Local1)           }           Else           {             Store (0x03, Local1)           }         }          Divide (Local1, 0x04, Local2, Local3)         ShiftLeft (Local3, 0x07, Local3)         ShiftLeft (Local2, 0x02, Local2)         Store (FND4, Local4)         And (Local4, 0x73, Local4)         Or (Local3, Local2, Local3)         Or (Local3, Local4, FND4)         Sleep (0x32)         Store (0x05, BSEL)         Store (FAN4, Local0)       }        While (LOr (LAnd (LGreater (Local0, 0xF0), LLess (Local1, 0x05)), LAnd (         LLess (Local0, 0x1E), LGreater (Local1, 0x02))))       {         If (LAnd (LGreater (Local0, 0xF0), LLess (Local1, 0x05)))         {           Add (Local1, One, Local1)           Divide (Local1, 0x04, Local2, Local3)           Store (Zero, BSEL)           ShiftLeft (Local3, 0x07, Local3)           ShiftLeft (Local2, 0x02, Local2)           Store (FND4, Local4)           And (Local4, 0x73, Local4)           Or (Local3, Local2, Local3)           Or (Local3, Local4, FND4)           If (LNotEqual (Local0, 0xFF))           {             Sleep (0x32)           }            Store (0x05, BSEL)           Store (FAN4, Local0)           Sleep (0x32)           Store (FAN4, Local0)           Sleep (0x32)           Store (FAN4, Local0)           Store (Zero, BSEL)         }         Else         {           Subtract (Local1, One, Local1)           Divide (Local1, 0x04, Local2, Local3)           Store (Zero, BSEL)           ShiftLeft (Local3, 0x07, Local3)           ShiftLeft (Local2, 0x02, Local2)           Store (FND4, Local4)           And (Local4, 0x73, Local4)           Or (Local3, Local2, Local3)           Or (Local3, Local4, FND4)           Sleep (0x32)           Store (0x05, BSEL)           Store (FAN4, Local0)           Sleep (0x32)           Store (FAN4, Local0)           Sleep (0x32)           Store (FAN4, Local0)           Store (Zero, BSEL)         }       }        If (LAnd (LEqual (Local0, 0xFF), LEqual (Local1, 0x05)))       {         Return (Zero)       }        If (LAnd (LEqual (Local0, Zero), LEqual (Local1, 0x02)))       {         Return (0xFFFF)       }        Store (One, Local2)       While (Local1)       {         Multiply (Local2, 0x02, Local2)         Decrement (Local1)       }        Multiply (Local0, Local2, Local0)       Divide (0x00149970, Local0, Local1, Local0)       Return (Local0)     }      Name (FNDT, Package (0x08)     {       One,       0x02,       0x04,       0x08,       0x10,       0x20,       0x40,       0x80     })     Method (HWF3, 0, NotSerialized)     {       Store (Zero, BSEL)       Store (CFN3, Local0)       And (FD15, 0x80, Local1)       ShiftRight (Local1, 0x05, Local1)       And (FND4, 0x03, Local2)       Or (Local1, Local2, Local1)       If (LOr (LGreater (Local1, 0x05), LLess (Local1, 0x02)))       {         If (LGreater (Local0, 0xF0))         {           Store (0x02, Local1)         }         Else         {           If (LLess (Local0, 0x1E))           {             Store (0x05, Local1)           }           Else           {             Store (0x03, Local1)           }         }          ShiftLeft (Local1, 0x05, Local2)         And (Local2, 0x80, Local2)         And (FD15, 0x7F, Local3)         Or (Local2, Local3, Local3)         Store (Local3, FD15)         And (Local1, 0x03, Local2)         And (FND4, 0xFC, Local3)         Or (Local2, Local3, Local3)         Store (Local3, FND4)         Sleep (0x32)         Store (CFN3, Local0)       }        While (LOr (LAnd (LGreater (Local0, 0xF0), LLess (Local1, 0x05)), LAnd (         LLess (Local0, 0x1E), LGreater (Local1, 0x02))))       {         If (LAnd (LGreater (Local0, 0xF0), LLess (Local1, 0x05)))         {           Increment (Local1)         }         Else         {           Decrement (Local1)         }          ShiftLeft (Local1, 0x05, Local2)         And (Local2, 0x80, Local2)         And (FD15, 0x7F, Local3)         Or (Local2, Local3, Local3)         Store (Local3, FD15)         And (Local1, 0x03, Local2)         And (FND4, 0xFC, Local3)         Or (Local2, Local3, Local3)         Store (Local3, FND4)         Sleep (0x32)         Store (CFN3, Local0)         Sleep (0x32)         Store (CFN3, Local0)         Sleep (0x32)         Store (CFN3, Local0)       }        If (LAnd (LEqual (Local0, 0xFF), LEqual (Local1, 0x05)))       {         Return (Zero)       }        If (LAnd (LEqual (Local0, Zero), LEqual (Local1, 0x02)))       {         Return (0xFFFF)       }        Store (DerefOf (Index (FNDT, Local1)), Local2)       Multiply (Local0, Local2, Local0)       Divide (0x00149970, Local0, Local1, Local0)       Return (Local0)     }      OperationRegion (HWRE, SystemIO, IOHW, 0x0A)     Field (HWRE, ByteAcc, NoLock, Preserve)     {           Offset (0x05),       HIDX,  8,       HDAT,  8     }      IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve)     {           Offset (0x04),       CHNM,  1,       CFNM,  1,       CHNS,  2,       CFNS,  2,           Offset (0x05),       SYST,  8,       TRGT,  8,           Offset (0x08),       SSDN,  8,       CSDN,  8,       SSUP,  8,       CSUP,  8,           Offset (0x20),       VCOR,  8,       V12V,  8,           Offset (0x23),       V33V,  8,       V50V,  8,           Offset (0x27),       MBTE,  8,       FAN1,  8,       FAN2,  8,       FAN3,  8,           Offset (0x3F),       CFN3,  8,           Offset (0x47),       FDR1,  8,           Offset (0x4B),       FD13,  8,       FD15,  8,           Offset (0x4E),       BSEL,  4,           Offset (0x4F),           Offset (0x50),       TSR1,  8,         ,  7,       TSR2,  1,           Offset (0x53),       FAN4,  8,           Offset (0x59),       FND4,  8,           Offset (0x5D),       FD21,  8,           Offset (0x7D),       SR7D,  8,       SR7E,  8     }   } Link to comment Share on other sites More sharing options...
Recommended Posts