sl811              78 drivers/usb/host/sl811-hcd.c static void port_power(struct sl811 *sl811, int is_on)
sl811              80 drivers/usb/host/sl811-hcd.c 	struct usb_hcd	*hcd = sl811_to_hcd(sl811);
sl811              84 drivers/usb/host/sl811-hcd.c 		if (sl811->port1 & USB_PORT_STAT_POWER)
sl811              87 drivers/usb/host/sl811-hcd.c 		sl811->port1 = USB_PORT_STAT_POWER;
sl811              88 drivers/usb/host/sl811-hcd.c 		sl811->irq_enable = SL11H_INTMASK_INSRMV;
sl811              90 drivers/usb/host/sl811-hcd.c 		sl811->port1 = 0;
sl811              91 drivers/usb/host/sl811-hcd.c 		sl811->irq_enable = 0;
sl811              94 drivers/usb/host/sl811-hcd.c 	sl811->ctrl1 = 0;
sl811              95 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_IRQ_ENABLE, 0);
sl811              96 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_IRQ_STATUS, ~0);
sl811              98 drivers/usb/host/sl811-hcd.c 	if (sl811->board && sl811->board->port_power) {
sl811             102 drivers/usb/host/sl811-hcd.c 		sl811->board->port_power(hcd->self.controller, is_on);
sl811             106 drivers/usb/host/sl811-hcd.c 	if (sl811->board && sl811->board->reset)
sl811             107 drivers/usb/host/sl811-hcd.c 		sl811->board->reset(hcd->self.controller);
sl811             109 drivers/usb/host/sl811-hcd.c 		sl811_write(sl811, SL11H_CTLREG1, SL11H_CTL1MASK_SE0);
sl811             113 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_IRQ_ENABLE, 0);
sl811             114 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
sl811             115 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL811HS_CTLREG2, SL811HS_CTL2_INIT);
sl811             116 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
sl811             135 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811,
sl811             148 drivers/usb/host/sl811-hcd.c 	data_reg = sl811->data_reg;
sl811             149 drivers/usb/host/sl811-hcd.c 	sl811_write_buf(sl811, addr, urb->setup_packet, len);
sl811             152 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, bank + SL11H_BUFADDRREG, addr);
sl811             158 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, bank + SL11H_HOSTCTLREG,
sl811             166 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811,
sl811             177 drivers/usb/host/sl811-hcd.c 	data_reg = sl811->data_reg;
sl811             180 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, bank + SL11H_BUFADDRREG, 0);
sl811             189 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, bank + SL11H_HOSTCTLREG, control);
sl811             200 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811,
sl811             217 drivers/usb/host/sl811-hcd.c 	data_reg = sl811->data_reg;
sl811             220 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, bank + SL11H_BUFADDRREG, addr);
sl811             225 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, bank + SL11H_HOSTCTLREG, control);
sl811             236 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811,
sl811             258 drivers/usb/host/sl811-hcd.c 	data_reg = sl811->data_reg;
sl811             260 drivers/usb/host/sl811-hcd.c 	sl811_write_buf(sl811, addr, buf, len);
sl811             263 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, bank + SL11H_BUFADDRREG, addr);
sl811             268 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, bank + SL11H_HOSTCTLREG,
sl811             279 drivers/usb/host/sl811-hcd.c static inline void sofirq_on(struct sl811 *sl811)
sl811             281 drivers/usb/host/sl811-hcd.c 	if (sl811->irq_enable & SL11H_INTMASK_SOFINTR)
sl811             283 drivers/usb/host/sl811-hcd.c 	dev_dbg(sl811_to_hcd(sl811)->self.controller, "sof irq on\n");
sl811             284 drivers/usb/host/sl811-hcd.c 	sl811->irq_enable |= SL11H_INTMASK_SOFINTR;
sl811             287 drivers/usb/host/sl811-hcd.c static inline void sofirq_off(struct sl811 *sl811)
sl811             289 drivers/usb/host/sl811-hcd.c 	if (!(sl811->irq_enable & SL11H_INTMASK_SOFINTR))
sl811             291 drivers/usb/host/sl811-hcd.c 	dev_dbg(sl811_to_hcd(sl811)->self.controller, "sof irq off\n");
sl811             292 drivers/usb/host/sl811-hcd.c 	sl811->irq_enable &= ~SL11H_INTMASK_SOFINTR;
sl811             302 drivers/usb/host/sl811-hcd.c static struct sl811h_ep	*start(struct sl811 *sl811, u8 bank)
sl811             310 drivers/usb/host/sl811-hcd.c 	if (sl811->next_periodic) {
sl811             311 drivers/usb/host/sl811-hcd.c 		ep = sl811->next_periodic;
sl811             312 drivers/usb/host/sl811-hcd.c 		sl811->next_periodic = ep->next;
sl811             314 drivers/usb/host/sl811-hcd.c 		if (sl811->next_async)
sl811             315 drivers/usb/host/sl811-hcd.c 			ep = sl811->next_async;
sl811             316 drivers/usb/host/sl811-hcd.c 		else if (!list_empty(&sl811->async))
sl811             317 drivers/usb/host/sl811-hcd.c 			ep = container_of(sl811->async.next,
sl811             327 drivers/usb/host/sl811-hcd.c 		if ((bank && sl811->active_b == ep) || sl811->active_a == ep)
sl811             331 drivers/usb/host/sl811-hcd.c 		if (ep->schedule.next == &sl811->async)
sl811             332 drivers/usb/host/sl811-hcd.c 			sl811->next_async = NULL;
sl811             334 drivers/usb/host/sl811-hcd.c 			sl811->next_async = container_of(ep->schedule.next,
sl811             339 drivers/usb/host/sl811-hcd.c 		dev_dbg(sl811_to_hcd(sl811)->self.controller,
sl811             350 drivers/usb/host/sl811-hcd.c 	fclock = sl811_read(sl811, SL11H_SOFTMRREG) << 6;
sl811             362 drivers/usb/host/sl811-hcd.c 				sl811->stat_overrun++;
sl811             363 drivers/usb/host/sl811-hcd.c 			sofirq_on(sl811);
sl811             370 drivers/usb/host/sl811-hcd.c 				sl811->stat_overrun++;
sl811             381 drivers/usb/host/sl811-hcd.c 		in_packet(sl811, ep, urb, bank, control);
sl811             384 drivers/usb/host/sl811-hcd.c 		out_packet(sl811, ep, urb, bank, control);
sl811             387 drivers/usb/host/sl811-hcd.c 		setup_packet(sl811, ep, urb, bank, control);
sl811             390 drivers/usb/host/sl811-hcd.c 		status_packet(sl811, ep, urb, bank, control);
sl811             393 drivers/usb/host/sl811-hcd.c 		dev_dbg(sl811_to_hcd(sl811)->self.controller,
sl811             402 drivers/usb/host/sl811-hcd.c static inline void start_transfer(struct sl811 *sl811)
sl811             404 drivers/usb/host/sl811-hcd.c 	if (sl811->port1 & USB_PORT_STAT_SUSPEND)
sl811             406 drivers/usb/host/sl811-hcd.c 	if (sl811->active_a == NULL) {
sl811             407 drivers/usb/host/sl811-hcd.c 		sl811->active_a = start(sl811, SL811_EP_A(SL811_HOST_BUF));
sl811             408 drivers/usb/host/sl811-hcd.c 		if (sl811->active_a != NULL)
sl811             409 drivers/usb/host/sl811-hcd.c 			sl811->jiffies_a = jiffies + MIN_JIFFIES;
sl811             412 drivers/usb/host/sl811-hcd.c 	if (sl811->active_b == NULL) {
sl811             413 drivers/usb/host/sl811-hcd.c 		sl811->active_b = start(sl811, SL811_EP_B(SL811_HOST_BUF));
sl811             414 drivers/usb/host/sl811-hcd.c 		if (sl811->active_b != NULL)
sl811             415 drivers/usb/host/sl811-hcd.c 			sl811->jiffies_b = jiffies + MIN_JIFFIES;
sl811             421 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811,
sl811             425 drivers/usb/host/sl811-hcd.c ) __releases(sl811->lock) __acquires(sl811->lock)
sl811             432 drivers/usb/host/sl811-hcd.c 	usb_hcd_unlink_urb_from_ep(sl811_to_hcd(sl811), urb);
sl811             433 drivers/usb/host/sl811-hcd.c 	spin_unlock(&sl811->lock);
sl811             434 drivers/usb/host/sl811-hcd.c 	usb_hcd_giveback_urb(sl811_to_hcd(sl811), urb, status);
sl811             435 drivers/usb/host/sl811-hcd.c 	spin_lock(&sl811->lock);
sl811             444 drivers/usb/host/sl811-hcd.c 		if (ep == sl811->next_async)
sl811             445 drivers/usb/host/sl811-hcd.c 			sl811->next_async = NULL;
sl811             450 drivers/usb/host/sl811-hcd.c 	dev_dbg(sl811_to_hcd(sl811)->self.controller,
sl811             454 drivers/usb/host/sl811-hcd.c 		struct sl811h_ep	**prev = &sl811->periodic[i];
sl811             460 drivers/usb/host/sl811-hcd.c 		sl811->load[i] -= ep->load;
sl811             463 drivers/usb/host/sl811-hcd.c 	sl811->periodic_count--;
sl811             464 drivers/usb/host/sl811-hcd.c 	sl811_to_hcd(sl811)->self.bandwidth_allocated
sl811             466 drivers/usb/host/sl811-hcd.c 	if (ep == sl811->next_periodic)
sl811             467 drivers/usb/host/sl811-hcd.c 		sl811->next_periodic = ep->next;
sl811             470 drivers/usb/host/sl811-hcd.c 	if (sl811->periodic_count == 0)
sl811             471 drivers/usb/host/sl811-hcd.c 		sofirq_off(sl811);
sl811             475 drivers/usb/host/sl811-hcd.c done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank)
sl811             484 drivers/usb/host/sl811-hcd.c 	status = sl811_read(sl811, bank + SL11H_PKTSTATREG);
sl811             527 drivers/usb/host/sl811-hcd.c 			len = ep->maxpacket - sl811_read(sl811,
sl811             534 drivers/usb/host/sl811-hcd.c 			sl811_read_buf(sl811, SL811HS_PACKET_BUF(bank == 0),
sl811             585 drivers/usb/host/sl811-hcd.c 		finish_request(sl811, ep, urb, urbstat);
sl811             588 drivers/usb/host/sl811-hcd.c static inline u8 checkdone(struct sl811 *sl811)
sl811             593 drivers/usb/host/sl811-hcd.c 	if (sl811->active_a && time_before_eq(sl811->jiffies_a, jiffies)) {
sl811             594 drivers/usb/host/sl811-hcd.c 		ctl = sl811_read(sl811, SL811_EP_A(SL11H_HOSTCTLREG));
sl811             596 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL811_EP_A(SL11H_HOSTCTLREG), 0);
sl811             597 drivers/usb/host/sl811-hcd.c 		dev_dbg(sl811_to_hcd(sl811)->self.controller,
sl811             601 drivers/usb/host/sl811-hcd.c 			sl811_read(sl811, SL811_EP_A(SL11H_PKTSTATREG)));
sl811             605 drivers/usb/host/sl811-hcd.c 	if (sl811->active_b && time_before_eq(sl811->jiffies_b, jiffies)) {
sl811             606 drivers/usb/host/sl811-hcd.c 		ctl = sl811_read(sl811, SL811_EP_B(SL11H_HOSTCTLREG));
sl811             608 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL811_EP_B(SL11H_HOSTCTLREG), 0);
sl811             609 drivers/usb/host/sl811-hcd.c 		dev_dbg(sl811_to_hcd(sl811)->self.controller,
sl811             613 drivers/usb/host/sl811-hcd.c 			sl811_read(sl811, SL811_EP_B(SL11H_PKTSTATREG)));
sl811             622 drivers/usb/host/sl811-hcd.c 	struct sl811	*sl811 = hcd_to_sl811(hcd);
sl811             627 drivers/usb/host/sl811-hcd.c 	spin_lock(&sl811->lock);
sl811             630 drivers/usb/host/sl811-hcd.c 	irqstat = sl811_read(sl811, SL11H_IRQ_STATUS) & ~SL11H_INTMASK_DP;
sl811             632 drivers/usb/host/sl811-hcd.c 		sl811_write(sl811, SL11H_IRQ_STATUS, irqstat);
sl811             633 drivers/usb/host/sl811-hcd.c 		irqstat &= sl811->irq_enable;
sl811             639 drivers/usb/host/sl811-hcd.c 		irqstat = checkdone(sl811);
sl811             641 drivers/usb/host/sl811-hcd.c 			sl811->stat_lost++;
sl811             649 drivers/usb/host/sl811-hcd.c 		done(sl811, sl811->active_a, SL811_EP_A(SL811_HOST_BUF));
sl811             650 drivers/usb/host/sl811-hcd.c 		sl811->active_a = NULL;
sl811             651 drivers/usb/host/sl811-hcd.c 		sl811->stat_a++;
sl811             655 drivers/usb/host/sl811-hcd.c 		done(sl811, sl811->active_b, SL811_EP_B(SL811_HOST_BUF));
sl811             656 drivers/usb/host/sl811-hcd.c 		sl811->active_b = NULL;
sl811             657 drivers/usb/host/sl811-hcd.c 		sl811->stat_b++;
sl811             663 drivers/usb/host/sl811-hcd.c 		index = sl811->frame++ % (PERIODIC_SIZE - 1);
sl811             664 drivers/usb/host/sl811-hcd.c 		sl811->stat_sof++;
sl811             670 drivers/usb/host/sl811-hcd.c 		if (sl811->next_periodic) {
sl811             672 drivers/usb/host/sl811-hcd.c 			sl811->stat_overrun++;
sl811             674 drivers/usb/host/sl811-hcd.c 		if (sl811->periodic[index])
sl811             675 drivers/usb/host/sl811-hcd.c 			sl811->next_periodic = sl811->periodic[index];
sl811             680 drivers/usb/host/sl811-hcd.c 		sl811->stat_insrmv++;
sl811             683 drivers/usb/host/sl811-hcd.c 		sl811->stat_wake = 0;
sl811             684 drivers/usb/host/sl811-hcd.c 		sl811->stat_sof = 0;
sl811             685 drivers/usb/host/sl811-hcd.c 		sl811->stat_a = 0;
sl811             686 drivers/usb/host/sl811-hcd.c 		sl811->stat_b = 0;
sl811             687 drivers/usb/host/sl811-hcd.c 		sl811->stat_lost = 0;
sl811             689 drivers/usb/host/sl811-hcd.c 		sl811->ctrl1 = 0;
sl811             690 drivers/usb/host/sl811-hcd.c 		sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
sl811             692 drivers/usb/host/sl811-hcd.c 		sl811->irq_enable = SL11H_INTMASK_INSRMV;
sl811             693 drivers/usb/host/sl811-hcd.c 		sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
sl811             696 drivers/usb/host/sl811-hcd.c 		if (sl811->active_a) {
sl811             697 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL811_EP_A(SL11H_HOSTCTLREG), 0);
sl811             698 drivers/usb/host/sl811-hcd.c 			finish_request(sl811, sl811->active_a,
sl811             699 drivers/usb/host/sl811-hcd.c 				container_of(sl811->active_a
sl811             703 drivers/usb/host/sl811-hcd.c 			sl811->active_a = NULL;
sl811             706 drivers/usb/host/sl811-hcd.c 		if (sl811->active_b) {
sl811             707 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL811_EP_B(SL11H_HOSTCTLREG), 0);
sl811             708 drivers/usb/host/sl811-hcd.c 			finish_request(sl811, sl811->active_b,
sl811             709 drivers/usb/host/sl811-hcd.c 				container_of(sl811->active_b
sl811             713 drivers/usb/host/sl811-hcd.c 			sl811->active_b = NULL;
sl811             721 drivers/usb/host/sl811-hcd.c 			sl811->port1 &= ~USB_PORT_STAT_CONNECTION;
sl811             723 drivers/usb/host/sl811-hcd.c 			sl811->port1 |= USB_PORT_STAT_CONNECTION;
sl811             725 drivers/usb/host/sl811-hcd.c 		sl811->port1 |= USB_PORT_STAT_C_CONNECTION << 16;
sl811             728 drivers/usb/host/sl811-hcd.c 		if (sl811->port1 & USB_PORT_STAT_SUSPEND) {
sl811             730 drivers/usb/host/sl811-hcd.c 			sl811->port1 |= USB_PORT_STAT_C_SUSPEND << 16;
sl811             731 drivers/usb/host/sl811-hcd.c 			sl811->stat_wake++;
sl811             737 drivers/usb/host/sl811-hcd.c 		if (sl811->port1 & USB_PORT_STAT_ENABLE)
sl811             738 drivers/usb/host/sl811-hcd.c 			start_transfer(sl811);
sl811             744 drivers/usb/host/sl811-hcd.c 	if (sl811->periodic_count == 0 && list_empty(&sl811->async))
sl811             745 drivers/usb/host/sl811-hcd.c 		sofirq_off(sl811);
sl811             746 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
sl811             748 drivers/usb/host/sl811-hcd.c 	spin_unlock(&sl811->lock);
sl811             764 drivers/usb/host/sl811-hcd.c static int balance(struct sl811 *sl811, u16 period, u16 load)
sl811             772 drivers/usb/host/sl811-hcd.c 		if (branch < 0 || sl811->load[branch] > sl811->load[i]) {
sl811             776 drivers/usb/host/sl811-hcd.c 				if ((sl811->load[j] + load)
sl811             795 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811 = hcd_to_sl811(hcd);
sl811             819 drivers/usb/host/sl811-hcd.c 	spin_lock_irqsave(&sl811->lock, flags);
sl811             822 drivers/usb/host/sl811-hcd.c 	if (!(sl811->port1 & USB_PORT_STAT_ENABLE)
sl811             868 drivers/usb/host/sl811-hcd.c 			if (!(sl811->ctrl1 & SL11H_CTL1MASK_LSPD))
sl811             896 drivers/usb/host/sl811-hcd.c 			list_add_tail(&ep->schedule, &sl811->async);
sl811             907 drivers/usb/host/sl811-hcd.c 			urb->start_frame = (sl811->frame & (PERIODIC_SIZE - 1))
sl811             912 drivers/usb/host/sl811-hcd.c 		retval = balance(sl811, ep->period, ep->load);
sl811             917 drivers/usb/host/sl811-hcd.c 		urb->start_frame = (sl811->frame & (PERIODIC_SIZE - 1))
sl811             927 drivers/usb/host/sl811-hcd.c 			struct sl811h_ep	**prev = &sl811->periodic[i];
sl811             940 drivers/usb/host/sl811-hcd.c 			sl811->load[i] += ep->load;
sl811             942 drivers/usb/host/sl811-hcd.c 		sl811->periodic_count++;
sl811             944 drivers/usb/host/sl811-hcd.c 		sofirq_on(sl811);
sl811             948 drivers/usb/host/sl811-hcd.c 	start_transfer(sl811);
sl811             949 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
sl811             954 drivers/usb/host/sl811-hcd.c 	spin_unlock_irqrestore(&sl811->lock, flags);
sl811             960 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811 = hcd_to_sl811(hcd);
sl811             966 drivers/usb/host/sl811-hcd.c 	spin_lock_irqsave(&sl811->lock, flags);
sl811             981 drivers/usb/host/sl811-hcd.c 		} else if (sl811->active_a == ep) {
sl811             982 drivers/usb/host/sl811-hcd.c 			if (time_before_eq(sl811->jiffies_a, jiffies)) {
sl811             986 drivers/usb/host/sl811-hcd.c 					sl811_read(sl811,
sl811             988 drivers/usb/host/sl811-hcd.c 					sl811_read(sl811,
sl811             990 drivers/usb/host/sl811-hcd.c 				sl811_write(sl811, SL811_EP_A(SL11H_HOSTCTLREG),
sl811             992 drivers/usb/host/sl811-hcd.c 				sl811->active_a = NULL;
sl811             996 drivers/usb/host/sl811-hcd.c 		} else if (sl811->active_b == ep) {
sl811             997 drivers/usb/host/sl811-hcd.c 			if (time_before_eq(sl811->jiffies_a, jiffies)) {
sl811            1001 drivers/usb/host/sl811-hcd.c 					sl811_read(sl811,
sl811            1003 drivers/usb/host/sl811-hcd.c 					sl811_read(sl811,
sl811            1005 drivers/usb/host/sl811-hcd.c 				sl811_write(sl811, SL811_EP_B(SL11H_HOSTCTLREG),
sl811            1007 drivers/usb/host/sl811-hcd.c 				sl811->active_b = NULL;
sl811            1016 drivers/usb/host/sl811-hcd.c 			finish_request(sl811, ep, urb, 0);
sl811            1018 drivers/usb/host/sl811-hcd.c 			dev_dbg(sl811_to_hcd(sl811)->self.controller,
sl811            1020 drivers/usb/host/sl811-hcd.c 				(sl811->active_a == ep) ? "A" : "B");
sl811            1024 drivers/usb/host/sl811-hcd.c 	spin_unlock_irqrestore(&sl811->lock, flags);
sl811            1049 drivers/usb/host/sl811-hcd.c 	struct sl811 *sl811 = hcd_to_sl811(hcd);
sl811            1055 drivers/usb/host/sl811-hcd.c 	return sl811->frame;
sl811            1065 drivers/usb/host/sl811-hcd.c 	struct sl811 *sl811 = hcd_to_sl811(hcd);
sl811            1073 drivers/usb/host/sl811-hcd.c 	if (!timer_pending(&sl811->timer)) {
sl811            1075 drivers/usb/host/sl811-hcd.c 			sl811->stat_lost++;
sl811            1080 drivers/usb/host/sl811-hcd.c 	if (!(sl811->port1 & (0xffff << 16)))
sl811            1090 drivers/usb/host/sl811-hcd.c 	struct sl811			*sl811,
sl811            1103 drivers/usb/host/sl811-hcd.c 	if (sl811->board && sl811->board->port_power) {
sl811            1104 drivers/usb/host/sl811-hcd.c 		desc->bPwrOn2PwrGood = sl811->board->potpg;
sl811            1124 drivers/usb/host/sl811-hcd.c 	struct sl811 	*sl811 = from_timer(sl811, t, timer);
sl811            1127 drivers/usb/host/sl811-hcd.c 	u8		signaling = sl811->ctrl1 & SL11H_CTL1MASK_FORCE;
sl811            1132 drivers/usb/host/sl811-hcd.c 	spin_lock_irqsave(&sl811->lock, flags);
sl811            1135 drivers/usb/host/sl811-hcd.c 	sl811->ctrl1 &= ~SL11H_CTL1MASK_FORCE;
sl811            1136 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
sl811            1139 drivers/usb/host/sl811-hcd.c 	irqstat = sl811_read(sl811, SL11H_IRQ_STATUS);
sl811            1143 drivers/usb/host/sl811-hcd.c 		dev_dbg(sl811_to_hcd(sl811)->self.controller, "end reset\n");
sl811            1144 drivers/usb/host/sl811-hcd.c 		sl811->port1 = (USB_PORT_STAT_C_RESET << 16)
sl811            1146 drivers/usb/host/sl811-hcd.c 		sl811->ctrl1 = 0;
sl811            1152 drivers/usb/host/sl811-hcd.c 		dev_dbg(sl811_to_hcd(sl811)->self.controller, "end resume\n");
sl811            1153 drivers/usb/host/sl811-hcd.c 		sl811->port1 &= ~USB_PORT_STAT_SUSPEND;
sl811            1156 drivers/usb/host/sl811-hcd.c 		dev_dbg(sl811_to_hcd(sl811)->self.controller,
sl811            1160 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_IRQ_STATUS, irqstat);
sl811            1164 drivers/usb/host/sl811-hcd.c 		if (sl811->port1 & USB_PORT_STAT_CONNECTION)
sl811            1165 drivers/usb/host/sl811-hcd.c 			sl811->port1 |= (USB_PORT_STAT_C_CONNECTION << 16)
sl811            1167 drivers/usb/host/sl811-hcd.c 		sl811->port1 &= ~mask;
sl811            1168 drivers/usb/host/sl811-hcd.c 		sl811->irq_enable = SL11H_INTMASK_INSRMV;
sl811            1170 drivers/usb/host/sl811-hcd.c 		sl811->port1 |= mask;
sl811            1172 drivers/usb/host/sl811-hcd.c 			sl811->port1 &= ~USB_PORT_STAT_LOW_SPEED;
sl811            1173 drivers/usb/host/sl811-hcd.c 		sl811->irq_enable = SL11H_INTMASK_INSRMV | SL11H_INTMASK_RD;
sl811            1176 drivers/usb/host/sl811-hcd.c 	if (sl811->port1 & USB_PORT_STAT_CONNECTION) {
sl811            1179 drivers/usb/host/sl811-hcd.c 		sl811->irq_enable |= SL11H_INTMASK_DONE_A;
sl811            1181 drivers/usb/host/sl811-hcd.c 		sl811->irq_enable |= SL11H_INTMASK_DONE_B;
sl811            1183 drivers/usb/host/sl811-hcd.c 		if (sl811->port1 & USB_PORT_STAT_LOW_SPEED) {
sl811            1184 drivers/usb/host/sl811-hcd.c 			sl811->ctrl1 |= SL11H_CTL1MASK_LSPD;
sl811            1189 drivers/usb/host/sl811-hcd.c 		sl811->ctrl1 |= SL11H_CTL1MASK_SOF_ENA;
sl811            1190 drivers/usb/host/sl811-hcd.c 		sl811_write(sl811, SL11H_SOFLOWREG, 0xe0);
sl811            1191 drivers/usb/host/sl811-hcd.c 		sl811_write(sl811, SL811HS_CTLREG2, ctrl2);
sl811            1194 drivers/usb/host/sl811-hcd.c 		sl811_write(sl811, SL811_EP_A(SL11H_BUFLNTHREG), 0);
sl811            1195 drivers/usb/host/sl811-hcd.c 		writeb(SL_SOF, sl811->data_reg);
sl811            1196 drivers/usb/host/sl811-hcd.c 		writeb(0, sl811->data_reg);
sl811            1197 drivers/usb/host/sl811-hcd.c 		sl811_write(sl811, SL811_EP_A(SL11H_HOSTCTLREG),
sl811            1202 drivers/usb/host/sl811-hcd.c 		sl811->ctrl1 = 0;
sl811            1204 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
sl811            1207 drivers/usb/host/sl811-hcd.c 	sl811_write(sl811, SL11H_IRQ_ENABLE, sl811->irq_enable);
sl811            1208 drivers/usb/host/sl811-hcd.c 	spin_unlock_irqrestore(&sl811->lock, flags);
sl811            1220 drivers/usb/host/sl811-hcd.c 	struct sl811	*sl811 = hcd_to_sl811(hcd);
sl811            1224 drivers/usb/host/sl811-hcd.c 	spin_lock_irqsave(&sl811->lock, flags);
sl811            1243 drivers/usb/host/sl811-hcd.c 			sl811->port1 &= USB_PORT_STAT_POWER;
sl811            1244 drivers/usb/host/sl811-hcd.c 			sl811->ctrl1 = 0;
sl811            1245 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
sl811            1246 drivers/usb/host/sl811-hcd.c 			sl811->irq_enable = SL11H_INTMASK_INSRMV;
sl811            1247 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL11H_IRQ_ENABLE,
sl811            1248 drivers/usb/host/sl811-hcd.c 						sl811->irq_enable);
sl811            1251 drivers/usb/host/sl811-hcd.c 			if (!(sl811->port1 & USB_PORT_STAT_SUSPEND))
sl811            1256 drivers/usb/host/sl811-hcd.c 			sl811->irq_enable = 0;
sl811            1257 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL11H_IRQ_ENABLE,
sl811            1258 drivers/usb/host/sl811-hcd.c 						sl811->irq_enable);
sl811            1259 drivers/usb/host/sl811-hcd.c 			sl811->ctrl1 |= SL11H_CTL1MASK_K;
sl811            1260 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
sl811            1262 drivers/usb/host/sl811-hcd.c 			mod_timer(&sl811->timer, jiffies
sl811            1266 drivers/usb/host/sl811-hcd.c 			port_power(sl811, 0);
sl811            1277 drivers/usb/host/sl811-hcd.c 		sl811->port1 &= ~(1 << wValue);
sl811            1280 drivers/usb/host/sl811-hcd.c 		sl811h_hub_descriptor(sl811, (struct usb_hub_descriptor *) buf);
sl811            1288 drivers/usb/host/sl811-hcd.c 		put_unaligned_le32(sl811->port1, buf);
sl811            1294 drivers/usb/host/sl811-hcd.c 			sl811->port1);
sl811            1301 drivers/usb/host/sl811-hcd.c 			if (sl811->port1 & USB_PORT_STAT_RESET)
sl811            1303 drivers/usb/host/sl811-hcd.c 			if (!(sl811->port1 & USB_PORT_STAT_ENABLE))
sl811            1307 drivers/usb/host/sl811-hcd.c 			sl811->ctrl1 &= ~SL11H_CTL1MASK_SOF_ENA;
sl811            1308 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
sl811            1311 drivers/usb/host/sl811-hcd.c 			port_power(sl811, 1);
sl811            1314 drivers/usb/host/sl811-hcd.c 			if (sl811->port1 & USB_PORT_STAT_SUSPEND)
sl811            1316 drivers/usb/host/sl811-hcd.c 			if (!(sl811->port1 & USB_PORT_STAT_POWER))
sl811            1320 drivers/usb/host/sl811-hcd.c 			sl811->irq_enable = 0;
sl811            1321 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL11H_IRQ_ENABLE,
sl811            1322 drivers/usb/host/sl811-hcd.c 						sl811->irq_enable);
sl811            1323 drivers/usb/host/sl811-hcd.c 			sl811->ctrl1 = SL11H_CTL1MASK_SE0;
sl811            1324 drivers/usb/host/sl811-hcd.c 			sl811_write(sl811, SL11H_CTLREG1, sl811->ctrl1);
sl811            1325 drivers/usb/host/sl811-hcd.c 			sl811->port1 |= USB_PORT_STAT_RESET;
sl811            1326 drivers/usb/host/sl811-hcd.c 			mod_timer(&sl811->timer, jiffies
sl811            1332 drivers/usb/host/sl811-hcd.c 		sl811->port1 |= 1 << wValue;
sl811            1341 drivers/usb/host/sl811-hcd.c 	spin_unlock_irqrestore(&sl811->lock, flags);
sl811            1386 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811 = s->private;
sl811            1391 drivers/usb/host/sl811-hcd.c 		sl811_to_hcd(sl811)->product_desc,
sl811            1393 drivers/usb/host/sl811-hcd.c 		sl811->port1);
sl811            1395 drivers/usb/host/sl811-hcd.c 	seq_printf(s, "insert/remove: %ld\n", sl811->stat_insrmv);
sl811            1398 drivers/usb/host/sl811-hcd.c 		sl811->stat_a, sl811->stat_b,
sl811            1399 drivers/usb/host/sl811-hcd.c 		sl811->stat_wake, sl811->stat_sof,
sl811            1400 drivers/usb/host/sl811-hcd.c 		sl811->stat_overrun, sl811->stat_lost);
sl811            1402 drivers/usb/host/sl811-hcd.c 	spin_lock_irq(&sl811->lock);
sl811            1404 drivers/usb/host/sl811-hcd.c 	if (sl811->ctrl1 & SL11H_CTL1MASK_SUSPEND)
sl811            1407 drivers/usb/host/sl811-hcd.c 		u8	t = sl811_read(sl811, SL11H_CTLREG1);
sl811            1421 drivers/usb/host/sl811-hcd.c 				sl811_read(sl811, SL11H_IRQ_ENABLE));
sl811            1423 drivers/usb/host/sl811-hcd.c 				sl811_read(sl811, SL11H_IRQ_STATUS));
sl811            1425 drivers/usb/host/sl811-hcd.c 				sl811_read(sl811, SL11H_SOFTMRREG) << 6);
sl811            1428 drivers/usb/host/sl811-hcd.c 	seq_printf(s, "A: qh%p ctl %02x sts %02x\n", sl811->active_a,
sl811            1429 drivers/usb/host/sl811-hcd.c 		sl811_read(sl811, SL811_EP_A(SL11H_HOSTCTLREG)),
sl811            1430 drivers/usb/host/sl811-hcd.c 		sl811_read(sl811, SL811_EP_A(SL11H_PKTSTATREG)));
sl811            1431 drivers/usb/host/sl811-hcd.c 	seq_printf(s, "B: qh%p ctl %02x sts %02x\n", sl811->active_b,
sl811            1432 drivers/usb/host/sl811-hcd.c 		sl811_read(sl811, SL811_EP_B(SL11H_HOSTCTLREG)),
sl811            1433 drivers/usb/host/sl811-hcd.c 		sl811_read(sl811, SL811_EP_B(SL11H_PKTSTATREG)));
sl811            1435 drivers/usb/host/sl811-hcd.c 	list_for_each_entry (ep, &sl811->async, schedule) {
sl811            1440 drivers/usb/host/sl811-hcd.c 			(ep == sl811->active_a) ? "(A) " : "",
sl811            1441 drivers/usb/host/sl811-hcd.c 			(ep == sl811->active_b) ? "(B) " : "",
sl811            1458 drivers/usb/host/sl811-hcd.c 	if (!list_empty(&sl811->async))
sl811            1464 drivers/usb/host/sl811-hcd.c 		ep = sl811->periodic[i];
sl811            1467 drivers/usb/host/sl811-hcd.c 		seq_printf(s, "%2d [%3d]:\n", i, sl811->load[i]);
sl811            1474 drivers/usb/host/sl811-hcd.c 				(ep == sl811->active_a) ? "(A) " : "",
sl811            1475 drivers/usb/host/sl811-hcd.c 				(ep == sl811->active_b) ? "(B) " : "",
sl811            1489 drivers/usb/host/sl811-hcd.c 	spin_unlock_irq(&sl811->lock);
sl811            1497 drivers/usb/host/sl811-hcd.c static void create_debug_file(struct sl811 *sl811)
sl811            1499 drivers/usb/host/sl811-hcd.c 	sl811->debug_file = debugfs_create_file("sl811h", S_IRUGO,
sl811            1500 drivers/usb/host/sl811-hcd.c 						usb_debug_root, sl811,
sl811            1504 drivers/usb/host/sl811-hcd.c static void remove_debug_file(struct sl811 *sl811)
sl811            1506 drivers/usb/host/sl811-hcd.c 	debugfs_remove(sl811->debug_file);
sl811            1514 drivers/usb/host/sl811-hcd.c 	struct sl811	*sl811 = hcd_to_sl811(hcd);
sl811            1519 drivers/usb/host/sl811-hcd.c 	spin_lock_irqsave(&sl811->lock, flags);
sl811            1520 drivers/usb/host/sl811-hcd.c 	port_power(sl811, 0);
sl811            1521 drivers/usb/host/sl811-hcd.c 	spin_unlock_irqrestore(&sl811->lock, flags);
sl811            1527 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811 = hcd_to_sl811(hcd);
sl811            1532 drivers/usb/host/sl811-hcd.c 	if (sl811->board) {
sl811            1535 drivers/usb/host/sl811-hcd.c 				sl811->board->can_wakeup);
sl811            1536 drivers/usb/host/sl811-hcd.c 		hcd->power_budget = sl811->board->power * 2;
sl811            1540 drivers/usb/host/sl811-hcd.c 	port_power(sl811, 1);
sl811            1549 drivers/usb/host/sl811-hcd.c 	.hcd_priv_size =	sizeof(struct sl811),
sl811            1588 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811 = hcd_to_sl811(hcd);
sl811            1591 drivers/usb/host/sl811-hcd.c 	remove_debug_file(sl811);
sl811            1597 drivers/usb/host/sl811-hcd.c 		iounmap(sl811->data_reg);
sl811            1601 drivers/usb/host/sl811-hcd.c 		iounmap(sl811->addr_reg);
sl811            1611 drivers/usb/host/sl811-hcd.c 	struct sl811		*sl811;
sl811            1673 drivers/usb/host/sl811-hcd.c 	sl811 = hcd_to_sl811(hcd);
sl811            1675 drivers/usb/host/sl811-hcd.c 	spin_lock_init(&sl811->lock);
sl811            1676 drivers/usb/host/sl811-hcd.c 	INIT_LIST_HEAD(&sl811->async);
sl811            1677 drivers/usb/host/sl811-hcd.c 	sl811->board = dev_get_platdata(&dev->dev);
sl811            1678 drivers/usb/host/sl811-hcd.c 	timer_setup(&sl811->timer, sl811h_timer, 0);
sl811            1679 drivers/usb/host/sl811-hcd.c 	sl811->addr_reg = addr_reg;
sl811            1680 drivers/usb/host/sl811-hcd.c 	sl811->data_reg = data_reg;
sl811            1682 drivers/usb/host/sl811-hcd.c 	spin_lock_irq(&sl811->lock);
sl811            1683 drivers/usb/host/sl811-hcd.c 	port_power(sl811, 0);
sl811            1684 drivers/usb/host/sl811-hcd.c 	spin_unlock_irq(&sl811->lock);
sl811            1687 drivers/usb/host/sl811-hcd.c 	tmp = sl811_read(sl811, SL11H_HWREVREG);
sl811            1718 drivers/usb/host/sl811-hcd.c 	create_debug_file(sl811);
sl811            1744 drivers/usb/host/sl811-hcd.c 	struct sl811	*sl811 = hcd_to_sl811(hcd);
sl811            1754 drivers/usb/host/sl811-hcd.c 		port_power(sl811, 0);
sl811            1764 drivers/usb/host/sl811-hcd.c 	struct sl811	*sl811 = hcd_to_sl811(hcd);
sl811            1769 drivers/usb/host/sl811-hcd.c 	if (!sl811->port1 || !device_can_wakeup(&hcd->self.root_hub->dev)) {
sl811            1770 drivers/usb/host/sl811-hcd.c 		sl811->port1 = 0;
sl811            1771 drivers/usb/host/sl811-hcd.c 		port_power(sl811, 1);
sl811             159 drivers/usb/host/sl811.h static inline struct sl811 *hcd_to_sl811(struct usb_hcd *hcd)
sl811             161 drivers/usb/host/sl811.h 	return (struct sl811 *) (hcd->hcd_priv);
sl811             164 drivers/usb/host/sl811.h static inline struct usb_hcd *sl811_to_hcd(struct sl811 *sl811)
sl811             166 drivers/usb/host/sl811.h 	return container_of((void *) sl811, struct usb_hcd, hcd_priv);
sl811             198 drivers/usb/host/sl811.h static inline u8 sl811_read(struct sl811 *sl811, int reg)
sl811             200 drivers/usb/host/sl811.h 	writeb(reg, sl811->addr_reg);
sl811             201 drivers/usb/host/sl811.h 	return readb(sl811->data_reg);
sl811             204 drivers/usb/host/sl811.h static inline void sl811_write(struct sl811 *sl811, int reg, u8 val)
sl811             206 drivers/usb/host/sl811.h 	writeb(reg, sl811->addr_reg);
sl811             207 drivers/usb/host/sl811.h 	writeb(val, sl811->data_reg);
sl811             211 drivers/usb/host/sl811.h sl811_write_buf(struct sl811 *sl811, int addr, const void *buf, size_t count)
sl811             218 drivers/usb/host/sl811.h 	writeb(addr, sl811->addr_reg);
sl811             221 drivers/usb/host/sl811.h 	data_reg = sl811->data_reg;
sl811             228 drivers/usb/host/sl811.h sl811_read_buf(struct sl811 *sl811, int addr, void *buf, size_t count)
sl811             235 drivers/usb/host/sl811.h 	writeb(addr, sl811->addr_reg);
sl811             238 drivers/usb/host/sl811.h 	data_reg = sl811->data_reg;