summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/mwifiex/pcie.h
diff options
context:
space:
mode:
authorAvinash Patil <patila@marvell.com>2013-01-03 21:21:31 -0800
committerJohn W. Linville <linville@tuxdriver.com>2013-01-07 15:18:30 -0500
commitfbd7e7ac6db3db8bccf3210d23b5a2a66471c538 (patch)
tree3a138321b0a97fc6ece0874d217e824e5290c5ea /drivers/net/wireless/mwifiex/pcie.h
parentfc3314609047daf472b3ffc49f9a1c5608068713 (diff)
mwifiex: flush TX ring for PCIe after disconnect or bss stop
This patch adds handler to clean PCIe TX rings after disconnect or bss stop is called for PCIe based mwifiex driver. Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/pcie.h')
-rw-r--r--drivers/net/wireless/mwifiex/pcie.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/pcie.h b/drivers/net/wireless/mwifiex/pcie.h
index 87201f554d2e..24a39b32a222 100644
--- a/drivers/net/wireless/mwifiex/pcie.h
+++ b/drivers/net/wireless/mwifiex/pcie.h
@@ -114,6 +114,7 @@ struct pcie_service_card {
struct pci_dev *dev;
struct mwifiex_adapter *adapter;
+ u8 txbd_flush;
u32 txbd_wrptr;
u32 txbd_rdptr;
u32 txbd_ring_size;
@@ -146,4 +147,16 @@ struct pcie_service_card {
void __iomem *pci_mmap1;
};
+static inline int
+mwifiex_pcie_txbd_empty(struct pcie_service_card *card, u32 rdptr)
+{
+ if (((card->txbd_wrptr & MWIFIEX_TXBD_MASK) ==
+ (rdptr & MWIFIEX_TXBD_MASK)) &&
+ ((card->txbd_wrptr & MWIFIEX_BD_FLAG_ROLLOVER_IND) !=
+ (rdptr & MWIFIEX_BD_FLAG_ROLLOVER_IND)))
+ return 1;
+
+ return 0;
+}
+
#endif /* _MWIFIEX_PCIE_H */