diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-12-08 02:02:48 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2010-12-08 08:35:14 -0500 |
commit | 5bea7660bba973dc5e8e9d92b11fb1dd5b524ebf (patch) | |
tree | 511ae632c2d2c22d94956ed2d236bd8654d27ff0 /include/linux/hid.h | |
parent | 33d6eb570b1f3fe5ba93cef465c5be66535c2c9a (diff) |
HID: add hid_hw_open/close/power() handlers
Instead of exposing the guts of hid->ll_driver relationship to HID
sub-drivers provide these helpers to encapsulate the details.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux/hid.h')
-rw-r--r-- | include/linux/hid.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/linux/hid.h b/include/linux/hid.h index bb0f56f5c01e..e2af195d8b46 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
@@ -820,6 +820,49 @@ static inline void hid_hw_stop(struct hid_device *hdev) | |||
820 | hdev->ll_driver->stop(hdev); | 820 | hdev->ll_driver->stop(hdev); |
821 | } | 821 | } |
822 | 822 | ||
823 | /** | ||
824 | * hid_hw_open - signal underlaying HW to start delivering events | ||
825 | * | ||
826 | * @hdev: hid device | ||
827 | * | ||
828 | * Tell underlying HW to start delivering events from the device. | ||
829 | * This function should be called sometime after successful call | ||
830 | * to hid_hiw_start(). | ||
831 | */ | ||
832 | static inline int __must_check hid_hw_open(struct hid_device *hdev) | ||
833 | { | ||
834 | return hdev->ll_driver->open(hdev); | ||
835 | } | ||
836 | |||
837 | /** | ||
838 | * hid_hw_close - signal underlaying HW to stop delivering events | ||
839 | * | ||
840 | * @hdev: hid device | ||
841 | * | ||
842 | * This function indicates that we are not interested in the events | ||
843 | * from this device anymore. Delivery of events may or may not stop, | ||
844 | * depending on the number of users still outstanding. | ||
845 | */ | ||
846 | static inline void hid_hw_close(struct hid_device *hdev) | ||
847 | { | ||
848 | hdev->ll_driver->close(hdev); | ||
849 | } | ||
850 | |||
851 | /** | ||
852 | * hid_hw_power - requests underlying HW to go into given power mode | ||
853 | * | ||
854 | * @hdev: hid device | ||
855 | * @level: requested power level (one of %PM_HINT_* defines) | ||
856 | * | ||
857 | * This function requests underlying hardware to enter requested power | ||
858 | * mode. | ||
859 | */ | ||
860 | |||
861 | static inline int hid_hw_power(struct hid_device *hdev, int level) | ||
862 | { | ||
863 | return hdev->ll_driver->power ? hdev->ll_driver->power(hdev, level) : 0; | ||
864 | } | ||
865 | |||
823 | void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, | 866 | void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, |
824 | int interrupt); | 867 | int interrupt); |
825 | 868 | ||