* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.