Jump to content

Laptop Screen Brightness Conflict With Video Card Driver.


kingoffright
 Share

1 post in this topic

Recommended Posts

Hi,guys~! Today I get a code of laptop screen brightness which can adjust the brightness after enter the system. It should be add into the GFX0 device, here is the code:

 

					Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x0C)
						{
							"DisplayProductID", 
							Buffer (0x04) 
							{
								0x5F, 0x9C, 0x00, 0x00
							},

							"DisplayVendorID", 
							Buffer (0x04)
							{
								0x10, 0x06, 0x00, 0x00
							},

							"AAPL,HasPanel", 
							Buffer (0x04)
							{
								 0x01, 0x00, 0x00, 0x00
							},

							"AAPL,backlight-control", 
							Buffer (0x04)
							{				
								0xEE, 0x01, 0x00, 0x00
							},

							"AAPL01,DualLink",
							Buffer (0x04)
							{
								0x01, 0x00, 0x00, 0x00
							},

							"AAPL01,EDID",
							Buffer (0x80)
							{
								/* 0000 */	0X00, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X00, 
								/* 0008 */	0X30, 0XE4, 0X8B, 0X01, 0X00, 0X00, 0X00, 0X00, 
								/* 0010 */	0X00, 0X12, 0X01, 0X03, 0X80, 0X1F, 0X11, 0X78, 
								/* 0018 */	0X0A, 0X4A, 0X05, 0X9E, 0X5B, 0X54, 0X95, 0X25, 
								/* 0020 */	0X18, 0X50, 0X54, 0X00, 0X00, 0X00, 0X01, 0X01, 
								/* 0028 */	0X01, 0X01, 0X01, 0X01, 0X01, 0X01, 0X01, 0X01, 
								/* 0030 */	0X01, 0X01, 0X01, 0X01, 0X01, 0X01, 0X3E, 0X1C, 
								/* 0038 */	0X56, 0XA0, 0X50, 0X00, 0X16, 0X30, 0X30, 0X20, 
								/* 0040 */	0X35, 0X00, 0X36, 0XAE, 0X10, 0X00, 0X00, 0X19, 
								/* 0048 */	0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 
								/* 0050 */	0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 
								/* 0058 */	0X00, 0X00, 0X00, 0X00, 0X00, 0XFE, 0X00, 0X4C, 
								/* 0060 */	0X47, 0X20, 0X44, 0X69, 0X73, 0X70, 0X6C, 0X61, 
								/* 0068 */	0X79, 0X0A, 0X20, 0X20, 0X00, 0X00, 0X00, 0XFE, 
								/* 0070 */	0X00, 0X4C, 0X50, 0X31, 0X34, 0X30, 0X57, 0X48, 
								/* 0078 */	0X31, 0X2D, 0X54, 0X4C, 0X41, 0X31, 0X00, 0X75
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}

 

unfortunely, my video card had used the method _DSM already~!  :P

 

	 Device (PEGP)
		{
			Name (_ADR, 0x00010000)
			Device (GFX0)
			{
				Name (_ADR, Zero)
				Name (_SUN, One)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x16)
						{
							"@0,compatible", 
							Buffer (0x0B)
							{
								"NVDA,NVMac"
							}, 

							"@0,device_type", 
							Buffer (0x08)
							{
								"display"
							}, 

							"@0,name", 
							Buffer (0x0F)
							{
								"NVDA,Display-A"
							}, 

							"@1,compatible", 
							Buffer (0x0B)
							{
								"NVDA,NVMac"
							}, 

							"@1,device_type", 
							Buffer (0x08)
							{
								"display"
							}, 

							"@1,name", 
							Buffer (0x0F)
							{
								"NVDA,Display-B"
							}, 

							"NVCAP", 
							Buffer (0x18)
							{
								/* 0000 */	0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 
								/* 0008 */	0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
								/* 0010 */	0x00, 0x00, 0x00, 0x00
							}, 

							"VRAM,totalsize", 
							Buffer (0x04)
							{
								0x00, 0x00, 0x00, 0x20
							}, 

							"device_type", 
							Buffer (0x0D)
							{
								"NVDA,GeForce"
							}, 

							"model", 
							Buffer (0x17)
							{
								"nVidia GeForce GT 240M"
							}, 

							"rom-revision", 
							Buffer (0x25)
							{
								"nVidia GeForce GT 240M OpenGL Engine"
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}
		}

 

both of them had use the DTGP method :) , but I can't figure out how this work in the above codes :( :

 

	Method (DTGP, 5, NotSerialized)
{
	If (LEqual (Arg0, Buffer (0x10)
			{
				/* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
				/* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
			}))
	{
		If (LEqual (Arg1, One))
		{
			If (LEqual (Arg2, Zero))
			{
				Store (Buffer (One)
					{
						0x03
					}, Arg4)
				Return (One)
			}

			If (LEqual (Arg2, One))
			{
				Return (One)
			}
		}
	}

	Store (Buffer (One)
		{
			0x00
		}, Arg4)
	Return (Zero)
}

 

I had tried many ways, including put them together into GFX0, but with _DSM method already used...

get the contents in one Store (Package (0x0C) { ... }, this result in only the video card driver works only...

I had another GFX0 with Name (_ADR, 0x00020000), I put the screen brightness code method to it, but couldn't adjust the brightnees at all.

I really appreciate you guys if could give me a help or any ways may help with this issue. Thanks anyway~! ;)

 

 

refix_dsdt.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...