diff options
author | Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | 2009-05-22 04:58:36 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-05-22 14:06:03 -0400 |
commit | 59620e9fd631703ecdc7a6d304231b45560b8d26 (patch) | |
tree | 90cc6907e5e9b9d6d13d1b40eeb1fdd7342bde0d /drivers/net/wireless/rndis_wlan.c | |
parent | 62161aefa403a3f8d603b061f5688cf00928a2cc (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.c | 18 |
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 | ||
2278 | static int bcm4320_early_init(struct usbnet *usbdev) | 2278 | static 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 | |||
2288 | static 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 | ||