* [PATCH] ath6kl: support NL80211_USER_REG_HINT_CELL_BASE events
@ 2012-11-16 8:28 Kalle Valo
2012-11-16 11:38 ` Kalle Valo
2012-11-17 0:20 ` Luis R. Rodriguez
0 siblings, 2 replies; 3+ messages in thread
From: Kalle Valo @ 2012-11-16 8:28 UTC (permalink / raw)
To: linux-wireless; +Cc: ath6kl-devel
As ath6kl firmware can't do intersections the driver should only listen
to regdom changes from cellular base stations, all other requests need to
be refused.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
---
drivers/net/wireless/ath/ath6kl/cfg80211.c | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index bf5e7d5..41dea0d 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -3500,11 +3500,18 @@ static int ath6kl_cfg80211_reg_notify(struct wiphy *wiphy,
int ret, i;
ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
- "cfg reg_notify %c%c%s%s initiator %d\n",
+ "cfg reg_notify %c%c%s%s initiator %d hint_type %d\n",
request->alpha2[0], request->alpha2[1],
request->intersect ? " intersect" : "",
request->processed ? " processed" : "",
- request->initiator);
+ request->initiator, request->user_reg_hint_type);
+
+ /*
+ * As firmware is not able intersect regdoms, we can only listen to
+ * cellular hints.
+ */
+ if (request->user_reg_hint_type != NL80211_USER_REG_HINT_CELL_BASE)
+ return -EOPNOTSUPP;
ret = ath6kl_wmi_set_regdomain_cmd(ar->wmi, request->alpha2);
if (ret) {
@@ -3668,8 +3675,10 @@ int ath6kl_cfg80211_init(struct ath6kl *ar)
}
if (config_enabled(CONFIG_ATH6KL_REGDOMAIN) &&
- test_bit(ATH6KL_FW_CAPABILITY_REGDOMAIN, ar->fw_capabilities))
+ test_bit(ATH6KL_FW_CAPABILITY_REGDOMAIN, ar->fw_capabilities)) {
wiphy->reg_notifier = ath6kl_cfg80211_reg_notify;
+ ar->wiphy->features |= NL80211_FEATURE_CELL_BASE_REG_HINTS;
+ }
/* max num of ssids that can be probed during scanning */
wiphy->max_scan_ssids = MAX_PROBED_SSIDS;
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] ath6kl: support NL80211_USER_REG_HINT_CELL_BASE events
2012-11-16 8:28 [PATCH] ath6kl: support NL80211_USER_REG_HINT_CELL_BASE events Kalle Valo
@ 2012-11-16 11:38 ` Kalle Valo
2012-11-17 0:20 ` Luis R. Rodriguez
1 sibling, 0 replies; 3+ messages in thread
From: Kalle Valo @ 2012-11-16 11:38 UTC (permalink / raw)
To: linux-wireless; +Cc: ath6kl-devel
On 11/16/2012 10:28 AM, Kalle Valo wrote:
> As ath6kl firmware can't do intersections the driver should only listen
> to regdom changes from cellular base stations, all other requests need to
> be refused.
>
> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Applied.
Kalle
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] ath6kl: support NL80211_USER_REG_HINT_CELL_BASE events
2012-11-16 8:28 [PATCH] ath6kl: support NL80211_USER_REG_HINT_CELL_BASE events Kalle Valo
2012-11-16 11:38 ` Kalle Valo
@ 2012-11-17 0:20 ` Luis R. Rodriguez
1 sibling, 0 replies; 3+ messages in thread
From: Luis R. Rodriguez @ 2012-11-17 0:20 UTC (permalink / raw)
To: Kalle Valo; +Cc: linux-wireless, ath6kl-devel
On Fri, Nov 16, 2012 at 10:28:04AM +0200, Kalle Valo wrote:
> As ath6kl firmware can't do intersections the driver should only listen
> to regdom changes from cellular base stations, all other requests need to
> be refused.
>
> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
> ---
> drivers/net/wireless/ath/ath6kl/cfg80211.c | 15 ++++++++++++---
> 1 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
> index bf5e7d5..41dea0d 100644
> --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
> +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
> @@ -3500,11 +3500,18 @@ static int ath6kl_cfg80211_reg_notify(struct wiphy *wiphy,
> int ret, i;
>
> ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
> - "cfg reg_notify %c%c%s%s initiator %d\n",
> + "cfg reg_notify %c%c%s%s initiator %d hint_type %d\n",
> request->alpha2[0], request->alpha2[1],
> request->intersect ? " intersect" : "",
> request->processed ? " processed" : "",
> - request->initiator);
> + request->initiator, request->user_reg_hint_type);
> +
> + /*
> + * As firmware is not able intersect regdoms, we can only listen to
> + * cellular hints.
> + */
> + if (request->user_reg_hint_type != NL80211_USER_REG_HINT_CELL_BASE)
> + return -EOPNOTSUPP;
The reg_notifier() doesn't need to process all requests and we don't care
if it fails so a few things for the future if its not too late to respin:
* The reg_notifier() on the kernel can be made to return void, and simply
allow routines to exit early by a simple non return return.
* The comment at the top here seems non relevant as feature is to
support cell base station hints, not to support or process all
hints. That is, the reg notifier does work with the fimrware only
in case of the cell base station hint.
Luis
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-11-17 0:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-16 8:28 [PATCH] ath6kl: support NL80211_USER_REG_HINT_CELL_BASE events Kalle Valo
2012-11-16 11:38 ` Kalle Valo
2012-11-17 0:20 ` Luis R. Rodriguez
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).