H A D | hcd_intr.c | 161 u32 grxsts, chnum, bcnt, dpid, pktsts; dwc2_rx_fifo_level_intr() local 168 chnum = (grxsts & GRXSTS_HCHNUM_MASK) >> GRXSTS_HCHNUM_SHIFT; dwc2_rx_fifo_level_intr() 169 chan = hsotg->hc_ptr_array[chnum]; dwc2_rx_fifo_level_intr() 181 dev_vdbg(hsotg->dev, " Ch num = %d\n", chnum); dwc2_rx_fifo_level_intr() 404 struct dwc2_host_chan *chan, int chnum, dwc2_get_actual_xfer_length() 411 hctsiz = dwc2_readl(hsotg->regs + HCTSIZ(chnum)); dwc2_get_actual_xfer_length() 452 struct dwc2_host_chan *chan, int chnum, dwc2_update_urb_state() 459 int xfer_length = dwc2_get_actual_xfer_length(hsotg, chan, chnum, qtd, dwc2_update_urb_state() 494 hctsiz = dwc2_readl(hsotg->regs + HCTSIZ(chnum)); dwc2_update_urb_state() 496 __func__, (chan->ep_is_in ? "IN" : "OUT"), chnum); dwc2_update_urb_state() 514 struct dwc2_host_chan *chan, int chnum, dwc2_hcd_save_data_toggle() 517 u32 hctsiz = dwc2_readl(hsotg->regs + HCTSIZ(chnum)); dwc2_hcd_save_data_toggle() 545 int chnum, struct dwc2_qtd *qtd, dwc2_update_isoc_urb_state() 560 chan, chnum, qtd, halt_status, NULL); dwc2_update_isoc_urb_state() 594 chan, chnum, qtd, halt_status, NULL); dwc2_update_isoc_urb_state() 856 int chnum, struct dwc2_qtd *qtd, dwc2_complete_non_periodic_xfer() 905 struct dwc2_host_chan *chan, int chnum, dwc2_complete_periodic_xfer() 909 u32 hctsiz = dwc2_readl(hsotg->regs + HCTSIZ(chnum)); dwc2_complete_periodic_xfer() 922 struct dwc2_host_chan *chan, int chnum, dwc2_xfercomp_isoc_split_in() 932 len = dwc2_get_actual_xfer_length(hsotg, chan, chnum, qtd, dwc2_xfercomp_isoc_split_in() 976 struct dwc2_host_chan *chan, int chnum, dwc2_hc_xfercomp_intr() 987 chnum); dwc2_hc_xfercomp_intr() 995 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, halt_status); dwc2_hc_xfercomp_intr() 1007 dwc2_xfercomp_isoc_split_in(hsotg, chan, chnum, dwc2_hc_xfercomp_intr() 1030 chnum, urb, qtd); dwc2_hc_xfercomp_intr() 1036 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, dwc2_hc_xfercomp_intr() 1050 dwc2_complete_non_periodic_xfer(hsotg, chan, chnum, qtd, dwc2_hc_xfercomp_intr() 1055 urb_xfer_done = dwc2_update_urb_state(hsotg, chan, chnum, urb, dwc2_hc_xfercomp_intr() 1064 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); dwc2_hc_xfercomp_intr() 1065 dwc2_complete_non_periodic_xfer(hsotg, chan, chnum, qtd, dwc2_hc_xfercomp_intr() 1070 urb_xfer_done = dwc2_update_urb_state(hsotg, chan, chnum, urb, dwc2_hc_xfercomp_intr() 1084 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); dwc2_hc_xfercomp_intr() 1085 dwc2_complete_periodic_xfer(hsotg, chan, chnum, qtd, dwc2_hc_xfercomp_intr() 1093 chnum, qtd, DWC2_HC_XFER_COMPLETE); dwc2_hc_xfercomp_intr() 1094 dwc2_complete_periodic_xfer(hsotg, chan, chnum, qtd, dwc2_hc_xfercomp_intr() 1100 disable_hc_int(hsotg, chnum, HCINTMSK_XFERCOMPL); dwc2_hc_xfercomp_intr() 1108 struct dwc2_host_chan *chan, int chnum, dwc2_hc_stall_intr() 1115 chnum); dwc2_hc_stall_intr() 1118 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, dwc2_hc_stall_intr() 1148 disable_hc_int(hsotg, chnum, HCINTMSK_STALL); dwc2_hc_stall_intr() 1158 struct dwc2_host_chan *chan, int chnum, dwc2_update_urb_state_abn() 1163 u32 xfer_length = dwc2_get_actual_xfer_length(hsotg, chan, chnum, dwc2_update_urb_state_abn() 1187 hctsiz = dwc2_readl(hsotg->regs + HCTSIZ(chnum)); dwc2_update_urb_state_abn() 1189 __func__, (chan->ep_is_in ? "IN" : "OUT"), chnum); dwc2_update_urb_state_abn() 1208 struct dwc2_host_chan *chan, int chnum, dwc2_hc_nak_intr() 1223 chnum); dwc2_hc_nak_intr() 1259 dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, dwc2_hc_nak_intr() 1261 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); dwc2_hc_nak_intr() 1285 disable_hc_int(hsotg, chnum, HCINTMSK_NAK); dwc2_hc_nak_intr() 1294 struct dwc2_host_chan *chan, int chnum, dwc2_hc_ack_intr() 1301 chnum); dwc2_hc_ack_intr() 1362 disable_hc_int(hsotg, chnum, HCINTMSK_ACK); dwc2_hc_ack_intr() 1373 struct dwc2_host_chan *chan, int chnum, dwc2_hc_nyet_intr() 1378 chnum); dwc2_hc_nyet_intr() 1437 dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, qtd, dwc2_hc_nyet_intr() 1439 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); dwc2_hc_nyet_intr() 1448 disable_hc_int(hsotg, chnum, HCINTMSK_NYET); dwc2_hc_nyet_intr() 1456 struct dwc2_host_chan *chan, int chnum, dwc2_hc_babble_intr() 1460 chnum); dwc2_hc_babble_intr() 1465 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, dwc2_hc_babble_intr() 1476 halt_status = dwc2_update_isoc_urb_state(hsotg, chan, chnum, dwc2_hc_babble_intr() 1482 disable_hc_int(hsotg, chnum, HCINTMSK_BBLERR); dwc2_hc_babble_intr() 1490 struct dwc2_host_chan *chan, int chnum, dwc2_hc_ahberr_intr() 1501 chnum); dwc2_hc_ahberr_intr() 1508 hcchar = dwc2_readl(hsotg->regs + HCCHAR(chnum)); dwc2_hc_ahberr_intr() 1509 hcsplt = dwc2_readl(hsotg->regs + HCSPLT(chnum)); dwc2_hc_ahberr_intr() 1510 hctsiz = dwc2_readl(hsotg->regs + HCTSIZ(chnum)); dwc2_hc_ahberr_intr() 1511 hc_dma = dwc2_readl(hsotg->regs + HCDMA(chnum)); dwc2_hc_ahberr_intr() 1513 dev_err(hsotg->dev, "AHB ERROR, Channel %d\n", chnum); dwc2_hc_ahberr_intr() 1570 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, dwc2_hc_ahberr_intr() 1585 disable_hc_int(hsotg, chnum, HCINTMSK_AHBERR); dwc2_hc_ahberr_intr() 1593 struct dwc2_host_chan *chan, int chnum, dwc2_hc_xacterr_intr() 1597 "--Host Channel %d Interrupt: Transaction Error--\n", chnum); dwc2_hc_xacterr_intr() 1602 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, dwc2_hc_xacterr_intr() 1613 dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, dwc2_hc_xacterr_intr() 1615 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); dwc2_hc_xacterr_intr() 1637 chnum, qtd, DWC2_HC_XFER_XACT_ERR); dwc2_hc_xacterr_intr() 1644 disable_hc_int(hsotg, chnum, HCINTMSK_XACTERR); dwc2_hc_xacterr_intr() 1652 struct dwc2_host_chan *chan, int chnum, dwc2_hc_frmovrun_intr() 1659 chnum); dwc2_hc_frmovrun_intr() 1671 halt_status = dwc2_update_isoc_urb_state(hsotg, chan, chnum, dwc2_hc_frmovrun_intr() 1677 disable_hc_int(hsotg, chnum, HCINTMSK_FRMOVRUN); dwc2_hc_frmovrun_intr() 1685 struct dwc2_host_chan *chan, int chnum, dwc2_hc_datatglerr_intr() 1689 "--Host Channel %d Interrupt: Data Toggle Error--\n", chnum); dwc2_hc_datatglerr_intr() 1696 chnum); dwc2_hc_datatglerr_intr() 1699 disable_hc_int(hsotg, chnum, HCINTMSK_DATATGLERR); dwc2_hc_datatglerr_intr() 1710 struct dwc2_host_chan *chan, int chnum, dwc2_halt_status_ok() 1724 hcchar = dwc2_readl(hsotg->regs + HCCHAR(chnum)); dwc2_halt_status_ok() 1725 hctsiz = dwc2_readl(hsotg->regs + HCTSIZ(chnum)); dwc2_halt_status_ok() 1726 hcintmsk = dwc2_readl(hsotg->regs + HCINTMSK(chnum)); dwc2_halt_status_ok() 1727 hcsplt = dwc2_readl(hsotg->regs + HCSPLT(chnum)); dwc2_halt_status_ok() 1733 chnum, hcchar, hctsiz); dwc2_halt_status_ok() 1742 __func__, chnum); dwc2_halt_status_ok() 1751 hcchar = dwc2_readl(hsotg->regs + HCCHAR(chnum)); dwc2_halt_status_ok() 1770 struct dwc2_host_chan *chan, int chnum, dwc2_hc_chhltd_intr_dma() 1779 chnum); dwc2_hc_chhltd_intr_dma() 1797 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, dwc2_hc_chhltd_intr_dma() 1811 hcintmsk = dwc2_readl(hsotg->regs + HCINTMSK(chnum)); dwc2_hc_chhltd_intr_dma() 1822 dwc2_hc_ack_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1823 dwc2_hc_xfercomp_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1825 dwc2_hc_stall_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1845 dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1848 dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1851 dwc2_hc_ahberr_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1853 dwc2_hc_babble_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1855 dwc2_hc_frmovrun_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1864 dwc2_hc_nyet_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1874 dwc2_hc_nak_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1884 dwc2_hc_ack_intr(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1896 __func__, chnum); dwc2_hc_chhltd_intr_dma() 1902 __func__, chnum); dwc2_hc_chhltd_intr_dma() 1917 dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, dwc2_hc_chhltd_intr_dma() 1919 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr_dma() 1936 struct dwc2_host_chan *chan, int chnum, dwc2_hc_chhltd_intr() 1941 chnum); dwc2_hc_chhltd_intr() 1944 dwc2_hc_chhltd_intr_dma(hsotg, chan, chnum, qtd); dwc2_hc_chhltd_intr() 1946 if (!dwc2_halt_status_ok(hsotg, chan, chnum, qtd)) dwc2_hc_chhltd_intr() 1971 static void dwc2_hc_n_intr(struct dwc2_hsotg *hsotg, int chnum) dwc2_hc_n_intr() argument 1977 chan = hsotg->hc_ptr_array[chnum]; dwc2_hc_n_intr() 1979 hcint = dwc2_readl(hsotg->regs + HCINT(chnum)); dwc2_hc_n_intr() 1980 hcintmsk = dwc2_readl(hsotg->regs + HCINTMSK(chnum)); dwc2_hc_n_intr() 1983 dwc2_writel(hcint, hsotg->regs + HCINT(chnum)); dwc2_hc_n_intr() 1989 chnum); dwc2_hc_n_intr() 1995 dwc2_writel(hcint, hsotg->regs + HCINT(chnum)); dwc2_hc_n_intr() 2011 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, dwc2_hc_n_intr() 2025 chnum); dwc2_hc_n_intr() 2030 disable_hc_int(hsotg, chnum, HCINTMSK_CHHLTD); dwc2_hc_n_intr() 2044 dwc2_hc_xfercomp_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2054 dwc2_hc_chhltd_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2059 dwc2_hc_ahberr_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2064 dwc2_hc_stall_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2069 dwc2_hc_nak_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2074 dwc2_hc_ack_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2079 dwc2_hc_nyet_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2084 dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2089 dwc2_hc_babble_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2094 dwc2_hc_frmovrun_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 2099 dwc2_hc_datatglerr_intr(hsotg, chan, chnum, qtd); dwc2_hc_n_intr() 403 dwc2_get_actual_xfer_length(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd, enum dwc2_halt_status halt_status, int *short_read) dwc2_get_actual_xfer_length() argument 451 dwc2_update_urb_state(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_hcd_urb *urb, struct dwc2_qtd *qtd) dwc2_update_urb_state() argument 513 dwc2_hcd_save_data_toggle(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hcd_save_data_toggle() argument 543 dwc2_update_isoc_urb_state( struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd, enum dwc2_halt_status halt_status) dwc2_update_isoc_urb_state() argument 854 dwc2_complete_non_periodic_xfer(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd, enum dwc2_halt_status halt_status) dwc2_complete_non_periodic_xfer() argument 904 dwc2_complete_periodic_xfer(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd, enum dwc2_halt_status halt_status) dwc2_complete_periodic_xfer() argument 921 dwc2_xfercomp_isoc_split_in(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_xfercomp_isoc_split_in() argument 975 dwc2_hc_xfercomp_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_xfercomp_intr() argument 1107 dwc2_hc_stall_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_stall_intr() argument 1157 dwc2_update_urb_state_abn(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_hcd_urb *urb, struct dwc2_qtd *qtd, enum dwc2_halt_status halt_status) dwc2_update_urb_state_abn() argument 1207 dwc2_hc_nak_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_nak_intr() argument 1293 dwc2_hc_ack_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_ack_intr() argument 1372 dwc2_hc_nyet_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_nyet_intr() argument 1455 dwc2_hc_babble_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_babble_intr() argument 1489 dwc2_hc_ahberr_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_ahberr_intr() argument 1592 dwc2_hc_xacterr_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_xacterr_intr() argument 1651 dwc2_hc_frmovrun_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_frmovrun_intr() argument 1684 dwc2_hc_datatglerr_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_datatglerr_intr() argument 1709 dwc2_halt_status_ok(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_halt_status_ok() argument 1769 dwc2_hc_chhltd_intr_dma(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_chhltd_intr_dma() argument 1935 dwc2_hc_chhltd_intr(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, int chnum, struct dwc2_qtd *qtd) dwc2_hc_chhltd_intr() argument
|