diff options
| -rw-r--r-- | drivers/net/wireless/rtlwifi/pci.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c index 9f8ccae93317..254b64ba4bf6 100644 --- a/drivers/net/wireless/rtlwifi/pci.c +++ b/drivers/net/wireless/rtlwifi/pci.c | |||
| @@ -1624,6 +1624,16 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev, | |||
| 1624 | pci_read_config_byte(pdev, 0x8, &revisionid); | 1624 | pci_read_config_byte(pdev, 0x8, &revisionid); |
| 1625 | pci_read_config_word(pdev, 0x3C, &irqline); | 1625 | pci_read_config_word(pdev, 0x3C, &irqline); |
| 1626 | 1626 | ||
| 1627 | /* PCI ID 0x10ec:0x8192 occurs for both RTL8192E, which uses | ||
| 1628 | * r8192e_pci, and RTL8192SE, which uses this driver. If the | ||
| 1629 | * revision ID is RTL_PCI_REVISION_ID_8192PCIE (0x01), then | ||
| 1630 | * the correct driver is r8192e_pci, thus this routine should | ||
| 1631 | * return false. | ||
| 1632 | */ | ||
| 1633 | if (deviceid == RTL_PCI_8192SE_DID && | ||
| 1634 | revisionid == RTL_PCI_REVISION_ID_8192PCIE) | ||
| 1635 | return false; | ||
| 1636 | |||
| 1627 | if (deviceid == RTL_PCI_8192_DID || | 1637 | if (deviceid == RTL_PCI_8192_DID || |
| 1628 | deviceid == RTL_PCI_0044_DID || | 1638 | deviceid == RTL_PCI_0044_DID || |
| 1629 | deviceid == RTL_PCI_0047_DID || | 1639 | deviceid == RTL_PCI_0047_DID || |
| @@ -1856,7 +1866,8 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev, | |||
| 1856 | pci_write_config_byte(pdev, 0x04, 0x07); | 1866 | pci_write_config_byte(pdev, 0x04, 0x07); |
| 1857 | 1867 | ||
| 1858 | /* find adapter */ | 1868 | /* find adapter */ |
| 1859 | _rtl_pci_find_adapter(pdev, hw); | 1869 | if (!_rtl_pci_find_adapter(pdev, hw)) |
| 1870 | goto fail3; | ||
| 1860 | 1871 | ||
| 1861 | /* Init IO handler */ | 1872 | /* Init IO handler */ |
| 1862 | _rtl_pci_io_handler_init(&pdev->dev, hw); | 1873 | _rtl_pci_io_handler_init(&pdev->dev, hw); |
