diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2008-03-25 19:33:38 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-27 16:03:17 -0400 |
commit | 775ea378fa04f39164f170f308ec467ee4ab6d34 (patch) | |
tree | ad51795c1858885be24c316fcaafaa5176ec9ac0 | |
parent | 3395f6e9cf48469d7ee05703cad1502002741c16 (diff) |
iwlwifi: improve NIC i/o debug prints information
This patch gives the function's caller name in case NIC
access reference count was not used by it.
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-io.h | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-io.h b/drivers/net/wireless/iwlwifi/iwl-io.h index 09cc094340b0..5bc3df432d2d 100644 --- a/drivers/net/wireless/iwlwifi/iwl-io.h +++ b/drivers/net/wireless/iwlwifi/iwl-io.h | |||
@@ -42,10 +42,12 @@ | |||
42 | * check or debug information is printed when that function is called. | 42 | * check or debug information is printed when that function is called. |
43 | * | 43 | * |
44 | * A double __ prefix before an access function means that state is checked | 44 | * A double __ prefix before an access function means that state is checked |
45 | * and the current line number is printed in addition to any other debug output. | 45 | * and the current line number and caller function name are printed in addition |
46 | * to any other debug output. | ||
46 | * | 47 | * |
47 | * The non-prefixed name is the #define that maps the caller into a | 48 | * The non-prefixed name is the #define that maps the caller into a |
48 | * #define that provides the caller's __LINE__ to the double prefix version. | 49 | * #define that provides the caller's name and __LINE__ to the double |
50 | * prefix version. | ||
49 | * | 51 | * |
50 | * If you wish to call the function without any debug or state checking, | 52 | * If you wish to call the function without any debug or state checking, |
51 | * you should use the single _ prefix version (as is used by dependent IO | 53 | * you should use the single _ prefix version (as is used by dependent IO |
@@ -197,8 +199,7 @@ static inline int __iwl_grab_nic_access(const char *f, u32 l, | |||
197 | struct iwl_priv *priv) | 199 | struct iwl_priv *priv) |
198 | { | 200 | { |
199 | if (atomic_read(&priv->restrict_refcnt)) | 201 | if (atomic_read(&priv->restrict_refcnt)) |
200 | IWL_DEBUG_INFO("Grabbing access while already held at " | 202 | IWL_ERROR("Grabbing access while already held %s %d.\n", f, l); |
201 | "line %d.\n", l); | ||
202 | 203 | ||
203 | IWL_DEBUG_IO("grabbing nic access - %s %d\n", f, l); | 204 | IWL_DEBUG_IO("grabbing nic access - %s %d\n", f, l); |
204 | return _iwl_grab_nic_access(priv); | 205 | return _iwl_grab_nic_access(priv); |
@@ -223,7 +224,7 @@ static inline void __iwl_release_nic_access(const char *f, u32 l, | |||
223 | struct iwl_priv *priv) | 224 | struct iwl_priv *priv) |
224 | { | 225 | { |
225 | if (atomic_read(&priv->restrict_refcnt) <= 0) | 226 | if (atomic_read(&priv->restrict_refcnt) <= 0) |
226 | IWL_ERROR("Release unheld nic access at line %d.\n", l); | 227 | IWL_ERROR("Release unheld nic access at line %s %d.\n", f, l); |
227 | 228 | ||
228 | IWL_DEBUG_IO("releasing nic access - %s %d\n", f, l); | 229 | IWL_DEBUG_IO("releasing nic access - %s %d\n", f, l); |
229 | _iwl_release_nic_access(priv); | 230 | _iwl_release_nic_access(priv); |
@@ -262,15 +263,15 @@ static inline void _iwl_write_direct32(struct iwl_priv *priv, | |||
262 | _iwl_write32(priv, reg, value); | 263 | _iwl_write32(priv, reg, value); |
263 | } | 264 | } |
264 | #ifdef CONFIG_IWLWIFI_DEBUG | 265 | #ifdef CONFIG_IWLWIFI_DEBUG |
265 | static void __iwl_write_direct32(u32 line, | 266 | static void __iwl_write_direct32(const char *f , u32 line, |
266 | struct iwl_priv *priv, u32 reg, u32 value) | 267 | struct iwl_priv *priv, u32 reg, u32 value) |
267 | { | 268 | { |
268 | if (!atomic_read(&priv->restrict_refcnt)) | 269 | if (!atomic_read(&priv->restrict_refcnt)) |
269 | IWL_ERROR("Nic access not held from line %d\n", line); | 270 | IWL_ERROR("Nic access not held from %s line %d\n", f, line); |
270 | _iwl_write_direct32(priv, reg, value); | 271 | _iwl_write_direct32(priv, reg, value); |
271 | } | 272 | } |
272 | #define iwl_write_direct32(priv, reg, value) \ | 273 | #define iwl_write_direct32(priv, reg, value) \ |
273 | __iwl_write_direct32(__LINE__, priv, reg, value) | 274 | __iwl_write_direct32(__func__, __LINE__, priv, reg, value) |
274 | #else | 275 | #else |
275 | #define iwl_write_direct32 _iwl_write_direct32 | 276 | #define iwl_write_direct32 _iwl_write_direct32 |
276 | #endif | 277 | #endif |
@@ -328,15 +329,16 @@ static inline u32 _iwl_read_prph(struct iwl_priv *priv, u32 reg) | |||
328 | return _iwl_read_direct32(priv, HBUS_TARG_PRPH_RDAT); | 329 | return _iwl_read_direct32(priv, HBUS_TARG_PRPH_RDAT); |
329 | } | 330 | } |
330 | #ifdef CONFIG_IWLWIFI_DEBUG | 331 | #ifdef CONFIG_IWLWIFI_DEBUG |
331 | static inline u32 __iwl_read_prph(u32 line, struct iwl_priv *priv, u32 reg) | 332 | static inline u32 __iwl_read_prph(const char *f, u32 line, |
333 | struct iwl_priv *priv, u32 reg) | ||
332 | { | 334 | { |
333 | if (!atomic_read(&priv->restrict_refcnt)) | 335 | if (!atomic_read(&priv->restrict_refcnt)) |
334 | IWL_ERROR("Nic access not held from line %d\n", line); | 336 | IWL_ERROR("Nic access not held from %s line %d\n", f, line); |
335 | return _iwl_read_prph(priv, reg); | 337 | return _iwl_read_prph(priv, reg); |
336 | } | 338 | } |
337 | 339 | ||
338 | #define iwl_read_prph(priv, reg) \ | 340 | #define iwl_read_prph(priv, reg) \ |
339 | __iwl_read_prph(__LINE__, priv, reg) | 341 | __iwl_read_prph(__func__, __LINE__, priv, reg) |
340 | #else | 342 | #else |
341 | #define iwl_read_prph _iwl_read_prph | 343 | #define iwl_read_prph _iwl_read_prph |
342 | #endif | 344 | #endif |
@@ -349,16 +351,16 @@ static inline void _iwl_write_prph(struct iwl_priv *priv, | |||
349 | _iwl_write_direct32(priv, HBUS_TARG_PRPH_WDAT, val); | 351 | _iwl_write_direct32(priv, HBUS_TARG_PRPH_WDAT, val); |
350 | } | 352 | } |
351 | #ifdef CONFIG_IWLWIFI_DEBUG | 353 | #ifdef CONFIG_IWLWIFI_DEBUG |
352 | static inline void __iwl_write_prph(u32 line, struct iwl_priv *priv, | 354 | static inline void __iwl_write_prph(const char *f, u32 line, |
353 | u32 addr, u32 val) | 355 | struct iwl_priv *priv, u32 addr, u32 val) |
354 | { | 356 | { |
355 | if (!atomic_read(&priv->restrict_refcnt)) | 357 | if (!atomic_read(&priv->restrict_refcnt)) |
356 | IWL_ERROR("Nic access from line %d\n", line); | 358 | IWL_ERROR("Nic access not held from %s line %d\n", f, line); |
357 | _iwl_write_prph(priv, addr, val); | 359 | _iwl_write_prph(priv, addr, val); |
358 | } | 360 | } |
359 | 361 | ||
360 | #define iwl_write_prph(priv, addr, val) \ | 362 | #define iwl_write_prph(priv, addr, val) \ |
361 | __iwl_write_prph(__LINE__, priv, addr, val); | 363 | __iwl_write_prph(__func__, __LINE__, priv, addr, val); |
362 | #else | 364 | #else |
363 | #define iwl_write_prph _iwl_write_prph | 365 | #define iwl_write_prph _iwl_write_prph |
364 | #endif | 366 | #endif |
@@ -366,16 +368,17 @@ static inline void __iwl_write_prph(u32 line, struct iwl_priv *priv, | |||
366 | #define _iwl_set_bits_prph(priv, reg, mask) \ | 368 | #define _iwl_set_bits_prph(priv, reg, mask) \ |
367 | _iwl_write_prph(priv, reg, (_iwl_read_prph(priv, reg) | mask)) | 369 | _iwl_write_prph(priv, reg, (_iwl_read_prph(priv, reg) | mask)) |
368 | #ifdef CONFIG_IWLWIFI_DEBUG | 370 | #ifdef CONFIG_IWLWIFI_DEBUG |
369 | static inline void __iwl_set_bits_prph(u32 line, struct iwl_priv *priv, | 371 | static inline void __iwl_set_bits_prph(const char *f, u32 line, |
370 | u32 reg, u32 mask) | 372 | struct iwl_priv *priv, |
373 | u32 reg, u32 mask) | ||
371 | { | 374 | { |
372 | if (!atomic_read(&priv->restrict_refcnt)) | 375 | if (!atomic_read(&priv->restrict_refcnt)) |
373 | IWL_ERROR("Nic access not held from line %d\n", line); | 376 | IWL_ERROR("Nic access not held from %s line %d\n", f, line); |
374 | 377 | ||
375 | _iwl_set_bits_prph(priv, reg, mask); | 378 | _iwl_set_bits_prph(priv, reg, mask); |
376 | } | 379 | } |
377 | #define iwl_set_bits_prph(priv, reg, mask) \ | 380 | #define iwl_set_bits_prph(priv, reg, mask) \ |
378 | __iwl_set_bits_prph(__LINE__, priv, reg, mask) | 381 | __iwl_set_bits_prph(__func__, __LINE__, priv, reg, mask) |
379 | #else | 382 | #else |
380 | #define iwl_set_bits_prph _iwl_set_bits_prph | 383 | #define iwl_set_bits_prph _iwl_set_bits_prph |
381 | #endif | 384 | #endif |
@@ -384,15 +387,15 @@ static inline void __iwl_set_bits_prph(u32 line, struct iwl_priv *priv, | |||
384 | _iwl_write_prph(priv, reg, ((_iwl_read_prph(priv, reg) & mask) | bits)) | 387 | _iwl_write_prph(priv, reg, ((_iwl_read_prph(priv, reg) & mask) | bits)) |
385 | 388 | ||
386 | #ifdef CONFIG_IWLWIFI_DEBUG | 389 | #ifdef CONFIG_IWLWIFI_DEBUG |
387 | static inline void __iwl_set_bits_mask_prph(u32 line, | 390 | static inline void __iwl_set_bits_mask_prph(const char *f, u32 line, |
388 | struct iwl_priv *priv, u32 reg, u32 bits, u32 mask) | 391 | struct iwl_priv *priv, u32 reg, u32 bits, u32 mask) |
389 | { | 392 | { |
390 | if (!atomic_read(&priv->restrict_refcnt)) | 393 | if (!atomic_read(&priv->restrict_refcnt)) |
391 | IWL_ERROR("Nic access not held from line %d\n", line); | 394 | IWL_ERROR("Nic access not held from %s line %d\n", f, line); |
392 | _iwl_set_bits_mask_prph(priv, reg, bits, mask); | 395 | _iwl_set_bits_mask_prph(priv, reg, bits, mask); |
393 | } | 396 | } |
394 | #define iwl_set_bits_mask_prph(priv, reg, bits, mask) \ | 397 | #define iwl_set_bits_mask_prph(priv, reg, bits, mask) \ |
395 | __iwl_set_bits_mask_prph(__LINE__, priv, reg, bits, mask) | 398 | __iwl_set_bits_mask_prph(__func__, __LINE__, priv, reg, bits, mask) |
396 | #else | 399 | #else |
397 | #define iwl_set_bits_mask_prph _iwl_set_bits_mask_prph | 400 | #define iwl_set_bits_mask_prph _iwl_set_bits_mask_prph |
398 | #endif | 401 | #endif |