aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2009-10-08 17:27:51 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2009-10-09 16:47:24 -0400
commit6d7fd647c236c5b4ac4a27b17180ea8d7d169c8d (patch)
treec59096f1a982d7ae3f65b245e01fd25ed1859581
parent4074e77ca3c0c5047acb012a440022ca1f3a2dab (diff)
Staging: winbond: implement prepare_multicast and fix API usage
This patch adds a prepare_multicast callback for the winbond driver to properly receive mc_count in ->configure_filter. This also fixes incompatible pointer assignment build errors because ->configure_filter had changed. This is build tested only, but that's more than the original code received. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/winbond/wbusb.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index ee6425e4357..067082a7d75 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -99,10 +99,16 @@ static int wbsoft_get_tx_stats(struct ieee80211_hw *hw,
99 return 0; 99 return 0;
100} 100}
101 101
102static u64 wbsoft_prepare_multicast(struct ieee80211_hw *hw, int mc_count,
103 struct dev_addr_list *mc_list)
104{
105 return mc_count;
106}
107
102static void wbsoft_configure_filter(struct ieee80211_hw *dev, 108static void wbsoft_configure_filter(struct ieee80211_hw *dev,
103 unsigned int changed_flags, 109 unsigned int changed_flags,
104 unsigned int *total_flags, 110 unsigned int *total_flags,
105 int mc_count, struct dev_mc_list *mclist) 111 u64 multicast)
106{ 112{
107 unsigned int new_flags; 113 unsigned int new_flags;
108 114
@@ -110,7 +116,7 @@ static void wbsoft_configure_filter(struct ieee80211_hw *dev,
110 116
111 if (*total_flags & FIF_PROMISC_IN_BSS) 117 if (*total_flags & FIF_PROMISC_IN_BSS)
112 new_flags |= FIF_PROMISC_IN_BSS; 118 new_flags |= FIF_PROMISC_IN_BSS;
113 else if ((*total_flags & FIF_ALLMULTI) || (mc_count > 32)) 119 else if ((*total_flags & FIF_ALLMULTI) || (multicast > 32))
114 new_flags |= FIF_ALLMULTI; 120 new_flags |= FIF_ALLMULTI;
115 121
116 dev->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS; 122 dev->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS;
@@ -278,6 +284,7 @@ static const struct ieee80211_ops wbsoft_ops = {
278 .add_interface = wbsoft_add_interface, 284 .add_interface = wbsoft_add_interface,
279 .remove_interface = wbsoft_remove_interface, 285 .remove_interface = wbsoft_remove_interface,
280 .config = wbsoft_config, 286 .config = wbsoft_config,
287 .prepare_multicast = wbsoft_prepare_multicast,
281 .configure_filter = wbsoft_configure_filter, 288 .configure_filter = wbsoft_configure_filter,
282 .get_stats = wbsoft_get_stats, 289 .get_stats = wbsoft_get_stats,
283 .get_tx_stats = wbsoft_get_tx_stats, 290 .get_tx_stats = wbsoft_get_tx_stats,