| | 183 | |
|---|
| | 184 | /* |
|---|
| | 185 | * Definitions of ath_desc -> ds_ctl0 also called TXC0 |
|---|
| | 186 | */ |
|---|
| | 187 | #define TXC0_FRAME_LEN_MASK 0x00000FFF |
|---|
| | 188 | #define TXC0_XMIT_POWER_MASK (0x3f << 16) |
|---|
| | 189 | #define TXC0_XMIT_POWER_SHIFT 16 |
|---|
| | 190 | #define TXC0_RTSCTS (1 << 22) |
|---|
| | 191 | #define TXC0_VEOL (1 << 23) |
|---|
| | 192 | #define TXC0_CLR_DEST_MASK (1 << 24) |
|---|
| | 193 | #define TXC0_ANT_MODE_XMIT_MASK (0xf << 25) |
|---|
| | 194 | #define TXC0_ANT_MODE_XMIT_SHIFT 25 |
|---|
| | 195 | #define TXC0_INTER_REQ (1 << 29) |
|---|
| | 196 | #define TXC0_KEY_VALID (1 << 30) |
|---|
| | 197 | #define TXC0_CTS_EANBLE (1 << 31) |
|---|
| | 198 | |
|---|
| | 199 | /* Value defines */ |
|---|
| | 200 | #define GET_TXC0_FRAME_LEN(ds) (ds->ds_ctl0 & TXC0_FRAME_LEN_MASK) |
|---|
| | 201 | #define GET_TXC0_XMIT_POWER(ds) ((ds->ds_ctl0 & TXC0_XMIT_POWER_MASK) >> TXC0_XMIT_POWER_SHIFT) |
|---|
| | 202 | #define GET_TXC0_RTSCTS(ds) ((ds->ds_ctl0 & TXC0_RTSCTS) ? 1 : 0) |
|---|
| | 203 | #define GET_TXC0_VEOL(ds) ((ds->ds_ctl0 & TXC0_VEOL) ? 1 : 0) |
|---|
| | 204 | #define GET_TXC0_CLR_DEST(ds) ((ds->ds_ctl0 & TXC0_CLR_DEST_MASK) ? 1 : 0) |
|---|
| | 205 | #define GET_TXC0_ANT_MODE(ds) ((ds->ds_ctl0 & TXC0_ANT_MODE_XMIT_MASK) >> TXC0_ANT_MODE_XMIT_SHIFT) |
|---|
| | 206 | #define GET_TXC0_INTER_REQ(ds) ((ds->ds_ctl0 & TXC0_INTER_REQ) ? 1 : 0) |
|---|
| | 207 | #define GET_TXC0_KEY_VALID(ds) ((ds->ds_ctl0 & TXC0_KEY_VALID) ? 1 : 0) |
|---|
| | 208 | #define GET_TXC0_CTS_EANBLE(ds) ((ds->ds_ctl0 & TXC0_CTS_EANBLE) ? 1 : 0) |
|---|
| | 209 | |
|---|
| | 210 | /* |
|---|
| | 211 | * Definitions of ath_desc -> ds_ctl1 also called TXC1 |
|---|
| | 212 | */ |
|---|
| | 213 | #define TXC1_BUF_LEN_MASK (0xFFF << 0 ) |
|---|
| | 214 | #define TXC1_MORE (0x1 << 12) |
|---|
| | 215 | #define TXC1_ENCRYPT_KEY_INDEX_SHIFT 13 |
|---|
| | 216 | #define TXC1_ENCRYPT_KEY_INDEX_MASK (0x7F << TXC1_ENCRYPT_KEY_INDEX_SHIFT) |
|---|
| | 217 | #define TXC1_FRAME_TYPE_SHIFT 20 |
|---|
| | 218 | #define TXC1_FRAME_TYPE_MASK (0xF << TXC1_FRAME_TYPE_SHIFT) |
|---|
| | 219 | #define TXC1_NO_ACK (0x1 << 24) |
|---|
| | 220 | #define TXC1_COMP_PROC_SHIFT 25 |
|---|
| | 221 | #define TXC1_COMP_PROC_MASK (0x3 << TXC1_COMP_PROC_SHIFT) |
|---|
| | 222 | #define TXC1_COMP_ICV_LEN_SHIFT 29 |
|---|
| | 223 | #define TXC1_COMP_ICV_LEN_MASK (0x3 << TXC1_COMP_ICV_LEN_SHIFT) |
|---|
| | 224 | |
|---|
| | 225 | |
|---|
| | 226 | /* Value defines */ |
|---|
| | 227 | #define GET_TXC1_BUF_LEN(ds) (ds->ds_ctl1 & TXC1_BUF_LEN_MASK) |
|---|
| | 228 | #define GET_TXC1_MORE(ds) ((ds->ds_ctl1 & TXC1_MORE) ? 1 : 0) |
|---|
| | 229 | #define GET_TXC1_ENCRYPT_KEY_INDEX(ds) ((ds->ds_ctl1 & TXC1_ENCRYPT_KEY_INDEX_MASK) >> TXC1_ENCRYPT_KEY_INDEX_SHIFT) |
|---|
| | 230 | #define GET_TXC1_FRAME_TYPE(ds) ((ds->ds_ctl1 & TXC1_FRAME_TYPE_MASK) >> TXC1_FRAME_TYPE_SHIFT) |
|---|
| | 231 | #define GET_TXC1_NO_ACK(ds) ((ds->ds_ctl1 & TXC1_NO_ACK) ? 1 : 0) |
|---|
| | 232 | #define GET_TXC1_COMP_PROC(ds) ((ds->ds_ctl1 & TXC1_COMP_PROC_MASK) >> TXC1_COMP_PROC_SHIFT) |
|---|
| | 233 | #define GET_TXC1_COMP_ICV_LEN(ds) ((ds->ds_ctl1 & TXC1_COMP_ICV_LEN_MASK) >> TXC1_COMP_ICV_LEN_SHIFT) |
|---|
| | 234 | |
|---|
| | 235 | /* |
|---|
| | 236 | * Definitions of ath_desc -> ds_hw[0] also called TXC2 |
|---|
| | 237 | */ |
|---|
| | 238 | #define TXC2_RTS_DURATION_MASK (0x7FFF << 0) |
|---|
| | 239 | #define TXC2_DURATION_UPDATE_ENABLE (1 << 15) |
|---|
| | 240 | #define TXC2_TRIES0_SHIFT 16 |
|---|
| | 241 | #define TXC2_TRIES0_MASK (0xf << TXC2_TRIES0_SHIFT) |
|---|
| | 242 | #define TXC2_TRIES1_SHIFT 20 |
|---|
| | 243 | #define TXC2_TRIES1_MASK (0xf << TXC2_TRIES1_SHIFT) |
|---|
| | 244 | #define TXC2_TRIES2_SHIFT 24 |
|---|
| | 245 | #define TXC2_TRIES2_MASK (0xf << TXC2_TRIES2_SHIFT) |
|---|
| | 246 | #define TXC2_TRIES3_SHIFT 28 |
|---|
| | 247 | #define TXC2_TRIES3_MASK (0xf << TXC2_TRIES3_SHIFT) |
|---|
| | 248 | |
|---|
| | 249 | /* Value defines */ |
|---|
| | 250 | #define GET_TXC2_RTS_DURATION(ds) (ds->ds_hw[0] & TXC2_RTS_DURATION_MASK) |
|---|
| | 251 | #define GET_TXC2_DURATION_UPDATE_ENABLE(ds) ((ds->ds_hw[0] & TXC2_DURATION_UPDATE_ENABLE) ? 1 : 0) |
|---|
| | 252 | #define GET_TXC2_TRIES0(ds) ((ds->ds_hw[0] & TXC2_TRIES0_MASK) >> TXC2_TRIES0_SHIFT) |
|---|
| | 253 | #define GET_TXC2_TRIES1(ds) ((ds->ds_hw[0] & TXC2_TRIES1_MASK) >> TXC2_TRIES1_SHIFT) |
|---|
| | 254 | #define GET_TXC2_TRIES2(ds) ((ds->ds_hw[0] & TXC2_TRIES2_MASK) >> TXC2_TRIES2_SHIFT) |
|---|
| | 255 | #define GET_TXC2_TRIES3(ds) ((ds->ds_hw[0] & TXC2_TRIES3_MASK) >> TXC2_TRIES3_SHIFT) |
|---|
| | 256 | |
|---|
| | 257 | /* |
|---|
| | 258 | * Definitions of ath_desc -> ds_hw[1] also called TXC3 |
|---|
| | 259 | */ |
|---|
| | 260 | #define TXC3_RATE0_MASK (0x1F << 0) |
|---|
| | 261 | #define TXC3_RATE1_MASK (0x1F << 5) |
|---|
| | 262 | #define TXC3_RATE1_SHIFT 5 |
|---|
| | 263 | #define TXC3_RATE2_MASK (0x1F << 10) |
|---|
| | 264 | #define TXC3_RATE2_SHIFT 10 |
|---|
| | 265 | #define TXC3_RATE3_MASK (0x1F << 15) |
|---|
| | 266 | #define TXC3_RATE3_SHIFT 15 |
|---|
| | 267 | #define TXC3_RTS_CTS_RATE_MASK (0x1F << 20) |
|---|
| | 268 | #define TXC3_RTS_CTS_RATE_SHIFT 20 |
|---|
| | 269 | |
|---|
| | 270 | /* Value defines */ |
|---|
| | 271 | #define GET_TXC3_RATE0(ds) (ds->ds_hw[1] & TXC3_RATE0_MASK) |
|---|
| | 272 | #define GET_TXC3_RATE1(ds) ((ds->ds_hw[1] & TXC3_RATE1_MASK) >> TXC3_RATE1_SHIFT) |
|---|
| | 273 | #define GET_TXC3_RATE2(ds) ((ds->ds_hw[1] & TXC3_RATE2_MASK) >> TXC3_RATE2_SHIFT) |
|---|
| | 274 | #define GET_TXC3_RATE3(ds) ((ds->ds_hw[1] & TXC3_RATE3_MASK) >> TXC3_RATE3_SHIFT) |
|---|
| | 275 | #define GET_TXC3_RTS_CTS_RATE(ds) ((ds->ds_hw[1] & TXC3_RTS_CTS_RATE_MASK) >> TXC3_RTS_CTS_RATE_SHIFT) |
|---|
| | 276 | |
|---|
| | 277 | /* |
|---|
| | 278 | * Definitions of ath_desc -> ds_hw[2] also called TXS0 |
|---|
| | 279 | */ |
|---|
| | 280 | #define TXS0_FRAME_XMIT_OK (0x1 << 0) |
|---|
| | 281 | #define TXS0_EXCESSIVE_RETRIES (0x1 << 1) |
|---|
| | 282 | #define TXS0_FIFO_UNDERRUN (0x1 << 2) |
|---|
| | 283 | #define TXS0_FILTERED (0x1 << 3) |
|---|
| | 284 | #define TXS0_RTS_FAIL_COUNT_SHIFT 4 |
|---|
| | 285 | #define TXS0_RTS_FAIL_COUNT_MASK (0xF << TXS0_RTS_FAIL_COUNT_SHIFT) |
|---|
| | 286 | #define TXS0_DATA_FAIL_COUNT_SHIFT 8 |
|---|
| | 287 | #define TXS0_DATA_FAIL_COUNT_MASK (0xF << TXS0_DATA_FAIL_COUNT_SHIFT) |
|---|
| | 288 | #define TXS0_VIRT_COLL_COUNT_SHIFT 12 |
|---|
| | 289 | #define TXS0_VIRT_COLL_COUNT_MASK (0xF << TXS0_VIRT_COLL_COUNT_SHIFT) |
|---|
| | 290 | #define TXS0_SEND_TIMESTAMP_SHIFT 16 |
|---|
| | 291 | #define TXS0_SEND_TIMESTAMP_MASK (0xFFFF << TXS0_SEND_TIMESTAMP_SHIFT) |
|---|
| | 292 | |
|---|
| | 293 | #define GET_TXS0_FRAME_XMIT_OK(ds) ((ds->ds_hw[2] & TXS0_FRAME_XMIT_OK) ? 1 : 0) |
|---|
| | 294 | #define GET_TXS0_EXCESSIVE_RETRIES(ds) ((ds->ds_hw[2] & TXS0_EXCESSIVE_RETRIES) ? 1 : 0) |
|---|
| | 295 | #define GET_TXS0_FIFO_UNDERRUN(ds) ((ds->ds_hw[2] & TXS0_FIFO_UNDERRUN) ? 1 : 0) |
|---|
| | 296 | #define GET_TXS0_FILTERED(ds) ((ds->ds_hw[2] & TXS0_FILTERED) ? 1 : 0) |
|---|
| | 297 | #define GET_TXS0_RTS_FAIL_COUNT(ds) ((ds->ds_hw[2] & TXS0_RTS_FAIL_COUNT_MASK) >> TXS0_RTS_FAIL_COUNT_SHIFT) |
|---|
| | 298 | #define GET_TXS0_DATA_FAIL_COUNT(ds) ((ds->ds_hw[2] & TXS0_DATA_FAIL_COUNT_MASK) >> TXS0_DATA_FAIL_COUNT_SHIFT) |
|---|
| | 299 | #define GET_TXS0_VIRT_COLL_COUNT(ds) ((ds->ds_hw[2] & TXS0_VIRT_COLL_COUNT_MASK) >> TXS0_VIRT_COLL_COUNT_SHIFT) |
|---|
| | 300 | #define GET_TXS0_SEND_TIMESTAMP_COUNT(ds) ((ds->ds_hw[2] & TXS0_SEND_TIMESTAMP_MASK) >> TXS0_SEND_TIMESTAMP_SHIFT) |
|---|
| | 301 | |
|---|
| | 302 | /* |
|---|
| | 303 | * Definitions of ath_desc -> ds_hw[3] also called TXS1 |
|---|
| | 304 | */ |
|---|
| | 305 | #define TXS1_DONE (0x1 << 0) |
|---|
| | 306 | #define TXS1_SEQ_NUM_SHIFT 1 |
|---|
| | 307 | #define TXS1_SEQ_NUM_MASK (0xFFF << TXS1_SEQ_NUM_SHIFT) |
|---|
| | 308 | #define TXS1_ACK_SIG_STRENGTH_SHIFT 13 |
|---|
| | 309 | #define TXS1_ACK_SIG_STRENGTH_MASK (0xF << TXS1_ACK_SIG_STRENGTH_SHIFT) |
|---|
| | 310 | #define TXS1_FINAL_TS_INDEX_SHIFT 21 |
|---|
| | 311 | #define TXS1_FINAL_TS_INDEX_MASK (0x3 << TXS1_FINAL_TS_INDEX_SHIFT) |
|---|
| | 312 | #define TXS1_COMP_SUCCESS (0x1 << 23) |
|---|
| | 313 | #define TXS1_XMIT_ANT (0x1 << 24) |
|---|
| | 314 | |
|---|
| | 315 | #define GET_TXS1_DONE(ds) ((ds->ds_hw[3] & TXS0_FRAME_XMIT_OK) ? 1 : 0) |
|---|
| | 316 | #define GET_TXS1_SEQ_NUM(ds) ((ds->ds_hw[3] & TXS1_SEQ_NUM_MASK) >> TXS1_SEQ_NUM_SHIFT) |
|---|
| | 317 | #define GET_TXS1_ACK_SIG_STRENGTH(ds) ((ds->ds_hw[3] & TXS1_ACK_SIG_STRENGTH_MASK) >> TXS1_ACK_SIG_STRENGTH_SHIFT) |
|---|
| | 318 | #define GET_TXS1_FINAL_TS_INDEX(ds) ((ds->ds_hw[3] & TXS1_FINAL_TS_INDEX_MASK) >> TXS1_FINAL_TS_INDEX_SHIFT) |
|---|
| | 319 | #define GET_TXS1_COMP_SUCCESS(ds) ((ds->ds_hw[3] & TXS1_COMP_SUCCESS) ? 1 : 0) |
|---|
| | 320 | #define GET_TXS1_XMIT_ANT(ds) ((ds->ds_hw[3] & TXS1_XMIT_ANT) ? 1 : 0) |
|---|
| | 321 | |
|---|
| | 322 | |
|---|