Ubuntu – Last couple of fglrx drivers on Ubuntu 12.04 have backlight support broken

12.04backlightbrightnessdriversfglrx

I've been keeping up with latest fglrx releases on AMD's website and it appears that both the last stable (13.4) and beta (13.6) drivers have brightness broken in Ubuntu 12.04 with all the latest updates. Hardware/software configuration is HP dm1 4000 series laptop (more specifically dm1-4142nr) with an AMD6320 APU running 64-bit version of Ubuntu 12.04. All display options and desktop features work just fine.

Pressing hardware brightness keys brings up Unity's pop-up brightness bar which changes accordingly but there are no changes to the actual backlight brightness.

Doing echo 5 > /sys/class/backlight/acpi_video0/brightness as root does nothing either even though the actual number sticks and both brightness and actual_brightness reflect the newly echoed number (any other number does the same).

Trying to boot the kernel with acpi_backlight=vendor flag has no effect. Neither does adding the following in the xorg.conf (under Section "device"):

Option "RegistryDwords" "EnableBrightnessControl=1"

Adjusting brightness within the amdccle tool changes brightness by adjusting colors but does not change the actual backlight amount (or at least it does not appear to). There are no other options pertaining to brightness that I could find.

At this point I am all but out of ideas as it seems this is clearly driver's fault. Is there a way to figure out where in the driver source is the regression so that one can at least revert that part and build a fully working driver with latest improvements?

Edit: further clarifications and additional questions
I also tried 12.100, 12.104, and 13.101 and none of them work in terms of brightness. diff between 9.012 sources (that work but have other 3D bugs) and 12 and newer branches shows only versioning difference so it appears that brightness control is buried within the binary blob. Using acpi_os_name="Windows 2009" acpi_osi="Windows 2009" ironically enables brightness adjustments until you enter the X part of the boot sequence at which point it stops working.

At this point, I am wondering if anyone else has backlight working on these newer drivers and what their kernel boot options are.

Sept. 8th UPDATE:
Tried 8/19/2013 driver and no change–if anything manual spam of brightness change reported on one of the forums works even more sporadically. I guess I am wondering at this point if this is possibly a kernel issue and if so, do any of the users of newer versions of Ubuntu (12.10, 13.04, etc.) have the same issue?

Jan. 12th, 2014 UPDATE:
As indicated in comments below, all versions released since still haven't fixed this problem. The most recent stable release (13.12) and its predecessor enable brightness changing until one suspends the computer and upon resuming brightness adjustment stops working until either computer or X server is restarted.

I also just tried latest beta which apparently is misnumbered (13.11-betav9.95 released on 01/08/2014), and the same problem persists… Gotta love AMD driver support…

Update Jan 20, 2014: version 13.30.rc3 (beta) same problem… I have a nagging suspicion that the AMD team does not have anyone competent to tackle Linux issues like problems of reliable suspend/resume or the aforesaid brightness regression, both of which have existed for ages and instead they just backport basic things from the Windows driver to make it "work" with the new hardware. This is definitely the last AMD investment I will ever make…

Update Feb. 3, 2014: 14.1 beta is released and it lists fixing brightness on the Ubuntu 12.04 as one of its bugfixes. This however is not the case, and the brightness stops functioning after resume.

Update Mar. 22, 2014: 14.2 and 14.3 betas make no improvement on this either.

Best Answer

After a day of investigation, it turns out this problem is apparently just as rampant (see open&product=&content=backlight">http://ati.cchtml.com/buglist.cgi?query_format=specific&order=relevance+desc&bug_status=open&product=&content=backlight) as intermittent resume freeze after suspend when using fglrx module (as opposed to the proprietary driver). For the time being any driver above 9.012 doesn't have backlight support working. As of June 2013, the only workaround (see https://bbs.archlinux.org/viewtopic.php?pid=1269560#p1269560) for drivers newer than 9.012 is to press hardware brightness buttons and hold them for several seconds. This will usually cycle between brightest and darkest setting (depending on which button you're holding) which should be ok enough to use the laptop in a way that allows some battery life optimization/autonomy when away from AC but it is also an ugly hack. I guess we will have to wait until AMD releases next version (13.6 beta is also affected) of the driver and hopefully fixes the regression.

For the time being, I will not pick this as my answer in hope someone may come up with a better solution.