Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1417358 > unrolled thread
| Started by | Prasun Maiti <prasunmaiti87@gmail.com> |
|---|---|
| First post | 2016-06-08 14:30 +0200 |
| Last post | 2016-06-08 17:10 +0200 |
| Articles | 16 — 5 participants |
Back to article view | Back to linux.kernel
[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
| From | Prasun Maiti <prasunmaiti87@gmail.com> |
|---|---|
| Date | 2016-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]
| From | "Valo, Kalle" <kvalo@qca.qualcomm.com> |
|---|---|
| Date | 2016-06-08 16:30 +0200 |
| Subject | Re: [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]
| From | Prasun Maiti <prasunmaiti87@gmail.com> |
|---|---|
| Date | 2016-06-08 16:40 +0200 |
| Subject | Re: [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]
| From | "Valo, Kalle" <kvalo@qca.qualcomm.com> |
|---|---|
| Date | 2016-06-08 16:50 +0200 |
| Subject | Re: [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]
| From | Prasun Maiti <prasunmaiti87@gmail.com> |
|---|---|
| Date | 2016-06-08 17:30 +0200 |
| Subject | Re: [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]
| From | "Valo, Kalle" <kvalo@qca.qualcomm.com> |
|---|---|
| Date | 2016-06-08 17:40 +0200 |
| Subject | Re: [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]
| From | Prasun Maiti <prasunmaiti87@gmail.com> |
|---|---|
| Date | 2016-06-08 17:50 +0200 |
| Subject | Re: [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]
| From | Ben Greear <greearb@candelatech.com> |
|---|---|
| Date | 2016-06-08 18:00 +0200 |
| Subject | Re: [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]
| From | Prasun Maiti <prasunmaiti87@gmail.com> |
|---|---|
| Date | 2016-06-08 18:00 +0200 |
| Subject | Re: [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]
| From | Ben Greear <greearb@candelatech.com> |
|---|---|
| Date | 2016-06-08 18:20 +0200 |
| Subject | Re: [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]
| From | Julian Calaby <julian.calaby@gmail.com> |
|---|---|
| Date | 2016-06-09 02:10 +0200 |
| Subject | Re: [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]
| From | Prasun Maiti <prasunmaiti87@gmail.com> |
|---|---|
| Date | 2016-06-09 07:10 +0200 |
| Subject | Re: [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]
| From | Prasun Maiti <prasunmaiti87@gmail.com> |
|---|---|
| Date | 2016-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]
| From | Johannes Berg <johannes@sipsolutions.net> |
|---|---|
| Date | 2016-06-09 08:50 +0200 |
| Subject | Re: [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]
| From | "Valo, Kalle" <kvalo@qca.qualcomm.com> |
|---|---|
| Date | 2016-06-09 09:10 +0200 |
| Subject | Re: [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]
| From | Prasun Maiti <prasunmaiti87@gmail.com> |
|---|---|
| Date | 2016-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