aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rndis_wlan.c
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@mbnet.fi>2009-05-22 04:58:36 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-05-22 14:06:03 -0400
commit59620e9fd631703ecdc7a6d304231b45560b8d26 (patch)
tree90cc6907e5e9b9d6d13d1b40eeb1fdd7342bde0d /drivers/net/wireless/rndis_wlan.c
parent62161aefa403a3f8d603b061f5688cf00928a2cc (diff)
rndis_wlan: fix support for bcm4320a
Old variant of bcm4320 doesn't handle setting configuration parameters correctly. One symptom is that MAC gets partially overwritten when any config parameters are set. This patch disables config-params for bcm4320a (and generic rndis-wlan). Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rndis_wlan.c')
-rw-r--r--drivers/net/wireless/rndis_wlan.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index 52fc647e6cb6..addd7a553acc 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -2275,7 +2275,17 @@ end:
2275} 2275}
2276 2276
2277 2277
2278static int bcm4320_early_init(struct usbnet *usbdev) 2278static int bcm4320a_early_init(struct usbnet *usbdev)
2279{
2280 /* bcm4320a doesn't handle configuration parameters well. Try
2281 * set any and you get partially zeroed mac and broken device.
2282 */
2283
2284 return 0;
2285}
2286
2287
2288static int bcm4320b_early_init(struct usbnet *usbdev)
2279{ 2289{
2280 struct rndis_wext_private *priv = get_rndis_wext_priv(usbdev); 2290 struct rndis_wext_private *priv = get_rndis_wext_priv(usbdev);
2281 char buf[8]; 2291 char buf[8];
@@ -2515,7 +2525,7 @@ static const struct driver_info bcm4320b_info = {
2515 .rx_fixup = rndis_rx_fixup, 2525 .rx_fixup = rndis_rx_fixup,
2516 .tx_fixup = rndis_tx_fixup, 2526 .tx_fixup = rndis_tx_fixup,
2517 .reset = rndis_wext_reset, 2527 .reset = rndis_wext_reset,
2518 .early_init = bcm4320_early_init, 2528 .early_init = bcm4320b_early_init,
2519 .link_change = rndis_wext_link_change, 2529 .link_change = rndis_wext_link_change,
2520}; 2530};
2521 2531
@@ -2528,7 +2538,7 @@ static const struct driver_info bcm4320a_info = {
2528 .rx_fixup = rndis_rx_fixup, 2538 .rx_fixup = rndis_rx_fixup,
2529 .tx_fixup = rndis_tx_fixup, 2539 .tx_fixup = rndis_tx_fixup,
2530 .reset = rndis_wext_reset, 2540 .reset = rndis_wext_reset,
2531 .early_init = bcm4320_early_init, 2541 .early_init = bcm4320a_early_init,
2532 .link_change = rndis_wext_link_change, 2542 .link_change = rndis_wext_link_change,
2533}; 2543};
2534 2544
@@ -2541,7 +2551,7 @@ static const struct driver_info rndis_wext_info = {
2541 .rx_fixup = rndis_rx_fixup, 2551 .rx_fixup = rndis_rx_fixup,
2542 .tx_fixup = rndis_tx_fixup, 2552 .tx_fixup = rndis_tx_fixup,
2543 .reset = rndis_wext_reset, 2553 .reset = rndis_wext_reset,
2544 .early_init = bcm4320_early_init, 2554 .early_init = bcm4320a_early_init,
2545 .link_change = rndis_wext_link_change, 2555 .link_change = rndis_wext_link_change,
2546}; 2556};
2547 2557