summaryrefslogtreecommitdiff
path: root/drivers/net/wimax/i2400m/i2400m-sdio.h
diff options
context:
space:
mode:
authorInaky Perez-Gonzalez <inaky@linux.intel.com>2009-10-23 17:48:36 -0700
committerInaky Perez-Gonzalez <inaky@linux.intel.com>2009-11-03 12:49:39 -0800
commitfae92216da87d1c78aa51c4503acb312a47266e9 (patch)
tree0df0784e265e6ec55eb0ed5566b8bf99e1dd2ba7 /drivers/net/wimax/i2400m/i2400m-sdio.h
parent02eb41ef2a8631022fd90e096c57562dec9e7a9a (diff)
downloadlwn-fae92216da87d1c78aa51c4503acb312a47266e9.tar.gz
lwn-fae92216da87d1c78aa51c4503acb312a47266e9.zip
wimax/i2400m: don't retry SDIO enable in probe() paths
The iwmc3200 has a quirk where retrying SDIO enable during the probe() path causes bad interactions with the TOP function controller that causes a reset storm. The workaround is simply not to retry an SDIO enable in said path (and still do in the reset / reinitialization paths). The driver does so by checking i2400ms->debugfs_dentry to see if it has been initialized; if not, it is in the probe() path. Document said fact in i2400ms->debugfs_entry. Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Diffstat (limited to 'drivers/net/wimax/i2400m/i2400m-sdio.h')
-rw-r--r--drivers/net/wimax/i2400m/i2400m-sdio.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wimax/i2400m/i2400m-sdio.h b/drivers/net/wimax/i2400m/i2400m-sdio.h
index fba482c08d66..b9c4bed3b457 100644
--- a/drivers/net/wimax/i2400m/i2400m-sdio.h
+++ b/drivers/net/wimax/i2400m/i2400m-sdio.h
@@ -100,6 +100,14 @@ enum {
* @tx_workqueue: workqeueue used for data TX; we don't use the
* system's workqueue as that might cause deadlocks with code in
* the bus-generic driver.
+ *
+ * @debugfs_dentry: dentry for the SDIO specific debugfs files
+ *
+ * Note this value is set to NULL upon destruction; this is
+ * because some routinges use it to determine if we are inside the
+ * probe() path or some other path. When debugfs is disabled,
+ * creation sets the dentry to '(void*) -ENODEV', which is valid
+ * for the test.
*/
struct i2400ms {
struct i2400m i2400m; /* FIRST! See doc */