From: Hamad Kadmany <qca_hkadm...@qca.qualcomm.com>

11ad device supports 48 bit addresses, reflect that
by setting the dma mask accordingly.

Signed-off-by: Hamad Kadmany <qca_hkadm...@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_me...@qca.qualcomm.com>
---
 drivers/net/wireless/ath/wil6210/pcie_bus.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/net/wireless/ath/wil6210/pcie_bus.c 
b/drivers/net/wireless/ath/wil6210/pcie_bus.c
index e891068..3a63e98 100644
--- a/drivers/net/wireless/ath/wil6210/pcie_bus.c
+++ b/drivers/net/wireless/ath/wil6210/pcie_bus.c
@@ -205,6 +205,19 @@ static int wil_pcie_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
                return -ENODEV;
        }
 
+       /* device supports 48bit addresses */
+       rc = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(48));
+       if (rc) {
+               dev_err(dev, "dma_set_mask_and_coherent(48) failed: %d\n", rc);
+               rc = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));
+               if (rc) {
+                       dev_err(dev,
+                               "dma_set_mask_and_coherent(32) failed: %d\n",
+                               rc);
+                       return rc;
+               }
+       }
+
        wil = wil_if_alloc(dev);
        if (IS_ERR(wil)) {
                rc = (int)PTR_ERR(wil);
-- 
1.9.1

Reply via email to