X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=target_firmware%2Fmagpie_fw_dev%2Ftarget%2Fhif%2Fk2_fw_usb_api.c;h=395aaa9f18a226dab247fd592e6528a249e54cf6;hb=1702f968d7c3399352b7f2695e45c2daac265222;hp=e954539c6be2ef1bde05d82a43329f91936067d7;hpb=024df3f6d90e4518e0143d07ddc523bc9b2c6542;p=open-ath9k-htc-firmware.git diff --git a/target_firmware/magpie_fw_dev/target/hif/k2_fw_usb_api.c b/target_firmware/magpie_fw_dev/target/hif/k2_fw_usb_api.c index e954539..395aaa9 100755 --- a/target_firmware/magpie_fw_dev/target/hif/k2_fw_usb_api.c +++ b/target_firmware/magpie_fw_dev/target/hif/k2_fw_usb_api.c @@ -401,201 +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); } - -/* - * -- usb1.1 ep6 fix -- - */ -extern uint16_t u8UsbConfigValue; -extern uint16_t u8UsbInterfaceValue; -extern uint16_t u8UsbInterfaceAlternateSetting; -extern SetupPacket ControlCmd; -extern void vUsbClrEPx(void); - -void vUSBFIFO_EP6Cfg_FS_patch(void) -{ -#if (FS_C1_I0_A0_EP_NUMBER >= 6) - int i; - - //EP0X06 - mUsbEPMap(EP6, FS_C1_I0_A0_EP6_MAP); - mUsbFIFOMap(FS_C1_I0_A0_EP6_FIFO_START, FS_C1_I0_A0_EP6_FIFO_MAP); - mUsbFIFOConfig(FS_C1_I0_A0_EP6_FIFO_START, FS_C1_I0_A0_EP6_FIFO_CONFIG); - - for(i = FS_C1_I0_A0_EP6_FIFO_START + 1 ; - i < FS_C1_I0_A0_EP6_FIFO_START + FS_C1_I0_A0_EP6_FIFO_NO ; i ++) - { - mUsbFIFOConfig(i, (FS_C1_I0_A0_EP6_FIFO_CONFIG & (~BIT7)) ); - } - - mUsbEPMxPtSzHigh(EP6, FS_C1_I0_A0_EP6_DIRECTION, (FS_C1_I0_A0_EP6_MAX_PACKET & 0x7ff)); - mUsbEPMxPtSzLow(EP6, FS_C1_I0_A0_EP6_DIRECTION, (FS_C1_I0_A0_EP6_MAX_PACKET & 0x7ff)); - mUsbEPinHighBandSet(EP6 , FS_C1_I0_A0_EP6_DIRECTION, FS_C1_I0_A0_EP6_MAX_PACKET); #endif -} - -void vUsbFIFO_EPxCfg_FS_patch(void) -{ - switch (u8UsbConfigValue) - { - #if (FS_CONFIGURATION_NUMBER >= 1) - // Configuration 0X01 - case 0X01: - switch (u8UsbInterfaceValue) - { - #if (FS_C1_INTERFACE_NUMBER >= 1) - // Interface 0 - case 0: - switch (u8UsbInterfaceAlternateSetting) - { - - #if (FS_C1_I0_ALT_NUMBER >= 1) - // AlternateSetting 0 - case 0: - - // snapped.... - - // patch up this ep6_fs config - vUSBFIFO_EP6Cfg_FS_patch(); - - break; - - #endif - default: - break; - } - break; - #endif - default: - break; - } - break; - #endif - default: - break; - } - //mCHECK_STACK(); -} - - -BOOLEAN bSet_configuration_patch(void) -{ - //A_PRINTF("bSet_configuration...\n\r"); - - bSet_configuration(); - - if (mLOW_BYTE(mDEV_REQ_VALUE()) == 0) - { - // snapped.... - ; - } - else - { - if (mUsbHighSpeedST()) // First judge HS or FS?? - { - // snapped.... - ; - } - else - { - // snapped.... - vUsbFIFO_EPxCfg_FS_patch(); - } - - // snapped.... - } - - eUsbCxFinishAction = ACT_DONE; - return TRUE; -} - -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; -} - -extern BOOLEAN bStandardCommand(void); - -BOOLEAN bStandardCommand_patch(void) -{ - if (mDEV_REQ_REQ() == USB_SET_CONFIGURATION) { - A_USB_SET_CONFIG(); - -#if ENABLE_SWAP_DATA_MODE - // SWAP FUNCTION should be enabled while DMA engine is not working, - // the best place to enable it is before we trigger the DMA - MAGPIE_REG_USB_RX0_SWAP_DATA = 0x1; - MAGPIE_REG_USB_TX0_SWAP_DATA = 0x1; - - #if SYSTEM_MODULE_HP_EP5 - MAGPIE_REG_USB_RX1_SWAP_DATA = 0x1; - #endif - - #if SYSTEM_MODULE_HP_EP6 - MAGPIE_REG_USB_RX2_SWAP_DATA = 0x1; - #endif - -#endif //ENABLE_SWAP_DATA_MODE - return TRUE; - } - else { - return bStandardCommand(); - } -} - -#endif - -