Lines Matching refs:chan
430 * @chan: Pointer to the channel to dump
438 struct dwc2_host_chan *chan)
449 if (!chan)
452 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
453 hcsplt = dwc2_readl(hsotg, HCSPLT(chan->hc_num));
454 hctsiz = dwc2_readl(hsotg, HCTSIZ(chan->hc_num));
455 hc_dma = dwc2_readl(hsotg, HCDMA(chan->hc_num));
457 dev_dbg(hsotg->dev, " Assigned to channel %p:\n", chan);
463 chan->dev_addr, chan->ep_num, chan->ep_is_in);
464 dev_dbg(hsotg->dev, " ep_type: %d\n", chan->ep_type);
465 dev_dbg(hsotg->dev, " max_packet: %d\n", chan->max_packet);
466 dev_dbg(hsotg->dev, " data_pid_start: %d\n", chan->data_pid_start);
467 dev_dbg(hsotg->dev, " xfer_started: %d\n", chan->xfer_started);
468 dev_dbg(hsotg->dev, " halt_status: %d\n", chan->halt_status);
469 dev_dbg(hsotg->dev, " xfer_buf: %p\n", chan->xfer_buf);
471 (unsigned long)chan->xfer_dma);
472 dev_dbg(hsotg->dev, " xfer_len: %d\n", chan->xfer_len);
473 dev_dbg(hsotg->dev, " qh: %p\n", chan->qh);
488 struct dwc2_host_chan *chan = hsotg->hc_ptr_array[i];
490 dev_dbg(hsotg->dev, " %2d: %p\n", i, chan);
531 struct dwc2_host_chan *chan)
535 switch (chan->ep_type) {
543 if (chan->ep_is_in) {
548 if (chan->do_ping)
552 if (chan->do_split) {
554 if (chan->complete_split)
560 if (chan->error_state)
574 if (chan->ep_is_in)
576 if (chan->error_state)
578 if (chan->do_split) {
579 if (chan->complete_split)
593 if (chan->ep_is_in) {
603 dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
604 if (dbg_hc(chan))
609 struct dwc2_host_chan *chan)
618 if (dbg_hc(chan))
622 if (dbg_hc(chan))
624 if (chan->ep_type == USB_ENDPOINT_XFER_ISOC)
628 if (chan->error_state && !chan->do_split &&
629 chan->ep_type != USB_ENDPOINT_XFER_ISOC) {
630 if (dbg_hc(chan))
633 if (chan->ep_is_in) {
635 if (chan->ep_type != USB_ENDPOINT_XFER_INT)
640 dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
641 if (dbg_hc(chan))
646 struct dwc2_host_chan *chan)
651 if (dbg_hc(chan))
653 dwc2_hc_enable_dma_ints(hsotg, chan);
655 if (dbg_hc(chan))
657 dwc2_hc_enable_slave_ints(hsotg, chan);
662 intmsk |= 1 << chan->hc_num;
664 if (dbg_hc(chan))
671 if (dbg_hc(chan))
680 * @chan: Information needed to initialize the host channel
682 * The HCCHARn register is set up with the characteristics specified in chan.
686 static void dwc2_hc_init(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan)
688 u8 hc_num = chan->hc_num;
693 if (dbg_hc(chan))
702 dwc2_hc_enable_ints(hsotg, chan);
708 hcchar = chan->dev_addr << HCCHAR_DEVADDR_SHIFT & HCCHAR_DEVADDR_MASK;
709 hcchar |= chan->ep_num << HCCHAR_EPNUM_SHIFT & HCCHAR_EPNUM_MASK;
710 if (chan->ep_is_in)
712 if (chan->speed == USB_SPEED_LOW)
714 hcchar |= chan->ep_type << HCCHAR_EPTYPE_SHIFT & HCCHAR_EPTYPE_MASK;
715 hcchar |= chan->max_packet << HCCHAR_MPS_SHIFT & HCCHAR_MPS_MASK;
717 if (dbg_hc(chan)) {
724 chan->dev_addr);
726 chan->ep_num);
728 chan->ep_is_in);
730 chan->speed == USB_SPEED_LOW);
732 chan->ep_type);
734 chan->max_packet);
738 if (chan->do_split) {
739 if (dbg_hc(chan))
743 chan->complete_split ? "CSPLIT" : "SSPLIT");
744 if (chan->complete_split)
746 hcsplt |= chan->xact_pos << HCSPLT_XACTPOS_SHIFT &
748 hcsplt |= chan->hub_addr << HCSPLT_HUBADDR_SHIFT &
750 hcsplt |= chan->hub_port << HCSPLT_PRTADDR_SHIFT &
752 if (dbg_hc(chan)) {
754 chan->complete_split);
756 chan->xact_pos);
758 chan->hub_addr);
760 chan->hub_port);
762 chan->ep_is_in);
764 chan->max_packet);
766 chan->xfer_len);
777 * @chan: Host channel to halt
801 void dwc2_hc_halt(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan,
806 if (dbg_hc(chan))
817 if (!chan->do_split &&
818 (chan->ep_type == USB_ENDPOINT_XFER_ISOC ||
819 chan->ep_type == USB_ENDPOINT_XFER_INT)) {
840 dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
847 dwc2_writel(hsotg, ~hcintmsk, HCINT(chan->hc_num));
854 chan->halt_status = halt_status;
856 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
872 if (chan->halt_pending) {
879 "*** %s: Channel %d, chan->halt_pending already set ***\n",
880 __func__, chan->hc_num);
884 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
889 if (dbg_hc(chan))
893 if (dbg_hc(chan))
899 if (dbg_hc(chan))
904 if (chan->ep_type == USB_ENDPOINT_XFER_CONTROL ||
905 chan->ep_type == USB_ENDPOINT_XFER_BULK) {
924 if (dbg_hc(chan))
928 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
929 chan->halt_status = halt_status;
932 if (dbg_hc(chan))
934 chan->halt_pending = 1;
935 chan->halt_on_queue = 0;
937 if (dbg_hc(chan))
939 chan->halt_on_queue = 1;
942 if (dbg_hc(chan)) {
944 chan->hc_num);
948 chan->halt_pending);
950 chan->halt_on_queue);
952 chan->halt_status);
960 * @chan: Identifies the host channel to clean up
965 void dwc2_hc_cleanup(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan)
969 chan->xfer_started = 0;
971 list_del_init(&chan->split_order_list_entry);
977 dwc2_writel(hsotg, 0, HCINTMSK(chan->hc_num));
980 dwc2_writel(hsotg, hcintmsk, HCINT(chan->hc_num));
988 * @chan: Identifies the host channel to set up and its properties
994 struct dwc2_host_chan *chan, u32 *hcchar)
996 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
997 chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
1030 host_speed = (chan->speed != USB_SPEED_HIGH &&
1031 !chan->do_split) ? chan->speed : USB_SPEED_HIGH;
1049 chan->xfer_len + bytes_in_fifo);
1056 wire_frame = dwc2_frame_num_inc(chan->qh->next_active_frame, 1);
1068 chan->qh, wire_frame, frame_number,
1081 chan->qh->next_active_frame =
1092 static void dwc2_set_pid_isoc(struct dwc2_host_chan *chan)
1095 if (chan->speed == USB_SPEED_HIGH) {
1096 if (chan->ep_is_in) {
1097 if (chan->multi_count == 1)
1098 chan->data_pid_start = DWC2_HC_PID_DATA0;
1099 else if (chan->multi_count == 2)
1100 chan->data_pid_start = DWC2_HC_PID_DATA1;
1102 chan->data_pid_start = DWC2_HC_PID_DATA2;
1104 if (chan->multi_count == 1)
1105 chan->data_pid_start = DWC2_HC_PID_DATA0;
1107 chan->data_pid_start = DWC2_HC_PID_MDATA;
1110 chan->data_pid_start = DWC2_HC_PID_DATA0;
1119 * @chan: Information needed to initialize the host channel
1125 * Upon return the xfer_buf and xfer_count fields in chan are incremented by
1129 struct dwc2_host_chan *chan)
1135 u32 *data_buf = (u32 *)chan->xfer_buf;
1137 if (dbg_hc(chan))
1140 remaining_count = chan->xfer_len - chan->xfer_count;
1141 if (remaining_count > chan->max_packet)
1142 byte_count = chan->max_packet;
1151 dwc2_writel(hsotg, *data_buf, HCFIFO(chan->hc_num));
1157 dwc2_writel(hsotg, data, HCFIFO(chan->hc_num));
1161 chan->xfer_count += byte_count;
1162 chan->xfer_buf += byte_count;
1169 * @chan: Information needed to initialize the host channel
1175 struct dwc2_host_chan *chan)
1180 if (dbg_hc(chan))
1182 chan->hc_num);
1186 dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
1188 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
1191 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
1199 * @chan: Information needed to initialize the host channel. The xfer_len value
1228 struct dwc2_host_chan *chan)
1237 if (dbg_hc(chan))
1240 if (chan->do_ping) {
1242 if (dbg_hc(chan))
1244 dwc2_hc_do_ping(hsotg, chan);
1245 chan->xfer_started = 1;
1249 if (dbg_hc(chan))
1255 if (chan->do_split) {
1256 if (dbg_hc(chan))
1260 if (chan->complete_split && !chan->ep_is_in)
1265 chan->xfer_len = 0;
1266 else if (chan->ep_is_in || chan->xfer_len > chan->max_packet)
1267 chan->xfer_len = chan->max_packet;
1268 else if (!chan->ep_is_in && chan->xfer_len > 188)
1269 chan->xfer_len = 188;
1271 hctsiz |= chan->xfer_len << TSIZ_XFERSIZE_SHIFT &
1275 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
1276 chan->ep_type == USB_ENDPOINT_XFER_ISOC)
1281 if (dbg_hc(chan))
1287 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
1288 chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
1297 chan->multi_count * chan->max_packet;
1299 if (chan->xfer_len > max_periodic_len)
1300 chan->xfer_len = max_periodic_len;
1301 } else if (chan->xfer_len > max_hc_xfer_size) {
1306 chan->xfer_len =
1307 max_hc_xfer_size - chan->max_packet + 1;
1310 if (chan->xfer_len > 0) {
1311 num_packets = (chan->xfer_len + chan->max_packet - 1) /
1312 chan->max_packet;
1315 chan->xfer_len = num_packets * chan->max_packet;
1316 } else if (chan->ep_is_in) {
1323 chan->xfer_len = num_packets * chan->max_packet;
1330 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
1331 chan->ep_type == USB_ENDPOINT_XFER_ISOC)
1336 chan->multi_count = num_packets;
1338 if (chan->ep_type == USB_ENDPOINT_XFER_ISOC)
1339 dwc2_set_pid_isoc(chan);
1341 hctsiz |= chan->xfer_len << TSIZ_XFERSIZE_SHIFT &
1345 ec_mc = chan->multi_count;
1348 chan->start_pkt_count = num_packets;
1350 hctsiz |= chan->data_pid_start << TSIZ_SC_MC_PID_SHIFT &
1352 dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
1353 if (dbg_hc(chan)) {
1355 hctsiz, chan->hc_num);
1358 chan->hc_num);
1373 if (chan->align_buf) {
1374 if (dbg_hc(chan))
1376 dma_addr = chan->align_buf;
1378 dma_addr = chan->xfer_dma;
1380 dwc2_writel(hsotg, (u32)dma_addr, HCDMA(chan->hc_num));
1382 if (dbg_hc(chan))
1384 (unsigned long)dma_addr, chan->hc_num);
1388 if (chan->do_split) {
1389 u32 hcsplt = dwc2_readl(hsotg, HCSPLT(chan->hc_num));
1392 dwc2_writel(hsotg, hcsplt, HCSPLT(chan->hc_num));
1395 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
1398 dwc2_hc_set_even_odd_frame(hsotg, chan, &hcchar);
1403 __func__, chan->hc_num, hcchar);
1409 if (dbg_hc(chan))
1414 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
1415 if (dbg_hc(chan))
1417 chan->hc_num);
1419 chan->xfer_started = 1;
1420 chan->requests++;
1423 !chan->ep_is_in && chan->xfer_len > 0)
1425 dwc2_hc_write_packet(hsotg, chan);
1433 * @chan: Information needed to initialize the host channel
1443 struct dwc2_host_chan *chan)
1448 if (chan->do_ping)
1451 if (chan->ep_type == USB_ENDPOINT_XFER_ISOC)
1452 dwc2_set_pid_isoc(chan);
1455 hctsiz |= chan->data_pid_start << TSIZ_SC_MC_PID_SHIFT &
1459 hctsiz |= (chan->ntd - 1) << TSIZ_NTD_SHIFT & TSIZ_NTD_MASK;
1462 hctsiz |= chan->schinfo << TSIZ_SCHINFO_SHIFT & TSIZ_SCHINFO_MASK;
1464 if (dbg_hc(chan)) {
1466 chan->hc_num);
1468 chan->data_pid_start);
1469 dev_vdbg(hsotg->dev, " NTD: %d\n", chan->ntd - 1);
1472 dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
1474 dma_sync_single_for_device(hsotg->dev, chan->desc_list_addr,
1475 chan->desc_list_sz, DMA_TO_DEVICE);
1477 dwc2_writel(hsotg, chan->desc_list_addr, HCDMA(chan->hc_num));
1479 if (dbg_hc(chan))
1481 &chan->desc_list_addr, chan->hc_num);
1483 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
1485 hcchar |= chan->multi_count << HCCHAR_MULTICNT_SHIFT &
1491 __func__, chan->hc_num, hcchar);
1497 if (dbg_hc(chan))
1502 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
1503 if (dbg_hc(chan))
1505 chan->hc_num);
1507 chan->xfer_started = 1;
1508 chan->requests++;
1516 * @chan: Information needed to initialize the host channel
1532 struct dwc2_host_chan *chan)
1534 if (dbg_hc(chan))
1536 chan->hc_num);
1538 if (chan->do_split)
1542 if (chan->data_pid_start == DWC2_HC_PID_SETUP)
1546 if (chan->ep_is_in) {
1559 u32 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
1561 dwc2_hc_set_even_odd_frame(hsotg, chan, &hcchar);
1564 if (dbg_hc(chan))
1567 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
1568 chan->requests++;
1574 if (chan->xfer_count < chan->xfer_len) {
1575 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
1576 chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
1578 HCCHAR(chan->hc_num));
1580 dwc2_hc_set_even_odd_frame(hsotg, chan,
1585 dwc2_hc_write_packet(hsotg, chan);
1586 chan->requests++;
2306 struct dwc2_host_chan *chan, *chan_tmp;
2325 list_for_each_entry_safe(chan, chan_tmp, &hsotg->free_hc_list,
2327 list_del_init(&chan->hc_list_entry);
2331 chan = hsotg->hc_ptr_array[i];
2332 list_add_tail(&chan->hc_list_entry, &hsotg->free_hc_list);
2333 dwc2_hc_cleanup(hsotg, chan);
2341 struct dwc2_host_chan *chan,
2346 chan->do_split = 1;
2347 chan->xact_pos = qtd->isoc_split_pos;
2348 chan->complete_split = qtd->complete_split;
2350 chan->hub_addr = (u8)hub_addr;
2351 chan->hub_port = (u8)hub_port;
2355 struct dwc2_host_chan *chan,
2363 chan->ep_type = USB_ENDPOINT_XFER_CONTROL;
2368 chan->do_ping = 0;
2369 chan->ep_is_in = 0;
2370 chan->data_pid_start = DWC2_HC_PID_SETUP;
2372 chan->xfer_dma = urb->setup_dma;
2374 chan->xfer_buf = urb->setup_packet;
2375 chan->xfer_len = 8;
2380 chan->data_pid_start = qtd->data_toggle;
2390 chan->ep_is_in = 1;
2392 chan->ep_is_in =
2394 if (chan->ep_is_in)
2395 chan->do_ping = 0;
2396 chan->data_pid_start = DWC2_HC_PID_DATA1;
2397 chan->xfer_len = 0;
2399 chan->xfer_dma = hsotg->status_buf_dma;
2401 chan->xfer_buf = hsotg->status_buf;
2407 chan->ep_type = USB_ENDPOINT_XFER_BULK;
2411 chan->ep_type = USB_ENDPOINT_XFER_INT;
2415 chan->ep_type = USB_ENDPOINT_XFER_ISOC;
2423 chan->xfer_dma = urb->dma;
2424 chan->xfer_dma += frame_desc->offset +
2427 chan->xfer_buf = urb->buf;
2428 chan->xfer_buf += frame_desc->offset +
2432 chan->xfer_len = frame_desc->length - qtd->isoc_split_offset;
2434 if (chan->xact_pos == DWC2_HCSPLT_XACTPOS_ALL) {
2435 if (chan->xfer_len <= 188)
2436 chan->xact_pos = DWC2_HCSPLT_XACTPOS_ALL;
2438 chan->xact_pos = DWC2_HCSPLT_XACTPOS_BEGIN;
2446 struct dwc2_host_chan *chan)
2449 chan->max_packet > DWC2_KMEM_UNALIGNED_BUF_SIZE)
2465 chan->align_buf = 0;
2469 chan->align_buf = qh->dw_align_buf_dma;
2581 struct dwc2_host_chan *chan;
2598 chan = list_first_entry(&hsotg->free_hc_list, struct dwc2_host_chan,
2602 list_del_init(&chan->hc_list_entry);
2606 qh->channel = chan;
2613 chan->dev_addr = dwc2_hcd_get_dev_addr(&urb->pipe_info);
2614 chan->ep_num = dwc2_hcd_get_ep_num(&urb->pipe_info);
2615 chan->speed = qh->dev_speed;
2616 chan->max_packet = qh->maxp;
2618 chan->xfer_started = 0;
2619 chan->halt_status = DWC2_HC_XFER_NO_HALT_STATUS;
2620 chan->error_state = (qtd->error_count > 0);
2621 chan->halt_on_queue = 0;
2622 chan->halt_pending = 0;
2623 chan->requests = 0;
2632 chan->ep_is_in = (dwc2_hcd_is_pipe_in(&urb->pipe_info) != 0);
2633 if (chan->ep_is_in)
2634 chan->do_ping = 0;
2636 chan->do_ping = qh->ping_state;
2638 chan->data_pid_start = qh->data_toggle;
2639 chan->multi_count = 1;
2646 chan->xfer_dma = urb->dma + urb->actual_length;
2648 chan->xfer_buf = (u8 *)urb->buf + urb->actual_length;
2650 chan->xfer_len = urb->length - urb->actual_length;
2651 chan->xfer_count = 0;
2655 dwc2_hc_init_split(hsotg, chan, qtd, urb);
2657 chan->do_split = 0;
2660 dwc2_hc_init_xfer(hsotg, chan, qtd);
2664 chan->ep_is_in && (chan->xfer_dma & 0x3)) {
2666 if (dwc2_alloc_split_dma_aligned_buf(hsotg, qh, chan)) {
2670 chan->align_buf = 0;
2671 chan->multi_count = 0;
2672 list_add_tail(&chan->hc_list_entry,
2684 (chan->xfer_dma & 0x3));
2685 chan->align_buf = 0;
2688 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
2689 chan->ep_type == USB_ENDPOINT_XFER_ISOC)
2694 chan->multi_count = qh->maxp_mult;
2697 chan->desc_list_addr = qh->desc_list_dma;
2698 chan->desc_list_sz = qh->desc_list_sz;
2701 dwc2_hc_init(hsotg, chan);
2702 chan->qh = qh;
2801 * @chan: Host channel descriptor associated with either a periodic or
2818 struct dwc2_host_chan *chan,
2823 if (chan->do_split)
2825 list_move_tail(&chan->split_order_list_entry,
2828 if (hsotg->params.host_dma && chan->qh) {
2830 if (!chan->xfer_started ||
2831 chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
2832 dwc2_hcd_start_xfer_ddma(hsotg, chan->qh);
2833 chan->qh->ping_state = 0;
2835 } else if (!chan->xfer_started) {
2836 dwc2_hc_start_transfer(hsotg, chan);
2837 chan->qh->ping_state = 0;
2839 } else if (chan->halt_pending) {
2841 } else if (chan->halt_on_queue) {
2842 dwc2_hc_halt(hsotg, chan, chan->halt_status);
2843 } else if (chan->do_ping) {
2844 if (!chan->xfer_started)
2845 dwc2_hc_start_transfer(hsotg, chan);
2846 } else if (!chan->ep_is_in ||
2847 chan->data_pid_start == DWC2_HC_PID_SETUP) {
2848 if ((fifo_dwords_avail * 4) >= chan->max_packet) {
2849 if (!chan->xfer_started) {
2850 dwc2_hc_start_transfer(hsotg, chan);
2853 retval = dwc2_hc_continue_transfer(hsotg, chan);
2859 if (!chan->xfer_started) {
2860 dwc2_hc_start_transfer(hsotg, chan);
2863 retval = dwc2_hc_continue_transfer(hsotg, chan);
3838 struct dwc2_host_chan *chan;
3854 chan = hsotg->hc_ptr_array[i];
3858 chan->dev_addr, chan->ep_num, chan->ep_is_in);
3859 dev_dbg(hsotg->dev, " speed: %d\n", chan->speed);
3860 dev_dbg(hsotg->dev, " ep_type: %d\n", chan->ep_type);
3861 dev_dbg(hsotg->dev, " max_packet: %d\n", chan->max_packet);
3863 chan->data_pid_start);
3864 dev_dbg(hsotg->dev, " multi_count: %d\n", chan->multi_count);
3866 chan->xfer_started);
3867 dev_dbg(hsotg->dev, " xfer_buf: %p\n", chan->xfer_buf);
3869 (unsigned long)chan->xfer_dma);
3870 dev_dbg(hsotg->dev, " xfer_len: %d\n", chan->xfer_len);
3871 dev_dbg(hsotg->dev, " xfer_count: %d\n", chan->xfer_count);
3873 chan->halt_on_queue);
3875 chan->halt_pending);
3876 dev_dbg(hsotg->dev, " halt_status: %d\n", chan->halt_status);
3877 dev_dbg(hsotg->dev, " do_split: %d\n", chan->do_split);
3879 chan->complete_split);
3880 dev_dbg(hsotg->dev, " hub_addr: %d\n", chan->hub_addr);
3881 dev_dbg(hsotg->dev, " hub_port: %d\n", chan->hub_port);
3882 dev_dbg(hsotg->dev, " xact_pos: %d\n", chan->xact_pos);
3883 dev_dbg(hsotg->dev, " requests: %d\n", chan->requests);
3884 dev_dbg(hsotg->dev, " qh: %p\n", chan->qh);
3886 if (chan->xfer_started) {
3901 if (!(chan->xfer_started && chan->qh))
3904 list_for_each_entry(qtd, &chan->qh->qtd_list, qtd_list_entry) {
4951 struct dwc2_host_chan *chan = hsotg->hc_ptr_array[i];
4953 if (chan) {
4954 dev_dbg(hsotg->dev, "HCD Free channel #%i, chan=%p\n",
4955 i, chan);
4957 kfree(chan);