diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2009-05-17 19:02:34 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-05-20 14:46:28 -0400 |
commit | 6edf534a3214e8fad943d7acd903603f0a5b9ac8 (patch) | |
tree | 983a69a0a90c459d33046ee33566fb9384652e26 /drivers/net | |
parent | 465b63537f93e82a2606332830801acb64467ec9 (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.c | 4 |
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); |
446 | out: | 445 | out: |
446 | p54spi_sleep(priv); | ||
447 | return ret; | 447 | return ret; |
448 | } | 448 | } |
449 | 449 | ||