mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-20 11:13:58 +08:00
mwifiex: enable MSI interrupt support in pcie
Newer pcie devices (8897 onwards) support MSI. This patch enables it. Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
f3b35f2809
commit
7be0f5b5e1
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user