Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
Pull HID updates from Jiri Kosina: - patch series that ensures that hid-multitouch driver disables touch and button-press reporting on hid-mt devices during suspend when the device is not configured as a wakeup-source, from Hans de Goede - support for ISH DMA on Intel EHL platform, from Even Xu - support for Renoir and Cezanne SoCs, Ambient Light Sensor and Human Presence Detection sensor for amd-sfh driver, from Basavaraj Natikar - other assorted code cleanups and device-specific fixes/quirks * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (45 commits) HID: thrustmaster: Switch to kmemdup() when allocate change_request HID: multitouch: Disable event reporting on suspend when the device is not a wakeup-source HID: logitech-dj: Implement may_wakeup ll-driver callback HID: usbhid: Implement may_wakeup ll-driver callback HID: core: Add hid_hw_may_wakeup() function HID: input: Add support for Programmable Buttons HID: wacom: Correct base usage for capacitive ExpressKey status bits HID: amd_sfh: Add initial support for HPD sensor HID: amd_sfh: Extend ALS support for newer AMD platform HID: amd_sfh: Extend driver capabilities for multi-generation support HID: surface-hid: Fix get-report request HID: sony: fix freeze when inserting ghlive ps3/wii dongles HID: usbkbd: Avoid GFP_ATOMIC when GFP_KERNEL is possible HID: amd_sfh: change in maintainer HID: intel-ish-hid: ipc: Specify that EHL no cache snooping HID: intel-ish-hid: ishtp: Add dma_no_cache_snooping() callback HID: intel-ish-hid: Set ISH driver depends on x86 HID: hid-input: add Surface Go battery quirk HID: intel-ish-hid: Fix minor typos in comments HID: usbmouse: Avoid GFP_ATOMIC when GFP_KERNEL is possible ...
This commit is contained in:
commit
df04fbe868
40 changed files with 704 additions and 220 deletions
|
|
@ -102,6 +102,7 @@ struct hid_item {
|
|||
#define HID_COLLECTION_PHYSICAL 0
|
||||
#define HID_COLLECTION_APPLICATION 1
|
||||
#define HID_COLLECTION_LOGICAL 2
|
||||
#define HID_COLLECTION_NAMED_ARRAY 4
|
||||
|
||||
/*
|
||||
* HID report descriptor global item tags
|
||||
|
|
@ -800,6 +801,7 @@ struct hid_driver {
|
|||
* @raw_request: send raw report request to device (e.g. feature report)
|
||||
* @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
|
||||
*/
|
||||
struct hid_ll_driver {
|
||||
int (*start)(struct hid_device *hdev);
|
||||
|
|
@ -824,6 +826,7 @@ struct hid_ll_driver {
|
|||
int (*output_report) (struct hid_device *hdev, __u8 *buf, size_t len);
|
||||
|
||||
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;
|
||||
|
|
@ -1149,6 +1152,22 @@ static inline int hid_hw_idle(struct hid_device *hdev, int report, int idle,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* hid_may_wakeup - return if the hid device may act as a wakeup source during system-suspend
|
||||
*
|
||||
* @hdev: hid device
|
||||
*/
|
||||
static inline bool hid_hw_may_wakeup(struct hid_device *hdev)
|
||||
{
|
||||
if (hdev->ll_driver->may_wakeup)
|
||||
return hdev->ll_driver->may_wakeup(hdev);
|
||||
|
||||
if (hdev->dev.parent)
|
||||
return device_may_wakeup(hdev->dev.parent);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* hid_hw_wait - wait for buffered io to complete
|
||||
*
|
||||
|
|
|
|||
|
|
@ -8,11 +8,17 @@
|
|||
#ifndef _INTEL_ISH_CLIENT_IF_H_
|
||||
#define _INTEL_ISH_CLIENT_IF_H_
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/uuid.h>
|
||||
|
||||
struct ishtp_cl_device;
|
||||
struct ishtp_device;
|
||||
struct ishtp_cl;
|
||||
struct ishtp_fw_client;
|
||||
|
||||
typedef __printf(2, 3) void (*ishtp_print_log)(struct ishtp_device *dev,
|
||||
const char *format, ...);
|
||||
|
||||
/* Client state */
|
||||
enum cl_state {
|
||||
ISHTP_CL_INITIALIZING = 0,
|
||||
|
|
@ -36,7 +42,7 @@ struct ishtp_cl_driver {
|
|||
const char *name;
|
||||
const guid_t *guid;
|
||||
int (*probe)(struct ishtp_cl_device *dev);
|
||||
int (*remove)(struct ishtp_cl_device *dev);
|
||||
void (*remove)(struct ishtp_cl_device *dev);
|
||||
int (*reset)(struct ishtp_cl_device *dev);
|
||||
const struct dev_pm_ops *pm;
|
||||
};
|
||||
|
|
@ -76,7 +82,7 @@ int ishtp_register_event_cb(struct ishtp_cl_device *device,
|
|||
/* Get the device * from ishtp device instance */
|
||||
struct device *ishtp_device(struct ishtp_cl_device *cl_device);
|
||||
/* Trace interface for clients */
|
||||
void *ishtp_trace_callback(struct ishtp_cl_device *cl_device);
|
||||
ishtp_print_log ishtp_trace_callback(struct ishtp_cl_device *cl_device);
|
||||
/* Get device pointer of PCI device for DMA acces */
|
||||
struct device *ishtp_get_pci_device(struct ishtp_cl_device *cl_device);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue