diff options
author | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2009-10-19 03:24:56 -0400 |
---|---|---|
committer | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2009-11-03 15:49:36 -0500 |
commit | c931ceeb780560ff652a8f9875f88778439ee87e (patch) | |
tree | ca754722967ff1b9a4660ef38b0eae3d36f38a58 /drivers/net/wimax/i2400m/fw.c | |
parent | 55a662d6468005ec3cd799fbd8d0ad03dfae6d2a (diff) |
wimax/i2400m: introduce i2400m_reset(), stopping TX and carrier
Currently the i2400m driver was resetting by just calling
i2400m->bus_reset(). However, this was missing stopping the TX queue
and downing the carrier. This was causing, for the corner case of the
driver reseting a device that refuses to go out of idle mode, that a
few packets would be queued and more than one reset would go through,
making the recovery a wee bit messy.
To avoid introducing the same cleanup in all the bus-specific driver,
introduced a i2400m_reset() function that takes care of house cleaning
and then calling the bus-level reset implementation.
The bulk of the changes in all files are just to rename the call from
i2400m->bus_reset() to i2400m_reset().
Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Diffstat (limited to 'drivers/net/wimax/i2400m/fw.c')
-rw-r--r-- | drivers/net/wimax/i2400m/fw.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c index fda54bfdf70e..64cdfeb299ca 100644 --- a/drivers/net/wimax/i2400m/fw.c +++ b/drivers/net/wimax/i2400m/fw.c | |||
@@ -130,7 +130,7 @@ | |||
130 | * i2400m_fw_dnload | 130 | * i2400m_fw_dnload |
131 | * i2400m_bootrom_init | 131 | * i2400m_bootrom_init |
132 | * i2400m_bm_cmd | 132 | * i2400m_bm_cmd |
133 | * i2400m->bus_reset | 133 | * i2400m_reset |
134 | * i2400m_dnload_init | 134 | * i2400m_dnload_init |
135 | * i2400m_dnload_init_signed | 135 | * i2400m_dnload_init_signed |
136 | * i2400m_dnload_init_nonsigned | 136 | * i2400m_dnload_init_nonsigned |
@@ -902,7 +902,7 @@ do_reboot: | |||
902 | d_printf(4, dev, "device reboot: reboot command [%d # left]\n", | 902 | d_printf(4, dev, "device reboot: reboot command [%d # left]\n", |
903 | count); | 903 | count); |
904 | if ((flags & I2400M_BRI_NO_REBOOT) == 0) | 904 | if ((flags & I2400M_BRI_NO_REBOOT) == 0) |
905 | i2400m->bus_reset(i2400m, I2400M_RT_WARM); | 905 | i2400m_reset(i2400m, I2400M_RT_WARM); |
906 | result = i2400m_bm_cmd(i2400m, NULL, 0, &ack, sizeof(ack), | 906 | result = i2400m_bm_cmd(i2400m, NULL, 0, &ack, sizeof(ack), |
907 | I2400M_BM_CMD_RAW); | 907 | I2400M_BM_CMD_RAW); |
908 | flags &= ~I2400M_BRI_NO_REBOOT; | 908 | flags &= ~I2400M_BRI_NO_REBOOT; |