[PATCH] zd1211rw: Detect more AL2230S radios
authorDaniel Drake <dsd@gentoo.org>
Sun, 1 Jul 2007 17:22:04 +0000 (18:22 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 10 Jul 2007 18:14:56 +0000 (14:14 -0400)
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>
drivers/net/wireless/zd1211rw/zd_rf.c
drivers/net/wireless/zd1211rw/zd_rf.h
drivers/net/wireless/zd1211rw/zd_rf_al2230.c

index 7407409b60b19b0ee22bf3a1d6921723a31a39c4..abe5d38f7f4de5ed9c21c7fa3df0620f109ac436 100644 (file)
@@ -34,7 +34,7 @@ static const char * const rfs[] = {
        [AL2210_RF]     = "AL2210_RF",
        [MAXIM_NEW_RF]  = "MAXIM_NEW_RF",
        [UW2453_RF]     = "UW2453_RF",
-       [UNKNOWN_A_RF]  = "UNKNOWN_A_RF",
+       [AL2230S_RF]    = "AL2230S_RF",
        [RALINK_RF]     = "RALINK_RF",
        [INTERSIL_RF]   = "INTERSIL_RF",
        [RF2959_RF]     = "RF2959_RF",
@@ -77,6 +77,7 @@ int zd_rf_init_hw(struct zd_rf *rf, u8 type)
                r = zd_rf_init_rf2959(rf);
                break;
        case AL2230_RF:
+       case AL2230S_RF:
                r = zd_rf_init_al2230(rf);
                break;
        case AL7230B_RF:
index c6dfd8227f6e78b5bc76e118668a2adefd389050..30502f26b71cbd79999ca8b1d26a93cbb34a6e94 100644 (file)
@@ -26,7 +26,7 @@
 #define AL2210_RF                      0x7
 #define MAXIM_NEW_RF                   0x8
 #define UW2453_RF                      0x9
-#define UNKNOWN_A_RF                   0xa
+#define AL2230S_RF                     0xa
 #define RALINK_RF                      0xb
 #define INTERSIL_RF                    0xc
 #define RF2959_RF                      0xd
index e7a4ecf7b6e21483d7b4916f6c7f1c3983cd75a5..be9259eea088b54ace2d2a74256956a462681e8b 100644 (file)
@@ -21,6 +21,8 @@
 #include "zd_usb.h"
 #include "zd_chip.h"
 
+#define IS_AL2230S(chip) ((chip)->al2230s_bit || (chip)->rf.type == AL2230S_RF)
+
 static const u32 zd1211_al2230_table[][3] = {
        RF_CHANNEL( 1) = { 0x03f790, 0x033331, 0x00000d, },
        RF_CHANNEL( 2) = { 0x03f790, 0x0b3331, 0x00000d, },
@@ -176,7 +178,7 @@ static int zd1211_al2230_init_hw(struct zd_rf *rf)
        if (r)
                return r;
 
-       if (chip->al2230s_bit) {
+       if (IS_AL2230S(chip)) {
                r = zd_iowrite16a_locked(chip, ioreqs_init_al2230s,
                        ARRAY_SIZE(ioreqs_init_al2230s));
                if (r)
@@ -188,7 +190,7 @@ static int zd1211_al2230_init_hw(struct zd_rf *rf)
                return r;
 
        /* improve band edge for AL2230S */
-       if (chip->al2230s_bit)
+       if (IS_AL2230S(chip))
                r = zd_rfwrite_locked(chip, 0x000824, RF_RV_BITS);
        else
                r = zd_rfwrite_locked(chip, 0x0005a4, RF_RV_BITS);
@@ -314,7 +316,7 @@ static int zd1211b_al2230_init_hw(struct zd_rf *rf)
        if (r)
                return r;
 
-       if (chip->al2230s_bit) {
+       if (IS_AL2230S(chip)) {
                r = zd_iowrite16a_locked(chip, ioreqs_init_al2230s,
                        ARRAY_SIZE(ioreqs_init_al2230s));
                if (r)
@@ -328,7 +330,7 @@ static int zd1211b_al2230_init_hw(struct zd_rf *rf)
        if (r)
                return r;
 
-       if (chip->al2230s_bit)
+       if (IS_AL2230S(chip))
                r = zd_rfwrite_locked(chip, 0x241000, RF_RV_BITS);
        else
                r = zd_rfwrite_locked(chip, 0x25a000, RF_RV_BITS);