matrix_scan in hook_usb_startup_wait_loop is not required for
FC660C since commit dd7b75: SOF timing fix of USB_Host_Shield_2.0.
Without INTERRUPT_CONTROL_ENDPOINT the matrix_scan blocks around 2300ms
and prevents getting USB configured. In the result console_putc
starts sending before hid_listen is ready and chars are lost.
console_is_ready delay value should be around 5000ms if matrix_scan
is needed in hook_usb_startup_wait_loop.
Device classes are registered to array of config driver pool and
tried in that order until proper class is found in configuration process.
If tried driver cannot handle device, bus reset is issued to the device.
- Change keyboard_init() timing and matrix_scan() is called in USB
startup wait loop for FC660C
- FC660C startup seems to be faster and it doesn't work without this fix
when plugin the keyboard and converter at same time
- This bug occurs when sending LED out report before keyboard becomes ready
- Ckecking with isReady() before using SetReport() solves this
- Slow startup keyboard like TMK trrigers this bug and Linux shows following error just after plugin converter
usb 3-1: device descriptor read/64, error -62