Commit | Line | Data |
---|---|---|
18d30067 G |
1 | /****************************************************************************** |
2 | * | |
c1d6604d | 3 | * Copyright(c) 2009-2012 Realtek Corporation. |
18d30067 G |
4 | * |
5 | * This program is free software; you can redistribute it and/or modify it | |
6 | * under the terms of version 2 of the GNU General Public License as | |
7 | * published by the Free Software Foundation. | |
8 | * | |
9 | * This program is distributed in the hope that it will be useful, but WITHOUT | |
10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
12 | * more details. | |
13 | * | |
14 | * You should have received a copy of the GNU General Public License along with | |
15 | * this program; if not, write to the Free Software Foundation, Inc., | |
16 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
17 | * | |
18 | * The full GNU General Public License is included in this distribution in the | |
19 | * file called LICENSE. | |
20 | * | |
21 | * Contact Information: | |
22 | * wlanfae <wlanfae@realtek.com> | |
23 | * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, | |
24 | * Hsinchu 300, Taiwan. | |
25 | * | |
26 | * Larry Finger <Larry.Finger@lwfinger.net> | |
27 | * | |
28 | *****************************************************************************/ | |
29 | ||
30 | #ifndef __RTL92CU_HW_H__ | |
31 | #define __RTL92CU_HW_H__ | |
32 | ||
1472d3a8 LF |
33 | #define H2C_RA_MASK 6 |
34 | ||
18d30067 G |
35 | #define LLT_LAST_ENTRY_OF_TX_PKT_BUFFER 255 |
36 | ||
37 | #define RX_PAGE_SIZE_REG_VALUE PBP_128 | |
38 | /* Note: We will divide number of page equally for each queue | |
39 | * other than public queue! */ | |
40 | #define TX_TOTAL_PAGE_NUMBER 0xF8 | |
41 | #define TX_PAGE_BOUNDARY (TX_TOTAL_PAGE_NUMBER + 1) | |
42 | ||
43 | ||
44 | #define CHIP_B_PAGE_NUM_PUBQ 0xE7 | |
45 | ||
46 | /* For Test Chip Setting | |
47 | * (HPQ + LPQ + PUBQ) shall be TX_TOTAL_PAGE_NUMBER */ | |
48 | #define CHIP_A_PAGE_NUM_PUBQ 0x7E | |
49 | ||
50 | ||
51 | /* For Chip A Setting */ | |
52 | #define WMM_CHIP_A_TX_TOTAL_PAGE_NUMBER 0xF5 | |
53 | #define WMM_CHIP_A_TX_PAGE_BOUNDARY \ | |
54 | (WMM_CHIP_A_TX_TOTAL_PAGE_NUMBER + 1) /* F6 */ | |
55 | ||
56 | #define WMM_CHIP_A_PAGE_NUM_PUBQ 0xA3 | |
57 | #define WMM_CHIP_A_PAGE_NUM_HPQ 0x29 | |
58 | #define WMM_CHIP_A_PAGE_NUM_LPQ 0x29 | |
59 | ||
60 | ||
61 | ||
62 | /* Note: For Chip B Setting ,modify later */ | |
63 | #define WMM_CHIP_B_TX_TOTAL_PAGE_NUMBER 0xF5 | |
64 | #define WMM_CHIP_B_TX_PAGE_BOUNDARY \ | |
65 | (WMM_CHIP_B_TX_TOTAL_PAGE_NUMBER + 1) /* F6 */ | |
66 | ||
67 | #define WMM_CHIP_B_PAGE_NUM_PUBQ 0xB0 | |
68 | #define WMM_CHIP_B_PAGE_NUM_HPQ 0x29 | |
69 | #define WMM_CHIP_B_PAGE_NUM_LPQ 0x1C | |
70 | #define WMM_CHIP_B_PAGE_NUM_NPQ 0x1C | |
71 | ||
72 | #define BOARD_TYPE_NORMAL_MASK 0xE0 | |
73 | #define BOARD_TYPE_TEST_MASK 0x0F | |
74 | ||
75 | /* should be renamed and moved to another file */ | |
76 | enum _BOARD_TYPE_8192CUSB { | |
77 | BOARD_USB_DONGLE = 0, /* USB dongle */ | |
78 | BOARD_USB_High_PA = 1, /* USB dongle - high power PA */ | |
79 | BOARD_MINICARD = 2, /* Minicard */ | |
80 | BOARD_USB_SOLO = 3, /* USB solo-Slim module */ | |
81 | BOARD_USB_COMBO = 4, /* USB Combo-Slim module */ | |
82 | }; | |
83 | ||
84 | #define IS_HIGHT_PA(boardtype) \ | |
85 | ((boardtype == BOARD_USB_High_PA) ? true : false) | |
86 | ||
87 | #define RTL92C_DRIVER_INFO_SIZE 4 | |
88 | void rtl92cu_read_eeprom_info(struct ieee80211_hw *hw); | |
89 | void rtl92cu_enable_hw_security_config(struct ieee80211_hw *hw); | |
90 | int rtl92cu_hw_init(struct ieee80211_hw *hw); | |
91 | void rtl92cu_card_disable(struct ieee80211_hw *hw); | |
92 | int rtl92cu_set_network_type(struct ieee80211_hw *hw, enum nl80211_iftype type); | |
93 | void rtl92cu_set_beacon_related_registers(struct ieee80211_hw *hw); | |
94 | void rtl92cu_set_beacon_interval(struct ieee80211_hw *hw); | |
95 | void rtl92cu_update_interrupt_mask(struct ieee80211_hw *hw, | |
96 | u32 add_msr, u32 rm_msr); | |
97 | void rtl92cu_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val); | |
98 | void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val); | |
18d30067 G |
99 | |
100 | void rtl92cu_update_channel_access_setting(struct ieee80211_hw *hw); | |
101 | bool rtl92cu_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 * valid); | |
102 | void rtl92cu_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid); | |
1472d3a8 LF |
103 | int rtl92c_download_fw(struct ieee80211_hw *hw); |
104 | void rtl92c_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode); | |
1472d3a8 LF |
105 | void rtl92c_set_fw_joinbss_report_cmd(struct ieee80211_hw *hw, u8 mstatus); |
106 | void rtl92c_fill_h2c_cmd(struct ieee80211_hw *hw, | |
107 | u8 element_id, u32 cmd_len, u8 *p_cmdbuffer); | |
108 | bool rtl92cu_phy_mac_config(struct ieee80211_hw *hw); | |
d28e5e5d MS |
109 | void rtl92cu_update_hal_rate_tbl(struct ieee80211_hw *hw, |
110 | struct ieee80211_sta *sta, | |
111 | u8 rssi_level); | |
18d30067 G |
112 | |
113 | #endif |