Index: uspace/lib/usbhid/include/usb/hid/hidparser.h
===================================================================
--- uspace/lib/usbhid/include/usb/hid/hidparser.h	(revision 5499a8b0fe0a9748b079719335283fa751be5146)
+++ uspace/lib/usbhid/include/usb/hid/hidparser.h	(revision 1eee99f20881732e428f10348b31fbf5334a5ebc)
@@ -65,7 +65,12 @@
                            usb_hid_report_type_t type);
 
+size_t usb_hid_report_byte_size(usb_hid_report_t *report, uint8_t report_id, 
+                           usb_hid_report_type_t type);
+
+
 /** Makes the output report buffer by translated given data */
 int usb_hid_report_output_translate(usb_hid_report_t *report, uint8_t report_id, 
                                     uint8_t *buffer, size_t size);
+
 
 /** */
Index: uspace/lib/usbhid/src/hidparser.c
===================================================================
--- uspace/lib/usbhid/src/hidparser.c	(revision 5499a8b0fe0a9748b079719335283fa751be5146)
+++ uspace/lib/usbhid/src/hidparser.c	(revision 1eee99f20881732e428f10348b31fbf5334a5ebc)
@@ -95,4 +95,29 @@
 	else {
 		return report_des->item_length;
+	}
+}
+
+/** Returns size of report of specified report id and type in bytes
+ *
+ * @param parser Opaque report parser structure
+ * @param report_id 
+ * @param type
+ * @return Number of items in specified report
+ */
+size_t usb_hid_report_byte_size(usb_hid_report_t *report, uint8_t report_id, 
+                           usb_hid_report_type_t type)
+{
+	usb_hid_report_description_t *report_des;
+
+	if(report == NULL) {
+		return 0;
+	}
+
+	report_des = usb_hid_report_find_description (report, report_id, type);
+	if(report_des == NULL){
+		return 0;
+	}
+	else {
+		return (report_des->bit_length + 7) / 8;
 	}
 }
