aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Wu <flamingice@sourmilk.net>2007-09-24 18:10:25 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:53:10 -0400
commitce1234d299f3823ea07019c0f7b7b0bcb81ee7a0 (patch)
treef8614a31570dbbe832541afcf426555eb7154eaa
parentd703e29a88c91f015aa691a195e8fd4426c4ec73 (diff)
[PATCH] adm8211: Detect interface up/down in suspend/resume hooks correctly
Interface up/down detection was incorrectly changed during the filter API update. Signed-off-by: Michael Wu <flamingice@sourmilk.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/adm8211.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c
index 95c8315d71ec..e4fdadb52503 100644
--- a/drivers/net/wireless/adm8211.c
+++ b/drivers/net/wireless/adm8211.c
@@ -1540,6 +1540,7 @@ static int adm8211_start(struct ieee80211_hw *dev)
1540 ADM8211_CSR_WRITE(IER, ADM8211_IER_NIE | ADM8211_IER_AIE | 1540 ADM8211_CSR_WRITE(IER, ADM8211_IER_NIE | ADM8211_IER_AIE |
1541 ADM8211_IER_RCIE | ADM8211_IER_TCIE | 1541 ADM8211_IER_RCIE | ADM8211_IER_TCIE |
1542 ADM8211_IER_TDUIE | ADM8211_IER_GPTIE); 1542 ADM8211_IER_TDUIE | ADM8211_IER_GPTIE);
1543 priv->mode = IEEE80211_IF_TYPE_MNTR;
1543 adm8211_update_mode(dev); 1544 adm8211_update_mode(dev);
1544 ADM8211_CSR_WRITE(RDR, 0); 1545 ADM8211_CSR_WRITE(RDR, 0);
1545 1546
@@ -1554,6 +1555,7 @@ static void adm8211_stop(struct ieee80211_hw *dev)
1554{ 1555{
1555 struct adm8211_priv *priv = dev->priv; 1556 struct adm8211_priv *priv = dev->priv;
1556 1557
1558 priv->mode = IEEE80211_IF_TYPE_MGMT;
1557 priv->nar = 0; 1559 priv->nar = 0;
1558 ADM8211_CSR_WRITE(NAR, 0); 1560 ADM8211_CSR_WRITE(NAR, 0);
1559 ADM8211_CSR_WRITE(IER, 0); 1561 ADM8211_CSR_WRITE(IER, 0);
@@ -1896,7 +1898,7 @@ static int __devinit adm8211_probe(struct pci_dev *pdev,
1896 priv->tx_power = 0x40; 1898 priv->tx_power = 0x40;
1897 priv->lpf_cutoff = 0xFF; 1899 priv->lpf_cutoff = 0xFF;
1898 priv->lnags_threshold = 0xFF; 1900 priv->lnags_threshold = 0xFF;
1899 priv->mode = IEEE80211_IF_TYPE_MNTR; 1901 priv->mode = IEEE80211_IF_TYPE_MGMT;
1900 1902
1901 /* Power-on issue. EEPROM won't read correctly without */ 1903 /* Power-on issue. EEPROM won't read correctly without */
1902 if (pdev->revision >= ADM8211_REV_BA) { 1904 if (pdev->revision >= ADM8211_REV_BA) {
@@ -1991,7 +1993,7 @@ static int adm8211_suspend(struct pci_dev *pdev, pm_message_t state)
1991 struct ieee80211_hw *dev = pci_get_drvdata(pdev); 1993 struct ieee80211_hw *dev = pci_get_drvdata(pdev);
1992 struct adm8211_priv *priv = dev->priv; 1994 struct adm8211_priv *priv = dev->priv;
1993 1995
1994 if (priv->mode != IEEE80211_IF_TYPE_MNTR) { 1996 if (priv->mode != IEEE80211_IF_TYPE_MGMT) {
1995 ieee80211_stop_queues(dev); 1997 ieee80211_stop_queues(dev);
1996 adm8211_stop(dev); 1998 adm8211_stop(dev);
1997 } 1999 }
@@ -2009,7 +2011,7 @@ static int adm8211_resume(struct pci_dev *pdev)
2009 pci_set_power_state(pdev, PCI_D0); 2011 pci_set_power_state(pdev, PCI_D0);
2010 pci_restore_state(pdev); 2012 pci_restore_state(pdev);
2011 2013
2012 if (priv->mode != IEEE80211_IF_TYPE_MNTR) { 2014 if (priv->mode != IEEE80211_IF_TYPE_MGMT) {
2013 adm8211_start(dev); 2015 adm8211_start(dev);
2014 ieee80211_start_queues(dev); 2016 ieee80211_start_queues(dev);
2015 } 2017 }