diff options
Diffstat (limited to 'drivers/net/wireless/ath5k/ath5k.h')
-rw-r--r-- | drivers/net/wireless/ath5k/ath5k.h | 170 |
1 files changed, 80 insertions, 90 deletions
diff --git a/drivers/net/wireless/ath5k/ath5k.h b/drivers/net/wireless/ath5k/ath5k.h index 69dea3392612..ba35c30d203c 100644 --- a/drivers/net/wireless/ath5k/ath5k.h +++ b/drivers/net/wireless/ath5k/ath5k.h | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <net/mac80211.h> | 30 | #include <net/mac80211.h> |
31 | 31 | ||
32 | #include "hw.h" | 32 | #include "hw.h" |
33 | #include "regdom.h" | ||
34 | 33 | ||
35 | /* PCI IDs */ | 34 | /* PCI IDs */ |
36 | #define PCI_DEVICE_ID_ATHEROS_AR5210 0x0007 /* AR5210 */ | 35 | #define PCI_DEVICE_ID_ATHEROS_AR5210 0x0007 /* AR5210 */ |
@@ -141,7 +140,9 @@ enum ath5k_radio { | |||
141 | AR5K_RF5110 = 0, | 140 | AR5K_RF5110 = 0, |
142 | AR5K_RF5111 = 1, | 141 | AR5K_RF5111 = 1, |
143 | AR5K_RF5112 = 2, | 142 | AR5K_RF5112 = 2, |
144 | AR5K_RF5413 = 3, | 143 | AR5K_RF2413 = 3, |
144 | AR5K_RF5413 = 4, | ||
145 | AR5K_RF2425 = 5, | ||
145 | }; | 146 | }; |
146 | 147 | ||
147 | /* | 148 | /* |
@@ -169,12 +170,15 @@ struct ath5k_srev_name { | |||
169 | #define AR5K_SREV_VER_AR5212 0x50 | 170 | #define AR5K_SREV_VER_AR5212 0x50 |
170 | #define AR5K_SREV_VER_AR5213 0x55 | 171 | #define AR5K_SREV_VER_AR5213 0x55 |
171 | #define AR5K_SREV_VER_AR5213A 0x59 | 172 | #define AR5K_SREV_VER_AR5213A 0x59 |
172 | #define AR5K_SREV_VER_AR2424 0xa0 | 173 | #define AR5K_SREV_VER_AR2413 0x78 |
173 | #define AR5K_SREV_VER_AR5424 0xa3 | 174 | #define AR5K_SREV_VER_AR2414 0x79 |
175 | #define AR5K_SREV_VER_AR2424 0xa0 /* PCI-E */ | ||
176 | #define AR5K_SREV_VER_AR5424 0xa3 /* PCI-E */ | ||
174 | #define AR5K_SREV_VER_AR5413 0xa4 | 177 | #define AR5K_SREV_VER_AR5413 0xa4 |
175 | #define AR5K_SREV_VER_AR5414 0xa5 | 178 | #define AR5K_SREV_VER_AR5414 0xa5 |
176 | #define AR5K_SREV_VER_AR5416 0xc0 /* ? */ | 179 | #define AR5K_SREV_VER_AR5416 0xc0 /* PCI-E */ |
177 | #define AR5K_SREV_VER_AR5418 0xca | 180 | #define AR5K_SREV_VER_AR5418 0xca /* PCI-E */ |
181 | #define AR5K_SREV_VER_AR2425 0xe2 /* PCI-E */ | ||
178 | 182 | ||
179 | #define AR5K_SREV_RAD_5110 0x00 | 183 | #define AR5K_SREV_RAD_5110 0x00 |
180 | #define AR5K_SREV_RAD_5111 0x10 | 184 | #define AR5K_SREV_RAD_5111 0x10 |
@@ -184,8 +188,9 @@ struct ath5k_srev_name { | |||
184 | #define AR5K_SREV_RAD_5112A 0x35 | 188 | #define AR5K_SREV_RAD_5112A 0x35 |
185 | #define AR5K_SREV_RAD_2112 0x40 | 189 | #define AR5K_SREV_RAD_2112 0x40 |
186 | #define AR5K_SREV_RAD_2112A 0x45 | 190 | #define AR5K_SREV_RAD_2112A 0x45 |
191 | #define AR5K_SREV_RAD_SC0 0x56 /* Found on 2413/2414 */ | ||
187 | #define AR5K_SREV_RAD_SC1 0x63 /* Found on 5413/5414 */ | 192 | #define AR5K_SREV_RAD_SC1 0x63 /* Found on 5413/5414 */ |
188 | #define AR5K_SREV_RAD_SC2 0xa2 /* Found on 2424/5424 */ | 193 | #define AR5K_SREV_RAD_SC2 0xa2 /* Found on 2424-5/5424 */ |
189 | #define AR5K_SREV_RAD_5133 0xc0 /* MIMO found on 5418 */ | 194 | #define AR5K_SREV_RAD_5133 0xc0 /* MIMO found on 5418 */ |
190 | 195 | ||
191 | /* IEEE defs */ | 196 | /* IEEE defs */ |
@@ -251,26 +256,31 @@ struct ath5k_srev_name { | |||
251 | */ | 256 | */ |
252 | #define MODULATION_TURBO 0x00000080 | 257 | #define MODULATION_TURBO 0x00000080 |
253 | 258 | ||
254 | enum ath5k_vendor_mode { | 259 | enum ath5k_driver_mode { |
255 | MODE_ATHEROS_TURBO = NUM_IEEE80211_MODES+1, | 260 | AR5K_MODE_11A = 0, |
256 | MODE_ATHEROS_TURBOG | 261 | AR5K_MODE_11A_TURBO = 1, |
262 | AR5K_MODE_11B = 2, | ||
263 | AR5K_MODE_11G = 3, | ||
264 | AR5K_MODE_11G_TURBO = 4, | ||
265 | AR5K_MODE_XR = 0, | ||
266 | AR5K_MODE_MAX = 5 | ||
257 | }; | 267 | }; |
258 | 268 | ||
259 | /* Number of supported mac80211 enum ieee80211_phymode modes by this driver */ | ||
260 | #define NUM_DRIVER_MODES 3 | ||
261 | |||
262 | /* adding this flag to rate_code enables short preamble, see ar5212_reg.h */ | 269 | /* adding this flag to rate_code enables short preamble, see ar5212_reg.h */ |
263 | #define AR5K_SET_SHORT_PREAMBLE 0x04 | 270 | #define AR5K_SET_SHORT_PREAMBLE 0x04 |
264 | 271 | ||
265 | #define HAS_SHPREAMBLE(_ix) (rt->rates[_ix].modulation == IEEE80211_RATE_CCK_2) | 272 | #define HAS_SHPREAMBLE(_ix) \ |
266 | #define SHPREAMBLE_FLAG(_ix) (HAS_SHPREAMBLE(_ix) ? AR5K_SET_SHORT_PREAMBLE : 0) | 273 | (rt->rates[_ix].modulation == IEEE80211_RATE_SHORT_PREAMBLE) |
274 | #define SHPREAMBLE_FLAG(_ix) \ | ||
275 | (HAS_SHPREAMBLE(_ix) ? AR5K_SET_SHORT_PREAMBLE : 0) | ||
276 | |||
267 | 277 | ||
268 | /****************\ | 278 | /****************\ |
269 | TX DEFINITIONS | 279 | TX DEFINITIONS |
270 | \****************/ | 280 | \****************/ |
271 | 281 | ||
272 | /* | 282 | /* |
273 | * Tx Descriptor | 283 | * TX Status |
274 | */ | 284 | */ |
275 | struct ath5k_tx_status { | 285 | struct ath5k_tx_status { |
276 | u16 ts_seqnum; | 286 | u16 ts_seqnum; |
@@ -418,7 +428,7 @@ enum ath5k_dmasize { | |||
418 | \****************/ | 428 | \****************/ |
419 | 429 | ||
420 | /* | 430 | /* |
421 | * Rx Descriptor | 431 | * RX Status |
422 | */ | 432 | */ |
423 | struct ath5k_rx_status { | 433 | struct ath5k_rx_status { |
424 | u16 rs_datalen; | 434 | u16 rs_datalen; |
@@ -440,16 +450,6 @@ struct ath5k_rx_status { | |||
440 | #define AR5K_RXKEYIX_INVALID ((u8) - 1) | 450 | #define AR5K_RXKEYIX_INVALID ((u8) - 1) |
441 | #define AR5K_TXKEYIX_INVALID ((u32) - 1) | 451 | #define AR5K_TXKEYIX_INVALID ((u32) - 1) |
442 | 452 | ||
443 | struct ath5k_mib_stats { | ||
444 | u32 ackrcv_bad; | ||
445 | u32 rts_bad; | ||
446 | u32 rts_good; | ||
447 | u32 fcs_bad; | ||
448 | u32 beacons; | ||
449 | }; | ||
450 | |||
451 | |||
452 | |||
453 | 453 | ||
454 | /**************************\ | 454 | /**************************\ |
455 | BEACON TIMERS DEFINITIONS | 455 | BEACON TIMERS DEFINITIONS |
@@ -492,29 +492,23 @@ struct ath5k_beacon_state { | |||
492 | #define TSF_TO_TU(_tsf) (u32)((_tsf) >> 10) | 492 | #define TSF_TO_TU(_tsf) (u32)((_tsf) >> 10) |
493 | 493 | ||
494 | 494 | ||
495 | |||
496 | /********************\ | 495 | /********************\ |
497 | COMMON DEFINITIONS | 496 | COMMON DEFINITIONS |
498 | \********************/ | 497 | \********************/ |
499 | 498 | ||
500 | /* | 499 | /* |
501 | * Atheros descriptor | 500 | * Atheros hardware descriptor |
501 | * This is read and written to by the hardware | ||
502 | */ | 502 | */ |
503 | struct ath5k_desc { | 503 | struct ath5k_desc { |
504 | u32 ds_link; | 504 | u32 ds_link; /* physical address of the next descriptor */ |
505 | u32 ds_data; | 505 | u32 ds_data; /* physical address of data buffer (skb) */ |
506 | u32 ds_ctl0; | ||
507 | u32 ds_ctl1; | ||
508 | u32 ds_hw[4]; | ||
509 | 506 | ||
510 | union { | 507 | union { |
511 | struct ath5k_rx_status rx; | 508 | struct ath5k_hw_5210_tx_desc ds_tx5210; |
512 | struct ath5k_tx_status tx; | 509 | struct ath5k_hw_5212_tx_desc ds_tx5212; |
513 | } ds_us; | 510 | struct ath5k_hw_all_rx_desc ds_rx; |
514 | 511 | } ud; | |
515 | #define ds_rxstat ds_us.rx | ||
516 | #define ds_txstat ds_us.tx | ||
517 | |||
518 | } __packed; | 512 | } __packed; |
519 | 513 | ||
520 | #define AR5K_RXDESC_INTREQ 0x0020 | 514 | #define AR5K_RXDESC_INTREQ 0x0020 |
@@ -560,8 +554,8 @@ struct ath5k_desc { | |||
560 | * Used internaly in OpenHAL (ar5211.c/ar5212.c | 554 | * Used internaly in OpenHAL (ar5211.c/ar5212.c |
561 | * for reset_tx_queue). Also see struct struct ieee80211_channel. | 555 | * for reset_tx_queue). Also see struct struct ieee80211_channel. |
562 | */ | 556 | */ |
563 | #define IS_CHAN_XR(_c) ((_c.val & CHANNEL_XR) != 0) | 557 | #define IS_CHAN_XR(_c) ((_c.hw_value & CHANNEL_XR) != 0) |
564 | #define IS_CHAN_B(_c) ((_c.val & CHANNEL_B) != 0) | 558 | #define IS_CHAN_B(_c) ((_c.hw_value & CHANNEL_B) != 0) |
565 | 559 | ||
566 | /* | 560 | /* |
567 | * The following structure will be used to map 2GHz channels to | 561 | * The following structure will be used to map 2GHz channels to |
@@ -584,7 +578,7 @@ struct ath5k_athchan_2ghz { | |||
584 | 578 | ||
585 | /** | 579 | /** |
586 | * struct ath5k_rate - rate structure | 580 | * struct ath5k_rate - rate structure |
587 | * @valid: is this a valid rate for the current mode | 581 | * @valid: is this a valid rate for rate control (remove) |
588 | * @modulation: respective mac80211 modulation | 582 | * @modulation: respective mac80211 modulation |
589 | * @rate_kbps: rate in kbit/s | 583 | * @rate_kbps: rate in kbit/s |
590 | * @rate_code: hardware rate value, used in &struct ath5k_desc, on RX on | 584 | * @rate_code: hardware rate value, used in &struct ath5k_desc, on RX on |
@@ -643,47 +637,48 @@ struct ath5k_rate_table { | |||
643 | 637 | ||
644 | /* | 638 | /* |
645 | * Rate tables... | 639 | * Rate tables... |
640 | * TODO: CLEAN THIS !!! | ||
646 | */ | 641 | */ |
647 | #define AR5K_RATES_11A { 8, { \ | 642 | #define AR5K_RATES_11A { 8, { \ |
648 | 255, 255, 255, 255, 255, 255, 255, 255, 6, 4, 2, 0, \ | 643 | 255, 255, 255, 255, 255, 255, 255, 255, 6, 4, 2, 0, \ |
649 | 7, 5, 3, 1, 255, 255, 255, 255, 255, 255, 255, 255, \ | 644 | 7, 5, 3, 1, 255, 255, 255, 255, 255, 255, 255, 255, \ |
650 | 255, 255, 255, 255, 255, 255, 255, 255 }, { \ | 645 | 255, 255, 255, 255, 255, 255, 255, 255 }, { \ |
651 | { 1, IEEE80211_RATE_OFDM, 6000, 11, 140, 0 }, \ | 646 | { 1, 0, 6000, 11, 140, 0 }, \ |
652 | { 1, IEEE80211_RATE_OFDM, 9000, 15, 18, 0 }, \ | 647 | { 1, 0, 9000, 15, 18, 0 }, \ |
653 | { 1, IEEE80211_RATE_OFDM, 12000, 10, 152, 2 }, \ | 648 | { 1, 0, 12000, 10, 152, 2 }, \ |
654 | { 1, IEEE80211_RATE_OFDM, 18000, 14, 36, 2 }, \ | 649 | { 1, 0, 18000, 14, 36, 2 }, \ |
655 | { 1, IEEE80211_RATE_OFDM, 24000, 9, 176, 4 }, \ | 650 | { 1, 0, 24000, 9, 176, 4 }, \ |
656 | { 1, IEEE80211_RATE_OFDM, 36000, 13, 72, 4 }, \ | 651 | { 1, 0, 36000, 13, 72, 4 }, \ |
657 | { 1, IEEE80211_RATE_OFDM, 48000, 8, 96, 4 }, \ | 652 | { 1, 0, 48000, 8, 96, 4 }, \ |
658 | { 1, IEEE80211_RATE_OFDM, 54000, 12, 108, 4 } } \ | 653 | { 1, 0, 54000, 12, 108, 4 } } \ |
659 | } | 654 | } |
660 | 655 | ||
661 | #define AR5K_RATES_11B { 4, { \ | 656 | #define AR5K_RATES_11B { 4, { \ |
662 | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, \ | 657 | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, \ |
663 | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, \ | 658 | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, \ |
664 | 3, 2, 1, 0, 255, 255, 255, 255 }, { \ | 659 | 3, 2, 1, 0, 255, 255, 255, 255 }, { \ |
665 | { 1, IEEE80211_RATE_CCK, 1000, 27, 130, 0 }, \ | 660 | { 1, 0, 1000, 27, 130, 0 }, \ |
666 | { 1, IEEE80211_RATE_CCK_2, 2000, 26, 132, 1 }, \ | 661 | { 1, IEEE80211_RATE_SHORT_PREAMBLE, 2000, 26, 132, 1 }, \ |
667 | { 1, IEEE80211_RATE_CCK_2, 5500, 25, 139, 1 }, \ | 662 | { 1, IEEE80211_RATE_SHORT_PREAMBLE, 5500, 25, 139, 1 }, \ |
668 | { 1, IEEE80211_RATE_CCK_2, 11000, 24, 150, 1 } } \ | 663 | { 1, IEEE80211_RATE_SHORT_PREAMBLE, 11000, 24, 150, 1 } } \ |
669 | } | 664 | } |
670 | 665 | ||
671 | #define AR5K_RATES_11G { 12, { \ | 666 | #define AR5K_RATES_11G { 12, { \ |
672 | 255, 255, 255, 255, 255, 255, 255, 255, 10, 8, 6, 4, \ | 667 | 255, 255, 255, 255, 255, 255, 255, 255, 10, 8, 6, 4, \ |
673 | 11, 9, 7, 5, 255, 255, 255, 255, 255, 255, 255, 255, \ | 668 | 11, 9, 7, 5, 255, 255, 255, 255, 255, 255, 255, 255, \ |
674 | 3, 2, 1, 0, 255, 255, 255, 255 }, { \ | 669 | 3, 2, 1, 0, 255, 255, 255, 255 }, { \ |
675 | { 1, IEEE80211_RATE_CCK, 1000, 27, 2, 0 }, \ | 670 | { 1, 0, 1000, 27, 2, 0 }, \ |
676 | { 1, IEEE80211_RATE_CCK_2, 2000, 26, 4, 1 }, \ | 671 | { 1, IEEE80211_RATE_SHORT_PREAMBLE, 2000, 26, 4, 1 }, \ |
677 | { 1, IEEE80211_RATE_CCK_2, 5500, 25, 11, 1 }, \ | 672 | { 1, IEEE80211_RATE_SHORT_PREAMBLE, 5500, 25, 11, 1 }, \ |
678 | { 1, IEEE80211_RATE_CCK_2, 11000, 24, 22, 1 }, \ | 673 | { 1, IEEE80211_RATE_SHORT_PREAMBLE, 11000, 24, 22, 1 }, \ |
679 | { 0, IEEE80211_RATE_OFDM, 6000, 11, 12, 4 }, \ | 674 | { 0, 0, 6000, 11, 12, 4 }, \ |
680 | { 0, IEEE80211_RATE_OFDM, 9000, 15, 18, 4 }, \ | 675 | { 0, 0, 9000, 15, 18, 4 }, \ |
681 | { 1, IEEE80211_RATE_OFDM, 12000, 10, 24, 6 }, \ | 676 | { 1, 0, 12000, 10, 24, 6 }, \ |
682 | { 1, IEEE80211_RATE_OFDM, 18000, 14, 36, 6 }, \ | 677 | { 1, 0, 18000, 14, 36, 6 }, \ |
683 | { 1, IEEE80211_RATE_OFDM, 24000, 9, 48, 8 }, \ | 678 | { 1, 0, 24000, 9, 48, 8 }, \ |
684 | { 1, IEEE80211_RATE_OFDM, 36000, 13, 72, 8 }, \ | 679 | { 1, 0, 36000, 13, 72, 8 }, \ |
685 | { 1, IEEE80211_RATE_OFDM, 48000, 8, 96, 8 }, \ | 680 | { 1, 0, 48000, 8, 96, 8 }, \ |
686 | { 1, IEEE80211_RATE_OFDM, 54000, 12, 108, 8 } } \ | 681 | { 1, 0, 54000, 12, 108, 8 } } \ |
687 | } | 682 | } |
688 | 683 | ||
689 | #define AR5K_RATES_TURBO { 8, { \ | 684 | #define AR5K_RATES_TURBO { 8, { \ |
@@ -708,14 +703,14 @@ struct ath5k_rate_table { | |||
708 | { 1, MODULATION_XR, 1000, 2, 139, 1 }, \ | 703 | { 1, MODULATION_XR, 1000, 2, 139, 1 }, \ |
709 | { 1, MODULATION_XR, 2000, 6, 150, 2 }, \ | 704 | { 1, MODULATION_XR, 2000, 6, 150, 2 }, \ |
710 | { 1, MODULATION_XR, 3000, 1, 150, 3 }, \ | 705 | { 1, MODULATION_XR, 3000, 1, 150, 3 }, \ |
711 | { 1, IEEE80211_RATE_OFDM, 6000, 11, 140, 4 }, \ | 706 | { 1, 0, 6000, 11, 140, 4 }, \ |
712 | { 1, IEEE80211_RATE_OFDM, 9000, 15, 18, 4 }, \ | 707 | { 1, 0, 9000, 15, 18, 4 }, \ |
713 | { 1, IEEE80211_RATE_OFDM, 12000, 10, 152, 6 }, \ | 708 | { 1, 0, 12000, 10, 152, 6 }, \ |
714 | { 1, IEEE80211_RATE_OFDM, 18000, 14, 36, 6 }, \ | 709 | { 1, 0, 18000, 14, 36, 6 }, \ |
715 | { 1, IEEE80211_RATE_OFDM, 24000, 9, 176, 8 }, \ | 710 | { 1, 0, 24000, 9, 176, 8 }, \ |
716 | { 1, IEEE80211_RATE_OFDM, 36000, 13, 72, 8 }, \ | 711 | { 1, 0, 36000, 13, 72, 8 }, \ |
717 | { 1, IEEE80211_RATE_OFDM, 48000, 8, 96, 8 }, \ | 712 | { 1, 0, 48000, 8, 96, 8 }, \ |
718 | { 1, IEEE80211_RATE_OFDM, 54000, 12, 108, 8 } } \ | 713 | { 1, 0, 54000, 12, 108, 8 } } \ |
719 | } | 714 | } |
720 | 715 | ||
721 | /* | 716 | /* |
@@ -890,12 +885,14 @@ enum ath5k_capability_type { | |||
890 | AR5K_CAP_RFSILENT = 20, /* Supports RFsilent */ | 885 | AR5K_CAP_RFSILENT = 20, /* Supports RFsilent */ |
891 | }; | 886 | }; |
892 | 887 | ||
888 | |||
889 | /* XXX: we *may* move cap_range stuff to struct wiphy */ | ||
893 | struct ath5k_capabilities { | 890 | struct ath5k_capabilities { |
894 | /* | 891 | /* |
895 | * Supported PHY modes | 892 | * Supported PHY modes |
896 | * (ie. CHANNEL_A, CHANNEL_B, ...) | 893 | * (ie. CHANNEL_A, CHANNEL_B, ...) |
897 | */ | 894 | */ |
898 | DECLARE_BITMAP(cap_mode, NUM_DRIVER_MODES); | 895 | DECLARE_BITMAP(cap_mode, AR5K_MODE_MAX); |
899 | 896 | ||
900 | /* | 897 | /* |
901 | * Frequency range (without regulation restrictions) | 898 | * Frequency range (without regulation restrictions) |
@@ -908,14 +905,6 @@ struct ath5k_capabilities { | |||
908 | } cap_range; | 905 | } cap_range; |
909 | 906 | ||
910 | /* | 907 | /* |
911 | * Active regulation domain settings | ||
912 | */ | ||
913 | struct { | ||
914 | enum ath5k_regdom reg_current; | ||
915 | enum ath5k_regdom reg_hw; | ||
916 | } cap_regdomain; | ||
917 | |||
918 | /* | ||
919 | * Values stored in the EEPROM (some of them...) | 908 | * Values stored in the EEPROM (some of them...) |
920 | */ | 909 | */ |
921 | struct ath5k_eeprom_info cap_eeprom; | 910 | struct ath5k_eeprom_info cap_eeprom; |
@@ -963,6 +952,7 @@ struct ath5k_hw { | |||
963 | u16 ah_phy_revision; | 952 | u16 ah_phy_revision; |
964 | u16 ah_radio_5ghz_revision; | 953 | u16 ah_radio_5ghz_revision; |
965 | u16 ah_radio_2ghz_revision; | 954 | u16 ah_radio_2ghz_revision; |
955 | u32 ah_phy_spending; | ||
966 | 956 | ||
967 | enum ath5k_version ah_version; | 957 | enum ath5k_version ah_version; |
968 | enum ath5k_radio ah_radio; | 958 | enum ath5k_radio ah_radio; |
@@ -1038,8 +1028,10 @@ struct ath5k_hw { | |||
1038 | int (*ah_setup_xtx_desc)(struct ath5k_hw *, struct ath5k_desc *, | 1028 | int (*ah_setup_xtx_desc)(struct ath5k_hw *, struct ath5k_desc *, |
1039 | unsigned int, unsigned int, unsigned int, unsigned int, | 1029 | unsigned int, unsigned int, unsigned int, unsigned int, |
1040 | unsigned int, unsigned int); | 1030 | unsigned int, unsigned int); |
1041 | int (*ah_proc_tx_desc)(struct ath5k_hw *, struct ath5k_desc *); | 1031 | int (*ah_proc_tx_desc)(struct ath5k_hw *, struct ath5k_desc *, |
1042 | int (*ah_proc_rx_desc)(struct ath5k_hw *, struct ath5k_desc *); | 1032 | struct ath5k_tx_status *); |
1033 | int (*ah_proc_rx_desc)(struct ath5k_hw *, struct ath5k_desc *, | ||
1034 | struct ath5k_rx_status *); | ||
1043 | }; | 1035 | }; |
1044 | 1036 | ||
1045 | /* | 1037 | /* |
@@ -1070,6 +1062,7 @@ extern int ath5k_hw_update_tx_triglevel(struct ath5k_hw *ah, bool increase); | |||
1070 | extern bool ath5k_hw_is_intr_pending(struct ath5k_hw *ah); | 1062 | extern bool ath5k_hw_is_intr_pending(struct ath5k_hw *ah); |
1071 | extern int ath5k_hw_get_isr(struct ath5k_hw *ah, enum ath5k_int *interrupt_mask); | 1063 | extern int ath5k_hw_get_isr(struct ath5k_hw *ah, enum ath5k_int *interrupt_mask); |
1072 | extern enum ath5k_int ath5k_hw_set_intr(struct ath5k_hw *ah, enum ath5k_int new_mask); | 1064 | extern enum ath5k_int ath5k_hw_set_intr(struct ath5k_hw *ah, enum ath5k_int new_mask); |
1065 | extern void ath5k_hw_update_mib_counters(struct ath5k_hw *ah, struct ieee80211_low_level_stats *stats); | ||
1073 | /* EEPROM access functions */ | 1066 | /* EEPROM access functions */ |
1074 | extern int ath5k_hw_set_regdomain(struct ath5k_hw *ah, u16 regdomain); | 1067 | extern int ath5k_hw_set_regdomain(struct ath5k_hw *ah, u16 regdomain); |
1075 | /* Protocol Control Unit Functions */ | 1068 | /* Protocol Control Unit Functions */ |
@@ -1098,7 +1091,6 @@ extern int ath5k_hw_set_beacon_timers(struct ath5k_hw *ah, const struct ath5k_be | |||
1098 | extern void ath5k_hw_reset_beacon(struct ath5k_hw *ah); | 1091 | extern void ath5k_hw_reset_beacon(struct ath5k_hw *ah); |
1099 | extern int ath5k_hw_beaconq_finish(struct ath5k_hw *ah, unsigned long phys_addr); | 1092 | extern int ath5k_hw_beaconq_finish(struct ath5k_hw *ah, unsigned long phys_addr); |
1100 | #endif | 1093 | #endif |
1101 | extern void ath5k_hw_update_mib_counters(struct ath5k_hw *ah, struct ath5k_mib_stats *statistics); | ||
1102 | /* ACK bit rate */ | 1094 | /* ACK bit rate */ |
1103 | void ath5k_hw_set_ack_bitrate_high(struct ath5k_hw *ah, bool high); | 1095 | void ath5k_hw_set_ack_bitrate_high(struct ath5k_hw *ah, bool high); |
1104 | /* ACK/CTS Timeouts */ | 1096 | /* ACK/CTS Timeouts */ |
@@ -1129,8 +1121,6 @@ extern int ath5k_hw_set_gpio_input(struct ath5k_hw *ah, u32 gpio); | |||
1129 | extern u32 ath5k_hw_get_gpio(struct ath5k_hw *ah, u32 gpio); | 1121 | extern u32 ath5k_hw_get_gpio(struct ath5k_hw *ah, u32 gpio); |
1130 | extern int ath5k_hw_set_gpio(struct ath5k_hw *ah, u32 gpio, u32 val); | 1122 | extern int ath5k_hw_set_gpio(struct ath5k_hw *ah, u32 gpio, u32 val); |
1131 | extern void ath5k_hw_set_gpio_intr(struct ath5k_hw *ah, unsigned int gpio, u32 interrupt_level); | 1123 | extern void ath5k_hw_set_gpio_intr(struct ath5k_hw *ah, unsigned int gpio, u32 interrupt_level); |
1132 | /* Regulatory Domain/Channels Setup */ | ||
1133 | extern u16 ath5k_get_regdomain(struct ath5k_hw *ah); | ||
1134 | /* Misc functions */ | 1124 | /* Misc functions */ |
1135 | extern int ath5k_hw_get_capability(struct ath5k_hw *ah, enum ath5k_capability_type cap_type, u32 capability, u32 *result); | 1125 | extern int ath5k_hw_get_capability(struct ath5k_hw *ah, enum ath5k_capability_type cap_type, u32 capability, u32 *result); |
1136 | 1126 | ||