Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
Pull HID fixes from Jiri Kosina: "The most important one is a purification of Kconfig for CONFIG_HID; the inclusion of HID groups and autoloading didn't leave the Kconfig in a really consistent state. Henrik's patch fixes that. In addition to that, there are two small fixes for logitech and magicmouse drivers." * 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: HID: Fix the generic Kconfig options HID: magicmouse: Correct report range of major / minor axes HID: logitech: don't use stack based dj_report structures
This commit is contained in:
commit
60d2c25251
5 changed files with 53 additions and 44 deletions
|
@ -1,20 +1,11 @@
|
|||
#
|
||||
# HID driver configuration
|
||||
#
|
||||
menuconfig HID_SUPPORT
|
||||
bool "HID Devices"
|
||||
depends on INPUT
|
||||
default y
|
||||
---help---
|
||||
Say Y here to get to see options for various computer-human interface
|
||||
device drivers. This option alone does not add any kernel code.
|
||||
|
||||
If you say N, all options in this submenu will be skipped and disabled.
|
||||
|
||||
if HID_SUPPORT
|
||||
menu "HID support"
|
||||
depends on INPUT
|
||||
|
||||
config HID
|
||||
tristate "Generic HID support"
|
||||
tristate "HID bus support"
|
||||
depends on INPUT
|
||||
default y
|
||||
---help---
|
||||
|
@ -23,14 +14,17 @@ config HID
|
|||
most commonly used to refer to the USB-HID specification, but other
|
||||
devices (such as, but not strictly limited to, Bluetooth) are
|
||||
designed using HID specification (this involves certain keyboards,
|
||||
mice, tablets, etc). This option compiles into kernel the generic
|
||||
HID layer code (parser, usages, etc.), which can then be used by
|
||||
transport-specific HID implementation (like USB or Bluetooth).
|
||||
mice, tablets, etc). This option adds the HID bus to the kernel,
|
||||
together with generic HID layer code. The HID devices are added and
|
||||
removed from the HID bus by the transport-layer drivers, such as
|
||||
usbhid (USB_HID) and hidp (BT_HIDP).
|
||||
|
||||
For docs and specs, see http://www.usb.org/developers/hidpage/
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
if HID
|
||||
|
||||
config HID_BATTERY_STRENGTH
|
||||
bool "Battery level reporting for HID devices"
|
||||
depends on HID && POWER_SUPPLY && HID = POWER_SUPPLY
|
||||
|
@ -59,23 +53,22 @@ config HIDRAW
|
|||
|
||||
If unsure, say Y.
|
||||
|
||||
source "drivers/hid/usbhid/Kconfig"
|
||||
|
||||
menu "Special HID drivers"
|
||||
depends on HID
|
||||
|
||||
config HID_GENERIC
|
||||
tristate "Generic HID driver"
|
||||
depends on HID
|
||||
default y
|
||||
default HID
|
||||
---help---
|
||||
Support for generic HID devices.
|
||||
Support for generic devices on the HID bus. This includes most
|
||||
keyboards and mice, joysticks, tablets and digitizers.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called hid-generic.
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
menu "Special HID drivers"
|
||||
depends on HID
|
||||
|
||||
config HID_A4TECH
|
||||
tristate "A4 tech mice" if EXPERT
|
||||
depends on USB_HID
|
||||
|
@ -662,4 +655,8 @@ config HID_ZYDACRON
|
|||
|
||||
endmenu
|
||||
|
||||
endif # HID_SUPPORT
|
||||
endif # HID
|
||||
|
||||
source "drivers/hid/usbhid/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
|
|
@ -436,27 +436,37 @@ static int logi_dj_recv_send_report(struct dj_receiver_dev *djrcv_dev,
|
|||
|
||||
static int logi_dj_recv_query_paired_devices(struct dj_receiver_dev *djrcv_dev)
|
||||
{
|
||||
struct dj_report dj_report;
|
||||
struct dj_report *dj_report;
|
||||
int retval;
|
||||
|
||||
memset(&dj_report, 0, sizeof(dj_report));
|
||||
dj_report.report_id = REPORT_ID_DJ_SHORT;
|
||||
dj_report.device_index = 0xFF;
|
||||
dj_report.report_type = REPORT_TYPE_CMD_GET_PAIRED_DEVICES;
|
||||
return logi_dj_recv_send_report(djrcv_dev, &dj_report);
|
||||
dj_report = kzalloc(sizeof(dj_report), GFP_KERNEL);
|
||||
if (!dj_report)
|
||||
return -ENOMEM;
|
||||
dj_report->report_id = REPORT_ID_DJ_SHORT;
|
||||
dj_report->device_index = 0xFF;
|
||||
dj_report->report_type = REPORT_TYPE_CMD_GET_PAIRED_DEVICES;
|
||||
retval = logi_dj_recv_send_report(djrcv_dev, dj_report);
|
||||
kfree(dj_report);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int logi_dj_recv_switch_to_dj_mode(struct dj_receiver_dev *djrcv_dev,
|
||||
unsigned timeout)
|
||||
{
|
||||
struct dj_report dj_report;
|
||||
struct dj_report *dj_report;
|
||||
int retval;
|
||||
|
||||
memset(&dj_report, 0, sizeof(dj_report));
|
||||
dj_report.report_id = REPORT_ID_DJ_SHORT;
|
||||
dj_report.device_index = 0xFF;
|
||||
dj_report.report_type = REPORT_TYPE_CMD_SWITCH;
|
||||
dj_report.report_params[CMD_SWITCH_PARAM_DEVBITFIELD] = 0x3F;
|
||||
dj_report.report_params[CMD_SWITCH_PARAM_TIMEOUT_SECONDS] = (u8)timeout;
|
||||
return logi_dj_recv_send_report(djrcv_dev, &dj_report);
|
||||
dj_report = kzalloc(sizeof(dj_report), GFP_KERNEL);
|
||||
if (!dj_report)
|
||||
return -ENOMEM;
|
||||
dj_report->report_id = REPORT_ID_DJ_SHORT;
|
||||
dj_report->device_index = 0xFF;
|
||||
dj_report->report_type = REPORT_TYPE_CMD_SWITCH;
|
||||
dj_report->report_params[CMD_SWITCH_PARAM_DEVBITFIELD] = 0x3F;
|
||||
dj_report->report_params[CMD_SWITCH_PARAM_TIMEOUT_SECONDS] = (u8)timeout;
|
||||
retval = logi_dj_recv_send_report(djrcv_dev, dj_report);
|
||||
kfree(dj_report);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -426,8 +426,10 @@ static void magicmouse_setup_input(struct input_dev *input, struct hid_device *h
|
|||
__set_bit(EV_ABS, input->evbit);
|
||||
|
||||
input_set_abs_params(input, ABS_MT_TRACKING_ID, 0, 15, 0, 0);
|
||||
input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255, 4, 0);
|
||||
input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255, 4, 0);
|
||||
input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255 << 2,
|
||||
4, 0);
|
||||
input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255 << 2,
|
||||
4, 0);
|
||||
input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0);
|
||||
|
||||
/* Note: Touch Y position from the device is inverted relative
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
comment "USB Input Devices"
|
||||
menu "USB HID support"
|
||||
depends on USB
|
||||
|
||||
config USB_HID
|
||||
tristate "USB Human Interface Device (full HID) support"
|
||||
tristate "USB HID transport layer"
|
||||
default y
|
||||
depends on USB && INPUT
|
||||
select HID
|
||||
---help---
|
||||
Say Y here if you want full HID support to connect USB keyboards,
|
||||
Say Y here if you want to connect USB keyboards,
|
||||
mice, joysticks, graphic tablets, or any other HID based devices
|
||||
to your computer via USB, as well as Uninterruptible Power Supply
|
||||
(UPS) and monitor control devices.
|
||||
|
@ -81,4 +81,4 @@ config USB_MOUSE
|
|||
|
||||
endmenu
|
||||
|
||||
|
||||
endmenu
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
config BT_HIDP
|
||||
tristate "HIDP protocol support"
|
||||
depends on BT && INPUT && HID_SUPPORT
|
||||
depends on BT && INPUT
|
||||
select HID
|
||||
help
|
||||
HIDP (Human Interface Device Protocol) is a transport layer
|
||||
|
|
Loading…
Reference in a new issue