switch (HIDReportItem & HID_RI_DATA_SIZE_MASK)
{
case HID_RI_DATA_BITS_32:
- ReportItemData = *((uint32_t*)ReportData);
+ ReportItemData = le32_to_cpu(*((uint32_t*)ReportData));
ReportSize -= 4;
ReportData += 4;
break;
case HID_RI_DATA_BITS_16:
- ReportItemData = *((uint16_t*)ReportData);
+ ReportItemData = le16_to_cpu(*((uint16_t*)ReportData));
ReportSize -= 2;
ReportData += 2;
break;
CurrStateTable--;
break;
case HID_RI_USAGE_PAGE(0):
+ if ((HIDReportItem & HID_RI_DATA_SIZE_MASK) == HID_RI_DATA_BITS_32)
+ CurrStateTable->Attributes.Usage.Page = (ReportItemData >> 16);
+
CurrStateTable->Attributes.Usage.Page = ReportItemData;
break;
case HID_RI_LOGICAL_MINIMUM(0):
uint16_t ReportSizeBits = ParserData->ReportIDSizes[i].ReportSizeBits[ReportType];
if (ParserData->ReportIDSizes[i].ReportID == ReportID)
- return ((ReportSizeBits >> 3) + ((ReportSizeBits & 0x07) ? 1 : 0));
+ return (ReportSizeBits / 8) + ((ReportSizeBits % 8) ? 1 : 0);
}
return 0;