ath6kl: Add a function in wmi to send WMI_MCAST_FILTER_CMDID
authorVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Tue, 3 Jan 2012 09:11:59 +0000 (14:41 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 9 Jan 2012 10:24:40 +0000 (12:24 +0200)
This will be used to disable/enable multicast receive.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/wmi.c
drivers/net/wireless/ath/ath6kl/wmi.h

index c6ca660..d3eec07 100644 (file)
@@ -2855,6 +2855,23 @@ int ath6kl_wmi_test_cmd(struct wmi *wmi, void *buf, size_t len)
        return ret;
 }
 
+int ath6kl_wmi_mcast_filter_cmd(struct wmi *wmi, u8 if_idx, bool mc_all_on)
+{
+       struct sk_buff *skb;
+       struct wmi_mcast_filter_cmd *cmd;
+       int ret;
+
+       skb = ath6kl_wmi_get_new_buf(sizeof(*cmd));
+       if (!skb)
+               return -ENOMEM;
+
+       cmd = (struct wmi_mcast_filter_cmd *) skb->data;
+       cmd->mcast_all_enable = mc_all_on;
+
+       ret = ath6kl_wmi_cmd_send(wmi, if_idx, skb, WMI_MCAST_FILTER_CMDID,
+                                 NO_SYNC_WMIFLAG);
+       return ret;
+}
 
 s32 ath6kl_wmi_get_rate(s8 rate_index)
 {
index 2b43599..dc70457 100644 (file)
@@ -1239,6 +1239,10 @@ enum target_event_report_config {
        NO_DISCONN_EVT_IN_RECONN
 };
 
+struct wmi_mcast_filter_cmd {
+       u8 mcast_all_enable;
+} __packed;
+
 /* Command Replies */
 
 /* WMI_GET_CHANNEL_LIST_CMDID reply */
@@ -2434,6 +2438,7 @@ int ath6kl_wmi_del_wow_pattern_cmd(struct wmi *wmi, u8 if_idx,
 int ath6kl_wmi_set_roam_lrssi_cmd(struct wmi *wmi, u8 lrssi);
 int ath6kl_wmi_force_roam_cmd(struct wmi *wmi, const u8 *bssid);
 int ath6kl_wmi_set_roam_mode_cmd(struct wmi *wmi, enum wmi_roam_mode mode);
+int ath6kl_wmi_mcast_filter_cmd(struct wmi *wmi, u8 if_idx, bool mc_all_on);
 
 /* AP mode */
 int ath6kl_wmi_ap_profile_commit(struct wmi *wmip, u8 if_idx,