]> git.kernelconcepts.de Git - karo-tx-redboot.git/blobdiff - packages/io/usb/slave/v2_0/src/usbs.c
unified MX27, MX25, MX37 trees
[karo-tx-redboot.git] / packages / io / usb / slave / v2_0 / src / usbs.c
index c1435de4c9a7f9e13a058776966218a4126750d9..9d4bc17f12e098786380d48a3390111eb9ff1773 100644 (file)
@@ -111,9 +111,11 @@ usbs_devtab_cwrite(cyg_io_handle_t handle, const void* buf, cyg_uint32* size)
     (*endpoint->start_tx_fn)(endpoint);
     
     cyg_drv_mutex_lock(&wait.lock);
+    cyg_drv_dsr_lock();
     while (!wait.completed) {
         cyg_drv_cond_wait(&wait.signal);
     }
+    cyg_drv_dsr_unlock();
     cyg_drv_mutex_unlock(&wait.lock);
     if (wait.result < 0) {
         result = wait.result;
@@ -155,9 +157,11 @@ usbs_devtab_cread(cyg_io_handle_t handle, void* buf, cyg_uint32* size)
     endpoint->complete_data     = (void*) &wait;
     (*endpoint->start_rx_fn)(endpoint);
     cyg_drv_mutex_lock(&wait.lock);
+    cyg_drv_dsr_lock();
     while (!wait.completed) {
         cyg_drv_cond_wait(&wait.signal);
     }
+    cyg_drv_dsr_unlock();
     cyg_drv_mutex_unlock(&wait.lock);
     if (wait.result < 0) {
         result = wait.result;