Comment 21 for bug 121833

Revision history for this message
Matthew Dutton (matthewrdutton) wrote :

This also affects Gateway MP8708(from another post) and MP8709(mine).

The reason why values 12, 37, 62 and 87 aren't working is because of the way G-P-M increments/decrements brightness values. If HAL reports laptop_panel.num_levels < 20 then G-P-M will change the brightness level by 1 for each key press. Otherwise, it assumes that there are a lot of different levels and changes the brightness level by 5% each increment. See gpm_brightness_lcd_get_step in src/gpm-brightness-lcd.c for reference.

Since our laptops report laptop_panel.num_levels=101, G-P-M thinks that all levels 0-100 are valid and is trying to switch through them 5 at a time. The brightness values 12, 37, etc don't happen to be multiples of 5.

These seems like a mostly Gateway issue. It looks like we have a few options but I don't know which one fits best with the way HAL/G-P-M/ACPI works.

1.) Change whatever it is listening at /sys/class/backlight/XXX/brightness to use contiguous values (e.g. 0-8) [Seems like the best]
2.) Change HAL to use a custom laptop_panel.access_method that translates from 0-8 to 0,12,25,37,etc. [Seems like the easiest/most hackish]
3.) Change G-P-M to recognize the difference between 101 contiguous levels and the broken crap we have. [Seems like the hardest/least standard]

Option 1 seems like the best but I don't know what that involves or how to do it. Anyone have any references I could read regarding Option 1?

I working on some changes to the brightness get/set scripts to do this hack. It will also involve an .fdi file to change the num_levels, etc. I'll post it if I get something workable.

I'm not sure if the list of legal levels is provided by HAL and seems like a bad change just for some special boards. I think HAL expects num_levels to mean 0 to num_levels but I haven't read the spec yet.

If a dev could chime in with his opinion on this, I could get it done. I'm just not sure whats the best route for the long term. I'll try to get the short-term fix(#2) up tonight.

@DanaGoyette: /sys/.../brightness works fine when I force feed it 12, 37, etc. I haven't had that issue that you were describing.