[Quickcall] quickcalld hid events work for a short time only, then gets wedged on a 'pressed' event

David Gibson logitech at gibson.dropbear.id.au
Tue Oct 11 11:19:53 EST 2011


On Sat, Oct 01, 2011 at 05:15:44PM +1000, Aaron Roydhouse wrote:
> Hi David, thanks for the code to init the Quickcall devices.
> End-of-life as they are, I am very fond of the microphone array for
> speaker-phone calls. I had taken to giving them to people who call
> me so I could hear them clearly :-) But it great that thanks to your
> efforts I can finally use one myself.
> 
> I find it works great but locks up while processing button events. I
> built quickcalld on Ubuntu 11.04 with libasound 1.0.24.1-0ubunut5
> and libusb-dev 2:0.1.12-17. It initialises the device fine and
> initially listens and acts on hid events (volume, mute). However,
> after anywhere from 1 to about a dozen events, it wedges up. The
> daemon process is still running, but it no longer reacts to events.
> I note that normally if you unplug the device the process notices
> and exits. However once it stops processing events, it also doesn't
> exit if you remove the device, you have to kill it.

Hrm, how odd.

> 
> Below are a couple of same runs from syslog:
> 
> Oct  1 16:44:18 shim quickcalld[504]: Running on Quickcall device at
> /sys/devices/pci0000:00/0000:00:1d.0/usb6/6-2
> Oct  1 16:44:31 shim quickcalld[504]: MUTE pressed
> Oct  1 16:44:31 shim quickcalld[504]: MUTE released
> Oct  1 16:44:33 shim quickcalld[504]: MUTE pressed
> <-- wedged here, events stop being processed
> 
> Oct  1 16:45:04 shim quickcalld[521]: Running on Quickcall device at
> /sys/devices/pci0000:00/0000:00:1d.0/usb6/6-2
> Oct  1 16:45:09 shim quickcalld[521]: RIGHT pressed
> Oct  1 16:45:09 shim quickcalld[521]: RIGHT released
> Oct  1 16:45:12 shim quickcalld[521]: RIGHT pressed
> Oct  1 16:45:12 shim quickcalld[521]: RIGHT released
> Oct  1 16:45:13 shim quickcalld[521]: LEFT pressed
> Oct  1 16:45:13 shim quickcalld[521]: LEFT released
> Oct  1 16:45:14 shim quickcalld[521]: RIGHT pressed
> Oct  1 16:45:14 shim quickcalld[521]: RIGHT released
> Oct  1 16:45:15 shim quickcalld[521]: RIGHT pressed
> Oct  1 16:45:15 shim quickcalld[521]: RIGHT released
> Oct  1 16:45:15 shim quickcalld[521]: RIGHT pressed
> Oct  1 16:45:15 shim quickcalld[521]: RIGHT released
> Oct  1 16:45:16 shim quickcalld[521]: RIGHT pressed
> <-- wedged here, events stop being processed
> 
> Oct  1 17:07:24 shim quickcalld[856]: Running on Quickcall device at
> /sys/devices/pci0000:00/0000:00:1d.0/usb6/6-2
> Oct  1 17:07:24 shim quickcalld[856]: LEFT pressed
> Oct  1 17:07:24 shim quickcalld[856]: LEFT released
> Oct  1 17:07:29 shim quickcalld[856]: LEFT pressed
> Oct  1 17:07:29 shim quickcalld[856]: LEFT released
> Oct  1 17:07:29 shim quickcalld[856]: LEFT pressed
> <-- wedged here, events stop being processed
> 
> Anyone else seen something similar?
> 
> I note it always seems to get stuck after a 'pressed' event. Could
> it be waiting for a 'released' event that it misses or that is never
> coming?

I can't really see how that would happen, the HID interface doesn't
really work that way.  Plus it should be able to handle PRESS events
when something else is pressed (e.g. press MUTE, press LEFT, release
LEFT, release MUTE).

So the handling of HID events is based on reading the kernel's
/dev/hiddev device  which does the basic processing of the HID
protocol.  It's unclear whether this wedging is happening in the
daemon itself or in the kernel driver somehow.

I think the next step would be to get an strace capture of the running
daemon as it jams up.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson


More information about the Quickcall mailing list