Samsung q45 does not produce key-release events for Fn-Keys (patch included)

Bug #347623 reported by pittipatti on 2009-03-23
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Fix Released
linux (Ubuntu)
Colin Ian King

Bug Description

The Samsung Q45 does not send key release events for several Fn-keys.
Bug #295251 describes the same misbehavior on another Samsung notebook (NC10) for which a fix was released.

As the Q45 uses the same keycodes as the NC10, I extended the fix with the DMI information of my Q45, which works great on my machine, and finally lets the lcd brightness be adjusted via Fn-keys.

Please include this patch before the release of jaunty.

Changed in linux (Ubuntu):
assignee: nobody → colin-king
importance: Undecided → Low
milestone: none → jaunty-updates
status: New → In Progress
Colin Ian King (colin-king) wrote :


I've applied the patch and built some test kernels. Please can you select and install the appropriate kernel deb package from the URL below and let me know if this works.

Once you've OK'd it I will push it through the Stable Updates Release (SRU) process. Thanks!

Colin Ian King (colin-king) wrote :

Anyone else like to test the fix?

pittipatti (pittipatti) wrote :

Kernel version 2.6.28-12.43 from the directory mentioned above fixes the this bug on my Q45.
Thanks Colin

Colin Ian King (colin-king) wrote :

SRU Justification:

Impact: The Samsung Q45 does not send key release events for several
Fn-keys, for example, the LCD brightness adjustment Fn-Keys.

Fix: Attached patch from LaunchPad user pittipatti, based on the NC10

Testcase: Without the patch, the Fn-Keys don't work, with the patch,
they are enabled. Tested by pittipatti.

Colin Ian King (colin-king) wrote :
Changed in linux (Ubuntu):
status: In Progress → Fix Committed
chopstickkk (saintidle) wrote :

Kernel version 2.6.28-12.43 from the directory mentioned above fixes the this bug on my Q45 for the most part. when you hold fn+down the brightness behaves as expected. both holding and tapping reduce brightness.


1. When you hold fn+up the brightness doesn't continue to get brighter, i.e. you need to tap up furiously as it only works in steps.

2. Also fn+left/right arrow keys still don't work for changing the volume. They worked out of the box with xubuntu 8.04,

3. There must a way to lower the amount of steps from full brightness to no brightness??? (it's currently a wrist killing 80+ steps!!!)

Can you look into this again please Colin?? Thanks for all your help hitherto!

Martin Pitt (pitti) wrote :

Accepted linux into jaunty-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See for documentation how to enable and use -proposed. Thank you in advance!

Changed in linux (Ubuntu Jaunty):
status: New → Fix Committed
tags: added: verification-needed
Steve Beattie (sbeattie) on 2009-07-31
tags: added: hw-specific
Steve Langasek (vorlon) wrote :

Colin, this bug was marked as 'fix committed' for the mainline kernel package back in May - if that's the case, surely the fix should be in karmic by now and this task should be marked 'fix released' instead?

Launchpad Janitor (janitor) wrote :
Download full text (7.2 KiB)

This bug was fixed in the package linux - 2.6.28-15.48

linux (2.6.28-15.48) jaunty-proposed; urgency=low

  [ Andy Whitcroft ]

  * SAUCE: pnp: add PNP resource range checking function
    - LP: #349314
  * SAUCE: i915: enable MCHBAR if needed
    - LP: #349314

  [ Brad Figg ]

  * SAUCE: Add information to recognize Toshiba Satellite Pro M10 Alps
    - LP: #330885

  [ Colin Ian King ]

  * Input: atkbd - add forced release keys quirk for Samsung Q45
    - LP: #347623

  [ Manoj Iyer ]

  * SAUCE: Added quirk to enable the installer to recognize NetXen NIC.
    - LP: #389603

  [ Stefan Bader ]

  * SAUCE: input: Blacklist digitizers from joydev.c
    - LP: #300143

  [ Tim Gardner ]

  * Revert "SAUCE: md: wait for possible pending deletes after stopping an
    - LP: #334994

  [ Upstream Kernel Changes ]

  * bonding: Fix updating of speed/duplex changes
    - LP: #371651
  * net: fix sctp breakage
    - LP: #371651
  * ipv6: don't use tw net when accounting for recycled tw
    - LP: #371651
  * ipv6: Plug sk_buff leak in ipv6_rcv (net/ipv6/ip6_input.c)
    - LP: #371651
  * netfilter: nf_conntrack_tcp: fix unaligned memory access in tcp_sack
    - LP: #371651
  * xfrm: spin_lock() should be spin_unlock() in xfrm_state.c
    - LP: #371651
  * bridge: bad error handling when adding invalid ether address
    - LP: #371651
  * bas_gigaset: correctly allocate USB interrupt transfer buffer
    - LP: #371651
  * USB: EHCI: add software retry for transaction errors
    - LP: #371651
    - LP: #371651
  * USB: usb-storage: increase max_sectors for tape drives
    - LP: #371651
  * USB: gadget: fix rndis regression
    - LP: #371651
  * USB: add quirk to avoid config and interface strings
    - LP: #371651
  * cifs: fix buffer format byte on NT Rename/hardlink
    - LP: #371651
  * b43: fix b43_plcp_get_bitrate_idx_ofdm return type
    - LP: #371651
  * Add a missing unlock_kernel() in raw_open()
    - LP: #371651
  * x86, PAT, PCI: Change vma prot in pci_mmap to reflect inherited prot
    - LP: #371651
  * security/smack: fix oops when setting a size 0 SMACK64 xattr
    - LP: #371651
  * x86, setup: mark %esi as clobbered in E820 BIOS call
    - LP: #371651
  * dock: fix dereference after kfree()
    - LP: #371651
  * mm: define a UNIQUE value for AS_UNEVICTABLE flag
    - LP: #371651
  * mm: do_xip_mapping_read: fix length calculation
    - LP: #371651
  * vfs: skip I_CLEAR state inodes
    - LP: #371651
  * net/netrom: Fix socket locking
    - LP: #371651
  * kprobes: Fix locking imbalance in kretprobes
    - LP: #371651
  * netfilter: {ip, ip6, arp}_tables: fix incorrect loop detection
    - LP: #371651
  * ALSA: hda - add missing comma in ad1884_slave_vols
    - LP: #371651
  * SCSI: libiscsi: fix iscsi pool error path
    - LP: #371651
  * SCSI: libiscsi: fix iscsi pool error path again
    - LP: #371651
  * posixtimers, sched: Fix posix clock monotonicity
    - LP: #371651
  * sched: do not count frozen tasks toward load
    - LP: #371651
  * spi: spi_write_then_read() bugfixes
    - LP: #371651
  * powerpc: Fix data-corrupting bug in __futex_atomic_op
    - LP...


Changed in linux (Ubuntu Jaunty):
status: Fix Committed → Fix Released
Jan Skowron (jan-skowron) wrote :

Same patch is needed for Samsung X360

And many many more Samsung laptops, see Bug #399911

eg. "I have found exactly same problem in lanchpad for Samsung R518, R60, NC20, Q35, Q210, X360.
Eg. Bug #360247, Bug #411031, Bug #253874, Bug #385683, etc."

Maybe it will be wise to introduce an option "--force-up" for "setkeycodes"? That way we will not have to add patch into kernel driver for every misbehaving laptop, we will just could to add a HAL quirk for particular Fn + keys already defined in 30-keymap-misc.fdi

Jan Skowron (jan-skowron) wrote :

Same idea is reported on in "Bug 14052 - Some Fn + XX keys on Samsung laptops does not produce key release events (need atkbd patch)"

What do you think about it?

Martin Pitt (pitti) wrote :

Colin, is it possible to extend the karmic/jaunty fix to apply to the other models mentioned?

Changed in linux:
status: Unknown → Confirmed
Changed in linux:
status: Confirmed → In Progress
zl0i (sancheolz) wrote :

I think it is good idea to make patch for all other models, because I already made and recommended same "worse" patches. Is patch in 1st comment on [url=]bugzilla[/url] prototype? It looks like very nice solution. This bugs need more discuss. So I will wait for others.

Changed in linux:
status: In Progress → Fix Released
ArbitRabbit (arbitrabbit) wrote :

I still see the same problem in Karmic, kernel 2.6.31-15-generic. Is this a configuration option under layout or is it automatically applied based on the model detected?

Jeremy Foshee (jeremyfoshee) wrote :

Marking top level task as Fix Released. I have checked the drivers/input/keyboard/atkbd.c file and it appears as if there has been some additional work to add quirks for a few of the models listed above. Issues encountered in other models than those listed here with bugs will need to open a new bug.



Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
ldm (lucky-dm-77) wrote :


I have a Samsung Q45 and I'm an Ubuntu user since Feisty Fawn.
I have read a lot about 'Fn keys' on Samsung laptops in bugzilla and also in
This bug has been marked as fixed, but it is still present! (also in Lucid Lynx
with kernel 2.6.32-22)

Anyway yesterday I have tried this solution and it works fine:
package 'samsung-backlight' enables brightness up/down
package 'samsung-tools' enables wireless on/off

It seems to be a DKMS (Dynamic Kernel Module Support),
it is possible to include this code directly in linux kernel source tree?

ldm (lucky-dm-77) wrote :


the answer of the developer for this bug:

'You need to talk to your distribution to make sure that they apply
force_release workaround upon booting the box.'

so can you please include this patch in ubuntu kernel?

Changed in linux:
importance: Unknown → High
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.