} 
check_fsbr(uhci); uhci_check_ports(uhci); 
static int uhci_hub_status_data(struct usb_hcd *hcd, char *buf){	struct uhci_hcd *uhci = hcd_to_uhci(hcd);	unsigned long flags;	int status;	spin_lock_irqsave(&uhci->lock, flags);	if (uhci->hc_inaccessible) {		status = 0;		goto done;	}	uhci_check_ports(uhci);	status = get_hub_status_data(uhci, buf);	switch (uhci->rh_state) {	    case UHCI_RH_SUSPENDING:	    case UHCI_RH_SUSPENDED:		/* if port change, ask to be resumed */		if (status)			usb_hcd_resume_root_hub(hcd);		break;	    case UHCI_RH_AUTO_STOPPED:		/* if port change, auto start */		if (status)			wakeup_rh(uhci);		break;	    case UHCI_RH_RUNNING:		/* are any devices attached? */		if (!any_ports_active(uhci)) {			uhci->rh_state = UHCI_RH_RUNNING_NODEVS;			uhci->auto_stop_time = jiffies + HZ;		}		break;	    case UHCI_RH_RUNNING_NODEVS:		/* auto-stop if nothing connected for 1 second */		if (any_ports_active(uhci))			uhci->rh_state = UHCI_RH_RUNNING;		else if (time_after_eq(jiffies, uhci->auto_stop_time))			suspend_rh(uhci, UHCI_RH_AUTO_STOPPED);		break;	    default:		break;	}done:	spin_unlock_irqrestore(&uhci->lock, flags);	return status;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1f09df8bfe358994fcb5f3dc4f890694c4069621/uhci-hub.c/clean/drivers/usb/host/uhci-hub.c