diff options
author | Jeff Mahoney <jeffm@suse.com> | 2009-10-08 17:27:51 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-10-09 16:47:24 -0400 |
commit | 6d7fd647c236c5b4ac4a27b17180ea8d7d169c8d (patch) | |
tree | c59096f1a982d7ae3f65b245e01fd25ed1859581 /drivers/staging | |
parent | 4074e77ca3c0c5047acb012a440022ca1f3a2dab (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>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/winbond/wbusb.c | 11 |
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 | ||
102 | static 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 | |||
102 | static void wbsoft_configure_filter(struct ieee80211_hw *dev, | 108 | static 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, |