diff options
Diffstat (limited to 'drivers/net/wireless/ath')
| -rw-r--r-- | drivers/net/wireless/ath/ath5k/base.c | 12 | ||||
| -rw-r--r-- | drivers/net/wireless/ath/ath5k/phy.c | 7 |
2 files changed, 14 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 2978359c4366..648972df369d 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c | |||
| @@ -195,7 +195,7 @@ static const struct ieee80211_rate ath5k_rates[] = { | |||
| 195 | static int __devinit ath5k_pci_probe(struct pci_dev *pdev, | 195 | static int __devinit ath5k_pci_probe(struct pci_dev *pdev, |
| 196 | const struct pci_device_id *id); | 196 | const struct pci_device_id *id); |
| 197 | static void __devexit ath5k_pci_remove(struct pci_dev *pdev); | 197 | static void __devexit ath5k_pci_remove(struct pci_dev *pdev); |
| 198 | #ifdef CONFIG_PM | 198 | #ifdef CONFIG_PM_SLEEP |
| 199 | static int ath5k_pci_suspend(struct device *dev); | 199 | static int ath5k_pci_suspend(struct device *dev); |
| 200 | static int ath5k_pci_resume(struct device *dev); | 200 | static int ath5k_pci_resume(struct device *dev); |
| 201 | 201 | ||
| @@ -203,7 +203,7 @@ static SIMPLE_DEV_PM_OPS(ath5k_pm_ops, ath5k_pci_suspend, ath5k_pci_resume); | |||
| 203 | #define ATH5K_PM_OPS (&ath5k_pm_ops) | 203 | #define ATH5K_PM_OPS (&ath5k_pm_ops) |
| 204 | #else | 204 | #else |
| 205 | #define ATH5K_PM_OPS NULL | 205 | #define ATH5K_PM_OPS NULL |
| 206 | #endif /* CONFIG_PM */ | 206 | #endif /* CONFIG_PM_SLEEP */ |
| 207 | 207 | ||
| 208 | static struct pci_driver ath5k_pci_driver = { | 208 | static struct pci_driver ath5k_pci_driver = { |
| 209 | .name = KBUILD_MODNAME, | 209 | .name = KBUILD_MODNAME, |
| @@ -708,7 +708,7 @@ ath5k_pci_remove(struct pci_dev *pdev) | |||
| 708 | ieee80211_free_hw(hw); | 708 | ieee80211_free_hw(hw); |
| 709 | } | 709 | } |
| 710 | 710 | ||
| 711 | #ifdef CONFIG_PM | 711 | #ifdef CONFIG_PM_SLEEP |
| 712 | static int ath5k_pci_suspend(struct device *dev) | 712 | static int ath5k_pci_suspend(struct device *dev) |
| 713 | { | 713 | { |
| 714 | struct ieee80211_hw *hw = pci_get_drvdata(to_pci_dev(dev)); | 714 | struct ieee80211_hw *hw = pci_get_drvdata(to_pci_dev(dev)); |
| @@ -734,7 +734,7 @@ static int ath5k_pci_resume(struct device *dev) | |||
| 734 | ath5k_led_enable(sc); | 734 | ath5k_led_enable(sc); |
| 735 | return 0; | 735 | return 0; |
| 736 | } | 736 | } |
| 737 | #endif /* CONFIG_PM */ | 737 | #endif /* CONFIG_PM_SLEEP */ |
| 738 | 738 | ||
| 739 | 739 | ||
| 740 | /***********************\ | 740 | /***********************\ |
| @@ -3140,13 +3140,15 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw, | |||
| 3140 | 3140 | ||
| 3141 | if (changed_flags & (FIF_PROMISC_IN_BSS | FIF_OTHER_BSS)) { | 3141 | if (changed_flags & (FIF_PROMISC_IN_BSS | FIF_OTHER_BSS)) { |
| 3142 | if (*new_flags & FIF_PROMISC_IN_BSS) { | 3142 | if (*new_flags & FIF_PROMISC_IN_BSS) { |
| 3143 | rfilt |= AR5K_RX_FILTER_PROM; | ||
| 3144 | __set_bit(ATH_STAT_PROMISC, sc->status); | 3143 | __set_bit(ATH_STAT_PROMISC, sc->status); |
| 3145 | } else { | 3144 | } else { |
| 3146 | __clear_bit(ATH_STAT_PROMISC, sc->status); | 3145 | __clear_bit(ATH_STAT_PROMISC, sc->status); |
| 3147 | } | 3146 | } |
| 3148 | } | 3147 | } |
| 3149 | 3148 | ||
| 3149 | if (test_bit(ATH_STAT_PROMISC, sc->status)) | ||
| 3150 | rfilt |= AR5K_RX_FILTER_PROM; | ||
| 3151 | |||
| 3150 | /* Note, AR5K_RX_FILTER_MCAST is already enabled */ | 3152 | /* Note, AR5K_RX_FILTER_MCAST is already enabled */ |
| 3151 | if (*new_flags & FIF_ALLMULTI) { | 3153 | if (*new_flags & FIF_ALLMULTI) { |
| 3152 | mfilt[0] = ~0; | 3154 | mfilt[0] = ~0; |
diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c index 1b81c4778800..492cbb15720d 100644 --- a/drivers/net/wireless/ath/ath5k/phy.c +++ b/drivers/net/wireless/ath/ath5k/phy.c | |||
| @@ -1814,6 +1814,13 @@ ath5k_hw_set_antenna_mode(struct ath5k_hw *ah, u8 ant_mode) | |||
| 1814 | u8 def_ant, tx_ant, ee_mode; | 1814 | u8 def_ant, tx_ant, ee_mode; |
| 1815 | u32 sta_id1 = 0; | 1815 | u32 sta_id1 = 0; |
| 1816 | 1816 | ||
| 1817 | /* if channel is not initialized yet we can't set the antennas | ||
| 1818 | * so just store the mode. it will be set on the next reset */ | ||
| 1819 | if (channel == NULL) { | ||
| 1820 | ah->ah_ant_mode = ant_mode; | ||
| 1821 | return; | ||
| 1822 | } | ||
| 1823 | |||
| 1817 | def_ant = ah->ah_def_ant; | 1824 | def_ant = ah->ah_def_ant; |
| 1818 | 1825 | ||
| 1819 | ATH5K_TRACE(ah->ah_sc); | 1826 | ATH5K_TRACE(ah->ah_sc); |
