aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSujith Manoharan <c_manoha@qca.qualcomm.com>2013-06-21 01:41:52 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-06-24 14:44:24 -0400
commitfca3c21d5659f21edbf30a80b706cbc00f368659 (patch)
treef0b53afc55a160538d92f4c02bdfa3418bedc218
parent7258416c517c79b2ebb30b61d8c6807a04dc6b25 (diff)
ath9k: Enable WoW only for supported models
Since platform support is required for WoW, identify and and enable Wow only for supported cards. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h1
-rw-r--r--drivers/net/wireless/ath/ath9k/init.c1
-rw-r--r--drivers/net/wireless/ath/ath9k/pci.c57
3 files changed, 59 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 04b2d3ea728f..c1224b5a257b 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -634,6 +634,7 @@ void ath_ant_comb_update(struct ath_softc *sc);
634#define ATH9K_PCI_CUS198 0x0001 634#define ATH9K_PCI_CUS198 0x0001
635#define ATH9K_PCI_CUS230 0x0002 635#define ATH9K_PCI_CUS230 0x0002
636#define ATH9K_PCI_CUS217 0x0004 636#define ATH9K_PCI_CUS217 0x0004
637#define ATH9K_PCI_WOW 0x0008
637 638
638/* 639/*
639 * Default cache line size, in bytes. 640 * Default cache line size, in bytes.
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index 1e555d899469..16f8b201642b 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -837,6 +837,7 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
837 837
838#ifdef CONFIG_PM_SLEEP 838#ifdef CONFIG_PM_SLEEP
839 if ((ah->caps.hw_caps & ATH9K_HW_WOW_DEVICE_CAPABLE) && 839 if ((ah->caps.hw_caps & ATH9K_HW_WOW_DEVICE_CAPABLE) &&
840 (sc->driver_data & ATH9K_PCI_WOW) &&
840 device_can_wakeup(sc->dev)) 841 device_can_wakeup(sc->dev))
841 hw->wiphy->wowlan = &ath9k_wowlan_support; 842 hw->wiphy->wowlan = &ath9k_wowlan_support;
842 843
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
index b096bb2c28c8..c585c9b35973 100644
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
@@ -79,6 +79,63 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_id_table) = {
79 0x6661), 79 0x6661),
80 .driver_data = ATH9K_PCI_CUS217 }, 80 .driver_data = ATH9K_PCI_CUS217 },
81 81
82 /* AR9462 with WoW support */
83 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
84 0x0034,
85 PCI_VENDOR_ID_ATHEROS,
86 0x3117),
87 .driver_data = ATH9K_PCI_WOW },
88 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
89 0x0034,
90 PCI_VENDOR_ID_LENOVO,
91 0x3214),
92 .driver_data = ATH9K_PCI_WOW },
93 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
94 0x0034,
95 PCI_VENDOR_ID_ATTANSIC,
96 0x0091),
97 .driver_data = ATH9K_PCI_WOW },
98 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
99 0x0034,
100 PCI_VENDOR_ID_AZWAVE,
101 0x2110),
102 .driver_data = ATH9K_PCI_WOW },
103 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
104 0x0034,
105 PCI_VENDOR_ID_ASUSTEK,
106 0x850E),
107 .driver_data = ATH9K_PCI_WOW },
108 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
109 0x0034,
110 0x11AD, /* LITEON */
111 0x6631),
112 .driver_data = ATH9K_PCI_WOW },
113 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
114 0x0034,
115 0x11AD, /* LITEON */
116 0x6641),
117 .driver_data = ATH9K_PCI_WOW },
118 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
119 0x0034,
120 PCI_VENDOR_ID_HP,
121 0x1864),
122 .driver_data = ATH9K_PCI_WOW },
123 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
124 0x0034,
125 0x14CD, /* USI */
126 0x0063),
127 .driver_data = ATH9K_PCI_WOW },
128 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
129 0x0034,
130 0x14CD, /* USI */
131 0x0064),
132 .driver_data = ATH9K_PCI_WOW },
133 { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
134 0x0034,
135 0x10CF, /* Fujitsu */
136 0x1783),
137 .driver_data = ATH9K_PCI_WOW },
138
82 { PCI_VDEVICE(ATHEROS, 0x0034) }, /* PCI-E AR9462 */ 139 { PCI_VDEVICE(ATHEROS, 0x0034) }, /* PCI-E AR9462 */
83 { PCI_VDEVICE(ATHEROS, 0x0037) }, /* PCI-E AR1111/AR9485 */ 140 { PCI_VDEVICE(ATHEROS, 0x0037) }, /* PCI-E AR1111/AR9485 */
84 { PCI_VDEVICE(ATHEROS, 0x0036) }, /* PCI-E AR9565 */ 141 { PCI_VDEVICE(ATHEROS, 0x0036) }, /* PCI-E AR9565 */