aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wimax/i2400m/fw.c
diff options
context:
space:
mode:
authorInaky Perez-Gonzalez <inaky@linux.intel.com>2009-10-19 03:24:56 -0400
committerInaky Perez-Gonzalez <inaky@linux.intel.com>2009-11-03 15:49:36 -0500
commitc931ceeb780560ff652a8f9875f88778439ee87e (patch)
treeca754722967ff1b9a4660ef38b0eae3d36f38a58 /drivers/net/wimax/i2400m/fw.c
parent55a662d6468005ec3cd799fbd8d0ad03dfae6d2a (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.c4
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;