hid_locate() currently skips all HID items which tagged as constant,
i.e. bit 0 of main item data is set to 1. See p.6.2.2.4 of hid1_11.pdf [1].
It looks like such an items are treated as padding, but that is wrong. They
can be a features, see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=232040
As p.6.2.2.9 of hid1_11.pdf clearly states: "Reports can be padded to
byte-align fields by declaring the appropriately sized main item and not
declaring a usage for the main item.", we should remove check for constant
from hid_locate(). Comparing of item usage is enough.
[1] https://www.usb.org/sites/default/files/documents/hid1_11.pdf