summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ti/wl1251/acx.c
diff options
context:
space:
mode:
authorDavid Gnedt <david.gnedt@davizone.at>2014-01-07 12:08:30 (GMT)
committerJohn W. Linville <linville@tuxdriver.com>2014-01-09 15:56:06 (GMT)
commit9ed74ba029fc920701cdcada8e25889a6d64a335 (patch)
treecc4a3602356342153a6fca3f49e8995de3882291 /drivers/net/wireless/ti/wl1251/acx.c
parent4d09b5378defd4ef685f9d33e0d35b380109eafa (diff)
downloadlinux-9ed74ba029fc920701cdcada8e25889a6d64a335.tar.xz
wl1251: implement multicast address filtering (fwd)
Port multicast address filtering from wl1271 driver. It sets up the hardware multicast address filter in configure_filter() with addresses supplied through prepare_multicast(). Signed-off-by: David Gnedt <david.gnedt@davizone.at> Signed-off-by: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ti/wl1251/acx.c')
-rw-r--r--drivers/net/wireless/ti/wl1251/acx.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/wireless/ti/wl1251/acx.c b/drivers/net/wireless/ti/wl1251/acx.c
index b390adf..4205970 100644
--- a/drivers/net/wireless/ti/wl1251/acx.c
+++ b/drivers/net/wireless/ti/wl1251/acx.c
@@ -381,7 +381,8 @@ out:
return ret;
}
-int wl1251_acx_group_address_tbl(struct wl1251 *wl)
+int wl1251_acx_group_address_tbl(struct wl1251 *wl, bool enable,
+ void *mc_list, u32 mc_list_len)
{
struct acx_dot11_grp_addr_tbl *acx;
int ret;
@@ -393,9 +394,9 @@ int wl1251_acx_group_address_tbl(struct wl1251 *wl)
return -ENOMEM;
/* MAC filtering */
- acx->enabled = 0;
- acx->num_groups = 0;
- memset(acx->mac_table, 0, ADDRESS_GROUP_MAX_LEN);
+ acx->enabled = enable;
+ acx->num_groups = mc_list_len;
+ memcpy(acx->mac_table, mc_list, mc_list_len * ETH_ALEN);
ret = wl1251_cmd_configure(wl, DOT11_GROUP_ADDRESS_TBL,
acx, sizeof(*acx));