summaryrefslogtreecommitdiff
path: root/include/linux/hid.h
diff options
context:
space:
mode:
authorMathieu Magnaudet <mathieu.magnaudet@gmail.com>2014-11-27 16:02:36 +0100
committerJiri Kosina <jkosina@suse.cz>2014-12-01 21:34:17 +0100
commitdabb05c6670e6e4415d7b56cd5864a5dbd90207f (patch)
treeca80d7c8cf44f32bb0c870855ae87452c8a004c3 /include/linux/hid.h
parentda10bc252476a8d1d1bdf7b94502ad2cbd7f30b1 (diff)
downloadlwn-dabb05c6670e6e4415d7b56cd5864a5dbd90207f.tar.gz
lwn-dabb05c6670e6e4415d7b56cd5864a5dbd90207f.zip
HID: make hid_report_len as a static inline function in hid.h
In several hid drivers it is necessary to calculate the length of an hid_report. This patch exports the existing static function hid_report_len of hid-core.c as an inline function in hid.h Signed-off-by: Mathieu Magnaudet <mathieu.magnaudet@enac.fr> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux/hid.h')
-rw-r--r--include/linux/hid.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 78ea9bf941cd..2366fda010c8 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -1063,6 +1063,17 @@ static inline void hid_hw_wait(struct hid_device *hdev)
hdev->ll_driver->wait(hdev);
}
+/**
+ * hid_report_len - calculate the report length
+ *
+ * @report: the report we want to know the length
+ */
+static inline int hid_report_len(struct hid_report *report)
+{
+ /* equivalent to DIV_ROUND_UP(report->size, 8) + !!(report->id > 0) */
+ return ((report->size - 1) >> 3) + 1 + (report->id > 0);
+}
+
int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,
int interrupt);