Hi, I am using a telephony device, too, and seem to have similar issues. It is a Yealink P1K for which there is a kernel driver available. As long as this driver is not loaded the ALSA mixer controls (volume and mute) work fine. But as soon as the kernel driver (or my own userspace driver) starts its flow of control messages to query the key matrix, things go wrong. 1. The yealink driver receives unusual response codes as soon as mixer controls are touched. 2. ALSA mixer controls behave unexpectedly, usually turning mute spontaneously (urgh)
I created a commented usbmon log (http://download.devbase.at/transfers.log) which suggests that both yealink and ALSA start control transfers which get mixed between setup and data stage. I am not too familiar with the kernel's USB internals so is this possible at all? The following response of the device is wrong (0 bytes instead of 1 byte) and apparently this causes ALSA to mute the channel, in this case. What is the solution to handle these types of composite devices? Is there a way to share the control endpoint? Many thanks, -Thomas PS: My kernel version is 2.6.21. > > My questions then are: > > 1) What's the proper way to bind to a device instead of an interface? > > You may be better off thinking of this differently. If you > can make your driver bind to the control interface, then you > should be able to usb_driver_claim_interface() to grab the > interfaces for the audio channels. > > But I can imagine you might run into some issues there with > the current ALSA audio support not being set up to be very > subservient to your control interface. You might need to > hack that driver code a bit ... it'd be good if you could > avoid forking, but that'd certainly be a near-term expedient > option. > > > > 2) How should the audio device nodes be created? > > Let udev (or maybe mdev from busybox) handle that. > > > > 3) Is there an easy way for defining the audio channels to be 'cards', and > > use ALSA to do the rest of the lifting? > > I expect there is, but I'm not an ALSA expert. :) > > - Dave ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel