aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rt2x00')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800pci.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index 1df2d44a6158..a2b37d38d400 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -1015,6 +1015,14 @@ static void rt2800pci_txdone(struct rt2x00_dev *rt2x00dev)
1015 } 1015 }
1016} 1016}
1017 1017
1018static void rt2800pci_wakeup(struct rt2x00_dev *rt2x00dev)
1019{
1020 struct ieee80211_conf conf = { .flags = 0 };
1021 struct rt2x00lib_conf libconf = { .conf = &conf };
1022
1023 rt2800_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
1024}
1025
1018static irqreturn_t rt2800pci_interrupt(int irq, void *dev_instance) 1026static irqreturn_t rt2800pci_interrupt(int irq, void *dev_instance)
1019{ 1027{
1020 struct rt2x00_dev *rt2x00dev = dev_instance; 1028 struct rt2x00_dev *rt2x00dev = dev_instance;
@@ -1039,6 +1047,9 @@ static irqreturn_t rt2800pci_interrupt(int irq, void *dev_instance)
1039 if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) 1047 if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS))
1040 rt2800pci_txdone(rt2x00dev); 1048 rt2800pci_txdone(rt2x00dev);
1041 1049
1050 if (rt2x00_get_field32(reg, INT_SOURCE_CSR_AUTO_WAKEUP))
1051 rt2800pci_wakeup(rt2x00dev);
1052
1042 return IRQ_HANDLED; 1053 return IRQ_HANDLED;
1043} 1054}
1044 1055