mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 05:48:40 +00:00
ath9k: make ath9k_spectral_scan_ do not depend on ath_softc
last preparation before moving ath9k_spectral_scan_ to spectral.c Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
ef948da55f
commit
963916dfe2
4 changed files with 22 additions and 20 deletions
|
@ -93,7 +93,7 @@ static int ath_set_channel(struct ath_softc *sc)
|
|||
/* perform spectral scan if requested. */
|
||||
if (test_bit(ATH_OP_SCANNING, &common->op_flags) &&
|
||||
sc->spec_priv.spectral_mode == SPECTRAL_CHANSCAN)
|
||||
ath9k_spectral_scan_trigger(common);
|
||||
ath9k_spectral_scan_trigger(common, &sc->spec_priv);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -1337,10 +1337,10 @@ static void ath9k_disable_ps(struct ath_softc *sc)
|
|||
ath_dbg(common, PS, "PowerSave disabled\n");
|
||||
}
|
||||
|
||||
void ath9k_spectral_scan_trigger(struct ath_common *common)
|
||||
void ath9k_spectral_scan_trigger(struct ath_common *common,
|
||||
struct ath_spec_scan_priv *spec_priv)
|
||||
{
|
||||
struct ath_softc *sc = common->priv;
|
||||
struct ath_hw *ah = sc->sc_ah;
|
||||
struct ath_hw *ah = spec_priv->ah;
|
||||
u32 rxfilter;
|
||||
|
||||
if (config_enabled(CONFIG_ATH9K_TX99))
|
||||
|
@ -1362,16 +1362,16 @@ void ath9k_spectral_scan_trigger(struct ath_common *common)
|
|||
* configuration, otherwise the register will have its values reset
|
||||
* (on my ar9220 to value 0x01002310)
|
||||
*/
|
||||
ath9k_spectral_scan_config(common, sc->spec_priv.spectral_mode);
|
||||
ath9k_spectral_scan_config(common, spec_priv, spec_priv->spectral_mode);
|
||||
ath9k_hw_ops(ah)->spectral_scan_trigger(ah);
|
||||
ath_ps_ops(common)->restore(common);
|
||||
}
|
||||
|
||||
int ath9k_spectral_scan_config(struct ath_common *common,
|
||||
struct ath_spec_scan_priv *spec_priv,
|
||||
enum spectral_mode spectral_mode)
|
||||
{
|
||||
struct ath_softc *sc = common->priv;
|
||||
struct ath_hw *ah = sc->sc_ah;
|
||||
struct ath_hw *ah = spec_priv->ah;
|
||||
|
||||
if (!ath9k_hw_ops(ah)->spectral_scan_trigger) {
|
||||
ath_err(common, "spectrum analyzer not implemented on this hardware\n");
|
||||
|
@ -1380,29 +1380,29 @@ int ath9k_spectral_scan_config(struct ath_common *common,
|
|||
|
||||
switch (spectral_mode) {
|
||||
case SPECTRAL_DISABLED:
|
||||
sc->spec_priv.spec_config.enabled = 0;
|
||||
spec_priv->spec_config.enabled = 0;
|
||||
break;
|
||||
case SPECTRAL_BACKGROUND:
|
||||
/* send endless samples.
|
||||
* TODO: is this really useful for "background"?
|
||||
*/
|
||||
sc->spec_priv.spec_config.endless = 1;
|
||||
sc->spec_priv.spec_config.enabled = 1;
|
||||
spec_priv->spec_config.endless = 1;
|
||||
spec_priv->spec_config.enabled = 1;
|
||||
break;
|
||||
case SPECTRAL_CHANSCAN:
|
||||
case SPECTRAL_MANUAL:
|
||||
sc->spec_priv.spec_config.endless = 0;
|
||||
sc->spec_priv.spec_config.enabled = 1;
|
||||
spec_priv->spec_config.endless = 0;
|
||||
spec_priv->spec_config.enabled = 1;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
||||
ath_ps_ops(common)->wakeup(common);
|
||||
ath9k_hw_ops(ah)->spectral_scan_config(ah, &sc->spec_priv.spec_config);
|
||||
ath9k_hw_ops(ah)->spectral_scan_config(ah, &spec_priv->spec_config);
|
||||
ath_ps_ops(common)->restore(common);
|
||||
|
||||
sc->spec_priv.spectral_mode = spectral_mode;
|
||||
spec_priv->spectral_mode = spectral_mode;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -253,18 +253,18 @@ static ssize_t write_file_spec_scan_ctl(struct file *file,
|
|||
buf[len] = '\0';
|
||||
|
||||
if (strncmp("trigger", buf, 7) == 0) {
|
||||
ath9k_spectral_scan_trigger(common);
|
||||
ath9k_spectral_scan_trigger(common, spec_priv);
|
||||
} else if (strncmp("background", buf, 10) == 0) {
|
||||
ath9k_spectral_scan_config(common, SPECTRAL_BACKGROUND);
|
||||
ath9k_spectral_scan_config(common, spec_priv, SPECTRAL_BACKGROUND);
|
||||
ath_dbg(common, CONFIG, "spectral scan: background mode enabled\n");
|
||||
} else if (strncmp("chanscan", buf, 8) == 0) {
|
||||
ath9k_spectral_scan_config(common, SPECTRAL_CHANSCAN);
|
||||
ath9k_spectral_scan_config(common, spec_priv, SPECTRAL_CHANSCAN);
|
||||
ath_dbg(common, CONFIG, "spectral scan: channel scan mode enabled\n");
|
||||
} else if (strncmp("manual", buf, 6) == 0) {
|
||||
ath9k_spectral_scan_config(common, SPECTRAL_MANUAL);
|
||||
ath9k_spectral_scan_config(common, spec_priv, SPECTRAL_MANUAL);
|
||||
ath_dbg(common, CONFIG, "spectral scan: manual mode enabled\n");
|
||||
} else if (strncmp("disable", buf, 7) == 0) {
|
||||
ath9k_spectral_scan_config(common, SPECTRAL_DISABLED);
|
||||
ath9k_spectral_scan_config(common, spec_priv, SPECTRAL_DISABLED);
|
||||
ath_dbg(common, CONFIG, "spectral scan: disabled\n");
|
||||
} else {
|
||||
return -EINVAL;
|
||||
|
|
|
@ -133,8 +133,10 @@ static inline u8 spectral_bitmap_weight(u8 *bins)
|
|||
void ath9k_spectral_init_debug(struct ath_spec_scan_priv *spec_priv, struct dentry *debugfs_phy);
|
||||
void ath9k_spectral_deinit_debug(struct ath_spec_scan_priv *spec_priv);
|
||||
|
||||
void ath9k_spectral_scan_trigger(struct ath_common *common);
|
||||
void ath9k_spectral_scan_trigger(struct ath_common *common,
|
||||
struct ath_spec_scan_priv *spec_priv);
|
||||
int ath9k_spectral_scan_config(struct ath_common *common,
|
||||
struct ath_spec_scan_priv *spec_priv,
|
||||
enum spectral_mode spectral_mode);
|
||||
|
||||
#ifdef CONFIG_ATH9K_DEBUGFS
|
||||
|
|
Loading…
Reference in a new issue