• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/usb/host/

Lines Matching refs:fhci

30 #include "fhci.h"
91 fhci_dbg(usb->fhci, "td err fu\n");
95 fhci_dbg(usb->fhci, "td err f!u\n");
98 fhci_dbg(usb->fhci, "td err !f\n");
106 fhci_vdbg(usb->fhci, "td nack\n");
135 mode = in_8(&usb->fhci->regs->usb_mod);
136 clrbits8(&usb->fhci->regs->usb_mod, USB_MODE_EN);
150 out_be16(&usb->fhci->regs->usb_event, 0xffff);
152 out_8(&usb->fhci->regs->usb_mod, mode | USB_MODE_EN);
200 fhci_vdbg(usb->fhci, "not enough space in this frame: "
211 fhci_dbg(usb->fhci, "not enough time in this frame\n");
218 fhci_dbg(usb->fhci, "there is no empty frame\n");
252 fhci_err(usb->fhci, "host transaction failed\n");
342 struct fhci_hcd *fhci = usb->fhci;
345 if ((((in_be16(&fhci->pram->frame_num) & 0x07ff) -
353 usb->actual_frame->frame_num = in_be16(&fhci->pram->frame_num) & 0x7ff;
404 static void sof_interrupt(struct fhci_hcd *fhci)
406 struct fhci_usb *usb = fhci->usb_lld;
417 out_be16(&usb->fhci->regs->usb_mask, usb->saved_msk);
420 gtm_set_exact_timer16(fhci->timer, usb->max_frame_usage, false);
429 void fhci_device_disconnected_interrupt(struct fhci_hcd *fhci)
431 struct fhci_usb *usb = fhci->usb_lld;
433 fhci_dbg(fhci, "-> %s\n", __func__);
436 clrbits8(&usb->fhci->regs->usb_mod, USB_MODE_LSS);
439 fhci_stop_sof_timer(fhci);
443 out_be16(&usb->fhci->regs->usb_mask, usb->saved_msk);
450 fhci_dbg(fhci, "<- %s\n", __func__);
454 void fhci_device_connected_interrupt(struct fhci_hcd *fhci)
457 struct fhci_usb *usb = fhci->usb_lld;
461 fhci_dbg(fhci, "-> %s\n", __func__);
464 state = fhci_ioports_check_bus_state(fhci);
468 ret = qe_usb_clock_set(fhci->lowspeed_clk, USB_CLOCK >> 3);
470 fhci_warn(fhci, "Low-Speed device is not supported, "
476 setbits8(&usb->fhci->regs->usb_mod, USB_MODE_LSS);
486 ret = qe_usb_clock_set(fhci->fullspeed_clk, USB_CLOCK);
488 fhci_warn(fhci, "Full-Speed device is not supported, "
494 clrbits8(&usb->fhci->regs->usb_mod, USB_MODE_LSS);
506 fhci_dbg(fhci, "<- %s\n", __func__);
512 struct fhci_hcd *fhci = hcd_to_fhci(hcd);
513 struct fhci_usb *usb = fhci->usb_lld;
515 spin_lock(&fhci->lock);
517 gtm_set_exact_timer16(fhci->timer, 1000, false);
526 spin_unlock(&fhci->lock);
534 fhci_dbg(usb->fhci, "-> %s\n", __func__);
538 out_8(&usb->fhci->regs->usb_comm, USB_CMD_FLUSH_FIFO | EP_ZERO);
544 fhci_dbg(usb->fhci, "<- %s\n", __func__);
549 struct fhci_hcd *fhci = hcd_to_fhci(hcd);
554 spin_lock_irqsave(&fhci->lock, flags);
556 usb = fhci->usb_lld;
558 usb_er |= in_be16(&usb->fhci->regs->usb_event) &
559 in_be16(&usb->fhci->regs->usb_mask);
562 out_be16(&usb->fhci->regs->usb_event, usb_er);
564 fhci_dbg_isr(fhci, usb_er);
569 fhci_device_disconnected_interrupt(fhci);
576 out_be16(&usb->fhci->regs->usb_event,
579 if (fhci_ioports_check_bus_state(fhci) == 1)
580 fhci_device_connected_interrupt(fhci);
586 abort_transmission(fhci->usb_lld);
591 sof_interrupt(fhci);
596 fhci_tx_conf_interrupt(fhci->usb_lld);
601 fhci_tx_conf_interrupt(fhci->usb_lld);
608 fhci_device_connected_interrupt(fhci);
613 out_be16(&usb->fhci->regs->usb_mask,
616 fhci_dbg_isr(fhci, -1);
622 spin_unlock_irqrestore(&fhci->lock, flags);
641 struct fhci_hcd *fhci = (struct fhci_hcd *)data;
643 disable_irq(fhci->timer->irq);
644 disable_irq(fhci_to_hcd(fhci)->irq);
645 spin_lock(&fhci->lock);
647 td = fhci_remove_td_from_done_list(fhci->hc_list);
664 fhci_urb_complete_free(fhci, urb);
667 fhci_del_ed_list(fhci, ed);
672 fhci_del_ed_list(fhci, ed);
676 td = fhci_remove_td_from_done_list(fhci->hc_list);
679 spin_unlock(&fhci->lock);
680 enable_irq(fhci->timer->irq);
681 enable_irq(fhci_to_hcd(fhci)->irq);
687 u32 fhci_transfer_confirm_callback(struct fhci_hcd *fhci)
689 if (!fhci->process_done_task->state)
690 tasklet_schedule(fhci->process_done_task);
697 * fhci data structure for the Low level host controller
701 void fhci_queue_urb(struct fhci_hcd *fhci, struct urb *urb)
713 ed = fhci_get_empty_ed(fhci);
737 fhci_dbg(fhci, "new ep speed=%d max_pkt_size=%d\n",
744 get_frame_num(fhci);
775 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt,
786 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt,
794 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt,
802 urb->start_frame = get_frame_num(fhci) + 1;
803 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++,
812 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, FHCI_TA_SETUP,
816 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++,
822 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++,
833 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt,
860 list_add(&ed->node, &fhci->hc_list->ctrl_list);
863 list_add(&ed->node, &fhci->hc_list->bulk_list);
866 list_add(&ed->node, &fhci->hc_list->intr_list);
869 list_add(&ed->node, &fhci->hc_list->iso_list);
877 fhci->active_urbs++;