On Sat, 3 Feb 2007, Prakash Punnoor wrote:

> Am Freitag 02 Februar 2007 schrieb Alan Stern:
> > When you have a chance, please try hooking the scanner up to that bad hub
> > port again, and use the usbmon facility.  Instructions are in the kernel
> > source file Documentation/usb/usbmon.txt.  Start acquiring the usbmon log
> > before running sane, and stop it after sane has failed.
> 
> Ok here it is. I started log, turned scanner on and run sane-find-scanner. 
> First time didn't find, 3 times find, 4th time didn't find. It seems I was 
> wrong about one port OK and one port with problems. This is the log form the 
> port I thought was OK on the hub... BTW, I think I know what you meant with 
> the third port on the hub: I think it is the monitor as such. It is 
> accessible via usb to adjusts settings - at least in windows...

Yes, that must be it.

> Please let me know if you need a log with 2.6.19, as well.

No thanks, I don't need to see 2.6.19.  This log is very good.

But it's also very puzzling.  There are several lines in the log I can't
understand at all.  Maybe some events got left out, or maybe something
else happened.

So here's what I'd like you to do.  First, apply the diagnostic patch 
below, and make sure you have CONFIG_USB_DEBUG turned on.  Then run your 
test just like before, and do it enough times to get some examples where 
sane-find-scanner doesn't find it.  But before turning on the scanner, do

        dmesg -c >/dev/null

to clear the dmesg log, and when the test is over make a copy of the dmesg
log.  Post both the usbmon and the dmesg logs.  Hopefully any information
missing in one will be present in the other.

Alan Stern


Index: usb-2.6/drivers/usb/core/hub.c
===================================================================
--- usb-2.6.orig/drivers/usb/core/hub.c
+++ usb-2.6/drivers/usb/core/hub.c
@@ -1781,10 +1781,12 @@ hub_port_resume(struct usb_hub *hub, int
 
        /* Skip the initial Clear-Suspend step for a remote wakeup */
        status = hub_port_status(hub, port1, &portstatus, &portchange);
+       dev_dbg(hub->intfdev, "port %d status:A %x %x\n", port1,
+                       portstatus, portchange);
        if (status == 0 && !(portstatus & USB_PORT_STAT_SUSPEND))
                goto SuspendCleared;
 
-       // dev_dbg(hub->intfdev, "resume port %d\n", port1);
+       dev_dbg(hub->intfdev, "resume port %d\n", port1);
 
        set_bit(port1, hub->busy_bits);
 
@@ -1811,6 +1813,8 @@ hub_port_resume(struct usb_hub *hub, int
                 * sequence.
                 */
                status = hub_port_status(hub, port1, &portstatus, &portchange);
+               dev_dbg(hub->intfdev, "port %d status:B %x %x\n", port1,
+                       portstatus, portchange);
 SuspendCleared:
                if (status < 0
                                || (portstatus & LIVE_FLAGS) != LIVE_FLAGS
@@ -1831,6 +1835,7 @@ SuspendCleared:
                                status = finish_port_resume(udev);
                }
        }
+       dev_dbg(hub->intfdev, "port %d status:C %d\n", port1, status);
        if (status < 0)
                hub_port_logical_disconnect(hub, port1);
 


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to