* [PATCH V2] ath10k: fix incorrect txpower set by P2P_DEVICE interface
@ 2016-12-13 22:55 ryanhsu
2016-12-30 9:13 ` [V2] " Kalle Valo
0 siblings, 1 reply; 2+ messages in thread
From: ryanhsu @ 2016-12-13 22:55 UTC (permalink / raw)
To: ath10k, linux-wireless; +Cc: ryanhsu
From: Ryan Hsu <ryanhsu@qca.qualcomm.com>
Ath10k reports the phy capability that supports P2P_DEVICE interface.
When we use the P2P supported wpa_supplicant to start connection, it'll
create two interfaces, one is wlan0 (vdev_id=0) and one is P2P_DEVICE
p2p-dev-wlan0 which is for p2p control channel (vdev_id=1).
ath10k_pci mac vdev create 0 (add interface) type 2 subtype 0
ath10k_add_interface: vdev_id: 0, txpower: 0, bss_power: 0
...
ath10k_pci mac vdev create 1 (add interface) type 2 subtype 1
ath10k_add_interface: vdev_id: 1, txpower: 0, bss_power: 0
And the txpower in per vif bss_conf will only be set to valid tx power when
the interface is assigned with channel_ctx.
But this P2P_DEVICE interface will never be used for any connection, so
that the uninitialized bss_conf.txpower=0 is assinged to the
arvif->txpower when interface created.
Since the txpower configuration is firmware per physical interface.
So the smallest txpower of all vifs will be the one limit the tx power
of the physical device, that causing the low txpower issue on other
active interfaces.
wlan0: Limiting TX power to 21 (24 - 3) dBm
ath10k_pci mac vdev_id 0 txpower 21
ath10k_mac_txpower_recalc: vdev_id: 1, txpower: 0
ath10k_mac_txpower_recalc: vdev_id: 0, txpower: 21
ath10k_pci mac txpower 0
This issue only happens when we use the wpa_supplicant that supports
P2P or if we use the iw tool to create the control P2P_DEVICE interface.
Signed-off-by: Ryan Hsu <ryanhsu@qca.qualcomm.com>
---
drivers/net/wireless/ath/ath10k/mac.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index fe42bf5..6e1550b 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -4671,7 +4671,8 @@ static int ath10k_mac_txpower_recalc(struct ath10k *ar)
lockdep_assert_held(&ar->conf_mutex);
list_for_each_entry(arvif, &ar->arvifs, list) {
- WARN_ON(arvif->txpower < 0);
+ if (arvif->txpower <= 0)
+ continue;
if (txpower == -1)
txpower = arvif->txpower;
@@ -4679,8 +4680,8 @@ static int ath10k_mac_txpower_recalc(struct ath10k *ar)
txpower = min(txpower, arvif->txpower);
}
- if (WARN_ON(txpower == -1))
- return -EINVAL;
+ if (txpower == -1)
+ return 0;
ret = ath10k_mac_txpower_setup(ar, txpower);
if (ret) {
--
1.9.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [V2] ath10k: fix incorrect txpower set by P2P_DEVICE interface
2016-12-13 22:55 [PATCH V2] ath10k: fix incorrect txpower set by P2P_DEVICE interface ryanhsu
@ 2016-12-30 9:13 ` Kalle Valo
0 siblings, 0 replies; 2+ messages in thread
From: Kalle Valo @ 2016-12-30 9:13 UTC (permalink / raw)
To: Ryan Hsu; +Cc: ath10k, linux-wireless, ryanhsu
Ryan Hsu <ryanhsu@qca.qualcomm.com> wrote:
> From: Ryan Hsu <ryanhsu@qca.qualcomm.com>
>
> Ath10k reports the phy capability that supports P2P_DEVICE interface.
>
> When we use the P2P supported wpa_supplicant to start connection, it'll
> create two interfaces, one is wlan0 (vdev_id=0) and one is P2P_DEVICE
> p2p-dev-wlan0 which is for p2p control channel (vdev_id=1).
>
> ath10k_pci mac vdev create 0 (add interface) type 2 subtype 0
> ath10k_add_interface: vdev_id: 0, txpower: 0, bss_power: 0
> ...
> ath10k_pci mac vdev create 1 (add interface) type 2 subtype 1
> ath10k_add_interface: vdev_id: 1, txpower: 0, bss_power: 0
>
> And the txpower in per vif bss_conf will only be set to valid tx power when
> the interface is assigned with channel_ctx.
>
> But this P2P_DEVICE interface will never be used for any connection, so
> that the uninitialized bss_conf.txpower=0 is assinged to the
> arvif->txpower when interface created.
>
> Since the txpower configuration is firmware per physical interface.
> So the smallest txpower of all vifs will be the one limit the tx power
> of the physical device, that causing the low txpower issue on other
> active interfaces.
>
> wlan0: Limiting TX power to 21 (24 - 3) dBm
> ath10k_pci mac vdev_id 0 txpower 21
> ath10k_mac_txpower_recalc: vdev_id: 1, txpower: 0
> ath10k_mac_txpower_recalc: vdev_id: 0, txpower: 21
> ath10k_pci mac txpower 0
>
> This issue only happens when we use the wpa_supplicant that supports
> P2P or if we use the iw tool to create the control P2P_DEVICE interface.
>
> Signed-off-by: Ryan Hsu <ryanhsu@qca.qualcomm.com>
Patch applied to ath-next branch of ath.git, thanks.
88407beb1b14 ath10k: fix incorrect txpower set by P2P_DEVICE interface
--
https://patchwork.kernel.org/patch/9473309/
Documentation about submitting wireless patches and checking status
from patchwork:
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-12-30 9:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-13 22:55 [PATCH V2] ath10k: fix incorrect txpower set by P2P_DEVICE interface ryanhsu
2016-12-30 9:13 ` [V2] " Kalle Valo
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).