|
@@ -65,110 +65,318 @@ enum {
|
|
|
CONF_HW_RATE_INDEX_MAX = CONF_HW_RATE_INDEX_54MBPS,
|
|
|
};
|
|
|
|
|
|
-struct conf_sg_settings {
|
|
|
+enum {
|
|
|
+ CONF_SG_DISABLE = 0,
|
|
|
+ CONF_SG_PROTECTIVE,
|
|
|
+ CONF_SG_OPPORTUNISTIC
|
|
|
+};
|
|
|
+
|
|
|
+enum {
|
|
|
/*
|
|
|
- * Defines the PER threshold in PPM of the BT voice of which reaching
|
|
|
- * this value will trigger raising the priority of the BT voice by
|
|
|
- * the BT IP until next NFS sample interval time as defined in
|
|
|
- * nfs_sample_interval.
|
|
|
+ * PER threshold in PPM of the BT voice
|
|
|
*
|
|
|
- * Unit: PER value in PPM (parts per million)
|
|
|
- * #Error_packets / #Total_packets
|
|
|
+ * Range: 0 - 10000000
|
|
|
+ */
|
|
|
+ CONF_SG_BT_PER_THRESHOLD = 0,
|
|
|
|
|
|
- * Range: u32
|
|
|
+ /*
|
|
|
+ * Number of consequent RX_ACTIVE activities to override BT voice
|
|
|
+ * frames to ensure WLAN connection
|
|
|
+ *
|
|
|
+ * Range: 0 - 100
|
|
|
+ */
|
|
|
+ CONF_SG_HV3_MAX_OVERRIDE,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Defines the PER threshold of the BT voice
|
|
|
+ *
|
|
|
+ * Range: 0 - 65000
|
|
|
+ */
|
|
|
+ CONF_SG_BT_NFS_SAMPLE_INTERVAL,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Defines the load ratio of BT
|
|
|
+ *
|
|
|
+ * Range: 0 - 100 (%)
|
|
|
+ */
|
|
|
+ CONF_SG_BT_LOAD_RATIO,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Defines whether the SG will force WLAN host to enter/exit PSM
|
|
|
+ *
|
|
|
+ * Range: 1 - SG can force, 0 - host handles PSM
|
|
|
+ */
|
|
|
+ CONF_SG_AUTO_PS_MODE,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Compensation percentage of probe requests when scan initiated
|
|
|
+ * during BT voice/ACL link.
|
|
|
+ *
|
|
|
+ * Range: 0 - 255 (%)
|
|
|
+ */
|
|
|
+ CONF_SG_AUTO_SCAN_PROBE_REQ,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Compensation percentage of probe requests when active scan initiated
|
|
|
+ * during BT voice
|
|
|
+ *
|
|
|
+ * Range: 0 - 255 (%)
|
|
|
+ */
|
|
|
+ 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.
|
|
|
+ *
|
|
|
+ * Range: 0
|
|
|
+ */
|
|
|
+ CONF_SG_RATE_ADAPT_SNR,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Configure the min and max time BT gains the antenna
|
|
|
+ * in WLAN PSM / BT master basic rate
|
|
|
+ *
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
+ */
|
|
|
+ CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR,
|
|
|
+ CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * The time after it expires no new WLAN trigger frame is trasmitted
|
|
|
+ * in WLAN PSM / BT master basic rate
|
|
|
+ *
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
+ */
|
|
|
+ CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Configure the min and max time BT gains the antenna
|
|
|
+ * in WLAN PSM / BT slave basic rate
|
|
|
+ *
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
*/
|
|
|
- u32 per_threshold;
|
|
|
+ CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR,
|
|
|
+ CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR,
|
|
|
|
|
|
/*
|
|
|
- * This value is an absolute time in micro-seconds to limit the
|
|
|
- * maximum scan duration compensation while in SG
|
|
|
+ * The time after it expires no new WLAN trigger frame is trasmitted
|
|
|
+ * in WLAN PSM / BT slave basic rate
|
|
|
+ *
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
*/
|
|
|
- u32 max_scan_compensation_time;
|
|
|
+ CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR,
|
|
|
|
|
|
- /* Defines the PER threshold of the BT voice of which reaching this
|
|
|
- * value will trigger raising the priority of the BT voice until next
|
|
|
- * NFS sample interval time as defined in sample_interval.
|
|
|
+ /*
|
|
|
+ * Configure the min and max time BT gains the antenna
|
|
|
+ * in WLAN PSM / BT master EDR
|
|
|
*
|
|
|
- * Unit: msec
|
|
|
- * Range: 1-65000
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
*/
|
|
|
- u16 nfs_sample_interval;
|
|
|
+ CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR,
|
|
|
+ CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR,
|
|
|
|
|
|
/*
|
|
|
- * Defines the load ratio for the BT.
|
|
|
- * The WLAN ratio is: 100 - load_ratio
|
|
|
+ * The time after it expires no new WLAN trigger frame is trasmitted
|
|
|
+ * in WLAN PSM / BT master EDR
|
|
|
*
|
|
|
- * Unit: Percent
|
|
|
- * Range: 0-100
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
*/
|
|
|
- u8 load_ratio;
|
|
|
+ CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR,
|
|
|
|
|
|
/*
|
|
|
- * true - Co-ex is allowed to enter/exit P.S automatically and
|
|
|
- * transparently to the host
|
|
|
+ * Configure the min and max time BT gains the antenna
|
|
|
+ * in WLAN PSM / BT slave EDR
|
|
|
*
|
|
|
- * false - Co-ex is disallowed to enter/exit P.S and will trigger an
|
|
|
- * event to the host to notify for the need to enter/exit P.S
|
|
|
- * due to BT change state
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
+ */
|
|
|
+ CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR,
|
|
|
+ CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * The time after it expires no new WLAN trigger frame is trasmitted
|
|
|
+ * in WLAN PSM / BT slave EDR
|
|
|
*
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
*/
|
|
|
- u8 auto_ps_mode;
|
|
|
+ CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR,
|
|
|
|
|
|
/*
|
|
|
- * This parameter defines the compensation percentage of num of probe
|
|
|
- * requests in case scan is initiated during BT voice/BT ACL
|
|
|
- * guaranteed link.
|
|
|
+ * RX guard time before the beginning of a new BT voice frame during
|
|
|
+ * which no new WLAN trigger frame is transmitted.
|
|
|
*
|
|
|
- * Unit: Percent
|
|
|
- * Range: 0-255 (0 - No compensation)
|
|
|
+ * Range: 0 - 100000 (us)
|
|
|
*/
|
|
|
- u8 probe_req_compensation;
|
|
|
+ CONF_SG_RXT,
|
|
|
|
|
|
/*
|
|
|
- * This parameter defines the compensation percentage of scan window
|
|
|
- * size in case scan is initiated during BT voice/BT ACL Guaranteed
|
|
|
- * link.
|
|
|
+ * TX guard time before the beginning of a new BT voice frame during
|
|
|
+ * which no new WLAN frame is transmitted.
|
|
|
*
|
|
|
- * Unit: Percent
|
|
|
- * Range: 0-255 (0 - No compensation)
|
|
|
+ * Range: 0 - 100000 (us)
|
|
|
*/
|
|
|
- u8 scan_window_compensation;
|
|
|
+
|
|
|
+ CONF_SG_TXT,
|
|
|
|
|
|
/*
|
|
|
- * Defines the antenna configuration.
|
|
|
+ * Enable adaptive RXT/TXT algorithm. If disabled, the host values
|
|
|
+ * will be utilized.
|
|
|
*
|
|
|
- * Range: 0 - Single Antenna; 1 - Dual Antenna
|
|
|
+ * Range: 0 - disable, 1 - enable
|
|
|
*/
|
|
|
- u8 antenna_config;
|
|
|
+ CONF_SG_ADAPTIVE_RXT_TXT,
|
|
|
|
|
|
/*
|
|
|
- * The percent out of the Max consecutive beacon miss roaming trigger
|
|
|
- * which is the threshold for raising the priority of beacon
|
|
|
- * reception.
|
|
|
+ * The used WLAN legacy service period during active BT ACL link
|
|
|
*
|
|
|
- * Range: 1-100
|
|
|
- * N = MaxConsecutiveBeaconMiss
|
|
|
- * P = coexMaxConsecutiveBeaconMissPrecent
|
|
|
- * Threshold = MIN( N-1, round(N * P / 100))
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
*/
|
|
|
- u8 beacon_miss_threshold;
|
|
|
+ CONF_SG_PS_POLL_TIMEOUT,
|
|
|
|
|
|
/*
|
|
|
- * The RX rate threshold below which rate adaptation is assumed to be
|
|
|
- * occurring at the AP which will raise priority for ACTIVE_RX and RX
|
|
|
- * SP.
|
|
|
+ * The used WLAN UPSD service period during active BT ACL link
|
|
|
*
|
|
|
- * Range: HW_BIT_RATE_*
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
*/
|
|
|
- u32 rate_adaptation_threshold;
|
|
|
+ CONF_SG_UPSD_TIMEOUT,
|
|
|
|
|
|
/*
|
|
|
- * The SNR above which the RX rate threshold indicating AP rate
|
|
|
- * adaptation is valid
|
|
|
+ * Configure the min and max time BT gains the antenna
|
|
|
+ * in WLAN Active / BT master EDR
|
|
|
*
|
|
|
- * Range: -128 - 127
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
*/
|
|
|
- s8 rate_adaptation_snr;
|
|
|
+ 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,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Configure the min and max time BT gains the antenna
|
|
|
+ * in WLAN Active / BT slave EDR
|
|
|
+ *
|
|
|
+ * 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)
|
|
|
+ */
|
|
|
+ CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Configure the min and max time BT gains the antenna
|
|
|
+ * in WLAN Active / BT basic rate
|
|
|
+ *
|
|
|
+ * Range: 0 - 255 (ms)
|
|
|
+ */
|
|
|
+ CONF_SG_WLAN_ACTIVE_BT_ACL_MIN_BR,
|
|
|
+ CONF_SG_WLAN_ACTIVE_BT_ACL_MAX_BR,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * The maximum time WLAN can gain the antenna for
|
|
|
+ * in WLAN Active / BT basic rate
|
|
|
+ *
|
|
|
+ * 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,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 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,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 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,
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 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,
|
|
|
+ CONF_SG_PARAMS_MAX,
|
|
|
+ CONF_SG_PARAMS_ALL = 0xff
|
|
|
+};
|
|
|
+
|
|
|
+struct conf_sg_settings {
|
|
|
+ __le32 params[CONF_SG_PARAMS_MAX];
|
|
|
+ u8 state;
|
|
|
};
|
|
|
|
|
|
enum conf_rx_queue_type {
|