aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2009-05-17 19:02:34 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-05-20 14:46:28 -0400
commit6edf534a3214e8fad943d7acd903603f0a5b9ac8 (patch)
tree983a69a0a90c459d33046ee33566fb9384652e26 /drivers/net
parent465b63537f93e82a2606332830801acb64467ec9 (diff)
p54spi: always call p54spi_sleep in p54spi_tx_frame if p54spi_wakeup succeeded
Put chip into sleep state, once it's been awaken. Also, propagate error code to the caller. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/p54/p54spi.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/p54/p54spi.c b/drivers/net/wireless/p54/p54spi.c
index 5038e8aa9353..e830a2e68450 100644
--- a/drivers/net/wireless/p54/p54spi.c
+++ b/drivers/net/wireless/p54/p54spi.c
@@ -434,16 +434,16 @@ static int p54spi_tx_frame(struct p54s_priv *priv, struct sk_buff *skb)
434 if (!p54spi_wait_bit(priv, SPI_ADRS_HOST_INTERRUPTS, 434 if (!p54spi_wait_bit(priv, SPI_ADRS_HOST_INTERRUPTS,
435 cpu_to_le32(SPI_HOST_INT_WR_READY))) { 435 cpu_to_le32(SPI_HOST_INT_WR_READY))) {
436 dev_err(&priv->spi->dev, "WR_READY timeout\n"); 436 dev_err(&priv->spi->dev, "WR_READY timeout\n");
437 ret = -1; 437 ret = -EAGAIN;
438 goto out; 438 goto out;
439 } 439 }
440 440
441 p54spi_int_ack(priv, SPI_HOST_INT_WR_READY); 441 p54spi_int_ack(priv, SPI_HOST_INT_WR_READY);
442 p54spi_sleep(priv);
443 442
444 if (FREE_AFTER_TX(skb)) 443 if (FREE_AFTER_TX(skb))
445 p54_free_skb(priv->hw, skb); 444 p54_free_skb(priv->hw, skb);
446out: 445out:
446 p54spi_sleep(priv);
447 return ret; 447 return ret;
448} 448}
449 449