On Wed, 21 Jun 2006 15:01:45 +0200, Dario Lesca <[EMAIL PROTECTED]> wrote:
> > > The problem is caused from the continuous loading of the "HP Virtual > > > Keyboard" USB subsystem. > > I'll tell you what, why don't you do this: > > mount -t debugfs none /sys/kernel/debug > > cat /sys/kernel/debug/usbmon/5t > /tmp/00.5t.mon & > Done, see the follow log. I decoded the log and it seems to be an enumeration issue. It looks like this. First, khubd sets up at a device normally (I start at an arbitrary point in the cycle; in this case we're setting port 2 and address 19). > f6cef0c0 3806580334 C Ii:001:01 0 1 = 06 > f6cef0c0 3806580338 S Ii:001:01 -115 2 < > f6cef6c0 3806636328 S Ci:001:00 s a3 00 0000 0002 0004 4 < > f6cef6c0 3806636380 C Ci:001:00 0 4 = 03010000 > f6cef6c0 3806692330 S Co:001:00 s 23 01 0014 0002 0000 0 > f6cef6c0 3806692334 C Co:001:00 0 0 > f6cef6c0 3806692338 S Co:000:00 s 00 05 0013 0000 0000 0 type = 0x00 = USB_TYPE_STANDARD request = 0x05 = USB_REQ_SET_ADDRESS value = 0x13 = 19 > f6cef6c0 3806693900 C Co:000:00 0 0 > f6cef6c0 3806708331 S Ci:019:00 s 80 06 0100 0000 0012 18 < > f6cef6c0 3806711184 C Ci:019:00 0 18 = 12011001 09000040 f0032713 01000102 > 0001 So far so good, we get the strings and HID gets its reports, sets idle, etc. It also submits interrupt URB(s). > f6cef0c0 3806832359 C Ii:001:01 0 1 = 06 > f6cef0c0 3806832362 S Ii:001:01 -115 2 < > f6cef6c0 3806844352 S Ii:019:01 -115 8 < > f6cefe40 3806844374 S Ci:019:00 s 80 06 0310 0409 00ff 255 < > f6cefe40 3806847307 C Ci:019:00 0 24 = 18035600 69007200 74007500 61006c00 > 20004800 75006200 At this point, port 2 is settled completely, so khubd turns its attention to port 1, and does exactly the same thing. > f6cefe40 3807204395 C Co:001:00 0 0 > f6cefe40 3807204400 S Co:000:00 s 00 05 0014 0000 0000 0 type = 0x00 = USB_TYPE_STANDARD request = 0x05 = USB_REQ_SET_ADDRESS value = 0x14 = 20 .... > f502c4c0 3807263223 S Ii:020:02 -115 3 < > f502cf40 3807263295 S Ci:020:00 s 80 06 0320 0409 00ff 255 < > f502cf40 3807266359 C Ci:020:00 0 28 = 1c035600 69007200 74007500 61006c00 > 20004d00 6f007500 73006500 All is done, we return to port #2: > f502cf40 3807266405 S Ci:001:00 s a3 00 0000 0002 0004 4 < type = 0xa3 = USB_DIR_IN|USB_RT_PORT request = USB_REQ_GET_STATUS value = 0 index = 2 But the iLO (well, root hub of UHCI) returns a change of status! > f502cf40 3807266412 C Ci:001:00 0 4 = 03010100 wPortStatus = 0103 wPortChange = 0001 { USB_PORT_STAT_C_CONNECTION } Since there was a change, we clear the change: > f502cf40 3807266417 S Co:001:00 s 23 01 0010 0002 0000 0 type = 0x23 = USB_TYPE_CLASS|USB_RECIP_OTHER = USB_RT_PORT request = 0x01 = USB_CLEAR_FEATURE value = 0x10 = 16 = USB_PORT_FEAT_C_CONNECTION index = 2 = port#2 > f502cf40 3807266422 C Co:001:00 0 0 The device #19 on the port #2 collapses immediately: > f6cef6c0 3807267424 C Ii:019:01 -108 0 Then we set it again, and the cycle continues indefinitely. The responsible code is very simple and was with us for a long time: static void hub_events(void) { u16 portstatus; u16 portchange; hub_port_status(hub, i, &portstatus, &portchange); if (portchange & USB_PORT_STAT_C_CONNECTION) { clear_port_feature(hdev, i, USB_PORT_FEAT_C_CONNECTION); connect_change = 1; } } We cannot ignore the connection change (Although... Alan, any opinions?). So, there's not much we can do about it. I think it's something which HP people need to look into. I have no idea what this phantom change is. AFAIK, the root hub circuitry is not a part of iLO. So, the only chance why this would happen is for iLO chip actually to blip the D+/D- lines in such a way that UHCI's hub detects a connection change. Right, Chris? Dario, did you try to run Windows on that box? And yes, I mean that very box, not some other system. It's very possible that something is not good with your power supply or the motherboard. -- Pete ------------------------------------------------------------------------- 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