Juergen Keil :
>> I saw in CR6674852 that one 
>> byte report ID prefix appeared in the IBM keyboard data.
>>     
>
> Interesting, so you're saying that the "Lite-On Technology IBM Enhanced
> Performance Wireless USB Keyboard" does send report ID prefix bytes
> although the keyboard should be set to boot protocol mode?
>
> Is this keyboard usable at the BIOS level?
>
> What kind of HID report descriptors does that Lite-On wireless usb keyboard
> from CR6674852 return?
>
> Do we know for sure that the Lite-On wireless usb keyboard accepted the
> switch to boot protocol mode?
>   
I will contact with the bug submitter to get the further info about this.
>>> I suspect that when an usb keyboard is used in boot
>>> protocol mode, it should just use an expected keyboard
>>> data packet size of USB_KBD_DEFAULT_PACKET_SIZE  (=8)
>>> bytes (without looking at the  HID descriptors)!
>>>   
>>>       
>> The codes of getting the packet size by parsing the report descriptor 
>> have been there years. If the value parsed from the actual hardware is 
>> replaced with that defined in spec, it is possible to bring some regression.
>>     
>
> Yes, maybe.  I suspect that USB keyboard devices with missing boot protocol
> support could break.  But are such devices supported by usbkbm?
>
>
>
> Sanity checking the packet_size value from hidparser_get_packet_size()
> seems to be less risky - something like this:
>
>
>               if (hidparser_get_packet_size(usbkbmd->usbkbm_report_descr,
>                   0, HIDPARSER_ITEM_INPUT, (uint32_t *)&packet_size) ==
>                   HIDPARSER_FAILURE || packet_size < 8) {
>                                       ^^^^^^^^^^^^^^^^^^
>                                       
>                       USB_DPRINTF_L3(PRINT_MASK_OPEN,
>                           usbkbm_log_handle, "get_packet_size failed"
>                           "setting default packet size(8)");
>
>                       /* Setting to default packet size = 8 */
>                       usbkbmd->usbkbm_packet_size =
>                           USB_KBD_DEFAULT_PACKET_SIZE;
>               } else {
>                       usbkbmd->usbkbm_packet_size = packet_size/8;
>               }
>               
>   
Yes. I agree with the fix.

After getting further info from other keyboards with the report ID, I 
will integrate the fix into Solaris.
>               
>   
>> Therefore, if the close relationship between report ID and boot protocol 
>> exists, the complete fix seems to be to disable the boot protocol and 
>> add the report ID support in usbkbm.
>>     
>
> OK, support for USB keyboard report protocol (including report id support)
> would be nice.  But I guess that would result in more regressions than
> using boot protocol with the fixed size.
>   
Enabling boot protocol with the fixed size can make sure most of the 
keyboards work. As regards other extension functions in keyboard, they 
will be supported in the HID extending project.

Regards,
Strony


Reply via email to