* [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
@ 2016-06-08 12:21 Prasun Maiti
2016-06-08 14:21 ` kbuild test robot
` (3 more replies)
0 siblings, 4 replies; 21+ messages in thread
From: Prasun Maiti @ 2016-06-08 12:21 UTC (permalink / raw)
To: Linux Kernel, Kalle Valo; +Cc: ath6kl, Linux Next, Linux Wireless, Linux Kernel
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
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 12:21 [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns Prasun Maiti
@ 2016-06-08 14:21 ` kbuild test robot
2016-06-08 14:23 ` Valo, Kalle
` (2 subsequent siblings)
3 siblings, 0 replies; 21+ messages in thread
From: kbuild test robot @ 2016-06-08 14:21 UTC (permalink / raw)
To: Prasun Maiti
Cc: kbuild-all, Linux Kernel, Kalle Valo, ath6kl, Linux Next,
Linux Wireless, Linux Kernel
[-- Attachment #1: Type: text/plain, Size: 2356 bytes --]
Hi,
[auto build test WARNING on ath6kl/ath-next]
[also build test WARNING on v4.7-rc2 next-20160608]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Prasun-Maiti/Add-set_antenna-callback-in-ath6kl-driver-to-remove-wireless-core-warns/20160608-202420
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 4.9.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m68k
All warnings (new ones prefixed by >>):
drivers/net/wireless/ath/ath6kl/wmi.c: In function 'ath6kl_wmi_set_antenna':
>> drivers/net/wireless/ath/ath6kl/wmi.c:1618:6: warning: assignment from incompatible pointer type
cmd = (struct wmi_set_antenna_cmd *) skb->data;
^
drivers/net/wireless/ath/ath6kl/wmi.c:1619:5: error: 'struct wmi_txe_notify_cmd' has no member named 'tx_ant'
cmd->tx_ant = cpu_to_le32(tx_ant);
^
drivers/net/wireless/ath/ath6kl/wmi.c:1620:5: error: 'struct wmi_txe_notify_cmd' has no member named 'rx_ant'
cmd->rx_ant = cpu_to_le32(rx_ant);
^
vim +1618 drivers/net/wireless/ath/ath6kl/wmi.c
1602 cfg80211_cqm_txe_notify(vif->ndev, vif->bssid, pkts,
1603 rate, vif->txe_intvl, GFP_KERNEL);
1604
1605 return 0;
1606 }
1607
1608 int ath6kl_wmi_set_antenna(struct wmi *wmi, u8 idx,
1609 u32 tx_ant, u32 rx_ant)
1610 {
1611 struct sk_buff *skb;
1612 struct wmi_txe_notify_cmd *cmd;
1613
1614 skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
1615 if (!skb)
1616 return -ENOMEM;
1617
> 1618 cmd = (struct wmi_set_antenna_cmd *) skb->data;
1619 cmd->tx_ant = cpu_to_le32(tx_ant);
1620 cmd->rx_ant = cpu_to_le32(rx_ant);
1621
1622 return ath6kl_wmi_cmd_send(wmi, idx, skb, WMI_SET_ANTENNA_CMDID,
1623 NO_SYNC_WMIFLAG);
1624 }
1625
1626 int ath6kl_wmi_set_txe_notify(struct wmi *wmi, u8 idx,
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 36082 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 12:21 [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns Prasun Maiti
2016-06-08 14:21 ` kbuild test robot
@ 2016-06-08 14:23 ` Valo, Kalle
2016-06-08 14:35 ` Prasun Maiti
2016-06-08 15:09 ` Prasun Maiti
2016-06-11 20:33 ` [PATCH] Add .set_antenna callback in ath6kl driver to remove " kbuild test robot
2016-06-11 20:35 ` kbuild test robot
3 siblings, 2 replies; 21+ messages in thread
From: Valo, Kalle @ 2016-06-08 14:23 UTC (permalink / raw)
To: Prasun Maiti
Cc: Linux Kernel, ath6kl, Linux Next, Linux Wireless, Linux Kernel
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 14:23 ` Valo, Kalle
@ 2016-06-08 14:35 ` Prasun Maiti
2016-06-08 14:46 ` Valo, Kalle
2016-06-08 15:09 ` Prasun Maiti
1 sibling, 1 reply; 21+ messages in thread
From: Prasun Maiti @ 2016-06-08 14:35 UTC (permalink / raw)
To: Valo, Kalle
Cc: Linux Kernel, ath6kl, Linux Next, Linux Wireless, Linux Kernel
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 14:35 ` Prasun Maiti
@ 2016-06-08 14:46 ` Valo, Kalle
2016-06-08 15:20 ` Prasun Maiti
0 siblings, 1 reply; 21+ messages in thread
From: Valo, Kalle @ 2016-06-08 14:46 UTC (permalink / raw)
To: Prasun Maiti; +Cc: Linux Kernel, ath6kl, Linux Next, Linux Wireless
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns
2016-06-08 14:23 ` Valo, Kalle
2016-06-08 14:35 ` Prasun Maiti
@ 2016-06-08 15:09 ` Prasun Maiti
1 sibling, 0 replies; 21+ messages in thread
From: Prasun Maiti @ 2016-06-08 15:09 UTC (permalink / raw)
To: Linux Kernel, Kalle Valo; +Cc: ath6kl, Linux Next, Linux Wireless, Prasun Maiti
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
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 14:46 ` Valo, Kalle
@ 2016-06-08 15:20 ` Prasun Maiti
2016-06-08 15:30 ` Valo, Kalle
2016-06-09 0:05 ` Julian Calaby
0 siblings, 2 replies; 21+ messages in thread
From: Prasun Maiti @ 2016-06-08 15:20 UTC (permalink / raw)
To: Valo, Kalle; +Cc: Linux Kernel, ath6kl, Linux Next, Linux Wireless
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 15:20 ` Prasun Maiti
@ 2016-06-08 15:30 ` Valo, Kalle
2016-06-08 15:46 ` Prasun Maiti
2016-06-09 0:05 ` Julian Calaby
1 sibling, 1 reply; 21+ messages in thread
From: Valo, Kalle @ 2016-06-08 15:30 UTC (permalink / raw)
To: Prasun Maiti; +Cc: Linux Kernel, ath6kl, Linux Next, Linux Wireless
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 15:30 ` Valo, Kalle
@ 2016-06-08 15:46 ` Prasun Maiti
2016-06-08 15:51 ` Ben Greear
0 siblings, 1 reply; 21+ messages in thread
From: Prasun Maiti @ 2016-06-08 15:46 UTC (permalink / raw)
To: Valo, Kalle; +Cc: Linux Kernel, ath6kl, Linux Next, Linux Wireless
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 15:46 ` Prasun Maiti
@ 2016-06-08 15:51 ` Ben Greear
2016-06-08 15:56 ` Prasun Maiti
0 siblings, 1 reply; 21+ messages in thread
From: Ben Greear @ 2016-06-08 15:51 UTC (permalink / raw)
To: Prasun Maiti, Valo, Kalle
Cc: Linux Next, ath6kl, Linux Wireless, Linux Kernel
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 15:51 ` Ben Greear
@ 2016-06-08 15:56 ` Prasun Maiti
2016-06-08 16:10 ` Ben Greear
0 siblings, 1 reply; 21+ messages in thread
From: Prasun Maiti @ 2016-06-08 15:56 UTC (permalink / raw)
To: Ben Greear; +Cc: Valo, Kalle, Linux Next, ath6kl, Linux Wireless, Linux Kernel
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 15:56 ` Prasun Maiti
@ 2016-06-08 16:10 ` Ben Greear
0 siblings, 0 replies; 21+ messages in thread
From: Ben Greear @ 2016-06-08 16:10 UTC (permalink / raw)
To: Prasun Maiti
Cc: Valo, Kalle, Linux Next, ath6kl, Linux Wireless, Linux Kernel
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 15:20 ` Prasun Maiti
2016-06-08 15:30 ` Valo, Kalle
@ 2016-06-09 0:05 ` Julian Calaby
2016-06-09 5:04 ` Prasun Maiti
2016-06-09 5:36 ` [PATCH] Add .set_antenna callback in ath6kl driver to fix " Prasun Maiti
1 sibling, 2 replies; 21+ messages in thread
From: Julian Calaby @ 2016-06-09 0:05 UTC (permalink / raw)
To: Prasun Maiti
Cc: Valo, Kalle, Linux Kernel, ath6kl, Linux Next, Linux Wireless
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/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-09 0:05 ` Julian Calaby
@ 2016-06-09 5:04 ` Prasun Maiti
2016-06-09 5:36 ` [PATCH] Add .set_antenna callback in ath6kl driver to fix " Prasun Maiti
1 sibling, 0 replies; 21+ messages in thread
From: Prasun Maiti @ 2016-06-09 5:04 UTC (permalink / raw)
To: Julian Calaby
Cc: Valo, Kalle, Linux Kernel, ath6kl, Linux Next, Linux Wireless
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns
2016-06-09 0:05 ` Julian Calaby
2016-06-09 5:04 ` Prasun Maiti
@ 2016-06-09 5:36 ` Prasun Maiti
2016-06-09 6:43 ` Johannes Berg
2016-06-09 7:08 ` Valo, Kalle
1 sibling, 2 replies; 21+ messages in thread
From: Prasun Maiti @ 2016-06-09 5:36 UTC (permalink / raw)
To: Linux Kernel, Kalle Valo; +Cc: ath6kl, Linux Next, Linux Wireless, Prasun Maiti
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
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns
2016-06-09 5:36 ` [PATCH] Add .set_antenna callback in ath6kl driver to fix " Prasun Maiti
@ 2016-06-09 6:43 ` Johannes Berg
2016-06-09 7:08 ` Valo, Kalle
1 sibling, 0 replies; 21+ messages in thread
From: Johannes Berg @ 2016-06-09 6:43 UTC (permalink / raw)
To: Prasun Maiti, Linux Kernel, Kalle Valo
Cc: ath6kl, Linux Next, Linux Wireless, Prasun Maiti
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to fix wireless core warns
2016-06-09 5:36 ` [PATCH] Add .set_antenna callback in ath6kl driver to fix " Prasun Maiti
2016-06-09 6:43 ` Johannes Berg
@ 2016-06-09 7:08 ` Valo, Kalle
1 sibling, 0 replies; 21+ messages in thread
From: Valo, Kalle @ 2016-06-09 7:08 UTC (permalink / raw)
To: Prasun Maiti
Cc: Linux Kernel, ath6kl, Linux Next, Linux Wireless, Prasun Maiti
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
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 12:21 [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns Prasun Maiti
2016-06-08 14:21 ` kbuild test robot
2016-06-08 14:23 ` Valo, Kalle
@ 2016-06-11 20:33 ` kbuild test robot
2016-06-11 20:35 ` kbuild test robot
3 siblings, 0 replies; 21+ messages in thread
From: kbuild test robot @ 2016-06-11 20:33 UTC (permalink / raw)
To: Prasun Maiti
Cc: kbuild-all, Linux Kernel, Kalle Valo, ath6kl, Linux Next,
Linux Wireless, Linux Kernel
[-- Attachment #1: Type: text/plain, Size: 1916 bytes --]
Hi,
[auto build test ERROR on ath6kl/ath-next]
[also build test ERROR on v4.7-rc2 next-20160609]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Prasun-Maiti/Add-set_antenna-callback-in-ath6kl-driver-to-remove-wireless-core-warns/20160608-202420
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath-next
config: openrisc-allmodconfig (attached as .config)
compiler: or32-linux-gcc (GCC) 4.5.1-or32-1.0rc1
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=openrisc
All errors (new ones prefixed by >>):
drivers/net/wireless/ath/ath6kl/cfg80211.c: In function 'ath6kl_set_antenna':
>> drivers/net/wireless/ath/ath6kl/cfg80211.c:3253:2: error: implicit declaration of function 'ath6kl_wmi_set_antenna'
--
drivers/net/wireless/ath/ath6kl/wmi.c: In function 'ath6kl_wmi_set_antenna':
drivers/net/wireless/ath/ath6kl/wmi.c:1618:6: warning: assignment from incompatible pointer type
>> drivers/net/wireless/ath/ath6kl/wmi.c:1619:5: error: 'struct wmi_txe_notify_cmd' has no member named 'tx_ant'
>> drivers/net/wireless/ath/ath6kl/wmi.c:1620:5: error: 'struct wmi_txe_notify_cmd' has no member named 'rx_ant'
vim +/ath6kl_wmi_set_antenna +3253 drivers/net/wireless/ath/ath6kl/cfg80211.c
3247 if (!tx_ant || !rx_ant)
3248 return -EINVAL;
3249
3250 ar->hw.tx_ant = tx_ant;
3251 ar->hw.rx_ant = rx_ant;
3252
> 3253 return ath6kl_wmi_set_antenna(ar->wmi, vif->fw_vif_idx,
3254 tx_ant, rx_ant);
3255 }
3256
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 37375 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 12:21 [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns Prasun Maiti
` (2 preceding siblings ...)
2016-06-11 20:33 ` [PATCH] Add .set_antenna callback in ath6kl driver to remove " kbuild test robot
@ 2016-06-11 20:35 ` kbuild test robot
3 siblings, 0 replies; 21+ messages in thread
From: kbuild test robot @ 2016-06-11 20:35 UTC (permalink / raw)
To: Prasun Maiti
Cc: kbuild-all, Linux Kernel, Kalle Valo, ath6kl, Linux Next,
Linux Wireless, Linux Kernel
[-- Attachment #1: Type: text/plain, Size: 1823 bytes --]
Hi,
[auto build test ERROR on ath6kl/ath-next]
[also build test ERROR on v4.7-rc2 next-20160609]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Prasun-Maiti/Add-set_antenna-callback-in-ath6kl-driver-to-remove-wireless-core-warns/20160608-202420
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath-next
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
drivers/net/wireless/ath/ath6kl/wmi.c: In function 'ath6kl_wmi_set_antenna':
>> drivers/net/wireless/ath/ath6kl/wmi.c:1618:6: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
cmd = (struct wmi_set_antenna_cmd *) skb->data;
^
drivers/net/wireless/ath/ath6kl/wmi.c:1619:5: error: 'struct wmi_txe_notify_cmd' has no member named 'tx_ant'
cmd->tx_ant = cpu_to_le32(tx_ant);
^~
drivers/net/wireless/ath/ath6kl/wmi.c:1620:5: error: 'struct wmi_txe_notify_cmd' has no member named 'rx_ant'
cmd->rx_ant = cpu_to_le32(rx_ant);
^~
cc1: some warnings being treated as errors
vim +1618 drivers/net/wireless/ath/ath6kl/wmi.c
1612 struct wmi_txe_notify_cmd *cmd;
1613
1614 skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
1615 if (!skb)
1616 return -ENOMEM;
1617
> 1618 cmd = (struct wmi_set_antenna_cmd *) skb->data;
1619 cmd->tx_ant = cpu_to_le32(tx_ant);
1620 cmd->rx_ant = cpu_to_le32(rx_ant);
1621
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 54116 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
2016-06-08 10:51 Prasun Maiti
@ 2016-06-08 12:19 ` kbuild test robot
0 siblings, 0 replies; 21+ messages in thread
From: kbuild test robot @ 2016-06-08 12:19 UTC (permalink / raw)
To: Prasun Maiti
Cc: kbuild-all, Linux Kernel, Rusty Russell, Linux Next,
Linux Wireless, Linux Kernel
[-- Attachment #1: Type: text/plain, Size: 2190 bytes --]
Hi,
[auto build test ERROR on ath6kl/ath-next]
[also build test ERROR on v4.7-rc2 next-20160608]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Prasun-Maiti/Add-set_antenna-callback-in-ath6kl-driver-to-remove-wireless-core-warns/20160608-191104
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath-next
config: x86_64-randconfig-i0-201623 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
drivers/net/wireless/ath/ath6kl/cfg80211.c: In function 'ath6kl_set_antenna':
>> drivers/net/wireless/ath/ath6kl/cfg80211.c:3253:9: error: implicit declaration of function 'ath6kl_wmi_set_antenna' [-Werror=implicit-function-declaration]
return ath6kl_wmi_set_antenna(ar->wmi, vif->fw_vif_idx,
^~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/net/wireless/ath/ath6kl/wmi.c: In function 'ath6kl_wmi_set_antenna':
>> drivers/net/wireless/ath/ath6kl/wmi.c:1618:6: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
cmd = (struct wmi_set_antenna_cmd *) skb->data;
^
>> drivers/net/wireless/ath/ath6kl/wmi.c:1619:5: error: 'struct wmi_txe_notify_cmd' has no member named 'tx_ant'
cmd->tx_ant = cpu_to_le32(tx_ant);
^~
>> drivers/net/wireless/ath/ath6kl/wmi.c:1620:5: error: 'struct wmi_txe_notify_cmd' has no member named 'rx_ant'
cmd->rx_ant = cpu_to_le32(rx_ant);
^~
cc1: some warnings being treated as errors
vim +/ath6kl_wmi_set_antenna +3253 drivers/net/wireless/ath/ath6kl/cfg80211.c
3247 if (!tx_ant || !rx_ant)
3248 return -EINVAL;
3249
3250 ar->hw.tx_ant = tx_ant;
3251 ar->hw.rx_ant = rx_ant;
3252
> 3253 return ath6kl_wmi_set_antenna(ar->wmi, vif->fw_vif_idx,
3254 tx_ant, rx_ant);
3255 }
3256
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 23153 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
@ 2016-06-08 10:51 Prasun Maiti
2016-06-08 12:19 ` kbuild test robot
0 siblings, 1 reply; 21+ messages in thread
From: Prasun Maiti @ 2016-06-08 10:51 UTC (permalink / raw)
To: Linux Kernel, Rusty Russell; +Cc: Linux Next, Linux Wireless, Linux Kernel
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
^ permalink raw reply related [flat|nested] 21+ messages in thread
end of thread, other threads:[~2016-06-11 20:36 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-08 12:21 [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns Prasun Maiti
2016-06-08 14:21 ` kbuild test robot
2016-06-08 14:23 ` Valo, Kalle
2016-06-08 14:35 ` Prasun Maiti
2016-06-08 14:46 ` Valo, Kalle
2016-06-08 15:20 ` Prasun Maiti
2016-06-08 15:30 ` Valo, Kalle
2016-06-08 15:46 ` Prasun Maiti
2016-06-08 15:51 ` Ben Greear
2016-06-08 15:56 ` Prasun Maiti
2016-06-08 16:10 ` Ben Greear
2016-06-09 0:05 ` Julian Calaby
2016-06-09 5:04 ` Prasun Maiti
2016-06-09 5:36 ` [PATCH] Add .set_antenna callback in ath6kl driver to fix " Prasun Maiti
2016-06-09 6:43 ` Johannes Berg
2016-06-09 7:08 ` Valo, Kalle
2016-06-08 15:09 ` Prasun Maiti
2016-06-11 20:33 ` [PATCH] Add .set_antenna callback in ath6kl driver to remove " kbuild test robot
2016-06-11 20:35 ` kbuild test robot
-- strict thread matches above, loose matches on Subject: below --
2016-06-08 10:51 Prasun Maiti
2016-06-08 12:19 ` kbuild test robot
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).