mirror of
https://github.com/torvalds/linux.git
synced 2024-10-31 01:01:52 +00:00
ath: update hardware mac address with bssid mask
Preparation for updating common->macaddr along with virtual interface MAC address changes. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
703a4e5521
commit
ecbbed32e7
@ -1698,12 +1698,11 @@ static void ath9k_hw_reset_opmode(struct ath_hw *ah,
|
||||
|
||||
ENABLE_REGWRITE_BUFFER(ah);
|
||||
|
||||
REG_WRITE(ah, AR_STA_ID0, get_unaligned_le32(common->macaddr));
|
||||
REG_WRITE(ah, AR_STA_ID1, get_unaligned_le16(common->macaddr + 4)
|
||||
| macStaId1
|
||||
REG_RMW(ah, AR_STA_ID1, macStaId1
|
||||
| AR_STA_ID1_RTS_USE_DEF
|
||||
| (ah->config.ack_6mb ? AR_STA_ID1_ACKCTS_6MB : 0)
|
||||
| ah->sta_id1_defaults);
|
||||
| ah->sta_id1_defaults,
|
||||
~AR_STA_ID1_SADH_MASK);
|
||||
ath_hw_setbssidmask(common);
|
||||
REG_WRITE(ah, AR_DEF_ANTENNA, saveDefAntenna);
|
||||
ath9k_hw_write_associd(ah);
|
||||
|
@ -1493,9 +1493,6 @@ enum {
|
||||
#define AR9271_RADIO_RF_RST 0x20
|
||||
#define AR9271_GATE_MAC_CTL 0x4000
|
||||
|
||||
#define AR_STA_ID0 0x8000
|
||||
#define AR_STA_ID1 0x8004
|
||||
#define AR_STA_ID1_SADH_MASK 0x0000FFFF
|
||||
#define AR_STA_ID1_STA_AP 0x00010000
|
||||
#define AR_STA_ID1_ADHOC 0x00020000
|
||||
#define AR_STA_ID1_PWR_SAV 0x00040000
|
||||
|
@ -118,6 +118,12 @@
|
||||
void ath_hw_setbssidmask(struct ath_common *common)
|
||||
{
|
||||
void *ah = common->ah;
|
||||
u32 id1;
|
||||
|
||||
REG_WRITE(ah, AR_STA_ID0, get_unaligned_le32(common->macaddr));
|
||||
id1 = REG_READ(ah, AR_STA_ID1) & ~AR_STA_ID1_SADH_MASK;
|
||||
id1 |= get_unaligned_le16(common->macaddr + 4);
|
||||
REG_WRITE(ah, AR_STA_ID1, id1);
|
||||
|
||||
REG_WRITE(ah, AR_BSSMSKL, get_unaligned_le32(common->bssidmask));
|
||||
REG_WRITE(ah, AR_BSSMSKU, get_unaligned_le16(common->bssidmask + 4));
|
||||
|
@ -23,6 +23,10 @@
|
||||
#define AR_MIBC_CMC 0x00000004
|
||||
#define AR_MIBC_MCS 0x00000008
|
||||
|
||||
#define AR_STA_ID0 0x8000
|
||||
#define AR_STA_ID1 0x8004
|
||||
#define AR_STA_ID1_SADH_MASK 0x0000ffff
|
||||
|
||||
/*
|
||||
* BSSID mask registers. See ath_hw_set_bssid_mask()
|
||||
* for detailed documentation about these registers.
|
||||
|
Loading…
Reference in New Issue
Block a user