linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).