summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRaja Mani <rmani@qca.qualcomm.com>2012-03-02 13:32:08 +0100
committerKalle Valo <kvalo@qca.qualcomm.com>2012-03-05 18:06:34 +0100
commitdaa16bc52ad8e9513506fca29a038a1460e63638 (patch)
tree76b2c579905a65d05b70e46fa53d2ae3b68c30aa /drivers
parentath6kl: Fix random system lockup (diff)
downloadlinux-daa16bc52ad8e9513506fca29a038a1460e63638.tar.xz
linux-daa16bc52ad8e9513506fca29a038a1460e63638.zip
ath6kl: Restrict memcpy to bounce buffer only for write request
No need to copy received local buffer content to bounce buffer (DMA buffer) while performing sync READ operation from the chip. It's applicable for only WRITE operation. Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath6kl/sdio.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index 346f5dd3a954..e2f42a133952 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -405,7 +405,10 @@ static int ath6kl_sdio_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf,
return -ENOMEM;
mutex_lock(&ar_sdio->dma_buffer_mutex);
tbuf = ar_sdio->dma_buffer;
- memcpy(tbuf, buf, len);
+
+ if (request & HIF_WRITE)
+ memcpy(tbuf, buf, len);
+
bounced = true;
} else
tbuf = buf;