Comment 26 for bug 1028151

The upstream version (as of 3.4) of the samsung_laptop driver contains a fix to allow Samsung systems with proper acpi control of the backlight to avoid the workarounds for older systems. Installing this module solves the problem.

In order to actually take advantage of the driver we need to fix the configuration of the keymap files and udev rules.

 /lib/udev/rules.d/95-keymap.rules has an entry for my laptop model:

ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keymap $name samsung-90x3a"

but the map file it references is missing:

# more /lib/udev/keymaps/samsung-90x3a
0x96 kbdillumup # Fn+F8 - maps the scancode to a udev event
0x97 kbdillumdown # Fn+F7 - maps the scancode to a udev event
0xD5 wlan # Fn+F12 - this doest not work
0xCE prog1 # performance mode
0x8D prog2 # battery life extender

The following file is present:
$ more /lib/udev/keymaps/force-release/samsung-90x3a
# list of scancodes (hex or decimal), optional comment
0xCE # Fn+F8 keyboard backlit up
0x8D # Fn+F7 keyboard backlit down
0x97 # Fn+F12 wifi on/off
0x96 # Fn+F1 performance mode (?)
0xD5 # Fn+F6 battery life extender

but we are missing this line in the 95-keymap.rules file to enable it:

ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+=" $devpath samsung-90x3a"

Fixing all of these results in keyboard backlight control finally working.