Loading drivers/net/wireless/wl12xx/acx.c +5 −35 Original line number Diff line number Diff line Loading @@ -528,13 +528,13 @@ int wl1271_acx_sg_enable(struct wl1271 *wl, bool enable) return ret; } int wl1271_acx_sta_sg_cfg(struct wl1271 *wl) int wl12xx_acx_sg_cfg(struct wl1271 *wl) { struct acx_sta_bt_wlan_coex_param *param; struct acx_bt_wlan_coex_param *param; struct conf_sg_settings *c = &wl->conf.sg; int i, ret; wl1271_debug(DEBUG_ACX, "acx sg sta cfg"); wl1271_debug(DEBUG_ACX, "acx sg cfg"); param = kzalloc(sizeof(*param), GFP_KERNEL); if (!param) { Loading @@ -543,38 +543,8 @@ int wl1271_acx_sta_sg_cfg(struct wl1271 *wl) } /* BT-WLAN coext parameters */ for (i = 0; i < CONF_SG_STA_PARAMS_MAX; i++) param->params[i] = cpu_to_le32(c->sta_params[i]); param->param_idx = CONF_SG_PARAMS_ALL; ret = wl1271_cmd_configure(wl, ACX_SG_CFG, param, sizeof(*param)); if (ret < 0) { wl1271_warning("failed to set sg config: %d", ret); goto out; } out: kfree(param); return ret; } int wl1271_acx_ap_sg_cfg(struct wl1271 *wl) { struct acx_ap_bt_wlan_coex_param *param; struct conf_sg_settings *c = &wl->conf.sg; int i, ret; wl1271_debug(DEBUG_ACX, "acx sg ap cfg"); param = kzalloc(sizeof(*param), GFP_KERNEL); if (!param) { ret = -ENOMEM; goto out; } /* BT-WLAN coext parameters */ for (i = 0; i < CONF_SG_AP_PARAMS_MAX; i++) param->params[i] = cpu_to_le32(c->ap_params[i]); for (i = 0; i < CONF_SG_PARAMS_MAX; i++) param->params[i] = cpu_to_le32(c->params[i]); param->param_idx = CONF_SG_PARAMS_ALL; ret = wl1271_cmd_configure(wl, ACX_SG_CFG, param, sizeof(*param)); Loading drivers/net/wireless/wl12xx/acx.h +3 −13 Original line number Diff line number Diff line Loading @@ -302,23 +302,14 @@ struct acx_bt_wlan_coex { u8 pad[3]; } __packed; struct acx_sta_bt_wlan_coex_param { struct acx_bt_wlan_coex_param { struct acx_header header; __le32 params[CONF_SG_STA_PARAMS_MAX]; __le32 params[CONF_SG_PARAMS_MAX]; u8 param_idx; u8 padding[3]; } __packed; struct acx_ap_bt_wlan_coex_param { struct acx_header header; __le32 params[CONF_SG_AP_PARAMS_MAX]; u8 param_idx; u8 padding[3]; } __packed; struct acx_dco_itrim_params { struct acx_header header; Loading Loading @@ -1269,8 +1260,7 @@ int wl1271_acx_beacon_filter_opt(struct wl1271 *wl, bool enable_filter); int wl1271_acx_beacon_filter_table(struct wl1271 *wl); int wl1271_acx_conn_monit_params(struct wl1271 *wl, bool enable); int wl1271_acx_sg_enable(struct wl1271 *wl, bool enable); int wl1271_acx_sta_sg_cfg(struct wl1271 *wl); int wl1271_acx_ap_sg_cfg(struct wl1271 *wl); int wl12xx_acx_sg_cfg(struct wl1271 *wl); int wl1271_acx_cca_threshold(struct wl1271 *wl); int wl1271_acx_bcn_dtim_options(struct wl1271 *wl); int wl1271_acx_aid(struct wl1271 *wl, u16 aid); Loading drivers/net/wireless/wl12xx/conf.h +107 −211 Original line number Diff line number Diff line Loading @@ -99,40 +99,75 @@ enum { enum { /* * PER threshold in PPM of the BT voice * Configure the min and max time BT gains the antenna * in WLAN / BT master basic rate * * Range: 0 - 10000000 * Range: 0 - 255 (ms) */ CONF_SG_BT_PER_THRESHOLD = 0, CONF_SG_ACL_BT_MASTER_MIN_BR = 0, CONF_SG_ACL_BT_MASTER_MAX_BR, /* * Number of consequent RX_ACTIVE activities to override BT voice * frames to ensure WLAN connection * Configure the min and max time BT gains the antenna * in WLAN / BT slave basic rate * * Range: 0 - 100 * Range: 0 - 255 (ms) */ CONF_SG_HV3_MAX_OVERRIDE, CONF_SG_ACL_BT_SLAVE_MIN_BR, CONF_SG_ACL_BT_SLAVE_MAX_BR, /* * Defines the PER threshold of the BT voice * Configure the min and max time BT gains the antenna * in WLAN / BT master EDR * * Range: 0 - 65000 * Range: 0 - 255 (ms) */ CONF_SG_BT_NFS_SAMPLE_INTERVAL, CONF_SG_ACL_BT_MASTER_MIN_EDR, CONF_SG_ACL_BT_MASTER_MAX_EDR, /* * Defines the load ratio of BT * Configure the min and max time BT gains the antenna * in WLAN / BT slave EDR * * Range: 0 - 100 (%) * Range: 0 - 255 (ms) */ CONF_SG_BT_LOAD_RATIO, CONF_SG_ACL_BT_SLAVE_MIN_EDR, CONF_SG_ACL_BT_SLAVE_MAX_EDR, /* * Defines whether the SG will force WLAN host to enter/exit PSM * The maximum time WLAN can gain the antenna * in WLAN PSM / BT master/slave BR * * Range: 1 - SG can force, 0 - host handles PSM * Range: 0 - 255 (ms) */ CONF_SG_AUTO_PS_MODE, CONF_SG_ACL_WLAN_PS_MASTER_BR, CONF_SG_ACL_WLAN_PS_SLAVE_BR, /* * The maximum time WLAN can gain the antenna * in WLAN PSM / BT master/slave EDR * * Range: 0 - 255 (ms) */ CONF_SG_ACL_WLAN_PS_MASTER_EDR, CONF_SG_ACL_WLAN_PS_SLAVE_EDR, /* TODO: explain these values */ CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_BR, CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_BR, CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_BR, CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_BR, CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_EDR, CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_EDR, CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_EDR, CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_EDR, CONF_SG_ACL_ACTIVE_SCAN_WLAN_BR, CONF_SG_ACL_ACTIVE_SCAN_WLAN_EDR, CONF_SG_ACL_PASSIVE_SCAN_BT_BR, CONF_SG_ACL_PASSIVE_SCAN_WLAN_BR, CONF_SG_ACL_PASSIVE_SCAN_BT_EDR, CONF_SG_ACL_PASSIVE_SCAN_WLAN_EDR, /* * Compensation percentage of probe requests when scan initiated Loading @@ -151,102 +186,70 @@ enum { CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3, /* * Defines antenna configuration (single/dual antenna) * * Range: 0 - single antenna, 1 - dual antenna */ CONF_SG_ANTENNA_CONFIGURATION, /* * The threshold (percent) of max consequtive beacon misses before * increasing priority of beacon reception. * * Range: 0 - 100 (%) */ CONF_SG_BEACON_MISS_PERCENT, /* * The rate threshold below which receiving a data frame from the AP * will increase the priority of the data frame above BT traffic. * * Range: 0,2, 5(=5.5), 6, 9, 11, 12, 18, 24, 36, 48, 54 */ CONF_SG_RATE_ADAPT_THRESH, /* * Not used currently. * Compensation percentage of WLAN active scan window if initiated * during BT A2DP * * Range: 0 * Range: 0 - 1000 (%) */ CONF_SG_RATE_ADAPT_SNR, CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP, /* * Configure the min and max time BT gains the antenna * in WLAN PSM / BT master basic rate * Compensation percentage of WLAN passive scan window if initiated * during BT A2DP BR * * Range: 0 - 255 (ms) * Range: 0 - 1000 (%) */ CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR, CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR, CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP_BR, /* * The time after it expires no new WLAN trigger frame is trasmitted * in WLAN PSM / BT master basic rate * Compensation percentage of WLAN passive scan window if initiated * during BT A2DP EDR * * Range: 0 - 255 (ms) * Range: 0 - 1000 (%) */ CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR, CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP_EDR, /* * Configure the min and max time BT gains the antenna * in WLAN PSM / BT slave basic rate * Compensation percentage of WLAN passive scan window if initiated * during BT voice * * Range: 0 - 255 (ms) * Range: 0 - 1000 (%) */ CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR, CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR, CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3, /* * The time after it expires no new WLAN trigger frame is trasmitted * in WLAN PSM / BT slave basic rate * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR, /* TODO: explain these values */ CONF_SG_CONSECUTIVE_HV3_IN_PASSIVE_SCAN, CONF_SG_BCN_HV3_COLLISION_THRESH_IN_PASSIVE_SCAN, CONF_SG_TX_RX_PROTECTION_BWIDTH_IN_PASSIVE_SCAN, /* * Configure the min and max time BT gains the antenna * in WLAN PSM / BT master EDR * Defines whether the SG will force WLAN host to enter/exit PSM * * Range: 0 - 255 (ms) * Range: 1 - SG can force, 0 - host handles PSM */ CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR, CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR, CONF_SG_STA_FORCE_PS_IN_BT_SCO, /* * The time after it expires no new WLAN trigger frame is trasmitted * in WLAN PSM / BT master EDR * Defines antenna configuration (single/dual antenna) * * Range: 0 - 255 (ms) * Range: 0 - single antenna, 1 - dual antenna */ CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR, CONF_SG_ANTENNA_CONFIGURATION, /* * Configure the min and max time BT gains the antenna * in WLAN PSM / BT slave EDR * The threshold (percent) of max consecutive beacon misses before * increasing priority of beacon reception. * * Range: 0 - 255 (ms) * Range: 0 - 100 (%) */ CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR, CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR, CONF_SG_BEACON_MISS_PERCENT, /* * The time after it expires no new WLAN trigger frame is trasmitted * in WLAN PSM / BT slave EDR * Protection time of the DHCP procedure. * * Range: 0 - 255 (ms) * Range: 0 - 100000 (ms) */ CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR, CONF_SG_DHCP_TIME, /* * RX guard time before the beginning of a new BT voice frame during Loading @@ -273,166 +276,59 @@ enum { */ CONF_SG_ADAPTIVE_RXT_TXT, /* * The used WLAN legacy service period during active BT ACL link * * Range: 0 - 255 (ms) */ CONF_SG_PS_POLL_TIMEOUT, /* * The used WLAN UPSD service period during active BT ACL link * * Range: 0 - 255 (ms) */ CONF_SG_UPSD_TIMEOUT, /* * Configure the min and max time BT gains the antenna * in WLAN Active / BT master EDR * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR, CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR, /* * The maximum time WLAN can gain the antenna for * in WLAN Active / BT master EDR * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR, /* TODO: explain this value */ CONF_SG_GENERAL_USAGE_BIT_MAP, /* * Configure the min and max time BT gains the antenna * in WLAN Active / BT slave EDR * Number of consecutive BT voice frames not interrupted by WLAN * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR, CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR, /* * The maximum time WLAN can gain the antenna for * in WLAN Active / BT slave EDR * * Range: 0 - 255 (ms) * Range: 0 - 100 */ CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR, CONF_SG_HV3_MAX_SERVED, /* * Configure the min and max time BT gains the antenna * in WLAN Active / BT basic rate * The used WLAN legacy service period during active BT ACL link * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_BT_ACL_MIN_BR, CONF_SG_WLAN_ACTIVE_BT_ACL_MAX_BR, CONF_SG_PS_POLL_TIMEOUT, /* * The maximum time WLAN can gain the antenna for * in WLAN Active / BT basic rate * The used WLAN UPSD service period during active BT ACL link * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_BR, /* * Compensation percentage of WLAN passive scan window if initiated * during BT voice * * Range: 0 - 1000 (%) */ CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3, /* * Compensation percentage of WLAN passive scan window if initiated * during BT A2DP * * Range: 0 - 1000 (%) */ CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP, CONF_SG_UPSD_TIMEOUT, /* * Fixed time ensured for BT traffic to gain the antenna during WLAN * passive scan. * * Range: 0 - 1000 ms */ CONF_SG_PASSIVE_SCAN_A2DP_BT_TIME, CONF_SG_CONSECUTIVE_CTS_THRESHOLD, CONF_SG_STA_RX_WINDOW_AFTER_DTIM, CONF_SG_STA_CONNECTION_PROTECTION_TIME, /* * Fixed time ensured for WLAN traffic to gain the antenna during WLAN * passive scan. * * Range: 0 - 1000 ms */ CONF_SG_PASSIVE_SCAN_A2DP_WLAN_TIME, /* AP params */ CONF_AP_BEACON_MISS_TX, CONF_AP_RX_WINDOW_AFTER_BEACON, CONF_AP_BEACON_WINDOW_INTERVAL, CONF_AP_CONNECTION_PROTECTION_TIME, CONF_AP_BT_ACL_VAL_BT_SERVE_TIME, CONF_AP_BT_ACL_VAL_WL_SERVE_TIME, /* * Number of consequent BT voice frames not interrupted by WLAN * * Range: 0 - 100 */ CONF_SG_HV3_MAX_SERVED, /* * Protection time of the DHCP procedure. * * Range: 0 - 100000 (ms) */ CONF_SG_DHCP_TIME, /* * Compensation percentage of WLAN active scan window if initiated * during BT A2DP * * Range: 0 - 1000 (%) */ CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP, CONF_SG_TEMP_PARAM_1, CONF_SG_TEMP_PARAM_2, CONF_SG_TEMP_PARAM_3, CONF_SG_TEMP_PARAM_4, CONF_SG_TEMP_PARAM_5, /* * AP beacon miss * * Range: 0 - 255 */ CONF_SG_AP_BEACON_MISS_TX, /* * AP RX window length * * Range: 0 - 50 */ CONF_SG_RX_WINDOW_LENGTH, /* * AP connection protection time * * Range: 0 - 5000 */ CONF_SG_AP_CONNECTION_PROTECTION_TIME, CONF_SG_TEMP_PARAM_6, CONF_SG_TEMP_PARAM_7, CONF_SG_TEMP_PARAM_8, CONF_SG_TEMP_PARAM_9, CONF_SG_TEMP_PARAM_10, CONF_SG_STA_PARAMS_MAX = CONF_SG_TEMP_PARAM_5 + 1, CONF_SG_AP_PARAMS_MAX = CONF_SG_TEMP_PARAM_10 + 1, CONF_SG_PARAMS_MAX, CONF_SG_PARAMS_ALL = 0xff }; struct conf_sg_settings { u32 sta_params[CONF_SG_STA_PARAMS_MAX]; u32 ap_params[CONF_SG_AP_PARAMS_MAX]; u32 params[CONF_SG_PARAMS_MAX]; u8 state; }; Loading Loading @@ -913,7 +809,7 @@ struct conf_conn_settings { struct conf_bcn_filt_rule bcn_filt_ie[CONF_MAX_BCN_FILT_IE_COUNT]; /* * The number of consequtive beacons to lose, before the firmware * The number of consecutive beacons to lose, before the firmware * becomes out of synch. * * Range: u32 Loading Loading @@ -951,7 +847,7 @@ struct conf_conn_settings { u8 rx_broadcast_in_ps; /* * Consequtive PS Poll failures before sending event to driver * Consecutive PS Poll failures before sending event to driver * * Range: u8 */ Loading drivers/net/wireless/wl12xx/init.c +1 −4 Original line number Diff line number Diff line Loading @@ -277,10 +277,7 @@ int wl1271_init_pta(struct wl1271 *wl) { int ret; if (wl->bss_type == BSS_TYPE_AP_BSS) ret = wl1271_acx_ap_sg_cfg(wl); else ret = wl1271_acx_sta_sg_cfg(wl); ret = wl12xx_acx_sg_cfg(wl); if (ret < 0) return ret; Loading drivers/net/wireless/wl12xx/main.c +61 −104 Original line number Diff line number Diff line Loading @@ -52,110 +52,67 @@ static struct conf_drv_settings default_conf = { .sg = { .sta_params = { [CONF_SG_BT_PER_THRESHOLD] = 7500, [CONF_SG_HV3_MAX_OVERRIDE] = 0, [CONF_SG_BT_NFS_SAMPLE_INTERVAL] = 400, [CONF_SG_BT_LOAD_RATIO] = 200, [CONF_SG_AUTO_PS_MODE] = 1, .params = { [CONF_SG_ACL_BT_MASTER_MIN_BR] = 10, [CONF_SG_ACL_BT_MASTER_MAX_BR] = 180, [CONF_SG_ACL_BT_SLAVE_MIN_BR] = 10, [CONF_SG_ACL_BT_SLAVE_MAX_BR] = 180, [CONF_SG_ACL_BT_MASTER_MIN_EDR] = 10, [CONF_SG_ACL_BT_MASTER_MAX_EDR] = 80, [CONF_SG_ACL_BT_SLAVE_MIN_EDR] = 10, [CONF_SG_ACL_BT_SLAVE_MAX_EDR] = 80, [CONF_SG_ACL_WLAN_PS_MASTER_BR] = 8, [CONF_SG_ACL_WLAN_PS_SLAVE_BR] = 8, [CONF_SG_ACL_WLAN_PS_MASTER_EDR] = 20, [CONF_SG_ACL_WLAN_PS_SLAVE_EDR] = 20, [CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_BR] = 20, [CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_BR] = 35, [CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_BR] = 16, [CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_BR] = 35, [CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_EDR] = 32, [CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_EDR] = 50, [CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_EDR] = 28, [CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_EDR] = 50, [CONF_SG_ACL_ACTIVE_SCAN_WLAN_BR] = 10, [CONF_SG_ACL_ACTIVE_SCAN_WLAN_EDR] = 20, [CONF_SG_ACL_PASSIVE_SCAN_BT_BR] = 75, [CONF_SG_ACL_PASSIVE_SCAN_WLAN_BR] = 15, [CONF_SG_ACL_PASSIVE_SCAN_BT_EDR] = 27, [CONF_SG_ACL_PASSIVE_SCAN_WLAN_EDR] = 17, /* active scan params */ [CONF_SG_AUTO_SCAN_PROBE_REQ] = 170, [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3] = 50, [CONF_SG_ANTENNA_CONFIGURATION] = 0, [CONF_SG_BEACON_MISS_PERCENT] = 60, [CONF_SG_RATE_ADAPT_THRESH] = 12, [CONF_SG_RATE_ADAPT_SNR] = 0, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR] = 10, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR] = 30, [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR] = 8, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR] = 20, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR] = 50, /* Note: with UPSD, this should be 4 */ [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR] = 8, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR] = 7, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR] = 20, /* Note: with UPDS, this should be 15 */ [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR] = 8, /* Note: with UPDS, this should be 50 */ [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR] = 40, /* Note: with UPDS, this should be 10 */ [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR] = 20, [CONF_SG_RXT] = 1200, [CONF_SG_TXT] = 1000, [CONF_SG_ADAPTIVE_RXT_TXT] = 1, [CONF_SG_PS_POLL_TIMEOUT] = 10, [CONF_SG_UPSD_TIMEOUT] = 10, [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR] = 7, [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR] = 15, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR] = 15, [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR] = 8, [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR] = 20, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR] = 15, [CONF_SG_WLAN_ACTIVE_BT_ACL_MIN_BR] = 20, [CONF_SG_WLAN_ACTIVE_BT_ACL_MAX_BR] = 50, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_BR] = 10, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3] = 200, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP] = 800, [CONF_SG_PASSIVE_SCAN_A2DP_BT_TIME] = 75, [CONF_SG_PASSIVE_SCAN_A2DP_WLAN_TIME] = 15, [CONF_SG_HV3_MAX_SERVED] = 6, [CONF_SG_DHCP_TIME] = 5000, [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP] = 100, }, .ap_params = { [CONF_SG_BT_PER_THRESHOLD] = 7500, [CONF_SG_HV3_MAX_OVERRIDE] = 0, [CONF_SG_BT_NFS_SAMPLE_INTERVAL] = 400, [CONF_SG_BT_LOAD_RATIO] = 50, [CONF_SG_AUTO_PS_MODE] = 1, [CONF_SG_AUTO_SCAN_PROBE_REQ] = 170, [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3] = 50, /* passive scan params */ [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP_BR] = 800, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP_EDR] = 200, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3] = 200, /* passive scan in dual antenna params */ [CONF_SG_CONSECUTIVE_HV3_IN_PASSIVE_SCAN] = 0, [CONF_SG_BCN_HV3_COLLISION_THRESH_IN_PASSIVE_SCAN] = 0, [CONF_SG_TX_RX_PROTECTION_BWIDTH_IN_PASSIVE_SCAN] = 0, /* general params */ [CONF_SG_STA_FORCE_PS_IN_BT_SCO] = 1, [CONF_SG_ANTENNA_CONFIGURATION] = 0, [CONF_SG_BEACON_MISS_PERCENT] = 60, [CONF_SG_RATE_ADAPT_THRESH] = 64, [CONF_SG_RATE_ADAPT_SNR] = 1, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR] = 10, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR] = 25, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR] = 20, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR] = 25, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR] = 7, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR] = 25, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR] = 8, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR] = 25, [CONF_SG_DHCP_TIME] = 5000, [CONF_SG_RXT] = 1200, [CONF_SG_TXT] = 1000, [CONF_SG_ADAPTIVE_RXT_TXT] = 1, [CONF_SG_GENERAL_USAGE_BIT_MAP] = 3, [CONF_SG_HV3_MAX_SERVED] = 6, [CONF_SG_PS_POLL_TIMEOUT] = 10, [CONF_SG_UPSD_TIMEOUT] = 10, [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR] = 7, [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR] = 15, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR] = 15, [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR] = 8, [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR] = 20, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR] = 15, [CONF_SG_WLAN_ACTIVE_BT_ACL_MIN_BR] = 20, [CONF_SG_WLAN_ACTIVE_BT_ACL_MAX_BR] = 50, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_BR] = 10, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3] = 200, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP] = 800, [CONF_SG_PASSIVE_SCAN_A2DP_BT_TIME] = 75, [CONF_SG_PASSIVE_SCAN_A2DP_WLAN_TIME] = 15, [CONF_SG_HV3_MAX_SERVED] = 6, [CONF_SG_DHCP_TIME] = 5000, [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP] = 100, [CONF_SG_TEMP_PARAM_1] = 0, [CONF_SG_TEMP_PARAM_2] = 0, [CONF_SG_TEMP_PARAM_3] = 0, [CONF_SG_TEMP_PARAM_4] = 0, [CONF_SG_TEMP_PARAM_5] = 0, [CONF_SG_AP_BEACON_MISS_TX] = 3, [CONF_SG_RX_WINDOW_LENGTH] = 6, [CONF_SG_AP_CONNECTION_PROTECTION_TIME] = 50, [CONF_SG_TEMP_PARAM_6] = 1, [CONF_SG_CONSECUTIVE_CTS_THRESHOLD] = 2, [CONF_SG_STA_RX_WINDOW_AFTER_DTIM] = 5, [CONF_SG_STA_CONNECTION_PROTECTION_TIME] = 30, /* AP params */ [CONF_AP_BEACON_MISS_TX] = 3, [CONF_AP_RX_WINDOW_AFTER_BEACON] = 10, [CONF_AP_BEACON_WINDOW_INTERVAL] = 2, [CONF_AP_CONNECTION_PROTECTION_TIME] = 0, [CONF_AP_BT_ACL_VAL_BT_SERVE_TIME] = 25, [CONF_AP_BT_ACL_VAL_WL_SERVE_TIME] = 25, }, .state = CONF_SG_PROTECTIVE, }, Loading Loading
drivers/net/wireless/wl12xx/acx.c +5 −35 Original line number Diff line number Diff line Loading @@ -528,13 +528,13 @@ int wl1271_acx_sg_enable(struct wl1271 *wl, bool enable) return ret; } int wl1271_acx_sta_sg_cfg(struct wl1271 *wl) int wl12xx_acx_sg_cfg(struct wl1271 *wl) { struct acx_sta_bt_wlan_coex_param *param; struct acx_bt_wlan_coex_param *param; struct conf_sg_settings *c = &wl->conf.sg; int i, ret; wl1271_debug(DEBUG_ACX, "acx sg sta cfg"); wl1271_debug(DEBUG_ACX, "acx sg cfg"); param = kzalloc(sizeof(*param), GFP_KERNEL); if (!param) { Loading @@ -543,38 +543,8 @@ int wl1271_acx_sta_sg_cfg(struct wl1271 *wl) } /* BT-WLAN coext parameters */ for (i = 0; i < CONF_SG_STA_PARAMS_MAX; i++) param->params[i] = cpu_to_le32(c->sta_params[i]); param->param_idx = CONF_SG_PARAMS_ALL; ret = wl1271_cmd_configure(wl, ACX_SG_CFG, param, sizeof(*param)); if (ret < 0) { wl1271_warning("failed to set sg config: %d", ret); goto out; } out: kfree(param); return ret; } int wl1271_acx_ap_sg_cfg(struct wl1271 *wl) { struct acx_ap_bt_wlan_coex_param *param; struct conf_sg_settings *c = &wl->conf.sg; int i, ret; wl1271_debug(DEBUG_ACX, "acx sg ap cfg"); param = kzalloc(sizeof(*param), GFP_KERNEL); if (!param) { ret = -ENOMEM; goto out; } /* BT-WLAN coext parameters */ for (i = 0; i < CONF_SG_AP_PARAMS_MAX; i++) param->params[i] = cpu_to_le32(c->ap_params[i]); for (i = 0; i < CONF_SG_PARAMS_MAX; i++) param->params[i] = cpu_to_le32(c->params[i]); param->param_idx = CONF_SG_PARAMS_ALL; ret = wl1271_cmd_configure(wl, ACX_SG_CFG, param, sizeof(*param)); Loading
drivers/net/wireless/wl12xx/acx.h +3 −13 Original line number Diff line number Diff line Loading @@ -302,23 +302,14 @@ struct acx_bt_wlan_coex { u8 pad[3]; } __packed; struct acx_sta_bt_wlan_coex_param { struct acx_bt_wlan_coex_param { struct acx_header header; __le32 params[CONF_SG_STA_PARAMS_MAX]; __le32 params[CONF_SG_PARAMS_MAX]; u8 param_idx; u8 padding[3]; } __packed; struct acx_ap_bt_wlan_coex_param { struct acx_header header; __le32 params[CONF_SG_AP_PARAMS_MAX]; u8 param_idx; u8 padding[3]; } __packed; struct acx_dco_itrim_params { struct acx_header header; Loading Loading @@ -1269,8 +1260,7 @@ int wl1271_acx_beacon_filter_opt(struct wl1271 *wl, bool enable_filter); int wl1271_acx_beacon_filter_table(struct wl1271 *wl); int wl1271_acx_conn_monit_params(struct wl1271 *wl, bool enable); int wl1271_acx_sg_enable(struct wl1271 *wl, bool enable); int wl1271_acx_sta_sg_cfg(struct wl1271 *wl); int wl1271_acx_ap_sg_cfg(struct wl1271 *wl); int wl12xx_acx_sg_cfg(struct wl1271 *wl); int wl1271_acx_cca_threshold(struct wl1271 *wl); int wl1271_acx_bcn_dtim_options(struct wl1271 *wl); int wl1271_acx_aid(struct wl1271 *wl, u16 aid); Loading
drivers/net/wireless/wl12xx/conf.h +107 −211 Original line number Diff line number Diff line Loading @@ -99,40 +99,75 @@ enum { enum { /* * PER threshold in PPM of the BT voice * Configure the min and max time BT gains the antenna * in WLAN / BT master basic rate * * Range: 0 - 10000000 * Range: 0 - 255 (ms) */ CONF_SG_BT_PER_THRESHOLD = 0, CONF_SG_ACL_BT_MASTER_MIN_BR = 0, CONF_SG_ACL_BT_MASTER_MAX_BR, /* * Number of consequent RX_ACTIVE activities to override BT voice * frames to ensure WLAN connection * Configure the min and max time BT gains the antenna * in WLAN / BT slave basic rate * * Range: 0 - 100 * Range: 0 - 255 (ms) */ CONF_SG_HV3_MAX_OVERRIDE, CONF_SG_ACL_BT_SLAVE_MIN_BR, CONF_SG_ACL_BT_SLAVE_MAX_BR, /* * Defines the PER threshold of the BT voice * Configure the min and max time BT gains the antenna * in WLAN / BT master EDR * * Range: 0 - 65000 * Range: 0 - 255 (ms) */ CONF_SG_BT_NFS_SAMPLE_INTERVAL, CONF_SG_ACL_BT_MASTER_MIN_EDR, CONF_SG_ACL_BT_MASTER_MAX_EDR, /* * Defines the load ratio of BT * Configure the min and max time BT gains the antenna * in WLAN / BT slave EDR * * Range: 0 - 100 (%) * Range: 0 - 255 (ms) */ CONF_SG_BT_LOAD_RATIO, CONF_SG_ACL_BT_SLAVE_MIN_EDR, CONF_SG_ACL_BT_SLAVE_MAX_EDR, /* * Defines whether the SG will force WLAN host to enter/exit PSM * The maximum time WLAN can gain the antenna * in WLAN PSM / BT master/slave BR * * Range: 1 - SG can force, 0 - host handles PSM * Range: 0 - 255 (ms) */ CONF_SG_AUTO_PS_MODE, CONF_SG_ACL_WLAN_PS_MASTER_BR, CONF_SG_ACL_WLAN_PS_SLAVE_BR, /* * The maximum time WLAN can gain the antenna * in WLAN PSM / BT master/slave EDR * * Range: 0 - 255 (ms) */ CONF_SG_ACL_WLAN_PS_MASTER_EDR, CONF_SG_ACL_WLAN_PS_SLAVE_EDR, /* TODO: explain these values */ CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_BR, CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_BR, CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_BR, CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_BR, CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_EDR, CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_EDR, CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_EDR, CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_EDR, CONF_SG_ACL_ACTIVE_SCAN_WLAN_BR, CONF_SG_ACL_ACTIVE_SCAN_WLAN_EDR, CONF_SG_ACL_PASSIVE_SCAN_BT_BR, CONF_SG_ACL_PASSIVE_SCAN_WLAN_BR, CONF_SG_ACL_PASSIVE_SCAN_BT_EDR, CONF_SG_ACL_PASSIVE_SCAN_WLAN_EDR, /* * Compensation percentage of probe requests when scan initiated Loading @@ -151,102 +186,70 @@ enum { CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3, /* * Defines antenna configuration (single/dual antenna) * * Range: 0 - single antenna, 1 - dual antenna */ CONF_SG_ANTENNA_CONFIGURATION, /* * The threshold (percent) of max consequtive beacon misses before * increasing priority of beacon reception. * * Range: 0 - 100 (%) */ CONF_SG_BEACON_MISS_PERCENT, /* * The rate threshold below which receiving a data frame from the AP * will increase the priority of the data frame above BT traffic. * * Range: 0,2, 5(=5.5), 6, 9, 11, 12, 18, 24, 36, 48, 54 */ CONF_SG_RATE_ADAPT_THRESH, /* * Not used currently. * Compensation percentage of WLAN active scan window if initiated * during BT A2DP * * Range: 0 * Range: 0 - 1000 (%) */ CONF_SG_RATE_ADAPT_SNR, CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP, /* * Configure the min and max time BT gains the antenna * in WLAN PSM / BT master basic rate * Compensation percentage of WLAN passive scan window if initiated * during BT A2DP BR * * Range: 0 - 255 (ms) * Range: 0 - 1000 (%) */ CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR, CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR, CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP_BR, /* * The time after it expires no new WLAN trigger frame is trasmitted * in WLAN PSM / BT master basic rate * Compensation percentage of WLAN passive scan window if initiated * during BT A2DP EDR * * Range: 0 - 255 (ms) * Range: 0 - 1000 (%) */ CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR, CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP_EDR, /* * Configure the min and max time BT gains the antenna * in WLAN PSM / BT slave basic rate * Compensation percentage of WLAN passive scan window if initiated * during BT voice * * Range: 0 - 255 (ms) * Range: 0 - 1000 (%) */ CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR, CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR, CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3, /* * The time after it expires no new WLAN trigger frame is trasmitted * in WLAN PSM / BT slave basic rate * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR, /* TODO: explain these values */ CONF_SG_CONSECUTIVE_HV3_IN_PASSIVE_SCAN, CONF_SG_BCN_HV3_COLLISION_THRESH_IN_PASSIVE_SCAN, CONF_SG_TX_RX_PROTECTION_BWIDTH_IN_PASSIVE_SCAN, /* * Configure the min and max time BT gains the antenna * in WLAN PSM / BT master EDR * Defines whether the SG will force WLAN host to enter/exit PSM * * Range: 0 - 255 (ms) * Range: 1 - SG can force, 0 - host handles PSM */ CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR, CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR, CONF_SG_STA_FORCE_PS_IN_BT_SCO, /* * The time after it expires no new WLAN trigger frame is trasmitted * in WLAN PSM / BT master EDR * Defines antenna configuration (single/dual antenna) * * Range: 0 - 255 (ms) * Range: 0 - single antenna, 1 - dual antenna */ CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR, CONF_SG_ANTENNA_CONFIGURATION, /* * Configure the min and max time BT gains the antenna * in WLAN PSM / BT slave EDR * The threshold (percent) of max consecutive beacon misses before * increasing priority of beacon reception. * * Range: 0 - 255 (ms) * Range: 0 - 100 (%) */ CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR, CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR, CONF_SG_BEACON_MISS_PERCENT, /* * The time after it expires no new WLAN trigger frame is trasmitted * in WLAN PSM / BT slave EDR * Protection time of the DHCP procedure. * * Range: 0 - 255 (ms) * Range: 0 - 100000 (ms) */ CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR, CONF_SG_DHCP_TIME, /* * RX guard time before the beginning of a new BT voice frame during Loading @@ -273,166 +276,59 @@ enum { */ CONF_SG_ADAPTIVE_RXT_TXT, /* * The used WLAN legacy service period during active BT ACL link * * Range: 0 - 255 (ms) */ CONF_SG_PS_POLL_TIMEOUT, /* * The used WLAN UPSD service period during active BT ACL link * * Range: 0 - 255 (ms) */ CONF_SG_UPSD_TIMEOUT, /* * Configure the min and max time BT gains the antenna * in WLAN Active / BT master EDR * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR, CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR, /* * The maximum time WLAN can gain the antenna for * in WLAN Active / BT master EDR * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR, /* TODO: explain this value */ CONF_SG_GENERAL_USAGE_BIT_MAP, /* * Configure the min and max time BT gains the antenna * in WLAN Active / BT slave EDR * Number of consecutive BT voice frames not interrupted by WLAN * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR, CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR, /* * The maximum time WLAN can gain the antenna for * in WLAN Active / BT slave EDR * * Range: 0 - 255 (ms) * Range: 0 - 100 */ CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR, CONF_SG_HV3_MAX_SERVED, /* * Configure the min and max time BT gains the antenna * in WLAN Active / BT basic rate * The used WLAN legacy service period during active BT ACL link * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_BT_ACL_MIN_BR, CONF_SG_WLAN_ACTIVE_BT_ACL_MAX_BR, CONF_SG_PS_POLL_TIMEOUT, /* * The maximum time WLAN can gain the antenna for * in WLAN Active / BT basic rate * The used WLAN UPSD service period during active BT ACL link * * Range: 0 - 255 (ms) */ CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_BR, /* * Compensation percentage of WLAN passive scan window if initiated * during BT voice * * Range: 0 - 1000 (%) */ CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3, /* * Compensation percentage of WLAN passive scan window if initiated * during BT A2DP * * Range: 0 - 1000 (%) */ CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP, CONF_SG_UPSD_TIMEOUT, /* * Fixed time ensured for BT traffic to gain the antenna during WLAN * passive scan. * * Range: 0 - 1000 ms */ CONF_SG_PASSIVE_SCAN_A2DP_BT_TIME, CONF_SG_CONSECUTIVE_CTS_THRESHOLD, CONF_SG_STA_RX_WINDOW_AFTER_DTIM, CONF_SG_STA_CONNECTION_PROTECTION_TIME, /* * Fixed time ensured for WLAN traffic to gain the antenna during WLAN * passive scan. * * Range: 0 - 1000 ms */ CONF_SG_PASSIVE_SCAN_A2DP_WLAN_TIME, /* AP params */ CONF_AP_BEACON_MISS_TX, CONF_AP_RX_WINDOW_AFTER_BEACON, CONF_AP_BEACON_WINDOW_INTERVAL, CONF_AP_CONNECTION_PROTECTION_TIME, CONF_AP_BT_ACL_VAL_BT_SERVE_TIME, CONF_AP_BT_ACL_VAL_WL_SERVE_TIME, /* * Number of consequent BT voice frames not interrupted by WLAN * * Range: 0 - 100 */ CONF_SG_HV3_MAX_SERVED, /* * Protection time of the DHCP procedure. * * Range: 0 - 100000 (ms) */ CONF_SG_DHCP_TIME, /* * Compensation percentage of WLAN active scan window if initiated * during BT A2DP * * Range: 0 - 1000 (%) */ CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP, CONF_SG_TEMP_PARAM_1, CONF_SG_TEMP_PARAM_2, CONF_SG_TEMP_PARAM_3, CONF_SG_TEMP_PARAM_4, CONF_SG_TEMP_PARAM_5, /* * AP beacon miss * * Range: 0 - 255 */ CONF_SG_AP_BEACON_MISS_TX, /* * AP RX window length * * Range: 0 - 50 */ CONF_SG_RX_WINDOW_LENGTH, /* * AP connection protection time * * Range: 0 - 5000 */ CONF_SG_AP_CONNECTION_PROTECTION_TIME, CONF_SG_TEMP_PARAM_6, CONF_SG_TEMP_PARAM_7, CONF_SG_TEMP_PARAM_8, CONF_SG_TEMP_PARAM_9, CONF_SG_TEMP_PARAM_10, CONF_SG_STA_PARAMS_MAX = CONF_SG_TEMP_PARAM_5 + 1, CONF_SG_AP_PARAMS_MAX = CONF_SG_TEMP_PARAM_10 + 1, CONF_SG_PARAMS_MAX, CONF_SG_PARAMS_ALL = 0xff }; struct conf_sg_settings { u32 sta_params[CONF_SG_STA_PARAMS_MAX]; u32 ap_params[CONF_SG_AP_PARAMS_MAX]; u32 params[CONF_SG_PARAMS_MAX]; u8 state; }; Loading Loading @@ -913,7 +809,7 @@ struct conf_conn_settings { struct conf_bcn_filt_rule bcn_filt_ie[CONF_MAX_BCN_FILT_IE_COUNT]; /* * The number of consequtive beacons to lose, before the firmware * The number of consecutive beacons to lose, before the firmware * becomes out of synch. * * Range: u32 Loading Loading @@ -951,7 +847,7 @@ struct conf_conn_settings { u8 rx_broadcast_in_ps; /* * Consequtive PS Poll failures before sending event to driver * Consecutive PS Poll failures before sending event to driver * * Range: u8 */ Loading
drivers/net/wireless/wl12xx/init.c +1 −4 Original line number Diff line number Diff line Loading @@ -277,10 +277,7 @@ int wl1271_init_pta(struct wl1271 *wl) { int ret; if (wl->bss_type == BSS_TYPE_AP_BSS) ret = wl1271_acx_ap_sg_cfg(wl); else ret = wl1271_acx_sta_sg_cfg(wl); ret = wl12xx_acx_sg_cfg(wl); if (ret < 0) return ret; Loading
drivers/net/wireless/wl12xx/main.c +61 −104 Original line number Diff line number Diff line Loading @@ -52,110 +52,67 @@ static struct conf_drv_settings default_conf = { .sg = { .sta_params = { [CONF_SG_BT_PER_THRESHOLD] = 7500, [CONF_SG_HV3_MAX_OVERRIDE] = 0, [CONF_SG_BT_NFS_SAMPLE_INTERVAL] = 400, [CONF_SG_BT_LOAD_RATIO] = 200, [CONF_SG_AUTO_PS_MODE] = 1, .params = { [CONF_SG_ACL_BT_MASTER_MIN_BR] = 10, [CONF_SG_ACL_BT_MASTER_MAX_BR] = 180, [CONF_SG_ACL_BT_SLAVE_MIN_BR] = 10, [CONF_SG_ACL_BT_SLAVE_MAX_BR] = 180, [CONF_SG_ACL_BT_MASTER_MIN_EDR] = 10, [CONF_SG_ACL_BT_MASTER_MAX_EDR] = 80, [CONF_SG_ACL_BT_SLAVE_MIN_EDR] = 10, [CONF_SG_ACL_BT_SLAVE_MAX_EDR] = 80, [CONF_SG_ACL_WLAN_PS_MASTER_BR] = 8, [CONF_SG_ACL_WLAN_PS_SLAVE_BR] = 8, [CONF_SG_ACL_WLAN_PS_MASTER_EDR] = 20, [CONF_SG_ACL_WLAN_PS_SLAVE_EDR] = 20, [CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_BR] = 20, [CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_BR] = 35, [CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_BR] = 16, [CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_BR] = 35, [CONF_SG_ACL_WLAN_ACTIVE_MASTER_MIN_EDR] = 32, [CONF_SG_ACL_WLAN_ACTIVE_MASTER_MAX_EDR] = 50, [CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MIN_EDR] = 28, [CONF_SG_ACL_WLAN_ACTIVE_SLAVE_MAX_EDR] = 50, [CONF_SG_ACL_ACTIVE_SCAN_WLAN_BR] = 10, [CONF_SG_ACL_ACTIVE_SCAN_WLAN_EDR] = 20, [CONF_SG_ACL_PASSIVE_SCAN_BT_BR] = 75, [CONF_SG_ACL_PASSIVE_SCAN_WLAN_BR] = 15, [CONF_SG_ACL_PASSIVE_SCAN_BT_EDR] = 27, [CONF_SG_ACL_PASSIVE_SCAN_WLAN_EDR] = 17, /* active scan params */ [CONF_SG_AUTO_SCAN_PROBE_REQ] = 170, [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3] = 50, [CONF_SG_ANTENNA_CONFIGURATION] = 0, [CONF_SG_BEACON_MISS_PERCENT] = 60, [CONF_SG_RATE_ADAPT_THRESH] = 12, [CONF_SG_RATE_ADAPT_SNR] = 0, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR] = 10, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR] = 30, [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR] = 8, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR] = 20, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR] = 50, /* Note: with UPSD, this should be 4 */ [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR] = 8, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR] = 7, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR] = 20, /* Note: with UPDS, this should be 15 */ [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR] = 8, /* Note: with UPDS, this should be 50 */ [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR] = 40, /* Note: with UPDS, this should be 10 */ [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR] = 20, [CONF_SG_RXT] = 1200, [CONF_SG_TXT] = 1000, [CONF_SG_ADAPTIVE_RXT_TXT] = 1, [CONF_SG_PS_POLL_TIMEOUT] = 10, [CONF_SG_UPSD_TIMEOUT] = 10, [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR] = 7, [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR] = 15, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR] = 15, [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR] = 8, [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR] = 20, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR] = 15, [CONF_SG_WLAN_ACTIVE_BT_ACL_MIN_BR] = 20, [CONF_SG_WLAN_ACTIVE_BT_ACL_MAX_BR] = 50, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_BR] = 10, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3] = 200, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP] = 800, [CONF_SG_PASSIVE_SCAN_A2DP_BT_TIME] = 75, [CONF_SG_PASSIVE_SCAN_A2DP_WLAN_TIME] = 15, [CONF_SG_HV3_MAX_SERVED] = 6, [CONF_SG_DHCP_TIME] = 5000, [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP] = 100, }, .ap_params = { [CONF_SG_BT_PER_THRESHOLD] = 7500, [CONF_SG_HV3_MAX_OVERRIDE] = 0, [CONF_SG_BT_NFS_SAMPLE_INTERVAL] = 400, [CONF_SG_BT_LOAD_RATIO] = 50, [CONF_SG_AUTO_PS_MODE] = 1, [CONF_SG_AUTO_SCAN_PROBE_REQ] = 170, [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3] = 50, /* passive scan params */ [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP_BR] = 800, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP_EDR] = 200, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3] = 200, /* passive scan in dual antenna params */ [CONF_SG_CONSECUTIVE_HV3_IN_PASSIVE_SCAN] = 0, [CONF_SG_BCN_HV3_COLLISION_THRESH_IN_PASSIVE_SCAN] = 0, [CONF_SG_TX_RX_PROTECTION_BWIDTH_IN_PASSIVE_SCAN] = 0, /* general params */ [CONF_SG_STA_FORCE_PS_IN_BT_SCO] = 1, [CONF_SG_ANTENNA_CONFIGURATION] = 0, [CONF_SG_BEACON_MISS_PERCENT] = 60, [CONF_SG_RATE_ADAPT_THRESH] = 64, [CONF_SG_RATE_ADAPT_SNR] = 1, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR] = 10, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR] = 25, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR] = 20, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR] = 25, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR] = 7, [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR] = 25, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR] = 8, [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR] = 25, [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR] = 25, [CONF_SG_DHCP_TIME] = 5000, [CONF_SG_RXT] = 1200, [CONF_SG_TXT] = 1000, [CONF_SG_ADAPTIVE_RXT_TXT] = 1, [CONF_SG_GENERAL_USAGE_BIT_MAP] = 3, [CONF_SG_HV3_MAX_SERVED] = 6, [CONF_SG_PS_POLL_TIMEOUT] = 10, [CONF_SG_UPSD_TIMEOUT] = 10, [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR] = 7, [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR] = 15, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR] = 15, [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR] = 8, [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR] = 20, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR] = 15, [CONF_SG_WLAN_ACTIVE_BT_ACL_MIN_BR] = 20, [CONF_SG_WLAN_ACTIVE_BT_ACL_MAX_BR] = 50, [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_BR] = 10, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3] = 200, [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP] = 800, [CONF_SG_PASSIVE_SCAN_A2DP_BT_TIME] = 75, [CONF_SG_PASSIVE_SCAN_A2DP_WLAN_TIME] = 15, [CONF_SG_HV3_MAX_SERVED] = 6, [CONF_SG_DHCP_TIME] = 5000, [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP] = 100, [CONF_SG_TEMP_PARAM_1] = 0, [CONF_SG_TEMP_PARAM_2] = 0, [CONF_SG_TEMP_PARAM_3] = 0, [CONF_SG_TEMP_PARAM_4] = 0, [CONF_SG_TEMP_PARAM_5] = 0, [CONF_SG_AP_BEACON_MISS_TX] = 3, [CONF_SG_RX_WINDOW_LENGTH] = 6, [CONF_SG_AP_CONNECTION_PROTECTION_TIME] = 50, [CONF_SG_TEMP_PARAM_6] = 1, [CONF_SG_CONSECUTIVE_CTS_THRESHOLD] = 2, [CONF_SG_STA_RX_WINDOW_AFTER_DTIM] = 5, [CONF_SG_STA_CONNECTION_PROTECTION_TIME] = 30, /* AP params */ [CONF_AP_BEACON_MISS_TX] = 3, [CONF_AP_RX_WINDOW_AFTER_BEACON] = 10, [CONF_AP_BEACON_WINDOW_INTERVAL] = 2, [CONF_AP_CONNECTION_PROTECTION_TIME] = 0, [CONF_AP_BT_ACL_VAL_BT_SERVE_TIME] = 25, [CONF_AP_BT_ACL_VAL_WL_SERVE_TIME] = 25, }, .state = CONF_SG_PROTECTIVE, }, Loading