Jump to content

please help me fix Brightness Control Nvidia Graphics Only Laptop

rehabman

  • Please log in to reply
60 replies to this topic

#1
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts

Hi Everyone
I'm Trying to get my laptop running OS X Sierra, So far everything is working except for screen backlight and keyboard backlight.
this laptop has not got intel graphics its disabled from factory, the Nvidia graphics work fine with the new pascal web drivers but I can't find a working solution to fix the backlight control.
I can't figure out why none of the patches I apply to the DSDT Fix the backlight, theres not much documentation regarding dedicated graphics in laptops that help with this issue

1st I noticed that the display prefpane looks like MacOS thinks its an external Display, so PNLF is pointless without the display being classed as "Built-In" I presume?
2nd theres no default PNLF device in the dsdt,


but theres something similar in one of the ssdt's, note I added rename GFX0 to IGPU.patch to all my Tables

    Scope (\_SB.PCI0)
    {
        Device (DPLY)
        {
            Name (_HID, EisaId ("INT3406"))  // _HID: Hardware ID
            Name (_UID, "DPLY")  // _UID: Unique ID
            Name (BDLI, 0x20)
            Name (BDHI, 0x52)
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (LEqual (DISE, One))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }

            Method (DDDL, 0, NotSerialized)
            {
                Return (BDLI)
            }

            Method (DDPC, 0, NotSerialized)
            {
                Return (BDHI)
            }

            Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
            {
                If (CondRefOf (\_SB.PCI0.IGPU.LCDD._BCL))
                {
                    Return (\_SB.PCI0.IGPU.LCDD._BCL ())
                }
                Else
                {
                    Return (Package (0x01)
                    {
                        Zero
                    })
                }
            }

            Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
            {
                If (CondRefOf (\_SB.PCI0.IGPU.LCDD._BCM))
                {
                    \_SB.PCI0.IGPU.LCDD._BCM (Arg0)
                }
            }

            Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
            {
                If (CondRefOf (\_SB.PCI0.IGPU.LCDD._BQC))
                {
                    Return (\_SB.PCI0.IGPU.LCDD._BQC ())
                }
                Else
                {
                    Return (Zero)
                }
            }

            Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
            {
                If (CondRefOf (\_SB.PCI0.IGPU.LCDD._DCS))
                {
                    Return (\_SB.PCI0.IGPU.LCDD._DCS ())
                }
                Else
                {
                    Return (Zero)
                }
            }
        }
    }

this is what I added to the dsdt

        Device (PNLF)
        {
            Name (_HID, EisaId ("APP0002"))  // _HID: Hardware ID
            Name (_CID, "backlight")  // _CID: Compatible ID
            Name (_UID, 0x0A)  // _UID: Unique ID
            Name (_STA, 0x0B)  // _STA: Status
            Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
            {
            }

            Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
            {
                Return (^^PCI0.PEG0.IGPU.LCDD._BCL ())
            }

            Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
            {
                ^^PCI0.PEG0.IGPU.LCDD._BCM (Arg0)
            }

            Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
            {
                Return (^^PCI0.PEG0.IGPU.LCDD._BQC ())
            }
        }
    }

theres no backlight control atall
can someone please help me figure this out as the laptop is rather new and so is the graphics chip, theres not much documentation thats helpful at the moment
also could web drivers be a possible issue regarding this?

Ive attached my patched and unpatched DSDT's in my signature, if you need more information just let me know
my whole Clover Folder can be found Here, the original decompiled DSDT's are in /efi/efi/clover/acpi/backup/

I've attached an IOreg to this post
Thanks

intel 6th gen skylake I5 6300HQ
Nvidia dedicated graphics card GTX1060 6g
8gb ddr4 ram
intel h170 chipset
alc255
I needed USBinjectAll.kext and sata-100-series-unsuppoted.kext to get this to boot



#2
SavageAUS

SavageAUS

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,286 posts
  • Gender:Male
I just had to repatch my haswell laptop for this reason (non working backlight) intelbacklight and acpibacklight kexts no longer work nor do the normal dsdt ssdt patches. You need to use an additional kext, (AppleBacklightInjector.kext) a ssdt-pnlf and a config.plist patch. All previously used kexts need to be removed same as acpi patches. Either remove patches or repatch from start without pnlf patching.
This is only based on what I did and that was for haswell with Intel graphics (Nvidia disabled via dsdt and ssdt).

Sent from my SM-G930F using Tapatalk

#3
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
Hi thanks but, i cannot disable nvidia as its the only graphics card. This wont work for me
But thanks snyway mate

#4
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
I found this info about the PNLF'ish looking piece if code




prompt: ACPI INT3406 display thermal driver
type: tristate
depends on: CONFIG_ACPI_VIDEO
defined in drivers/thermal/int340x_thermal/Kconfig
found in Linux kernels: 4.7–4.10, 4.11-rc+HEAD
modules built: int3406_thermal
Help text

The display thermal device represents the LED/LCD display panel that may or may not include touch support. The main function of the display thermal device is to allow control of the display brightness in order to address a thermal condition or to reduce power consumed by display device.

#5
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts

anyone know if this would work?

    Scope (\_SB.PCI0)
    {            
        Device (PNLF)
        {
            Name (_HID, EisaId ("APP0002"))  // _HID: Hardware ID
            Name (_CID, "backlight")  // _CID: Compatible ID
            Name (_UID, 0x0A)  // _UID: Unique ID
            Name (_STA, 0x0B)  // _STA: Status
            Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
            {
            }

            Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
            {
                Return (\_SB.PCI0.IGPU.LCDD._BCL ())

            }

            Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
            {
                \_SB.PCI0.IGPU.LCDD._BCM (Arg0)
            }

            Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
            {
                Return (\_SB.PCI0.IGPU.LCDD._BQC ())            }
        }
    }

I added this to my ssdt instead as the methods didn't exist in the dsdt?

I still dont have backlight control, in display prefs



#6
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts

I just had to repatch my haswell laptop for this reason (non working backlight) intelbacklight and acpibacklight kexts no longer work nor do the normal dsdt ssdt patches. You need to use an additional kext, (AppleBacklightInjector.kext) a ssdt-pnlf and a config.plist patch. All previously used kexts need to be removed same as acpi patches. Either remove patches or repatch from start without pnlf patching.
This is only based on what I did and that was for haswell with Intel graphics (Nvidia disabled via dsdt and ssdt).

Sent from my SM-G930F using Tapatalk

thanks for the info mate, tbh I didn't see the AppleBacklightInjector.kext part the last rime I read it, I didn't know the 10.12.4 update broke backlight... oh well ill see if I can get it working with this approach.



#7
qaz321xsw

qaz321xsw

    InsanelyMac Protégé

  • Members
  • Pip
  • 3 posts

I've same prob too. brightness backlight work flawlessly on 10.10.5 (up/down FN Keys or slider on display pref). after Sierra 10.12.4 the slider won't work. I tried different version PNLF dsdt patch, and update to AsusACPIBacklight 1.7 kext by Dinesh but still same.

PS: Asus K/A43SM GT630M, default NVdrivers, no intel HD
 



#8
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts

post your dsdt from when it worked so I can take a look


you should try this patch

here



#9
qaz321xsw

qaz321xsw

    InsanelyMac Protégé

  • Members
  • Pip
  • 3 posts

yea, I've tried that, even the G50 ones and slider still won't work

 

please have a look
PS: dsdt when i still use Yosemite

Attached Files



#10
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts

so this dsdt with the PNLF patch works in Yosemite?


you have a custom edit in this dsdt


            Device (PEGR)
            {
                Name (_ADR, 0x00010000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR02 ())
                    }

                    Return (PR02 ())
                }

                Device (GFX0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (VSID, PCI_Config, Zero, 0x04)
                    Field (VSID, ByteAcc, NoLock, Preserve)
                    {
                        REG0,   32
                    }

                    Name (BLAC, Package (0x0B) {})
                    Name (_SUN, One)  // _SUN: Slot User Number
                    Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                    {
                        Store (Package (0x3C)
                            {
                                "AAPL,backlight-control", 
                                Buffer (0x04)
                                {
                                     0x01, 0x00, 0x00, 0x00                         
                                }, 

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

                                "AAPL,aux-power-connected", 
                                Buffer (0x04)
                                {
                                     0x01, 0x00, 0x00, 0x00                         
                                }, 

                                "@0,AAPL,boot-display", 
                                Buffer (One)
                                {
                                     0x01                                           
                                }, 

                                "@0,display-cfg", 
                                Buffer (0x04)
                                {
                                     0x03, 0x01, 0x00, 0x00                         
                                }, 

                                "@1,display-cfg", 
                                Buffer (0x04)
                                {
                                     0xFF, 0xFF, 0x07, 0x01                         
                                }, 

                                "@0,connector-type", 
                                Buffer (0x04)
                                {
                                     0x00, 0x08, 0x00, 0x00                         
                                }, 

                                "@1,connector-type", 
                                Buffer (0x04)
                                {
                                     0x00, 0x08, 0x00, 0x00                         
                                }, 

                                "@0,built-in", 
                                Buffer (0x04)
                                {
                                     0x00, 0x00, 0x00, 0x01                         
                                }, 

                                "@0,use-backlight-blanking", 
                                Buffer (0x04) {}, 
                                "AAPL,gray-page", 
                                Buffer (0x04)
                                {
                                     0x01, 0x00, 0x00, 0x00                         
                                }, 

                                "AAPL00,inverter", 
                                Buffer (0x04)
                                {
                                     0x00, 0x00, 0x00, 0x00                         
                                }, 

                                "@1,can-hot-plug", 
                                Buffer (0x04) {}, 
                                "AAPL00,blackscreen.preferences", 
                                Buffer (0x04)
                                {
                                     0x00, 0x00, 0x00, 0x08                         
                                }, 

                                "AAPL01,blackscreen.preferences", 
                                Buffer (0x04)
                                {
                                     0x00, 0x00, 0x00, 0x08                         
                                }, 

                                "@0,pwm-info", 
                                Buffer (0x18)
                                {
                                    /* 0000 */  0x02, 0x18, 0x00, 0x64, 0x90, 0x59, 0x02, 0x00,
                                    /* 0008 */  0x08, 0x52, 0x00, 0x00, 0xA5, 0x1C, 0x00, 0x00,
                                    /* 0010 */  0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 
                                }, 

                                "NVPM", 
                                Buffer (0x1C)
                                {
                                    /* 0000 */  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0010 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0018 */  0x00, 0x00, 0x00, 0x00                         
                                }, 

                                "@0,EDID", 
                                Buffer (0x80)
                                {
                                    /* 0000 */  0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
                                    /* 0008 */  0x30, 0xE4, 0xF8, 0x02, 0x00, 0x00, 0x00, 0x00,
                                    /* 0010 */  0x00, 0x14, 0x01, 0x03, 0x80, 0x1F, 0x11, 0x78,
                                    /* 0018 */  0x0A, 0x0D, 0x45, 0x9D, 0x5A, 0x55, 0x96, 0x26,
                                    /* 0020 */  0x1A, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
                                    /* 0028 */  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
                                    /* 0030 */  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x58, 0x1B,
                                    /* 0038 */  0x56, 0x7E, 0x50, 0x00, 0x0E, 0x30, 0x24, 0x30,
                                    /* 0040 */  0x35, 0x00, 0x35, 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 */  0x34, 0x2D, 0x54, 0x4C, 0x43, 0x31, 0x00, 0x08 
                                }, 

                                "@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, 0x03, 0x00,
                                    /* 0008 */  0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
                                    /* 0010 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 
                                }, 

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

                                "device_type", 
                                Buffer (0x0C)
                                {
                                    "NVDA,Parent"
                                }, 

                                "model", 
                                Buffer (0x17)
                                {
                                    "NVIDIA GeForce GT 630M"
                                }, 

                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-2"
                                }, 

                                "rom-revision", 
                                Buffer (0x0F)
                                {
                                    "70.08.92.00.15"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }



#11
qaz321xsw

qaz321xsw

    InsanelyMac Protégé

  • Members
  • Pip
  • 3 posts

yes, I remembered last time added some patch in PEGR/GFX0 to enabling brightness animation.
but for brightness slider asusacpibacklight kext still needed .



#12
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts

its strange that i cant apply an custom EDID with both clover and via dsdt like above, the display product/vendor id stay the same no matter what, it was an attempt to get the display recognised as built-in with backlight but it thinks its on a displayport, with PNLF in dsdt also.

i cant figure it out,

 

maybe its something with 10.12.4 thats stopping me



#13
DuongTHVN

DuongTHVN

    InsanelyMac Protégé

  • Members
  • PipPip
  • 67 posts
  • Gender:Male
  • Location:VietNam

Can i help you ?

i have some testcase !



#14
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
Yes ofcourse Any help is appreciated

#15
DuongTHVN

DuongTHVN

    InsanelyMac Protégé

  • Members
  • PipPip
  • 67 posts
  • Gender:Male
  • Location:VietNam

i have a good new and a bad new

 

good new : we can enable brightness slide bar.  :D

bad new : display not change birghtness when slide the brightness bar. :blush:

2hYoTNC.jpg



#16
foskvs

foskvs

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 2,395 posts
  • Gender:Male
  • Location:Italy

i have a good new and a bad new

 

good new : we can enable brightness slide bar.  :D

bad new : display not change birghtness when slide the brightness bar. :blush:

Hi, can you attach Acpi folder? Do brightness fn keys work (even if brightness doesn't actually change)?



#17
RicardoRangel

RicardoRangel

    InsanelyMac Protégé

  • Members
  • Pip
  • 18 posts

Wow!

@DuongTHVN!!!

 

How do you do to enable the Brightness Slider on Pascal???

 

I have a 1070 on a notebook...

 

Please share.



#18
foskvs

foskvs

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 2,395 posts
  • Gender:Male
  • Location:Italy

Wow!

@DuongTHVN!!!

 

How do you do to enable the Brightness Slider on Pascal???

 

I have a 1070 on a notebook...

 

Please share.

Attach your Clover folder, with Acpi tables. Enabling the slider is quite easy. The real trick is to get it working.

Put your hardware specs into signature.



#19
xela

xela

    InsanelyMac Protégé

  • Donators
  • 61 posts
  • Gender:Male
  • Location:Jingapore

Attach your Clover folder, with Acpi tables. Enabling the slider is quite easy. The real trick is to get it working.

Put your hardware specs into signature.

 

Another 1 here, Thanks in advance

 

Computer:
Dell Alienware 15 r3, i7-7700HQ/Intel Kaby Lake rev. 05, BIOS 1.0.9, Intel® HD Graphics 630/

NVIDIA GeForce GTX 1070 (1920x1080) G-SYNC Panel 16GB RAM, Clover UEFI

Attached Files



#20
onejay09

onejay09

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts

hi foskvs thanks

heres my acpi folder

 

Laptop: asus rog gl702vm, dedicated nvidia gtx1060

Attached Files

  • Attached File  ACPI.zip   667.67KB   5 downloads






Also tagged with one or more of these keywords: rehabman


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2017 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy