Index: ar5xxx.h =================================================================== --- ar5xxx.h (revision 1975) +++ ar5xxx.h (revision 1979) @@ -1953,6 +1953,7 @@ _t AR5K_BOOL (_a _n##_set_txpower_limit)(struct ath_hal *, u_int); \ _t void (_a _n##_set_def_antenna)(struct ath_hal *, u_int); \ _t u_int (_a _n ##_get_def_antenna)(struct ath_hal *); \ + _t AR5K_BOOL (_a _n ##_set_bssid_mask)(struct ath_hal *, const u_int8_t*); \ /*Totaly unimplemented*/ \ _t AR5K_BOOL (_a _n##_set_capability)(struct ath_hal *, AR5K_CAPABILITY_TYPE, u_int32_t,\ u_int32_t,AR5K_STATUS *) ; \ Index: ar5210.c =================================================================== --- ar5210.c (revision 1975) +++ ar5210.c (revision 1979) @@ -182,13 +182,12 @@ AR5K_HAL_FUNCTION(hal, ar5210, set_txpower_limit); AR5K_HAL_FUNCTION(hal, ar5210, set_def_antenna); AR5K_HAL_FUNCTION(hal, ar5210, get_def_antenna); + AR5K_HAL_FUNCTION(hal, ar5210, set_bssid_mask); /*Totaly unimplemented*/ AR5K_HAL_FUNCTION(hal, ar5210, set_capability); AR5K_HAL_FUNCTION(hal, ar5210, proc_mib_event); AR5K_HAL_FUNCTION(hal, ar5210, get_tx_inter_queue); - - } struct ath_hal * /*Ported & removed an arg from call to set_associd*/ @@ -1627,6 +1626,14 @@ ar5k_ar5210_enable_pspoll(hal, NULL, 0); } +AR5K_BOOL /*New*/ +ar5k_ar5210_set_bssid_mask(struct ath_hal *hal, const u_int8_t* mask) +{ + /*Not supported in 5210*/ + AR5K_TRACE; + return (FALSE); +} + AR5K_BOOL ar5k_ar5210_set_gpio_output(struct ath_hal *hal, u_int32_t gpio) { Index: ar5211.c =================================================================== --- ar5211.c (revision 1975) +++ ar5211.c (revision 1979) @@ -186,12 +186,12 @@ AR5K_HAL_FUNCTION(hal, ar5211, set_txpower_limit); AR5K_HAL_FUNCTION(hal, ar5211, set_def_antenna); AR5K_HAL_FUNCTION(hal, ar5211, get_def_antenna); + AR5K_HAL_FUNCTION(hal, ar5211, set_bssid_mask); /*Totaly unimplemented*/ AR5K_HAL_FUNCTION(hal, ar5211, set_capability); AR5K_HAL_FUNCTION(hal, ar5211, proc_mib_event); AR5K_HAL_FUNCTION(hal, ar5211, get_tx_inter_queue); - } struct ath_hal * /*Ported & removed an arg from call to set_associd*/ @@ -1734,6 +1734,14 @@ ar5k_ar5211_enable_pspoll(hal, NULL, 0); } +AR5K_BOOL /*New*/ +ar5k_ar5211_set_bssid_mask(struct ath_hal *hal, const u_int8_t* mask) +{ + /*Not supported in 5211*/ + AR5K_TRACE; + return (FALSE); +} + AR5K_BOOL ar5k_ar5211_set_gpio_output(struct ath_hal *hal, u_int32_t gpio) { Index: ar5212.c =================================================================== --- ar5212.c (revision 1975) +++ ar5212.c (revision 1979) @@ -185,12 +185,12 @@ AR5K_HAL_FUNCTION(hal, ar5212, set_txpower_limit); AR5K_HAL_FUNCTION(hal, ar5212, set_def_antenna); AR5K_HAL_FUNCTION(hal, ar5212, get_def_antenna); + AR5K_HAL_FUNCTION(hal, ar5212, set_bssid_mask); /*Totaly unimplemented*/ AR5K_HAL_FUNCTION(hal, ar5212, set_capability); AR5K_HAL_FUNCTION(hal, ar5212, proc_mib_event); AR5K_HAL_FUNCTION(hal, ar5212, get_tx_inter_queue); - } struct ath_hal * /*Ported & removed an arg from call to set_associd*/ @@ -2103,6 +2103,24 @@ ar5k_ar5212_enable_pspoll(hal, NULL, 0); } +AR5K_BOOL /*New*/ +ar5k_ar5212_set_bssid_mask(struct ath_hal *hal, const u_int8_t* mask) +{ + u_int32_t low_id, high_id; + + AR5K_TRACE; + + bcopy(mask, &low_id, 4); + bcopy(mask + 4, &high_id, 2); + + high_id = 0x0000ffff & high_id; + + AR5K_REG_WRITE(AR5K_AR5212_BSS_IDM0, low_id); + AR5K_REG_WRITE(AR5K_AR5212_BSS_IDM1, high_id); + + return (TRUE); +} + AR5K_BOOL /*O.K.*/ ar5k_ar5212_set_gpio_output(struct ath_hal *hal, u_int32_t gpio) {