Jump to content

ACPIBacklight.kext - DSDT or ACPI not behaving correctly


Recommended Posts

Hello Guys, 


I just started to mess a little with old, but lovely, D630 nVidia Model, and tried to get ACPI Backlight to work. As I'm already an experienced Kernel Extensions Programmer, Author of I8k.kext for the D630 and some other stuff. I looked at Rehab's ACPIBacklight.kext source and the ACPI 4.0 specifications about backlight. 


It is using ACPI methods _BCL, _BCM and _BQC which is a very easy interface to use. It was no problem to get ACPIBacklight.kext to attach to PNLF device and get the Brightness Slider in System Preferences. But bad luck, it is not working, it is just doing nothing. So I did some debugging and found out that _BCL which is Query List of Brightness Control Levels Supported, return 10 different values, the 1st is the Level when machine has full power, the 2nd when on battery and the remaining 8 are the range from min to max the OS may use to set brightness. But what the _BCL method returns is just bullshit, most values are zero and 1 is 0x5 and the last 0x80 so I began looking at the DSDT.aml I was using from the Bootpack I use, it is the one from this site.


This is it, the code is storing something to the, empty declared,  DBCL package, and then returning it, which must be buggy:

  Name (DBCL, Package (0x0A) {})
  Method (_BCL, 0, NotSerialized)
                            SX10 ()
                            SX30 (0x19)
                            SX30 (Zero)
                            SX11 ()
                            Store (SX40 (), Index (DBCL, Zero))
                            Store (SX40 (), Index (DBCL, One))
                            Store (SX40 (), Index (DBCL, 0x02))
                            Store (SX40 (), Index (DBCL, 0x03))
                            Store (SX40 (), Index (DBCL, 0x04))
                            Store (SX40 (), Index (DBCL, 0x05))
                            Store (SX40 (), Index (DBCL, 0x06))
                            Store (SX40 (), Index (DBCL, 0x07))
                            Store (SX40 (), Index (DBCL, 0x08))
                            Store (SX40 (), Index (DBCL, 0x09))
                            SX12 ()
                            Return (DBCL)

So my question is, who is the author of this method or where does it come from ? I was searching the web for some other DSDT's for the D630 but everyone I found doesn't even have this method so someone must have added it. 


Maybe someone can send me an original DSDT of the D630 A19 BIOS so I can have a look at it and maybe patch it or integrate it into the almost perfect DSDT this site is distributing.


Thank you all in advance.


Link to comment
Share on other sites

  • Create New...