Thread (34 messages) 34 messages, 5 authors, 2012-09-19

Re: [PATCH 0/7] HID: picoLCD updates

From: Bruno Prémont <bonbons@linux-vserver.org>
Date: 2012-08-18 13:49:18
Also in: linux-input, lkml

On Sat, 18 August 2012 Alan Stern [off-list ref] wrote:
On Sat, 18 Aug 2012, Bruno Prémont wrote:
quoted
On Thu, 16 August 2012 Jiri Kosina [off-list ref] wrote:
quoted
On Thu, 16 Aug 2012, Bruno Prémont wrote:
quoted
quoted
I don't really understand this explanation. Once usb_kill_urb() returns, 
the URB should be available for future use (and therefore all queues 
completely drained).
I won't have time today to check, though my guess is that on each
echo $usb-id > bind; echo $usb-id > unbind
under /sys/bus/hid/drivers/hid-picolcd/ the USB urb queue fills a bit does
not get cleared.

Is usb_kill_urb() called when unbinding just the specific hid driver? 
Yup, through hid_hw_stop() -> usbhid_stop().
quoted
If so my short timing between bind/unbind must be triggering something 
else...

Otherwise I'm missing something as at first time I got no "output queue full"
messages, but as I repeated the bind/unbind sequences the prints per bind/unbind
iteration increased in number.

Anyhow, on Friday evening/week-end I will continue digging and report back with my
findings.
Huh, after changing some of the hid-picolcd data in order to have less racy
coupling between hid and framebuffer I'm now dying way too often in _mmx_memcpy
and most of the time I don't get a (complete) trace...
There was a similar problem reported recently.  It turned out to be 
caused by a __devinitconst annotation attached to a usb_device_id 
table.

If there are any __devinit* annotations in the hid-picolcd driver, you 
should see if removing them helps.
There is no such annotation around in hid-picolcd.


One thing I just though about, how does usbhid handle the calls to
usbhid_submit_report() when hid_hw_stop()/hid_hw_close() have already
been called?
I will attempt to see if it makes a difference to shortcut my
usbhid_submit_report() calls from the point on I have called hid_hw_close()...

Bruno
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help