[Asterisk-Dev] Fixing S100U driver for linux 2.6.x
Adam Goryachev
mailinglists at websitemanagers.com.au
Mon Apr 4 21:49:39 MST 2005
It seems digium aren't interested in fixing the S100U driver for linux
2.6.x, so I thought I might have a crack at it, hopefully with some
assistance from this list... (Note, their answer was to use linux 2.4.x
which I assume would work, but I want to use linux 2.6.x because of the
extra features/drivers/etc).
Here is the start, which is a copy of my email to digium support:
I have an 'old' S100U that I am trying again to get working as a home
extension, and having problems at module load time.
I would appreciate any assistance you might be able to provide. So far,
I've made a few small changes to the wcusb.c file to get some extra
debug information:
Device slot 0 is free
wcusb: wc_detect_device
Second exit
Init Indirect Registers completed successfully.
DC Cal x=19
wcusb: Setting correct interfaces.
wcusb: Read submit failed, x=0, errno=-22
wcusb: Something went wrong when starting the transfer
cleanup
usbcore: registered new driver wcusb
Wildcard USB FXS Interface driver registered
Basically, it is failing at line 1486 (current CVS HEAD branch):
for (x = 0; x < 2; x++) {
#ifdef LINUX26
if ((mystatus = usb_submit_urb(&p->dataread[x].urb,
GFP_KERNEL)))
#else
if (usb_submit_urb(&p->dataread[x].urb))
#endif
{
printk(KERN_ERR "wcusb: Read submit failed, x=%
d, errno=%d\n", x, mystatus);
return -1;
}
The line is:
if ((mystatus = usb_submit_urb(&p->dataread[x].urb, GFP_KERNEL)))
It seems to be returning EINVAL which is described as:
-EINVAL a) Invalid transfer type specified (or not supported) b)
Invalid interrupt interval (0$<=$n$<$256) c) More than one interrupt
packet requested at
http://wwwbode.cs.tum.edu/Par/arch/usb/usbdoc/node30.html
I don't really know much about kernel module development, nor USB, but I
thought I was doing pretty well to get that far :)
Any assistance would be appreciated with this.
END DIGIUM EMAIL
So, in short, I have very little idea as to how to find out what is
wrong, or what to look at to try and fix this.
Regards,
Adam
More information about the asterisk-dev
mailing list