Skip to content

Commit

Permalink
Update sam_udphs.c
Browse files Browse the repository at this point in the history
  • Loading branch information
TimJTi committed Oct 11, 2024
1 parent 6e68dde commit ffdfe68
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions arch/arm/src/sama5/sam_udphs.c
Original file line number Diff line number Diff line change
Expand Up @@ -2374,11 +2374,6 @@ static void sam_dma_interrupt(struct sam_usbdev_s *priv, int epno)

privep = &priv->eplist[epno];

/* Get the request from the head of the endpoint request queue */

privreq = sam_rqpeek(&privep->reqq);
DEBUGASSERT(privreq);

/* Get the result of the DMA operation */

dmastatus = sam_getreg(SAM_UDPHS_DMASTATUS(epno));
Expand Down Expand Up @@ -2439,7 +2434,12 @@ static void sam_dma_interrupt(struct sam_usbdev_s *priv, int epno)
}
else if (privep->epstate == UDPHS_EPSTATE_RECEIVING)
{
/* privreg->inflight holds the total transfer size */
/* privreg->inflight holds the total transfer size
* Get the request from the head of the endpoint request queue
*/

privreq = sam_rqpeek(&privep->reqq);
DEBUGASSERT(privreq);

xfrsize = privreq->inflight;
privreq->inflight = 0;
Expand Down Expand Up @@ -2495,8 +2495,13 @@ static void sam_dma_interrupt(struct sam_usbdev_s *priv, int epno)
* BUFF_COUNT should not be zero. BUFF_COUNT was set to the
* 'inflight' count when the DMA started so the difference will
* give us the actual size of the transfer.
*
* Get the request from the head of the endpoint request queue first.
*/

privreq = sam_rqpeek(&privep->reqq);
DEBUGASSERT(privreq);

bufcnt = ((dmastatus & UDPHS_DMASTATUS_BUFCNT_MASK)
>> UDPHS_DMASTATUS_BUFCNT_SHIFT);
xfrsize = privreq->inflight - bufcnt;
Expand Down

0 comments on commit ffdfe68

Please sign in to comment.