@@ -450,41 +450,44 @@ void USBPhyHw::process() {
450
450
case NRF_DRV_USBD_EVT_EPTRANSFER:
451
451
if (usb_event.data .eptransfer .status == NRF_USBD_EP_OK)
452
452
{
453
- if (IS_IN_EP (usb_event.data .eptransfer .ep ))
453
+ if (! nrf_drv_usbd_ep_stall_check (usb_event.data .eptransfer .ep ))
454
454
{
455
- if ((usb_event.data .eptransfer .ep & 0x7F ) == 0 )
455
+ if (IS_IN_EP (usb_event.data .eptransfer .ep ) )
456
456
{
457
- events->ep0_in ();
458
- // Check for pending virtual status transfer
459
- if (virtual_status_xfer_event)
457
+ if ((usb_event.data .eptransfer .ep & 0x7F ) == 0 )
460
458
{
461
- // Notify the upper stack that the status transfer is done
462
- // as well at this point
463
- virtual_status_xfer_event = false ;
464
- events->ep0_out ();
465
-
459
+ events->ep0_in ();
460
+ // Check for pending virtual status transfer
461
+ if (virtual_status_xfer_event)
462
+ {
463
+ // Notify the upper stack that the status transfer is done
464
+ // as well at this point
465
+ virtual_status_xfer_event = false ;
466
+ events->ep0_out ();
467
+
468
+ }
466
469
}
470
+ else
471
+ events->in ((usb_ep_t ) usb_event.data .eptransfer .ep );
467
472
}
468
473
else
469
- events->in ((usb_ep_t ) usb_event.data .eptransfer .ep );
470
- }
471
- else
472
- {
473
- if ((usb_event.data .eptransfer .ep & 0x7F ) == 0 )
474
474
{
475
- events->ep0_out ();
476
-
477
- // Check for pending virtual status transfer
478
- if (virtual_status_xfer_event)
475
+ if ((usb_event.data .eptransfer .ep & 0x7F ) == 0 )
479
476
{
480
- // Notify the upper stack that the status transfer is done
481
- // as well at this point
482
- virtual_status_xfer_event = false ;
483
- events->ep0_in ();
477
+ events->ep0_out ();
478
+
479
+ // Check for pending virtual status transfer
480
+ if (virtual_status_xfer_event)
481
+ {
482
+ // Notify the upper stack that the status transfer is done
483
+ // as well at this point
484
+ virtual_status_xfer_event = false ;
485
+ events->ep0_in ();
486
+ }
484
487
}
488
+ else
489
+ events->out ((usb_ep_t ) usb_event.data .eptransfer .ep );
485
490
}
486
- else
487
- events->out ((usb_ep_t ) usb_event.data .eptransfer .ep );
488
491
}
489
492
}
490
493
break ;
0 commit comments