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/rt2400pci.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt2500pci.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt2500usb.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.c6
5 files changed, 17 insertions, 5 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
index c22b04042d5c..08a4789fc2d8 100644
--- a/drivers/net/wireless/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/rt2x00/rt2400pci.c
@@ -525,6 +525,10 @@ static void rt2400pci_config_ps(struct rt2x00_dev *rt2x00dev,
525 525
526 rt2x00_set_field32(&reg, CSR20_AUTOWAKE, 1); 526 rt2x00_set_field32(&reg, CSR20_AUTOWAKE, 1);
527 rt2x00pci_register_write(rt2x00dev, CSR20, reg); 527 rt2x00pci_register_write(rt2x00dev, CSR20, reg);
528 } else {
529 rt2x00pci_register_read(rt2x00dev, CSR20, &reg);
530 rt2x00_set_field32(&reg, CSR20_AUTOWAKE, 0);
531 rt2x00pci_register_write(rt2x00dev, CSR20, reg);
528 } 532 }
529 533
530 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state); 534 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state);
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index 52bbcf1bd17c..d084d70e5fe2 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -573,6 +573,10 @@ static void rt2500pci_config_ps(struct rt2x00_dev *rt2x00dev,
573 573
574 rt2x00_set_field32(&reg, CSR20_AUTOWAKE, 1); 574 rt2x00_set_field32(&reg, CSR20_AUTOWAKE, 1);
575 rt2x00pci_register_write(rt2x00dev, CSR20, reg); 575 rt2x00pci_register_write(rt2x00dev, CSR20, reg);
576 } else {
577 rt2x00pci_register_read(rt2x00dev, CSR20, &reg);
578 rt2x00_set_field32(&reg, CSR20_AUTOWAKE, 0);
579 rt2x00pci_register_write(rt2x00dev, CSR20, reg);
576 } 580 }
577 581
578 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state); 582 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state);
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
index ee34c137e7cd..c1eec17fe186 100644
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -648,6 +648,10 @@ static void rt2500usb_config_ps(struct rt2x00_dev *rt2x00dev,
648 648
649 rt2x00_set_field16(&reg, MAC_CSR18_AUTO_WAKE, 1); 649 rt2x00_set_field16(&reg, MAC_CSR18_AUTO_WAKE, 1);
650 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg); 650 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg);
651 } else {
652 rt2500usb_register_read(rt2x00dev, MAC_CSR18, &reg);
653 rt2x00_set_field16(&reg, MAC_CSR18_AUTO_WAKE, 0);
654 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg);
651 } 655 }
652 656
653 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state); 657 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state);
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 18d4d8e4ae6b..d1694912310e 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -1014,13 +1014,13 @@ static void rt2800_config_ps(struct rt2x00_dev *rt2x00dev,
1014 1014
1015 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state); 1015 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state);
1016 } else { 1016 } else {
1017 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state);
1018
1019 rt2800_register_read(rt2x00dev, AUTOWAKEUP_CFG, &reg); 1017 rt2800_register_read(rt2x00dev, AUTOWAKEUP_CFG, &reg);
1020 rt2x00_set_field32(&reg, AUTOWAKEUP_CFG_AUTO_LEAD_TIME, 0); 1018 rt2x00_set_field32(&reg, AUTOWAKEUP_CFG_AUTO_LEAD_TIME, 0);
1021 rt2x00_set_field32(&reg, AUTOWAKEUP_CFG_TBCN_BEFORE_WAKE, 0); 1019 rt2x00_set_field32(&reg, AUTOWAKEUP_CFG_TBCN_BEFORE_WAKE, 0);
1022 rt2x00_set_field32(&reg, AUTOWAKEUP_CFG_AUTOWAKE, 0); 1020 rt2x00_set_field32(&reg, AUTOWAKEUP_CFG_AUTOWAKE, 0);
1023 rt2800_register_write(rt2x00dev, AUTOWAKEUP_CFG, reg); 1021 rt2800_register_write(rt2x00dev, AUTOWAKEUP_CFG, reg);
1022
1023 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state);
1024 } 1024 }
1025} 1025}
1026 1026
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 47f3e4a26d77..7ebe14b64fe8 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -860,15 +860,15 @@ static void rt73usb_config_ps(struct rt2x00_dev *rt2x00dev,
860 rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0, 860 rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0,
861 USB_MODE_SLEEP, REGISTER_TIMEOUT); 861 USB_MODE_SLEEP, REGISTER_TIMEOUT);
862 } else { 862 } else {
863 rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0,
864 USB_MODE_WAKEUP, REGISTER_TIMEOUT);
865
866 rt2x00usb_register_read(rt2x00dev, MAC_CSR11, &reg); 863 rt2x00usb_register_read(rt2x00dev, MAC_CSR11, &reg);
867 rt2x00_set_field32(&reg, MAC_CSR11_DELAY_AFTER_TBCN, 0); 864 rt2x00_set_field32(&reg, MAC_CSR11_DELAY_AFTER_TBCN, 0);
868 rt2x00_set_field32(&reg, MAC_CSR11_TBCN_BEFORE_WAKEUP, 0); 865 rt2x00_set_field32(&reg, MAC_CSR11_TBCN_BEFORE_WAKEUP, 0);
869 rt2x00_set_field32(&reg, MAC_CSR11_AUTOWAKE, 0); 866 rt2x00_set_field32(&reg, MAC_CSR11_AUTOWAKE, 0);
870 rt2x00_set_field32(&reg, MAC_CSR11_WAKEUP_LATENCY, 0); 867 rt2x00_set_field32(&reg, MAC_CSR11_WAKEUP_LATENCY, 0);
871 rt2x00usb_register_write(rt2x00dev, MAC_CSR11, reg); 868 rt2x00usb_register_write(rt2x00dev, MAC_CSR11, reg);
869
870 rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0,
871 USB_MODE_WAKEUP, REGISTER_TIMEOUT);
872 } 872 }
873} 873}
874 874