/* @hsotg: The HCD state structure for the DWC OTG controller @qh: QH for the periodic transfer  */
static void dwc2_deschedule_periodic(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
/* @hsotg: The HCD state structure for the DWC OTG controller @qh: QH for the periodic transfer  */
static void dwc2_deschedule_periodic(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
{
	int i;
	list_del_init(&qh->qh_list_entry);
	hsotg->periodic_usecs -= qh->usecs;
	if (hsotg->core_params->uframe_sched > 0) {
		for (i = 0; i < 8; i++) {
			hsotg->frame_usecs[i] += qh->frame_usecs[i];
			qh->frame_usecs[i] = 0;
		}
	} else {
		hsotg->periodic_channels--;
	}
}