struct dfs_pattern_detector *dfs_detector;
u64 dfs_prev_pulse_ts;
u32 wow_enabled;
- /* relay(fs) channel for spectral scan */
- struct ath_spec_scan spec_config;
+
struct ath_spec_scan_priv spec_priv;
struct ieee80211_vif *tx99_vif;
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB)
sc->ant_comb.count = ATH_ANT_DIV_COMB_INIT_COUNT;
- sc->spec_config.enabled = 0;
- sc->spec_config.short_repeat = true;
- sc->spec_config.count = 8;
- sc->spec_config.endless = false;
- sc->spec_config.period = 0xFF;
- sc->spec_config.fft_period = 0xF;
+ sc->spec_priv.spec_config.enabled = 0;
+ sc->spec_priv.spec_config.short_repeat = true;
+ sc->spec_priv.spec_config.count = 8;
+ sc->spec_priv.spec_config.endless = false;
+ sc->spec_priv.spec_config.period = 0xFF;
+ sc->spec_priv.spec_config.fft_period = 0xF;
}
static void ath9k_init_pcoem_platform(struct ath_softc *sc)
switch (spectral_mode) {
case SPECTRAL_DISABLED:
- sc->spec_config.enabled = 0;
+ sc->spec_priv.spec_config.enabled = 0;
break;
case SPECTRAL_BACKGROUND:
/* send endless samples.
* TODO: is this really useful for "background"?
*/
- sc->spec_config.endless = 1;
- sc->spec_config.enabled = 1;
+ sc->spec_priv.spec_config.endless = 1;
+ sc->spec_priv.spec_config.enabled = 1;
break;
case SPECTRAL_CHANSCAN:
case SPECTRAL_MANUAL:
- sc->spec_config.endless = 0;
- sc->spec_config.enabled = 1;
+ sc->spec_priv.spec_config.endless = 0;
+ sc->spec_priv.spec_config.enabled = 1;
break;
default:
return -1;
}
ath9k_ps_wakeup(sc);
- ath9k_hw_ops(ah)->spectral_scan_config(ah, &sc->spec_config);
+ ath9k_hw_ops(ah)->spectral_scan_config(ah, &sc->spec_priv.spec_config);
ath9k_ps_restore(sc);
sc->spec_priv.spectral_mode = spectral_mode;
char buf[32];
unsigned int len;
- len = sprintf(buf, "%d\n", sc->spec_config.short_repeat);
+ len = sprintf(buf, "%d\n", sc->spec_priv.spec_config.short_repeat);
return simple_read_from_buffer(user_buf, count, ppos, buf, len);
}
if (val > 1)
return -EINVAL;
- sc->spec_config.short_repeat = val;
+ sc->spec_priv.spec_config.short_repeat = val;
return count;
}
char buf[32];
unsigned int len;
- len = sprintf(buf, "%d\n", sc->spec_config.count);
+ len = sprintf(buf, "%d\n", sc->spec_priv.spec_config.count);
return simple_read_from_buffer(user_buf, count, ppos, buf, len);
}
if (val > 255)
return -EINVAL;
- sc->spec_config.count = val;
+ sc->spec_priv.spec_config.count = val;
return count;
}
char buf[32];
unsigned int len;
- len = sprintf(buf, "%d\n", sc->spec_config.period);
+ len = sprintf(buf, "%d\n", sc->spec_priv.spec_config.period);
return simple_read_from_buffer(user_buf, count, ppos, buf, len);
}
if (val > 255)
return -EINVAL;
- sc->spec_config.period = val;
+ sc->spec_priv.spec_config.period = val;
return count;
}
char buf[32];
unsigned int len;
- len = sprintf(buf, "%d\n", sc->spec_config.fft_period);
+ len = sprintf(buf, "%d\n", sc->spec_priv.spec_config.fft_period);
return simple_read_from_buffer(user_buf, count, ppos, buf, len);
}
if (val > 15)
return -EINVAL;
- sc->spec_config.fft_period = val;
+ sc->spec_priv.spec_config.fft_period = val;
return count;
}
} __packed;
struct ath_spec_scan_priv {
+ /* relay(fs) channel for spectral scan */
struct rchan *rfs_chan_spec_scan;
enum spectral_mode spectral_mode;
+ struct ath_spec_scan spec_config;
};
#define SPECTRAL_HT20_40_TOTAL_DATA_LEN (sizeof(struct ath_ht20_40_fft_packet))