Jump to content

Please help me in DSDT patching for Intel HD 3000 Graphics Asus X53SC Laptop


majrul
 Share

2 posts in this topic

Recommended Posts

Hi,

 

I am facing all those artifacts on my ASUS X53SC Laptop and found that many were able to solve the problem by editing the DSDT by adding the following code:

 

Method (_DSM, 4, NotSerialized)
	    {
		    Store (Package (0x02)
			    {
				    "AAPL00,DualLink",
				    Buffer (0x04)
				    {
					    0x01, 0x00, 0x00, 0x00
				    }
			    }, Local0)
		    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
		    Return (Local0)
	    }

But the problem is that the DSDT for my system already contains the following method with this code:

Method (_DSM, 4, Serialized)
		    {
			    Name (_T_0, Zero)
			    If (LEqual (Arg0, Buffer (0x10)
					    {
						    /* 0000 */    0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
						    /* 0008 */    0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
					    }))
			    {
				    Store (Zero, Local0)
				    Store (ShiftLeft (DerefOf (Index (Arg3, 0x03)), 0x18), Local0)
				    Add (ShiftLeft (DerefOf (Index (Arg3, 0x02)), 0x10), Local0,
					    Local0)
				    Add (ShiftLeft (DerefOf (Index (Arg3, One)), 0x08), Local0,
					    Local0)
				    Add (ShiftLeft (DerefOf (Index (Arg3, Zero)), Zero), Local0,
					    Local0)
				    If (LNotEqual (Arg1, 0x0100))
				    {
					    Return (Buffer (0x04)
					    {
						    0x02, 0x00, 0x00, 0x80
					    })
				    }
				    Store ("Optimus _DSM is called ", Debug)
				    While (One)
				    {
					    Store (Arg2, _T_0)
					    If (LEqual (_T_0, 0x00))
					    {
						    Store ("Optimus _DSM subfunc 0, return 0x04000001 ", Debug)
						    Return (Buffer (0x04)
						    {
							    0x01, 0x00, 0x03, 0x04
						    })
					    }
					    Else
					    {
						    If (LEqual (_T_0, 0x1A))
						    {
							    Store ("Optimus _DSM subfunc 26 ", Debug)
							    If (And (Local0, One))
							    {
								    ShiftRight (Local0, 0x18, Local2)
								    If (LEqual (Local2, 0x03))
								    {
									    Store ("Optimus _DSM subfunc 26, OMPR=3", Debug)
									    Store (0x03, \OMPR)
								    }
								    If (LEqual (Local2, 0x02))
								    {
									    Store (0x02, \OMPR)
								    }
							    }
							    If (LEqual (\PO54, Zero))
							    {
								    Return (Buffer (0x04)
								    {
									    0x59, 0x00, 0x00, 0x01
								    })
							    }
							    Else
							    {
								    Return (Buffer (0x04)
								    {
									    0x41, 0x00, 0x00, 0x01
								    })
							    }
						    }
						    Else
						    {
							    Return (Buffer (0x04)
							    {
								    0x02, 0x00, 0x00, 0x80
							    })
						    }
					    }
					    Break
				    }
			    }
			    Return (0x00)
		    }

 

Because i am very new to DSDT patching, i am unable to understand where should i incorporate the changes required so that i can make Intel HD 3000 Graphics work smoothly. I even tried some heroic things but then the output was a blank screen. Please help me in editing this _DSM method.

Link to comment
Share on other sites

  • 2 weeks later...
 Share

×
×
  • Create New...