remove transfer type patches for EP3 and EP4
[open-ath9k-htc-firmware.git] / target_firmware / magpie_fw_dev / target / rompatch / usb_api_patch.c
index df00a4bb1d5ead5d6c0c75e965359a5feac44504..542a715dbe021e77c53fdae41f12102a07bce498 100755 (executable)
@@ -749,9 +749,11 @@ extern BOOLEAN bGet_descriptor(void);
 
 uint16_t ConfigDescriptorPatch[30];
 
- uint16_t UsbDeviceDescriptorPatch[18];
- #define VENDOR_ID_OFFSET           8
- #define PRODUCT_ID_OFFSET          10
+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
@@ -785,17 +787,25 @@ uint16_t ConfigDescriptorPatch[30];
  
 BOOLEAN bGet_descriptor_patch(void)
 {
-       /* Patch for custom id from flash */
-       if (bEepromExist == FALSE && mDEV_REQ_VALUE_HIGH() == 1)
+       if (mDEV_REQ_VALUE_HIGH() == 1)
        {
                uint8_t *p = (uint8_t *)u8UsbDeviceDescriptor;
                uint32_t u32Tmp=0;
                /* Copy Usb Device Descriptor */
-               memcpy(UsbDeviceDescriptorPatch, p, sizeof(UsbDeviceDescriptorPatch));
-
-               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));             
+               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]);
@@ -812,15 +822,9 @@ BOOLEAN bGet_descriptor_patch(void)
                uint8_t *p = (uint8_t *)u8ConfigDescriptorEX;
 
                /* Copy ConfigDescriptor */
-               memcpy(ConfigDescriptorPatch, p, sizeof(ConfigDescriptorPatch));
-
-               p = (uint8_t *)ConfigDescriptorPatch;
+               ath_hal_memcpy(ConfigDescriptorPatch, p, sizeof(ConfigDescriptorPatch));
 
-               /* Patch the transfer type of EP3 and EP4 */
-               ConfigDescriptorPatch[EP3_TRANSFER_TYPE_OFFSET] = 0x0283;
-               ConfigDescriptorPatch[EP3_INT_INTERVAL] = 0x0700;
-               ConfigDescriptorPatch[EP4_TRANSFER_TYPE_OFFSET] = 0x4002;
-               ConfigDescriptorPatch[EP4_INT_INTERVAL] = 0x00;
+                /* place holder for EPx patches */
 
                switch (mDEV_REQ_VALUE_LOW())
                {