diff options
Diffstat (limited to 'drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b')
14 files changed, 0 insertions, 2358 deletions
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_cfg.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_cfg.h deleted file mode 100644 index 9013baefcede..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_cfg.h +++ /dev/null @@ -1,121 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#ifndef _HALMAC_8822B_CFG_H_ -#define _HALMAC_8822B_CFG_H_ - -#include "halmac_8822b_pwr_seq.h" -#include "halmac_api_8822b.h" -#include "halmac_api_8822b_usb.h" -#include "halmac_api_8822b_sdio.h" -#include "halmac_api_8822b_pcie.h" -#include "../../halmac_bit2.h" -#include "../../halmac_reg2.h" -#include "../../halmac_api.h" - -#define HALMAC_TX_FIFO_SIZE_8822B 262144 /* 256k */ -#define HALMAC_TX_FIFO_SIZE_LA_8822B 131072 /* 128k */ -#define HALMAC_RX_FIFO_SIZE_8822B 24576 /* 24k */ -#define HALMAC_TX_PAGE_SIZE_8822B 128 /* PageSize 128Byte */ -#define HALMAC_TX_ALIGN_SIZE_8822B 8 -#define HALMAC_TX_PAGE_SIZE_2_POWER_8822B 7 /* 128 = 2^7 */ -#define HALMAC_SECURITY_CAM_ENTRY_NUM_8822B 64 /* CAM Entry size */ -#define HALMAC_TX_AGG_ALIGNMENT_SIZE_8822B 8 -#define HALMAC_TX_DESC_SIZE_8822B 48 -#define HALMAC_RX_DESC_SIZE_8822B 24 -#define HALMAC_RX_DESC_DUMMY_SIZE_MAX_8822B 120 -#define HALMAC_C2H_PKT_BUF_8822B 256 -#define HALMAC_RX_FIFO_EXPANDING_MODE_PKT_SIZE_MAX_8822B 80 /* align 8 Byte*/ -#define HALMAC_RX_FIFO_EXPANDING_UNIT_8822B \ - (HALMAC_RX_DESC_SIZE_8822B + HALMAC_RX_DESC_DUMMY_SIZE_MAX_8822B + \ - HALMAC_RX_FIFO_EXPANDING_MODE_PKT_SIZE) /* align 8 Byte*/ -#define HALMAC_RX_FIFO_EXPANDING_UNIT_MAX_8822B \ - (HALMAC_RX_DESC_SIZE_8822B + HALMAC_RX_DESC_DUMMY_SIZE_MAX_8822B + \ - HALMAC_RX_FIFO_EXPANDING_MODE_PKT_SIZE_MAX_8822B) /* align 8 Byte*/ - -#define HALMAC_TX_FIFO_SIZE_EX_1_BLK_8822B 196608 /* 192k */ -#define HALMAC_RX_FIFO_SIZE_EX_1_BLK_8822B \ - ((((HALMAC_RX_FIFO_EXPANDING_UNIT_8822B << 8) - 1) >> 10) \ - << 10) /* < 56k*/ -#define HALMAC_RX_FIFO_SIZE_EX_1_BLK_MAX_8822B \ - ((((HALMAC_RX_FIFO_EXPANDING_UNIT_MAX_8822B << 8) - 1) >> 10) \ - << 10) /* 55k*/ -#define HALMAC_TX_FIFO_SIZE_EX_2_BLK_8822B 131072 /* 128k */ -#define HALMAC_RX_FIFO_SIZE_EX_2_BLK_8822B 155648 /* 152k */ -#define HALMAC_TX_FIFO_SIZE_EX_3_BLK_8822B 65536 /* 64k */ -#define HALMAC_RX_FIFO_SIZE_EX_3_BLK_8822B 221184 /* 216k */ - -/* TXFIFO LAYOUT - * HIGH_QUEUE - * NORMAL_QUEUE - * LOW_QUEUE - * EXTRA_QUEUE - * PUBLIC_QUEUE -- decided after all other queue are defined - * GAP_QUEUE -- Used to separate AC queue and Rsvd page - * - * RSVD_DRIVER -- Driver used rsvd page area - * RSVD_H2C_EXTRAINFO -- Extra Information for h2c - * RSVD_H2C_QUEUE -- h2c queue in rsvd page - * RSVD_CPU_INSTRUCTION -- extend fw code - * RSVD_FW_TXBUFF -- fw used this area to send packet - * - * Symbol: HALMAC_MODE_QUEUE_UNIT_CHIP, ex: HALMAC_LB_2BULKOUT_FWCMD_PGNUM_8822B - */ -#define HALMAC_EXTRA_INFO_BUFF_SIZE_FULL_FIFO_8822B \ - 16384 /*16K, only used in init case*/ - -#define HALMAC_RSVD_DRV_PGNUM_8822B 16 /*2048*/ -#define HALMAC_RSVD_H2C_EXTRAINFO_PGNUM_8822B 32 /*4096*/ -#define HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B 8 /*1024*/ -#define HALMAC_RSVD_CPU_INSTRUCTION_PGNUM_8822B 0 /*0*/ -#define HALMAC_RSVD_FW_TXBUFF_PGNUM_8822B 4 /*512*/ - -#define HALMAC_EFUSE_SIZE_8822B 1024 /* 0x400 */ -#define HALMAC_BT_EFUSE_SIZE_8822B 128 /* 0x80 */ -#define HALMAC_EEPROM_SIZE_8822B 0x300 -#define HALMAC_CR_TRX_ENABLE_8822B \ - (BIT_HCI_TXDMA_EN | BIT_HCI_RXDMA_EN | BIT_TXDMA_EN | BIT_RXDMA_EN | \ - BIT_PROTOCOL_EN | BIT_SCHEDULE_EN | BIT_MACTXEN | BIT_MACRXEN) - -#define HALMAC_BLK_DESC_NUM_8822B 0x3 /* Only for USB */ - -/* AMPDU max time (unit : 32us) */ -#define HALMAC_AMPDU_MAX_TIME_8822B 0x70 - -/* Protect mode control */ -#define HALMAC_PROT_RTS_LEN_TH_8822B 0xFF -#define HALMAC_PROT_RTS_TX_TIME_TH_8822B 0x08 -#define HALMAC_PROT_MAX_AGG_PKT_LIMIT_8822B 0x20 -#define HALMAC_PROT_RTS_MAX_AGG_PKT_LIMIT_8822B 0x20 - -/* Fast EDCA setting */ -#define HALMAC_FAST_EDCA_VO_TH_8822B 0x06 -#define HALMAC_FAST_EDCA_VI_TH_8822B 0x06 -#define HALMAC_FAST_EDCA_BE_TH_8822B 0x06 -#define HALMAC_FAST_EDCA_BK_TH_8822B 0x06 - -/* BAR setting */ -#define HALMAC_BAR_RETRY_LIMIT_8822B 0x01 -#define HALMAC_RA_TRY_RATE_AGG_LIMIT_8822B 0x08 - -enum halmac_normal_rxagg_th_to_8822b { - HALMAC_NORMAL_RXAGG_THRESHOLD_8822B = 0xFF, - HALMAC_NORMAL_RXAGG_TIMEOUT_8822B = 0x01, -}; - -enum halmac_loopback_rxagg_th_to_8822b { - HALMAC_LOOPBACK_RXAGG_THRESHOLD_8822B = 0xFF, - HALMAC_LOOPBACK_RXAGG_TIMEOUT_8822B = 0x01, -}; - -#endif diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_phy.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_phy.c deleted file mode 100644 index c68b9e82c2e7..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_phy.c +++ /dev/null @@ -1,95 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#include "../halmac_88xx_cfg.h" -#include "halmac_8822b_cfg.h" - -/** - * ============ip sel item list============ - * HALMAC_IP_SEL_INTF_PHY - * USB2 : usb2 phy, 1byte value - * USB3 : usb3 phy, 2byte value - * PCIE1 : pcie gen1 mdio, 2byte value - * PCIE2 : pcie gen2 mdio, 2byte value - * HALMAC_IP_SEL_MAC - * USB2, USB3, PCIE1, PCIE2 : mac ip, 1byte value - * HALMAC_IP_SEL_PCIE_DBI - * USB2 USB3 : none - * PCIE1, PCIE2 : pcie dbi, 1byte value - */ - -struct halmac_intf_phy_para_ HALMAC_RTL8822B_USB2_PHY[] = { - /* {offset, value, ip sel, cut mask, platform mask} */ - {0xFFFF, 0x00, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_ALL, - HALMAC_INTF_PHY_PLATFORM_ALL}, -}; - -struct halmac_intf_phy_para_ HALMAC_RTL8822B_USB3_PHY[] = { - /* {offset, value, ip sel, cut mask, platform mask} */ - {0x0001, 0xA841, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_D, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0xFFFF, 0x0000, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_ALL, - HALMAC_INTF_PHY_PLATFORM_ALL}, -}; - -struct halmac_intf_phy_para_ HALMAC_RTL8822B_PCIE_PHY_GEN1[] = { - /* {offset, value, ip sel, cut mask, platform mask} */ - {0x0001, 0xA841, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0002, 0x60C6, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0008, 0x3596, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0009, 0x321C, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x000A, 0x9623, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0020, 0x94FF, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0021, 0xFFCF, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0026, 0xC006, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0029, 0xFF0E, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x002A, 0x1840, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0xFFFF, 0x0000, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_ALL, - HALMAC_INTF_PHY_PLATFORM_ALL}, -}; - -struct halmac_intf_phy_para_ HALMAC_RTL8822B_PCIE_PHY_GEN2[] = { - /* {offset, value, ip sel, cut mask, platform mask} */ - {0x0001, 0xA841, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0002, 0x60C6, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0008, 0x3597, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0009, 0x321C, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x000A, 0x9623, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0020, 0x94FF, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0021, 0xFFCF, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0026, 0xC006, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x0029, 0xFF0E, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0x002A, 0x3040, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C, - HALMAC_INTF_PHY_PLATFORM_ALL}, - {0xFFFF, 0x0000, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_ALL, - HALMAC_INTF_PHY_PLATFORM_ALL}, -}; diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.c deleted file mode 100644 index 08f6536840cf..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.c +++ /dev/null @@ -1,552 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#include "../halmac_88xx_cfg.h" -#include "halmac_8822b_cfg.h" - -static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_CARDEMU_TO_ACT[] = { - /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */ - {0x0012, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), 0}, /*SWR OCP = SWR OCP = 010 1382.40*/ - {0x0012, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), BIT(0)}, /*SWR OCP = 010 1382.40 */ - {0x0020, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK, - HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(0), - BIT(0)}, /*0x20[0] = 1b'1 enable LDOA12 MACRO block for all interface*/ - {0x0001, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK, - HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY, 1, - HALMAC_PWRSEQ_DELAY_MS}, /*Delay 1ms*/ - {0x0000, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK, - HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(5), - 0}, /*0x00[5] = 1b'0 release analog Ips to digital ,1:isolation*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - (BIT(4) | BIT(3) | BIT(2)), - 0}, /* disable SW LPS 0x04[10]=0 and WLSUS_EN 0x04[12:11]=0*/ - {0x0075, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), BIT(0)}, /* Disable USB suspend */ - {0x0006, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, BIT(1), - BIT(1)}, /* wait till 0x04[17] = 1 power ready*/ - {0x0075, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), 0}, /* Enable USB suspend */ - {0xFF1A, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0}, /*0xFF1A = 0 to release resume signals*/ - {0x0006, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), BIT(0)}, /* release WLON reset 0x04[16]=1*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(7), 0}, /* disable HWPDN 0x04[15]=0*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - (BIT(4) | BIT(3)), 0}, /* disable WL suspend*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), BIT(0)}, /* polling until return 0*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, BIT(0), 0}, - {0x0020, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(3), BIT(3)}, /*Enable XTAL_CLK*/ - {0x10A8, HALMAC_PWR_CUT_C_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0}, /*NFC pad enabled*/ - {0x10A9, HALMAC_PWR_CUT_C_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xef}, /*NFC pad enabled*/ - {0x10AA, HALMAC_PWR_CUT_C_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x0c}, /*NFC pad enabled*/ - {0x0068, HALMAC_PWR_CUT_C_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(4), BIT(4)}, /*SDIO pad power down disabled*/ - {0x0029, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xF9}, /*PLL seting*/ - {0x0024, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(2), 0}, /*Improve TX EVM of CH13 and some 5G channles */ - {0x0074, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(5), BIT(5)}, /*PCIE WAKE# enabled*/ - {0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0}, -}; - -static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_ACT_TO_CARDEMU[] = { - /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */ - {0x0003, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(2), 0}, /*0x02[10] = 0 Disable MCU Core*/ - {0x0093, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(3), 0}, /*LPS option 0x93[3]=0 , SWR PFM*/ - {0x001F, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0}, /*0x1F[7:0] = 0 turn off RF*/ - {0x00EF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0}, /*0xEF[7:0] = 0 turn off RF*/ - {0xFF1A, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x30}, /*0xFF1A = 0x30 to block resume signals*/ - {0x0049, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), 0}, /*Enable rising edge triggering interrupt*/ - {0x0006, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), BIT(0)}, /* release WLON reset 0x04[16]=1*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), 0}, /* Whole BB is reset */ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), BIT(1)}, /*0x04[9] = 1 turn off MAC by HW state machine*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, BIT(1), - 0}, /*wait till 0x04[9] = 0 polling until return 0 to disable*/ - {0x0020, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(3), 0}, /* XTAL_CLK gated*/ - {0x0000, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK, - HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(5), - BIT(5)}, /*0x00[5] = 1b'1 analog Ips to digital ,1:isolation*/ - {0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0}, -}; - -static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_CARDEMU_TO_SUS[] = { - /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(4) | BIT(3), - (BIT(4) | BIT(3))}, /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK, - HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(3) | BIT(4), - BIT(3)}, /*0x04[12:11] = 2b'01 enable WL suspend*/ - {0x0007, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, 0xFF, - 0x20}, /*0x07[7:0] = 0x20 SDIO SOP option to disable BG/MB/ACK/SWR*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(3) | BIT(4), - BIT(3) | BIT(4)}, /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/ - {0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, BIT(0), - BIT(0)}, /*Set SDIO suspend local register*/ - {0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_POLLING, BIT(1), 0}, /*wait power state to suspend*/ - {0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0}, -}; - -static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_SUS_TO_CARDEMU[] = { - /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(3) | BIT(7), 0}, /*clear suspend enable and power down enable*/ - {0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, BIT(0), 0}, /*Set SDIO suspend local register*/ - {0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_POLLING, BIT(1), - BIT(1)}, /*wait power state to suspend*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(3) | BIT(4), 0}, /*0x04[12:11] = 2b'01enable WL suspend*/ - {0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0}, -}; - -static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_CARDEMU_TO_CARDDIS[] = { - /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(7), - BIT(7)}, /*suspend enable and power down enable*/ - {0x0007, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK, - HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, 0xFF, - 0x20}, /*0x07=0x20 , SOP option to disable BG/MB*/ - {0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(5), 0}, /*0x67[5]=0 , BIT_PAPE_WLBT_SEL*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK, - HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(3) | BIT(4), - BIT(3)}, /*0x04[12:11] = 2b'01 enable WL suspend*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(2), BIT(2)}, /*0x04[10] = 1, enable SW LPS*/ - {0x004A, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), 0}, /*0x48[16] = 0 to disable GPIO9 as EXT WAKEUP*/ - {0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(5), - 0}, /* 0: BT PAPE control ; 1: WL BB LNAON control*/ - {0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(4), - 0}, /* 0: BT GPIO[11:10] control ; 1: WL BB LNAON control*/ - {0x004F, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(0), 0}, /* 0: BT Control*/ - {0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(1), - 0}, /* turn off BT_3DD_SYNC_B and BT_GPIO[18] */ - {0x0046, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(6), BIT(6)}, /* GPIO[6] : Output mode*/ - {0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(2), 0}, /* turn off BT_GPIO[16] */ - {0x0046, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(7), BIT(7)}, /* GPIO[7] : Output mode*/ - {0x0062, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_WRITE, BIT(4), BIT(4)}, /* GPIO[12] : Output mode */ - {0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, BIT(0), - BIT(0)}, /*Set SDIO suspend local register*/ - {0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_POLLING, BIT(1), 0}, /*wait power state to suspend*/ - {0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_PCI_MSK, - HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(1), - 0}, /*0x90[1]=0 , disable 32k clock*/ - {0x0044, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, 0xFF, - 0}, /*0x90[1]=0 , disable 32k clock by indirect access*/ - {0x0040, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, 0xFF, - 0x90}, /*0x90[1]=0 , disable 32k clock by indirect access*/ - {0x0041, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, 0xFF, - 0x00}, /*0x90[1]=0 , disable 32k clock by indirect access*/ - {0x0042, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, 0xFF, - 0x04}, /*0x90[1]=0 , disable 32k clock by indirect access*/ - {0x0081, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(7), 0}, /*0x80[15]clean fw init ready bit*/ - {0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0}, -}; - -static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_CARDDIS_TO_CARDEMU[] = { - /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */ - {0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, BIT(0), 0}, /*Set SDIO suspend local register*/ - {0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_POLLING, BIT(1), - BIT(1)}, /*wait power state to suspend*/ - {0x004A, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), 0}, /*0x48[16] = 0 to disable GPIO9 as EXT WAKEUP*/ - {0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(3) | BIT(4) | BIT(7), - 0}, /*clear suspend enable and power down enable*/ - {0x0301, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0}, - {0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0}, -}; - -static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_ACT_TO_LPS[] = { - /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */ - {0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(2), BIT(2)}, /*Enable 32k calibration and thermal meter*/ - {0x0199, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(3), BIT(3)}, /*Register write data of 32K calibration*/ - {0x019B, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(7), BIT(7)}, /*Enable 32k calibration reg write*/ - {0x1138, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0) | BIT(1), BIT(0) | BIT(1)}, /*set RPWM IMR*/ - {0x0194, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), BIT(0)}, /* enable 32K CLK*/ - {0x0093, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x42}, /* LPS Option MAC OFF enable*/ - {0x0092, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x20}, /* LPS Option Enable memory to deep sleep mode*/ - {0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), BIT(1)}, /* enable reg use 32K CLK*/ - {0x0301, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xFF}, /*PCIe DMA stop*/ - {0x0522, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xFF}, /*Tx Pause*/ - {0x05F8, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, 0xFF, - 0}, /*Should be zero if no packet is transmitting*/ - {0x05F9, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, 0xFF, - 0}, /*Should be zero if no packet is transmitting*/ - {0x05FA, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, 0xFF, - 0}, /*Should be zero if no packet is transmitting*/ - {0x05FB, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, 0xFF, - 0}, /*Should be zero if no packet is transmitting*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), 0}, /*CCK and OFDM are disabled,and clock are gated*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY, - 0, HALMAC_PWRSEQ_DELAY_US}, /*Delay 1us*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), 0}, /*Whole BB is reset*/ - {0x0100, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x3F}, /*Reset MAC TRX*/ - {0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), 0}, /*check if removed later*/ - {0x0553, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(5), BIT(5)}, /*Respond TxOK to scheduler*/ - {0x0008, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(4), BIT(4)}, /* switch TSF clock to 32K*/ - {0x0109, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, BIT(7), - BIT(7)}, /*Polling 0x109[7]=0 TSF in 40M*/ - {0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), BIT(0)}, /* enable WL_LPS_EN*/ - {0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0}, -}; - -static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_ACT_TO_DEEP_LPS[] = { - /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */ - {0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(2), BIT(2)}, /*Enable 32k calibration and thermal meter*/ - {0x0199, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(3), BIT(3)}, /*Register write data of 32K calibration*/ - {0x019B, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(7), BIT(7)}, /*Enable 32k calibration reg write*/ - {0x1138, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0) | BIT(1), BIT(0) | BIT(1)}, /*set RPWM IMR*/ - {0x0194, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), BIT(0)}, /* enable 32K CLK*/ - {0x0093, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x40}, /* LPS Option MAC OFF enable*/ - {0x0092, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x20}, /* LPS Option Enable memory to deep sleep mode*/ - {0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), BIT(1)}, /* enable reg use 32K CLK*/ - {0x0301, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xFF}, /*PCIe DMA stop*/ - {0x0522, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xFF}, /*Tx Pause*/ - {0x05F8, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, 0xFF, - 0}, /*Should be zero if no packet is transmitting*/ - {0x05F9, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, 0xFF, - 0}, /*Should be zero if no packet is transmitting*/ - {0x05FA, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, 0xFF, - 0}, /*Should be zero if no packet is transmitting*/ - {0x05FB, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, 0xFF, - 0}, /*Should be zero if no packet is transmitting*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), 0}, /*CCK and OFDM are disabled,and clock are gated*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY, - 0, HALMAC_PWRSEQ_DELAY_US}, /*Delay 1us*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), 0}, /*Whole BB is reset*/ - {0x0100, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x3F}, /*Reset MAC TRX*/ - {0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), 0}, /*check if removed later*/ - {0x0553, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(5), BIT(5)}, /*Respond TxOK to scheduler*/ - {0x0008, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(4), BIT(4)}, /* switch TSF clock to 32K*/ - {0x0109, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, BIT(7), - BIT(7)}, /*Polling 0x109[7]=1 TSF in 32K*/ - {0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(0), BIT(0)}, /* enable WL_LPS_EN*/ - {0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0}, -}; - -static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_LPS_TO_ACT[] = { - /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */ - {0x0080, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, BIT(7), BIT(7)}, /*SDIO RPWM*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY, - 0, HALMAC_PWRSEQ_DELAY_MS}, /*Delay*/ - {0x0080, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO, - HALMAC_PWR_CMD_WRITE, BIT(7), 0}, /*SDIO RPWM*/ - {0xFE58, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x84}, /*USB RPWM*/ - {0x0361, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x84}, /*PCIe RPWM*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY, - 0, HALMAC_PWRSEQ_DELAY_MS}, /*Delay*/ - {0x0008, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(4), 0}, /* switch TSF to 40M*/ - {0x0109, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, - HALMAC_PWR_CMD_POLLING, BIT(7), 0}, /*Polling 0x109[7]=0 TSF in 40M*/ - {0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), BIT(1)}, - {0x0100, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xFF}, /*nable WMAC TRX*/ - {0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1) | BIT(0), BIT(1) | BIT(0)}, /*nable BB macro*/ - {0x0522, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0}, - {0x113C, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0x03}, /*clear RPWM INT*/ - {0x0124, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xFF}, /*clear FW INT*/ - {0x0125, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xFF}, /*clear FW INT*/ - {0x0126, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xFF}, /*clear FW INT*/ - {0x0127, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - 0xFF, 0xFF}, /*clear FW INT*/ - {0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(1), 0}, /* disable reg use 32K CLK*/ - {0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, - BIT(2), 0}, /*disable 32k calibration and thermal meter*/ - {0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK, - HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0}, -}; - -/* Card Enable Array */ -struct halmac_wl_pwr_cfg_ *halmac_8822b_card_enable_flow[] = { - HALMAC_RTL8822B_TRANS_CARDDIS_TO_CARDEMU, - HALMAC_RTL8822B_TRANS_CARDEMU_TO_ACT, NULL}; - -/* Card Disable Array */ -struct halmac_wl_pwr_cfg_ *halmac_8822b_card_disable_flow[] = { - HALMAC_RTL8822B_TRANS_ACT_TO_CARDEMU, - HALMAC_RTL8822B_TRANS_CARDEMU_TO_CARDDIS, NULL}; - -/* Suspend Array */ -struct halmac_wl_pwr_cfg_ *halmac_8822b_suspend_flow[] = { - HALMAC_RTL8822B_TRANS_ACT_TO_CARDEMU, - HALMAC_RTL8822B_TRANS_CARDEMU_TO_SUS, NULL}; - -/* Resume Array */ -struct halmac_wl_pwr_cfg_ *halmac_8822b_resume_flow[] = { - HALMAC_RTL8822B_TRANS_SUS_TO_CARDEMU, - HALMAC_RTL8822B_TRANS_CARDEMU_TO_ACT, NULL}; - -/* HWPDN Array - HW behavior */ -struct halmac_wl_pwr_cfg_ *halmac_8822b_hwpdn_flow[] = {NULL}; - -/* Enter LPS - FW behavior */ -struct halmac_wl_pwr_cfg_ *halmac_8822b_enter_lps_flow[] = { - HALMAC_RTL8822B_TRANS_ACT_TO_LPS, NULL}; - -/* Enter Deep LPS - FW behavior */ -struct halmac_wl_pwr_cfg_ *halmac_8822b_enter_deep_lps_flow[] = { - HALMAC_RTL8822B_TRANS_ACT_TO_DEEP_LPS, NULL}; - -/* Leave LPS -FW behavior */ -struct halmac_wl_pwr_cfg_ *halmac_8822b_leave_lps_flow[] = { - HALMAC_RTL8822B_TRANS_LPS_TO_ACT, NULL}; diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.h deleted file mode 100644 index 03bbec32a3e3..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.h +++ /dev/null @@ -1,29 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#ifndef HALMAC_POWER_SEQUENCE_8822B -#define HALMAC_POWER_SEQUENCE_8822B - -#include "../../halmac_pwr_seq_cmd.h" - -#define HALMAC_8822B_PWR_SEQ_VER "V17" -extern struct halmac_wl_pwr_cfg_ *halmac_8822b_card_disable_flow[]; -extern struct halmac_wl_pwr_cfg_ *halmac_8822b_card_enable_flow[]; -extern struct halmac_wl_pwr_cfg_ *halmac_8822b_suspend_flow[]; -extern struct halmac_wl_pwr_cfg_ *halmac_8822b_resume_flow[]; -extern struct halmac_wl_pwr_cfg_ *halmac_8822b_hwpdn_flow[]; -extern struct halmac_wl_pwr_cfg_ *halmac_8822b_enter_lps_flow[]; -extern struct halmac_wl_pwr_cfg_ *halmac_8822b_enter_deep_lps_flow[]; -extern struct halmac_wl_pwr_cfg_ *halmac_8822b_leave_lps_flow[]; - -#endif diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.c deleted file mode 100644 index aea481bb2403..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.c +++ /dev/null @@ -1,332 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#include "halmac_8822b_cfg.h" -#include "halmac_func_8822b.h" -#include "../halmac_func_88xx.h" - -/** - * halmac_mount_api_8822b() - attach functions to function pointer - * @halmac_adapter - * - * SD1 internal use - * - * Author : KaiYuan Chang/Ivan Lin - * Return : enum halmac_ret_status - */ -enum halmac_ret_status -halmac_mount_api_8822b(struct halmac_adapter *halmac_adapter) -{ - struct halmac_api *halmac_api = - (struct halmac_api *)halmac_adapter->halmac_api; - - halmac_adapter->chip_id = HALMAC_CHIP_ID_8822B; - halmac_adapter->hw_config_info.efuse_size = HALMAC_EFUSE_SIZE_8822B; - halmac_adapter->hw_config_info.eeprom_size = HALMAC_EEPROM_SIZE_8822B; - halmac_adapter->hw_config_info.bt_efuse_size = - HALMAC_BT_EFUSE_SIZE_8822B; - halmac_adapter->hw_config_info.cam_entry_num = - HALMAC_SECURITY_CAM_ENTRY_NUM_8822B; - halmac_adapter->hw_config_info.txdesc_size = HALMAC_TX_DESC_SIZE_8822B; - halmac_adapter->hw_config_info.rxdesc_size = HALMAC_RX_DESC_SIZE_8822B; - halmac_adapter->hw_config_info.tx_fifo_size = HALMAC_TX_FIFO_SIZE_8822B; - halmac_adapter->hw_config_info.rx_fifo_size = HALMAC_RX_FIFO_SIZE_8822B; - halmac_adapter->hw_config_info.page_size = HALMAC_TX_PAGE_SIZE_8822B; - halmac_adapter->hw_config_info.tx_align_size = - HALMAC_TX_ALIGN_SIZE_8822B; - halmac_adapter->hw_config_info.page_size_2_power = - HALMAC_TX_PAGE_SIZE_2_POWER_8822B; - - halmac_adapter->txff_allocation.rsvd_drv_pg_num = - HALMAC_RSVD_DRV_PGNUM_8822B; - - halmac_api->halmac_init_trx_cfg = halmac_init_trx_cfg_8822b; - halmac_api->halmac_init_protocol_cfg = halmac_init_protocol_cfg_8822b; - halmac_api->halmac_init_h2c = halmac_init_h2c_8822b; - - if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) { - halmac_api->halmac_tx_allowed_sdio = - halmac_tx_allowed_sdio_88xx; - halmac_api->halmac_cfg_tx_agg_align = - halmac_cfg_tx_agg_align_sdio_not_support_88xx; - halmac_api->halmac_mac_power_switch = - halmac_mac_power_switch_8822b_sdio; - halmac_api->halmac_phy_cfg = halmac_phy_cfg_8822b_sdio; - halmac_api->halmac_interface_integration_tuning = - halmac_interface_integration_tuning_8822b_sdio; - } else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) { - halmac_api->halmac_mac_power_switch = - halmac_mac_power_switch_8822b_usb; - halmac_api->halmac_cfg_tx_agg_align = - halmac_cfg_tx_agg_align_usb_not_support_88xx; - halmac_api->halmac_phy_cfg = halmac_phy_cfg_8822b_usb; - halmac_api->halmac_interface_integration_tuning = - halmac_interface_integration_tuning_8822b_usb; - } else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_PCIE) { - halmac_api->halmac_mac_power_switch = - halmac_mac_power_switch_8822b_pcie; - halmac_api->halmac_cfg_tx_agg_align = - halmac_cfg_tx_agg_align_pcie_not_support_88xx; - halmac_api->halmac_pcie_switch = halmac_pcie_switch_8822b; - halmac_api->halmac_phy_cfg = halmac_phy_cfg_8822b_pcie; - halmac_api->halmac_interface_integration_tuning = - halmac_interface_integration_tuning_8822b_pcie; - } else { - halmac_api->halmac_pcie_switch = halmac_pcie_switch_8822b_nc; - } - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_init_trx_cfg_8822b() - config trx dma register - * @halmac_adapter : the adapter of halmac - * @halmac_trx_mode : trx mode selection - * Author : KaiYuan Chang/Ivan Lin - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_init_trx_cfg_8822b(struct halmac_adapter *halmac_adapter, - enum halmac_trx_mode halmac_trx_mode) -{ - u8 value8; - u32 value32; - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - enum halmac_ret_status status = HALMAC_RET_SUCCESS; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_TRX_CFG); - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - halmac_adapter->trx_mode = halmac_trx_mode; - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG, - "halmac_init_trx_cfg ==========>halmac_trx_mode = %d\n", - halmac_trx_mode); - - status = halmac_txdma_queue_mapping_8822b(halmac_adapter, - halmac_trx_mode); - - if (status != HALMAC_RET_SUCCESS) { - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG, - "halmac_txdma_queue_mapping fail!\n"); - return status; - } - - value8 = 0; - HALMAC_REG_WRITE_8(halmac_adapter, REG_CR, value8); - value8 = HALMAC_CR_TRX_ENABLE_8822B; - HALMAC_REG_WRITE_8(halmac_adapter, REG_CR, value8); - HALMAC_REG_WRITE_32(halmac_adapter, REG_H2CQ_CSR, BIT(31)); - - status = halmac_priority_queue_config_8822b(halmac_adapter, - halmac_trx_mode); - if (halmac_adapter->txff_allocation.rx_fifo_expanding_mode != - HALMAC_RX_FIFO_EXPANDING_MODE_DISABLE) - HALMAC_REG_WRITE_8(halmac_adapter, REG_RX_DRVINFO_SZ, 0xF); - - if (status != HALMAC_RET_SUCCESS) { - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG, - "halmac_txdma_queue_mapping fail!\n"); - return status; - } - - /* Config H2C packet buffer */ - value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_HEAD); - value32 = (value32 & 0xFFFC0000) | - (halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B); - HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_HEAD, value32); - - value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_READ_ADDR); - value32 = (value32 & 0xFFFC0000) | - (halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B); - HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_READ_ADDR, value32); - - value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_TAIL); - value32 = (value32 & 0xFFFC0000) | - ((halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B) + - (HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B)); - HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_TAIL, value32); - - value8 = HALMAC_REG_READ_8(halmac_adapter, REG_H2C_INFO); - value8 = (u8)((value8 & 0xFC) | 0x01); - HALMAC_REG_WRITE_8(halmac_adapter, REG_H2C_INFO, value8); - - value8 = HALMAC_REG_READ_8(halmac_adapter, REG_H2C_INFO); - value8 = (u8)((value8 & 0xFB) | 0x04); - HALMAC_REG_WRITE_8(halmac_adapter, REG_H2C_INFO, value8); - - value8 = HALMAC_REG_READ_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1); - value8 = (u8)((value8 & 0x7f) | 0x80); - HALMAC_REG_WRITE_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1, value8); - - halmac_adapter->h2c_buff_size = HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B; - halmac_get_h2c_buff_free_space_88xx(halmac_adapter); - - if (halmac_adapter->h2c_buff_size != - halmac_adapter->h2c_buf_free_space) { - pr_err("get h2c free space error!\n"); - return HALMAC_RET_GET_H2C_SPACE_ERR; - } - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG, - "halmac_init_trx_cfg <==========\n"); - - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_init_protocol_cfg_8822b() - config protocol register - * @halmac_adapter : the adapter of halmac - * Author : KaiYuan Chang/Ivan Lin - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_init_protocol_cfg_8822b(struct halmac_adapter *halmac_adapter) -{ - u32 value32; - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_PROTOCOL_CFG); - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG, - "[TRACE]%s ==========>\n", __func__); - - HALMAC_REG_WRITE_8(halmac_adapter, REG_AMPDU_MAX_TIME_V1, - HALMAC_AMPDU_MAX_TIME_8822B); - HALMAC_REG_WRITE_8(halmac_adapter, REG_TX_HANG_CTRL, BIT_EN_EOF_V1); - - value32 = HALMAC_PROT_RTS_LEN_TH_8822B | - (HALMAC_PROT_RTS_TX_TIME_TH_8822B << 8) | - (HALMAC_PROT_MAX_AGG_PKT_LIMIT_8822B << 16) | - (HALMAC_PROT_RTS_MAX_AGG_PKT_LIMIT_8822B << 24); - HALMAC_REG_WRITE_32(halmac_adapter, REG_PROT_MODE_CTRL, value32); - - HALMAC_REG_WRITE_16(halmac_adapter, REG_BAR_MODE_CTRL + 2, - HALMAC_BAR_RETRY_LIMIT_8822B | - HALMAC_RA_TRY_RATE_AGG_LIMIT_8822B << 8); - - HALMAC_REG_WRITE_8(halmac_adapter, REG_FAST_EDCA_VOVI_SETTING, - HALMAC_FAST_EDCA_VO_TH_8822B); - HALMAC_REG_WRITE_8(halmac_adapter, REG_FAST_EDCA_VOVI_SETTING + 2, - HALMAC_FAST_EDCA_VI_TH_8822B); - HALMAC_REG_WRITE_8(halmac_adapter, REG_FAST_EDCA_BEBK_SETTING, - HALMAC_FAST_EDCA_BE_TH_8822B); - HALMAC_REG_WRITE_8(halmac_adapter, REG_FAST_EDCA_BEBK_SETTING + 2, - HALMAC_FAST_EDCA_BK_TH_8822B); - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG, - "[TRACE]%s <==========\n", __func__); - - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_init_h2c_8822b() - config h2c packet buffer - * @halmac_adapter : the adapter of halmac - * Author : KaiYuan Chang/Ivan Lin - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_init_h2c_8822b(struct halmac_adapter *halmac_adapter) -{ - u8 value8; - u32 value32; - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - value8 = 0; - HALMAC_REG_WRITE_8(halmac_adapter, REG_CR, value8); - value8 = HALMAC_CR_TRX_ENABLE_8822B; - HALMAC_REG_WRITE_8(halmac_adapter, REG_CR, value8); - - value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_HEAD); - value32 = (value32 & 0xFFFC0000) | - (halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B); - HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_HEAD, value32); - - value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_READ_ADDR); - value32 = (value32 & 0xFFFC0000) | - (halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B); - HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_READ_ADDR, value32); - - value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_TAIL); - value32 = (value32 & 0xFFFC0000) | - ((halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B) + - (HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B)); - HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_TAIL, value32); - value8 = HALMAC_REG_READ_8(halmac_adapter, REG_H2C_INFO); - value8 = (u8)((value8 & 0xFC) | 0x01); - HALMAC_REG_WRITE_8(halmac_adapter, REG_H2C_INFO, value8); - - value8 = HALMAC_REG_READ_8(halmac_adapter, REG_H2C_INFO); - value8 = (u8)((value8 & 0xFB) | 0x04); - HALMAC_REG_WRITE_8(halmac_adapter, REG_H2C_INFO, value8); - - value8 = HALMAC_REG_READ_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1); - value8 = (u8)((value8 & 0x7f) | 0x80); - HALMAC_REG_WRITE_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1, value8); - - halmac_adapter->h2c_buff_size = HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B - << HALMAC_TX_PAGE_SIZE_2_POWER_8822B; - halmac_get_h2c_buff_free_space_88xx(halmac_adapter); - - if (halmac_adapter->h2c_buff_size != - halmac_adapter->h2c_buf_free_space) { - pr_err("get h2c free space error!\n"); - return HALMAC_RET_GET_H2C_SPACE_ERR; - } - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG, - "h2c free space : %d\n", - halmac_adapter->h2c_buf_free_space); - - return HALMAC_RET_SUCCESS; -} diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.h deleted file mode 100644 index 072cd40fd339..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.h +++ /dev/null @@ -1,33 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#ifndef _HALMAC_API_8822B_H_ -#define _HALMAC_API_8822B_H_ - -#include "../../halmac_2_platform.h" -#include "../../halmac_type.h" - -enum halmac_ret_status -halmac_mount_api_8822b(struct halmac_adapter *halmac_adapter); - -enum halmac_ret_status -halmac_init_trx_cfg_8822b(struct halmac_adapter *halmac_adapter, - enum halmac_trx_mode halmac_trx_mode); - -enum halmac_ret_status -halmac_init_protocol_cfg_8822b(struct halmac_adapter *halmac_adapter); - -enum halmac_ret_status -halmac_init_h2c_8822b(struct halmac_adapter *halmac_adapter); - -#endif /* _HALMAC_API_8822B_H_ */ diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.c deleted file mode 100644 index a716fb532170..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.c +++ /dev/null @@ -1,312 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#include "../halmac_88xx_cfg.h" -#include "../halmac_api_88xx_pcie.h" -#include "halmac_8822b_cfg.h" - -/** - * halmac_mac_power_switch_8822b_pcie() - switch mac power - * @halmac_adapter : the adapter of halmac - * @halmac_power : power state - * Author : KaiYuan Chang - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_mac_power_switch_8822b_pcie(struct halmac_adapter *halmac_adapter, - enum halmac_mac_power halmac_power) -{ - u8 interface_mask; - u8 value8; - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_MAC_POWER_SWITCH); - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - HALMAC_RT_TRACE( - driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_mac_power_switch_88xx_pcie halmac_power = %x ==========>\n", - halmac_power); - interface_mask = HALMAC_PWR_INTF_PCI_MSK; - - value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CR); - if (value8 == 0xEA) - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF; - else - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON; - - /* Check if power switch is needed */ - if (halmac_power == HALMAC_MAC_POWER_ON && - halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_ON) { - HALMAC_RT_TRACE( - driver_adapter, HALMAC_MSG_PWR, DBG_WARNING, - "halmac_mac_power_switch power state unchange!\n"); - return HALMAC_RET_PWR_UNCHANGE; - } - - if (halmac_power == HALMAC_MAC_POWER_OFF) { - if (halmac_pwr_seq_parser_88xx( - halmac_adapter, HALMAC_PWR_CUT_ALL_MSK, - HALMAC_PWR_FAB_TSMC_MSK, interface_mask, - halmac_8822b_card_disable_flow) != - HALMAC_RET_SUCCESS) { - pr_err("Handle power off cmd error\n"); - return HALMAC_RET_POWER_OFF_FAIL; - } - - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF; - halmac_adapter->halmac_state.ps_state = - HALMAC_PS_STATE_UNDEFINE; - halmac_adapter->halmac_state.dlfw_state = HALMAC_DLFW_NONE; - halmac_init_adapter_dynamic_para_88xx(halmac_adapter); - } else { - if (halmac_pwr_seq_parser_88xx( - halmac_adapter, HALMAC_PWR_CUT_ALL_MSK, - HALMAC_PWR_FAB_TSMC_MSK, interface_mask, - halmac_8822b_card_enable_flow) != - HALMAC_RET_SUCCESS) { - pr_err("Handle power on cmd error\n"); - return HALMAC_RET_POWER_ON_FAIL; - } - - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON; - halmac_adapter->halmac_state.ps_state = HALMAC_PS_STATE_ACT; - } - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_mac_power_switch_88xx_pcie <==========\n"); - - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_pcie_switch_8822b() - pcie gen1/gen2 switch - * @halmac_adapter : the adapter of halmac - * @pcie_cfg : gen1/gen2 selection - * Author : KaiYuan Chang - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_pcie_switch_8822b(struct halmac_adapter *halmac_adapter, - enum halmac_pcie_cfg pcie_cfg) -{ - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - u8 current_link_speed = 0; - u32 count = 0; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PCIE_SWITCH); - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "%s ==========>\n", __func__); - - /* Link Control 2 Register[3:0] Target Link Speed - * Defined encodings are: - * 0001b Target Link 2.5 GT/s - * 0010b Target Link 5.0 GT/s - * 0100b Target Link 8.0 GT/s - */ - - if (pcie_cfg == HALMAC_PCIE_GEN1) { - /* cfg 0xA0[3:0]=4'b0001 */ - halmac_dbi_write8_88xx( - halmac_adapter, LINK_CTRL2_REG_OFFSET, - (halmac_dbi_read8_88xx(halmac_adapter, - LINK_CTRL2_REG_OFFSET) & - 0xF0) | BIT(0)); - - /* cfg 0x80C[17]=1 //PCIe DesignWave */ - halmac_dbi_write32_88xx( - halmac_adapter, GEN2_CTRL_OFFSET, - halmac_dbi_read32_88xx(halmac_adapter, - GEN2_CTRL_OFFSET) | - BIT(17)); - - /* check link speed if GEN1 */ - /* cfg 0x82[3:0]=4'b0001 */ - current_link_speed = - halmac_dbi_read8_88xx(halmac_adapter, - LINK_STATUS_REG_OFFSET) & - 0x0F; - count = 2000; - - while (current_link_speed != GEN1_SPEED && count != 0) { - usleep_range(50, 60); - current_link_speed = - halmac_dbi_read8_88xx(halmac_adapter, - LINK_STATUS_REG_OFFSET) & - 0x0F; - count--; - } - - if (current_link_speed != GEN1_SPEED) { - pr_err("Speed change to GEN1 fail !\n"); - return HALMAC_RET_FAIL; - } - - } else if (pcie_cfg == HALMAC_PCIE_GEN2) { - /* cfg 0xA0[3:0]=4'b0010 */ - halmac_dbi_write8_88xx( - halmac_adapter, LINK_CTRL2_REG_OFFSET, - (halmac_dbi_read8_88xx(halmac_adapter, - LINK_CTRL2_REG_OFFSET) & - 0xF0) | BIT(1)); - - /* cfg 0x80C[17]=1 //PCIe DesignWave */ - halmac_dbi_write32_88xx( - halmac_adapter, GEN2_CTRL_OFFSET, - halmac_dbi_read32_88xx(halmac_adapter, - GEN2_CTRL_OFFSET) | - BIT(17)); - - /* check link speed if GEN2 */ - /* cfg 0x82[3:0]=4'b0010 */ - current_link_speed = - halmac_dbi_read8_88xx(halmac_adapter, - LINK_STATUS_REG_OFFSET) & - 0x0F; - count = 2000; - - while (current_link_speed != GEN2_SPEED && count != 0) { - usleep_range(50, 60); - current_link_speed = - halmac_dbi_read8_88xx(halmac_adapter, - LINK_STATUS_REG_OFFSET) & - 0x0F; - count--; - } - - if (current_link_speed != GEN2_SPEED) { - pr_err("Speed change to GEN1 fail !\n"); - return HALMAC_RET_FAIL; - } - - } else { - pr_err("Error Speed !\n"); - return HALMAC_RET_FAIL; - } - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "%s <==========\n", __func__); - - return HALMAC_RET_SUCCESS; -} - -enum halmac_ret_status -halmac_pcie_switch_8822b_nc(struct halmac_adapter *halmac_adapter, - enum halmac_pcie_cfg pcie_cfg) -{ - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PCIE_SWITCH); - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "%s ==========>\n", __func__); - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "%s <==========\n", __func__); - - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_phy_cfg_8822b_pcie() - phy config - * @halmac_adapter : the adapter of halmac - * Author : KaiYuan Chang - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_phy_cfg_8822b_pcie(struct halmac_adapter *halmac_adapter, - enum halmac_intf_phy_platform platform) -{ - void *driver_adapter = NULL; - enum halmac_ret_status status = HALMAC_RET_SUCCESS; - struct halmac_api *halmac_api; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PHY_CFG); - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_phy_cfg ==========>\n"); - - status = halmac_parse_intf_phy_88xx(halmac_adapter, - HALMAC_RTL8822B_PCIE_PHY_GEN1, - platform, HAL_INTF_PHY_PCIE_GEN1); - - if (status != HALMAC_RET_SUCCESS) - return status; - - status = halmac_parse_intf_phy_88xx(halmac_adapter, - HALMAC_RTL8822B_PCIE_PHY_GEN2, - platform, HAL_INTF_PHY_PCIE_GEN2); - - if (status != HALMAC_RET_SUCCESS) - return status; - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_phy_cfg <==========\n"); - - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_interface_integration_tuning_8822b_pcie() - pcie interface fine tuning - * @halmac_adapter : the adapter of halmac - * Author : Rick Liu - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status halmac_interface_integration_tuning_8822b_pcie( - struct halmac_adapter *halmac_adapter) -{ - return HALMAC_RET_SUCCESS; -} diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.h deleted file mode 100644 index b47c50863f06..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.h +++ /dev/null @@ -1,42 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#ifndef _HALMAC_API_8822B_PCIE_H_ -#define _HALMAC_API_8822B_PCIE_H_ - -#include "../../halmac_2_platform.h" -#include "../../halmac_type.h" - -extern struct halmac_intf_phy_para_ HALMAC_RTL8822B_PCIE_PHY_GEN1[]; -extern struct halmac_intf_phy_para_ HALMAC_RTL8822B_PCIE_PHY_GEN2[]; - -enum halmac_ret_status -halmac_mac_power_switch_8822b_pcie(struct halmac_adapter *halmac_adapter, - enum halmac_mac_power halmac_power); - -enum halmac_ret_status -halmac_pcie_switch_8822b(struct halmac_adapter *halmac_adapter, - enum halmac_pcie_cfg pcie_cfg); - -enum halmac_ret_status -halmac_pcie_switch_8822b_nc(struct halmac_adapter *halmac_adapter, - enum halmac_pcie_cfg pcie_cfg); - -enum halmac_ret_status -halmac_phy_cfg_8822b_pcie(struct halmac_adapter *halmac_adapter, - enum halmac_intf_phy_platform platform); - -enum halmac_ret_status halmac_interface_integration_tuning_8822b_pcie( - struct halmac_adapter *halmac_adapter); - -#endif /* _HALMAC_API_8822B_PCIE_H_ */ diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.c deleted file mode 100644 index a6b6d7fa2689..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.c +++ /dev/null @@ -1,173 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#include "halmac_8822b_cfg.h" - -/** - * halmac_mac_power_switch_8822b_sdio() - switch mac power - * @halmac_adapter : the adapter of halmac - * @halmac_power : power state - * Author : KaiYuan Chang/Ivan Lin - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_mac_power_switch_8822b_sdio(struct halmac_adapter *halmac_adapter, - enum halmac_mac_power halmac_power) -{ - u8 interface_mask; - u8 value8; - u8 rpwm; - u32 imr_backup; - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - HALMAC_RT_TRACE( - driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "[TRACE]halmac_mac_power_switch_88xx_sdio==========>\n"); - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "[TRACE]halmac_power = %x ==========>\n", halmac_power); - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "[TRACE]8822B pwr seq ver = %s\n", - HALMAC_8822B_PWR_SEQ_VER); - - interface_mask = HALMAC_PWR_INTF_SDIO_MSK; - - halmac_adapter->rpwm_record = - HALMAC_REG_READ_8(halmac_adapter, REG_SDIO_HRPWM1); - - /* Check FW still exist or not */ - if (HALMAC_REG_READ_16(halmac_adapter, REG_MCUFW_CTRL) == 0xC078) { - /* Leave 32K */ - rpwm = (u8)((halmac_adapter->rpwm_record ^ BIT(7)) & 0x80); - HALMAC_REG_WRITE_8(halmac_adapter, REG_SDIO_HRPWM1, rpwm); - } - - value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CR); - if (value8 == 0xEA) - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF; - else - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON; - - /*Check if power switch is needed*/ - if (halmac_power == HALMAC_MAC_POWER_ON && - halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_ON) { - HALMAC_RT_TRACE( - driver_adapter, HALMAC_MSG_PWR, DBG_WARNING, - "[WARN]halmac_mac_power_switch power state unchange!\n"); - return HALMAC_RET_PWR_UNCHANGE; - } - - imr_backup = HALMAC_REG_READ_32(halmac_adapter, REG_SDIO_HIMR); - HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_HIMR, 0); - - if (halmac_power == HALMAC_MAC_POWER_OFF) { - if (halmac_pwr_seq_parser_88xx( - halmac_adapter, HALMAC_PWR_CUT_ALL_MSK, - HALMAC_PWR_FAB_TSMC_MSK, interface_mask, - halmac_8822b_card_disable_flow) != - HALMAC_RET_SUCCESS) { - pr_err("[ERR]Handle power off cmd error\n"); - HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_HIMR, - imr_backup); - return HALMAC_RET_POWER_OFF_FAIL; - } - - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF; - halmac_adapter->halmac_state.ps_state = - HALMAC_PS_STATE_UNDEFINE; - halmac_adapter->halmac_state.dlfw_state = HALMAC_DLFW_NONE; - halmac_init_adapter_dynamic_para_88xx(halmac_adapter); - } else { - if (halmac_pwr_seq_parser_88xx( - halmac_adapter, HALMAC_PWR_CUT_ALL_MSK, - HALMAC_PWR_FAB_TSMC_MSK, interface_mask, - halmac_8822b_card_enable_flow) != - HALMAC_RET_SUCCESS) { - pr_err("[ERR]Handle power on cmd error\n"); - HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_HIMR, - imr_backup); - return HALMAC_RET_POWER_ON_FAIL; - } - - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON; - halmac_adapter->halmac_state.ps_state = HALMAC_PS_STATE_ACT; - } - - HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_HIMR, imr_backup); - - HALMAC_RT_TRACE( - driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "[TRACE]halmac_mac_power_switch_88xx_sdio <==========\n"); - - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_phy_cfg_8822b_sdio() - phy config - * @halmac_adapter : the adapter of halmac - * Author : KaiYuan Chang - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_phy_cfg_8822b_sdio(struct halmac_adapter *halmac_adapter, - enum halmac_intf_phy_platform platform) -{ - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PHY_CFG); - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_phy_cfg ==========>\n"); - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "sdio no phy\n"); - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_phy_cfg <==========\n"); - - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_interface_integration_tuning_8822b_sdio() - sdio interface fine tuning - * @halmac_adapter : the adapter of halmac - * Author : Ivan - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status halmac_interface_integration_tuning_8822b_sdio( - struct halmac_adapter *halmac_adapter) -{ - return HALMAC_RET_SUCCESS; -} diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.h deleted file mode 100644 index 75c83f7f031e..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.h +++ /dev/null @@ -1,31 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#ifndef _HALMAC_API_8822B_SDIO_H_ -#define _HALMAC_API_8822B_SDIO_H_ - -#include "../../halmac_2_platform.h" -#include "../../halmac_type.h" - -enum halmac_ret_status -halmac_mac_power_switch_8822b_sdio(struct halmac_adapter *halmac_adapter, - enum halmac_mac_power halmac_power); - -enum halmac_ret_status -halmac_phy_cfg_8822b_sdio(struct halmac_adapter *halmac_adapter, - enum halmac_intf_phy_platform platform); - -enum halmac_ret_status halmac_interface_integration_tuning_8822b_sdio( - struct halmac_adapter *halmac_adapter); - -#endif /* _HALMAC_API_8822B_SDIO_H_ */ diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.c deleted file mode 100644 index 2eaf362ca8c3..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.c +++ /dev/null @@ -1,174 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#include "../halmac_88xx_cfg.h" -#include "halmac_8822b_cfg.h" - -/** - * halmac_mac_power_switch_8822b_usb() - switch mac power - * @halmac_adapter : the adapter of halmac - * @halmac_power : power state - * Author : KaiYuan Chang - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_mac_power_switch_8822b_usb(struct halmac_adapter *halmac_adapter, - enum halmac_mac_power halmac_power) -{ - u8 interface_mask; - u8 value8; - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_MAC_POWER_SWITCH); - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - HALMAC_RT_TRACE( - driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_mac_power_switch_88xx_usb halmac_power = %x ==========>\n", - halmac_power); - - interface_mask = HALMAC_PWR_INTF_USB_MSK; - - value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CR); - if (value8 == 0xEA) { - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF; - } else { - if (BIT(0) == - (HALMAC_REG_READ_8(halmac_adapter, REG_SYS_STATUS1 + 1) & - BIT(0))) - halmac_adapter->halmac_state.mac_power = - HALMAC_MAC_POWER_OFF; - else - halmac_adapter->halmac_state.mac_power = - HALMAC_MAC_POWER_ON; - } - - /*Check if power switch is needed*/ - if (halmac_power == HALMAC_MAC_POWER_ON && - halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_ON) { - HALMAC_RT_TRACE( - driver_adapter, HALMAC_MSG_PWR, DBG_WARNING, - "halmac_mac_power_switch power state unchange!\n"); - return HALMAC_RET_PWR_UNCHANGE; - } - if (halmac_power == HALMAC_MAC_POWER_OFF) { - if (halmac_pwr_seq_parser_88xx( - halmac_adapter, HALMAC_PWR_CUT_ALL_MSK, - HALMAC_PWR_FAB_TSMC_MSK, interface_mask, - halmac_8822b_card_disable_flow) != - HALMAC_RET_SUCCESS) { - pr_err("Handle power off cmd error\n"); - return HALMAC_RET_POWER_OFF_FAIL; - } - - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF; - halmac_adapter->halmac_state.ps_state = - HALMAC_PS_STATE_UNDEFINE; - halmac_adapter->halmac_state.dlfw_state = HALMAC_DLFW_NONE; - halmac_init_adapter_dynamic_para_88xx(halmac_adapter); - } else { - if (halmac_pwr_seq_parser_88xx( - halmac_adapter, HALMAC_PWR_CUT_ALL_MSK, - HALMAC_PWR_FAB_TSMC_MSK, interface_mask, - halmac_8822b_card_enable_flow) != - HALMAC_RET_SUCCESS) { - pr_err("Handle power on cmd error\n"); - return HALMAC_RET_POWER_ON_FAIL; - } - - HALMAC_REG_WRITE_8( - halmac_adapter, REG_SYS_STATUS1 + 1, - HALMAC_REG_READ_8(halmac_adapter, REG_SYS_STATUS1 + 1) & - ~(BIT(0))); - - halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON; - halmac_adapter->halmac_state.ps_state = HALMAC_PS_STATE_ACT; - } - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_mac_power_switch_88xx_usb <==========\n"); - - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_phy_cfg_8822b_usb() - phy config - * @halmac_adapter : the adapter of halmac - * Author : KaiYuan Chang - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status -halmac_phy_cfg_8822b_usb(struct halmac_adapter *halmac_adapter, - enum halmac_intf_phy_platform platform) -{ - void *driver_adapter = NULL; - enum halmac_ret_status status = HALMAC_RET_SUCCESS; - struct halmac_api *halmac_api; - - if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_ADAPTER_INVALID; - - if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS) - return HALMAC_RET_API_INVALID; - - halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PHY_CFG); - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_phy_cfg ==========>\n"); - - status = halmac_parse_intf_phy_88xx(halmac_adapter, - HALMAC_RTL8822B_USB2_PHY, platform, - HAL_INTF_PHY_USB2); - - if (status != HALMAC_RET_SUCCESS) - return status; - - status = halmac_parse_intf_phy_88xx(halmac_adapter, - HALMAC_RTL8822B_USB3_PHY, platform, - HAL_INTF_PHY_USB3); - - if (status != HALMAC_RET_SUCCESS) - return status; - - HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG, - "halmac_phy_cfg <==========\n"); - - return HALMAC_RET_SUCCESS; -} - -/** - * halmac_interface_integration_tuning_8822b_usb() - usb interface fine tuning - * @halmac_adapter : the adapter of halmac - * Author : Ivan - * Return : enum halmac_ret_status - * More details of status code can be found in prototype document - */ -enum halmac_ret_status halmac_interface_integration_tuning_8822b_usb( - struct halmac_adapter *halmac_adapter) -{ - return HALMAC_RET_SUCCESS; -} diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.h deleted file mode 100644 index 8ba7bee0a99b..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.h +++ /dev/null @@ -1,34 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#ifndef _HALMAC_API_8822B_USB_H_ -#define _HALMAC_API_8822B_USB_H_ - -extern struct halmac_intf_phy_para_ HALMAC_RTL8822B_USB2_PHY[]; -extern struct halmac_intf_phy_para_ HALMAC_RTL8822B_USB3_PHY[]; - -#include "../../halmac_2_platform.h" -#include "../../halmac_type.h" - -enum halmac_ret_status -halmac_mac_power_switch_8822b_usb(struct halmac_adapter *halmac_adapter, - enum halmac_mac_power halmac_power); - -enum halmac_ret_status -halmac_phy_cfg_8822b_usb(struct halmac_adapter *halmac_adapter, - enum halmac_intf_phy_platform platform); - -enum halmac_ret_status halmac_interface_integration_tuning_8822b_usb( - struct halmac_adapter *halmac_adapter); - -#endif /* _HALMAC_API_8822B_USB_H_ */ diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.c deleted file mode 100644 index bcc402838bc0..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.c +++ /dev/null @@ -1,403 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#include "halmac_8822b_cfg.h" -#include "halmac_func_8822b.h" - -/*SDIO RQPN Mapping*/ -static struct halmac_rqpn_ HALMAC_RQPN_SDIO_8822B[] = { - /* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */ - {HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_WMM, HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_NQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_P2P, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, -}; - -/*PCIE RQPN Mapping*/ -static struct halmac_rqpn_ HALMAC_RQPN_PCIE_8822B[] = { - /* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */ - {HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_WMM, HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_NQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_P2P, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, -}; - -/*USB 2 Bulkout RQPN Mapping*/ -static struct halmac_rqpn_ HALMAC_RQPN_2BULKOUT_8822B[] = { - /* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */ - {HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_WMM, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_P2P, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, - HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, - HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, - HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, -}; - -/*USB 3 Bulkout RQPN Mapping*/ -static struct halmac_rqpn_ HALMAC_RQPN_3BULKOUT_8822B[] = { - /* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */ - {HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_WMM, HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_P2P, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ}, -}; - -/*USB 4 Bulkout RQPN Mapping*/ -static struct halmac_rqpn_ HALMAC_RQPN_4BULKOUT_8822B[] = { - /* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */ - {HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_WMM, HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_NQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_P2P, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, - HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ}, -}; - -/*SDIO Page Number*/ -static struct halmac_pg_num_ HALMAC_PG_NUM_SDIO_8822B[] = { - /* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */ - {HALMAC_TRX_MODE_NORMAL, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_TRXSHARE, 32, 32, 32, 32, 1}, - {HALMAC_TRX_MODE_WMM, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_P2P, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_LOOPBACK, 64, 64, 64, 64, 640}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 64, 64, 640}, -}; - -/*PCIE Page Number*/ -static struct halmac_pg_num_ HALMAC_PG_NUM_PCIE_8822B[] = { - /* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */ - {HALMAC_TRX_MODE_NORMAL, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_TRXSHARE, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_WMM, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_P2P, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_LOOPBACK, 64, 64, 64, 64, 640}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 64, 64, 640}, -}; - -/*USB 2 Bulkout Page Number*/ -static struct halmac_pg_num_ HALMAC_PG_NUM_2BULKOUT_8822B[] = { - /* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */ - {HALMAC_TRX_MODE_NORMAL, 64, 64, 0, 0, 1}, - {HALMAC_TRX_MODE_TRXSHARE, 64, 64, 0, 0, 1}, - {HALMAC_TRX_MODE_WMM, 64, 64, 0, 0, 1}, - {HALMAC_TRX_MODE_P2P, 64, 64, 0, 0, 1}, - {HALMAC_TRX_MODE_LOOPBACK, 64, 64, 0, 0, 1024}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 0, 0, 1024}, -}; - -/*USB 3 Bulkout Page Number*/ -static struct halmac_pg_num_ HALMAC_PG_NUM_3BULKOUT_8822B[] = { - /* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */ - {HALMAC_TRX_MODE_NORMAL, 64, 64, 64, 0, 1}, - {HALMAC_TRX_MODE_TRXSHARE, 64, 64, 64, 0, 1}, - {HALMAC_TRX_MODE_WMM, 64, 64, 64, 0, 1}, - {HALMAC_TRX_MODE_P2P, 64, 64, 64, 0, 1}, - {HALMAC_TRX_MODE_LOOPBACK, 64, 64, 64, 0, 1024}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 64, 0, 1024}, -}; - -/*USB 4 Bulkout Page Number*/ -static struct halmac_pg_num_ HALMAC_PG_NUM_4BULKOUT_8822B[] = { - /* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */ - {HALMAC_TRX_MODE_NORMAL, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_TRXSHARE, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_WMM, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_P2P, 64, 64, 64, 64, 1}, - {HALMAC_TRX_MODE_LOOPBACK, 64, 64, 64, 64, 640}, - {HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 64, 64, 640}, -}; - -enum halmac_ret_status -halmac_txdma_queue_mapping_8822b(struct halmac_adapter *halmac_adapter, - enum halmac_trx_mode halmac_trx_mode) -{ - u16 value16; - void *driver_adapter = NULL; - struct halmac_rqpn_ *curr_rqpn_sel = NULL; - enum halmac_ret_status status; - struct halmac_api *halmac_api; - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) { - curr_rqpn_sel = HALMAC_RQPN_SDIO_8822B; - } else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_PCIE) { - curr_rqpn_sel = HALMAC_RQPN_PCIE_8822B; - } else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) { - if (halmac_adapter->halmac_bulkout_num == 2) { - curr_rqpn_sel = HALMAC_RQPN_2BULKOUT_8822B; - } else if (halmac_adapter->halmac_bulkout_num == 3) { - curr_rqpn_sel = HALMAC_RQPN_3BULKOUT_8822B; - } else if (halmac_adapter->halmac_bulkout_num == 4) { - curr_rqpn_sel = HALMAC_RQPN_4BULKOUT_8822B; - } else { - pr_err("[ERR]interface not support\n"); - return HALMAC_RET_NOT_SUPPORT; - } - } else { - return HALMAC_RET_NOT_SUPPORT; - } - - status = halmac_rqpn_parser_88xx(halmac_adapter, halmac_trx_mode, - curr_rqpn_sel); - if (status != HALMAC_RET_SUCCESS) - return status; - - value16 = 0; - value16 |= BIT_TXDMA_HIQ_MAP( - halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_HI]); - value16 |= BIT_TXDMA_MGQ_MAP( - halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_MG]); - value16 |= BIT_TXDMA_BKQ_MAP( - halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BK]); - value16 |= BIT_TXDMA_BEQ_MAP( - halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BE]); - value16 |= BIT_TXDMA_VIQ_MAP( - halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VI]); - value16 |= BIT_TXDMA_VOQ_MAP( - halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VO]); - HALMAC_REG_WRITE_16(halmac_adapter, REG_TXDMA_PQ_MAP, value16); - - return HALMAC_RET_SUCCESS; -} - -enum halmac_ret_status -halmac_priority_queue_config_8822b(struct halmac_adapter *halmac_adapter, - enum halmac_trx_mode halmac_trx_mode) -{ - u8 transfer_mode = 0; - u8 value8; - u32 counter; - enum halmac_ret_status status; - struct halmac_pg_num_ *curr_pg_num = NULL; - void *driver_adapter = NULL; - struct halmac_api *halmac_api; - - driver_adapter = halmac_adapter->driver_adapter; - halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; - - if (halmac_adapter->txff_allocation.la_mode == HALMAC_LA_MODE_DISABLE) { - if (halmac_adapter->txff_allocation.rx_fifo_expanding_mode == - HALMAC_RX_FIFO_EXPANDING_MODE_DISABLE) { - halmac_adapter->txff_allocation.tx_fifo_pg_num = - HALMAC_TX_FIFO_SIZE_8822B >> - HALMAC_TX_PAGE_SIZE_2_POWER_8822B; - } else if (halmac_adapter->txff_allocation - .rx_fifo_expanding_mode == - HALMAC_RX_FIFO_EXPANDING_MODE_1_BLOCK) { - halmac_adapter->txff_allocation.tx_fifo_pg_num = - HALMAC_TX_FIFO_SIZE_EX_1_BLK_8822B >> - HALMAC_TX_PAGE_SIZE_2_POWER_8822B; - halmac_adapter->hw_config_info.tx_fifo_size = - HALMAC_TX_FIFO_SIZE_EX_1_BLK_8822B; - if (HALMAC_RX_FIFO_SIZE_EX_1_BLK_8822B <= - HALMAC_RX_FIFO_SIZE_EX_1_BLK_MAX_8822B) - halmac_adapter->hw_config_info.rx_fifo_size = - HALMAC_RX_FIFO_SIZE_EX_1_BLK_8822B; - else - halmac_adapter->hw_config_info.rx_fifo_size = - HALMAC_RX_FIFO_SIZE_EX_1_BLK_MAX_8822B; - } else { - halmac_adapter->txff_allocation.tx_fifo_pg_num = - HALMAC_TX_FIFO_SIZE_8822B >> - HALMAC_TX_PAGE_SIZE_2_POWER_8822B; - pr_err("[ERR]rx_fifo_expanding_mode = %d not support\n", - halmac_adapter->txff_allocation - .rx_fifo_expanding_mode); - } - } else { - halmac_adapter->txff_allocation.tx_fifo_pg_num = - HALMAC_TX_FIFO_SIZE_LA_8822B >> - HALMAC_TX_PAGE_SIZE_2_POWER_8822B; - } - halmac_adapter->txff_allocation.rsvd_pg_num = - (halmac_adapter->txff_allocation.rsvd_drv_pg_num + - HALMAC_RSVD_H2C_EXTRAINFO_PGNUM_8822B + - HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B + - HALMAC_RSVD_CPU_INSTRUCTION_PGNUM_8822B + - HALMAC_RSVD_FW_TXBUFF_PGNUM_8822B); - if (halmac_adapter->txff_allocation.rsvd_pg_num > - halmac_adapter->txff_allocation.tx_fifo_pg_num) - return HALMAC_RET_CFG_TXFIFO_PAGE_FAIL; - - halmac_adapter->txff_allocation.ac_q_pg_num = - halmac_adapter->txff_allocation.tx_fifo_pg_num - - halmac_adapter->txff_allocation.rsvd_pg_num; - halmac_adapter->txff_allocation.rsvd_pg_bndy = - halmac_adapter->txff_allocation.tx_fifo_pg_num - - halmac_adapter->txff_allocation.rsvd_pg_num; - halmac_adapter->txff_allocation.rsvd_fw_txbuff_pg_bndy = - halmac_adapter->txff_allocation.tx_fifo_pg_num - - HALMAC_RSVD_FW_TXBUFF_PGNUM_8822B; - halmac_adapter->txff_allocation.rsvd_cpu_instr_pg_bndy = - halmac_adapter->txff_allocation.rsvd_fw_txbuff_pg_bndy - - HALMAC_RSVD_CPU_INSTRUCTION_PGNUM_8822B; - halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy = - halmac_adapter->txff_allocation.rsvd_cpu_instr_pg_bndy - - HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B; - halmac_adapter->txff_allocation.rsvd_h2c_extra_info_pg_bndy = - halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy - - HALMAC_RSVD_H2C_EXTRAINFO_PGNUM_8822B; - halmac_adapter->txff_allocation.rsvd_drv_pg_bndy = - halmac_adapter->txff_allocation.rsvd_h2c_extra_info_pg_bndy - - halmac_adapter->txff_allocation.rsvd_drv_pg_num; - - if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) { - curr_pg_num = HALMAC_PG_NUM_SDIO_8822B; - } else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_PCIE) { - curr_pg_num = HALMAC_PG_NUM_PCIE_8822B; - } else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) { - if (halmac_adapter->halmac_bulkout_num == 2) { - curr_pg_num = HALMAC_PG_NUM_2BULKOUT_8822B; - } else if (halmac_adapter->halmac_bulkout_num == 3) { - curr_pg_num = HALMAC_PG_NUM_3BULKOUT_8822B; - } else if (halmac_adapter->halmac_bulkout_num == 4) { - curr_pg_num = HALMAC_PG_NUM_4BULKOUT_8822B; - } else { - pr_err("[ERR]interface not support\n"); - return HALMAC_RET_NOT_SUPPORT; - } - } else { - return HALMAC_RET_NOT_SUPPORT; - } - - status = halmac_pg_num_parser_88xx(halmac_adapter, halmac_trx_mode, - curr_pg_num); - if (status != HALMAC_RET_SUCCESS) - return status; - - HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_INFO_1, - halmac_adapter->txff_allocation.high_queue_pg_num); - HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_INFO_2, - halmac_adapter->txff_allocation.low_queue_pg_num); - HALMAC_REG_WRITE_16( - halmac_adapter, REG_FIFOPAGE_INFO_3, - halmac_adapter->txff_allocation.normal_queue_pg_num); - HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_INFO_4, - halmac_adapter->txff_allocation.extra_queue_pg_num); - HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_INFO_5, - halmac_adapter->txff_allocation.pub_queue_pg_num); - - halmac_adapter->sdio_free_space.high_queue_number = - halmac_adapter->txff_allocation.high_queue_pg_num; - halmac_adapter->sdio_free_space.normal_queue_number = - halmac_adapter->txff_allocation.normal_queue_pg_num; - halmac_adapter->sdio_free_space.low_queue_number = - halmac_adapter->txff_allocation.low_queue_pg_num; - halmac_adapter->sdio_free_space.public_queue_number = - halmac_adapter->txff_allocation.pub_queue_pg_num; - halmac_adapter->sdio_free_space.extra_queue_number = - halmac_adapter->txff_allocation.extra_queue_pg_num; - - HALMAC_REG_WRITE_32( - halmac_adapter, REG_RQPN_CTRL_2, - HALMAC_REG_READ_32(halmac_adapter, REG_RQPN_CTRL_2) | BIT(31)); - - HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2, - (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy & - BIT_MASK_BCN_HEAD_1_V1)); - HALMAC_REG_WRITE_16(halmac_adapter, REG_BCNQ_BDNY_V1, - (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy & - BIT_MASK_BCNQ_PGBNDY_V1)); - HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2 + 2, - (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy & - BIT_MASK_BCN_HEAD_1_V1)); - HALMAC_REG_WRITE_16(halmac_adapter, REG_BCNQ1_BDNY_V1, - (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy & - BIT_MASK_BCNQ_PGBNDY_V1)); - - HALMAC_REG_WRITE_32(halmac_adapter, REG_RXFF_BNDY, - halmac_adapter->hw_config_info.rx_fifo_size - - HALMAC_C2H_PKT_BUF_8822B - 1); - - if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) { - value8 = (u8)( - HALMAC_REG_READ_8(halmac_adapter, REG_AUTO_LLT_V1) & - ~(BIT_MASK_BLK_DESC_NUM << BIT_SHIFT_BLK_DESC_NUM)); - value8 = (u8)(value8 | (HALMAC_BLK_DESC_NUM_8822B - << BIT_SHIFT_BLK_DESC_NUM)); - HALMAC_REG_WRITE_8(halmac_adapter, REG_AUTO_LLT_V1, value8); - - HALMAC_REG_WRITE_8(halmac_adapter, REG_AUTO_LLT_V1 + 3, - HALMAC_BLK_DESC_NUM_8822B); - HALMAC_REG_WRITE_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1, - HALMAC_REG_READ_8(halmac_adapter, - REG_TXDMA_OFFSET_CHK + 1) | - BIT(1)); - } - - HALMAC_REG_WRITE_8( - halmac_adapter, REG_AUTO_LLT_V1, - (u8)(HALMAC_REG_READ_8(halmac_adapter, REG_AUTO_LLT_V1) | - BIT_AUTO_INIT_LLT_V1)); - counter = 1000; - while (HALMAC_REG_READ_8(halmac_adapter, REG_AUTO_LLT_V1) & - BIT_AUTO_INIT_LLT_V1) { - counter--; - if (counter == 0) - return HALMAC_RET_INIT_LLT_FAIL; - } - - if (halmac_trx_mode == HALMAC_TRX_MODE_DELAY_LOOPBACK) { - transfer_mode = HALMAC_TRNSFER_LOOPBACK_DELAY; - HALMAC_REG_WRITE_16( - halmac_adapter, REG_WMAC_LBK_BUF_HD_V1, - (u16)halmac_adapter->txff_allocation.rsvd_pg_bndy); - } else if (halmac_trx_mode == HALMAC_TRX_MODE_LOOPBACK) { - transfer_mode = HALMAC_TRNSFER_LOOPBACK_DIRECT; - } else { - transfer_mode = HALMAC_TRNSFER_NORMAL; - } - - HALMAC_REG_WRITE_8(halmac_adapter, REG_CR + 3, (u8)transfer_mode); - - return HALMAC_RET_SUCCESS; -} diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.h deleted file mode 100644 index 8488fc5f98ee..000000000000 --- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.h +++ /dev/null @@ -1,27 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/****************************************************************************** - * - * Copyright(c) 2016 Realtek Corporation. - * - * Contact Information: - * wlanfae <wlanfae@realtek.com> - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, - * Hsinchu 300, Taiwan. - * - * Larry Finger <Larry.Finger@lwfinger.net> - * - *****************************************************************************/ -#ifndef _HALMAC_FUNC_8822B_H_ -#define _HALMAC_FUNC_8822B_H_ - -#include "../../halmac_type.h" - -enum halmac_ret_status -halmac_txdma_queue_mapping_8822b(struct halmac_adapter *halmac_adapter, - enum halmac_trx_mode halmac_trx_mode); - -enum halmac_ret_status -halmac_priority_queue_config_8822b(struct halmac_adapter *halmac_adapter, - enum halmac_trx_mode halmac_trx_mode); - -#endif /* _HALMAC_FUNC_8822B_H_ */ |