[PATCH] adm8211: Detect interface up/down in suspend/resume hooks correctly
authorMichael Wu <flamingice@sourmilk.net>
Mon, 24 Sep 2007 22:10:25 +0000 (18:10 -0400)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 10 Oct 2007 23:53:10 +0000 (16:53 -0700)
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>
drivers/net/wireless/adm8211.c

index 95c8315d71ec600846df3b86b92c08cb3cbb0f07..e4fdadb52503bb0ae82bf479ba3ca12b3c38f132 100644 (file)
@@ -1540,6 +1540,7 @@ static int adm8211_start(struct ieee80211_hw *dev)
        ADM8211_CSR_WRITE(IER, ADM8211_IER_NIE | ADM8211_IER_AIE |
                               ADM8211_IER_RCIE | ADM8211_IER_TCIE |
                               ADM8211_IER_TDUIE | ADM8211_IER_GPTIE);
+       priv->mode = IEEE80211_IF_TYPE_MNTR;
        adm8211_update_mode(dev);
        ADM8211_CSR_WRITE(RDR, 0);
 
@@ -1554,6 +1555,7 @@ static void adm8211_stop(struct ieee80211_hw *dev)
 {
        struct adm8211_priv *priv = dev->priv;
 
+       priv->mode = IEEE80211_IF_TYPE_MGMT;
        priv->nar = 0;
        ADM8211_CSR_WRITE(NAR, 0);
        ADM8211_CSR_WRITE(IER, 0);
@@ -1896,7 +1898,7 @@ static int __devinit adm8211_probe(struct pci_dev *pdev,
        priv->tx_power = 0x40;
        priv->lpf_cutoff = 0xFF;
        priv->lnags_threshold = 0xFF;
-       priv->mode = IEEE80211_IF_TYPE_MNTR;
+       priv->mode = IEEE80211_IF_TYPE_MGMT;
 
        /* Power-on issue. EEPROM won't read correctly without */
        if (pdev->revision >= ADM8211_REV_BA) {
@@ -1991,7 +1993,7 @@ static int adm8211_suspend(struct pci_dev *pdev, pm_message_t state)
        struct ieee80211_hw *dev = pci_get_drvdata(pdev);
        struct adm8211_priv *priv = dev->priv;
 
-       if (priv->mode != IEEE80211_IF_TYPE_MNTR) {
+       if (priv->mode != IEEE80211_IF_TYPE_MGMT) {
                ieee80211_stop_queues(dev);
                adm8211_stop(dev);
        }
@@ -2009,7 +2011,7 @@ static int adm8211_resume(struct pci_dev *pdev)
        pci_set_power_state(pdev, PCI_D0);
        pci_restore_state(pdev);
 
-       if (priv->mode != IEEE80211_IF_TYPE_MNTR) {
+       if (priv->mode != IEEE80211_IF_TYPE_MGMT) {
                adm8211_start(dev);
                ieee80211_start_queues(dev);
        }