X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=target_firmware%2Fmagpie_fw_dev%2Ftarget%2Fhif%2Fusb_api_main_patch.c;h=b7cbfab02f08f149569431a11e064f1ff10320f4;hb=61d9719602f505dcdd10cbba0cb957f636400763;hp=06e245147f5657969ba8e83b6a80bd8dbe942129;hpb=ad261bc166a1a1f2723bf6e212feddab450d0d4f;p=open-ath9k-htc-firmware.git 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 06e2451..b7cbfab 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,5 +1,45 @@ +/* + * Copyright (c) 2013 Qualcomm Atheros, Inc. + * Copyright (c) 2016 Oleksij Rempel + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Qualcomm Atheros nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + /* shared patches for k2 and magpie */ +#include +#include + #include "usb_defs.h" #include "usb_type.h" #include "usb_pre.h" @@ -9,6 +49,8 @@ #include "athos_api.h" #include "usbfifo_api.h" +#include "adf_os_io.h" + #include "sys_cfg.h" #define USB_EP4_MAX_PKT_SIZE bUSB_EP_MAX_PKT_SIZE_64 @@ -49,9 +91,9 @@ void cold_reboot(void) { A_PRINTF("Cold reboot initiated."); #if defined(PROJECT_MAGPIE) - HAL_WORD_REG_WRITE(WATCH_DOG_MAGIC_PATTERN_ADDR, 0); + iowrite32(WATCH_DOG_MAGIC_PATTERN_ADDR, 0); #elif defined(PROJECT_K2) - HAL_WORD_REG_WRITE(MAGPIE_REG_RST_STATUS_ADDR, 0); + iowrite32(MAGPIE_REG_RST_STATUS_ADDR, 0); #endif /* #if defined(PROJECT_MAGPIE) */ A_USB_JUMP_BOOT(); } @@ -97,7 +139,7 @@ void usb_status_in_patch(void) /* INT use EP3 */ for (count = 0; count < (reg_buf_len / 4); count++) { - USB_WORD_REG_WRITE(ZM_EP3_DATA_OFFSET, *regaddr); + iowrite32_usb(ZM_EP3_DATA_OFFSET, *regaddr); regaddr++; } @@ -106,20 +148,20 @@ void usb_status_in_patch(void) if (remainder) { switch(remainder) { case 3: - USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x7); + iowrite32_usb(ZM_CBUS_FIFO_SIZE_OFFSET, 0x7); break; case 2: - USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x3); + iowrite32_usb(ZM_CBUS_FIFO_SIZE_OFFSET, 0x3); break; case 1: - USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0x1); + iowrite32_usb(ZM_CBUS_FIFO_SIZE_OFFSET, 0x1); break; } - USB_WORD_REG_WRITE(ZM_EP3_DATA_OFFSET, *regaddr); + iowrite32_usb(ZM_EP3_DATA_OFFSET, *regaddr); /* Restore CBus FIFO size to word size */ - USB_WORD_REG_WRITE(ZM_CBUS_FIFO_SIZE_OFFSET, 0xF); + iowrite32_usb(ZM_CBUS_FIFO_SIZE_OFFSET, 0xF); } mUSB_EP3_XFER_DONE(); @@ -145,7 +187,7 @@ void usb_reg_out_patch(void) static BOOLEAN cmd_is_new = TRUE; /* get the size of this transcation */ - usbfifolen = USB_BYTE_REG_READ(ZM_EP4_BYTE_COUNT_LOW_OFFSET); + usbfifolen = ioread8_usb(ZM_EP4_BYTE_COUNT_LOW_OFFSET); if (usbfifolen > USB_EP4_MAX_PKT_SIZE) { A_PRINTF("EP4 FIFO Bug? Buffer is too big: %x\n", usbfifolen); @@ -197,7 +239,7 @@ void usb_reg_out_patch(void) /* retrieve the data from fifo */ for(ii = 0; ii < usbfifolen; ii++) { /* read fifo data out */ - ep4_data = USB_WORD_REG_READ(ZM_EP4_DATA_OFFSET); + ep4_data = ioread32_usb(ZM_EP4_DATA_OFFSET); *regaddr = ep4_data; regaddr++; } @@ -222,7 +264,7 @@ err: * but if we return here, the ep4 fifo will be lock out, * so that we still read them out but just drop it? */ for(ii = 0; ii < usbfifolen; ii++) - ep4_data = USB_WORD_REG_READ(ZM_EP4_DATA_OFFSET); + ep4_data = ioread32_usb(ZM_EP4_DATA_OFFSET); done: /* mUSB_STATUS_IN_INT_ENABLE(); */