Răsfoiți Sursa

support pio dcd endpiont stall

hathach 3 ani în urmă
părinte
comite
b5a9537eea
2 a modificat fișierele cu 6 adăugiri și 3 ștergeri
  1. 1 1
      lib/Pico-PIO-USB
  2. 5 2
      src/portable/raspberrypi/pio_usb/dcd_pio_usb.c

+ 1 - 1
lib/Pico-PIO-USB

@@ -1 +1 @@
-Subproject commit ed84b4de88e7c22bb56cb53bf85f1a2c5dd8b8fc
+Subproject commit d6712cad5bfbddb25647974f0d583596e703c06f

+ 5 - 2
src/portable/raspberrypi/pio_usb/dcd_pio_usb.c

@@ -136,14 +136,17 @@ bool dcd_edpt_xfer (uint8_t rhport, uint8_t ep_addr, uint8_t * buffer, uint16_t
 void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr)
 void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr)
 {
 {
   (void) rhport;
   (void) rhport;
-  (void) ep_addr;
+  pio_hw_endpoint_t *ep = pio_usb_device_get_ep(ep_addr);
+  ep->stalled = true;
 }
 }
 
 
 // clear stall, data toggle is also reset to DATA0
 // clear stall, data toggle is also reset to DATA0
 void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr)
 void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr)
 {
 {
   (void) rhport;
   (void) rhport;
-  (void) ep_addr;
+  pio_hw_endpoint_t *ep = pio_usb_device_get_ep(ep_addr);
+  ep->data_id = 0;
+  ep->stalled = false;
 }
 }
 
 
 //--------------------------------------------------------------------+
 //--------------------------------------------------------------------+