Jump to content
InsanelyMac Forum
Ccc

Please help with DSDT editing, fan speed not detecting

Recommended Posts

Could anyone please help with editing DSDT to detect fan speed?

Fan speed not detected by SMC monitor, HWMonitor, iStat Menus, iStat Pro.

The super I/O seems to be it8502e by RW everything.

 

my Laptop is dell inspiron 1464.

chipset HM55

CPU:i5-430m (c-state p-state enabled)

ATI 4330 512MB (QE/CI enabled)

Lion 10.7.2

Chameleon v2.1svn r1618

FakeSMC v4 rev530

 

 

Tried add Device (SMCD) and Method (FAN0, and add ACPISensor.kext or ITEIT87x.kext to /S/L/E, but still not working.

 

Here is the code I used before the Device (EC0):

Device (SMCD)
		    {
			    Name (_HID, "MONITOR")
			    Method (FAN0, 0, NotSerialized)
			    {
				    Store (^^EC0.FANH, Local0)
				    Store (^^EC0.FANL, Local1)
				    And (Local0, 0xFFFF, Local0)
				    And (Local1, 0xFFFF, Local1)
				    If (LNotEqual (Local0, Zero))
				    {
					    If (LEqual (Local0, 0xFFFF))
					    {
						    Store (Zero, Local0)
					    }
					    Else
					    {
						    Store (0x0100, Local2)
						    Multiply (Local0, Local2, Local3)
						    Add (Local1, Local3, Local4)
						    Divide (0x03938700, Local4, Local5, Local6)
						    Store (Local6, Local0)
					    }
				    }
				    Else
				    {
					    Store (Zero, Local0)
				    }
				    Return (Local0)
			    }
		    }

 

Here FANH and FANL are the high bits and low bits of fan speed that I can confirm in Win7 using everest, for example, FANH=0x0C, FANL=0x85, then fan speed=0x0C85 = 3205 rpm. but I couldn't understand why Divide (0x03938700, Local4, Local5, Local6).

so i changed it to below, seems correct and compile passed, but still not detecting fan speed.

 

Device (SMCD)
		    {
			    Name (_HID, "MONITOR")
			    Method (FAN0, 0, NotSerialized)
			    {
				    Store (^^EC0.FANH, Local0)
				    Store (^^EC0.FANL, Local1)
				    And (Local0, 0xFFFF, Local0)
				    And (Local1, 0xFFFF, Local1)
				    If (LNotEqual (Local0, Zero))
				    {
					    If (LEqual (Local0, 0xFFFF))
					    {
						    Store (Zero, Local0)
					    }
					    Else
					    {
						    Store (0x0100, Local2)
						    Multiply (Local0, Local2, Local3)
						    Add (Local1, Local3, Local4)
						    Store (Local4, Local0)
					    }
				    }
				    Else
				    {
					    Store (Zero, Local0)
				    }
				    Return (Local0)
			    }
		    }

Share this post


Link to post
Share on other sites
Advertisement

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.



×