• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/usb/host/

Lines Matching refs:uhci

42 static int any_ports_active(struct uhci_hcd *uhci)
46 for (port = 0; port < uhci->rh_numports; ++port) {
47 if ((inw(uhci->io_addr + USBPORTSC1 + port * 2) &
49 test_bit(port, &uhci->port_c_suspend))
55 static inline int get_hub_status_data(struct uhci_hcd *uhci, char *buf)
70 for (port = 0; port < uhci->rh_numports; ++port) {
71 if ((inw(uhci->io_addr + USBPORTSC1 + port * 2) & mask) ||
72 test_bit(port, &uhci->port_c_suspend))
96 static void uhci_finish_suspend(struct uhci_hcd *uhci, int port,
104 if (test_bit(port, &uhci->resuming_ports))
105 set_bit(port, &uhci->port_c_suspend);
118 clear_bit(port, &uhci->resuming_ports);
136 static void uhci_check_ports(struct uhci_hcd *uhci)
142 for (port = 0; port < uhci->rh_numports; ++port) {
143 port_addr = uhci->io_addr + USBPORTSC1 + 2 * port;
146 if (time_after_eq(jiffies, uhci->ports_timeout)) {
152 if (to_pci_dev(uhci_dev(uhci))->vendor ==
165 if (!test_bit(port, &uhci->resuming_ports)) {
168 set_bit(port, &uhci->resuming_ports);
169 uhci->ports_timeout = jiffies +
174 mod_timer(&uhci_to_hcd(uhci)->rh_timer,
175 uhci->ports_timeout);
177 uhci->ports_timeout)) {
178 uhci_finish_suspend(uhci, port, port_addr);
186 struct uhci_hcd *uhci = hcd_to_uhci(hcd);
190 spin_lock_irqsave(&uhci->lock, flags);
192 uhci_scan_schedule(uhci);
193 if (!HCD_HW_ACCESSIBLE(hcd) || uhci->dead)
195 uhci_check_ports(uhci);
197 status = get_hub_status_data(uhci, buf);
199 switch (uhci->rh_state) {
203 if (status || uhci->resuming_ports)
210 wakeup_rh(uhci);
215 if (!any_ports_active(uhci)) {
216 uhci->rh_state = UHCI_RH_RUNNING_NODEVS;
217 uhci->auto_stop_time = jiffies + HZ;
223 if (any_ports_active(uhci))
224 uhci->rh_state = UHCI_RH_RUNNING;
225 else if (time_after_eq(jiffies, uhci->auto_stop_time))
226 suspend_rh(uhci, UHCI_RH_AUTO_STOPPED);
234 spin_unlock_irqrestore(&uhci->lock, flags);
242 struct uhci_hcd *uhci = hcd_to_uhci(hcd);
245 unsigned long port_addr = uhci->io_addr + USBPORTSC1 + 2 * port;
249 if (!HCD_HW_ACCESSIBLE(hcd) || uhci->dead)
252 spin_lock_irqsave(&uhci->lock, flags);
259 if (port >= uhci->rh_numports)
262 uhci_check_ports(uhci);
282 if (test_bit(port, &uhci->port_c_suspend)) {
286 if (test_bit(port, &uhci->resuming_ports))
306 dev_dbg(uhci_dev(uhci), "port %d portsc %04x,%02x\n",
323 if (port >= uhci->rh_numports)
334 uhci_finish_suspend(uhci, port, port_addr);
337 uhci->ports_timeout = jiffies + msecs_to_jiffies(50);
347 if (port >= uhci->rh_numports)
355 uhci_finish_suspend(uhci, port, port_addr);
364 uhci_finish_suspend(uhci, port, port_addr);
366 &uhci->resuming_ports)) {
374 uhci_finish_suspend(uhci, port,
378 uhci->ports_timeout = jiffies +
383 clear_bit(port, &uhci->port_c_suspend);
405 buf[2] = uhci->rh_numports;
411 spin_unlock_irqrestore(&uhci->lock, flags);