btleHid: conditionally allow duplicate report IDs

Some keyboards, e.g., Logitech K780, use the same report ID
in both input report type and output report type.
Let's be tolerant and relax a little bit on checking the
report ID. Hence, we enforce the report ID uniqueness of the
same report type instead of in the same peripheral device.

An example log snippet of Logitech K780 shows that the report
IDs reused among the report characteristics of both input report
type (0x01) and output report type (0x02):

D@ btleHid.c:836: HID: prereq read do - deciding how to proceed
D@ btleHid.c:639: id 30, first handle 0x003a, last handle 0x0000
D@ btleHid.c:652: handle 0x003b, report ID 0x11, report type 0x02
D@ btleHid.c:652: handle 0x0037, report ID 0x11, report type 0x01
W@ btleHid.c:657: HID report with handle 0x0037 has a report ID of 0x11,
but so does the one at 0x003b
D@ btleHid.c:652: handle 0x0033, report ID 0x04, report type 0x01
D@ btleHid.c:652: handle 0x002f, report ID 0x03, report type 0x01
D@ btleHid.c:652: handle 0x002c, report ID 0x01, report type 0x02
D@ btleHid.c:652: handle 0x0028, report ID 0x01, report type 0x01
W@ btleHid.c:657: HID report with handle 0x0028 has a report ID of 0x01,
but so does the one at 0x002c

BUG=chromium:880746
TEST=None. Will be tested together with another CL.

Change-Id: I9d4417752743c1dee4f7d5ae5d0aeb7206446650
Reviewed-on: https://chromium-review.googlesource.com/1229537
Commit-Ready: Shyh-In Hwang <josephsih@chromium.org>
Tested-by: Sonny Sasaka <sonnysasaka@chromium.org>
Tested-by: Shyh-In Hwang <josephsih@chromium.org>
Reviewed-by: Sonny Sasaka <sonnysasaka@chromium.org>
Reviewed-by: Dmitry Grinberg <dmitrygr@google.com>
1 file changed