aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDaniel Drake <dsd@gentoo.org>2007-07-01 13:22:04 -0400
committerJohn W. Linville <linville@tuxdriver.com>2007-07-10 14:14:56 -0400
commit4418583cbf6fcdb715fcdc3719393cfb64b73e97 (patch)
tree48361f94b8ebb7d1c2ccee0dd12b834f1c737375 /drivers
parent86d95c214357df0e27dc6af493b62a1073e9d6b2 (diff)
[PATCH] zd1211rw: Detect more AL2230S radios
Zen Kato has a device which reports the 0xa RF type. The vendor driver treats this as AL2230S, the same as devices with the AL2230S bit in the POD. Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/zd1211rw/zd_rf.c3
-rw-r--r--drivers/net/wireless/zd1211rw/zd_rf.h2
-rw-r--r--drivers/net/wireless/zd1211rw/zd_rf_al2230.c10
3 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_rf.c b/drivers/net/wireless/zd1211rw/zd_rf.c
index 7407409b60b1..abe5d38f7f4d 100644
--- a/drivers/net/wireless/zd1211rw/zd_rf.c
+++ b/drivers/net/wireless/zd1211rw/zd_rf.c
@@ -34,7 +34,7 @@ static const char * const rfs[] = {
34 [AL2210_RF] = "AL2210_RF", 34 [AL2210_RF] = "AL2210_RF",
35 [MAXIM_NEW_RF] = "MAXIM_NEW_RF", 35 [MAXIM_NEW_RF] = "MAXIM_NEW_RF",
36 [UW2453_RF] = "UW2453_RF", 36 [UW2453_RF] = "UW2453_RF",
37 [UNKNOWN_A_RF] = "UNKNOWN_A_RF", 37 [AL2230S_RF] = "AL2230S_RF",
38 [RALINK_RF] = "RALINK_RF", 38 [RALINK_RF] = "RALINK_RF",
39 [INTERSIL_RF] = "INTERSIL_RF", 39 [INTERSIL_RF] = "INTERSIL_RF",
40 [RF2959_RF] = "RF2959_RF", 40 [RF2959_RF] = "RF2959_RF",
@@ -77,6 +77,7 @@ int zd_rf_init_hw(struct zd_rf *rf, u8 type)
77 r = zd_rf_init_rf2959(rf); 77 r = zd_rf_init_rf2959(rf);
78 break; 78 break;
79 case AL2230_RF: 79 case AL2230_RF:
80 case AL2230S_RF:
80 r = zd_rf_init_al2230(rf); 81 r = zd_rf_init_al2230(rf);
81 break; 82 break;
82 case AL7230B_RF: 83 case AL7230B_RF:
diff --git a/drivers/net/wireless/zd1211rw/zd_rf.h b/drivers/net/wireless/zd1211rw/zd_rf.h
index c6dfd8227f6e..30502f26b71c 100644
--- a/drivers/net/wireless/zd1211rw/zd_rf.h
+++ b/drivers/net/wireless/zd1211rw/zd_rf.h
@@ -26,7 +26,7 @@
26#define AL2210_RF 0x7 26#define AL2210_RF 0x7
27#define MAXIM_NEW_RF 0x8 27#define MAXIM_NEW_RF 0x8
28#define UW2453_RF 0x9 28#define UW2453_RF 0x9
29#define UNKNOWN_A_RF 0xa 29#define AL2230S_RF 0xa
30#define RALINK_RF 0xb 30#define RALINK_RF 0xb
31#define INTERSIL_RF 0xc 31#define INTERSIL_RF 0xc
32#define RF2959_RF 0xd 32#define RF2959_RF 0xd
diff --git a/drivers/net/wireless/zd1211rw/zd_rf_al2230.c b/drivers/net/wireless/zd1211rw/zd_rf_al2230.c
index e7a4ecf7b6e2..be9259eea088 100644
--- a/drivers/net/wireless/zd1211rw/zd_rf_al2230.c
+++ b/drivers/net/wireless/zd1211rw/zd_rf_al2230.c
@@ -21,6 +21,8 @@
21#include "zd_usb.h" 21#include "zd_usb.h"
22#include "zd_chip.h" 22#include "zd_chip.h"
23 23
24#define IS_AL2230S(chip) ((chip)->al2230s_bit || (chip)->rf.type == AL2230S_RF)
25
24static const u32 zd1211_al2230_table[][3] = { 26static const u32 zd1211_al2230_table[][3] = {
25 RF_CHANNEL( 1) = { 0x03f790, 0x033331, 0x00000d, }, 27 RF_CHANNEL( 1) = { 0x03f790, 0x033331, 0x00000d, },
26 RF_CHANNEL( 2) = { 0x03f790, 0x0b3331, 0x00000d, }, 28 RF_CHANNEL( 2) = { 0x03f790, 0x0b3331, 0x00000d, },
@@ -176,7 +178,7 @@ static int zd1211_al2230_init_hw(struct zd_rf *rf)
176 if (r) 178 if (r)
177 return r; 179 return r;
178 180
179 if (chip->al2230s_bit) { 181 if (IS_AL2230S(chip)) {
180 r = zd_iowrite16a_locked(chip, ioreqs_init_al2230s, 182 r = zd_iowrite16a_locked(chip, ioreqs_init_al2230s,
181 ARRAY_SIZE(ioreqs_init_al2230s)); 183 ARRAY_SIZE(ioreqs_init_al2230s));
182 if (r) 184 if (r)
@@ -188,7 +190,7 @@ static int zd1211_al2230_init_hw(struct zd_rf *rf)
188 return r; 190 return r;
189 191
190 /* improve band edge for AL2230S */ 192 /* improve band edge for AL2230S */
191 if (chip->al2230s_bit) 193 if (IS_AL2230S(chip))
192 r = zd_rfwrite_locked(chip, 0x000824, RF_RV_BITS); 194 r = zd_rfwrite_locked(chip, 0x000824, RF_RV_BITS);
193 else 195 else
194 r = zd_rfwrite_locked(chip, 0x0005a4, RF_RV_BITS); 196 r = zd_rfwrite_locked(chip, 0x0005a4, RF_RV_BITS);
@@ -314,7 +316,7 @@ static int zd1211b_al2230_init_hw(struct zd_rf *rf)
314 if (r) 316 if (r)
315 return r; 317 return r;
316 318
317 if (chip->al2230s_bit) { 319 if (IS_AL2230S(chip)) {
318 r = zd_iowrite16a_locked(chip, ioreqs_init_al2230s, 320 r = zd_iowrite16a_locked(chip, ioreqs_init_al2230s,
319 ARRAY_SIZE(ioreqs_init_al2230s)); 321 ARRAY_SIZE(ioreqs_init_al2230s));
320 if (r) 322 if (r)
@@ -328,7 +330,7 @@ static int zd1211b_al2230_init_hw(struct zd_rf *rf)
328 if (r) 330 if (r)
329 return r; 331 return r;
330 332
331 if (chip->al2230s_bit) 333 if (IS_AL2230S(chip))
332 r = zd_rfwrite_locked(chip, 0x241000, RF_RV_BITS); 334 r = zd_rfwrite_locked(chip, 0x241000, RF_RV_BITS);
333 else 335 else
334 r = zd_rfwrite_locked(chip, 0x25a000, RF_RV_BITS); 336 r = zd_rfwrite_locked(chip, 0x25a000, RF_RV_BITS);