How it works
We first check if the brightness can be changed using the XRandR interface implemented by the graphic drivers. To do so we check if the Backlight property is being exported and if we can get a value from it.
You can check if your driver reports such property by executing: xrandr --verbose
And also modify the value using XRandR (like we do) by executing: xbacklight
If we can't use XRandR then we try to modify the value of the backlight directly. We implement the following priority to pick which driver we should use:
-Firmware -Platform -Raw
You can check the type by for example: cat /sys/class/backlight/dell_backlight/type
In case of XRandR not working
The GPU driver uses a logic like the one indicated before to decide which driver modify, so if your system drivers are screwed XRandR won't probably work.
Anyway, you should report a bug to your driver vendor, Intel/Ati/NVIDIA.
In case the wrong backlight is picked
You have to report a bug to the Kernel, the logic indicated before was given by Kernel developers so they are the responsible to make sure that firmware/platform/raw order works.