Commit 7be0f5b5 authored by Avinash Patil's avatar Avinash Patil Committed by Kalle Valo

mwifiex: enable MSI interrupt support in pcie

Newer pcie devices (8897 onwards) support MSI. This
patch enables it.
Signed-off-by: default avatarAvinash Patil <patila@marvell.com>
Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent f3b35f28
......@@ -2599,6 +2599,30 @@ static void mwifiex_pcie_cleanup(struct mwifiex_adapter *adapter)
kfree(card);
}
static int mwifiex_pcie_request_irq(struct mwifiex_adapter *adapter)
{
int ret;
struct pcie_service_card *card = adapter->card;
struct pci_dev *pdev = card->dev;
if (pci_enable_msi(pdev) != 0)
pci_disable_msi(pdev);
else
card->msi_enable = 1;
mwifiex_dbg(adapter, INFO, "msi_enable = %d\n", card->msi_enable);
ret = request_irq(pdev->irq, mwifiex_pcie_interrupt, IRQF_SHARED,
"MRVL_PCIE", pdev);
if (ret) {
pr_err("request_irq failed: ret=%d\n", ret);
adapter->card = NULL;
return -1;
}
return 0;
}
/*
* This function registers the PCIE device.
*
......@@ -2606,21 +2630,14 @@ static void mwifiex_pcie_cleanup(struct mwifiex_adapter *adapter)
*/
static int mwifiex_register_dev(struct mwifiex_adapter *adapter)
{
int ret;
struct pcie_service_card *card = adapter->card;
struct pci_dev *pdev = card->dev;
/* save adapter pointer in card */
card->adapter = adapter;
ret = request_irq(pdev->irq, mwifiex_pcie_interrupt, IRQF_SHARED,
"MRVL_PCIE", pdev);
if (ret) {
mwifiex_dbg(adapter, ERROR,
"request_irq failed: ret=%d\n", ret);
adapter->card = NULL;
if (mwifiex_pcie_request_irq(adapter))
return -1;
}
adapter->dev = &pdev->dev;
adapter->tx_buf_size = card->pcie.tx_buf_size;
......
......@@ -326,6 +326,7 @@ struct pcie_service_card {
dma_addr_t sleep_cookie_pbase;
void __iomem *pci_mmap;
void __iomem *pci_mmap1;
int msi_enable;
};
static inline int
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment