qtnfmac: pass DFS region to firmware on region update
authorIgor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Wed, 20 Mar 2019 10:03:58 +0000 (10:03 +0000)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 4 Apr 2019 09:57:29 +0000 (12:57 +0300)
Pass DFS region as requested by regulatory core directly to firmware
so it can initialize radar detection block accordingly.

Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/quantenna/qtnfmac/commands.c
drivers/net/wireless/quantenna/qtnfmac/qlink.h

index 1a248d9f2e4cd52a937738a1eb132ae31f986162..cc7f74333f488afafabfdb5c7d6f2e0ca65cf008 100644 (file)
@@ -2376,6 +2376,21 @@ int qtnf_cmd_reg_notify(struct qtnf_wmac *mac, struct regulatory_request *req)
                break;
        }
 
+       switch (req->dfs_region) {
+       case NL80211_DFS_FCC:
+               cmd->dfs_region = QLINK_DFS_FCC;
+               break;
+       case NL80211_DFS_ETSI:
+               cmd->dfs_region = QLINK_DFS_ETSI;
+               break;
+       case NL80211_DFS_JP:
+               cmd->dfs_region = QLINK_DFS_JP;
+               break;
+       default:
+               cmd->dfs_region = QLINK_DFS_UNSET;
+               break;
+       }
+
        cmd->num_channels = 0;
 
        for (band = 0; band < NUM_NL80211_BANDS; band++) {
index 6951f6370985e98c73554e39425ffc97a6f79f43..f6d30069ef3a07c6a9da690b20970e77c56098e6 100644 (file)
@@ -582,6 +582,7 @@ enum qlink_user_reg_hint_type {
  *     of &enum qlink_user_reg_hint_type.
  * @num_channels: number of &struct qlink_tlv_channel in a variable portion of a
  *     payload.
+ * @dfs_region: one of &enum qlink_dfs_regions.
  * @info: variable portion of regulatory notifier callback.
  */
 struct qlink_cmd_reg_notify {
@@ -590,7 +591,8 @@ struct qlink_cmd_reg_notify {
        u8 initiator;
        u8 user_reg_hint_type;
        u8 num_channels;
-       u8 rsvd[3];
+       u8 dfs_region;
+       u8 rsvd[2];
        u8 info[0];
 } __packed;
 
@@ -800,7 +802,7 @@ enum qlink_dfs_regions {
  * @alpha2: country code ID firmware is configured to.
  * @n_reg_rules: number of regulatory rules TLVs in variable portion of the
  *     message.
- * @dfs_region: regulatory DFS region, one of @enum qlink_dfs_region.
+ * @dfs_region: regulatory DFS region, one of &enum qlink_dfs_regions.
  * @var_info: variable-length WMAC info data.
  */
 struct qlink_resp_get_mac_info {