|
@@ -2928,7 +2928,7 @@ wlansap_get_safe_channel(struct sap_context *sap_ctx)
|
|
|
uint32_t pcl_freqs[NUM_CHANNELS];
|
|
|
QDF_STATUS status;
|
|
|
mac_handle_t mac_handle;
|
|
|
- uint32_t pcl_len = 0;
|
|
|
+ uint32_t pcl_len = 0, i;
|
|
|
|
|
|
if (!sap_ctx) {
|
|
|
sap_err("NULL parameter");
|
|
@@ -2961,16 +2961,23 @@ wlansap_get_safe_channel(struct sap_context *sap_ctx)
|
|
|
pcl_freqs,
|
|
|
&pcl_len,
|
|
|
PM_SAP_MODE);
|
|
|
- if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
- sap_err("failed to get valid channel: %d", status);
|
|
|
+ if (QDF_IS_STATUS_ERROR(status) || !pcl_len) {
|
|
|
+ sap_err("failed to get valid channel: %d len %d",
|
|
|
+ status, pcl_len);
|
|
|
return INVALID_CHANNEL_ID;
|
|
|
}
|
|
|
|
|
|
- if (pcl_len) {
|
|
|
- sap_debug("select %d from valid channel list",
|
|
|
- pcl_freqs[0]);
|
|
|
- return pcl_freqs[0];
|
|
|
+ for (i = 0; i < pcl_len; i++) {
|
|
|
+ if (WLAN_REG_IS_SAME_BAND_FREQS(sap_ctx->chan_freq,
|
|
|
+ pcl_freqs[i])) {
|
|
|
+ sap_debug("select %d from valid channel list",
|
|
|
+ pcl_freqs[i]);
|
|
|
+ return pcl_freqs[i];
|
|
|
+ }
|
|
|
}
|
|
|
+ sap_debug("select first %d from valid channel list",
|
|
|
+ pcl_freqs[0]);
|
|
|
+ return pcl_freqs[0];
|
|
|
}
|
|
|
|
|
|
return INVALID_CHANNEL_ID;
|