mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-24 05:01:03 +02:00
Merge branch 'for-5.17/core' into for-linus
- support for USI style pens (Tero Kristo, Mika Westerberg) - quirk for devices that need inverted X/Y axes (Alistair Francis) - small core code cleanups and deduplication (Benjamin Tissoires)
This commit is contained in:
@@ -241,6 +241,7 @@ struct hid_item {
|
||||
#define HID_DG_TOUCH 0x000d0033
|
||||
#define HID_DG_UNTOUCH 0x000d0034
|
||||
#define HID_DG_TAP 0x000d0035
|
||||
#define HID_DG_TRANSDUCER_INDEX 0x000d0038
|
||||
#define HID_DG_TABLETFUNCTIONKEY 0x000d0039
|
||||
#define HID_DG_PROGRAMCHANGEKEY 0x000d003a
|
||||
#define HID_DG_BATTERYSTRENGTH 0x000d003b
|
||||
@@ -253,6 +254,15 @@ struct hid_item {
|
||||
#define HID_DG_BARRELSWITCH 0x000d0044
|
||||
#define HID_DG_ERASER 0x000d0045
|
||||
#define HID_DG_TABLETPICK 0x000d0046
|
||||
#define HID_DG_PEN_COLOR 0x000d005c
|
||||
#define HID_DG_PEN_LINE_WIDTH 0x000d005e
|
||||
#define HID_DG_PEN_LINE_STYLE 0x000d0070
|
||||
#define HID_DG_PEN_LINE_STYLE_INK 0x000d0072
|
||||
#define HID_DG_PEN_LINE_STYLE_PENCIL 0x000d0073
|
||||
#define HID_DG_PEN_LINE_STYLE_HIGHLIGHTER 0x000d0074
|
||||
#define HID_DG_PEN_LINE_STYLE_CHISEL_MARKER 0x000d0075
|
||||
#define HID_DG_PEN_LINE_STYLE_BRUSH 0x000d0076
|
||||
#define HID_DG_PEN_LINE_STYLE_NO_PREFERENCE 0x000d0077
|
||||
|
||||
#define HID_CP_CONSUMERCONTROL 0x000c0001
|
||||
#define HID_CP_NUMERICKEYPAD 0x000c0002
|
||||
@@ -349,6 +359,8 @@ struct hid_item {
|
||||
/* BIT(9) reserved for backward compatibility, was NO_INIT_INPUT_REPORTS */
|
||||
#define HID_QUIRK_ALWAYS_POLL BIT(10)
|
||||
#define HID_QUIRK_INPUT_PER_APP BIT(11)
|
||||
#define HID_QUIRK_X_INVERT BIT(12)
|
||||
#define HID_QUIRK_Y_INVERT BIT(13)
|
||||
#define HID_QUIRK_SKIP_OUTPUT_REPORTS BIT(16)
|
||||
#define HID_QUIRK_SKIP_OUTPUT_REPORT_ID BIT(17)
|
||||
#define HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP BIT(18)
|
||||
@@ -894,7 +906,6 @@ extern void hidinput_disconnect(struct hid_device *);
|
||||
|
||||
int hid_set_field(struct hid_field *, unsigned, __s32);
|
||||
int hid_input_report(struct hid_device *, int type, u8 *, u32, int);
|
||||
int hidinput_find_field(struct hid_device *hid, unsigned int type, unsigned int code, struct hid_field **field);
|
||||
struct hid_field *hidinput_get_led_field(struct hid_device *hid);
|
||||
unsigned int hidinput_count_leds(struct hid_device *hid);
|
||||
__s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code);
|
||||
@@ -928,6 +939,16 @@ s32 hid_snto32(__u32 value, unsigned n);
|
||||
__u32 hid_field_extract(const struct hid_device *hid, __u8 *report,
|
||||
unsigned offset, unsigned n);
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
int hid_driver_suspend(struct hid_device *hdev, pm_message_t state);
|
||||
int hid_driver_reset_resume(struct hid_device *hdev);
|
||||
int hid_driver_resume(struct hid_device *hdev);
|
||||
#else
|
||||
static inline int hid_driver_suspend(struct hid_device *hdev, pm_message_t state) { return 0; }
|
||||
static inline int hid_driver_reset_resume(struct hid_device *hdev) { return 0; }
|
||||
static inline int hid_driver_resume(struct hid_device *hdev) { return 0; }
|
||||
#endif
|
||||
|
||||
/**
|
||||
* hid_device_io_start - enable HID input during probe, remove
|
||||
*
|
||||
@@ -1005,6 +1026,10 @@ static inline void hid_map_usage(struct hid_input *hidinput,
|
||||
bmap = input->ledbit;
|
||||
limit = LED_MAX;
|
||||
break;
|
||||
case EV_MSC:
|
||||
bmap = input->mscbit;
|
||||
limit = MSC_MAX;
|
||||
break;
|
||||
}
|
||||
|
||||
if (unlikely(c > limit || !bmap)) {
|
||||
@@ -1061,6 +1086,12 @@ int __must_check hid_hw_start(struct hid_device *hdev,
|
||||
void hid_hw_stop(struct hid_device *hdev);
|
||||
int __must_check hid_hw_open(struct hid_device *hdev);
|
||||
void hid_hw_close(struct hid_device *hdev);
|
||||
void hid_hw_request(struct hid_device *hdev,
|
||||
struct hid_report *report, int reqtype);
|
||||
int hid_hw_raw_request(struct hid_device *hdev,
|
||||
unsigned char reportnum, __u8 *buf,
|
||||
size_t len, unsigned char rtype, int reqtype);
|
||||
int hid_hw_output_report(struct hid_device *hdev, __u8 *buf, size_t len);
|
||||
|
||||
/**
|
||||
* hid_hw_power - requests underlying HW to go into given power mode
|
||||
@@ -1078,68 +1109,6 @@ static inline int hid_hw_power(struct hid_device *hdev, int level)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* hid_hw_request - send report request to device
|
||||
*
|
||||
* @hdev: hid device
|
||||
* @report: report to send
|
||||
* @reqtype: hid request type
|
||||
*/
|
||||
static inline void hid_hw_request(struct hid_device *hdev,
|
||||
struct hid_report *report, int reqtype)
|
||||
{
|
||||
if (hdev->ll_driver->request)
|
||||
return hdev->ll_driver->request(hdev, report, reqtype);
|
||||
|
||||
__hid_request(hdev, report, reqtype);
|
||||
}
|
||||
|
||||
/**
|
||||
* hid_hw_raw_request - send report request to device
|
||||
*
|
||||
* @hdev: hid device
|
||||
* @reportnum: report ID
|
||||
* @buf: in/out data to transfer
|
||||
* @len: length of buf
|
||||
* @rtype: HID report type
|
||||
* @reqtype: HID_REQ_GET_REPORT or HID_REQ_SET_REPORT
|
||||
*
|
||||
* Return: count of data transferred, negative if error
|
||||
*
|
||||
* Same behavior as hid_hw_request, but with raw buffers instead.
|
||||
*/
|
||||
static inline int hid_hw_raw_request(struct hid_device *hdev,
|
||||
unsigned char reportnum, __u8 *buf,
|
||||
size_t len, unsigned char rtype, int reqtype)
|
||||
{
|
||||
if (len < 1 || len > HID_MAX_BUFFER_SIZE || !buf)
|
||||
return -EINVAL;
|
||||
|
||||
return hdev->ll_driver->raw_request(hdev, reportnum, buf, len,
|
||||
rtype, reqtype);
|
||||
}
|
||||
|
||||
/**
|
||||
* hid_hw_output_report - send output report to device
|
||||
*
|
||||
* @hdev: hid device
|
||||
* @buf: raw data to transfer
|
||||
* @len: length of buf
|
||||
*
|
||||
* Return: count of data transferred, negative if error
|
||||
*/
|
||||
static inline int hid_hw_output_report(struct hid_device *hdev, __u8 *buf,
|
||||
size_t len)
|
||||
{
|
||||
if (len < 1 || len > HID_MAX_BUFFER_SIZE || !buf)
|
||||
return -EINVAL;
|
||||
|
||||
if (hdev->ll_driver->output_report)
|
||||
return hdev->ll_driver->output_report(hdev, buf, len);
|
||||
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
/**
|
||||
* hid_hw_idle - send idle request to device
|
||||
*
|
||||
|
Reference in New Issue
Block a user