diff --git a/system/dev/usb/dwc2-device/dwc2-device.c b/system/dev/usb/dwc2-device/dwc2-device.c
index eff4a5f..37fea8e 100644
--- a/system/dev/usb/dwc2-device/dwc2-device.c
+++ b/system/dev/usb/dwc2-device/dwc2-device.c
@@ -65,16 +65,11 @@
 			deptsiz.xfersize = ep->txn_length - ep->txn_offset;
 		}
 	}
-printf("deptsiz.xfersize = %u deptsiz.pktcnt = %u\n", deptsiz.xfersize, deptsiz.pktcnt);
 
     *deptsiz_reg = deptsiz;
 
 	/* IN endpoint */
 	if (is_in) {
-//    	dwc_interrupts_t gintsts = {0};
-//    	gintsts.nptxfempty = 1;
-//		regs->gintsts = gintsts;
-printf("enable nptxfempty\n");
 		regs->gintmsk.nptxfempty = 1;
 	}
 
@@ -86,6 +81,7 @@
 }
 
 static void do_setup_status_phase(dwc_usb_t* dwc, bool is_in) {
+printf("do_setup_status_phase is_in: %d\n", is_in);
      dwc_endpoint_t* ep = &dwc->eps[0];
 
 	dwc->ep0_state = EP0_STATE_STATUS;
@@ -103,10 +99,18 @@
     printf("dwc_ep0_complete_request\n");
      dwc_endpoint_t* ep = &dwc->eps[0];
 
-    if (dwc->ep0_state == EP0_STATE_DATA_IN) {
+    if (dwc->ep0_state == EP0_STATE_STATUS) {
+       ep->txn_offset = 0;
+       ep->txn_length = 0;
+    } else if ( ep->txn_length == 0) {
+printf("dwc_otg_ep_start_transfer ???\n");
+//		dwc_otg_ep_start_transfer(ep);
+    } else if (dwc->ep0_state == EP0_STATE_DATA_IN) {
  	   if (ep->txn_offset >= ep->txn_length) {
 	        do_setup_status_phase(dwc, false);
        }
+    } else {
+	    do_setup_status_phase(dwc, true);
     }
 
 #if 0
@@ -437,7 +441,7 @@
 void dwc_handle_reset_irq(dwc_usb_t* dwc) {
     dwc_regs_t* regs = dwc->regs;
 
-	zxlogf(INFO, "dwc_handle_reset_irq\n");
+	printf("\nUSB RESET\n");
 
     dwc->ep0_state = EP0_STATE_DISCONNECTED;
 
@@ -521,7 +525,7 @@
 	 
 	 
 	if (grxstsp.epnum != 0)
-		grxstsp.epnum = 2;
+		grxstsp.epnum = 2; // ??????
 	/* Get pointer to EP structure */
 //	ep = &pcd->dwc_eps[status.b.epnum].dwc_ep;
 
@@ -600,7 +604,7 @@
 			if (diepint.xfercompl) {
 printf("diepint.xfercompl\n");
 				/* Disable the NP Tx FIFO Empty Interrrupt  */
-		        regs->gintmsk.nptxfempty = 1;
+		        regs->gintmsk.nptxfempty = 0;
 				/* Clear the bit in DIEPINTn for this interrupt */
 				regs->depin[epnum].diepint.xfercompl = 1;
 				/* Complete the transfer */
diff --git a/system/dev/usb/dwc2-device/dwc2.c b/system/dev/usb/dwc2-device/dwc2.c
index 1e9f146..7297824 100644
--- a/system/dev/usb/dwc2-device/dwc2.c
+++ b/system/dev/usb/dwc2-device/dwc2.c
@@ -170,6 +170,7 @@
     dwc_interrupts_t interrupts = regs->gintsts;
     dwc_interrupts_t mask = regs->gintmsk;
 
+/*
 printf("dwc_handle_irq:");
 if (interrupts.modemismatch) printf(" modemismatch");
 if (interrupts.otgintr) printf(" otgintr");
@@ -203,13 +204,13 @@
 if (interrupts.sessreqintr) printf(" sessreqintr");
 if (interrupts.wkupintr) printf(" wkupintr");
 printf("\n");
-
+*/
     // clear interrupt
     uint32_t gotgint = regs->gotgint;
     regs->gotgint = gotgint;
 
 // acknowledge interrupts
-printf("interrupts: %08x mask: %08x ack: %08x\n", interrupts.val, mask.val, interrupts.val & mask.val);
+//printf("interrupts: %08x mask: %08x ack: %08x\n", interrupts.val, mask.val, interrupts.val & mask.val);
     interrupts.val &= mask.val;
     regs->gintsts = interrupts;
 
@@ -225,32 +226,26 @@
     if (interrupts.enumdone) {
         dwc_handle_enumdone_irq(dwc);
     }
-//#ifndef ENABLE_MPI
     if (interrupts.inepintr) {
         dwc_handle_inepintr_irq(dwc);
     }
     if (interrupts.outepintr) {
         dwc_handle_outepintr_irq(dwc);
     }
-//#endif
     if (interrupts.nptxfempty) {
         dwc_handle_nptxfempty_irq(dwc);
     }
-
-#if 0 // ENABLE_MPI
-    sleep(1);
-    dwc_handle_outepintr_irq(dwc);
-    dwc_handle_inepintr_irq(dwc);
-#endif
 }
 
+
+//#define POLL 1
+
 // Thread to handle interrupts.
 static int dwc_irq_thread(void* arg) {
     dwc_usb_t* dwc = (dwc_usb_t*)arg;
 
-//sleep(2);
-
     while (1) {
+#ifndef POLL
         zx_status_t wait_res = zx_interrupt_wait(dwc->irq_handle, NULL);
         if (wait_res != ZX_OK) {
             zxlogf(ERROR, "dwc_usb: irq wait failed, retcode = %d\n", wait_res);
@@ -258,6 +253,7 @@
 
         dwc_handle_irq(dwc);
         usleep(2000); // this is terrible
+#endif
         dwc_handle_irq(dwc);
     }
 
