Loading drivers/net/wireless/ath/ath5k/ahb.c +3 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,9 @@ static int ath_ahb_probe(struct platform_device *pdev) if (to_platform_device(ah->dev)->id == 0 && (bcfg->config->flags & (BD_WLAN0 | BD_WLAN1)) == (BD_WLAN1 | BD_WLAN0)) __set_bit(ATH_STAT_2G_DISABLED, ah->status); ah->ah_capabilities.cap_needs_2GHz_ovr = true; else ah->ah_capabilities.cap_needs_2GHz_ovr = false; } ret = ath5k_init_ah(ah, &ath_ahb_bus_ops); Loading drivers/net/wireless/ath/ath5k/ani.c +58 −33 Original line number Diff line number Diff line Loading @@ -27,15 +27,21 @@ * or reducing sensitivity as necessary. * * The parameters are: * * - "noise immunity" * * - "spur immunity" * * - "firstep level" * * - "OFDM weak signal detection" * * - "CCK weak signal detection" * * Basically we look at the amount of ODFM and CCK timing errors we get and then * raise or lower immunity accordingly by setting one or more of these * parameters. * * Newer chipsets have PHY error counters in hardware which will generate a MIB * interrupt when they overflow. Older hardware has too enable PHY error frames * by setting a RX flag and then count every single PHY error. When a specified Loading @@ -45,11 +51,13 @@ */ /*** ANI parameter control ***/ /***********************\ * ANI parameter control * \***********************/ /** * ath5k_ani_set_noise_immunity_level() - Set noise immunity level * * @ah: The &struct ath5k_hw * @level: level between 0 and @ATH5K_ANI_MAX_NOISE_IMM_LVL */ void Loading Loading @@ -91,10 +99,9 @@ ath5k_ani_set_noise_immunity_level(struct ath5k_hw *ah, int level) ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "new level %d", level); } /** * ath5k_ani_set_spur_immunity_level() - Set spur immunity level * * @ah: The &struct ath5k_hw * @level: level between 0 and @max_spur_level (the maximum level is dependent * on the chip revision). */ Loading @@ -117,10 +124,9 @@ ath5k_ani_set_spur_immunity_level(struct ath5k_hw *ah, int level) ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "new level %d", level); } /** * ath5k_ani_set_firstep_level() - Set "firstep" level * * @ah: The &struct ath5k_hw * @level: level between 0 and @ATH5K_ANI_MAX_FIRSTEP_LVL */ void Loading @@ -140,11 +146,9 @@ ath5k_ani_set_firstep_level(struct ath5k_hw *ah, int level) ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "new level %d", level); } /** * ath5k_ani_set_ofdm_weak_signal_detection() - Control OFDM weak signal * detection * * ath5k_ani_set_ofdm_weak_signal_detection() - Set OFDM weak signal detection * @ah: The &struct ath5k_hw * @on: turn on or off */ void Loading Loading @@ -182,10 +186,9 @@ ath5k_ani_set_ofdm_weak_signal_detection(struct ath5k_hw *ah, bool on) on ? "on" : "off"); } /** * ath5k_ani_set_cck_weak_signal_detection() - control CCK weak signal detection * * ath5k_ani_set_cck_weak_signal_detection() - Set CCK weak signal detection * @ah: The &struct ath5k_hw * @on: turn on or off */ void Loading @@ -200,11 +203,14 @@ ath5k_ani_set_cck_weak_signal_detection(struct ath5k_hw *ah, bool on) } /*** ANI algorithm ***/ /***************\ * ANI algorithm * \***************/ /** * ath5k_ani_raise_immunity() - Increase noise immunity * * @ah: The &struct ath5k_hw * @as: The &struct ath5k_ani_state * @ofdm_trigger: If this is true we are called because of too many OFDM errors, * the algorithm will tune more parameters then. * Loading Loading @@ -290,9 +296,10 @@ ath5k_ani_raise_immunity(struct ath5k_hw *ah, struct ath5k_ani_state *as, */ } /** * ath5k_ani_lower_immunity() - Decrease noise immunity * @ah: The &struct ath5k_hw * @as: The &struct ath5k_ani_state * * Try to lower noise immunity (=increase sensitivity) in several steps * depending on the average RSSI of the beacons we received. Loading Loading @@ -352,9 +359,10 @@ ath5k_ani_lower_immunity(struct ath5k_hw *ah, struct ath5k_ani_state *as) } } /** * ath5k_hw_ani_get_listen_time() - Update counters and return listening time * @ah: The &struct ath5k_hw * @as: The &struct ath5k_ani_state * * Return an approximation of the time spent "listening" in milliseconds (ms) * since the last call of this function. Loading @@ -379,9 +387,10 @@ ath5k_hw_ani_get_listen_time(struct ath5k_hw *ah, struct ath5k_ani_state *as) return listen; } /** * ath5k_ani_save_and_clear_phy_errors() - Clear and save PHY error counters * @ah: The &struct ath5k_hw * @as: The &struct ath5k_ani_state * * Clear the PHY error counters as soon as possible, since this might be called * from a MIB interrupt and we want to make sure we don't get interrupted again. Loading Loading @@ -429,14 +438,14 @@ ath5k_ani_save_and_clear_phy_errors(struct ath5k_hw *ah, return 1; } /** * ath5k_ani_period_restart() - Restart ANI period * @as: The &struct ath5k_ani_state * * Just reset counters, so they are clear for the next "ani period". */ static void ath5k_ani_period_restart(struct ath5k_hw *ah, struct ath5k_ani_state *as) ath5k_ani_period_restart(struct ath5k_ani_state *as) { /* keep last values for debugging */ as->last_ofdm_errors = as->ofdm_errors; Loading @@ -448,9 +457,9 @@ ath5k_ani_period_restart(struct ath5k_hw *ah, struct ath5k_ani_state *as) as->listen_time = 0; } /** * ath5k_ani_calibration() - The main ANI calibration function * @ah: The &struct ath5k_hw * * We count OFDM and CCK errors relative to the time where we did not send or * receive ("listen" time) and raise or lower immunity accordingly. Loading Loading @@ -492,7 +501,7 @@ ath5k_ani_calibration(struct ath5k_hw *ah) /* too many PHY errors - we have to raise immunity */ bool ofdm_flag = as->ofdm_errors > ofdm_high ? true : false; ath5k_ani_raise_immunity(ah, as, ofdm_flag); ath5k_ani_period_restart(ah, as); ath5k_ani_period_restart(as); } else if (as->listen_time > 5 * ATH5K_ANI_LISTEN_PERIOD) { /* If more than 5 (TODO: why 5?) periods have passed and we got Loading @@ -504,15 +513,18 @@ ath5k_ani_calibration(struct ath5k_hw *ah) if (as->ofdm_errors <= ofdm_low && as->cck_errors <= cck_low) ath5k_ani_lower_immunity(ah, as); ath5k_ani_period_restart(ah, as); ath5k_ani_period_restart(as); } } /*** INTERRUPT HANDLER ***/ /*******************\ * Interrupt handler * \*******************/ /** * ath5k_ani_mib_intr() - Interrupt handler for ANI MIB counters * @ah: The &struct ath5k_hw * * Just read & reset the registers quickly, so they don't generate more * interrupts, save the counters and schedule the tasklet to decide whether Loading Loading @@ -549,9 +561,11 @@ ath5k_ani_mib_intr(struct ath5k_hw *ah) tasklet_schedule(&ah->ani_tasklet); } /** * ath5k_ani_phy_error_report() - Used by older HW to report PHY errors * ath5k_ani_phy_error_report - Used by older HW to report PHY errors * * @ah: The &struct ath5k_hw * @phyerr: One of enum ath5k_phy_error_code * * This is used by hardware without PHY error counters to report PHY errors * on a frame-by-frame basis, instead of the interrupt. Loading @@ -574,10 +588,13 @@ ath5k_ani_phy_error_report(struct ath5k_hw *ah, } /*** INIT ***/ /****************\ * Initialization * \****************/ /** * ath5k_enable_phy_err_counters() - Enable PHY error counters * @ah: The &struct ath5k_hw * * Enable PHY error counters for OFDM and CCK timing errors. */ Loading @@ -596,9 +613,9 @@ ath5k_enable_phy_err_counters(struct ath5k_hw *ah) ath5k_hw_reg_write(ah, 0, AR5K_CCK_FIL_CNT); } /** * ath5k_disable_phy_err_counters() - Disable PHY error counters * @ah: The &struct ath5k_hw * * Disable PHY error counters for OFDM and CCK timing errors. */ Loading @@ -615,10 +632,10 @@ ath5k_disable_phy_err_counters(struct ath5k_hw *ah) ath5k_hw_reg_write(ah, 0, AR5K_CCK_FIL_CNT); } /** * ath5k_ani_init() - Initialize ANI * @mode: Which mode to use (auto, manual high, manual low, off) * @ah: The &struct ath5k_hw * @mode: One of enum ath5k_ani_mode * * Initialize ANI according to mode. */ Loading Loading @@ -695,10 +712,18 @@ ath5k_ani_init(struct ath5k_hw *ah, enum ath5k_ani_mode mode) } /*** DEBUG ***/ /**************\ * Debug output * \**************/ #ifdef CONFIG_ATH5K_DEBUG /** * ath5k_ani_print_counters() - Print ANI counters * @ah: The &struct ath5k_hw * * Used for debugging ANI */ void ath5k_ani_print_counters(struct ath5k_hw *ah) { Loading drivers/net/wireless/ath/ath5k/ani.h +23 −9 Original line number Diff line number Diff line Loading @@ -41,11 +41,11 @@ enum ath5k_phy_error_code; * * @ATH5K_ANI_MODE_OFF: Turn ANI off. This can be useful to just stop the ANI * algorithm after it has been on auto mode. * ATH5K_ANI_MODE_MANUAL_LOW: Manually set all immunity parameters to low, * @ATH5K_ANI_MODE_MANUAL_LOW: Manually set all immunity parameters to low, * maximizing sensitivity. ANI will not run. * ATH5K_ANI_MODE_MANUAL_HIGH: Manually set all immunity parameters to high, * @ATH5K_ANI_MODE_MANUAL_HIGH: Manually set all immunity parameters to high, * minimizing sensitivity. ANI will not run. * ATH5K_ANI_MODE_AUTO: Automatically control immunity parameters based on the * @ATH5K_ANI_MODE_AUTO: Automatically control immunity parameters based on the * amount of OFDM and CCK frame errors (default). */ enum ath5k_ani_mode { Loading @@ -58,8 +58,22 @@ enum ath5k_ani_mode { /** * struct ath5k_ani_state - ANI state and associated counters * * @max_spur_level: the maximum spur level is chip dependent * @ani_mode: One of enum ath5k_ani_mode * @noise_imm_level: Noise immunity level * @spur_level: Spur immunity level * @firstep_level: FIRstep level * @ofdm_weak_sig: OFDM weak signal detection state (on/off) * @cck_weak_sig: CCK weak signal detection state (on/off) * @max_spur_level: Max spur immunity level (chip specific) * @listen_time: Listen time * @ofdm_errors: OFDM timing error count * @cck_errors: CCK timing error count * @last_cc: The &struct ath_cycle_counters (for stats) * @last_listen: Listen time from previous run (for stats) * @last_ofdm_errors: OFDM timing error count from previous run (for tats) * @last_cck_errors: CCK timing error count from previous run (for stats) * @sum_ofdm_errors: Sum of OFDM timing errors (for stats) * @sum_cck_errors: Sum of all CCK timing errors (for stats) */ struct ath5k_ani_state { enum ath5k_ani_mode ani_mode; Loading drivers/net/wireless/ath/ath5k/ath5k.h +387 −182 File changed.Preview size limit exceeded, changes collapsed. Show changes drivers/net/wireless/ath/ath5k/attach.c +4 −12 Original line number Diff line number Diff line Loading @@ -27,8 +27,7 @@ #include "debug.h" /** * ath5k_hw_post - Power On Self Test helper function * * ath5k_hw_post() - Power On Self Test helper function * @ah: The &struct ath5k_hw */ static int ath5k_hw_post(struct ath5k_hw *ah) Loading Loading @@ -92,8 +91,7 @@ static int ath5k_hw_post(struct ath5k_hw *ah) } /** * ath5k_hw_init - Check if hw is supported and init the needed structs * * ath5k_hw_init() - Check if hw is supported and init the needed structs * @ah: The &struct ath5k_hw associated with the device * * Check if the device is supported, perform a POST and initialize the needed Loading Loading @@ -298,7 +296,7 @@ int ath5k_hw_init(struct ath5k_hw *ah) /* Reset SERDES to load new settings */ ath5k_hw_reg_write(ah, 0x00000000, AR5K_PCIE_SERDES_RESET); mdelay(1); usleep_range(1000, 1500); } /* Get misc capabilities */ Loading @@ -308,11 +306,6 @@ int ath5k_hw_init(struct ath5k_hw *ah) goto err; } if (test_bit(ATH_STAT_2G_DISABLED, ah->status)) { __clear_bit(AR5K_MODE_11B, ah->ah_capabilities.cap_mode); __clear_bit(AR5K_MODE_11G, ah->ah_capabilities.cap_mode); } /* Crypto settings */ common->keymax = (ah->ah_version == AR5K_AR5210 ? AR5K_KEYTABLE_SIZE_5210 : AR5K_KEYTABLE_SIZE_5211); Loading Loading @@ -349,8 +342,7 @@ int ath5k_hw_init(struct ath5k_hw *ah) } /** * ath5k_hw_deinit - Free the ath5k_hw struct * * ath5k_hw_deinit() - Free the &struct ath5k_hw * @ah: The &struct ath5k_hw */ void ath5k_hw_deinit(struct ath5k_hw *ah) Loading Loading
drivers/net/wireless/ath/ath5k/ahb.c +3 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,9 @@ static int ath_ahb_probe(struct platform_device *pdev) if (to_platform_device(ah->dev)->id == 0 && (bcfg->config->flags & (BD_WLAN0 | BD_WLAN1)) == (BD_WLAN1 | BD_WLAN0)) __set_bit(ATH_STAT_2G_DISABLED, ah->status); ah->ah_capabilities.cap_needs_2GHz_ovr = true; else ah->ah_capabilities.cap_needs_2GHz_ovr = false; } ret = ath5k_init_ah(ah, &ath_ahb_bus_ops); Loading
drivers/net/wireless/ath/ath5k/ani.c +58 −33 Original line number Diff line number Diff line Loading @@ -27,15 +27,21 @@ * or reducing sensitivity as necessary. * * The parameters are: * * - "noise immunity" * * - "spur immunity" * * - "firstep level" * * - "OFDM weak signal detection" * * - "CCK weak signal detection" * * Basically we look at the amount of ODFM and CCK timing errors we get and then * raise or lower immunity accordingly by setting one or more of these * parameters. * * Newer chipsets have PHY error counters in hardware which will generate a MIB * interrupt when they overflow. Older hardware has too enable PHY error frames * by setting a RX flag and then count every single PHY error. When a specified Loading @@ -45,11 +51,13 @@ */ /*** ANI parameter control ***/ /***********************\ * ANI parameter control * \***********************/ /** * ath5k_ani_set_noise_immunity_level() - Set noise immunity level * * @ah: The &struct ath5k_hw * @level: level between 0 and @ATH5K_ANI_MAX_NOISE_IMM_LVL */ void Loading Loading @@ -91,10 +99,9 @@ ath5k_ani_set_noise_immunity_level(struct ath5k_hw *ah, int level) ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "new level %d", level); } /** * ath5k_ani_set_spur_immunity_level() - Set spur immunity level * * @ah: The &struct ath5k_hw * @level: level between 0 and @max_spur_level (the maximum level is dependent * on the chip revision). */ Loading @@ -117,10 +124,9 @@ ath5k_ani_set_spur_immunity_level(struct ath5k_hw *ah, int level) ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "new level %d", level); } /** * ath5k_ani_set_firstep_level() - Set "firstep" level * * @ah: The &struct ath5k_hw * @level: level between 0 and @ATH5K_ANI_MAX_FIRSTEP_LVL */ void Loading @@ -140,11 +146,9 @@ ath5k_ani_set_firstep_level(struct ath5k_hw *ah, int level) ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "new level %d", level); } /** * ath5k_ani_set_ofdm_weak_signal_detection() - Control OFDM weak signal * detection * * ath5k_ani_set_ofdm_weak_signal_detection() - Set OFDM weak signal detection * @ah: The &struct ath5k_hw * @on: turn on or off */ void Loading Loading @@ -182,10 +186,9 @@ ath5k_ani_set_ofdm_weak_signal_detection(struct ath5k_hw *ah, bool on) on ? "on" : "off"); } /** * ath5k_ani_set_cck_weak_signal_detection() - control CCK weak signal detection * * ath5k_ani_set_cck_weak_signal_detection() - Set CCK weak signal detection * @ah: The &struct ath5k_hw * @on: turn on or off */ void Loading @@ -200,11 +203,14 @@ ath5k_ani_set_cck_weak_signal_detection(struct ath5k_hw *ah, bool on) } /*** ANI algorithm ***/ /***************\ * ANI algorithm * \***************/ /** * ath5k_ani_raise_immunity() - Increase noise immunity * * @ah: The &struct ath5k_hw * @as: The &struct ath5k_ani_state * @ofdm_trigger: If this is true we are called because of too many OFDM errors, * the algorithm will tune more parameters then. * Loading Loading @@ -290,9 +296,10 @@ ath5k_ani_raise_immunity(struct ath5k_hw *ah, struct ath5k_ani_state *as, */ } /** * ath5k_ani_lower_immunity() - Decrease noise immunity * @ah: The &struct ath5k_hw * @as: The &struct ath5k_ani_state * * Try to lower noise immunity (=increase sensitivity) in several steps * depending on the average RSSI of the beacons we received. Loading Loading @@ -352,9 +359,10 @@ ath5k_ani_lower_immunity(struct ath5k_hw *ah, struct ath5k_ani_state *as) } } /** * ath5k_hw_ani_get_listen_time() - Update counters and return listening time * @ah: The &struct ath5k_hw * @as: The &struct ath5k_ani_state * * Return an approximation of the time spent "listening" in milliseconds (ms) * since the last call of this function. Loading @@ -379,9 +387,10 @@ ath5k_hw_ani_get_listen_time(struct ath5k_hw *ah, struct ath5k_ani_state *as) return listen; } /** * ath5k_ani_save_and_clear_phy_errors() - Clear and save PHY error counters * @ah: The &struct ath5k_hw * @as: The &struct ath5k_ani_state * * Clear the PHY error counters as soon as possible, since this might be called * from a MIB interrupt and we want to make sure we don't get interrupted again. Loading Loading @@ -429,14 +438,14 @@ ath5k_ani_save_and_clear_phy_errors(struct ath5k_hw *ah, return 1; } /** * ath5k_ani_period_restart() - Restart ANI period * @as: The &struct ath5k_ani_state * * Just reset counters, so they are clear for the next "ani period". */ static void ath5k_ani_period_restart(struct ath5k_hw *ah, struct ath5k_ani_state *as) ath5k_ani_period_restart(struct ath5k_ani_state *as) { /* keep last values for debugging */ as->last_ofdm_errors = as->ofdm_errors; Loading @@ -448,9 +457,9 @@ ath5k_ani_period_restart(struct ath5k_hw *ah, struct ath5k_ani_state *as) as->listen_time = 0; } /** * ath5k_ani_calibration() - The main ANI calibration function * @ah: The &struct ath5k_hw * * We count OFDM and CCK errors relative to the time where we did not send or * receive ("listen" time) and raise or lower immunity accordingly. Loading Loading @@ -492,7 +501,7 @@ ath5k_ani_calibration(struct ath5k_hw *ah) /* too many PHY errors - we have to raise immunity */ bool ofdm_flag = as->ofdm_errors > ofdm_high ? true : false; ath5k_ani_raise_immunity(ah, as, ofdm_flag); ath5k_ani_period_restart(ah, as); ath5k_ani_period_restart(as); } else if (as->listen_time > 5 * ATH5K_ANI_LISTEN_PERIOD) { /* If more than 5 (TODO: why 5?) periods have passed and we got Loading @@ -504,15 +513,18 @@ ath5k_ani_calibration(struct ath5k_hw *ah) if (as->ofdm_errors <= ofdm_low && as->cck_errors <= cck_low) ath5k_ani_lower_immunity(ah, as); ath5k_ani_period_restart(ah, as); ath5k_ani_period_restart(as); } } /*** INTERRUPT HANDLER ***/ /*******************\ * Interrupt handler * \*******************/ /** * ath5k_ani_mib_intr() - Interrupt handler for ANI MIB counters * @ah: The &struct ath5k_hw * * Just read & reset the registers quickly, so they don't generate more * interrupts, save the counters and schedule the tasklet to decide whether Loading Loading @@ -549,9 +561,11 @@ ath5k_ani_mib_intr(struct ath5k_hw *ah) tasklet_schedule(&ah->ani_tasklet); } /** * ath5k_ani_phy_error_report() - Used by older HW to report PHY errors * ath5k_ani_phy_error_report - Used by older HW to report PHY errors * * @ah: The &struct ath5k_hw * @phyerr: One of enum ath5k_phy_error_code * * This is used by hardware without PHY error counters to report PHY errors * on a frame-by-frame basis, instead of the interrupt. Loading @@ -574,10 +588,13 @@ ath5k_ani_phy_error_report(struct ath5k_hw *ah, } /*** INIT ***/ /****************\ * Initialization * \****************/ /** * ath5k_enable_phy_err_counters() - Enable PHY error counters * @ah: The &struct ath5k_hw * * Enable PHY error counters for OFDM and CCK timing errors. */ Loading @@ -596,9 +613,9 @@ ath5k_enable_phy_err_counters(struct ath5k_hw *ah) ath5k_hw_reg_write(ah, 0, AR5K_CCK_FIL_CNT); } /** * ath5k_disable_phy_err_counters() - Disable PHY error counters * @ah: The &struct ath5k_hw * * Disable PHY error counters for OFDM and CCK timing errors. */ Loading @@ -615,10 +632,10 @@ ath5k_disable_phy_err_counters(struct ath5k_hw *ah) ath5k_hw_reg_write(ah, 0, AR5K_CCK_FIL_CNT); } /** * ath5k_ani_init() - Initialize ANI * @mode: Which mode to use (auto, manual high, manual low, off) * @ah: The &struct ath5k_hw * @mode: One of enum ath5k_ani_mode * * Initialize ANI according to mode. */ Loading Loading @@ -695,10 +712,18 @@ ath5k_ani_init(struct ath5k_hw *ah, enum ath5k_ani_mode mode) } /*** DEBUG ***/ /**************\ * Debug output * \**************/ #ifdef CONFIG_ATH5K_DEBUG /** * ath5k_ani_print_counters() - Print ANI counters * @ah: The &struct ath5k_hw * * Used for debugging ANI */ void ath5k_ani_print_counters(struct ath5k_hw *ah) { Loading
drivers/net/wireless/ath/ath5k/ani.h +23 −9 Original line number Diff line number Diff line Loading @@ -41,11 +41,11 @@ enum ath5k_phy_error_code; * * @ATH5K_ANI_MODE_OFF: Turn ANI off. This can be useful to just stop the ANI * algorithm after it has been on auto mode. * ATH5K_ANI_MODE_MANUAL_LOW: Manually set all immunity parameters to low, * @ATH5K_ANI_MODE_MANUAL_LOW: Manually set all immunity parameters to low, * maximizing sensitivity. ANI will not run. * ATH5K_ANI_MODE_MANUAL_HIGH: Manually set all immunity parameters to high, * @ATH5K_ANI_MODE_MANUAL_HIGH: Manually set all immunity parameters to high, * minimizing sensitivity. ANI will not run. * ATH5K_ANI_MODE_AUTO: Automatically control immunity parameters based on the * @ATH5K_ANI_MODE_AUTO: Automatically control immunity parameters based on the * amount of OFDM and CCK frame errors (default). */ enum ath5k_ani_mode { Loading @@ -58,8 +58,22 @@ enum ath5k_ani_mode { /** * struct ath5k_ani_state - ANI state and associated counters * * @max_spur_level: the maximum spur level is chip dependent * @ani_mode: One of enum ath5k_ani_mode * @noise_imm_level: Noise immunity level * @spur_level: Spur immunity level * @firstep_level: FIRstep level * @ofdm_weak_sig: OFDM weak signal detection state (on/off) * @cck_weak_sig: CCK weak signal detection state (on/off) * @max_spur_level: Max spur immunity level (chip specific) * @listen_time: Listen time * @ofdm_errors: OFDM timing error count * @cck_errors: CCK timing error count * @last_cc: The &struct ath_cycle_counters (for stats) * @last_listen: Listen time from previous run (for stats) * @last_ofdm_errors: OFDM timing error count from previous run (for tats) * @last_cck_errors: CCK timing error count from previous run (for stats) * @sum_ofdm_errors: Sum of OFDM timing errors (for stats) * @sum_cck_errors: Sum of all CCK timing errors (for stats) */ struct ath5k_ani_state { enum ath5k_ani_mode ani_mode; Loading
drivers/net/wireless/ath/ath5k/ath5k.h +387 −182 File changed.Preview size limit exceeded, changes collapsed. Show changes
drivers/net/wireless/ath/ath5k/attach.c +4 −12 Original line number Diff line number Diff line Loading @@ -27,8 +27,7 @@ #include "debug.h" /** * ath5k_hw_post - Power On Self Test helper function * * ath5k_hw_post() - Power On Self Test helper function * @ah: The &struct ath5k_hw */ static int ath5k_hw_post(struct ath5k_hw *ah) Loading Loading @@ -92,8 +91,7 @@ static int ath5k_hw_post(struct ath5k_hw *ah) } /** * ath5k_hw_init - Check if hw is supported and init the needed structs * * ath5k_hw_init() - Check if hw is supported and init the needed structs * @ah: The &struct ath5k_hw associated with the device * * Check if the device is supported, perform a POST and initialize the needed Loading Loading @@ -298,7 +296,7 @@ int ath5k_hw_init(struct ath5k_hw *ah) /* Reset SERDES to load new settings */ ath5k_hw_reg_write(ah, 0x00000000, AR5K_PCIE_SERDES_RESET); mdelay(1); usleep_range(1000, 1500); } /* Get misc capabilities */ Loading @@ -308,11 +306,6 @@ int ath5k_hw_init(struct ath5k_hw *ah) goto err; } if (test_bit(ATH_STAT_2G_DISABLED, ah->status)) { __clear_bit(AR5K_MODE_11B, ah->ah_capabilities.cap_mode); __clear_bit(AR5K_MODE_11G, ah->ah_capabilities.cap_mode); } /* Crypto settings */ common->keymax = (ah->ah_version == AR5K_AR5210 ? AR5K_KEYTABLE_SIZE_5210 : AR5K_KEYTABLE_SIZE_5211); Loading Loading @@ -349,8 +342,7 @@ int ath5k_hw_init(struct ath5k_hw *ah) } /** * ath5k_hw_deinit - Free the ath5k_hw struct * * ath5k_hw_deinit() - Free the &struct ath5k_hw * @ah: The &struct ath5k_hw */ void ath5k_hw_deinit(struct ath5k_hw *ah) Loading