qcacld-3.0: Update linkspeed state to F/W for roaming dp part
To avoid unmeaningful roaming, when low RSSI trigger, only roam when rx linkspeed is also bad. Steps: 1. F/W indicates feature supported by: wmi_service_linkspeed_roam_trigger_support 2. App sets vdev rx link speed threshold by vendor cmd. 3. Bus_bw_work gets rx link speed from data path periodically. 4. If found rx link speed change from good to poor, or poor to good, send to F/W. 5. F/W low rssi roaming is triggered only when both RSSI and link speed are poor. Change-Id: I2c2a22c1f24a730783ee09455f4d70b099d9bff1 CRs-Fixed: 3255036
This commit is contained in:

committed by
Madan Koyyalamudi

parent
c4459eb18e
commit
71eb93c537
@@ -587,6 +587,7 @@ union wlan_tp_data {
|
||||
* @os_if_dp_nud_stats_info: osif callback to print nud stats info
|
||||
* @dp_get_pause_map: Callback API to get pause map count
|
||||
* @dp_nud_failure_work: Callback API to handle NUD failuire work
|
||||
* @link_monitoring_cb: Callback API to handle link speed change
|
||||
*/
|
||||
struct wlan_dp_psoc_callbacks {
|
||||
hdd_cb_handle callback_ctx;
|
||||
@@ -666,6 +667,9 @@ struct wlan_dp_psoc_callbacks {
|
||||
void (*os_if_dp_nud_stats_info)(struct wlan_objmgr_vdev *vdev);
|
||||
uint32_t (*dp_get_pause_map)(hdd_cb_handle context, uint8_t vdev_id);
|
||||
void (*dp_nud_failure_work)(hdd_cb_handle context, uint8_t vdev_id);
|
||||
void (*link_monitoring_cb)(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id,
|
||||
bool is_link_speed_good);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -1222,4 +1222,13 @@ void ucfg_dp_event_eapol_log(qdf_nbuf_t nbuf, enum qdf_proto_dir dir);
|
||||
QDF_STATUS
|
||||
ucfg_dp_softap_inspect_dhcp_packet(struct wlan_objmgr_vdev *vdev,
|
||||
qdf_nbuf_t nbuf, enum qdf_proto_dir dir);
|
||||
|
||||
void
|
||||
dp_ucfg_enable_link_monitoring(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t threshold);
|
||||
|
||||
void
|
||||
dp_ucfg_disable_link_monitoring(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_objmgr_vdev *vdev);
|
||||
#endif /* _WLAN_DP_UCFG_API_H_ */
|
||||
|
Reference in New Issue
Block a user