Commit ce1234d2 authored by Michael Wu's avatar Michael Wu Committed by David S. Miller

[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: default avatarMichael Wu <flamingice@sourmilk.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent d703e29a
...@@ -1540,6 +1540,7 @@ static int adm8211_start(struct ieee80211_hw *dev) ...@@ -1540,6 +1540,7 @@ static int adm8211_start(struct ieee80211_hw *dev)
ADM8211_CSR_WRITE(IER, ADM8211_IER_NIE | ADM8211_IER_AIE | ADM8211_CSR_WRITE(IER, ADM8211_IER_NIE | ADM8211_IER_AIE |
ADM8211_IER_RCIE | ADM8211_IER_TCIE | ADM8211_IER_RCIE | ADM8211_IER_TCIE |
ADM8211_IER_TDUIE | ADM8211_IER_GPTIE); ADM8211_IER_TDUIE | ADM8211_IER_GPTIE);
priv->mode = IEEE80211_IF_TYPE_MNTR;
adm8211_update_mode(dev); adm8211_update_mode(dev);
ADM8211_CSR_WRITE(RDR, 0); ADM8211_CSR_WRITE(RDR, 0);
...@@ -1554,6 +1555,7 @@ static void adm8211_stop(struct ieee80211_hw *dev) ...@@ -1554,6 +1555,7 @@ static void adm8211_stop(struct ieee80211_hw *dev)
{ {
struct adm8211_priv *priv = dev->priv; struct adm8211_priv *priv = dev->priv;
priv->mode = IEEE80211_IF_TYPE_MGMT;
priv->nar = 0; priv->nar = 0;
ADM8211_CSR_WRITE(NAR, 0); ADM8211_CSR_WRITE(NAR, 0);
ADM8211_CSR_WRITE(IER, 0); ADM8211_CSR_WRITE(IER, 0);
...@@ -1896,7 +1898,7 @@ static int __devinit adm8211_probe(struct pci_dev *pdev, ...@@ -1896,7 +1898,7 @@ static int __devinit adm8211_probe(struct pci_dev *pdev,
priv->tx_power = 0x40; priv->tx_power = 0x40;
priv->lpf_cutoff = 0xFF; priv->lpf_cutoff = 0xFF;
priv->lnags_threshold = 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 */ /* Power-on issue. EEPROM won't read correctly without */
if (pdev->revision >= ADM8211_REV_BA) { if (pdev->revision >= ADM8211_REV_BA) {
...@@ -1991,7 +1993,7 @@ static int adm8211_suspend(struct pci_dev *pdev, pm_message_t state) ...@@ -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 ieee80211_hw *dev = pci_get_drvdata(pdev);
struct adm8211_priv *priv = dev->priv; struct adm8211_priv *priv = dev->priv;
if (priv->mode != IEEE80211_IF_TYPE_MNTR) { if (priv->mode != IEEE80211_IF_TYPE_MGMT) {
ieee80211_stop_queues(dev); ieee80211_stop_queues(dev);
adm8211_stop(dev); adm8211_stop(dev);
} }
...@@ -2009,7 +2011,7 @@ static int adm8211_resume(struct pci_dev *pdev) ...@@ -2009,7 +2011,7 @@ static int adm8211_resume(struct pci_dev *pdev)
pci_set_power_state(pdev, PCI_D0); pci_set_power_state(pdev, PCI_D0);
pci_restore_state(pdev); pci_restore_state(pdev);
if (priv->mode != IEEE80211_IF_TYPE_MNTR) { if (priv->mode != IEEE80211_IF_TYPE_MGMT) {
adm8211_start(dev); adm8211_start(dev);
ieee80211_start_queues(dev); ieee80211_start_queues(dev);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment