Lines Matching refs:fhci

91 				fhci_dbg(usb->fhci, "td err fu\n");  in fhci_transaction_confirm()
95 fhci_dbg(usb->fhci, "td err f!u\n"); in fhci_transaction_confirm()
98 fhci_dbg(usb->fhci, "td err !f\n"); in fhci_transaction_confirm()
106 fhci_vdbg(usb->fhci, "td nack\n"); in fhci_transaction_confirm()
135 mode = in_8(&usb->fhci->regs->usb_usmod); in fhci_flush_all_transmissions()
136 clrbits8(&usb->fhci->regs->usb_usmod, USB_MODE_EN); in fhci_flush_all_transmissions()
150 out_be16(&usb->fhci->regs->usb_usber, 0xffff); in fhci_flush_all_transmissions()
152 out_8(&usb->fhci->regs->usb_usmod, mode | USB_MODE_EN); in fhci_flush_all_transmissions()
200 fhci_vdbg(usb->fhci, "not enough space in this frame: " in add_packet()
211 fhci_dbg(usb->fhci, "not enough time in this frame\n"); in add_packet()
218 fhci_dbg(usb->fhci, "there is no empty frame\n"); in add_packet()
252 fhci_err(usb->fhci, "host transaction failed\n"); in add_packet()
341 struct fhci_hcd *fhci = usb->fhci; in rotate_frames() local
344 if ((((in_be16(&fhci->pram->frame_num) & 0x07ff) - in rotate_frames()
352 usb->actual_frame->frame_num = in_be16(&fhci->pram->frame_num) & 0x7ff; in rotate_frames()
403 static void sof_interrupt(struct fhci_hcd *fhci) in sof_interrupt() argument
405 struct fhci_usb *usb = fhci->usb_lld; in sof_interrupt()
416 out_be16(&usb->fhci->regs->usb_usbmr, usb->saved_msk); in sof_interrupt()
419 gtm_set_exact_timer16(fhci->timer, usb->max_frame_usage, false); in sof_interrupt()
428 void fhci_device_disconnected_interrupt(struct fhci_hcd *fhci) in fhci_device_disconnected_interrupt() argument
430 struct fhci_usb *usb = fhci->usb_lld; in fhci_device_disconnected_interrupt()
432 fhci_dbg(fhci, "-> %s\n", __func__); in fhci_device_disconnected_interrupt()
435 clrbits8(&usb->fhci->regs->usb_usmod, USB_MODE_LSS); in fhci_device_disconnected_interrupt()
438 fhci_stop_sof_timer(fhci); in fhci_device_disconnected_interrupt()
442 out_be16(&usb->fhci->regs->usb_usbmr, usb->saved_msk); in fhci_device_disconnected_interrupt()
449 fhci_dbg(fhci, "<- %s\n", __func__); in fhci_device_disconnected_interrupt()
453 void fhci_device_connected_interrupt(struct fhci_hcd *fhci) in fhci_device_connected_interrupt() argument
456 struct fhci_usb *usb = fhci->usb_lld; in fhci_device_connected_interrupt()
460 fhci_dbg(fhci, "-> %s\n", __func__); in fhci_device_connected_interrupt()
463 state = fhci_ioports_check_bus_state(fhci); in fhci_device_connected_interrupt()
467 ret = qe_usb_clock_set(fhci->lowspeed_clk, USB_CLOCK >> 3); in fhci_device_connected_interrupt()
469 fhci_warn(fhci, "Low-Speed device is not supported, " in fhci_device_connected_interrupt()
475 setbits8(&usb->fhci->regs->usb_usmod, USB_MODE_LSS); in fhci_device_connected_interrupt()
485 ret = qe_usb_clock_set(fhci->fullspeed_clk, USB_CLOCK); in fhci_device_connected_interrupt()
487 fhci_warn(fhci, "Full-Speed device is not supported, " in fhci_device_connected_interrupt()
493 clrbits8(&usb->fhci->regs->usb_usmod, USB_MODE_LSS); in fhci_device_connected_interrupt()
505 fhci_dbg(fhci, "<- %s\n", __func__); in fhci_device_connected_interrupt()
511 struct fhci_hcd *fhci = hcd_to_fhci(hcd); in fhci_frame_limit_timer_irq() local
512 struct fhci_usb *usb = fhci->usb_lld; in fhci_frame_limit_timer_irq()
514 spin_lock(&fhci->lock); in fhci_frame_limit_timer_irq()
516 gtm_set_exact_timer16(fhci->timer, 1000, false); in fhci_frame_limit_timer_irq()
525 spin_unlock(&fhci->lock); in fhci_frame_limit_timer_irq()
533 fhci_dbg(usb->fhci, "-> %s\n", __func__); in abort_transmission()
537 out_8(&usb->fhci->regs->usb_uscom, USB_CMD_FLUSH_FIFO | EP_ZERO); in abort_transmission()
543 fhci_dbg(usb->fhci, "<- %s\n", __func__); in abort_transmission()
548 struct fhci_hcd *fhci = hcd_to_fhci(hcd); in fhci_irq() local
553 spin_lock_irqsave(&fhci->lock, flags); in fhci_irq()
555 usb = fhci->usb_lld; in fhci_irq()
557 usb_er |= in_be16(&usb->fhci->regs->usb_usber) & in fhci_irq()
558 in_be16(&usb->fhci->regs->usb_usbmr); in fhci_irq()
561 out_be16(&usb->fhci->regs->usb_usber, usb_er); in fhci_irq()
563 fhci_dbg_isr(fhci, usb_er); in fhci_irq()
568 fhci_device_disconnected_interrupt(fhci); in fhci_irq()
575 out_be16(&usb->fhci->regs->usb_usber, in fhci_irq()
578 if (fhci_ioports_check_bus_state(fhci) == 1) in fhci_irq()
579 fhci_device_connected_interrupt(fhci); in fhci_irq()
585 abort_transmission(fhci->usb_lld); in fhci_irq()
590 sof_interrupt(fhci); in fhci_irq()
595 fhci_tx_conf_interrupt(fhci->usb_lld); in fhci_irq()
600 fhci_tx_conf_interrupt(fhci->usb_lld); in fhci_irq()
607 fhci_device_connected_interrupt(fhci); in fhci_irq()
613 out_be16(&usb->fhci->regs->usb_usbmr, in fhci_irq()
616 fhci_dbg_isr(fhci, -1); in fhci_irq()
622 spin_unlock_irqrestore(&fhci->lock, flags); in fhci_irq()
641 struct fhci_hcd *fhci = (struct fhci_hcd *)data; in process_done_list() local
643 disable_irq(fhci->timer->irq); in process_done_list()
644 disable_irq(fhci_to_hcd(fhci)->irq); in process_done_list()
645 spin_lock(&fhci->lock); in process_done_list()
647 td = fhci_remove_td_from_done_list(fhci->hc_list); in process_done_list()
664 fhci_urb_complete_free(fhci, urb); in process_done_list()
667 fhci_del_ed_list(fhci, ed); in process_done_list()
672 fhci_del_ed_list(fhci, ed); in process_done_list()
676 td = fhci_remove_td_from_done_list(fhci->hc_list); in process_done_list()
679 spin_unlock(&fhci->lock); in process_done_list()
680 enable_irq(fhci->timer->irq); in process_done_list()
681 enable_irq(fhci_to_hcd(fhci)->irq); in process_done_list()
687 u32 fhci_transfer_confirm_callback(struct fhci_hcd *fhci) in fhci_transfer_confirm_callback() argument
689 if (!fhci->process_done_task->state) in fhci_transfer_confirm_callback()
690 tasklet_schedule(fhci->process_done_task); in fhci_transfer_confirm_callback()
701 void fhci_queue_urb(struct fhci_hcd *fhci, struct urb *urb) in fhci_queue_urb() argument
713 ed = fhci_get_empty_ed(fhci); in fhci_queue_urb()
737 fhci_dbg(fhci, "new ep speed=%d max_pkt_size=%d\n", in fhci_queue_urb()
745 get_frame_num(fhci); in fhci_queue_urb()
779 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt, in fhci_queue_urb()
790 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt, in fhci_queue_urb()
798 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt, in fhci_queue_urb()
806 urb->start_frame = get_frame_num(fhci) + 1; in fhci_queue_urb()
807 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, in fhci_queue_urb()
817 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, FHCI_TA_SETUP, in fhci_queue_urb()
822 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, in fhci_queue_urb()
831 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, in fhci_queue_urb()
836 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, in fhci_queue_urb()
853 td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt, in fhci_queue_urb()
880 list_add(&ed->node, &fhci->hc_list->ctrl_list); in fhci_queue_urb()
883 list_add(&ed->node, &fhci->hc_list->bulk_list); in fhci_queue_urb()
886 list_add(&ed->node, &fhci->hc_list->intr_list); in fhci_queue_urb()
889 list_add(&ed->node, &fhci->hc_list->iso_list); in fhci_queue_urb()
897 fhci->active_urbs++; in fhci_queue_urb()