diff options
author | Andrea Merello <andrea.merello@gmail.com> | 2014-03-27 00:04:05 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-03-27 22:20:09 +0400 |
commit | 24b5fbf9d85cae3c9a320d23bddedd23a487db42 (patch) | |
tree | a46d865783f94a3059c8e35825a28e47a58fef48 /drivers/net/wireless/rtl818x | |
parent | e944b0af86d8fdcdd91abbe92338bda402a292b5 (diff) | |
download | linux-24b5fbf9d85cae3c9a320d23bddedd23a487db42.tar.xz |
rtl8180: detect rtl8187se card
Add case to detect the rtl8187se card and its RF frontend.
In this case set also accordingly mac80211 queue number.
Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rtl818x')
-rw-r--r-- | drivers/net/wireless/rtl818x/rtl8180/dev.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/net/wireless/rtl818x/rtl8180/dev.c b/drivers/net/wireless/rtl818x/rtl8180/dev.c index a14dfd931fa4..2046fe2f1065 100644 --- a/drivers/net/wireless/rtl818x/rtl8180/dev.c +++ b/drivers/net/wireless/rtl818x/rtl8180/dev.c @@ -1740,6 +1740,12 @@ static int rtl8180_probe(struct pci_dev *pdev, chip_name = "RTL8185vD"; priv->chip_family = RTL818X_CHIP_FAMILY_RTL8185; break; + + case RTL818X_TX_CONF_RTL8187SE: + chip_name = "RTL8187SE"; + priv->chip_family = RTL818X_CHIP_FAMILY_RTL8187SE; + break; + default: printk(KERN_ERR "%s (rtl8180): Unknown chip! (0x%x)\n", pci_name(pdev), reg >> 25); @@ -1753,7 +1759,10 @@ static int rtl8180_probe(struct pci_dev *pdev, * with mac80211, however the beacon queue is an exception and it * is mapped on the highst tx ring IDX. */ - dev->queues = RTL8180_NR_TX_QUEUES - 1; + if (priv->chip_family == RTL818X_CHIP_FAMILY_RTL8187SE) + dev->queues = RTL8187SE_NR_TX_QUEUES - 1; + else + dev->queues = RTL8180_NR_TX_QUEUES - 1; if (priv->chip_family != RTL818X_CHIP_FAMILY_RTL8180) { priv->band.n_bitrates = ARRAY_SIZE(rtl818x_rates); @@ -1773,7 +1782,11 @@ static int rtl8180_probe(struct pci_dev *pdev, break; case 5: priv->rf = &grf5101_rf_ops; break; - case 9: priv->rf = rtl8180_detect_rf(dev); + case 9: + if (priv->chip_family == RTL818X_CHIP_FAMILY_RTL8187SE) + priv->rf = rtl8187se_detect_rf(dev); + else + priv->rf = rtl8180_detect_rf(dev); break; case 10: rf_name = "RTL8255"; |