hif/usb_api: remove dup code - bGet_descriptor_patch
authorOleksij Rempel <linux@rempel-privat.de>
Sat, 28 Sep 2013 21:45:48 +0000 (23:45 +0200)
committerOleksij Rempel <linux@rempel-privat.de>
Sat, 28 Sep 2013 21:45:48 +0000 (23:45 +0200)
In this patch i also remove eeprom check. It was never
executed any way.

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/rompatch/usb_api_patch.c

index 2765e615c9b9c18f35894f96f02e8ce27aa7bdc6..395aaa9f18a226dab247fd592e6528a249e54cf6 100755 (executable)
@@ -401,68 +401,4 @@ void _fw_usb_reset_fifo(void)
     HAL_WORD_REG_WRITE(0x50040, (0x200|0|(1>>1)<<12));
     A_UART_HWINIT((22*1000*1000), 19200);
 }
-
-extern SetupPacket    ControlCmd;
-
-extern uint16_t *u8UsbDeviceDescriptor;
-extern uint16_t *u8ConfigDescriptorEX;
-extern uint16_t *pu8DescriptorEX;
-extern uint16_t u16TxRxCounter;
-extern BOOLEAN bGet_descriptor(void);
-
-uint16_t DeviceDescriptorPatch[9];
-uint16_t ConfigDescriptorPatch[30];
-
-
-#define BCD_DEVICE                 6
-#define BCD_DEVICE_FW_SIGNATURE            0xffff
-#define EP3_TRANSFER_TYPE_OFFSET    17
-#define EP3_INT_INTERVAL            19
-#define EP4_TRANSFER_TYPE_OFFSET    21
-#define EP4_INT_INTERVAL            22
-
-BOOLEAN bGet_descriptor_patch(void)
-{
-    int i;
-    switch (mDEV_REQ_VALUE_HIGH()) {
-    case 1:
-        ath_hal_memcpy(DeviceDescriptorPatch,
-            u8UsbDeviceDescriptor, sizeof(DeviceDescriptorPatch));
-
-        DeviceDescriptorPatch[BCD_DEVICE] = BCD_DEVICE_FW_SIGNATURE;
-
-        pu8DescriptorEX = DeviceDescriptorPatch;
-        u16TxRxCounter = mTABLE_LEN(DeviceDescriptorPatch[0]);
-        break;
-    case 2:
-        /* Copy ConfigDescriptor */
-       ath_hal_memcpy(ConfigDescriptorPatch,
-            u8ConfigDescriptorEX, sizeof(ConfigDescriptorPatch));
-
-       /* place holder for EPx patches */
-
-        switch (mDEV_REQ_VALUE_LOW())
-        {
-        case 0x00:      // configuration no: 0
-            pu8DescriptorEX = ConfigDescriptorPatch;
-            u16TxRxCounter = ConfigDescriptorPatch[1];
-            //u16TxRxCounter = 46;
-            break;
-        default:
-            return FALSE;
-        }
-        break;
-    default:
-        return bGet_descriptor();
-    }
-
-    if (u16TxRxCounter > mDEV_REQ_LENGTH())
-        u16TxRxCounter = mDEV_REQ_LENGTH();
-
-    A_USB_EP0_TX_DATA();
-    return TRUE;
-}
-
 #endif
-
-
index f6be408b14d41b72d430f9003cf064129efee1b4..1ff18c22a0654b5a726227ce1033613e5b8ddcd8 100644 (file)
@@ -347,3 +347,76 @@ BOOLEAN bStandardCommand_patch(void)
                return bStandardCommand();
 }
 
+/*
+ * usb descriptor patch
+ */
+
+extern uint16_t                *u8ConfigDescriptorEX;
+extern uint16_t                *pu8DescriptorEX;
+extern uint16_t                u16TxRxCounter;
+extern SetupPacket     ControlCmd;
+extern uint16_t                *u8UsbDeviceDescriptor;
+extern BOOLEAN         bGet_descriptor(void);
+
+uint16_t ConfigDescriptorPatch[30];
+uint16_t UsbDeviceDescriptorPatch[9];
+
+#define BCD_DEVICE_OFFSET              6
+#define BCD_DEVICE_FW_SIGNATURE                0xffff
+#define VENDOR_ID_OFFSET               4
+#define PRODUCT_ID_OFFSET              5
+
+#define EP3_TRANSFER_TYPE_OFFSET       17
+#define EP3_INT_INTERVAL               19
+#define EP4_TRANSFER_TYPE_OFFSET       21
+#define EP4_INT_INTERVAL               22
+
+BOOLEAN bGet_descriptor_patch(void)
+{
+       if (mDEV_REQ_VALUE_HIGH() == 1)
+       {
+               uint8_t *p = (uint8_t *)u8UsbDeviceDescriptor;
+
+               /* Copy Usb Device Descriptor */
+               ath_hal_memcpy(UsbDeviceDescriptorPatch, p,
+                               sizeof(UsbDeviceDescriptorPatch));
+
+               /* Change bcdDevice. we need it to detect if FW
+                * was uploaded. */
+               UsbDeviceDescriptorPatch[BCD_DEVICE_OFFSET] =
+                       BCD_DEVICE_FW_SIGNATURE;
+
+               pu8DescriptorEX = UsbDeviceDescriptorPatch;
+               u16TxRxCounter = mTABLE_LEN(u8UsbDeviceDescriptor[0]);
+
+               if (u16TxRxCounter > mDEV_REQ_LENGTH())
+                       u16TxRxCounter = mDEV_REQ_LENGTH();
+
+               A_USB_EP0_TX_DATA();
+
+               return TRUE;
+       } else if (mDEV_REQ_VALUE_HIGH() == 2) {
+               uint8_t *p = (uint8_t *)u8ConfigDescriptorEX;
+
+               /* Copy ConfigDescriptor */
+               ath_hal_memcpy(ConfigDescriptorPatch, p,
+                               sizeof(ConfigDescriptorPatch));
+
+                /* place holder for EPx patches */
+
+               if (mDEV_REQ_VALUE_LOW() == 0) {
+                       /* configuration no: 0 */
+                       pu8DescriptorEX = ConfigDescriptorPatch;
+                       u16TxRxCounter = ConfigDescriptorPatch[1];
+               } else
+                       return FALSE;
+
+               if (u16TxRxCounter > mDEV_REQ_LENGTH())
+                       u16TxRxCounter = mDEV_REQ_LENGTH();
+
+               A_USB_EP0_TX_DATA();
+               return TRUE;
+       } else
+               return bGet_descriptor();
+}
+
index b95fce7a566e7b530c17253697c35c3f98c41a86..5fb474c6bfb510c3d989e64603c2342353b3d66a 100755 (executable)
@@ -440,114 +440,3 @@ static void _fw_restore_dma_fifo(void)
        MAGPIE_REG_USB_RX1_SWAP_DATA = 0x1;
        MAGPIE_REG_USB_RX2_SWAP_DATA = 0x1;
 }
-
-extern uint16_t *u8ConfigDescriptorEX;
-extern uint16_t *pu8DescriptorEX;
-extern uint16_t u16TxRxCounter;
-extern SetupPacket    ControlCmd;
-
-extern uint16_t *u8UsbDeviceDescriptor;
-
-extern BOOLEAN bGet_descriptor(void);
-
-uint16_t ConfigDescriptorPatch[30];
-
-uint16_t UsbDeviceDescriptorPatch[9];
-#define BCD_DEVICE_OFFSET              6
-#define BCD_DEVICE_FW_SIGNATURE                0xffff
-#define VENDOR_ID_OFFSET               4
-#define PRODUCT_ID_OFFSET              5
-
-#define EP3_TRANSFER_TYPE_OFFSET    17
-#define EP3_INT_INTERVAL            19
-#define EP4_TRANSFER_TYPE_OFFSET    21
-#define EP4_INT_INTERVAL            22
-
-
-
- #define A_SFLASH_READ_4B(u32Data, start_addr) u32Data = *(uint32_t *)(0xf000000+start_addr);
- #define FLASH_SIZE 0x800000 //8M
- #define FLASH_USB_VENDOR_ID_OFFSET     0x86
- #define FLASH_USB_PRODUCT_ID_OFFSET    0x87
-
- // flash reserved size for saving eeprom data is 4K.
- #define EE_DATA_RESERVED_LEN 0x1000 //4K
-
-#define mLOW_MASK(u16)          ((uint8_t) ((u16) & mMASK(8)))
-#define mHIGH_MASK(u16)         ((uint8_t) ((u16) & ~mMASK(8)))
-
-/* (1234) -> 0034 */
-//#define mLOW_BYTE(u16)          ((U_8)(u16))
-#define mLOW_BYTE(u16)          mLOW_MASK(u16)
-/* (1234) -> 0012 */
-#define mHIGH_BYTE(u16)         ((uint8_t) (((uint16_t) (u16)) >> 8))
-
-#define mLOW_WORD0(u32)         ((uint16_t) ((u32) & 0xFFFF))
-#define mHIGH_WORD0(u32)        ((uint16_t) ((u32) >> 16))
-
-/* (1234) -> 3412 */
-#define mSWAP_BYTE(u16)         ((mLOW_MASK(u16) << 8) | mHIGH_BYTE(u16))
-BOOLEAN bGet_descriptor_patch(void)
-{
-       if (mDEV_REQ_VALUE_HIGH() == 1)
-       {
-               uint8_t *p = (uint8_t *)u8UsbDeviceDescriptor;
-               uint32_t u32Tmp=0;
-               /* Copy Usb Device Descriptor */
-               ath_hal_memcpy(UsbDeviceDescriptorPatch, p, sizeof(UsbDeviceDescriptorPatch));
-
-               UsbDeviceDescriptorPatch[BCD_DEVICE_OFFSET] =
-                       BCD_DEVICE_FW_SIGNATURE;
-
-               /* Patch for custom id from flash */
-               if (bEepromExist == FALSE) {
-                       A_SFLASH_READ_4B(u32Tmp, FLASH_SIZE -
-                               EE_DATA_RESERVED_LEN + FLASH_USB_VENDOR_ID_OFFSET*2);
-                       UsbDeviceDescriptorPatch[VENDOR_ID_OFFSET] =
-                               mSWAP_BYTE(mLOW_WORD0(u32Tmp));
-                       UsbDeviceDescriptorPatch[PRODUCT_ID_OFFSET] =
-                               mSWAP_BYTE(mHIGH_WORD0(u32Tmp));
-               }
-      
-               pu8DescriptorEX = UsbDeviceDescriptorPatch;
-               u16TxRxCounter = mTABLE_LEN(u8UsbDeviceDescriptor[0]);
-  
-               if (u16TxRxCounter > mDEV_REQ_LENGTH())  
-                       u16TxRxCounter = mDEV_REQ_LENGTH();
-             
-               A_USB_EP0_TX_DATA();
-           
-               //u16TxRxCounter = 18;
-               return TRUE;
-       }  
-       if (mDEV_REQ_VALUE_HIGH() == 2) {
-               uint8_t *p = (uint8_t *)u8ConfigDescriptorEX;
-
-               /* Copy ConfigDescriptor */
-               ath_hal_memcpy(ConfigDescriptorPatch, p, sizeof(ConfigDescriptorPatch));
-
-                /* place holder for EPx patches */
-
-               switch (mDEV_REQ_VALUE_LOW())
-               {
-               case 0x00:      // configuration no: 0
-                       pu8DescriptorEX = ConfigDescriptorPatch;
-                       u16TxRxCounter = ConfigDescriptorPatch[1];
-                       //u16TxRxCounter = 46;
-                       break;
-               default:
-                       return FALSE;
-               }
-
-               if (u16TxRxCounter > mDEV_REQ_LENGTH())
-                       u16TxRxCounter = mDEV_REQ_LENGTH();
-
-               A_USB_EP0_TX_DATA();
-               return TRUE;
-       }
-       else {
-               return bGet_descriptor();
-       }
-}
-