Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1417358 > unrolled thread

[PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

Started byPrasun Maiti <prasunmaiti87@gmail.com>
First post2016-06-08 14:30 +0200
Last post2016-06-08 17:10 +0200
Articles 16 — 5 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns Prasun Maiti <prasunmaiti87@gmail.com> - 2016-06-08 14:30 +0200
    Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns "Valo, Kalle" <kvalo@qca.qualcomm.com> - 2016-06-08 16:30 +0200
      Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns Prasun Maiti <prasunmaiti87@gmail.com> - 2016-06-08 16:40 +0200
        Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns "Valo, Kalle" <kvalo@qca.qualcomm.com> - 2016-06-08 16:50 +0200
          Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns Prasun Maiti <prasunmaiti87@gmail.com> - 2016-06-08 17:30 +0200
            Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns "Valo, Kalle" <kvalo@qca.qualcomm.com> - 2016-06-08 17:40 +0200
              Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns Prasun Maiti <prasunmaiti87@gmail.com> - 2016-06-08 17:50 +0200
                Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns Ben Greear <greearb@candelatech.com> - 2016-06-08 18:00 +0200
                  Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns Prasun Maiti <prasunmaiti87@gmail.com> - 2016-06-08 18:00 +0200
                    Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns Ben Greear <greearb@candelatech.com> - 2016-06-08 18:20 +0200
            Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns Julian Calaby <julian.calaby@gmail.com> - 2016-06-09 02:10 +0200
              Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove  wireless core warns Prasun Maiti <prasunmaiti87@gmail.com> - 2016-06-09 07:10 +0200
              [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns Prasun Maiti <prasunmaiti87@gmail.com> - 2016-06-09 07:40 +0200
                Re: [PATCH] Add .set_antenna callback in ath6kl driver to fix  wireless core warns Johannes Berg <johannes@sipsolutions.net> - 2016-06-09 08:50 +0200
                Re: [PATCH] Add .set_antenna callback in ath6kl driver to fix  wireless core warns "Valo, Kalle" <kvalo@qca.qualcomm.com> - 2016-06-09 09:10 +0200
      [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns Prasun Maiti <prasunmaiti87@gmail.com> - 2016-06-08 17:10 +0200

#1417358 — [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

FromPrasun Maiti <prasunmaiti87@gmail.com>
Date2016-06-08 14:30 +0200
Subject[PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHKMq-8w1-27@gated-at.bofh.it>
Since add more warnings for inconsistent ops in cfg80211, the wireless
core warns if a driver implements a cfg80211 callback but doesn't
implements the inverse operation. The ath6kl driver implements a cfg80211
.get_antenna operation handler but doesn't have the inverse .set_antenna
callback. So, it makes warning.

To remove this warning, add .set_antenna callback in ath6kl driver and
also send a cmd to firmware with it's values.

Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>
---
 drivers/net/wireless/ath/ath6kl/cfg80211.c | 24 ++++++++++++++++++++++++
 drivers/net/wireless/ath/ath6kl/wmi.c      | 18 ++++++++++++++++++
 drivers/net/wireless/ath/ath6kl/wmi.h      |  6 ++++++
 3 files changed, 48 insertions(+)

diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index 4e11ba0..0d51228 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -3231,6 +3231,29 @@ static int ath6kl_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
 					wait, buf, len, no_cck);
 }
 
+static int ath6kl_set_antenna(struct wiphy *wiphy,
+				u32 tx_ant, u32 rx_ant)
+{
+	struct ath6kl *ar = wiphy_priv(wiphy);
+	struct ath6kl_vif *vif = NULL;
+
+	vif = ath6kl_vif_first(ar);
+	if (!vif)
+		return -EIO;
+
+	if (!ath6kl_cfg80211_ready(vif))
+		return -EIO;
+
+	if (!tx_ant || !rx_ant)
+		return -EINVAL;
+
+	ar->hw.tx_ant = tx_ant;
+	ar->hw.rx_ant = rx_ant;
+
+	return ath6kl_wmi_set_antenna(ar->wmi, vif->fw_vif_idx,
+			tx_ant, rx_ant);
+}
+
 static int ath6kl_get_antenna(struct wiphy *wiphy,
 			      u32 *tx_ant, u32 *rx_ant)
 {
@@ -3456,6 +3479,7 @@ static struct cfg80211_ops ath6kl_cfg80211_ops = {
 	.cancel_remain_on_channel = ath6kl_cancel_remain_on_channel,
 	.mgmt_tx = ath6kl_mgmt_tx,
 	.mgmt_frame_register = ath6kl_mgmt_frame_register,
+	.set_antenna = ath6kl_set_antenna,
 	.get_antenna = ath6kl_get_antenna,
 	.sched_scan_start = ath6kl_cfg80211_sscan_start,
 	.sched_scan_stop = ath6kl_cfg80211_sscan_stop,
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.c b/drivers/net/wireless/ath/ath6kl/wmi.c
index 631c3a0..300ccc6 100644
--- a/drivers/net/wireless/ath/ath6kl/wmi.c
+++ b/drivers/net/wireless/ath/ath6kl/wmi.c
@@ -1605,6 +1605,24 @@ static int ath6kl_wmi_txe_notify_event_rx(struct wmi *wmi, u8 *datap, int len,
 	return 0;
 }
 
+int ath6kl_wmi_set_antenna(struct wmi *wmi, u8 idx,
+			      u32 tx_ant, u32 rx_ant)
+{
+	struct sk_buff *skb;
+	struct wmi_txe_notify_cmd *cmd;
+
+	skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
+	if (!skb)
+		return -ENOMEM;
+
+	cmd = (struct wmi_set_antenna_cmd *) skb->data;
+	cmd->tx_ant = cpu_to_le32(tx_ant);
+	cmd->rx_ant = cpu_to_le32(rx_ant);
+
+	return ath6kl_wmi_cmd_send(wmi, idx, skb, WMI_SET_ANTENNA_CMDID,
+			NO_SYNC_WMIFLAG);
+}
+
 int ath6kl_wmi_set_txe_notify(struct wmi *wmi, u8 idx,
 			      u32 rate, u32 pkts, u32 intvl)
 {
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.h b/drivers/net/wireless/ath/ath6kl/wmi.h
index 3af464a..f2e65b3 100644
--- a/drivers/net/wireless/ath/ath6kl/wmi.h
+++ b/drivers/net/wireless/ath/ath6kl/wmi.h
@@ -642,6 +642,7 @@ enum wmi_cmd_id {
 	WMI_SET_RECOVERY_TEST_PARAMETER_CMDID, /*0xf094*/
 
 	WMI_ENABLE_SCHED_SCAN_CMDID,
+	WMI_SET_ANTENNA_CMDID,
 };
 
 enum wmi_mgmt_frame_type {
@@ -2312,6 +2313,11 @@ struct wmi_ap_set_apsd_cmd {
 	u8 enable;
 } __packed;
 
+struct wmi_set_antenna_cmd {
+	__le32 tx_ant;
+	__le32 rx_ant;
+} __packed;
+
 enum wmi_ap_apsd_buffered_traffic_flags {
 	WMI_AP_APSD_NO_DELIVERY_FRAMES =  0x1,
 };
-- 
1.9.1

[toc] | [next] | [standalone]


#1417522 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

From"Valo, Kalle" <kvalo@qca.qualcomm.com>
Date2016-06-08 16:30 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHMEz-1il-57@gated-at.bofh.it>
In reply to#1417358
Prasun Maiti <prasunmaiti87@gmail.com> writes:

> Since add more warnings for inconsistent ops in cfg80211, the wireless
> core warns if a driver implements a cfg80211 callback but doesn't
> implements the inverse operation. The ath6kl driver implements a cfg80211
> .get_antenna operation handler but doesn't have the inverse .set_antenna
> callback. So, it makes warning.
>
> To remove this warning, add .set_antenna callback in ath6kl driver and
> also send a cmd to firmware with it's values.
>
> Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>

Did you test this? What hardware and firmware version?

-- 
Kalle Valo

[toc] | [prev] | [next] | [standalone]


#1417526 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

FromPrasun Maiti <prasunmaiti87@gmail.com>
Date2016-06-08 16:40 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHMOe-1mm-19@gated-at.bofh.it>
In reply to#1417522
No. I did not any test for that case.
This driver create a new wiphy for use with cfg80211 through
"wiphy_new_nm" api, but in this api, I found that more warnings for
inconsistent ops are added there. e.g; "WARN_ON(ops->set_antenna &&
!ops->get_antenna);"
So, warning comes during creation of a new wiphy. That's why It is needed.

On Wed, Jun 8, 2016 at 7:53 PM, Valo, Kalle <kvalo@qca.qualcomm.com> wrote:
> Prasun Maiti <prasunmaiti87@gmail.com> writes:
>
>> Since add more warnings for inconsistent ops in cfg80211, the wireless
>> core warns if a driver implements a cfg80211 callback but doesn't
>> implements the inverse operation. The ath6kl driver implements a cfg80211
>> .get_antenna operation handler but doesn't have the inverse .set_antenna
>> callback. So, it makes warning.
>>
>> To remove this warning, add .set_antenna callback in ath6kl driver and
>> also send a cmd to firmware with it's values.
>>
>> Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>
>
> Did you test this? What hardware and firmware version?
>
> --
> Kalle Valo



-- 
Thanks,
Prasun

[toc] | [prev] | [next] | [standalone]


#1417541 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

From"Valo, Kalle" <kvalo@qca.qualcomm.com>
Date2016-06-08 16:50 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHMXT-1pV-13@gated-at.bofh.it>
In reply to#1417526
Prasun Maiti <prasunmaiti87@gmail.com> writes:

> No. I did not any test for that case.
> This driver create a new wiphy for use with cfg80211 through
> "wiphy_new_nm" api, but in this api, I found that more warnings for
> inconsistent ops are added there. e.g; "WARN_ON(ops->set_antenna &&
> !ops->get_antenna);"
> So, warning comes during creation of a new wiphy. That's why It is needed.

I'm confused. Are you really saying that you added a new firmware
command (WMI_SET_ANTENNA_CMDID) to ath6kl but you didn't test it in any
way? How do you know that it works then?

-- 
Kalle Valo

[toc] | [prev] | [next] | [standalone]


#1417577 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

FromPrasun Maiti <prasunmaiti87@gmail.com>
Date2016-06-08 17:30 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHNAB-1Ti-17@gated-at.bofh.it>
In reply to#1417541
I am not sure it works fine. Like ath6kl driver send another cmd to
firmare, I have just filled up the cmd buffer with "tx_ant", and
"rx_ant" values, then use "ath6kl_wmi_cmd_send()" api to send the cmd
buffer to firmware.
I have resend the patch as there are some errors in the previous patch.
Let me know if any modifications are needed?


On Wed, Jun 8, 2016 at 8:16 PM, Valo, Kalle <kvalo@qca.qualcomm.com> wrote:
> Prasun Maiti <prasunmaiti87@gmail.com> writes:
>
>> No. I did not any test for that case.
>> This driver create a new wiphy for use with cfg80211 through
>> "wiphy_new_nm" api, but in this api, I found that more warnings for
>> inconsistent ops are added there. e.g; "WARN_ON(ops->set_antenna &&
>> !ops->get_antenna);"
>> So, warning comes during creation of a new wiphy. That's why It is needed.
>
> I'm confused. Are you really saying that you added a new firmware
> command (WMI_SET_ANTENNA_CMDID) to ath6kl but you didn't test it in any
> way? How do you know that it works then?
>
> --
> Kalle Valo



-- 
Thanks,
Prasun

[toc] | [prev] | [next] | [standalone]


#1417590 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

From"Valo, Kalle" <kvalo@qca.qualcomm.com>
Date2016-06-08 17:40 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHNKi-1Yh-33@gated-at.bofh.it>
In reply to#1417577
Prasun Maiti <prasunmaiti87@gmail.com> writes:

> I am not sure it works fine. Like ath6kl driver send another cmd to
> firmare, I have just filled up the cmd buffer with "tx_ant", and
> "rx_ant" values, then use "ath6kl_wmi_cmd_send()" api to send the cmd
> buffer to firmware. I have resend the patch as there are some errors
> in the previous patch. Let me know if any modifications are needed?

I don't take untested code. In some special cases it might be ok to send
untested code but even then it needs to be clearly stated in the commit
log that it's untested.

Please resend once you have tested this, I'm dropping this now.

-- 
Kalle Valo

[toc] | [prev] | [next] | [standalone]


#1417604 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

FromPrasun Maiti <prasunmaiti87@gmail.com>
Date2016-06-08 17:50 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHNTY-21z-31@gated-at.bofh.it>
In reply to#1417590
Please tell me if I mention that this code is untested in commit log,
then could you check the code kindly and also help me to fix this type
of warning?

On Wed, Jun 8, 2016 at 9:00 PM, Valo, Kalle <kvalo@qca.qualcomm.com> wrote:
> Prasun Maiti <prasunmaiti87@gmail.com> writes:
>
>> I am not sure it works fine. Like ath6kl driver send another cmd to
>> firmare, I have just filled up the cmd buffer with "tx_ant", and
>> "rx_ant" values, then use "ath6kl_wmi_cmd_send()" api to send the cmd
>> buffer to firmware. I have resend the patch as there are some errors
>> in the previous patch. Let me know if any modifications are needed?
>
> I don't take untested code. In some special cases it might be ok to send
> untested code but even then it needs to be clearly stated in the commit
> log that it's untested.
>
> Please resend once you have tested this, I'm dropping this now.
>
> --
> Kalle Valo



-- 
Thanks,
Prasun

[toc] | [prev] | [next] | [standalone]


#1417611 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

FromBen Greear <greearb@candelatech.com>
Date2016-06-08 18:00 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHO3J-24Z-17@gated-at.bofh.it>
In reply to#1417604
On 06/08/2016 08:46 AM, Prasun Maiti wrote:
> Please tell me if I mention that this code is untested in commit log,
> then could you check the code kindly and also help me to fix this type
> of warning?

In my experience, ath6kl has very fragile and buggy firmware, so I would
not add any new API to it unless you have tested this thoroughly.

Thanks,
Ben

>
> On Wed, Jun 8, 2016 at 9:00 PM, Valo, Kalle <kvalo@qca.qualcomm.com> wrote:
>> Prasun Maiti <prasunmaiti87@gmail.com> writes:
>>
>>> I am not sure it works fine. Like ath6kl driver send another cmd to
>>> firmare, I have just filled up the cmd buffer with "tx_ant", and
>>> "rx_ant" values, then use "ath6kl_wmi_cmd_send()" api to send the cmd
>>> buffer to firmware. I have resend the patch as there are some errors
>>> in the previous patch. Let me know if any modifications are needed?
>>
>> I don't take untested code. In some special cases it might be ok to send
>> untested code but even then it needs to be clearly stated in the commit
>> log that it's untested.
>>
>> Please resend once you have tested this, I'm dropping this now.
>>
>> --
>> Kalle Valo
>
>
>


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com

[toc] | [prev] | [next] | [standalone]


#1417614 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

FromPrasun Maiti <prasunmaiti87@gmail.com>
Date2016-06-08 18:00 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHO3J-24Z-23@gated-at.bofh.it>
In reply to#1417611
Please help me how to test this one?? It will be great to me if you help me.

On Wed, Jun 8, 2016 at 9:21 PM, Ben Greear <greearb@candelatech.com> wrote:
> On 06/08/2016 08:46 AM, Prasun Maiti wrote:
>>
>> Please tell me if I mention that this code is untested in commit log,
>> then could you check the code kindly and also help me to fix this type
>> of warning?
>
>
> In my experience, ath6kl has very fragile and buggy firmware, so I would
> not add any new API to it unless you have tested this thoroughly.
>
> Thanks,
> Ben
>
>>
>> On Wed, Jun 8, 2016 at 9:00 PM, Valo, Kalle <kvalo@qca.qualcomm.com>
>> wrote:
>>>
>>> Prasun Maiti <prasunmaiti87@gmail.com> writes:
>>>
>>>> I am not sure it works fine. Like ath6kl driver send another cmd to
>>>> firmare, I have just filled up the cmd buffer with "tx_ant", and
>>>> "rx_ant" values, then use "ath6kl_wmi_cmd_send()" api to send the cmd
>>>> buffer to firmware. I have resend the patch as there are some errors
>>>> in the previous patch. Let me know if any modifications are needed?
>>>
>>>
>>> I don't take untested code. In some special cases it might be ok to send
>>> untested code but even then it needs to be clearly stated in the commit
>>> log that it's untested.
>>>
>>> Please resend once you have tested this, I'm dropping this now.
>>>
>>> --
>>> Kalle Valo
>>
>>
>>
>>
>
>
> --
> Ben Greear <greearb@candelatech.com>
> Candela Technologies Inc  http://www.candelatech.com
>



-- 
Thanks,
Prasun

[toc] | [prev] | [next] | [standalone]


#1417639 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

FromBen Greear <greearb@candelatech.com>
Date2016-06-08 18:20 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHOmZ-2r3-9@gated-at.bofh.it>
In reply to#1417614
On 06/08/2016 08:56 AM, Prasun Maiti wrote:
> Please help me how to test this one?? It will be great to me if you help me.

I do not have time or interest, sorry.  You basically need access to
firmware source to do any useful development on this driver in my opinion,
and I do not have access to that source.

Why are you so concerned about the warning anyway?

Thanks,
Ben

>
> On Wed, Jun 8, 2016 at 9:21 PM, Ben Greear <greearb@candelatech.com> wrote:
>> On 06/08/2016 08:46 AM, Prasun Maiti wrote:
>>>
>>> Please tell me if I mention that this code is untested in commit log,
>>> then could you check the code kindly and also help me to fix this type
>>> of warning?
>>
>>
>> In my experience, ath6kl has very fragile and buggy firmware, so I would
>> not add any new API to it unless you have tested this thoroughly.
>>
>> Thanks,
>> Ben
>>
>>>
>>> On Wed, Jun 8, 2016 at 9:00 PM, Valo, Kalle <kvalo@qca.qualcomm.com>
>>> wrote:
>>>>
>>>> Prasun Maiti <prasunmaiti87@gmail.com> writes:
>>>>
>>>>> I am not sure it works fine. Like ath6kl driver send another cmd to
>>>>> firmare, I have just filled up the cmd buffer with "tx_ant", and
>>>>> "rx_ant" values, then use "ath6kl_wmi_cmd_send()" api to send the cmd
>>>>> buffer to firmware. I have resend the patch as there are some errors
>>>>> in the previous patch. Let me know if any modifications are needed?
>>>>
>>>>
>>>> I don't take untested code. In some special cases it might be ok to send
>>>> untested code but even then it needs to be clearly stated in the commit
>>>> log that it's untested.
>>>>
>>>> Please resend once you have tested this, I'm dropping this now.
>>>>
>>>> --
>>>> Kalle Valo
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Ben Greear <greearb@candelatech.com>
>> Candela Technologies Inc  http://www.candelatech.com
>>
>
>
>


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com

[toc] | [prev] | [next] | [standalone]


#1417965 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

FromJulian Calaby <julian.calaby@gmail.com>
Date2016-06-09 02:10 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rHVHP-78L-1@gated-at.bofh.it>
In reply to#1417577
Hi Prasun,

On Thu, Jun 9, 2016 at 1:20 AM, Prasun Maiti <prasunmaiti87@gmail.com> wrote:
> I am not sure it works fine. Like ath6kl driver send another cmd to
> firmare, I have just filled up the cmd buffer with "tx_ant", and
> "rx_ant" values, then use "ath6kl_wmi_cmd_send()" api to send the cmd
> buffer to firmware.
> I have resend the patch as there are some errors in the previous patch.
> Let me know if any modifications are needed?

Let me ask the question in another way: how do you know that the
command WMI_SET_ANTENNA_CMDID exists, has that number, takes arguments
in that format and works?

Thanks,

Julian Calaby


> On Wed, Jun 8, 2016 at 8:16 PM, Valo, Kalle <kvalo@qca.qualcomm.com> wrote:
>> Prasun Maiti <prasunmaiti87@gmail.com> writes:
>>
>>> No. I did not any test for that case.
>>> This driver create a new wiphy for use with cfg80211 through
>>> "wiphy_new_nm" api, but in this api, I found that more warnings for
>>> inconsistent ops are added there. e.g; "WARN_ON(ops->set_antenna &&
>>> !ops->get_antenna);"
>>> So, warning comes during creation of a new wiphy. That's why It is needed.
>>
>> I'm confused. Are you really saying that you added a new firmware
>> command (WMI_SET_ANTENNA_CMDID) to ath6kl but you didn't test it in any
>> way? How do you know that it works then?
>>
>> --
>> Kalle Valo
>
>
>
> --
> Thanks,
> Prasun
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/

[toc] | [prev] | [next] | [standalone]


#1418073 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns

FromPrasun Maiti <prasunmaiti87@gmail.com>
Date2016-06-09 07:10 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
Message-ID<rI0o9-1PH-17@gated-at.bofh.it>
In reply to#1417965
Hello Julian,

It was an assumption on my part that the firmware supports a SET
function. I realize it was premature to do so. I am sending another
patch to convert the ath6kl_set_antenna() to a NO-OP. This will take
care of the kernel warning, but would not fire any commands to
firmware. I hope this solution is acceptable.

Thanks,
Prasun

On Thu, Jun 9, 2016 at 5:35 AM, Julian Calaby <julian.calaby@gmail.com> wrote:
> Hi Prasun,
>
> On Thu, Jun 9, 2016 at 1:20 AM, Prasun Maiti <prasunmaiti87@gmail.com> wrote:
>> I am not sure it works fine. Like ath6kl driver send another cmd to
>> firmare, I have just filled up the cmd buffer with "tx_ant", and
>> "rx_ant" values, then use "ath6kl_wmi_cmd_send()" api to send the cmd
>> buffer to firmware.
>> I have resend the patch as there are some errors in the previous patch.
>> Let me know if any modifications are needed?
>
> Let me ask the question in another way: how do you know that the
> command WMI_SET_ANTENNA_CMDID exists, has that number, takes arguments
> in that format and works?
>
> Thanks,
>
> Julian Calaby
>
>
>> On Wed, Jun 8, 2016 at 8:16 PM, Valo, Kalle <kvalo@qca.qualcomm.com> wrote:
>>> Prasun Maiti <prasunmaiti87@gmail.com> writes:
>>>
>>>> No. I did not any test for that case.
>>>> This driver create a new wiphy for use with cfg80211 through
>>>> "wiphy_new_nm" api, but in this api, I found that more warnings for
>>>> inconsistent ops are added there. e.g; "WARN_ON(ops->set_antenna &&
>>>> !ops->get_antenna);"
>>>> So, warning comes during creation of a new wiphy. That's why It is needed.
>>>
>>> I'm confused. Are you really saying that you added a new firmware
>>> command (WMI_SET_ANTENNA_CMDID) to ath6kl but you didn't test it in any
>>> way? How do you know that it works then?
>>>
>>> --
>>> Kalle Valo
>>
>>
>>
>> --
>> Thanks,
>> Prasun
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
>
> --
> Julian Calaby
>
> Email: julian.calaby@gmail.com
> Profile: http://www.google.com/profiles/julian.calaby/



-- 
Thanks,
Prasun

[toc] | [prev] | [next] | [standalone]


#1418093 — [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns

FromPrasun Maiti <prasunmaiti87@gmail.com>
Date2016-06-09 07:40 +0200
Subject[PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns
Message-ID<rI0Rc-22f-13@gated-at.bofh.it>
In reply to#1417965
Since add more warnings for inconsistent ops in cfg80211, the wireless
core warns if a driver implements a cfg80211 callback but doesn't
implements the inverse operation. The ath6kl driver implements a cfg80211
.get_antenna operation handler but doesn't have the inverse .set_antenna
callback. So, it makes warning.

To remove this warning, add .set_antenna callback in ath6kl driver which
is unimplemented.

Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>
---
 drivers/net/wireless/ath/ath6kl/cfg80211.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index 4e11ba0..e638296 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -3231,6 +3231,16 @@ static int ath6kl_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
 					wait, buf, len, no_cck);
 }
 
+static int ath6kl_set_antenna(struct wiphy *wiphy,
+				u32 tx_ant, u32 rx_ant)
+{
+	/*
+	 * Note: This callback should be implement when firmware support this
+	 * command.
+	 */
+	return 0;
+}
+
 static int ath6kl_get_antenna(struct wiphy *wiphy,
 			      u32 *tx_ant, u32 *rx_ant)
 {
@@ -3456,6 +3466,7 @@ static struct cfg80211_ops ath6kl_cfg80211_ops = {
 	.cancel_remain_on_channel = ath6kl_cancel_remain_on_channel,
 	.mgmt_tx = ath6kl_mgmt_tx,
 	.mgmt_frame_register = ath6kl_mgmt_frame_register,
+	.set_antenna = ath6kl_set_antenna,
 	.get_antenna = ath6kl_get_antenna,
 	.sched_scan_start = ath6kl_cfg80211_sscan_start,
 	.sched_scan_stop = ath6kl_cfg80211_sscan_stop,
-- 
1.9.1

[toc] | [prev] | [next] | [standalone]


#1418105 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns

FromJohannes Berg <johannes@sipsolutions.net>
Date2016-06-09 08:50 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns
Message-ID<rI1WW-2L4-9@gated-at.bofh.it>
In reply to#1418093
On Thu, 2016-06-09 at 11:06 +0530, Prasun Maiti wrote:
> Since add more warnings for inconsistent ops in cfg80211, the
> wireless
> core warns if a driver implements a cfg80211 callback but doesn't
> implements the inverse operation. The ath6kl driver implements a
> cfg80211
> .get_antenna operation handler but doesn't have the inverse
> .set_antenna
> callback. So, it makes warning.
> 
> To remove this warning, add .set_antenna callback in ath6kl driver
> which
> is unimplemented.
> 
> Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>
> ---
>  drivers/net/wireless/ath/ath6kl/cfg80211.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c
> b/drivers/net/wireless/ath/ath6kl/cfg80211.c
> index 4e11ba0..e638296 100644
> --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
> +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
> @@ -3231,6 +3231,16 @@ static int ath6kl_mgmt_tx(struct wiphy *wiphy,
> struct wireless_dev *wdev,
>  					wait, buf, len, no_cck);
>  }
>  
> +static int ath6kl_set_antenna(struct wiphy *wiphy,
> +				u32 tx_ant, u32 rx_ant)
> +{
> +	/*
> +	 * Note: This callback should be implement when firmware
> support this
> +	 * command.
> +	 */
> +	return 0;
> +}
> 
Seriously, this makes no sense at all. Just submit a patch to remove
the warning.

johannes

[toc] | [prev] | [next] | [standalone]


#1418113 — Re: [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns

From"Valo, Kalle" <kvalo@qca.qualcomm.com>
Date2016-06-09 09:10 +0200
SubjectRe: [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns
Message-ID<rI2gh-36K-1@gated-at.bofh.it>
In reply to#1418093
Prasun Maiti <prasunmaiti87@gmail.com> writes:

> Since add more warnings for inconsistent ops in cfg80211, the wireless
> core warns if a driver implements a cfg80211 callback but doesn't
> implements the inverse operation. The ath6kl driver implements a cfg80211
> .get_antenna operation handler but doesn't have the inverse .set_antenna
> callback. So, it makes warning.
>
> To remove this warning, add .set_antenna callback in ath6kl driver which
> is unimplemented.
>
> Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>

[...]

> --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
> +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
> @@ -3231,6 +3231,16 @@ static int ath6kl_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
>  					wait, buf, len, no_cck);
>  }
>  
> +static int ath6kl_set_antenna(struct wiphy *wiphy,
> +				u32 tx_ant, u32 rx_ant)
> +{
> +	/*
> +	 * Note: This callback should be implement when firmware support this
> +	 * command.
> +	 */
> +	return 0;
> +}
> +
>  static int ath6kl_get_antenna(struct wiphy *wiphy,
>  			      u32 *tx_ant, u32 *rx_ant)
>  {
> @@ -3456,6 +3466,7 @@ static struct cfg80211_ops ath6kl_cfg80211_ops = {
>  	.cancel_remain_on_channel = ath6kl_cancel_remain_on_channel,
>  	.mgmt_tx = ath6kl_mgmt_tx,
>  	.mgmt_frame_register = ath6kl_mgmt_frame_register,
> +	.set_antenna = ath6kl_set_antenna,

Now we are claiming that ath6kl supports set antenna command but it
actually doesn't do anything, I don't like that. I would rather look at
why cfg80211 issues the warning and is it really necessary.

-- 
Kalle Valo

[toc] | [prev] | [next] | [standalone]


#1417555 — [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns

FromPrasun Maiti <prasunmaiti87@gmail.com>
Date2016-06-08 17:10 +0200
Subject[PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns
Message-ID<rHNhf-1Mf-1@gated-at.bofh.it>
In reply to#1417522
Since add more warnings for inconsistent ops in cfg80211, the wireless
core warns if a driver implements a cfg80211 callback but doesn't
implements the inverse operation. The ath6kl driver implements a cfg80211
.get_antenna operation handler but doesn't have the inverse .set_antenna
callback. So, it makes warning.

To remove this warning, add .set_antenna callback in ath6kl driver and
also send a cmd to firmware with it's values.

Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>
---
 drivers/net/wireless/ath/ath6kl/cfg80211.c | 24 ++++++++++++++++++++++++
 drivers/net/wireless/ath/ath6kl/wmi.c      | 18 ++++++++++++++++++
 drivers/net/wireless/ath/ath6kl/wmi.h      |  6 ++++++
 3 files changed, 48 insertions(+)

diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index 4e11ba0..0d51228 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -3231,6 +3231,29 @@ static int ath6kl_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
 					wait, buf, len, no_cck);
 }
 
+static int ath6kl_set_antenna(struct wiphy *wiphy,
+				u32 tx_ant, u32 rx_ant)
+{
+	struct ath6kl *ar = wiphy_priv(wiphy);
+	struct ath6kl_vif *vif = NULL;
+
+	vif = ath6kl_vif_first(ar);
+	if (!vif)
+		return -EIO;
+
+	if (!ath6kl_cfg80211_ready(vif))
+		return -EIO;
+
+	if (!tx_ant || !rx_ant)
+		return -EINVAL;
+
+	ar->hw.tx_ant = tx_ant;
+	ar->hw.rx_ant = rx_ant;
+
+	return ath6kl_wmi_set_antenna(ar->wmi, vif->fw_vif_idx,
+			tx_ant, rx_ant);
+}
+
 static int ath6kl_get_antenna(struct wiphy *wiphy,
 			      u32 *tx_ant, u32 *rx_ant)
 {
@@ -3456,6 +3479,7 @@ static struct cfg80211_ops ath6kl_cfg80211_ops = {
 	.cancel_remain_on_channel = ath6kl_cancel_remain_on_channel,
 	.mgmt_tx = ath6kl_mgmt_tx,
 	.mgmt_frame_register = ath6kl_mgmt_frame_register,
+	.set_antenna = ath6kl_set_antenna,
 	.get_antenna = ath6kl_get_antenna,
 	.sched_scan_start = ath6kl_cfg80211_sscan_start,
 	.sched_scan_stop = ath6kl_cfg80211_sscan_stop,
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.c b/drivers/net/wireless/ath/ath6kl/wmi.c
index 631c3a0..3a7b5e9 100644
--- a/drivers/net/wireless/ath/ath6kl/wmi.c
+++ b/drivers/net/wireless/ath/ath6kl/wmi.c
@@ -1605,6 +1605,24 @@ static int ath6kl_wmi_txe_notify_event_rx(struct wmi *wmi, u8 *datap, int len,
 	return 0;
 }
 
+int ath6kl_wmi_set_antenna(struct wmi *wmi, u8 idx,
+			      u32 tx_ant, u32 rx_ant)
+{
+	struct sk_buff *skb;
+	struct wmi_set_antenna_cmd *cmd;
+
+	skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
+	if (!skb)
+		return -ENOMEM;
+
+	cmd = (struct wmi_set_antenna_cmd *) skb->data;
+	cmd->tx_ant = cpu_to_le32(tx_ant);
+	cmd->rx_ant = cpu_to_le32(rx_ant);
+
+	return ath6kl_wmi_cmd_send(wmi, idx, skb, WMI_SET_ANTENNA_CMDID,
+			NO_SYNC_WMIFLAG);
+}
+
 int ath6kl_wmi_set_txe_notify(struct wmi *wmi, u8 idx,
 			      u32 rate, u32 pkts, u32 intvl)
 {
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.h b/drivers/net/wireless/ath/ath6kl/wmi.h
index 3af464a..f2e65b3 100644
--- a/drivers/net/wireless/ath/ath6kl/wmi.h
+++ b/drivers/net/wireless/ath/ath6kl/wmi.h
@@ -642,6 +642,7 @@ enum wmi_cmd_id {
 	WMI_SET_RECOVERY_TEST_PARAMETER_CMDID, /*0xf094*/
 
 	WMI_ENABLE_SCHED_SCAN_CMDID,
+	WMI_SET_ANTENNA_CMDID,
 };
 
 enum wmi_mgmt_frame_type {
@@ -2312,6 +2313,11 @@ struct wmi_ap_set_apsd_cmd {
 	u8 enable;
 } __packed;
 
+struct wmi_set_antenna_cmd {
+	__le32 tx_ant;
+	__le32 rx_ant;
+} __packed;
+
 enum wmi_ap_apsd_buffered_traffic_flags {
 	WMI_AP_APSD_NO_DELIVERY_FRAMES =  0x1,
 };
-- 
1.9.1

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web