linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd
@ 2018-01-09 13:13 Lorenzo Bianconi
  2018-01-09 13:13 ` [PATCH 1/3] mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params() Lorenzo Bianconi
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Lorenzo Bianconi @ 2018-01-09 13:13 UTC (permalink / raw)
  To: nbd; +Cc: linux-wireless

Lorenzo Bianconi (3):
  mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params()
  mt76x2: dfs: add set_domain handler
  mt76x2: dfs: take into account dfs region in mt76x2_dfs_init_params()

 drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c  | 17 +++++++++++++++--
 drivers/net/wireless/mediatek/mt76/mt76x2_dfs.h  |  2 ++
 drivers/net/wireless/mediatek/mt76/mt76x2_init.c |  2 +-
 drivers/net/wireless/mediatek/mt76/mt76x2_main.c |  2 ++
 4 files changed, 20 insertions(+), 3 deletions(-)

-- 
2.13.6

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params()
  2018-01-09 13:13 [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd Lorenzo Bianconi
@ 2018-01-09 13:13 ` Lorenzo Bianconi
  2018-01-24 15:17   ` [1/3] " Kalle Valo
  2018-01-09 13:13 ` [PATCH 2/3] mt76x2: dfs: add set_domain handler Lorenzo Bianconi
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 6+ messages in thread
From: Lorenzo Bianconi @ 2018-01-09 13:13 UTC (permalink / raw)
  To: nbd; +Cc: linux-wireless

Substitute tasklet_kill with tasklet_disable/tasklet_enable in order to
guarantee dfs tasklet can not be executed during dfs parameter
initialization

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
---
 drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c  | 1 -
 drivers/net/wireless/mediatek/mt76/mt76x2_main.c | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c b/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
index 5b452a596016..1a6282a8b64b 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
@@ -460,7 +460,6 @@ void mt76x2_dfs_init_params(struct mt76x2_dev *dev)
 {
 	struct cfg80211_chan_def *chandef = &dev->mt76.chandef;
 
-	tasklet_kill(&dev->dfs_pd.dfs_tasklet);
 	if (chandef->chan->flags & IEEE80211_CHAN_RADAR) {
 		mt76x2_dfs_set_bbp_params(dev);
 		/* enable debug mode */
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_main.c b/drivers/net/wireless/mediatek/mt76/mt76x2_main.c
index 963aea9e8801..c96e9348d3a9 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_main.c
@@ -127,6 +127,7 @@ mt76x2_set_channel(struct mt76x2_dev *dev, struct cfg80211_chan_def *chandef)
 	mt76_set_channel(&dev->mt76);
 
 	tasklet_disable(&dev->pre_tbtt_tasklet);
+	tasklet_disable(&dev->dfs_pd.dfs_tasklet);
 	cancel_delayed_work_sync(&dev->cal_work);
 
 	mt76x2_mac_stop(dev, true);
@@ -139,6 +140,7 @@ mt76x2_set_channel(struct mt76x2_dev *dev, struct cfg80211_chan_def *chandef)
 	mt76x2_dfs_init_params(dev);
 
 	mt76x2_mac_resume(dev);
+	tasklet_enable(&dev->dfs_pd.dfs_tasklet);
 	tasklet_enable(&dev->pre_tbtt_tasklet);
 
 	return ret;
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] mt76x2: dfs: add set_domain handler
  2018-01-09 13:13 [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd Lorenzo Bianconi
  2018-01-09 13:13 ` [PATCH 1/3] mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params() Lorenzo Bianconi
@ 2018-01-09 13:13 ` Lorenzo Bianconi
  2018-01-09 13:13 ` [PATCH 3/3] mt76x2: dfs: take into account dfs region in mt76x2_dfs_init_params() Lorenzo Bianconi
  2018-01-18 18:10 ` [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd Felix Fietkau
  3 siblings, 0 replies; 6+ messages in thread
From: Lorenzo Bianconi @ 2018-01-09 13:13 UTC (permalink / raw)
  To: nbd; +Cc: linux-wireless

Add mt76x2_dfs_set_domain routine in order to properly reconfigure
pattern detector when DFS domain has been changed

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
---
 drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c  | 13 +++++++++++++
 drivers/net/wireless/mediatek/mt76/mt76x2_dfs.h  |  2 ++
 drivers/net/wireless/mediatek/mt76/mt76x2_init.c |  2 +-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c b/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
index 1a6282a8b64b..df23ba5ef900 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
@@ -490,3 +490,16 @@ void mt76x2_dfs_init_detector(struct mt76x2_dev *dev)
 		     (unsigned long)dev);
 }
 
+void mt76x2_dfs_set_domain(struct mt76x2_dev *dev,
+			   enum nl80211_dfs_regions region)
+{
+	struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd;
+
+	if (dfs_pd->region != region) {
+		tasklet_disable(&dfs_pd->dfs_tasklet);
+		dfs_pd->region = region;
+		mt76x2_dfs_init_params(dev);
+		tasklet_enable(&dfs_pd->dfs_tasklet);
+	}
+}
+
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.h b/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.h
index 9ac69b6a116d..8dbc783cc6bc 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.h
@@ -76,5 +76,7 @@ struct mt76x2_dfs_pattern_detector {
 void mt76x2_dfs_init_params(struct mt76x2_dev *dev);
 void mt76x2_dfs_init_detector(struct mt76x2_dev *dev);
 void mt76x2_dfs_adjust_agc(struct mt76x2_dev *dev);
+void mt76x2_dfs_set_domain(struct mt76x2_dev *dev,
+			   enum nl80211_dfs_regions region);
 
 #endif /* __MT76x2_DFS_H */
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2_init.c
index 4373a2ba5143..9f20a308ff76 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_init.c
@@ -652,7 +652,7 @@ static void mt76x2_regd_notifier(struct wiphy *wiphy,
 	struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
 	struct mt76x2_dev *dev = hw->priv;
 
-	dev->dfs_pd.region = request->dfs_region;
+	mt76x2_dfs_set_domain(dev, request->dfs_region);
 }
 
 #define CCK_RATE(_idx, _rate) {					\
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] mt76x2: dfs: take into account dfs region in mt76x2_dfs_init_params()
  2018-01-09 13:13 [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd Lorenzo Bianconi
  2018-01-09 13:13 ` [PATCH 1/3] mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params() Lorenzo Bianconi
  2018-01-09 13:13 ` [PATCH 2/3] mt76x2: dfs: add set_domain handler Lorenzo Bianconi
@ 2018-01-09 13:13 ` Lorenzo Bianconi
  2018-01-18 18:10 ` [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd Felix Fietkau
  3 siblings, 0 replies; 6+ messages in thread
From: Lorenzo Bianconi @ 2018-01-09 13:13 UTC (permalink / raw)
  To: nbd; +Cc: linux-wireless

Do not enable DFS state machine if dfs region is set to NL80211_DFS_UNSET

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
---
 drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c b/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
index df23ba5ef900..f936dc9a5476 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_dfs.c
@@ -460,7 +460,8 @@ void mt76x2_dfs_init_params(struct mt76x2_dev *dev)
 {
 	struct cfg80211_chan_def *chandef = &dev->mt76.chandef;
 
-	if (chandef->chan->flags & IEEE80211_CHAN_RADAR) {
+	if ((chandef->chan->flags & IEEE80211_CHAN_RADAR) &&
+	    dev->dfs_pd.region != NL80211_DFS_UNSET) {
 		mt76x2_dfs_set_bbp_params(dev);
 		/* enable debug mode */
 		mt76x2_dfs_set_capture_mode_ctrl(dev, true);
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd
  2018-01-09 13:13 [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd Lorenzo Bianconi
                   ` (2 preceding siblings ...)
  2018-01-09 13:13 ` [PATCH 3/3] mt76x2: dfs: take into account dfs region in mt76x2_dfs_init_params() Lorenzo Bianconi
@ 2018-01-18 18:10 ` Felix Fietkau
  3 siblings, 0 replies; 6+ messages in thread
From: Felix Fietkau @ 2018-01-18 18:10 UTC (permalink / raw)
  To: Lorenzo Bianconi; +Cc: linux-wireless

On 2018-01-09 14:13, Lorenzo Bianconi wrote:
> Lorenzo Bianconi (3):
>   mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params()
>   mt76x2: dfs: add set_domain handler
>   mt76x2: dfs: take into account dfs region in mt76x2_dfs_init_params()
For the series:
Acked-by: Felix Fietkau <nbd@nbd.name>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [1/3] mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params()
  2018-01-09 13:13 ` [PATCH 1/3] mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params() Lorenzo Bianconi
@ 2018-01-24 15:17   ` Kalle Valo
  0 siblings, 0 replies; 6+ messages in thread
From: Kalle Valo @ 2018-01-24 15:17 UTC (permalink / raw)
  To: Lorenzo Bianconi; +Cc: nbd, linux-wireless

Lorenzo Bianconi <lorenzo.bianconi@redhat.com> wrote:

> Substitute tasklet_kill with tasklet_disable/tasklet_enable in order to
> guarantee dfs tasklet can not be executed during dfs parameter
> initialization
> 
> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>

3 patches applied to wireless-drivers-next.git, thanks.

8c9f6491a313 mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params()
2070f3cc2c2c mt76x2: dfs: add set_domain handler
634e99f0d4da mt76x2: dfs: take into account dfs region in mt76x2_dfs_init_params()

-- 
https://patchwork.kernel.org/patch/10152031/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-01-24 15:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-09 13:13 [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd Lorenzo Bianconi
2018-01-09 13:13 ` [PATCH 1/3] mt76x2: dfs: avoid tasklet scheduling during mt76x2_dfs_init_params() Lorenzo Bianconi
2018-01-24 15:17   ` [1/3] " Kalle Valo
2018-01-09 13:13 ` [PATCH 2/3] mt76x2: dfs: add set_domain handler Lorenzo Bianconi
2018-01-09 13:13 ` [PATCH 3/3] mt76x2: dfs: take into account dfs region in mt76x2_dfs_init_params() Lorenzo Bianconi
2018-01-18 18:10 ` [PATCH 0/3] add set_domain routine to reconfigure mt76x2 dfs pd Felix Fietkau

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).