wl1271: Add config structure for TX path parameters
[linux-2.6.git] / drivers / net / wireless / wl12xx / wl1271_acx.h
index 0c704af..63cddce 100644 (file)
@@ -314,35 +314,13 @@ struct acx_dot11_grp_addr_tbl {
        u8 mac_table[ADDRESS_GROUP_MAX_LEN];
 } __attribute__ ((packed));
 
-#define  RX_TIMEOUT_PS_POLL_MIN    0
-#define  RX_TIMEOUT_PS_POLL_MAX    (200000)
-#define  RX_TIMEOUT_PS_POLL_DEF    (15)
-#define  RX_TIMEOUT_UPSD_MIN       0
-#define  RX_TIMEOUT_UPSD_MAX       (200000)
-#define  RX_TIMEOUT_UPSD_DEF       (15)
-
 struct acx_rx_timeout {
        struct acx_header header;
 
-       /*
-        * The longest time the STA will wait to receive
-        * traffic from the AP after a PS-poll has been
-        * transmitted.
-        */
        u16 ps_poll_timeout;
-
-       /*
-        * The longest time the STA will wait to receive
-        * traffic from the AP after a frame has been sent
-        * from an UPSD enabled queue.
-        */
        u16 upsd_timeout;
 } __attribute__ ((packed));
 
-#define RTS_THRESHOLD_MIN              0
-#define RTS_THRESHOLD_MAX              4096
-#define RTS_THRESHOLD_DEF              2347
-
 struct acx_rts_threshold {
        struct acx_header header;
 
@@ -496,131 +474,20 @@ struct acx_smart_reflex_config_params {
 struct acx_bt_wlan_coex_param {
        struct acx_header header;
 
-       /*
-        * The minimum rate of a received WLAN packet in the STA,
-        * during protective mode, of which a new BT-HP request
-        * during this Rx will always be respected and gain the antenna.
-        */
-       u32 min_rate;
-
-       /* Max time the BT HP will be respected. */
-       u16 bt_hp_max_time;
-
-       /* Max time the WLAN HP will be respected. */
-       u16 wlan_hp_max_time;
-
-       /*
-        * The time between the last BT activity
-        * and the moment when the sense mode returns
-        * to SENSE_INACTIVE.
-        */
-       u16 sense_disable_timer;
-
-       /* Time before the next BT HP instance */
-       u16 rx_time_bt_hp;
-       u16 tx_time_bt_hp;
-
-       /* range: 10-20000    default: 1500 */
-       u16 rx_time_bt_hp_fast;
-       u16 tx_time_bt_hp_fast;
-
-       /* range: 2000-65535  default: 8700 */
-       u16 wlan_cycle_fast;
-
-       /* range: 0 - 15000 (Msec) default: 1000 */
-       u16 bt_anti_starvation_period;
-
-       /* range 400-10000(Usec) default: 3000 */
-       u16 next_bt_lp_packet;
-
-       /* Deafult: worst case for BT DH5 traffic */
-       u16 wake_up_beacon;
-
-       /* range: 0-50000(Usec) default: 1050 */
-       u16 hp_dm_max_guard_time;
-
-       /*
-        * This is to prevent both BT & WLAN antenna
-        * starvation.
-        * Range: 100-50000(Usec) default:2550
-        */
-       u16 next_wlan_packet;
-
-       /* 0 -> shared antenna */
-       u8 antenna_type;
-
-       /*
-        * 0 -> TI legacy
-        * 1 -> Palau
-        */
-       u8 signal_type;
-
-       /*
-        * BT AFH status
-        * 0 -> no AFH
-        * 1 -> from dedicated GPIO
-        * 2 -> AFH on (from host)
-        */
-       u8 afh_leverage_on;
-
-       /*
-        * The number of cycles during which no
-        * TX will be sent after 1 cycle of RX
-        * transaction in protective mode
-        */
-       u8 quiet_cycle_num;
-
-       /*
-        * The maximum number of CTSs that will
-        * be sent for receiving RX packet in
-        * protective mode
-        */
-       u8 max_cts;
-
-       /*
-        * The number of WLAN packets
-        * transferred in common mode before
-        * switching to BT.
-        */
-       u8 wlan_packets_num;
-
-       /*
-        * The number of BT packets
-        * transferred in common mode before
-        * switching to WLAN.
-        */
-       u8 bt_packets_num;
-
-       /* range: 1-255  default: 5 */
-       u8 missed_rx_avalanche;
-
-       /* range: 0-1    default: 1 */
-       u8 wlan_elp_hp;
-
-       /* range: 0 - 15  default: 4 */
-       u8 bt_anti_starvation_cycles;
-
-       u8 ack_mode_dual_ant;
-
-       /*
-        * Allow PA_SD assertion/de-assertion
-        * during enabled BT activity.
-        */
-       u8 pa_sd_enable;
-
-       /*
-        * Enable/Disable PTA in auto mode:
-        * Support Both Active & P.S modes
-        */
-       u8 pta_auto_mode_enable;
-
-       /* range: 0 - 20  default: 1 */
-       u8 bt_hp_respected_num;
+       u32 per_threshold;
+       u32 max_scan_compensation_time;
+       u16 nfs_sample_interval;
+       u8 load_ratio;
+       u8 auto_ps_mode;
+       u8 probe_req_compensation;
+       u8 scan_window_compensation;
+       u8 antenna_config;
+       u8 beacon_miss_threshold;
+       u32 rate_adaptation_threshold;
+       s8 rate_adaptation_snr;
+       u8 padding[3];
 } __attribute__ ((packed));
 
-#define CCA_THRSH_ENABLE_ENERGY_D       0x140A
-#define CCA_THRSH_DISABLE_ENERGY_D      0xFFEF
-
 struct acx_energy_detection {
        struct acx_header header;
 
@@ -690,6 +557,10 @@ struct acx_event_mask {
 #define SCAN_TRIGGERED         BIT(2)
 #define SCAN_PRIORITY_HIGH     BIT(3)
 
+/* When set, disable HW encryption */
+#define DF_ENCRYPTION_DISABLE      0x01
+#define DF_SNIFF_MODE_ENABLE       0x80
+
 struct acx_feature_config {
        struct acx_header header;
 
@@ -979,11 +850,6 @@ struct acx_statistics {
        struct acx_rxpipe_statistics rxpipe;
 } __attribute__ ((packed));
 
-#define ACX_MAX_RATE_CLASSES       8
-#define ACX_RATE_MASK_UNSPECIFIED  0
-#define ACX_RATE_MASK_ALL          0x1eff
-#define ACX_RATE_RETRY_LIMIT       10
-
 struct acx_rate_class {
        u32 enabled_rates;
        u8 short_retry_limit;
@@ -996,11 +862,9 @@ struct acx_rate_policy {
        struct acx_header header;
 
        u32 rate_class_cnt;
-       struct acx_rate_class rate_class[ACX_MAX_RATE_CLASSES];
+       struct acx_rate_class rate_class[CONF_TX_MAX_RATE_CLASSES];
 } __attribute__ ((packed));
 
-#define WL1271_ACX_AC_COUNT 4
-
 struct acx_ac_cfg {
        struct acx_header header;
        u8 ac;
@@ -1011,31 +875,6 @@ struct acx_ac_cfg {
        u16 tx_op_limit;
 } __attribute__ ((packed));
 
-enum wl1271_acx_ac {
-       WL1271_ACX_AC_BE = 0,
-       WL1271_ACX_AC_BK = 1,
-       WL1271_ACX_AC_VI = 2,
-       WL1271_ACX_AC_VO = 3,
-       WL1271_ACX_AC_CTS2SELF = 4,
-       WL1271_ACX_AC_ANY_TID = 0x1F,
-       WL1271_ACX_AC_INVALID = 0xFF,
-};
-
-enum wl1271_acx_ps_scheme {
-       WL1271_ACX_PS_SCHEME_LEGACY = 0,
-       WL1271_ACX_PS_SCHEME_UPSD_TRIGGER = 1,
-       WL1271_ACX_PS_SCHEME_LEGACY_PSPOLL = 2,
-       WL1271_ACX_PS_SCHEME_SAPSD = 3,
-};
-
-enum wl1271_acx_ack_policy {
-       WL1271_ACX_ACK_POLICY_LEGACY = 0,
-       WL1271_ACX_ACK_POLICY_NO_ACK = 1,
-       WL1271_ACX_ACK_POLICY_BLOCK = 2,
-};
-
-#define WL1271_ACX_TID_COUNT 7
-
 struct acx_tid_config {
        struct acx_header header;
        u8 queue_id;
@@ -1053,9 +892,6 @@ struct acx_frag_threshold {
        u8 padding[2];
 } __attribute__ ((packed));
 
-#define WL1271_ACX_TX_COMPL_TIMEOUT   5
-#define WL1271_ACX_TX_COMPL_THRESHOLD 5
-
 struct acx_tx_config_options {
        struct acx_header header;
        u16 tx_compl_timeout;     /* msec */
@@ -1121,22 +957,6 @@ struct wl1271_acx_mem_map {
        void *tx_ctrl;
 } __attribute__ ((packed));
 
-enum wl1271_acx_rx_queue_type {
-       RX_QUEUE_TYPE_RX_LOW_PRIORITY,    /* All except the high priority */
-       RX_QUEUE_TYPE_RX_HIGH_PRIORITY,   /* Management and voice packets */
-       RX_QUEUE_TYPE_NUM,
-       RX_QUEUE_TYPE_MAX = USHORT_MAX
-};
-
-#define WL1271_RX_INTR_THRESHOLD_DEF  0       /* no pacing, send interrupt on
-                                              * every event */
-#define WL1271_RX_INTR_THRESHOLD_MIN  0
-#define WL1271_RX_INTR_THRESHOLD_MAX  15
-
-#define WL1271_RX_INTR_TIMEOUT_DEF    5
-#define WL1271_RX_INTR_TIMEOUT_MIN    1
-#define WL1271_RX_INTR_TIMEOUT_MAX    100
-
 struct wl1271_acx_rx_config_opt {
        struct acx_header header;
 
@@ -1226,7 +1046,7 @@ int wl1271_acx_tx_power(struct wl1271 *wl, int power);
 int wl1271_acx_feature_cfg(struct wl1271 *wl);
 int wl1271_acx_mem_map(struct wl1271 *wl,
                       struct acx_header *mem_map, size_t len);
-int wl1271_acx_rx_msdu_life_time(struct wl1271 *wl, u32 life_time);
+int wl1271_acx_rx_msdu_life_time(struct wl1271 *wl);
 int wl1271_acx_rx_config(struct wl1271 *wl, u32 config, u32 filter);
 int wl1271_acx_pd_threshold(struct wl1271 *wl);
 int wl1271_acx_slot(struct wl1271 *wl, enum acx_slot_type slot_time);