2016-05-03 13:03:51

by Jaap Jan Meijer

[permalink] [raw]
Subject: [PATCH] Fix regression in Android due to rework .get_station() callback

After f654d13 Android is not able to get station signal strength.
To much was removed, this patch brings back the needed functionality.

Signed-off-by: meijjaa <[email protected]>
---
drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c
index deb5f78..0275474 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c
@@ -2428,6 +2428,8 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,
{
struct brcmf_if *ifp = netdev_priv(ndev);
s32 err = 0;
+ struct brcmf_scb_val_le scb_val;
+ int rssi;
struct brcmf_sta_info_le sta_info_le;
u32 sta_flags;
u32 is_tdls_peer;
@@ -2506,6 +2508,21 @@ brcmf_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,
count_rssi++;
}
}
+ if (test_bit(BRCMF_VIF_STATUS_CONNECTED,
+ &ifp->vif->sme_state)) {
+ memset(&scb_val, 0, sizeof(scb_val));
+ err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_RSSI,
+ &scb_val, sizeof(scb_val));
+ if (err) {
+ brcmf_err("Could not get rssi (%d)\n", err);
+ goto done;
+ } else {
+ rssi = le32_to_cpu(scb_val.val);
+ sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
+ sinfo->signal = rssi;
+ brcmf_dbg(CONN, "RSSI %d dBm\n", rssi);
+ }
+ }
if (count_rssi) {
sinfo->filled |= BIT(NL80211_STA_INFO_CHAIN_SIGNAL);
sinfo->chains = count_rssi;
--
1.9.1



2016-05-09 14:17:55

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] Fix regression in Android due to rework .get_station() callback

Jaap Jan Meijer <[email protected]> writes:

> 2016-05-06 17:02 GMT+01:00 Kalle Valo <[email protected]>:
>> Jaap Jan Meijer <[email protected]> writes:
>>
>>> 2016-05-06 16:12 GMT+01:00 Kalle Valo <[email protected]>:
>>>> Jaap Jan Meijer <[email protected]> writes:
>>>>
>>>>> I'm not sure what went wrong with the commit hash, its actually this commit:
>>>>> 1f0dc59a6de93586fcfc04696a61946408ffc56a.
>>>>
>>>> That commit id looks to be valid.
>>>>
>>>>> I see you did this commit, maybe you can check if this actually is the root
>>>>> cause? I'm sure you have a lot more insight into this issue than I do.
>>
>> I just commited the patch. Broadcom folks (CCed) should be able to
>> answer better, most likely they missed this patch as the title didn't
>> have "brcmfmac".
>
> Thanks, so no need to send a revised patch? Also, could you please
> point me to the right repository so I can follow the progress?

Sorry, I had very bad choise of words. I meant that I only commit
patches (like the commit 1f0dc59a6d we are discussing here), I'm not
familiar with brcmfmac internals. So I have NOT applied this patch and
you need to send v2. I see that Arend also found some issues, please
follow his advice.

> Also, could you please point me to the right repository so I can
> follow the progress?

You can check that from MAINTAINERS file:

NETWORKING DRIVERS (WIRELESS)
M: Kalle Valo <[email protected]>
L: [email protected]
Q: http://patchwork.kernel.org/project/linux-wireless/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
S: Maintained
F: drivers/net/wireless/

But wireless-testing tree, maintained by Bob Copeland, is handy to
follow the status because it contains all the wireless trees:

https://git.kernel.org/cgit/linux/kernel/git/wireless/wireless-testing.git/

--
Kalle Valo

2016-05-08 11:20:24

by Jaap Jan Meijer

[permalink] [raw]
Subject: Re: [PATCH] Fix regression in Android due to rework .get_station() callback

2016-05-06 17:02 GMT+01:00 Kalle Valo <[email protected]>:
> Jaap Jan Meijer <[email protected]> writes:
>
>> 2016-05-06 16:12 GMT+01:00 Kalle Valo <[email protected]>:
>>> Jaap Jan Meijer <[email protected]> writes:
>>>
>>>> Hi Kalle,
>>>>
>>>> Op vr 6 mei 2016 12:52 schreef Kalle Valo <[email protected]>:
>>>>
>>>>
>>>> This has multiple issues:
>>>>
>>>> o Use your full name.
>>>> o Use prefix "brcmfmac: " in the title.
>>>>
>>>> o I can't find commit f654d13, is the commit id really correct?
>>>> o Also check from SubmittingPatches how you should reference commit ids.
>>>>
>>>>
>>>>
>>>> Thank you for the feedback, I will send a reworked patch as soon as I get home
>>>> next week. Also I did this against v4.4.8 so I'll have to rebase it as well.
>>>>
>>>> I'm not sure what went wrong with the commit hash, its actually this commit:
>>>> 1f0dc59a6de93586fcfc04696a61946408ffc56a.
>>>
>>> That commit id looks to be valid.
>>>
>>>> I see you did this commit, maybe you can check if this actually is the root
>>>> cause? I'm sure you have a lot more insight into this issue than I do.
>
> I just commited the patch. Broadcom folks (CCed) should be able to
> answer better, most likely they missed this patch as the title didn't
> have "brcmfmac".
>
> --
> Kalle Valo

Thanks, so no need to send a revised patch? Also, could you please
point me to the right repository so I can follow the progress?

2016-05-06 11:52:06

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] Fix regression in Android due to rework .get_station() callback

meijjaa <[email protected]> writes:

> After f654d13 Android is not able to get station signal strength.
> To much was removed, this patch brings back the needed functionality.
>
> Signed-off-by: meijjaa <[email protected]>

This has multiple issues:

o Use your full name.

o Use prefix "brcmfmac: " in the title.

o I can't find commit f654d13, is the commit id really correct?

o Also check from SubmittingPatches how you should reference commit ids.

--
Kalle Valo