wl1271: Fix SG configuration message structures
The bluetooth coexistence (SG) configuration messages have changed and
were completely wrong. For instance, intending to enable the SG, it was
instead disabled.
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff --git a/drivers/net/wireless/wl12xx/wl1271_acx.h b/drivers/net/wireless/wl12xx/wl1271_acx.h
index aeccc98..88a05cb 100644
--- a/drivers/net/wireless/wl12xx/wl1271_acx.h
+++ b/drivers/net/wireless/wl12xx/wl1271_acx.h
@@ -393,28 +393,80 @@
} __attribute__ ((packed));
enum {
- SG_ENABLE = 0,
- SG_DISABLE,
- SG_SENSE_NO_ACTIVITY,
- SG_SENSE_ACTIVE
+ ACX_SG_DISABLE = 0,
+ ACX_SG_PROTECTIVE,
+ ACX_SG_OPPORTUNISTIC
};
struct acx_bt_wlan_coex {
struct acx_header header;
- /*
- * 0 -> PTA enabled
- * 1 -> PTA disabled
- * 2 -> sense no active mode, i.e.
- * an interrupt is sent upon
- * BT activity.
- * 3 -> PTA is switched on in response
- * to the interrupt sending.
- */
u8 enable;
u8 pad[3];
} __attribute__ ((packed));
+enum {
+ ACX_SG_BT_PER_THRESHOLD = 0,
+ ACX_SG_HV3_MAX_OVERRIDE,
+ ACX_SG_BT_NFS_SAMPLE_INTERVAL,
+ ACX_SG_BT_LOAD_RATIO,
+ ACX_SG_AUTO_PS_MODE,
+ ACX_SG_AUTO_SCAN_PROBE_REQ,
+ ACX_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3,
+ ACX_SG_ANTENNA_CONFIGURATION,
+ ACX_SG_BEACON_MISS_PERCENT,
+ ACX_SG_RATE_ADAPT_THRESH,
+ ACX_SG_RATE_ADAPT_SNR,
+ ACX_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR,
+ ACX_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR,
+ ACX_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR,
+ ACX_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR,
+ ACX_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR,
+ ACX_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR,
+ ACX_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR,
+ ACX_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR,
+ ACX_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR,
+ ACX_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR,
+ ACX_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR,
+ ACX_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR,
+ ACX_SG_RXT,
+ ACX_SG_TXT,
+ ACX_SG_ADAPTIVE_RXT_TXT,
+ ACX_SG_PS_POLL_TIMEOUT,
+ ACX_SG_UPSD_TIMEOUT,
+ ACX_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR,
+ ACX_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR,
+ ACX_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR,
+ ACX_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR,
+ ACX_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR,
+ ACX_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR,
+ ACX_SG_WLAN_ACTIVE_BT_ACL_MIN_BR,
+ ACX_SG_WLAN_ACTIVE_BT_ACL_MAX_BR,
+ ACX_SG_WLAN_ACTIVE_MAX_BT_ACL_BR,
+ ACX_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3,
+ ACX_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP,
+ ACX_SG_PASSIVE_SCAN_A2DP_BT_TIME,
+ ACX_SG_PASSIVE_SCAN_A2DP_WLAN_TIME,
+ ACX_SG_HV3_MAX_SERVED,
+ ACX_SG_DHCP_TIME,
+ ACX_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP,
+ ACX_SG_TEMP_PARAM_1,
+ ACX_SG_TEMP_PARAM_2,
+ ACX_SG_TEMP_PARAM_3,
+ ACX_SG_TEMP_PARAM_4,
+ ACX_SG_TEMP_PARAM_5,
+ ACX_SG_PARAMS_MAX,
+ ACX_SG_PARAMS_ALL = 0xff
+};
+
+struct acx_bt_wlan_coex_param {
+ struct acx_header header;
+
+ __le32 params[ACX_SG_PARAMS_MAX];
+ u8 param_idx;
+ u8 padding[3];
+} __attribute__ ((packed));
+
struct acx_dco_itrim_params {
struct acx_header header;
@@ -423,52 +475,6 @@
__le32 timeout;
} __attribute__ ((packed));
-#define PTA_ANTENNA_TYPE_DEF (0)
-#define PTA_BT_HP_MAXTIME_DEF (2000)
-#define PTA_WLAN_HP_MAX_TIME_DEF (5000)
-#define PTA_SENSE_DISABLE_TIMER_DEF (1350)
-#define PTA_PROTECTIVE_RX_TIME_DEF (1500)
-#define PTA_PROTECTIVE_TX_TIME_DEF (1500)
-#define PTA_TIMEOUT_NEXT_BT_LP_PACKET_DEF (3000)
-#define PTA_SIGNALING_TYPE_DEF (1)
-#define PTA_AFH_LEVERAGE_ON_DEF (0)
-#define PTA_NUMBER_QUIET_CYCLE_DEF (0)
-#define PTA_MAX_NUM_CTS_DEF (3)
-#define PTA_NUMBER_OF_WLAN_PACKETS_DEF (2)
-#define PTA_NUMBER_OF_BT_PACKETS_DEF (2)
-#define PTA_PROTECTIVE_RX_TIME_FAST_DEF (1500)
-#define PTA_PROTECTIVE_TX_TIME_FAST_DEF (3000)
-#define PTA_CYCLE_TIME_FAST_DEF (8700)
-#define PTA_RX_FOR_AVALANCHE_DEF (5)
-#define PTA_ELP_HP_DEF (0)
-#define PTA_ANTI_STARVE_PERIOD_DEF (500)
-#define PTA_ANTI_STARVE_NUM_CYCLE_DEF (4)
-#define PTA_ALLOW_PA_SD_DEF (1)
-#define PTA_TIME_BEFORE_BEACON_DEF (6300)
-#define PTA_HPDM_MAX_TIME_DEF (1600)
-#define PTA_TIME_OUT_NEXT_WLAN_DEF (2550)
-#define PTA_AUTO_MODE_NO_CTS_DEF (0)
-#define PTA_BT_HP_RESPECTED_DEF (3)
-#define PTA_WLAN_RX_MIN_RATE_DEF (24)
-#define PTA_ACK_MODE_DEF (1)
-
-struct acx_bt_wlan_coex_param {
- struct acx_header header;
-
- __le32 per_threshold;
- __le32 max_scan_compensation_time;
- __le16 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;
- __le32 rate_adaptation_threshold;
- s8 rate_adaptation_snr;
- u8 padding[3];
-} __attribute__ ((packed));
-
struct acx_energy_detection {
struct acx_header header;