Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
Pull HID updates from Jiri Kosina: - i2c-hid race condition fix from Jean-Baptiste Maneyrol - Logitech driver now supports vendor-specific HID++ protocol, allowing us to deliver a full multitouch support on wider range of Logitech touchpads. Written by Benjamin Tissoires - MS Surface Pro 3 Type Cover support added by Alan Wu - RMI touchpad support improvements from Andrew Duggan - a lot of updates to Wacom driver from Jason Gerecke and Ping Cheng - various small fixes all over the place * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (56 commits) HID: rmi: The address of query8 must be calculated based on which query registers are present HID: rmi: Check for additional ACM registers appended to F11 data report HID: i2c-hid: prevent buffer overflow in early IRQ HID: logitech-hidpp: disable io in probe error path HID: logitech-hidpp: add boundary check for name retrieval HID: logitech-hidpp: check name retrieval return code HID: logitech-hidpp: do not return the name length HID: wacom: Report input events for each finger on generic devices HID: wacom: Initialize MT slots for generic devices at post_parse_hid HID: wacom: Update maximum X/Y accounding to outbound offset HID: wacom: Add support for DTU-1031X HID: wacom: add defines for new Cintiq and DTU outbound tracking HID: wacom: fix freeze on open when autosuspend is on HID: wacom: re-add accidentally dropped Lenovo PID HID: make hid_report_len as a static inline function in hid.h HID: wacom: Consult the application usage when determining field type HID: wacom: PAD is independent with pen/touch HID: multitouch: Add quirk for VTL touch panels HID: i2c-hid: fix race condition reading reports HID: wacom: Add angular resolution data to some ABS axes ...
This commit is contained in:
+39
-4
@@ -234,6 +234,33 @@ struct hid_item {
|
||||
#define HID_DG_BARRELSWITCH 0x000d0044
|
||||
#define HID_DG_ERASER 0x000d0045
|
||||
#define HID_DG_TABLETPICK 0x000d0046
|
||||
|
||||
#define HID_CP_CONSUMERCONTROL 0x000c0001
|
||||
#define HID_CP_NUMERICKEYPAD 0x000c0002
|
||||
#define HID_CP_PROGRAMMABLEBUTTONS 0x000c0003
|
||||
#define HID_CP_MICROPHONE 0x000c0004
|
||||
#define HID_CP_HEADPHONE 0x000c0005
|
||||
#define HID_CP_GRAPHICEQUALIZER 0x000c0006
|
||||
#define HID_CP_FUNCTIONBUTTONS 0x000c0036
|
||||
#define HID_CP_SELECTION 0x000c0080
|
||||
#define HID_CP_MEDIASELECTION 0x000c0087
|
||||
#define HID_CP_SELECTDISC 0x000c00ba
|
||||
#define HID_CP_PLAYBACKSPEED 0x000c00f1
|
||||
#define HID_CP_PROXIMITY 0x000c0109
|
||||
#define HID_CP_SPEAKERSYSTEM 0x000c0160
|
||||
#define HID_CP_CHANNELLEFT 0x000c0161
|
||||
#define HID_CP_CHANNELRIGHT 0x000c0162
|
||||
#define HID_CP_CHANNELCENTER 0x000c0163
|
||||
#define HID_CP_CHANNELFRONT 0x000c0164
|
||||
#define HID_CP_CHANNELCENTERFRONT 0x000c0165
|
||||
#define HID_CP_CHANNELSIDE 0x000c0166
|
||||
#define HID_CP_CHANNELSURROUND 0x000c0167
|
||||
#define HID_CP_CHANNELLOWFREQUENCYENHANCEMENT 0x000c0168
|
||||
#define HID_CP_CHANNELTOP 0x000c0169
|
||||
#define HID_CP_CHANNELUNKNOWN 0x000c016a
|
||||
#define HID_CP_APPLICATIONLAUNCHBUTTONS 0x000c0180
|
||||
#define HID_CP_GENERICGUIAPPLICATIONCONTROLS 0x000c0200
|
||||
|
||||
#define HID_DG_CONFIDENCE 0x000d0047
|
||||
#define HID_DG_WIDTH 0x000d0048
|
||||
#define HID_DG_HEIGHT 0x000d0049
|
||||
@@ -312,11 +339,8 @@ struct hid_item {
|
||||
* Vendor specific HID device groups
|
||||
*/
|
||||
#define HID_GROUP_RMI 0x0100
|
||||
|
||||
/*
|
||||
* Vendor specific HID device groups
|
||||
*/
|
||||
#define HID_GROUP_WACOM 0x0101
|
||||
#define HID_GROUP_LOGITECH_DJ_DEVICE 0x0102
|
||||
|
||||
/*
|
||||
* This is the global environment of the parser. This information is
|
||||
@@ -1063,6 +1087,17 @@ static inline void hid_hw_wait(struct hid_device *hdev)
|
||||
hdev->ll_driver->wait(hdev);
|
||||
}
|
||||
|
||||
/**
|
||||
* hid_report_len - calculate the report length
|
||||
*
|
||||
* @report: the report we want to know the length
|
||||
*/
|
||||
static inline int hid_report_len(struct hid_report *report)
|
||||
{
|
||||
/* equivalent to DIV_ROUND_UP(report->size, 8) + !!(report->id > 0) */
|
||||
return ((report->size - 1) >> 3) + 1 + (report->id > 0);
|
||||
}
|
||||
|
||||
int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,
|
||||
int interrupt);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user