Jump to content

graphics only in safe mode-latitude d520


john67

Recommended Posts

  • Administrators

Here is the patched DSDT required to get the built-in LCD working on the D520: Patched_D520_DSDT.aml.zip

 

Patches applied to the extracted raw DSDT table:

1) Fixed incorrect _HID statement for AMW0 device (not linked to LCD issue, but erroneous code that needs fixing to be able to recompile the table)

incorrect code:

        Device (AMW0)
        {
            Mutex (WMIX, 0x01)
            Name (_HID, "*pnp0c14")     /* incorrect statement */
            Name (_UID, 0x00)

fixed code:

       Device (AMW0)
       {
           Mutex (WMIX, 0x01)
           Name (_HID, "PNP0C14")     /* correct statement */
           Name (_UID, Zero)

2) Injected some basic GMA950 characteristics into VID device @0x00020000 (=IGPU) with a DSM method

original code:

           Device (VID)
           {
               Name (_ADR, 0x00020000)
               Method (_DOS, 1, NotSerialized)
               {
                   Store (Arg0, MIS4)
                   SMI (0x9E, MIS4)
               }

patched code:

           Device (VID)
           {
               Name (_ADR, 0x00020000)
               Method (_DSM, 4, NotSerialized)     /* DSM method to inject device characteristics */
               {
                   Store (Package (0x06)
                   {
                       "device_type", 
                       Buffer (0x08)
                       {
                           "display"
                       }, 
                       "model", 
                       Buffer (0x0D)
                       {
                           "Intel GMA950"
                       }, 
                       "AAPL,slot-name", 
                       Buffer (0x09)
                       {
                           "Internal"
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }                                   /* end of DSM method */
               Method (_DOS, 1, NotSerialized)
               {
                   Store (Arg0, MIS4)
                   SMI (0x9E, MIS4)
               }

3) Added a DTGP method to complete the above injection (placed between OSID and SOST methods)

added code:

   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)
   }    
4) Injected built-in display characteristics with a PNLF device (placed between LID and PBTN devices)
added code:
        Device (PNLF)
        {
            Name (_HID, EisaId ("APP0002"))
            Name (_CID, "backlight")
            Name (_UID, 0x0A)
            Name (_STA, 0x0B)
        }
Link to comment
Share on other sites

  • Replies 50
  • Created
  • Last Reply

Top Posters In This Topic

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...