From mboxrd@z Thu Jan 1 00:00:00 1970 From: Giel de Nijs Subject: [patch 0/2] [PATCH] input: correctly handle keys without hardware release event Date: Fri, 11 May 2007 19:23:26 +0200 Message-ID: <20070511172326.008944330@caffeinetrip.com> Return-path: Sender: owner-linux-input@atrey.karlin.mff.cuni.cz List-Help: List-Owner: List-Post: List-Unsubscribe: To: linux-kernel@vger.kernel.org Cc: Vojtech Pavlik , Dimitry Torokhov , Matthew Garrett , Matt Domsch , Rezwanul Kabir , linux-input@atrey.karlin.mff.cuni.cz List-Id: linux-input@vger.kernel.org Hi, This patch adds a soft release key mask to input_dev, to enable keyboard drivers to determine which keys never generate a hardware release event and hence add a release event after every press event of such keys. The mask is controlled by ioctls. The Fn+F? key combinations of Dell Latitude series laptops (and possibly other Dells or other brands) only generate a key press event and never a key release event, which is most probable a hardware flaw (or feature?). Due to this flaw, combinations like Fn+F1 for hibernate and Fn-F3 for showing battery status cannot be used. Ubuntu has probably fixed this by patching the X input layer and HAL, but other distributions (like Debian) cannot use these keys. This patch adds a generic method to signal if keys with certain scancodes never generate release events, so the keyboard driver can add those events right after a key press event. The ioctls used to read and write to this bitmask might be used in a program like setkeycodes, which is normally used to map certain scancodes to keycodes. With a command line option, this program could also set the soft release bit for a certain scancode if desired. Patches for setkeycodes and getkeycodes against the Debian console-tools can be found at http://giel.operation0.org/keyboard-soft-release This patch also uses the infrastructure for generating release events for KEY_HANGEUL and KEY_HANJA, something which was already done in atkbd.c. See also this thread: http://thread.gmane.org/gmane.linux.kernel/401378 Greetings, Giel --