ath9k_hw: Add abstraction for rx enable
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
ceb2644576
commit
cee1f625bf
5 changed files with 21 additions and 7 deletions
|
@ -28,6 +28,11 @@ static inline void ath9k_hw_configpcipowersave(struct ath_hw *ah,
|
||||||
ath9k_hw_ops(ah)->config_pci_powersave(ah, restore, power_off);
|
ath9k_hw_ops(ah)->config_pci_powersave(ah, restore, power_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void ath9k_hw_rxena(struct ath_hw *ah)
|
||||||
|
{
|
||||||
|
ath9k_hw_ops(ah)->rx_enable(ah);
|
||||||
|
}
|
||||||
|
|
||||||
/* Private hardware call ops */
|
/* Private hardware call ops */
|
||||||
|
|
||||||
/* PHY ops */
|
/* PHY ops */
|
||||||
|
|
|
@ -1566,6 +1566,8 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
|
||||||
if (tsf && AR_SREV_9280(ah) && ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL))
|
if (tsf && AR_SREV_9280(ah) && ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL))
|
||||||
ath9k_hw_settsf64(ah, tsf);
|
ath9k_hw_settsf64(ah, tsf);
|
||||||
|
|
||||||
|
ar9002_hw_attach_mac_ops(ah);
|
||||||
|
|
||||||
if (AR_SREV_9280_10_OR_LATER(ah))
|
if (AR_SREV_9280_10_OR_LATER(ah))
|
||||||
REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL, AR_GPIO_JTAG_DISABLE);
|
REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL, AR_GPIO_JTAG_DISABLE);
|
||||||
|
|
||||||
|
|
|
@ -509,6 +509,7 @@ struct ath_hw_ops {
|
||||||
void (*config_pci_powersave)(struct ath_hw *ah,
|
void (*config_pci_powersave)(struct ath_hw *ah,
|
||||||
int restore,
|
int restore,
|
||||||
int power_off);
|
int power_off);
|
||||||
|
void (*rx_enable)(struct ath_hw *ah);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ath_hw {
|
struct ath_hw {
|
||||||
|
|
|
@ -16,6 +16,17 @@
|
||||||
|
|
||||||
#include "hw.h"
|
#include "hw.h"
|
||||||
|
|
||||||
|
static void ar9002_hw_rx_enable(struct ath_hw *ah)
|
||||||
|
{
|
||||||
|
REG_WRITE(ah, AR_CR, AR_CR_RXE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ar9002_hw_attach_mac_ops(struct ath_hw *ah)
|
||||||
|
{
|
||||||
|
struct ath_hw_ops *ops = ath9k_hw_ops(ah);
|
||||||
|
|
||||||
|
ops->rx_enable = ar9002_hw_rx_enable;
|
||||||
|
}
|
||||||
static void ath9k_hw_set_txq_interrupts(struct ath_hw *ah,
|
static void ath9k_hw_set_txq_interrupts(struct ath_hw *ah,
|
||||||
struct ath9k_tx_queue_info *qi)
|
struct ath9k_tx_queue_info *qi)
|
||||||
{
|
{
|
||||||
|
@ -999,12 +1010,6 @@ void ath9k_hw_putrxbuf(struct ath_hw *ah, u32 rxdp)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ath9k_hw_putrxbuf);
|
EXPORT_SYMBOL(ath9k_hw_putrxbuf);
|
||||||
|
|
||||||
void ath9k_hw_rxena(struct ath_hw *ah)
|
|
||||||
{
|
|
||||||
REG_WRITE(ah, AR_CR, AR_CR_RXE);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(ath9k_hw_rxena);
|
|
||||||
|
|
||||||
void ath9k_hw_startpcureceive(struct ath_hw *ah)
|
void ath9k_hw_startpcureceive(struct ath_hw *ah)
|
||||||
{
|
{
|
||||||
ath9k_enable_mib_counters(ah);
|
ath9k_enable_mib_counters(ah);
|
||||||
|
|
|
@ -729,10 +729,11 @@ void ath9k_hw_setuprxdesc(struct ath_hw *ah, struct ath_desc *ds,
|
||||||
u32 size, u32 flags);
|
u32 size, u32 flags);
|
||||||
bool ath9k_hw_setrxabort(struct ath_hw *ah, bool set);
|
bool ath9k_hw_setrxabort(struct ath_hw *ah, bool set);
|
||||||
void ath9k_hw_putrxbuf(struct ath_hw *ah, u32 rxdp);
|
void ath9k_hw_putrxbuf(struct ath_hw *ah, u32 rxdp);
|
||||||
void ath9k_hw_rxena(struct ath_hw *ah);
|
|
||||||
void ath9k_hw_startpcureceive(struct ath_hw *ah);
|
void ath9k_hw_startpcureceive(struct ath_hw *ah);
|
||||||
void ath9k_hw_stoppcurecv(struct ath_hw *ah);
|
void ath9k_hw_stoppcurecv(struct ath_hw *ah);
|
||||||
bool ath9k_hw_stopdmarecv(struct ath_hw *ah);
|
bool ath9k_hw_stopdmarecv(struct ath_hw *ah);
|
||||||
int ath9k_hw_beaconq_setup(struct ath_hw *ah);
|
int ath9k_hw_beaconq_setup(struct ath_hw *ah);
|
||||||
|
|
||||||
|
void ar9002_hw_attach_mac_ops(struct ath_hw *ah);
|
||||||
|
|
||||||
#endif /* MAC_H */
|
#endif /* MAC_H */
|
||||||
|
|
Reference in a new issue