On Tue, Sep 08, 2020 at 09:20:57AM +0200, Mauro Carvalho Chehab wrote: > At Hikey 970, setting the SPLIT disable at the General > User Register 3 is required. > > Without that, the URBs generated by the usbhid driver > return -EPROTO errors. That causes the code at > hid-core.c to call hid_io_error(), which schedules > a reset_work, causing a call to hid_reset(). > > In turn, the code there will call: > > usb_queue_reset_device(usbhid->intf); > > The net result is that the input devices won't work, and > will be reset on every 0.5 seconds: > > [ 33.122384] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0002 > [ 33.378220] usb 1-1.1: reset low-speed USB device number 3 using xhci-hcd > [ 33.698394] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0000 > [ 34.882365] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0002 > [ 35.138217] usb 1-1.1: reset low-speed USB device number 3 using xhci-hcd > [ 35.458617] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0000 > [ 36.642392] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0002 > [ 36.898207] usb 1-1.1: reset low-speed USB device number 3 using xhci-hcd > [ 37.218598] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0000 > [ 38.402368] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0002 > [ 38.658174] usb 1-1.1: reset low-speed USB device number 3 using xhci-hcd > [ 38.978594] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0000 > [ 40.162361] hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0002 > [ 40.418148] usb 1-1.1: reset low-speed USB device number 3 using xhci-hcd > ... > [ 397.698132] usb 1-1.1: reset low-speed USB device number 3 using xhci-hcd > > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> > --- > Documentation/devicetree/bindings/usb/dwc3.txt | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt > index d03edf9d3935..1aae2b6160c1 100644 > --- a/Documentation/devicetree/bindings/usb/dwc3.txt > +++ b/Documentation/devicetree/bindings/usb/dwc3.txt > @@ -78,6 +78,9 @@ Optional properties: > park mode are disabled. > - snps,dis_metastability_quirk: when set, disable metastability workaround. > CAUTION: use only if you are absolutely sure of it. > + - snps,dis-split-quirk: when set, change the way URBs are handled by the > + driver. Needed to avoid -EPROTO errors with usbhid > + on some devices (Hikey 970). Can't this be implied by the compatible string? Yes we have quirk properties already, but the problem with them is you can't address them without a DT change. Rob