|
@@ -341,6 +341,7 @@ struct hid_item {
|
|
/* BIT(8) reserved for backward compatibility, was HID_QUIRK_NO_EMPTY_INPUT */
|
|
/* BIT(8) reserved for backward compatibility, was HID_QUIRK_NO_EMPTY_INPUT */
|
|
/* BIT(9) reserved for backward compatibility, was NO_INIT_INPUT_REPORTS */
|
|
/* BIT(9) reserved for backward compatibility, was NO_INIT_INPUT_REPORTS */
|
|
#define HID_QUIRK_ALWAYS_POLL BIT(10)
|
|
#define HID_QUIRK_ALWAYS_POLL BIT(10)
|
|
|
|
+#define HID_QUIRK_INPUT_PER_APP BIT(11)
|
|
#define HID_QUIRK_SKIP_OUTPUT_REPORTS BIT(16)
|
|
#define HID_QUIRK_SKIP_OUTPUT_REPORTS BIT(16)
|
|
#define HID_QUIRK_SKIP_OUTPUT_REPORT_ID BIT(17)
|
|
#define HID_QUIRK_SKIP_OUTPUT_REPORT_ID BIT(17)
|
|
#define HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP BIT(18)
|
|
#define HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP BIT(18)
|
|
@@ -465,8 +466,9 @@ struct hid_field {
|
|
struct hid_report {
|
|
struct hid_report {
|
|
struct list_head list;
|
|
struct list_head list;
|
|
struct list_head hidinput_list;
|
|
struct list_head hidinput_list;
|
|
- unsigned id; /* id of this report */
|
|
|
|
- unsigned type; /* report type */
|
|
|
|
|
|
+ unsigned int id; /* id of this report */
|
|
|
|
+ unsigned int type; /* report type */
|
|
|
|
+ unsigned int application; /* application usage for this report */
|
|
struct hid_field *field[HID_MAX_FIELDS]; /* fields of the report */
|
|
struct hid_field *field[HID_MAX_FIELDS]; /* fields of the report */
|
|
unsigned maxfield; /* maximum valid field index */
|
|
unsigned maxfield; /* maximum valid field index */
|
|
unsigned size; /* size of the report (bits) */
|
|
unsigned size; /* size of the report (bits) */
|
|
@@ -861,7 +863,9 @@ void hid_output_report(struct hid_report *report, __u8 *data);
|
|
void __hid_request(struct hid_device *hid, struct hid_report *rep, int reqtype);
|
|
void __hid_request(struct hid_device *hid, struct hid_report *rep, int reqtype);
|
|
u8 *hid_alloc_report_buf(struct hid_report *report, gfp_t flags);
|
|
u8 *hid_alloc_report_buf(struct hid_report *report, gfp_t flags);
|
|
struct hid_device *hid_allocate_device(void);
|
|
struct hid_device *hid_allocate_device(void);
|
|
-struct hid_report *hid_register_report(struct hid_device *device, unsigned type, unsigned id);
|
|
|
|
|
|
+struct hid_report *hid_register_report(struct hid_device *device,
|
|
|
|
+ unsigned int type, unsigned int id,
|
|
|
|
+ unsigned int application);
|
|
int hid_parse_report(struct hid_device *hid, __u8 *start, unsigned size);
|
|
int hid_parse_report(struct hid_device *hid, __u8 *start, unsigned size);
|
|
struct hid_report *hid_validate_values(struct hid_device *hid,
|
|
struct hid_report *hid_validate_values(struct hid_device *hid,
|
|
unsigned int type, unsigned int id,
|
|
unsigned int type, unsigned int id,
|