2020-02-13 05:09:11

by Tony Chuang

[permalink] [raw]
Subject: [PATCH] rtw88: set WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL, mac80211 supports it

From: Yan-Hsuan Chuang <[email protected]>

Set wiphy flag WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL, because mac80211
actually supports it. With the flag set, driver can accept ROC
event from wpa_supplicant or some other user space tools.

Do note that driver is most used to run a station mode vif and is
using sw_scan instead of use_chan_ctx. So, if the driver is going
to use chan_ctx or hw_scan, must make sure that ROC can work.

Signed-off-by: Yan-Hsuan Chuang <[email protected]>
---
drivers/net/wireless/realtek/rtw88/main.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
index 2845d2838f7b..38c77678fa5b 100644
--- a/drivers/net/wireless/realtek/rtw88/main.c
+++ b/drivers/net/wireless/realtek/rtw88/main.c
@@ -1484,6 +1484,7 @@ int rtw_register_hw(struct rtw_dev *rtwdev, struct ieee80211_hw *hw)
BIT(NL80211_IFTYPE_MESH_POINT);

hw->wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS |
+ WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL |
WIPHY_FLAG_TDLS_EXTERNAL_SETUP;

hw->wiphy->features |= NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR;
--
2.17.1


2020-02-13 09:58:15

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [PATCH] rtw88: set WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL, mac80211 supports it



On 2/13/2020 6:08 AM, [email protected] wrote:
> From: Yan-Hsuan Chuang <[email protected]>
>
> Set wiphy flag WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL, because mac80211
> actually supports it. With the flag set, driver can accept ROC
> event from wpa_supplicant or some other user space tools.

This does not seem right. mac80211 does set this flag itself when the
driver provides remain_on_channel callback. Does that mean you already
have that callback? This patch is either wrong or unnecessary.

Regards,
Arend

2020-02-13 10:04:16

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [PATCH] rtw88: set WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL, mac80211 supports it

On 2/13/2020 10:56 AM, Arend Van Spriel wrote:
>
>
> On 2/13/2020 6:08 AM, [email protected] wrote:
>> From: Yan-Hsuan Chuang <[email protected]>
>>
>> Set wiphy flag WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL, because mac80211
>> actually supports it. With the flag set, driver can accept ROC
>> event from wpa_supplicant or some other user space tools.
>
> This does not seem right. mac80211 does set this flag itself when the
> driver provides remain_on_channel callback. Does that mean you already
> have that callback? This patch is either wrong or unnecessary.

Re-reading the commit message I guess it is ok to claim
remain-on-channel support when using sw_scan. If this is true it seems
better to extend the condition in ieee80211_alloc_hw_nm() for setting
the flag.

Regards,
Arend

2020-02-18 08:03:37

by Tony Chuang

[permalink] [raw]
Subject: RE: [PATCH] rtw88: set WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL, mac80211 supports it

> On 2/13/2020 10:56 AM, Arend Van Spriel wrote:
> >
> >
> > On 2/13/2020 6:08 AM, [email protected] wrote:
> >> From: Yan-Hsuan Chuang <[email protected]>
> >>
> >> Set wiphy flag WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL, because
> mac80211
> >> actually supports it. With the flag set, driver can accept ROC
> >> event from wpa_supplicant or some other user space tools.
> >
> > This does not seem right. mac80211 does set this flag itself when the
> > driver provides remain_on_channel callback. Does that mean you already
> > have that callback? This patch is either wrong or unnecessary.
>
> Re-reading the commit message I guess it is ok to claim
> remain-on-channel support when using sw_scan. If this is true it seems
> better to extend the condition in ieee80211_alloc_hw_nm() for setting
> the flag.
>

It looks like we can set the flag in ieee80211_alloc_hw_nm(). Such as:
if (!use_chan_ctx || (use_chan_ctx && ops->remain_on_channel)).

Yan-Hsuan