qcacld-3.0: Fill STATION_INFO_SIGNAL when returning cached value to upperlayer
qcacld-2.0 to qcacld-3.0 propogation. When there is an get_station request from the upper layer during roaming, the driver returns a cached rssi value but it dosent set the "sinfo->filled" (station_info_flags) bit flag for the NL80211_STA_INFO_SIGNAL. If this flag is not set the kernel dosen't update the cached rssi value to upper layer. To mitigate this issue, set the "sinfo->filled" when returning the cached value to the upper layer during roaming. CRs-Fixed: 1084502 Change-Id: If62f7482c8153131daa2d0ea83596e5cd4e3f104
This commit is contained in:

committed by
qcabuildsw

부모
6677a335ba
커밋
bffbe05c4c
@@ -1707,6 +1707,20 @@ void wlan_hdd_cfg80211_stats_ext_callback(void *ctx,
|
|||||||
}
|
}
|
||||||
#endif /* End of WLAN_FEATURE_STATS_EXT */
|
#endif /* End of WLAN_FEATURE_STATS_EXT */
|
||||||
|
|
||||||
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)) && !defined(WITH_BACKPORTS)
|
||||||
|
static inline void wlan_hdd_fill_station_info_signal(struct station_info
|
||||||
|
*sinfo)
|
||||||
|
{
|
||||||
|
sinfo->filled |= STATION_INFO_SIGNAL;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline void wlan_hdd_fill_station_info_signal(struct station_info
|
||||||
|
*sinfo)
|
||||||
|
{
|
||||||
|
sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __wlan_hdd_cfg80211_get_station() - get station statistics
|
* __wlan_hdd_cfg80211_get_station() - get station statistics
|
||||||
* @wiphy: Pointer to wiphy
|
* @wiphy: Pointer to wiphy
|
||||||
@@ -1783,6 +1797,7 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
|
|||||||
* send the cached rssi when get_station
|
* send the cached rssi when get_station
|
||||||
*/
|
*/
|
||||||
sinfo->signal = pAdapter->rssi;
|
sinfo->signal = pAdapter->rssi;
|
||||||
|
wlan_hdd_fill_station_info_signal(sinfo);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1801,11 +1816,7 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
|
|||||||
pHddStaCtx->conn_info.noise =
|
pHddStaCtx->conn_info.noise =
|
||||||
pHddStaCtx->conn_info.signal - snr;
|
pHddStaCtx->conn_info.signal - snr;
|
||||||
|
|
||||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)) && !defined(WITH_BACKPORTS)
|
wlan_hdd_fill_station_info_signal(sinfo);
|
||||||
sinfo->filled |= STATION_INFO_SIGNAL;
|
|
||||||
#else
|
|
||||||
sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* we notify connect to lpass here instead of during actual
|
* we notify connect to lpass here instead of during actual
|
||||||
|
Reference in New Issue
Block a user