aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath10k
diff options
context:
space:
mode:
authorMarek Puzyniak <marek.puzyniak@tieto.com>2015-02-10 06:38:15 -0500
committerKalle Valo <kvalo@qca.qualcomm.com>2015-03-04 07:10:35 -0500
commitc8c60cfd18e1ddf8f1b9ef76a49d7d1b08ea7a2d (patch)
tree78a0f4cafb78dc74008411cd9b20b28226ea2d65 /drivers/net/wireless/ath/ath10k
parent6383864053cc456aa82847cd910257deaa34eb5a (diff)
ath10k: fix wmm params per vdev
During wmm tests changing wmm parameters did not change anything. This was because of mismatch in WMM params per vdev command. WMM params per vdev uses different command structure than wmm params per pdev command. Patch concerns qca6174. Signed-off-by: Marek Puzyniak <marek.puzyniak@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k')
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi-tlv.c15
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi-tlv.h6
2 files changed, 11 insertions, 10 deletions
diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
index f34baa0c9e87..ee0c5f602e29 100644
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
@@ -1710,14 +1710,12 @@ ath10k_wmi_tlv_op_gen_vdev_wmm_conf(struct ath10k *ar, u32 vdev_id,
1710 const struct wmi_wmm_params_all_arg *arg) 1710 const struct wmi_wmm_params_all_arg *arg)
1711{ 1711{
1712 struct wmi_tlv_vdev_set_wmm_cmd *cmd; 1712 struct wmi_tlv_vdev_set_wmm_cmd *cmd;
1713 struct wmi_wmm_params *wmm;
1714 struct wmi_tlv *tlv; 1713 struct wmi_tlv *tlv;
1715 struct sk_buff *skb; 1714 struct sk_buff *skb;
1716 size_t len; 1715 size_t len;
1717 void *ptr; 1716 void *ptr;
1718 1717
1719 len = (sizeof(*tlv) + sizeof(*cmd)) + 1718 len = sizeof(*tlv) + sizeof(*cmd);
1720 (4 * (sizeof(*tlv) + sizeof(*wmm)));
1721 skb = ath10k_wmi_alloc_skb(ar, len); 1719 skb = ath10k_wmi_alloc_skb(ar, len);
1722 if (!skb) 1720 if (!skb)
1723 return ERR_PTR(-ENOMEM); 1721 return ERR_PTR(-ENOMEM);
@@ -1729,13 +1727,10 @@ ath10k_wmi_tlv_op_gen_vdev_wmm_conf(struct ath10k *ar, u32 vdev_id,
1729 cmd = (void *)tlv->value; 1727 cmd = (void *)tlv->value;
1730 cmd->vdev_id = __cpu_to_le32(vdev_id); 1728 cmd->vdev_id = __cpu_to_le32(vdev_id);
1731 1729
1732 ptr += sizeof(*tlv); 1730 ath10k_wmi_set_wmm_param(&cmd->vdev_wmm_params[0].params, &arg->ac_be);
1733 ptr += sizeof(*cmd); 1731 ath10k_wmi_set_wmm_param(&cmd->vdev_wmm_params[1].params, &arg->ac_bk);
1734 1732 ath10k_wmi_set_wmm_param(&cmd->vdev_wmm_params[2].params, &arg->ac_vi);
1735 ptr = ath10k_wmi_tlv_put_wmm(ptr, &arg->ac_be); 1733 ath10k_wmi_set_wmm_param(&cmd->vdev_wmm_params[3].params, &arg->ac_vo);
1736 ptr = ath10k_wmi_tlv_put_wmm(ptr, &arg->ac_bk);
1737 ptr = ath10k_wmi_tlv_put_wmm(ptr, &arg->ac_vi);
1738 ptr = ath10k_wmi_tlv_put_wmm(ptr, &arg->ac_vo);
1739 1734
1740 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev wmm conf\n"); 1735 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev wmm conf\n");
1741 return skb; 1736 return skb;
diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.h b/drivers/net/wireless/ath/ath10k/wmi-tlv.h
index d7a31e15910d..a6c8280cc4b1 100644
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.h
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.h
@@ -1302,8 +1302,14 @@ struct wmi_tlv_pdev_set_wmm_cmd {
1302 __le32 dg_type; /* no idea.. */ 1302 __le32 dg_type; /* no idea.. */
1303} __packed; 1303} __packed;
1304 1304
1305struct wmi_tlv_vdev_wmm_params {
1306 __le32 dummy;
1307 struct wmi_wmm_params params;
1308} __packed;
1309
1305struct wmi_tlv_vdev_set_wmm_cmd { 1310struct wmi_tlv_vdev_set_wmm_cmd {
1306 __le32 vdev_id; 1311 __le32 vdev_id;
1312 struct wmi_tlv_vdev_wmm_params vdev_wmm_params[4];
1307} __packed; 1313} __packed;
1308 1314
1309struct wmi_tlv_phyerr_ev { 1315struct wmi_tlv_phyerr_ev {