Alan, On my controller, PEC turns on as soon as the controller begins the reset condition. CSC turns on as soon as the controller ends the reset condition (e.g. in response to PORT_RESET getting cleared).
So, the loop exit condition should be (inw(port_addr) & CSC). I'll prototype this change on a system here and let you know the results. Regards, --Chris -----Original Message----- From: Alan Stern [mailto:[EMAIL PROTECTED] Sent: Friday, January 20, 2006 4:03 PM To: Frantz, Chris Cc: Pete Zaitcev; USB development list Subject: RE: HP iLO needs FSBR On Fri, 20 Jan 2006, Frantz, Chris wrote: > The hardware is already shipping, so we can't switch controllers. I > haven't examined the code thouroughly enough to fully understand it > yet. Was there something wrong with the way the code worked in earlier > kernels? There was no spinlock protection, leaving the possibility that two different processors on an SMP system (or two different tasks on a UP system with preempt enabled) could simultaneously perform incompatible actions. > I suppose the way I might try to approach this would be to wait > (within some reasonable amount of time) for the PEC and CSC bits after > clearing PORT_RESET. > > Possibly something like this: > > for(i=0; i<25; i++) { > udelay(10); > if (inw(port_addr) & (USBPORTSC_PEC|USBPORTSC_CSC)) > break; > } > CLR_RH_PORTSTAT(USBPORTSC_PEC|USBPORTSC_CSC); > > So, normal controllers will wait 10us. Our slower controller will > wait up to 250us. That's a good idea. But on my controller, if the port was enabled before the reset then PEC gets turned on as soon as the reset begins. Is that true on your controller? And even if it is not true, do you know that your controller turns on PEC and CSC at the same time (so you don't end the loop too early)? And will 25 iterations be enough? > I'm not sure if the root-hub ports are ever reset when there's no > attached device, so it might be best to wrap the above inside of an > "if (this_port_has_a_device) { ... }" It's better than waiting 250 us! 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://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642 _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
