Re: USB2.0 - low-speed USB audio interface?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Greg KH wrote:
On Fri, May 21, 2010 at 08:33:50PM +0000, Mike Thomas wrote:
I am the unfortunate author/maintainer of the easycapdc60 driver, which targets
a single USB device: the EasyCAP DC60 dongle/stick having USB ID 05e1:0408. This is widely marketed as an inexpensive ($10) means of digitizing videotapes
and similar sources.  The front-end video chip is a SA7113H, the audio chip is
(normally - see below) a VT1612A (or equivalent) and the bridge is a STK1160. The easycapdc60 driver is an integrated audio/video driver entirely independent of the V4L2 videodev module, although it does use the V4L2 protocol for IOCTL. The driver was made publically available in January 2010 as a GPL Sourceforge
project.

The issue raised in the present thread arises from the fact that a given EasyCAP
responds consistently in one of two different ways when probed.  One kind of
EasyCAP always gives the output already posted above:

http://pastebin.com/WPGLZtDA

I call these "slow" EasyCAPs.  I do not own any of these, but have been obliged
to recognize their existence following numerous complaints by users on the
Sourceforge project's Open Discussion forum.  The second kind of EasyCAP, of
which I possess three, gives different output:

http://pastebin.com/k7MFfkA3

I call these "normal EasyCAPs".  The difference between the slow and normal
EasyCAPs is in the isochronous audio interface.  The slow EasyCAPs have audio
format PCM8, tSamFreq 8000 and wMaxPacketSize 9.  The normal EasyCAPs have audio
format PCM, tSamFreq 48000 and wMaxPacketSize 256.

When originally developing the driver over Christmas 2009/2010 I was unaware of
the slow EasyCAPs, and I hard-coded the URB parameters to give trouble-free
audio streaming on the normal EasyCAP which I was using for testing.  The audio
part of the driver in its present form does not expect a wMaxPacketSize of
anything other than 256, and just concedes defeat gracefully when encountering a
different value.

I should like to enhance the driver to cope with the slow EasyCAPs, and I
suppose it will be straightforward in principle to modify the URB parameters to
accommodate slower audio streaming.  But the way in which the driver sets the
registers of the VT1612A will not be right if the slow EasyCAPs contain a
different audio chip, in which case the amount of work required will increase
very substantially and my resolve may falter.

Thanks for the very detailed descriptions.  How about just removing the
device ids of these devices that don't work well?

Also, if you want, you should get the driver into the main kernel tree.
I'd be glad to add it to the drivers/staging/ portion of the kernel if
you don't think it is ready to merge to the "real" part of the kernel
for this type of driver.

Just let me know.

thanks,

greg k-h


It would be excellent if the driver could be integrated into the kernel tree. I have taken the development nearly as far as I can on my own, and the source code would certainly benefit from expert appraisal and reworking of the weaker parts, for example the locking procedures (and very probably other things I have not even recognized as weaknesses). And of course an out-of-tree driver is a major inconvenience for users.

In the development version of the driver here at home I have recently added some features in response to user requests (most notably 320x240 and other reduced resolutions) and was about to start looking at possible solutions to the "slow EasyCAP" issue prior to releasing version 0.8. It might be more efficient, however, to defer consideration of the slow EasyCAPs until the driver has been integrated into the kernel tree, as there is a much better chance of finding a sensible way forward on this when guidance from experienced developers is available. I am coming to the view, therefore, that I should release version 0.8 on Sourceforge with minimal delay (a couple of weeks is probably the best I can do), and should then work towards migrating the driver to drivers/staging/.

I am aware that I shall need to reformat the source code to bring it into line with the conventional (K&R) kernel coding style, and I shall do this before submitting the driver for inclusion in drivers/staging/. I am happy to cooperate in meeting this and any other requirements which may arise in order that mainstream users can get ready access to the driver as soon as possible.

Mike Thomas

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux