diff options
Diffstat (limited to 'drivers/net/wireless/zd1211rw/zd_rf.c')
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_rf.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_rf.c b/drivers/net/wireless/zd1211rw/zd_rf.c index 549c23bcd6cc..7407409b60b1 100644 --- a/drivers/net/wireless/zd1211rw/zd_rf.c +++ b/drivers/net/wireless/zd1211rw/zd_rf.c | |||
@@ -52,34 +52,38 @@ const char *zd_rf_name(u8 type) | |||
52 | void zd_rf_init(struct zd_rf *rf) | 52 | void zd_rf_init(struct zd_rf *rf) |
53 | { | 53 | { |
54 | memset(rf, 0, sizeof(*rf)); | 54 | memset(rf, 0, sizeof(*rf)); |
55 | |||
56 | /* default to update channel integration, as almost all RF's do want | ||
57 | * this */ | ||
58 | rf->update_channel_int = 1; | ||
55 | } | 59 | } |
56 | 60 | ||
57 | void zd_rf_clear(struct zd_rf *rf) | 61 | void zd_rf_clear(struct zd_rf *rf) |
58 | { | 62 | { |
63 | if (rf->clear) | ||
64 | rf->clear(rf); | ||
59 | ZD_MEMCLEAR(rf, sizeof(*rf)); | 65 | ZD_MEMCLEAR(rf, sizeof(*rf)); |
60 | } | 66 | } |
61 | 67 | ||
62 | int zd_rf_init_hw(struct zd_rf *rf, u8 type) | 68 | int zd_rf_init_hw(struct zd_rf *rf, u8 type) |
63 | { | 69 | { |
64 | int r, t; | 70 | int r = 0; |
71 | int t; | ||
65 | struct zd_chip *chip = zd_rf_to_chip(rf); | 72 | struct zd_chip *chip = zd_rf_to_chip(rf); |
66 | 73 | ||
67 | ZD_ASSERT(mutex_is_locked(&chip->mutex)); | 74 | ZD_ASSERT(mutex_is_locked(&chip->mutex)); |
68 | switch (type) { | 75 | switch (type) { |
69 | case RF2959_RF: | 76 | case RF2959_RF: |
70 | r = zd_rf_init_rf2959(rf); | 77 | r = zd_rf_init_rf2959(rf); |
71 | if (r) | ||
72 | return r; | ||
73 | break; | 78 | break; |
74 | case AL2230_RF: | 79 | case AL2230_RF: |
75 | r = zd_rf_init_al2230(rf); | 80 | r = zd_rf_init_al2230(rf); |
76 | if (r) | ||
77 | return r; | ||
78 | break; | 81 | break; |
79 | case AL7230B_RF: | 82 | case AL7230B_RF: |
80 | r = zd_rf_init_al7230b(rf); | 83 | r = zd_rf_init_al7230b(rf); |
81 | if (r) | 84 | break; |
82 | return r; | 85 | case UW2453_RF: |
86 | r = zd_rf_init_uw2453(rf); | ||
83 | break; | 87 | break; |
84 | default: | 88 | default: |
85 | dev_err(zd_chip_dev(chip), | 89 | dev_err(zd_chip_dev(chip), |
@@ -88,6 +92,9 @@ int zd_rf_init_hw(struct zd_rf *rf, u8 type) | |||
88 | return -ENODEV; | 92 | return -ENODEV; |
89 | } | 93 | } |
90 | 94 | ||
95 | if (r) | ||
96 | return r; | ||
97 | |||
91 | rf->type = type; | 98 | rf->type = type; |
92 | 99 | ||
93 | r = zd_chip_lock_phy_regs(chip); | 100 | r = zd_chip_lock_phy_regs(chip); |