On Tue, 3 Jan 2006, Steve Calfee wrote: > Well, what is the difference between reset and a disabled port? In the > USB 2.0 spec section 11.5 there is a state chart for hubs. It defines > disabled as "Disabled: Port Cannot propagate any traffic. All ports are > HiZ". So when the port is disabled, the device must go into suspend > within <2ms if there is no signalling. So it must be removing its 1.5K > pullup resistor while suspended. The host's/port's pulldown 15K > resistors then pull the bus to SE0, even if it is not actively driven.
Correct except for the last two sentences. A suspended device does not remove its pullup resistor (see section 7.1.7.6 of the spec). If it did so, the host would think it had been unplugged. So a suspended bus segment does not go to SE0. > The Kitty USB Analyzer just samples the bus, and reads its D+,D- values. > It is not possible to determine if low on both lines is actively driven > or passively pulled down by the 15K resistors. So it senses SE0 which is > the same signal state as reset. It's the same as reset or disconnect. It's not the same as disabled. > > I haven't tried doing the same experiment with the device attached > > directly to the computer, but it would be surprising to see a port reset > > under these circumstances. When the reset completed the port would then > > be enabled, with the device at address 0 -- something you don't want to > > have happen for any length of time. Windows would then have to disable > > the port in any case... so why bother with the reset? > > > > I think I (in my earlier post) and maybe you have confused reset with > SE0. The difference is reset is DRIVEN by the port. In order to detect a > future connect, the bus needs to sit in the passive SE0 state waiting > for a device to pullup its "FULL/LOW speed" indicator line. The difference is smaller than you may think. An SE0 lasting at least 2.5 us _is_ a reset if a device is plugged in, otherwise it isn't. That's the only difference. Given that a device will never intentionally generate SE0, the question of which port drives the bus doesn't matter. > > I also haven't tried using the eject button. Very strange that it should > > not do the same thing as the "safely remove hardware" button. If you > > press eject and then unplug the device, does Windows give you a warning > > about unsafe device removal? > > No, but then it doesn't warn or scold if you just pull out the device > either. "WinXP Home" is what I am testing with. Okay; that behavior may differ between versions of Windows. > Maybe eject has to leave the device unsuspended so some external > mechanical media eject mechanism can still be run. Who knows? Most likely "eject" means "eject the medium" and has nothing at all to do with unplugging. Alan Stern ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel