From ad261bc166a1a1f2723bf6e212feddab450d0d4f Mon Sep 17 00:00:00 2001 From: Oleksij Rempel Date: Mon, 30 Sep 2013 12:05:31 +0200 Subject: [PATCH] hif/usb_api: remove dup code - _fw_usbfifo_recv_command and _fw_usbfifo_init Signed-off-by: Oleksij Rempel --- .../magpie_fw_dev/target/hif/k2_fw_usb_api.c | 27 -------- .../target/hif/usb_api_main_patch.c | 29 +++++++++ .../target/rompatch/usb_api_patch.c | 62 ++++++------------- 3 files changed, 48 insertions(+), 70 deletions(-) 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 395aaa9..bc6948d 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 @@ -44,7 +44,6 @@ #include "sys_cfg.h" -typedef void (* USBFIFO_recv_command)(VBUF *cmd); void _fw_usb_suspend_reboot(); extern Action eUsbCxFinishAction; @@ -52,8 +51,6 @@ extern CommandType eUsbCxCommand; extern BOOLEAN UsbChirpFinish; extern USB_FIFO_CONFIG usbFifoConf; -USBFIFO_recv_command m_origUsbfifoRecvCmd = NULL; - #if SYSTEM_MODULE_USB #define vUsb_ep0end(void) \ { \ @@ -76,30 +73,6 @@ USBFIFO_recv_command m_origUsbfifoRecvCmd = NULL; #define vUsb_resm() USB_BYTE_REG_WRITE(ZM_INTR_SOURCE_7_OFFSET, \ (USB_BYTE_REG_READ(ZM_INTR_SOURCE_7_OFFSET)&~BIT3)) -void _fw_usbfifo_recv_command(VBUF *buf) -{ - A_UINT8 *cmd_data; - A_UINT32 tmp; - - cmd_data = (A_UINT8 *)(buf->desc_list->buf_addr + buf->desc_list->data_offset); - tmp = *((A_UINT32 *)cmd_data); - if ( tmp == 0xFFFFFFFF ) { - _fw_usb_suspend_reboot(); - } else { - m_origUsbfifoRecvCmd(buf); - } -} - -void _fw_usbfifo_init(USB_FIFO_CONFIG *pConfig) -{ - m_origUsbfifoRecvCmd = pConfig->recv_command; - - usbFifoConf.get_command_buf = pConfig->get_command_buf; - usbFifoConf.recv_command = _fw_usbfifo_recv_command; - usbFifoConf.get_event_buf = pConfig->get_event_buf; - usbFifoConf.send_event_done = pConfig->send_event_done; -} - #define CHECK_SOF_LOOP_CNT 50 void _fw_usb_suspend_reboot() diff --git a/target_firmware/magpie_fw_dev/target/hif/usb_api_main_patch.c b/target_firmware/magpie_fw_dev/target/hif/usb_api_main_patch.c index 1ff18c2..06e2451 100644 --- a/target_firmware/magpie_fw_dev/target/hif/usb_api_main_patch.c +++ b/target_firmware/magpie_fw_dev/target/hif/usb_api_main_patch.c @@ -1,3 +1,4 @@ +/* shared patches for k2 and magpie */ #include "usb_defs.h" #include "usb_type.h" @@ -15,6 +16,34 @@ extern USB_FIFO_CONFIG usbFifoConf; extern Action eUsbCxFinishAction; +extern void _fw_usb_suspend_reboot(); + +typedef void (* USBFIFO_recv_command)(VBUF *cmd); +USBFIFO_recv_command m_origUsbfifoRecvCmd = NULL; + +void _fw_usbfifo_recv_command(VBUF *buf) +{ + uint8_t *cmd_data; + uint32_t tmp; + + cmd_data = (uint8_t *)(buf->desc_list->buf_addr + + buf->desc_list->data_offset); + tmp = *((uint32_t *)cmd_data); + if (tmp == 0xFFFFFFFF) + _fw_usb_suspend_reboot(); + else + m_origUsbfifoRecvCmd(buf); +} + +void _fw_usbfifo_init(USB_FIFO_CONFIG *pConfig) +{ + m_origUsbfifoRecvCmd = pConfig->recv_command; + + usbFifoConf.get_command_buf = pConfig->get_command_buf; + usbFifoConf.recv_command = _fw_usbfifo_recv_command; + usbFifoConf.get_event_buf = pConfig->get_event_buf; + usbFifoConf.send_event_done = pConfig->send_event_done; +} void cold_reboot(void) { diff --git a/target_firmware/magpie_fw_dev/target/rompatch/usb_api_patch.c b/target_firmware/magpie_fw_dev/target/rompatch/usb_api_patch.c index 5fb474c..52c692e 100755 --- a/target_firmware/magpie_fw_dev/target/rompatch/usb_api_patch.c +++ b/target_firmware/magpie_fw_dev/target/rompatch/usb_api_patch.c @@ -46,8 +46,6 @@ #define measure_time 0 #define measure_time_pll 10000000 -typedef void (* USBFIFO_recv_command)(VBUF *cmd); - extern Action eUsbCxFinishAction; extern CommandType eUsbCxCommand; extern BOOLEAN UsbChirpFinish; @@ -55,8 +53,6 @@ extern USB_FIFO_CONFIG usbFifoConf; extern uint16_t *pu8DescriptorEX; extern uint16_t u16TxRxCounter; -USBFIFO_recv_command m_origUsbfifoRecvCmd = NULL; - void zfTurnOffPower_patch(void); static void _fw_reset_dma_fifo(); @@ -67,55 +63,36 @@ static void _fw_power_off(); BOOLEAN bEepromExist = TRUE; BOOLEAN bJumptoFlash = FALSE; -void _fw_usbfifo_recv_command(VBUF *buf) +void _fw_usb_suspend_reboot() { - A_UINT8 *cmd_data; - A_UINT32 tmp; - - cmd_data = (A_UINT8 *)(buf->desc_list->buf_addr + buf->desc_list->data_offset); - tmp = *((A_UINT32 *)cmd_data); - if ( tmp == 0xFFFFFFFF ) { - // reset usb/wlan dma - _fw_reset_dma_fifo(); - - // restore gpio setting and usb/wlan dma state - _fw_restore_dma_fifo(); + /* reset usb/wlan dma */ + _fw_reset_dma_fifo(); - // set clock to bypass mode - 40Mhz from XTAL - HAL_WORD_REG_WRITE(MAGPIE_REG_CPU_PLL_BYPASS_ADDR, (BIT0|BIT4)); + /* restore gpio setting and usb/wlan dma state */ + _fw_restore_dma_fifo(); - A_DELAY_USECS(100); // wait for stable + /* set clock to bypass mode - 40Mhz from XTAL */ + HAL_WORD_REG_WRITE(MAGPIE_REG_CPU_PLL_BYPASS_ADDR, (BIT0|BIT4)); - HAL_WORD_REG_WRITE(MAGPIE_REG_CPU_PLL_ADDR, (BIT16)); + A_DELAY_USECS(100); /* wait for stable */ - A_DELAY_USECS(100); // wait for stable - A_UART_HWINIT((40*1000*1000), 19200); + HAL_WORD_REG_WRITE(MAGPIE_REG_CPU_PLL_ADDR, (BIT16)); - A_CLOCK_INIT(40); + A_DELAY_USECS(100); /* wait for stable */ + A_UART_HWINIT((40*1000*1000), 19200); - if (!bEepromExist) { //jump to flash boot (eeprom data in flash) - bJumptoFlash = TRUE; - A_PRINTF("Jump to Flash BOOT\n"); - app_start(); - }else{ - A_PRINTF("receive the suspend command...\n"); - // reboot..... - A_USB_JUMP_BOOT(); - } + A_CLOCK_INIT(40); + if (!bEepromExist) { /* jump to flash boot (eeprom data in flash) */ + bJumptoFlash = TRUE; + A_PRINTF("Jump to Flash BOOT\n"); + app_start(); } else { - m_origUsbfifoRecvCmd(buf); + A_PRINTF("receive the suspend command...\n"); + /* reboot..... */ + A_USB_JUMP_BOOT(); } -} -void _fw_usbfifo_init(USB_FIFO_CONFIG *pConfig) -{ - m_origUsbfifoRecvCmd = pConfig->recv_command; - - usbFifoConf.get_command_buf = pConfig->get_command_buf; - usbFifoConf.recv_command = _fw_usbfifo_recv_command; - usbFifoConf.get_event_buf = pConfig->get_event_buf; - usbFifoConf.send_event_done = pConfig->send_event_done; } #define PCI_RC_RESET_BIT BIT6 @@ -123,7 +100,6 @@ void _fw_usbfifo_init(USB_FIFO_CONFIG *pConfig) #define PCI_RC_PLL_RESET_BIT BIT8 #define PCI_RC_PHY_SHIFT_RESET_BIT BIT10 - /* * -- urn_off_merlin -- * . values suggested from Lalit -- 2.31.1