diff options
author | Daniel Drake | 2007-05-24 01:06:53 +0100 |
---|---|---|
committer | Jeff Garzik | 2007-07-08 22:16:37 -0400 |
commit | 4481d6093e62e168ab06e9bbb4e67a9bebb8c7f7 (patch) | |
tree | 49efc53cf2a4c2781f0b644e64c28ce588bf2352 /drivers/net/wireless/zd1211rw/zd_rf.c | |
parent | 9c8fc71ddd1b42c0c632036333790f230cea815d (diff) |
[PATCH] zd1211rw: Add UW2453 RF support
This patch adds support for another radio appearing in new devices: the
Ubec UW2453. It's more complicated than the other RF's we support, but
Ubec publish full tech specs so we're able to understand the vendor code
relatively well.
Now that we support UW2453, we also support Atheros' new USB chip: the
AR5007UG. From the little info we have, this appears to be just a
rebranded ZD1211B.
This RF code doesn't work very well -- lots more TX/RX errors than the
other RFs. However, the vendor driver doesn't do any better, so this is
all we can do for now.
[kune@deine-taler.de: bug fixes]
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/zd1211rw/zd_rf.c')
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_rf.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_rf.c b/drivers/net/wireless/zd1211rw/zd_rf.c index c4981ad2f9ea..7407409b60b1 100644 --- a/drivers/net/wireless/zd1211rw/zd_rf.c +++ b/drivers/net/wireless/zd1211rw/zd_rf.c @@ -67,25 +67,23 @@ void zd_rf_clear(struct zd_rf *rf) int zd_rf_init_hw(struct zd_rf *rf, u8 type) { - int r, t; + int r = 0; + int t; struct zd_chip *chip = zd_rf_to_chip(rf); ZD_ASSERT(mutex_is_locked(&chip->mutex)); switch (type) { case RF2959_RF: r = zd_rf_init_rf2959(rf); - if (r) - return r; break; case AL2230_RF: r = zd_rf_init_al2230(rf); - if (r) - return r; break; case AL7230B_RF: r = zd_rf_init_al7230b(rf); - if (r) - return r; + break; + case UW2453_RF: + r = zd_rf_init_uw2453(rf); break; default: dev_err(zd_chip_dev(chip), @@ -94,6 +92,9 @@ int zd_rf_init_hw(struct zd_rf *rf, u8 type) return -ENODEV; } + if (r) + return r; + rf->type = type; r = zd_chip_lock_phy_regs(chip); |