On Wed, 28 Jul 2004, Gerhard Jaeger wrote:

> Hi,
> 
> okay, before fiddling around with that Windoze driver stuff, I tried your last
> patch (uhci-hcd.c one liner) and removed all other patches, result:
> I worked - at least partially. I have a log attached where both cases can
> be seen. Sometimes (quite often) it seems to work and the cam is detected
> as storage device.

Weird.  You'd hope that these cameras would at least behave the same way 
every time.

>  But then, loading the usb-storage driver fails - see
> minolta-a2-storage.log - there the first attempt to initialize the cam fails,
> the second one (simply replugged) was okay, but the loading the usb-storage
> module fails...

Okay, that's easy to fix.  See below.

> Anyway, looks promising - how can this be merged to the main stream kernel?

Once we've found something that works and won't cause problems for 
everyone else, I'll submit it.

In the meantime, there are two new patches below.  The first is a 
replacement for the earlier UHCI driver patch.  It should do about the 
same thing, but this one is suitable for submission (unlike the other, 
which was purely experimental).  The second patch is for usb-storage; it 
should fix the problem you saw.  Although it's really another error in the 
camera...

Anyway, try these two in place of all those others and see what you get.

Alan Stern



===== drivers/usb/host/uhci-hcd.c 1.120 vs edited =====
--- 1.120/drivers/usb/host/uhci-hcd.c   Thu Jul  8 06:57:48 2004
+++ edited/drivers/usb/host/uhci-hcd.c  Thu Jul 29 10:51:57 2004
@@ -829,8 +829,11 @@
 
        uhci_insert_tds_in_qh(qh, urb, UHCI_PTR_BREADTH);
 
-       /* Low-speed transfers get a different queue, and won't hog the bus */
-       if (urb->dev->speed == USB_SPEED_LOW)
+       /* Low-speed transfers get a different queue, and won't hog the bus.
+        * Also, some devices have trouble with fsbr until they are enumerated.
+        * Anything with address 0 therefore goes on the low-speed queue also.
+        */
+       if (urb->dev->speed == USB_SPEED_LOW || usb_pipedevice(urb->pipe) == 0)
                skelqh = uhci->skel_ls_control_qh;
        else {
                skelqh = uhci->skel_fs_control_qh;


===== drivers/usb/storage/transport.c 1.141 vs edited =====
--- 1.141/drivers/usb/storage/transport.c       Thu Jun 24 12:44:16 2004
+++ edited/drivers/usb/storage/transport.c      Thu Jul 29 10:47:13 2004
@@ -916,7 +916,7 @@
                  result, us->iobuf[0]);
 
        /* if we have a successful request, return the result */
-       if (result == 1)
+       if (result >= 0)
                return us->iobuf[0];
 
        /* 



-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to