usb: chipidea: udc: only clear active and halted bits in qhead

The datasheet of the synopsys core describes only to overwrite the
active and halted bits in the qhead before priming any endpoint.

Signed-off-by: Michael Grzeschik <[email protected]>
Reviewed-by: Felipe Balbi <[email protected]>
[Alex: fixed a case of line-too-long]
Signed-off-by: Alexander Shishkin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
Michael Grzeschik 2013-03-30 12:54:04 +02:00 • committed by Greg Kroah-Hartman
commit 080ff5f471

View file

@ -461,7 +461,8 @@ static int _hardware_enqueue(struct ci13xxx_ep *mEp, struct ci13xxx_req *mReq)
/* QH configuration */
mEp->qh.ptr->td.next = cpu_to_le32(mReq->dma); /* TERMINATE = 0 */
mEp->qh.ptr->td.token &= cpu_to_le32(~TD_STATUS); /* clear status */
mEp->qh.ptr->td.token &=
cpu_to_le32(~(TD_STATUS_HALTED|TD_STATUS_ACTIVE));
mEp->qh.ptr->cap |= cpu_to_le32(QH_ZLT);
wmb(); /* synchronize before ep prime */