|
@@ -194,4 +194,67 @@ bool reg_is_phymode_chwidth_allowed(
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+void reg_set_chan_blocked(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq)
|
|
|
+{
|
|
|
+ struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
|
+ struct regulatory_channel *cur_chan_list;
|
|
|
+ int i;
|
|
|
+
|
|
|
+ pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
|
+
|
|
|
+ if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
|
|
+ reg_err("reg pdev priv obj is NULL");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ cur_chan_list = pdev_priv_obj->cur_chan_list;
|
|
|
+
|
|
|
+ for (i = 0; i < NUM_CHANNELS; i++) {
|
|
|
+ if (cur_chan_list[i].center_freq == freq) {
|
|
|
+ cur_chan_list[i].is_chan_hop_blocked = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+bool reg_is_chan_blocked(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq)
|
|
|
+{
|
|
|
+ struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
|
+ struct regulatory_channel *cur_chan_list;
|
|
|
+ int i;
|
|
|
+
|
|
|
+ pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
|
+
|
|
|
+ if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
|
|
+ reg_err("reg pdev priv obj is NULL");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ cur_chan_list = pdev_priv_obj->cur_chan_list;
|
|
|
+
|
|
|
+ for (i = 0; i < NUM_CHANNELS; i++)
|
|
|
+ if (cur_chan_list[i].center_freq == freq)
|
|
|
+ return cur_chan_list[i].is_chan_hop_blocked;
|
|
|
+
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+void reg_clear_allchan_blocked(struct wlan_objmgr_pdev *pdev)
|
|
|
+{
|
|
|
+ struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
|
+ struct regulatory_channel *cur_chan_list;
|
|
|
+ int i;
|
|
|
+
|
|
|
+ pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
|
+
|
|
|
+ if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
|
|
+ reg_err("reg pdev priv obj is NULL");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ cur_chan_list = pdev_priv_obj->cur_chan_list;
|
|
|
+
|
|
|
+ for (i = 0; i < NUM_CHANNELS; i++)
|
|
|
+ cur_chan_list[i].is_chan_hop_blocked = false;
|
|
|
+}
|
|
|
#endif
|