Index: ar5xxx.h =================================================================== --- ar5xxx.h (revision 2172) +++ ar5xxx.h (revision 2185) @@ -1242,6 +1242,11 @@ (AR5K_INIT_TIM_OFFSET << 16) | (AR5K_INIT_BEACON_PERIOD) \ ) +#define AR5K_LOW_ID(_a) ( \ + (_a)[0] | (_a)[1] << 8 | (_a)[2] << 16 | (_a)[3] << 24 \ +) +#define AR5K_HIGH_ID(_a) ((_a)[4] | (_a)[5] << 8) + /* * Non - common initial register values */ Index: ar5210.c =================================================================== --- ar5210.c (revision 2172) +++ ar5210.c (revision 2185) @@ -512,8 +512,8 @@ /* * Set PCU and BCR registers */ - low_id = le32_to_cpu(*(__le32 *)hal->ah_sta_id); - high_id = le16_to_cpu(*(__le16 *)(hal->ah_sta_id + 4)); + low_id = AR5K_LOW_ID(hal->ah_sta_id); + high_id = AR5K_HIGH_ID(hal->ah_sta_id); AR5K_REG_WRITE(AR5K_AR5210_STA_ID0, low_id); AR5K_REG_WRITE(AR5K_AR5210_STA_ID1, pcu_reg | high_id); AR5K_REG_WRITE(AR5K_AR5210_BCR, beacon_reg); @@ -1538,8 +1538,8 @@ /* Set new station ID */ bcopy(mac, hal->ah_sta_id, IEEE80211_ADDR_LEN); - low_id = le32_to_cpu(*(__le32 *)mac); - high_id = le16_to_cpu(*(__le16 *)(mac + 4)); + low_id = AR5K_LOW_ID(mac); + high_id = AR5K_HIGH_ID(mac); AR5K_REG_WRITE(AR5K_AR5210_STA_ID0, low_id); AR5K_REG_WRITE(AR5K_AR5210_STA_ID1, high_id); @@ -1607,8 +1607,8 @@ /* * Set BSSID which triggers the "SME Join" operation */ - low_id = le32_to_cpu(*(__le32 *)bssid); - high_id = le16_to_cpu(*(__le16 *)(bssid + 4)); + low_id = AR5K_LOW_ID(bssid); + high_id = AR5K_HIGH_ID(bssid); AR5K_REG_WRITE(AR5K_AR5210_BSS_ID0, low_id); AR5K_REG_WRITE(AR5K_AR5210_BSS_ID1, high_id | ((assoc_id & 0x3fff) << AR5K_AR5210_BSS_ID1_AID_S)); @@ -2008,8 +2008,8 @@ /* MAC may be NULL if it's a broadcast key */ mac_v = mac == NULL ? etherbroadcastaddr : mac; - low_id = le32_to_cpu(*(__le32 *)mac_v); - high_id = le16_to_cpu(*(__le16 *)(mac_v + 4)); + low_id = AR5K_LOW_ID(mac_v); + high_id = AR5K_HIGH_ID(mac_v); high_id |= AR5K_AR5210_KEYTABLE_VALID; AR5K_REG_WRITE(AR5K_AR5210_KEYTABLE_MAC0(entry), low_id); Index: ar5211.c =================================================================== --- ar5211.c (revision 2172) +++ ar5211.c (revision 2185) @@ -714,8 +714,8 @@ /* * Set PCU registers */ - low_id = le32_to_cpu(*(__le32 *)hal->ah_sta_id); - high_id = le16_to_cpu(*(__le16 *)(hal->ah_sta_id + 4)); + low_id = AR5K_LOW_ID(hal->ah_sta_id); + high_id = AR5K_HIGH_ID(hal->ah_sta_id); AR5K_REG_WRITE(AR5K_AR5211_STA_ID0, low_id); AR5K_REG_WRITE(AR5K_AR5211_STA_ID1, pcu_reg | high_id); @@ -1635,8 +1635,8 @@ /* Set new station ID */ bcopy(mac, hal->ah_sta_id, IEEE80211_ADDR_LEN); - low_id = le32_to_cpu(*(__le32 *)mac); - high_id = le16_to_cpu(*(__le16 *)(mac + 4)); + low_id = AR5K_LOW_ID(mac); + high_id = AR5K_HIGH_ID(mac); AR5K_REG_WRITE(AR5K_AR5211_STA_ID0, low_id); AR5K_REG_WRITE(AR5K_AR5211_STA_ID1, high_id); @@ -1711,8 +1711,8 @@ /* * Set BSSID which triggers the "SME Join" operation */ - low_id = le32_to_cpu(*(__le32 *)bssid); - high_id = le16_to_cpu(*(__le16 *)(bssid + 4)); + low_id = AR5K_LOW_ID(bssid); + high_id = AR5K_HIGH_ID(bssid); AR5K_REG_WRITE(AR5K_AR5211_BSS_ID0, low_id); AR5K_REG_WRITE(AR5K_AR5211_BSS_ID1, high_id | ((assoc_id & 0x3fff) << AR5K_AR5211_BSS_ID1_AID_S)); @@ -2115,8 +2115,8 @@ /* MAC may be NULL if it's a broadcast key */ mac_v = mac == NULL ? etherbroadcastaddr : mac; - low_id = le32_to_cpu(*(__le32 *)mac_v); - high_id = le16_to_cpu(*(__le16 *)(mac_v + 4)); + low_id = AR5K_LOW_ID(mac_v); + high_id = AR5K_HIGH_ID(mac_v); high_id |= AR5K_AR5211_KEYTABLE_VALID; AR5K_REG_WRITE(AR5K_AR5211_KEYTABLE_MAC0(entry), low_id); Index: ar5212.c =================================================================== --- ar5212.c (revision 2172) +++ ar5212.c (revision 2185) @@ -900,8 +900,8 @@ /* * Set PCU registers */ - low_id = le32_to_cpu(*(__le32 *)hal->ah_sta_id); - high_id = le16_to_cpu(*(__le16 *)(hal->ah_sta_id + 4)); + low_id = AR5K_LOW_ID(hal->ah_sta_id); + high_id = AR5K_HIGH_ID(hal->ah_sta_id); AR5K_REG_WRITE(AR5K_AR5212_STA_ID0, low_id); AR5K_REG_WRITE(AR5K_AR5212_STA_ID1, pcu_reg | high_id); @@ -1997,8 +1997,8 @@ /* Set new station ID */ bcopy(mac, hal->ah_sta_id, IEEE80211_ADDR_LEN); - low_id = le32_to_cpu(*(__le32 *)mac); - high_id = le16_to_cpu(*(__le16 *)(mac + 4)); + low_id = AR5K_LOW_ID(mac); + high_id = AR5K_HIGH_ID(mac); AR5K_REG_WRITE(AR5K_AR5212_STA_ID0, low_id); AR5K_REG_WRITE(AR5K_AR5212_STA_ID1, high_id); @@ -2080,8 +2080,8 @@ /* * Set BSSID which triggers the "SME Join" operation */ - low_id = le32_to_cpu(*(__le32 *)bssid); - high_id = le16_to_cpu(*(__le16 *)(bssid + 4)); + low_id = AR5K_LOW_ID(bssid); + high_id = AR5K_HIGH_ID(bssid); AR5K_REG_WRITE(AR5K_AR5212_BSS_ID0, low_id); AR5K_REG_WRITE(AR5K_AR5212_BSS_ID1, high_id | ((assoc_id & 0x3fff) << AR5K_AR5212_BSS_ID1_AID_S)); @@ -2109,8 +2109,8 @@ AR5K_TRACE; - low_id = le32_to_cpu(*(__le32 *)mask); - high_id = le16_to_cpu(*(__le16 *)(mask + 4)); + low_id = AR5K_LOW_ID(mask); + high_id = AR5K_HIGH_ID(mask); AR5K_REG_WRITE(AR5K_AR5212_BSS_IDM0, low_id); AR5K_REG_WRITE(AR5K_AR5212_BSS_IDM1, high_id); @@ -2559,9 +2559,8 @@ /* MAC may be NULL if it's a broadcast key */ mac_v = mac == NULL ? etherbroadcastaddr : mac; - low_id = le32_to_cpu(*(__le32 *)mac_v); - high_id = le16_to_cpu(*(__le16 *)(mac_v + 4)); - high_id |= AR5K_AR5212_KEYTABLE_VALID; + low_id = AR5K_LOW_ID(mac_v); + high_id = AR5K_HIGH_ID(mac_v) | AR5K_AR5212_KEYTABLE_VALID; AR5K_REG_WRITE(AR5K_AR5212_KEYTABLE_MAC0(entry), low_id); AR5K_REG_WRITE(AR5K_AR5212_KEYTABLE_MAC1(entry), high_id);