schedule_work(&isp116x->rh_resume); 
usb_hcd_resume_root_hub(hcd); 
static irqreturn_t isp116x_irq(struct usb_hcd *hcd, struct pt_regs *regs){	struct isp116x *isp116x = hcd_to_isp116x(hcd);	u16 irqstat;	irqreturn_t ret = IRQ_NONE;	spin_lock(&isp116x->lock);	isp116x_write_reg16(isp116x, HCuPINTENB, 0);	irqstat = isp116x_read_reg16(isp116x, HCuPINT);	isp116x_write_reg16(isp116x, HCuPINT, irqstat);	if (irqstat & (HCuPINT_ATL | HCuPINT_SOF)) {		ret = IRQ_HANDLED;		finish_atl_transfers(isp116x, regs);	}	if (irqstat & HCuPINT_OPR) {		u32 intstat = isp116x_read_reg32(isp116x, HCINTSTAT);		isp116x_write_reg32(isp116x, HCINTSTAT, intstat);		if (intstat & HCINT_UE) {			ERR("Unrecoverable error\n");			/* What should we do here? Reset?  */		}		if (intstat & HCINT_RHSC)			/* When root hub or any of its ports is going			   to come out of suspend, it may take more			   than 10ms for status bits to stabilize. */			mod_timer(&hcd->rh_timer, jiffies				  + msecs_to_jiffies(20) + 1);		if (intstat & HCINT_RD) {			DBG("---- remote wakeup\n");			schedule_work(&isp116x->rh_resume);			ret = IRQ_HANDLED;		}		irqstat &= ~HCuPINT_OPR;		ret = IRQ_HANDLED;	}	if (irqstat & (HCuPINT_ATL | HCuPINT_SOF)) {		start_atl_transfers(isp116x);	}	isp116x_write_reg16(isp116x, HCuPINTENB, isp116x->irqenb);	spin_unlock(&isp116x->lock);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/ccdcf77ae32e3d3347fdf3810b27f899e98c34fb/isp116x-hcd.c/buggy/drivers/usb/host/isp116x-hcd.c