1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-27 16:54:15 +01:00

OP-901 fixed errors due to unused parameter and applied fix against fifo empty bug on usb_dcd_int.c

This commit is contained in:
Alessio Morale 2013-05-11 23:49:52 +02:00
parent 95a3e99b7c
commit 30b755b7aa
2 changed files with 13 additions and 3 deletions

View File

@ -798,7 +798,7 @@ void USBD_ParseSetupRequest( USB_OTG_CORE_HANDLE *pdev,
*/ */
void USBD_CtlError( USB_OTG_CORE_HANDLE *pdev, void USBD_CtlError( USB_OTG_CORE_HANDLE *pdev,
USB_SETUP_REQ *req) __attribute__((unused)) USB_SETUP_REQ *req)
{ {
DCD_EP_Stall(pdev , 0x80); DCD_EP_Stall(pdev , 0x80);

View File

@ -426,7 +426,7 @@ static uint32_t DCD_HandleInEP_ISR(USB_OTG_CORE_HANDLE *pdev)
uint32_t ep_intr; uint32_t ep_intr;
uint32_t epnum = 0; uint32_t epnum = 0;
uint32_t fifoemptymsk; // uint32_t fifoemptymsk;
diepint.d32 = 0; diepint.d32 = 0;
ep_intr = USB_OTG_ReadDevAllInEPItr(pdev); ep_intr = USB_OTG_ReadDevAllInEPItr(pdev);
@ -437,8 +437,10 @@ static uint32_t DCD_HandleInEP_ISR(USB_OTG_CORE_HANDLE *pdev)
diepint.d32 = DCD_ReadDevInEP(pdev , epnum); /* Get In ITR status */ diepint.d32 = DCD_ReadDevInEP(pdev , epnum); /* Get In ITR status */
if ( diepint.b.xfercompl ) if ( diepint.b.xfercompl )
{ {
#if 0 // THIS CODE IS REMOVED, done in DCD_WriteEmptyTxFifo()
fifoemptymsk = 0x1 << epnum; fifoemptymsk = 0x1 << epnum;
USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, fifoemptymsk, 0); USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, fifoemptymsk, 0);
#endif
CLEAR_IN_EP_INTR(epnum, xfercompl); CLEAR_IN_EP_INTR(epnum, xfercompl);
/* TX COMPLETE */ /* TX COMPLETE */
USBD_DCD_INT_fops->DataInStage(pdev , epnum); USBD_DCD_INT_fops->DataInStage(pdev , epnum);
@ -677,7 +679,15 @@ static uint32_t DCD_WriteEmptyTxFifo(USB_OTG_CORE_HANDLE *pdev, uint32_t epnum)
txstatus.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[epnum]->DTXFSTS); txstatus.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[epnum]->DTXFSTS);
} }
uint32_t fifoemptymsk;
// --- start fix (just before return 1)
if (len < ep->maxpacket)
{
// FIFO empty
fifoemptymsk = 0x1 << epnum;
USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, fifoemptymsk, 0);
}
// end of fix
return 1; return 1;
} }