Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] Generic HID layer - pb_fnmode

pb_fnmode parameter has to be passed to usbhid, both for compatibility reasons
and also because it logically belongs there.

Also removes empty hid-input.c file in drivers/usb/input.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Jiri Kosina and committed by
Greg Kroah-Hartman
4c2ae844 aa8de2f0

+12 -39
+3 -9
drivers/hid/hid-input.c
··· 128 128 { } 129 129 }; 130 130 131 - 132 - static int usbhid_pb_fnmode = 1; 133 - module_param_named(pb_fnmode, usbhid_pb_fnmode, int, 0644); 134 - MODULE_PARM_DESC(pb_fnmode, 135 - "Mode of fn key on PowerBooks (0 = disabled, 1 = fkeyslast, 2 = fkeysfirst)"); 136 - 137 131 static struct hidinput_key_translation *find_translation(struct hidinput_key_translation *table, u16 from) 138 132 { 139 133 struct hidinput_key_translation *trans; ··· 154 160 return 1; 155 161 } 156 162 157 - if (usbhid_pb_fnmode) { 163 + if (hid->pb_fnmode) { 158 164 int do_translate; 159 165 160 166 trans = find_translation(powerbook_fn_keys, usage->code); ··· 163 169 do_translate = 1; 164 170 else if (trans->flags & POWERBOOK_FLAG_FKEY) 165 171 do_translate = 166 - (usbhid_pb_fnmode == 2 && (hid->quirks & HID_QUIRK_POWERBOOK_FN_ON)) || 167 - (usbhid_pb_fnmode == 1 && !(hid->quirks & HID_QUIRK_POWERBOOK_FN_ON)); 172 + (hid->pb_fnmode == 2 && (hid->quirks & HID_QUIRK_POWERBOOK_FN_ON)) || 173 + (hid->pb_fnmode == 1 && !(hid->quirks & HID_QUIRK_POWERBOOK_FN_ON)); 168 174 else 169 175 do_translate = (hid->quirks & HID_QUIRK_POWERBOOK_FN_ON); 170 176
+8
drivers/usb/input/hid-core.c
··· 56 56 module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644); 57 57 MODULE_PARM_DESC(mousepoll, "Polling interval of mice"); 58 58 59 + static int usbhid_pb_fnmode = 1; 60 + module_param_named(pb_fnmode, usbhid_pb_fnmode, int, 0644); 61 + MODULE_PARM_DESC(pb_fnmode, 62 + "Mode of fn key on PowerBooks (0 = disabled, 1 = fkeyslast, 2 = fkeysfirst)"); 63 + 59 64 /* 60 65 * Input submission and I/O error handler. 61 66 */ ··· 1236 1231 #ifdef CONFIG_USB_HIDDEV 1237 1232 hid->hiddev_hid_event = hiddev_hid_event; 1238 1233 hid->hiddev_report_event = hiddev_report_event; 1234 + #endif 1235 + #ifdef CONFIG_USB_HIDINPUT_POWERBOOK 1236 + hid->pb_fnmode = usbhid_pb_fnmode; 1239 1237 #endif 1240 1238 1241 1239 return hid;
-30
drivers/usb/input/hid-input.c
··· 1 - /* 2 - * $Id: hid-input.c,v 1.2 2002/04/23 00:59:25 rdamazio Exp $ 3 - * 4 - * Copyright (c) 2000-2001 Vojtech Pavlik 5 - * 6 - * USB HID to Linux Input mapping 7 - * 8 - */ 9 - 10 - /* 11 - * This program is free software; you can redistribute it and/or modify 12 - * it under the terms of the GNU General Public License as published by 13 - * the Free Software Foundation; either version 2 of the License, or 14 - * (at your option) any later version. 15 - * 16 - * This program is distributed in the hope that it will be useful, 17 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 - * GNU General Public License for more details. 20 - * 21 - * You should have received a copy of the GNU General Public License 22 - * along with this program; if not, write to the Free Software 23 - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 24 - * 25 - * Should you need to contact me, the author, you can do so either by 26 - * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail: 27 - * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic 28 - */ 29 - 30 -
+1
include/linux/hid.h
··· 438 438 struct hid_usage *, __s32); 439 439 void (*hiddev_report_event) (struct hid_device *, struct hid_report *); 440 440 #ifdef CONFIG_USB_HIDINPUT_POWERBOOK 441 + unsigned int pb_fnmode; 441 442 unsigned long pb_pressed_fn[NBITS(KEY_MAX)]; 442 443 unsigned long pb_pressed_numlock[NBITS(KEY_MAX)]; 443 444 #endif