]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/wireless/ath/ath10k/wmi-ops.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[karo-tx-linux.git] / drivers / net / wireless / ath / ath10k / wmi-ops.h
index 248ffc3d6620cfb9daeb9c35ce14d3ad4f021b84..8f4f6a892581c2ac7e976e08138e37740d0b0a33 100644 (file)
@@ -177,6 +177,15 @@ struct wmi_ops {
                                                const struct wmi_tdls_peer_capab_arg *cap,
                                                const struct wmi_channel_arg *chan);
        struct sk_buff *(*gen_adaptive_qcs)(struct ath10k *ar, bool enable);
+       struct sk_buff *(*gen_pdev_get_tpc_config)(struct ath10k *ar,
+                                                  u32 param);
+       void (*fw_stats_fill)(struct ath10k *ar,
+                             struct ath10k_fw_stats *fw_stats,
+                             char *buf);
+       struct sk_buff *(*gen_pdev_enable_adaptive_cca)(struct ath10k *ar,
+                                                       u8 enable,
+                                                       u32 detect_level,
+                                                       u32 detect_margin);
 };
 
 int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id);
@@ -1270,4 +1279,52 @@ ath10k_wmi_adaptive_qcs(struct ath10k *ar, bool enable)
        return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->adaptive_qcs_cmdid);
 }
 
+static inline int
+ath10k_wmi_pdev_get_tpc_config(struct ath10k *ar, u32 param)
+{
+       struct sk_buff *skb;
+
+       if (!ar->wmi.ops->gen_pdev_get_tpc_config)
+               return -EOPNOTSUPP;
+
+       skb = ar->wmi.ops->gen_pdev_get_tpc_config(ar, param);
+
+       if (IS_ERR(skb))
+               return PTR_ERR(skb);
+
+       return ath10k_wmi_cmd_send(ar, skb,
+                                  ar->wmi.cmd->pdev_get_tpc_config_cmdid);
+}
+
+static inline int
+ath10k_wmi_fw_stats_fill(struct ath10k *ar, struct ath10k_fw_stats *fw_stats,
+                        char *buf)
+{
+       if (!ar->wmi.ops->fw_stats_fill)
+               return -EOPNOTSUPP;
+
+       ar->wmi.ops->fw_stats_fill(ar, fw_stats, buf);
+       return 0;
+}
+
+static inline int
+ath10k_wmi_pdev_enable_adaptive_cca(struct ath10k *ar, u8 enable,
+                                   u32 detect_level, u32 detect_margin)
+{
+       struct sk_buff *skb;
+
+       if (!ar->wmi.ops->gen_pdev_enable_adaptive_cca)
+               return -EOPNOTSUPP;
+
+       skb = ar->wmi.ops->gen_pdev_enable_adaptive_cca(ar, enable,
+                                                       detect_level,
+                                                       detect_margin);
+
+       if (IS_ERR(skb))
+               return PTR_ERR(skb);
+
+       return ath10k_wmi_cmd_send(ar, skb,
+                                  ar->wmi.cmd->pdev_enable_adaptive_cca_cmdid);
+}
+
 #endif