Lines Matching refs:chan
395 * @chan: Pointer to the channel to dump
403 struct dwc2_host_chan *chan)
414 if (!chan)
417 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
418 hcsplt = dwc2_readl(hsotg, HCSPLT(chan->hc_num));
419 hctsiz = dwc2_readl(hsotg, HCTSIZ(chan->hc_num));
420 hc_dma = dwc2_readl(hsotg, HCDMA(chan->hc_num));
422 dev_dbg(hsotg->dev, " Assigned to channel %p:\n", chan);
428 chan->dev_addr, chan->ep_num, chan->ep_is_in);
429 dev_dbg(hsotg->dev, " ep_type: %d\n", chan->ep_type);
430 dev_dbg(hsotg->dev, " max_packet: %d\n", chan->max_packet);
431 dev_dbg(hsotg->dev, " data_pid_start: %d\n", chan->data_pid_start);
432 dev_dbg(hsotg->dev, " xfer_started: %d\n", chan->xfer_started);
433 dev_dbg(hsotg->dev, " halt_status: %d\n", chan->halt_status);
434 dev_dbg(hsotg->dev, " xfer_buf: %p\n", chan->xfer_buf);
436 (unsigned long)chan->xfer_dma);
437 dev_dbg(hsotg->dev, " xfer_len: %d\n", chan->xfer_len);
438 dev_dbg(hsotg->dev, " qh: %p\n", chan->qh);
453 struct dwc2_host_chan *chan = hsotg->hc_ptr_array[i];
455 dev_dbg(hsotg->dev, " %2d: %p\n", i, chan);
496 struct dwc2_host_chan *chan)
500 switch (chan->ep_type) {
508 if (chan->ep_is_in) {
513 if (chan->do_ping)
517 if (chan->do_split) {
519 if (chan->complete_split)
525 if (chan->error_state)
539 if (chan->ep_is_in)
541 if (chan->error_state)
543 if (chan->do_split) {
544 if (chan->complete_split)
558 if (chan->ep_is_in) {
568 dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
569 if (dbg_hc(chan))
574 struct dwc2_host_chan *chan)
583 if (dbg_hc(chan))
587 if (dbg_hc(chan))
589 if (chan->ep_type == USB_ENDPOINT_XFER_ISOC)
593 if (chan->error_state && !chan->do_split &&
594 chan->ep_type != USB_ENDPOINT_XFER_ISOC) {
595 if (dbg_hc(chan))
598 if (chan->ep_is_in) {
600 if (chan->ep_type != USB_ENDPOINT_XFER_INT)
605 dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
606 if (dbg_hc(chan))
611 struct dwc2_host_chan *chan)
616 if (dbg_hc(chan))
618 dwc2_hc_enable_dma_ints(hsotg, chan);
620 if (dbg_hc(chan))
622 dwc2_hc_enable_slave_ints(hsotg, chan);
627 intmsk |= 1 << chan->hc_num;
629 if (dbg_hc(chan))
636 if (dbg_hc(chan))
645 * @chan: Information needed to initialize the host channel
647 * The HCCHARn register is set up with the characteristics specified in chan.
651 static void dwc2_hc_init(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan)
653 u8 hc_num = chan->hc_num;
658 if (dbg_hc(chan))
667 dwc2_hc_enable_ints(hsotg, chan);
673 hcchar = chan->dev_addr << HCCHAR_DEVADDR_SHIFT & HCCHAR_DEVADDR_MASK;
674 hcchar |= chan->ep_num << HCCHAR_EPNUM_SHIFT & HCCHAR_EPNUM_MASK;
675 if (chan->ep_is_in)
677 if (chan->speed == USB_SPEED_LOW)
679 hcchar |= chan->ep_type << HCCHAR_EPTYPE_SHIFT & HCCHAR_EPTYPE_MASK;
680 hcchar |= chan->max_packet << HCCHAR_MPS_SHIFT & HCCHAR_MPS_MASK;
682 if (dbg_hc(chan)) {
689 chan->dev_addr);
691 chan->ep_num);
693 chan->ep_is_in);
695 chan->speed == USB_SPEED_LOW);
697 chan->ep_type);
699 chan->max_packet);
703 if (chan->do_split) {
704 if (dbg_hc(chan))
708 chan->complete_split ? "CSPLIT" : "SSPLIT");
709 if (chan->complete_split)
711 hcsplt |= chan->xact_pos << HCSPLT_XACTPOS_SHIFT &
713 hcsplt |= chan->hub_addr << HCSPLT_HUBADDR_SHIFT &
715 hcsplt |= chan->hub_port << HCSPLT_PRTADDR_SHIFT &
717 if (dbg_hc(chan)) {
719 chan->complete_split);
721 chan->xact_pos);
723 chan->hub_addr);
725 chan->hub_port);
727 chan->ep_is_in);
729 chan->max_packet);
731 chan->xfer_len);
742 * @chan: Host channel to halt
766 void dwc2_hc_halt(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan,
771 if (dbg_hc(chan))
782 if (!chan->do_split &&
783 (chan->ep_type == USB_ENDPOINT_XFER_ISOC ||
784 chan->ep_type == USB_ENDPOINT_XFER_INT)) {
805 dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
812 dwc2_writel(hsotg, ~hcintmsk, HCINT(chan->hc_num));
819 chan->halt_status = halt_status;
821 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
837 if (chan->halt_pending) {
844 "*** %s: Channel %d, chan->halt_pending already set ***\n",
845 __func__, chan->hc_num);
849 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
854 if (dbg_hc(chan))
858 if (dbg_hc(chan))
864 if (dbg_hc(chan))
869 if (chan->ep_type == USB_ENDPOINT_XFER_CONTROL ||
870 chan->ep_type == USB_ENDPOINT_XFER_BULK) {
889 if (dbg_hc(chan))
893 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
894 chan->halt_status = halt_status;
897 if (dbg_hc(chan))
899 chan->halt_pending = 1;
900 chan->halt_on_queue = 0;
902 if (dbg_hc(chan))
904 chan->halt_on_queue = 1;
907 if (dbg_hc(chan)) {
909 chan->hc_num);
913 chan->halt_pending);
915 chan->halt_on_queue);
917 chan->halt_status);
925 * @chan: Identifies the host channel to clean up
930 void dwc2_hc_cleanup(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan)
934 chan->xfer_started = 0;
936 list_del_init(&chan->split_order_list_entry);
942 dwc2_writel(hsotg, 0, HCINTMSK(chan->hc_num));
945 dwc2_writel(hsotg, hcintmsk, HCINT(chan->hc_num));
953 * @chan: Identifies the host channel to set up and its properties
959 struct dwc2_host_chan *chan, u32 *hcchar)
961 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
962 chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
995 host_speed = (chan->speed != USB_SPEED_HIGH &&
996 !chan->do_split) ? chan->speed : USB_SPEED_HIGH;
1014 chan->xfer_len + bytes_in_fifo);
1021 wire_frame = dwc2_frame_num_inc(chan->qh->next_active_frame, 1);
1033 chan->qh, wire_frame, frame_number,
1046 chan->qh->next_active_frame =
1057 static void dwc2_set_pid_isoc(struct dwc2_host_chan *chan)
1060 if (chan->speed == USB_SPEED_HIGH) {
1061 if (chan->ep_is_in) {
1062 if (chan->multi_count == 1)
1063 chan->data_pid_start = DWC2_HC_PID_DATA0;
1064 else if (chan->multi_count == 2)
1065 chan->data_pid_start = DWC2_HC_PID_DATA1;
1067 chan->data_pid_start = DWC2_HC_PID_DATA2;
1069 if (chan->multi_count == 1)
1070 chan->data_pid_start = DWC2_HC_PID_DATA0;
1072 chan->data_pid_start = DWC2_HC_PID_MDATA;
1075 chan->data_pid_start = DWC2_HC_PID_DATA0;
1084 * @chan: Information needed to initialize the host channel
1090 * Upon return the xfer_buf and xfer_count fields in chan are incremented by
1094 struct dwc2_host_chan *chan)
1100 u32 *data_buf = (u32 *)chan->xfer_buf;
1102 if (dbg_hc(chan))
1105 remaining_count = chan->xfer_len - chan->xfer_count;
1106 if (remaining_count > chan->max_packet)
1107 byte_count = chan->max_packet;
1116 dwc2_writel(hsotg, *data_buf, HCFIFO(chan->hc_num));
1122 dwc2_writel(hsotg, data, HCFIFO(chan->hc_num));
1126 chan->xfer_count += byte_count;
1127 chan->xfer_buf += byte_count;
1134 * @chan: Information needed to initialize the host channel
1140 struct dwc2_host_chan *chan)
1145 if (dbg_hc(chan))
1147 chan->hc_num);
1151 dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
1153 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
1156 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
1164 * @chan: Information needed to initialize the host channel. The xfer_len value
1193 struct dwc2_host_chan *chan)
1202 if (dbg_hc(chan))
1205 if (chan->do_ping) {
1207 if (dbg_hc(chan))
1209 dwc2_hc_do_ping(hsotg, chan);
1210 chan->xfer_started = 1;
1214 if (dbg_hc(chan))
1220 if (chan->do_split) {
1221 if (dbg_hc(chan))
1225 if (chan->complete_split && !chan->ep_is_in)
1230 chan->xfer_len = 0;
1231 else if (chan->ep_is_in || chan->xfer_len > chan->max_packet)
1232 chan->xfer_len = chan->max_packet;
1233 else if (!chan->ep_is_in && chan->xfer_len > 188)
1234 chan->xfer_len = 188;
1236 hctsiz |= chan->xfer_len << TSIZ_XFERSIZE_SHIFT &
1240 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
1241 chan->ep_type == USB_ENDPOINT_XFER_ISOC)
1246 if (dbg_hc(chan))
1252 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
1253 chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
1262 chan->multi_count * chan->max_packet;
1264 if (chan->xfer_len > max_periodic_len)
1265 chan->xfer_len = max_periodic_len;
1266 } else if (chan->xfer_len > max_hc_xfer_size) {
1271 chan->xfer_len =
1272 max_hc_xfer_size - chan->max_packet + 1;
1275 if (chan->xfer_len > 0) {
1276 num_packets = (chan->xfer_len + chan->max_packet - 1) /
1277 chan->max_packet;
1280 chan->xfer_len = num_packets * chan->max_packet;
1281 } else if (chan->ep_is_in) {
1288 chan->xfer_len = num_packets * chan->max_packet;
1295 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
1296 chan->ep_type == USB_ENDPOINT_XFER_ISOC)
1301 chan->multi_count = num_packets;
1303 if (chan->ep_type == USB_ENDPOINT_XFER_ISOC)
1304 dwc2_set_pid_isoc(chan);
1306 hctsiz |= chan->xfer_len << TSIZ_XFERSIZE_SHIFT &
1310 ec_mc = chan->multi_count;
1313 chan->start_pkt_count = num_packets;
1315 hctsiz |= chan->data_pid_start << TSIZ_SC_MC_PID_SHIFT &
1317 dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
1318 if (dbg_hc(chan)) {
1320 hctsiz, chan->hc_num);
1323 chan->hc_num);
1338 if (chan->align_buf) {
1339 if (dbg_hc(chan))
1341 dma_addr = chan->align_buf;
1343 dma_addr = chan->xfer_dma;
1345 dwc2_writel(hsotg, (u32)dma_addr, HCDMA(chan->hc_num));
1347 if (dbg_hc(chan))
1349 (unsigned long)dma_addr, chan->hc_num);
1353 if (chan->do_split) {
1354 u32 hcsplt = dwc2_readl(hsotg, HCSPLT(chan->hc_num));
1357 dwc2_writel(hsotg, hcsplt, HCSPLT(chan->hc_num));
1360 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
1363 dwc2_hc_set_even_odd_frame(hsotg, chan, &hcchar);
1368 __func__, chan->hc_num, hcchar);
1374 if (dbg_hc(chan))
1379 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
1380 if (dbg_hc(chan))
1382 chan->hc_num);
1384 chan->xfer_started = 1;
1385 chan->requests++;
1388 !chan->ep_is_in && chan->xfer_len > 0)
1390 dwc2_hc_write_packet(hsotg, chan);
1398 * @chan: Information needed to initialize the host channel
1408 struct dwc2_host_chan *chan)
1413 if (chan->do_ping)
1416 if (chan->ep_type == USB_ENDPOINT_XFER_ISOC)
1417 dwc2_set_pid_isoc(chan);
1420 hctsiz |= chan->data_pid_start << TSIZ_SC_MC_PID_SHIFT &
1424 hctsiz |= (chan->ntd - 1) << TSIZ_NTD_SHIFT & TSIZ_NTD_MASK;
1427 hctsiz |= chan->schinfo << TSIZ_SCHINFO_SHIFT & TSIZ_SCHINFO_MASK;
1429 if (dbg_hc(chan)) {
1431 chan->hc_num);
1433 chan->data_pid_start);
1434 dev_vdbg(hsotg->dev, " NTD: %d\n", chan->ntd - 1);
1437 dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
1439 dma_sync_single_for_device(hsotg->dev, chan->desc_list_addr,
1440 chan->desc_list_sz, DMA_TO_DEVICE);
1442 dwc2_writel(hsotg, chan->desc_list_addr, HCDMA(chan->hc_num));
1444 if (dbg_hc(chan))
1446 &chan->desc_list_addr, chan->hc_num);
1448 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
1450 hcchar |= chan->multi_count << HCCHAR_MULTICNT_SHIFT &
1456 __func__, chan->hc_num, hcchar);
1462 if (dbg_hc(chan))
1467 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
1468 if (dbg_hc(chan))
1470 chan->hc_num);
1472 chan->xfer_started = 1;
1473 chan->requests++;
1481 * @chan: Information needed to initialize the host channel
1497 struct dwc2_host_chan *chan)
1499 if (dbg_hc(chan))
1501 chan->hc_num);
1503 if (chan->do_split)
1507 if (chan->data_pid_start == DWC2_HC_PID_SETUP)
1511 if (chan->ep_is_in) {
1524 u32 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
1526 dwc2_hc_set_even_odd_frame(hsotg, chan, &hcchar);
1529 if (dbg_hc(chan))
1532 dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
1533 chan->requests++;
1539 if (chan->xfer_count < chan->xfer_len) {
1540 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
1541 chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
1543 HCCHAR(chan->hc_num));
1545 dwc2_hc_set_even_odd_frame(hsotg, chan,
1550 dwc2_hc_write_packet(hsotg, chan);
1551 chan->requests++;
2271 struct dwc2_host_chan *chan, *chan_tmp;
2290 list_for_each_entry_safe(chan, chan_tmp, &hsotg->free_hc_list,
2292 list_del_init(&chan->hc_list_entry);
2296 chan = hsotg->hc_ptr_array[i];
2297 list_add_tail(&chan->hc_list_entry, &hsotg->free_hc_list);
2298 dwc2_hc_cleanup(hsotg, chan);
2306 struct dwc2_host_chan *chan,
2311 chan->do_split = 1;
2312 chan->xact_pos = qtd->isoc_split_pos;
2313 chan->complete_split = qtd->complete_split;
2315 chan->hub_addr = (u8)hub_addr;
2316 chan->hub_port = (u8)hub_port;
2320 struct dwc2_host_chan *chan,
2328 chan->ep_type = USB_ENDPOINT_XFER_CONTROL;
2333 chan->do_ping = 0;
2334 chan->ep_is_in = 0;
2335 chan->data_pid_start = DWC2_HC_PID_SETUP;
2337 chan->xfer_dma = urb->setup_dma;
2339 chan->xfer_buf = urb->setup_packet;
2340 chan->xfer_len = 8;
2345 chan->data_pid_start = qtd->data_toggle;
2355 chan->ep_is_in = 1;
2357 chan->ep_is_in =
2359 if (chan->ep_is_in)
2360 chan->do_ping = 0;
2361 chan->data_pid_start = DWC2_HC_PID_DATA1;
2362 chan->xfer_len = 0;
2364 chan->xfer_dma = hsotg->status_buf_dma;
2366 chan->xfer_buf = hsotg->status_buf;
2372 chan->ep_type = USB_ENDPOINT_XFER_BULK;
2376 chan->ep_type = USB_ENDPOINT_XFER_INT;
2380 chan->ep_type = USB_ENDPOINT_XFER_ISOC;
2388 chan->xfer_dma = urb->dma;
2389 chan->xfer_dma += frame_desc->offset +
2392 chan->xfer_buf = urb->buf;
2393 chan->xfer_buf += frame_desc->offset +
2397 chan->xfer_len = frame_desc->length - qtd->isoc_split_offset;
2399 if (chan->xact_pos == DWC2_HCSPLT_XACTPOS_ALL) {
2400 if (chan->xfer_len <= 188)
2401 chan->xact_pos = DWC2_HCSPLT_XACTPOS_ALL;
2403 chan->xact_pos = DWC2_HCSPLT_XACTPOS_BEGIN;
2411 struct dwc2_host_chan *chan)
2414 chan->max_packet > DWC2_KMEM_UNALIGNED_BUF_SIZE)
2430 chan->align_buf = 0;
2434 chan->align_buf = qh->dw_align_buf_dma;
2546 struct dwc2_host_chan *chan;
2563 chan = list_first_entry(&hsotg->free_hc_list, struct dwc2_host_chan,
2567 list_del_init(&chan->hc_list_entry);
2571 qh->channel = chan;
2578 chan->dev_addr = dwc2_hcd_get_dev_addr(&urb->pipe_info);
2579 chan->ep_num = dwc2_hcd_get_ep_num(&urb->pipe_info);
2580 chan->speed = qh->dev_speed;
2581 chan->max_packet = qh->maxp;
2583 chan->xfer_started = 0;
2584 chan->halt_status = DWC2_HC_XFER_NO_HALT_STATUS;
2585 chan->error_state = (qtd->error_count > 0);
2586 chan->halt_on_queue = 0;
2587 chan->halt_pending = 0;
2588 chan->requests = 0;
2597 chan->ep_is_in = (dwc2_hcd_is_pipe_in(&urb->pipe_info) != 0);
2598 if (chan->ep_is_in)
2599 chan->do_ping = 0;
2601 chan->do_ping = qh->ping_state;
2603 chan->data_pid_start = qh->data_toggle;
2604 chan->multi_count = 1;
2611 chan->xfer_dma = urb->dma + urb->actual_length;
2613 chan->xfer_buf = (u8 *)urb->buf + urb->actual_length;
2615 chan->xfer_len = urb->length - urb->actual_length;
2616 chan->xfer_count = 0;
2620 dwc2_hc_init_split(hsotg, chan, qtd, urb);
2622 chan->do_split = 0;
2625 dwc2_hc_init_xfer(hsotg, chan, qtd);
2629 chan->ep_is_in && (chan->xfer_dma & 0x3)) {
2631 if (dwc2_alloc_split_dma_aligned_buf(hsotg, qh, chan)) {
2635 chan->align_buf = 0;
2636 chan->multi_count = 0;
2637 list_add_tail(&chan->hc_list_entry,
2649 (chan->xfer_dma & 0x3));
2650 chan->align_buf = 0;
2653 if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
2654 chan->ep_type == USB_ENDPOINT_XFER_ISOC)
2659 chan->multi_count = qh->maxp_mult;
2662 chan->desc_list_addr = qh->desc_list_dma;
2663 chan->desc_list_sz = qh->desc_list_sz;
2666 dwc2_hc_init(hsotg, chan);
2667 chan->qh = qh;
2766 * @chan: Host channel descriptor associated with either a periodic or
2783 struct dwc2_host_chan *chan,
2788 if (chan->do_split)
2790 list_move_tail(&chan->split_order_list_entry,
2793 if (hsotg->params.host_dma && chan->qh) {
2795 if (!chan->xfer_started ||
2796 chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
2797 dwc2_hcd_start_xfer_ddma(hsotg, chan->qh);
2798 chan->qh->ping_state = 0;
2800 } else if (!chan->xfer_started) {
2801 dwc2_hc_start_transfer(hsotg, chan);
2802 chan->qh->ping_state = 0;
2804 } else if (chan->halt_pending) {
2806 } else if (chan->halt_on_queue) {
2807 dwc2_hc_halt(hsotg, chan, chan->halt_status);
2808 } else if (chan->do_ping) {
2809 if (!chan->xfer_started)
2810 dwc2_hc_start_transfer(hsotg, chan);
2811 } else if (!chan->ep_is_in ||
2812 chan->data_pid_start == DWC2_HC_PID_SETUP) {
2813 if ((fifo_dwords_avail * 4) >= chan->max_packet) {
2814 if (!chan->xfer_started) {
2815 dwc2_hc_start_transfer(hsotg, chan);
2818 retval = dwc2_hc_continue_transfer(hsotg, chan);
2824 if (!chan->xfer_started) {
2825 dwc2_hc_start_transfer(hsotg, chan);
2828 retval = dwc2_hc_continue_transfer(hsotg, chan);
3856 struct dwc2_host_chan *chan;
3872 chan = hsotg->hc_ptr_array[i];
3876 chan->dev_addr, chan->ep_num, chan->ep_is_in);
3877 dev_dbg(hsotg->dev, " speed: %d\n", chan->speed);
3878 dev_dbg(hsotg->dev, " ep_type: %d\n", chan->ep_type);
3879 dev_dbg(hsotg->dev, " max_packet: %d\n", chan->max_packet);
3881 chan->data_pid_start);
3882 dev_dbg(hsotg->dev, " multi_count: %d\n", chan->multi_count);
3884 chan->xfer_started);
3885 dev_dbg(hsotg->dev, " xfer_buf: %p\n", chan->xfer_buf);
3887 (unsigned long)chan->xfer_dma);
3888 dev_dbg(hsotg->dev, " xfer_len: %d\n", chan->xfer_len);
3889 dev_dbg(hsotg->dev, " xfer_count: %d\n", chan->xfer_count);
3891 chan->halt_on_queue);
3893 chan->halt_pending);
3894 dev_dbg(hsotg->dev, " halt_status: %d\n", chan->halt_status);
3895 dev_dbg(hsotg->dev, " do_split: %d\n", chan->do_split);
3897 chan->complete_split);
3898 dev_dbg(hsotg->dev, " hub_addr: %d\n", chan->hub_addr);
3899 dev_dbg(hsotg->dev, " hub_port: %d\n", chan->hub_port);
3900 dev_dbg(hsotg->dev, " xact_pos: %d\n", chan->xact_pos);
3901 dev_dbg(hsotg->dev, " requests: %d\n", chan->requests);
3902 dev_dbg(hsotg->dev, " qh: %p\n", chan->qh);
3904 if (chan->xfer_started) {
3919 if (!(chan->xfer_started && chan->qh))
3922 list_for_each_entry(qtd, &chan->qh->qtd_list, qtd_list_entry) {
5036 struct dwc2_host_chan *chan = hsotg->hc_ptr_array[i];
5038 if (chan) {
5039 dev_dbg(hsotg->dev, "HCD Free channel #%i, chan=%p\n",
5040 i, chan);
5042 kfree(chan);