aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-io.c
diff options
context:
space:
mode:
authorDon Fry <donald.h.fry@intel.com>2012-05-16 16:54:27 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-06-05 15:32:13 -0400
commitcc5f7e39761382d3a44be70bb665c2c78ae15dac (patch)
tree6651c35803805e8dadda1b57313134fc5ce41c4d /drivers/net/wireless/iwlwifi/iwl-io.c
parentc08ce20c7eedb9406c55a1c59acc2c84812c8e82 (diff)
iwlwifi: implement dynamic opmode loading
This is the next step in splitting up the driver, making the uCode API dependent pieces of it live in separate modules. Right now there's only one so it's not user-selectable, but we're actively working on more. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Don Fry <donald.h.fry@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-io.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-io.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-io.c b/drivers/net/wireless/iwlwifi/iwl-io.c
index 081dd34d2387..ee93274214d6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-io.c
+++ b/drivers/net/wireless/iwlwifi/iwl-io.c
@@ -27,6 +27,7 @@
27 *****************************************************************************/ 27 *****************************************************************************/
28#include <linux/delay.h> 28#include <linux/delay.h>
29#include <linux/device.h> 29#include <linux/device.h>
30#include <linux/export.h>
30 31
31#include "iwl-io.h" 32#include "iwl-io.h"
32#include"iwl-csr.h" 33#include"iwl-csr.h"
@@ -52,6 +53,7 @@ void iwl_set_bit(struct iwl_trans *trans, u32 reg, u32 mask)
52 __iwl_set_bit(trans, reg, mask); 53 __iwl_set_bit(trans, reg, mask);
53 spin_unlock_irqrestore(&trans->reg_lock, flags); 54 spin_unlock_irqrestore(&trans->reg_lock, flags);
54} 55}
56EXPORT_SYMBOL_GPL(iwl_set_bit);
55 57
56void iwl_clear_bit(struct iwl_trans *trans, u32 reg, u32 mask) 58void iwl_clear_bit(struct iwl_trans *trans, u32 reg, u32 mask)
57{ 59{
@@ -61,6 +63,7 @@ void iwl_clear_bit(struct iwl_trans *trans, u32 reg, u32 mask)
61 __iwl_clear_bit(trans, reg, mask); 63 __iwl_clear_bit(trans, reg, mask);
62 spin_unlock_irqrestore(&trans->reg_lock, flags); 64 spin_unlock_irqrestore(&trans->reg_lock, flags);
63} 65}
66EXPORT_SYMBOL_GPL(iwl_clear_bit);
64 67
65int iwl_poll_bit(struct iwl_trans *trans, u32 addr, 68int iwl_poll_bit(struct iwl_trans *trans, u32 addr,
66 u32 bits, u32 mask, int timeout) 69 u32 bits, u32 mask, int timeout)
@@ -76,6 +79,7 @@ int iwl_poll_bit(struct iwl_trans *trans, u32 addr,
76 79
77 return -ETIMEDOUT; 80 return -ETIMEDOUT;
78} 81}
82EXPORT_SYMBOL_GPL(iwl_poll_bit);
79 83
80int iwl_grab_nic_access_silent(struct iwl_trans *trans) 84int iwl_grab_nic_access_silent(struct iwl_trans *trans)
81{ 85{
@@ -117,6 +121,7 @@ int iwl_grab_nic_access_silent(struct iwl_trans *trans)
117 121
118 return 0; 122 return 0;
119} 123}
124EXPORT_SYMBOL_GPL(iwl_grab_nic_access_silent);
120 125
121bool iwl_grab_nic_access(struct iwl_trans *trans) 126bool iwl_grab_nic_access(struct iwl_trans *trans)
122{ 127{
@@ -130,6 +135,7 @@ bool iwl_grab_nic_access(struct iwl_trans *trans)
130 135
131 return true; 136 return true;
132} 137}
138EXPORT_SYMBOL_GPL(iwl_grab_nic_access);
133 139
134void iwl_release_nic_access(struct iwl_trans *trans) 140void iwl_release_nic_access(struct iwl_trans *trans)
135{ 141{
@@ -144,6 +150,7 @@ void iwl_release_nic_access(struct iwl_trans *trans)
144 */ 150 */
145 mmiowb(); 151 mmiowb();
146} 152}
153EXPORT_SYMBOL_GPL(iwl_release_nic_access);
147 154
148u32 iwl_read_direct32(struct iwl_trans *trans, u32 reg) 155u32 iwl_read_direct32(struct iwl_trans *trans, u32 reg)
149{ 156{
@@ -158,6 +165,7 @@ u32 iwl_read_direct32(struct iwl_trans *trans, u32 reg)
158 165
159 return value; 166 return value;
160} 167}
168EXPORT_SYMBOL_GPL(iwl_read_direct32);
161 169
162void iwl_write_direct32(struct iwl_trans *trans, u32 reg, u32 value) 170void iwl_write_direct32(struct iwl_trans *trans, u32 reg, u32 value)
163{ 171{
@@ -170,6 +178,7 @@ void iwl_write_direct32(struct iwl_trans *trans, u32 reg, u32 value)
170 } 178 }
171 spin_unlock_irqrestore(&trans->reg_lock, flags); 179 spin_unlock_irqrestore(&trans->reg_lock, flags);
172} 180}
181EXPORT_SYMBOL_GPL(iwl_write_direct32);
173 182
174int iwl_poll_direct_bit(struct iwl_trans *trans, u32 addr, u32 mask, 183int iwl_poll_direct_bit(struct iwl_trans *trans, u32 addr, u32 mask,
175 int timeout) 184 int timeout)
@@ -185,6 +194,7 @@ int iwl_poll_direct_bit(struct iwl_trans *trans, u32 addr, u32 mask,
185 194
186 return -ETIMEDOUT; 195 return -ETIMEDOUT;
187} 196}
197EXPORT_SYMBOL_GPL(iwl_poll_direct_bit);
188 198
189static inline u32 __iwl_read_prph(struct iwl_trans *trans, u32 reg) 199static inline u32 __iwl_read_prph(struct iwl_trans *trans, u32 reg)
190{ 200{
@@ -211,6 +221,7 @@ u32 iwl_read_prph(struct iwl_trans *trans, u32 reg)
211 spin_unlock_irqrestore(&trans->reg_lock, flags); 221 spin_unlock_irqrestore(&trans->reg_lock, flags);
212 return val; 222 return val;
213} 223}
224EXPORT_SYMBOL_GPL(iwl_read_prph);
214 225
215void iwl_write_prph(struct iwl_trans *trans, u32 addr, u32 val) 226void iwl_write_prph(struct iwl_trans *trans, u32 addr, u32 val)
216{ 227{
@@ -223,6 +234,7 @@ void iwl_write_prph(struct iwl_trans *trans, u32 addr, u32 val)
223 } 234 }
224 spin_unlock_irqrestore(&trans->reg_lock, flags); 235 spin_unlock_irqrestore(&trans->reg_lock, flags);
225} 236}
237EXPORT_SYMBOL_GPL(iwl_write_prph);
226 238
227void iwl_set_bits_prph(struct iwl_trans *trans, u32 reg, u32 mask) 239void iwl_set_bits_prph(struct iwl_trans *trans, u32 reg, u32 mask)
228{ 240{
@@ -236,6 +248,7 @@ void iwl_set_bits_prph(struct iwl_trans *trans, u32 reg, u32 mask)
236 } 248 }
237 spin_unlock_irqrestore(&trans->reg_lock, flags); 249 spin_unlock_irqrestore(&trans->reg_lock, flags);
238} 250}
251EXPORT_SYMBOL_GPL(iwl_set_bits_prph);
239 252
240void iwl_set_bits_mask_prph(struct iwl_trans *trans, u32 reg, 253void iwl_set_bits_mask_prph(struct iwl_trans *trans, u32 reg,
241 u32 bits, u32 mask) 254 u32 bits, u32 mask)
@@ -250,6 +263,7 @@ void iwl_set_bits_mask_prph(struct iwl_trans *trans, u32 reg,
250 } 263 }
251 spin_unlock_irqrestore(&trans->reg_lock, flags); 264 spin_unlock_irqrestore(&trans->reg_lock, flags);
252} 265}
266EXPORT_SYMBOL_GPL(iwl_set_bits_mask_prph);
253 267
254void iwl_clear_bits_prph(struct iwl_trans *trans, u32 reg, u32 mask) 268void iwl_clear_bits_prph(struct iwl_trans *trans, u32 reg, u32 mask)
255{ 269{
@@ -264,6 +278,7 @@ void iwl_clear_bits_prph(struct iwl_trans *trans, u32 reg, u32 mask)
264 } 278 }
265 spin_unlock_irqrestore(&trans->reg_lock, flags); 279 spin_unlock_irqrestore(&trans->reg_lock, flags);
266} 280}
281EXPORT_SYMBOL_GPL(iwl_clear_bits_prph);
267 282
268void _iwl_read_targ_mem_words(struct iwl_trans *trans, u32 addr, 283void _iwl_read_targ_mem_words(struct iwl_trans *trans, u32 addr,
269 void *buf, int words) 284 void *buf, int words)
@@ -281,6 +296,7 @@ void _iwl_read_targ_mem_words(struct iwl_trans *trans, u32 addr,
281 } 296 }
282 spin_unlock_irqrestore(&trans->reg_lock, flags); 297 spin_unlock_irqrestore(&trans->reg_lock, flags);
283} 298}
299EXPORT_SYMBOL_GPL(_iwl_read_targ_mem_words);
284 300
285u32 iwl_read_targ_mem(struct iwl_trans *trans, u32 addr) 301u32 iwl_read_targ_mem(struct iwl_trans *trans, u32 addr)
286{ 302{
@@ -290,6 +306,7 @@ u32 iwl_read_targ_mem(struct iwl_trans *trans, u32 addr)
290 306
291 return value; 307 return value;
292} 308}
309EXPORT_SYMBOL_GPL(iwl_read_targ_mem);
293 310
294int _iwl_write_targ_mem_words(struct iwl_trans *trans, u32 addr, 311int _iwl_write_targ_mem_words(struct iwl_trans *trans, u32 addr,
295 void *buf, int words) 312 void *buf, int words)
@@ -310,8 +327,10 @@ int _iwl_write_targ_mem_words(struct iwl_trans *trans, u32 addr,
310 327
311 return result; 328 return result;
312} 329}
330EXPORT_SYMBOL_GPL(_iwl_write_targ_mem_words);
313 331
314int iwl_write_targ_mem(struct iwl_trans *trans, u32 addr, u32 val) 332int iwl_write_targ_mem(struct iwl_trans *trans, u32 addr, u32 val)
315{ 333{
316 return _iwl_write_targ_mem_words(trans, addr, &val, 1); 334 return _iwl_write_targ_mem_words(trans, addr, &val, 1);
317} 335}
336EXPORT_SYMBOL_GPL(iwl_write_targ_mem);