hif/usb_api: remove dup code - usb_reg_in_patch
authorOleksij Rempel <linux@rempel-privat.de>
Fri, 27 Sep 2013 22:17:41 +0000 (00:17 +0200)
committerOleksij Rempel <linux@rempel-privat.de>
Fri, 27 Sep 2013 22:17:41 +0000 (00:17 +0200)
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
target_firmware/magpie_fw_dev/target/hif/k2_fw_usb_api.c
target_firmware/magpie_fw_dev/target/hif/usb_api_main_patch.c
target_firmware/magpie_fw_dev/target/init/app_start.c
target_firmware/magpie_fw_dev/target/rompatch/usb_api_patch.c

index 4aceaef06573d83820816cec221f0672cea5c709..e954539c6be2ef1bde05d82a43329f91936067d7 100755 (executable)
@@ -508,99 +508,6 @@ BOOLEAN bSet_configuration_patch(void)
     return TRUE;
 }
 
-
-/*
- * -- support more than 64 bytes command on ep3 -- 
- */
-void vUsb_Status_In_patch(void)
-{
-    uint16_t count;
-    uint16_t remainder;
-    u16_t RegBufLen;
-    BOOLEAN cmdEnd = FALSE;
-
-    static u16_t mBufLen;
-    static VBUF *evntbuf = NULL;
-    static volatile u32_t *regaddr;
-    static BOOLEAN cmd_is_new = TRUE;
-
-    if( cmd_is_new )
-    {
-        evntbuf = usbFifoConf.get_event_buf();
-        if ( evntbuf != NULL )
-        {
-           regaddr = (u32_t *)VBUF_GET_DATA_ADDR(evntbuf);
-            mBufLen = evntbuf->buf_length;
-        }
-        else
-        {
-            mUSB_STATUS_IN_INT_DISABLE();
-            goto ERR_DONE;
-        }
-    
-    }
-
-//    if( mBufLen>bUSB_EP_MAX_PKT_SIZE_64 )
-//        A_PRINTF("EP3 send %d bytes to host \n", mBufLen);
-
-//    while(1)
-    {
-        if( mBufLen > bUSB_EP_MAX_PKT_SIZE_64 ) {
-            RegBufLen = bUSB_EP_MAX_PKT_SIZE_64;
-            mBufLen -= bUSB_EP_MAX_PKT_SIZE_64;
-        }
-        // TODO: 64 byes... controller supposed will take care of zero-length?
-        else {
-            RegBufLen = mBufLen;
-            cmdEnd = TRUE;
-        }
-
-        /* INT use EP3 */
-        for(count = 0; count < (RegBufLen / 4); count++)
-        {
-            USB_WORD_REG_WRITE(ZM_EP3_DATA_OFFSET, *regaddr);
-            regaddr++;
-        }
-        
-        remainder = RegBufLen % 4;
-        
-        if (remainder)
-        {
-            switch(remainder)
-            {
-            case 3:
-                USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x7);
-                break;
-            case 2:
-                USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x3);
-                break;
-            case 1:
-                USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x1);
-                break;
-            }
-        
-            USB_WORD_REG_WRITE(ZM_EP3_DATA_OFFSET, *regaddr);
-
-            // Restore CBus FIFO size to word size            
-            USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0xF);
-        }
-
-        mUSB_EP3_XFER_DONE();
-        
-//        if( mBufLen<=bUSB_EP_MAX_PKT_SIZE_64 )
-//            break;   
-    }
-
-    if ( evntbuf != NULL && cmdEnd )
-    {
-        usbFifoConf.send_event_done(evntbuf);
-        cmd_is_new = TRUE;
-    }
-    
-ERR_DONE:
-    ;
-}
-
 extern uint16_t *u8UsbDeviceDescriptor;
 extern uint16_t *u8ConfigDescriptorEX;
 extern uint16_t *pu8DescriptorEX;
index 5daf1766447bf3fd311b192b1504436d059748b3..10a1123a97c7405b04c086f2f95c8ca8da9858cc 100644 (file)
@@ -26,6 +26,80 @@ void cold_reboot(void)
        A_USB_JUMP_BOOT();
 }
 
+/*
+ * support more than 64 bytes command on ep3
+ */
+void usb_status_in_patch(void)
+{
+       uint16_t count;
+       uint16_t remainder;
+       uint16_t reg_buf_len;
+       static uint16_t buf_len;
+       static VBUF *evntbuf = NULL;
+       static volatile uint32_t *regaddr;
+       static BOOLEAN cmd_is_new = TRUE;
+       BOOLEAN cmd_end = FALSE;
+
+       if (cmd_is_new) {
+               evntbuf = usbFifoConf.get_event_buf();
+               if (evntbuf != NULL) {
+                       regaddr = (uint32_t *)VBUF_GET_DATA_ADDR(evntbuf);
+                       buf_len = evntbuf->buf_length;
+               } else {
+                       mUSB_STATUS_IN_INT_DISABLE();
+                       return;
+               }
+
+               cmd_is_new = FALSE;
+       }
+
+       if (buf_len > USB_EP3_MAX_PKT_SIZE) {
+               reg_buf_len = USB_EP3_MAX_PKT_SIZE;
+               buf_len -= USB_EP3_MAX_PKT_SIZE;
+       }
+       /* TODO: 64 bytes...
+        * controller supposed will take care of zero-length? */
+       else {
+               reg_buf_len = buf_len;
+               cmd_end = TRUE;
+       }
+
+       /* INT use EP3 */
+       for (count = 0; count < (reg_buf_len / 4); count++)
+       {
+               USB_WORD_REG_WRITE(ZM_EP3_DATA_OFFSET, *regaddr);
+               regaddr++;
+       }
+
+       remainder = reg_buf_len % 4;
+
+       if (remainder) {
+               switch(remainder) {
+               case 3:
+                       USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x7);
+                       break;
+               case 2:
+                       USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x3);
+                       break;
+               case 1:
+                       USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x1);
+                       break;
+               }
+
+               USB_WORD_REG_WRITE(ZM_EP3_DATA_OFFSET, *regaddr);
+
+               /* Restore CBus FIFO size to word size */
+               USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0xF);
+       }
+
+       mUSB_EP3_XFER_DONE();
+
+       if (evntbuf != NULL && cmd_end) {
+               usbFifoConf.send_event_done(evntbuf);
+               cmd_is_new = TRUE;
+       }
+}
+
 /*
  * support more than 64 bytes command on ep4 
  */
index 39898c8b6b808cd28a230e887cf967deb9c8198b..563d4dec5e47a94778cf8bb3f6226f80f6dde5c2 100644 (file)
@@ -49,7 +49,7 @@ extern int _HIFusb_get_max_msg_len_patch(hif_handle_t handle, int pipe);
 extern void _HIFusb_isr_handler_patch(hif_handle_t h);
 extern BOOLEAN bSet_configuration_patch(void);
 extern void vUSBFIFO_EP6Cfg_FS_patch(void);
-extern void vUsb_Status_In_patch(void);
+extern void usb_status_in_patch(void);
 extern void _fw_usbfifo_init(USB_FIFO_CONFIG *pConfig);
 extern void zfTurnOffPower_patch(void);
 extern void zfResetUSBFIFO_patch(void);
@@ -190,7 +190,7 @@ void app_start()
                _indir_tbl.cmnos.usb._usb_reg_out = usb_reg_out_patch;
                _indir_tbl.hif._isr_handler = _HIFusb_isr_handler_patch;
                _indir_tbl.cmnos.usb._usb_set_configuration = bSet_configuration_patch;
-               _indir_tbl.cmnos.usb._usb_status_in = vUsb_Status_In_patch;
+               _indir_tbl.cmnos.usb._usb_status_in = usb_status_in_patch;
                _indir_tbl.cmnos.usb._usb_get_descriptor = bGet_descriptor_patch;
                _indir_tbl.cmnos.usb._usb_standard_cmd = bStandardCommand_patch;
                _indir_tbl.usbfifo_api._init = _fw_usbfifo_init;
index d952c7caa34f6a54a4ddef4759aabeaf3f6cd036..d01964052b483c617a8ae81d5e45fbfefeac3cb4 100755 (executable)
@@ -245,90 +245,6 @@ BOOLEAN bSet_configuration_patch(void)
 }
 
 
-/*
- * -- support more than 64 bytes command on ep3 -- 
- */
-void vUsb_Status_In_patch(void)
-{
-       uint16_t count;
-       uint16_t remainder;
-       u16_t RegBufLen;
-       BOOLEAN cmdEnd = FALSE;
-
-       static u16_t mBufLen;
-       static VBUF *evntbuf = NULL;
-       static volatile u32_t *regaddr;
-       static BOOLEAN cmd_is_new = TRUE;
-
-       if( cmd_is_new )
-       {
-               evntbuf = usbFifoConf.get_event_buf();
-               if ( evntbuf != NULL )
-               {
-                       regaddr = (u32_t *)VBUF_GET_DATA_ADDR(evntbuf);
-                       mBufLen = evntbuf->buf_length;
-               }
-               else
-               {
-                       mUSB_STATUS_IN_INT_DISABLE();
-                       goto ERR_DONE;
-               }
-
-               cmd_is_new = FALSE;
-       }
-
-       if( mBufLen > bUSB_EP_MAX_PKT_SIZE_64 ) {
-               RegBufLen = bUSB_EP_MAX_PKT_SIZE_64;
-               mBufLen -= bUSB_EP_MAX_PKT_SIZE_64;
-       }
-       // TODO: 64 byes... controller supposed will take care of zero-length?
-       else {
-               RegBufLen = mBufLen;
-               cmdEnd = TRUE;
-       }
-
-       /* INT use EP3 */
-       for(count = 0; count < (RegBufLen / 4); count++)
-       {
-               USB_WORD_REG_WRITE(ZM_EP3_DATA_OFFSET, *regaddr);
-               regaddr++;
-       }
-
-       remainder = RegBufLen % 4;
-
-       if (remainder)
-       {
-               switch(remainder)
-               {
-               case 3:
-                       USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x7);
-                       break;
-               case 2:
-                       USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x3);
-                       break;
-               case 1:
-                       USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x1);
-                       break;
-               }
-
-               USB_WORD_REG_WRITE(ZM_EP3_DATA_OFFSET, *regaddr);
-
-               // Restore CBus FIFO size to word size            
-               USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0xF);
-       }
-
-       mUSB_EP3_XFER_DONE();
-
-       if ( evntbuf != NULL && cmdEnd )
-       {
-               usbFifoConf.send_event_done(evntbuf);
-               cmd_is_new = TRUE;
-       }
-
-ERR_DONE:
-       ;
-}
-
 
 #define PCI_RC_RESET_BIT                            BIT6
 #define PCI_RC_PHY_RESET_BIT                        BIT7