* [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
[not found] ` <1465388474-20503-1-git-send-email-prasunmaiti87-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
` (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
[parent not found: <1465388474-20503-1-git-send-email-prasunmaiti87-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] Add .set_antenna callback in ath6kl driver to remove wireless core warns
[not found] ` <1465388474-20503-1-git-send-email-prasunmaiti87-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2016-06-08 14:23 ` Valo, Kalle
2016-06-08 14:35 ` Prasun Maiti
2016-06-08 15:09 ` Prasun Maiti
0 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-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Linux Next, Linux Wireless, Linux Kernel
Prasun Maiti <prasunmaiti87-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Did you test this? What hardware and firmware version?
--
Kalle Valo--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ 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
[not found] ` <CAEO8o4=DnEfXQAnAOxugC9TngbhvgV9DXz0HOVHNLk0B2fAXQA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
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
* [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 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
[not found] ` <1465388474-20503-1-git-send-email-prasunmaiti87-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 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
* [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
* 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
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
[not found] ` <1465388474-20503-1-git-send-email-prasunmaiti87-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-06-08 14:23 ` Valo, Kalle
2016-06-08 14:35 ` Prasun Maiti
[not found] ` <CAEO8o4=DnEfXQAnAOxugC9TngbhvgV9DXz0HOVHNLk0B2fAXQA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
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
[not found] ` <CAEO8o4=a54o0qvQ7ynQW=tJ95OY0_BiNYPP-5uj5jozDLQCp4Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-08 16:10 ` Ben Greear
2016-06-09 0:05 ` Julian Calaby
[not found] ` <CAGRGNgV4sL2TypkR+zsaDHN26KCF0kjtWPsi9y9D_JkGpvWrUw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
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).