diff options
author | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2009-10-23 17:48:36 -0700 |
---|---|---|
committer | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2009-11-03 12:49:39 -0800 |
commit | fae92216da87d1c78aa51c4503acb312a47266e9 (patch) | |
tree | 0df0784e265e6ec55eb0ed5566b8bf99e1dd2ba7 /drivers/net/wimax/i2400m/i2400m-sdio.h | |
parent | 02eb41ef2a8631022fd90e096c57562dec9e7a9a (diff) | |
download | lwn-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.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 { * @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 */ |