[Xenial][PATCH v2] UBUNTU: SAUCE: mwifiex: Use PCI ID instead of DMI ID to identify Edge Gateways
jesse.sung at canonical.com
jesse.sung at canonical.com
Mon Nov 14 14:38:55 UTC 2016
From: Wen-chien Jesse Sung <jesse.sung at canonical.com>
BugLink: https://launchpad.net/bugs/1640418
The DMI ID string may be changed in some models. Use PCI ID as an
indentification instead.
Signed-off-by: Wen-chien Jesse Sung <jesse.sung at canonical.com>
---
drivers/net/wireless/mwifiex/pcie.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/mwifiex/pcie.c b/drivers/net/wireless/mwifiex/pcie.c
index 0dbb528..8922593 100644
--- a/drivers/net/wireless/mwifiex/pcie.c
+++ b/drivers/net/wireless/mwifiex/pcie.c
@@ -191,6 +191,7 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
{
struct pcie_service_card *card;
struct mwifiex_private *priv;
+ struct pci_dev *pdev_host;
pr_debug("info: vendor=0x%4.04X device=0x%4.04X rev=%d\n",
pdev->vendor, pdev->device, pdev->revision);
@@ -219,9 +220,13 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
}
priv = mwifiex_get_priv(card->adapter, MWIFIEX_BSS_ROLE_STA);
- if (dmi_match(DMI_PRODUCT_NAME, "Edge Gateway 5000") ||
- dmi_match(DMI_PRODUCT_NAME, "Edge Gateway 5100"))
+ pdev_host = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0720, NULL);
+ if (!pdev_host)
+ pdev_host = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0733, NULL);
+ if (pdev_host) {
priv->is_edge_gateway = true;
+ pci_dev_put(pdev_host);
+ }
return 0;
}
--
2.7.4
More information about the kernel-team
mailing list