/* Remote wakeup connected - NOT SUPPORTED */ /*  if (board->remote_wakeup_connected) val |= HCCONTROL_RWC;  */ 
static int isp116x_start(struct usb_hcd *hcd){	struct isp116x *isp116x = hcd_to_isp116x(hcd);	struct isp116x_platform_data *board = isp116x->board;	u32 val;	unsigned long flags;	spin_lock_irqsave(&isp116x->lock, flags);	/* clear interrupt status and disable all interrupt sources */	isp116x_write_reg16(isp116x, HCuPINT, 0xff);	isp116x_write_reg16(isp116x, HCuPINTENB, 0);	val = isp116x_read_reg16(isp116x, HCCHIPID);	if ((val & HCCHIPID_MASK) != HCCHIPID_MAGIC) {		ERR("Invalid chip ID %04x\n", val);		spin_unlock_irqrestore(&isp116x->lock, flags);		return -ENODEV;	}	isp116x_write_reg16(isp116x, HCITLBUFLEN, ISP116x_ITL_BUFSIZE);	isp116x_write_reg16(isp116x, HCATLBUFLEN, ISP116x_ATL_BUFSIZE);	/* ----- HW conf */	val = HCHWCFG_INT_ENABLE | HCHWCFG_DBWIDTH(1);	if (board->sel15Kres)		val |= HCHWCFG_15KRSEL;	/* Remote wakeup won't work without working clock */	if (board->clknotstop || board->remote_wakeup_enable)		val |= HCHWCFG_CLKNOTSTOP;	if (board->oc_enable)		val |= HCHWCFG_ANALOG_OC;	if (board->int_act_high)		val |= HCHWCFG_INT_POL;	if (board->int_edge_triggered)		val |= HCHWCFG_INT_TRIGGER;	isp116x_write_reg16(isp116x, HCHWCFG, val);	/* ----- Root hub conf */	val = (25 << 24) & RH_A_POTPGT;	/* AN10003_1.pdf recommends NPS to be always 1 */	if (board->no_power_switching)		val |= RH_A_NPS;	if (board->power_switching_mode)		val |= RH_A_PSM;	isp116x_write_reg32(isp116x, HCRHDESCA, val);	isp116x->rhdesca = isp116x_read_reg32(isp116x, HCRHDESCA);	val = RH_B_PPCM;	isp116x_write_reg32(isp116x, HCRHDESCB, val);	isp116x->rhdescb = isp116x_read_reg32(isp116x, HCRHDESCB);	val = 0;	if (board->remote_wakeup_enable) {		hcd->can_wakeup = 1;		val |= RH_HS_DRWE;	}	isp116x_write_reg32(isp116x, HCRHSTATUS, val);	isp116x->rhstatus = isp116x_read_reg32(isp116x, HCRHSTATUS);	isp116x_write_reg32(isp116x, HCFMINTVL, 0x27782edf);	hcd->state = HC_STATE_RUNNING;	/* Set up interrupts */	isp116x->intenb = HCINT_MIE | HCINT_RHSC | HCINT_UE;	if (board->remote_wakeup_enable)		isp116x->intenb |= HCINT_RD;	isp116x->irqenb = HCuPINT_ATL | HCuPINT_OPR;	/* | HCuPINT_SUSP; */	isp116x_write_reg32(isp116x, HCINTENB, isp116x->intenb);	isp116x_write_reg16(isp116x, HCuPINTENB, isp116x->irqenb);	/* Go operational */	val = HCCONTROL_USB_OPER;	/* Remote wakeup connected - NOT SUPPORTED */	/*  if (board->remote_wakeup_connected)	   val |= HCCONTROL_RWC;  */	if (board->remote_wakeup_enable)		val |= HCCONTROL_RWE;	isp116x_write_reg32(isp116x, HCCONTROL, val);	/* Disable ports to avoid race in device enumeration */	isp116x_write_reg32(isp116x, HCRHPORT1, RH_PS_CCS);	isp116x_write_reg32(isp116x, HCRHPORT2, RH_PS_CCS);	isp116x_show_regs(isp116x);	spin_unlock_irqrestore(&isp116x->lock, flags);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d4d62861b5cdb0ecfcae448e4281623284de5d05/isp116x-hcd.c/clean/drivers/usb/host/isp116x-hcd.c