Contribute
Register

Apple Backlight Injector Brightness not saved

Status
Not open for further replies.
I have now created my Problem reporting Files one time without the SSDT-IGPU and one with SSDT-IGPU were I don't have the Gahpics Acceleration available. When I set in Clover 0xfff then I get Full Brightness on every restart. I also noticed when IntelBacklightInjector has loaded and I set my Brightness on a lower level then the Monitor begin to have a flimmering. WHen I set it then to a higher Brightness then it is gone. WHen AppleBacklightInject wasn't load I don't had this problem with the flimmering.
I have also seen in an other Thread this comment "If you want to save the settings of the display brightness: downgrade to clover 3899, in the never versions the nvram restore is broken." Maybe someone can show what has changed since then in Clover. In Clover I set now the Backlight Level Value again to 0. In the Clover Settings I have also saved the Boot Log.
 

Attachments

  • Problem_Reporting_Files.zip
    7.4 MB · Views: 103
  • Problem_Reporting_Files_SSDT-IGPU.zip
    9.4 MB · Views: 100
Alrighty! So I've got some results here:


Dell BIOS only controls brightness of the Dell Logo at boot (which is what it should be doing, ideally). This becomes the value "AppleBacklightAtBoot" in ioreg, and this is what changes whether or not the AC Adapter is plugged in, etc.


The PWM frequency (0-0x56C) is logarithmic.


The max NVRAM value using AppleBacklight is 0x56C, so there's no weird mapping going on here.


I just rebooted having AppleRawPanelBrightness at 0x56C, and I can verify this was correctly written to NVRAM.


Upon reboot, the brightness level was set to 0x382. No idea where this number came from, but it's certainly not 0x56C, despite the NVRAM being set to 0x56C. Looks like there's an issue when loading the NVRAM value.


Which means you need to give it time before restart or you'll miss the latest change. I'm not sure if AppleBacklight.kext uses the same mechanism or if it has the same delay.


I am using AppleBacklightInjector with the native AppleBacklight.


I'm not sure what you're referring to, but even the mechanism that IntelBacklight.kext uses to write NVRAM values suffers from a delay.


I'm now very confident that RawPanelBrightness only updates when the system undergoes an ACPI rescan. In other words, changing the brightness and then, say, unplugging a USB device, causes AppleRawPanelBrightness to update as soon as the system responds to the USB device removal. Letting the system sit doing nothing for a while causes no change, so in order for the brightness setting to "stick" we probably need to have the system respond to the brightness setting change. I think Dell's ACPI attempts to do that with the ACPI device LCD_ with Notify(LCD, 0x87) and Notify(LCD, 0x86), since that's what BRT6, which is the ACPI method that gets called by the brightness keys, does, but it doesn't work.
 
Last edited:
I have now created my Problem reporting Files one time without the SSDT-IGPU and one with SSDT-IGPU were I don't have the Gahpics Acceleration available.

Your mistake.
You set IGPI in SSDT-Config.aml to 1.
Anything other than zero for IGPI disables automatic ig-platform-id detection and causes it to inject whatever value you set in IGPI. So... you're injecting AAPL,ig-platform-id=1. It is an invalid ig-platform-id, so it disables the graphics drivers.
The default ig-platform-id in SSDT-IGPU is 0x191b0000 for device-id 0x191b, so if you want to override it to match what you're already using, you should set IGPI to 0x19260004.

When I set in Clover 0xfff then I get Full Brightness on every restart.

As you should expect.

I also noticed when IntelBacklightInjector has loaded and I set my Brightness on a lower level then the Monitor begin to have a flimmering.

Your ioreg shows macOS 10.12.5. IntelBacklight.kext does not work on 10.12.5.

I have also seen in an other Thread this comment "If you want to save the settings of the display brightness: downgrade to clover 3899, in the never versions the nvram restore is broken."

(emulated) NVRAM is probably fixed now. You should test NVRAM separately (use nvram in Terminal to set a test variable).
 
I'm now very confident that RawPanelBrightness only updates when the system undergoes an ACPI rescan. In other words, changing the brightness and then, say, unplugging a USB device, causes AppleRawPanelBrightness to update as soon as the system responds to the USB device removal.

Use Command+U to make sure you're looking at current values in ioreg.
You may be looking at stale data if you forget to update...
 
Sorry I mean AppleBacklightInjector not IntelBacklightInjector. Yes I am using 10.12.5. You should have seen it in the Kextcache Commands. My Testvariable is saved on an reboot in the emulated NVRAM but the Backlight Value isn't loaded correctly. For the IGPI Value in the SSDT-Config should I set the Value to Zero instead of One your should I Insert the Value of the IG Platform?
 
Sorry I mean AppleBacklightInjector not IntelBacklightInjector.

You can modify the data in AppleBacklightInjector.kext Info.plist to change the values used for each brightness level.

My Testvariable is saved on an reboot in the emulated NVRAM but the Backlight Value isn't loaded correctly.

And that is the problem you must get to the root of.
I can't reproduce the problem on any of my 4 laptops here, so...

For the IGPI Value in the SSDT-Config should I set the Value to Zero instead of One your should I Insert the Value of the IG Platform?

If you set it to zero, SSDT-IGPU.aml will inject 0x191b0000. If that works for your system, then try it...
The idea behind IGPI is that you can override what SSDT-IGPU.aml does regarding ig-platform-id if you want. Much like how you can override default Clover with config.plist/Graphics/ig-platform-id.

I don't know why you set it to 1. It is clearly documented in SSDT-Config.dsl comments.
 
Use Command+U to make sure you're looking at current values in ioreg.
You may be looking at stale data if you forget to update...
Lol whoops. Yeah. IOReg calls it "Update Now" instead of "Refresh," so I thought it was updating like activity monitor. So it's just that there is a problem loading the NVRAM variable. Man... and I had just figured out how Apple does it on the real MBP13,3, too... (Variable called BCLP gets bitmasked with the display brightness).
 
Lol whoops. Yeah. IOReg calls it "Update Now" instead of "Refresh," so I thought it was updating like activity monitor. So it's just that there is a problem loading the NVRAM variable. Man... and I had just figured out how Apple does it on the real MBP13,3, too... (Variable called BCLP gets bitmasked with the display brightness).

Probably won't help, but try:
- switch to MacBook9,1 so you're not affected by the Dell SMBIOS truncate bug
- turn off config.plist/KernelAndKextPatches/DellSMBIOSPatch

Also, try both with and without DataHubDxe-64.efi.
 
Im trying to resolve this issue.
My brightness setting is good.
Both lg and dell.

But only happen issue in dell skylake.

Now, i enabled nvram debug in clover.
Also found not work code in dell.

Im checking Nvram backlight value actually send gBootEFI. Just log shown that sent.

Still need testing.. Soon i will post here
 
I could now boot with the SSDT-IGPU. I have injected the IG-Platform ID in the SSDT-Config and removed the IG-Platform ID from Clover and I had to set Inject Intel in Clover otherwise my Laptop Monitor won't work and only the external Monitor worked. I don't how to star properly to debug of the Backlught Value but I think as it also were written that it is an Bug of Clover for Dell Skylake Laptops that the value are not read properly.
 
Status
Not open for further replies.
Back
Top