Skip to content

Commit

Permalink
qtnfmac: pass DFS region to firmware on region update
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Igor Mitsyanko authored and Kalle Valo committed Apr 4, 2019
1 parent c698bce commit 438fb43
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
15 changes: 15 additions & 0 deletions drivers/net/wireless/quantenna/qtnfmac/commands.c
Original file line number Diff line number Diff line change
Expand Up @@ -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++) {
Expand Down
6 changes: 4 additions & 2 deletions drivers/net/wireless/quantenna/qtnfmac/qlink.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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;

Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit 438fb43

Please sign in to comment.