forked from Minki/linux
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>
This commit is contained in:
parent
93f56be146
commit
885c990744
@ -547,7 +547,7 @@ int wl1271_acx_sg_enable(struct wl1271 *wl)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
pta->enable = SG_ENABLE;
|
pta->enable = ACX_SG_DISABLE;
|
||||||
|
|
||||||
ret = wl1271_cmd_configure(wl, ACX_SG_ENABLE, pta, sizeof(*pta));
|
ret = wl1271_cmd_configure(wl, ACX_SG_ENABLE, pta, sizeof(*pta));
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@ -575,19 +575,8 @@ int wl1271_acx_sg_cfg(struct wl1271 *wl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* BT-WLAN coext parameters */
|
/* BT-WLAN coext parameters */
|
||||||
param->per_threshold = cpu_to_le32(c->per_threshold);
|
param->params[ACX_SG_BT_PER_THRESHOLD] = c->per_threshold;
|
||||||
param->max_scan_compensation_time =
|
param->param_idx = ACX_SG_BT_PER_THRESHOLD;
|
||||||
cpu_to_le32(c->max_scan_compensation_time);
|
|
||||||
param->nfs_sample_interval = cpu_to_le16(c->nfs_sample_interval);
|
|
||||||
param->load_ratio = c->load_ratio;
|
|
||||||
param->auto_ps_mode = c->auto_ps_mode;
|
|
||||||
param->probe_req_compensation = c->probe_req_compensation;
|
|
||||||
param->scan_window_compensation = c->scan_window_compensation;
|
|
||||||
param->antenna_config = c->antenna_config;
|
|
||||||
param->beacon_miss_threshold = c->beacon_miss_threshold;
|
|
||||||
param->rate_adaptation_threshold =
|
|
||||||
cpu_to_le32(c->rate_adaptation_threshold);
|
|
||||||
param->rate_adaptation_snr = c->rate_adaptation_snr;
|
|
||||||
|
|
||||||
ret = wl1271_cmd_configure(wl, ACX_SG_CFG, param, sizeof(*param));
|
ret = wl1271_cmd_configure(wl, ACX_SG_CFG, param, sizeof(*param));
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
@ -393,28 +393,80 @@ struct acx_conn_monit_params {
|
|||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
SG_ENABLE = 0,
|
ACX_SG_DISABLE = 0,
|
||||||
SG_DISABLE,
|
ACX_SG_PROTECTIVE,
|
||||||
SG_SENSE_NO_ACTIVITY,
|
ACX_SG_OPPORTUNISTIC
|
||||||
SG_SENSE_ACTIVE
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct acx_bt_wlan_coex {
|
struct acx_bt_wlan_coex {
|
||||||
struct acx_header header;
|
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 enable;
|
||||||
u8 pad[3];
|
u8 pad[3];
|
||||||
} __attribute__ ((packed));
|
} __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_dco_itrim_params {
|
||||||
struct acx_header header;
|
struct acx_header header;
|
||||||
|
|
||||||
@ -423,52 +475,6 @@ struct acx_dco_itrim_params {
|
|||||||
__le32 timeout;
|
__le32 timeout;
|
||||||
} __attribute__ ((packed));
|
} __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_energy_detection {
|
||||||
struct acx_header header;
|
struct acx_header header;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user