/* Remove this QTD from the QH list and free its memory. If this QTD isn't the last one than remove also his successor(s). Returns the QTD which is part of an new URB and should be enqueued.  */
static struct isp1760_qtd* clean_up_qtdlist(struct isp1760_qtd *qtd)
/* Remove this QTD from the QH list and free its memory. If this QTD isn't the last one than remove also his successor(s). Returns the QTD which is part of an new URB and should be enqueued.  */
static struct isp1760_qtd* clean_up_qtdlist(struct isp1760_qtd *qtd)
{
	struct isp1760_qtd *tmp_qtd;
	int last_one;
	do {
		tmp_qtd = qtd->hw_next;
		last_one = qtd->status & URB_COMPLETE_NOTIFY;
		list_del(&qtd->qtd_list);
		isp1760_qtd_free(qtd);
		qtd = tmp_qtd;
	} while (!last_one && qtd);
	return qtd;
}