aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKirshenbaum Erez <erezk@wilocity.com>2013-06-23 05:59:35 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-06-24 14:44:26 -0400
commit668b2bbd7fd5a87e54e83b621658d4290811c4a0 (patch)
tree0b87cd96499efafa70b0ded031706c030cd3fd4d
parent99b55bd22a4ecfc70e4bf36e69d26c4c219f3bfb (diff)
wil6210: add HW write-back option in TX descriptor
Map BIT 9 in TX DMA DWARD 0 as HW write back option. We must turn on this option in the last TX descriptor, this is required for old HW compatability. This option indicate to HW that WB is required for this descriptor. Signed-off-by: Kirshenbaum Erez <erezk@wilocity.com> Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/wil6210/txrx.c2
-rw-r--r--drivers/net/wireless/ath/wil6210/txrx.h4
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c
index 73d6c2dd08a4..d240b24e1ccf 100644
--- a/drivers/net/wireless/ath/wil6210/txrx.c
+++ b/drivers/net/wireless/ath/wil6210/txrx.c
@@ -708,7 +708,7 @@ static int wil_tx_vring(struct wil6210_priv *wil, struct vring *vring,
708 } 708 }
709 /* for the last seg only */ 709 /* for the last seg only */
710 d->dma.d0 |= BIT(DMA_CFG_DESC_TX_0_CMD_EOP_POS); 710 d->dma.d0 |= BIT(DMA_CFG_DESC_TX_0_CMD_EOP_POS);
711 d->dma.d0 |= BIT(9); /* BUG: undocumented bit */ 711 d->dma.d0 |= BIT(DMA_CFG_DESC_TX_0_CMD_MARK_WB_POS);
712 d->dma.d0 |= BIT(DMA_CFG_DESC_TX_0_CMD_DMA_IT_POS); 712 d->dma.d0 |= BIT(DMA_CFG_DESC_TX_0_CMD_DMA_IT_POS);
713 *_d = *d; 713 *_d = *d;
714 714
diff --git a/drivers/net/wireless/ath/wil6210/txrx.h b/drivers/net/wireless/ath/wil6210/txrx.h
index 23c0781cdb93..859aea68a1fa 100644
--- a/drivers/net/wireless/ath/wil6210/txrx.h
+++ b/drivers/net/wireless/ath/wil6210/txrx.h
@@ -201,6 +201,10 @@ struct vring_tx_mac {
201#define DMA_CFG_DESC_TX_0_CMD_EOP_LEN 1 201#define DMA_CFG_DESC_TX_0_CMD_EOP_LEN 1
202#define DMA_CFG_DESC_TX_0_CMD_EOP_MSK 0x100 202#define DMA_CFG_DESC_TX_0_CMD_EOP_MSK 0x100
203 203
204#define DMA_CFG_DESC_TX_0_CMD_MARK_WB_POS 9
205#define DMA_CFG_DESC_TX_0_CMD_MARK_WB_LEN 1
206#define DMA_CFG_DESC_TX_0_CMD_MARK_WB_MSK 0x200
207
204#define DMA_CFG_DESC_TX_0_CMD_DMA_IT_POS 10 208#define DMA_CFG_DESC_TX_0_CMD_DMA_IT_POS 10
205#define DMA_CFG_DESC_TX_0_CMD_DMA_IT_LEN 1 209#define DMA_CFG_DESC_TX_0_CMD_DMA_IT_LEN 1
206#define DMA_CFG_DESC_TX_0_CMD_DMA_IT_MSK 0x400 210#define DMA_CFG_DESC_TX_0_CMD_DMA_IT_MSK 0x400