diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2023-05-01 15:20:08 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2023-05-01 15:20:08 -0700 | 
| commit | 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e (patch) | |
| tree | d57f3a63479a07b4e0cece029886e76e04feb984 /include/linux/hid.h | |
| parent | 5dc63e56a9cf8df0b59c234a505a1653f1bdf885 (diff) | |
| parent | 53bea86b5712c7491bb3dae12e271666df0a308c (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.4 merge window.
Diffstat (limited to 'include/linux/hid.h')
| -rw-r--r-- | include/linux/hid.h | 37 | 
1 files changed, 14 insertions, 23 deletions
diff --git a/include/linux/hid.h b/include/linux/hid.h index 8677ae38599e..1ea8c7a3570b 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h @@ -26,6 +26,7 @@  #include <linux/mutex.h>  #include <linux/power_supply.h>  #include <uapi/linux/hid.h> +#include <linux/hid_bpf.h>  /*   * We parse each description item into this structure. Short items data @@ -312,6 +313,7 @@ struct hid_item {  #define HID_DG_LATENCYMODE	0x000d0060  #define HID_BAT_ABSOLUTESTATEOFCHARGE	0x00850065 +#define HID_BAT_CHARGING		0x00850044  #define HID_VD_ASUS_CUSTOM_MEDIA_KEYS	0xff310076 @@ -595,7 +597,7 @@ struct hid_device {							/* device report descriptor */  	struct device dev;						/* device */  	struct hid_driver *driver; -	struct hid_ll_driver *ll_driver; +	const struct hid_ll_driver *ll_driver;  	struct mutex ll_open_lock;  	unsigned int ll_open_count; @@ -611,6 +613,7 @@ struct hid_device {							/* device report descriptor */  	__s32 battery_max;  	__s32 battery_report_type;  	__s32 battery_report_id; +	__s32 battery_charge_status;  	enum hid_battery_status battery_status;  	bool battery_avoid_query;  	ktime_t battery_ratelimit_time; @@ -619,6 +622,7 @@ struct hid_device {							/* device report descriptor */  	unsigned long status;						/* see STAT flags above */  	unsigned claimed;						/* Claimed by hidinput, hiddev? */  	unsigned quirks;						/* Various quirks the device can pull on us */ +	unsigned initial_quirks;					/* Initial set of quirks supplied when creating device */  	bool io_started;						/* If IO has started */  	struct list_head inputs;					/* The list of inputs */ @@ -651,6 +655,10 @@ struct hid_device {							/* device report descriptor */  	wait_queue_head_t debug_wait;  	unsigned int id;						/* system unique id */ + +#ifdef CONFIG_BPF +	struct hid_bpf bpf;						/* hid-bpf data */ +#endif /* CONFIG_BPF */  };  #define to_hid_device(pdev) \ @@ -826,6 +834,7 @@ struct hid_driver {   * @output_report: send output report to device   * @idle: send idle request to device   * @may_wakeup: return if device may act as a wakeup source during system-suspend + * @max_buffer_size: over-ride maximum data buffer size (default: HID_MAX_BUFFER_SIZE)   */  struct hid_ll_driver {  	int (*start)(struct hid_device *hdev); @@ -851,23 +860,11 @@ struct hid_ll_driver {  	int (*idle)(struct hid_device *hdev, int report, int idle, int reqtype);  	bool (*may_wakeup)(struct hid_device *hdev); -}; - -extern struct hid_ll_driver i2c_hid_ll_driver; -extern struct hid_ll_driver hidp_hid_driver; -extern struct hid_ll_driver uhid_hid_driver; -extern struct hid_ll_driver usb_hid_driver; -static inline bool hid_is_using_ll_driver(struct hid_device *hdev, -		struct hid_ll_driver *driver) -{ -	return hdev->ll_driver == driver; -} +	unsigned int max_buffer_size; +}; -static inline bool hid_is_usb(struct hid_device *hdev) -{ -	return hid_is_using_ll_driver(hdev, &usb_hid_driver); -} +extern bool hid_is_usb(const struct hid_device *hdev);  #define	PM_HINT_FULLON	1<<5  #define PM_HINT_NORMAL	1<<1 @@ -882,8 +879,6 @@ static inline bool hid_is_usb(struct hid_device *hdev)  /* HID core API */ -extern int hid_debug; -  extern bool hid_ignore(struct hid_device *);  extern int hid_add_device(struct hid_device *);  extern void hid_destroy_device(struct hid_device *); @@ -1191,11 +1186,7 @@ int hid_pidff_init(struct hid_device *hid);  #define hid_pidff_init NULL  #endif -#define dbg_hid(fmt, ...)						\ -do {									\ -	if (hid_debug)							\ -		printk(KERN_DEBUG "%s: " fmt, __FILE__, ##__VA_ARGS__);	\ -} while (0) +#define dbg_hid(fmt, ...) pr_debug("%s: " fmt, __FILE__, ##__VA_ARGS__)  #define hid_err(hid, fmt, ...)				\  	dev_err(&(hid)->dev, fmt, ##__VA_ARGS__)  | 
