diff options
author | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2009-10-23 20:48:36 -0400 |
---|---|---|
committer | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2009-11-03 15:49:39 -0500 |
commit | fae92216da87d1c78aa51c4503acb312a47266e9 (patch) | |
tree | 0df0784e265e6ec55eb0ed5566b8bf99e1dd2ba7 /drivers/net/wimax/i2400m/i2400m-sdio.h | |
parent | 02eb41ef2a8631022fd90e096c57562dec9e7a9a (diff) |
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.h | 8 |
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 { | |||
100 | * @tx_workqueue: workqeueue used for data TX; we don't use the | 100 | * @tx_workqueue: workqeueue used for data TX; we don't use the |
101 | * system's workqueue as that might cause deadlocks with code in | 101 | * system's workqueue as that might cause deadlocks with code in |
102 | * the bus-generic driver. | 102 | * the bus-generic driver. |
103 | * | ||
104 | * @debugfs_dentry: dentry for the SDIO specific debugfs files | ||
105 | * | ||
106 | * Note this value is set to NULL upon destruction; this is | ||
107 | * because some routinges use it to determine if we are inside the | ||
108 | * probe() path or some other path. When debugfs is disabled, | ||
109 | * creation sets the dentry to '(void*) -ENODEV', which is valid | ||
110 | * for the test. | ||
103 | */ | 111 | */ |
104 | struct i2400ms { | 112 | struct i2400ms { |
105 | struct i2400m i2400m; /* FIRST! See doc */ | 113 | struct i2400m i2400m; /* FIRST! See doc */ |