Lines Matching refs:ar

22 static void send_fft_sample(struct ath10k *ar,  in send_fft_sample()  argument
27 if (!ar->spectral.rfs_chan_spec_scan) in send_fft_sample()
32 relay_write(ar->spectral.rfs_chan_spec_scan, fft_sample_tlv, length); in send_fft_sample()
59 int ath10k_spectral_process_fft(struct ath10k *ar, in ath10k_spectral_process_fft() argument
151 send_fft_sample(ar, &fft_sample->tlv); in ath10k_spectral_process_fft()
156 static struct ath10k_vif *ath10k_get_spectral_vdev(struct ath10k *ar) in ath10k_get_spectral_vdev() argument
160 lockdep_assert_held(&ar->conf_mutex); in ath10k_get_spectral_vdev()
162 if (list_empty(&ar->arvifs)) in ath10k_get_spectral_vdev()
166 list_for_each_entry(arvif, &ar->arvifs, list) in ath10k_get_spectral_vdev()
171 return list_first_entry(&ar->arvifs, typeof(*arvif), list); in ath10k_get_spectral_vdev()
174 static int ath10k_spectral_scan_trigger(struct ath10k *ar) in ath10k_spectral_scan_trigger() argument
180 lockdep_assert_held(&ar->conf_mutex); in ath10k_spectral_scan_trigger()
182 arvif = ath10k_get_spectral_vdev(ar); in ath10k_spectral_scan_trigger()
187 if (ar->spectral.mode == SPECTRAL_DISABLED) in ath10k_spectral_scan_trigger()
190 res = ath10k_wmi_vdev_spectral_enable(ar, vdev_id, in ath10k_spectral_scan_trigger()
196 res = ath10k_wmi_vdev_spectral_enable(ar, vdev_id, in ath10k_spectral_scan_trigger()
205 static int ath10k_spectral_scan_config(struct ath10k *ar, in ath10k_spectral_scan_config() argument
212 lockdep_assert_held(&ar->conf_mutex); in ath10k_spectral_scan_config()
214 arvif = ath10k_get_spectral_vdev(ar); in ath10k_spectral_scan_config()
221 ar->spectral.mode = mode; in ath10k_spectral_scan_config()
223 res = ath10k_wmi_vdev_spectral_enable(ar, vdev_id, in ath10k_spectral_scan_config()
227 ath10k_warn(ar, "failed to enable spectral scan: %d\n", res); in ath10k_spectral_scan_config()
237 count = max_t(u8, 1, ar->spectral.config.count); in ath10k_spectral_scan_config()
243 arg.scan_fft_size = ar->spectral.config.fft_size; in ath10k_spectral_scan_config()
259 res = ath10k_wmi_vdev_spectral_conf(ar, &arg); in ath10k_spectral_scan_config()
261 ath10k_warn(ar, "failed to configure spectral scan: %d\n", res); in ath10k_spectral_scan_config()
271 struct ath10k *ar = file->private_data; in read_file_spec_scan_ctl() local
276 mutex_lock(&ar->conf_mutex); in read_file_spec_scan_ctl()
277 spectral_mode = ar->spectral.mode; in read_file_spec_scan_ctl()
278 mutex_unlock(&ar->conf_mutex); in read_file_spec_scan_ctl()
300 struct ath10k *ar = file->private_data; in write_file_spec_scan_ctl() local
311 mutex_lock(&ar->conf_mutex); in write_file_spec_scan_ctl()
314 if (ar->spectral.mode == SPECTRAL_MANUAL || in write_file_spec_scan_ctl()
315 ar->spectral.mode == SPECTRAL_BACKGROUND) { in write_file_spec_scan_ctl()
319 res = ath10k_spectral_scan_config(ar, in write_file_spec_scan_ctl()
320 ar->spectral.mode); in write_file_spec_scan_ctl()
322 ath10k_warn(ar, "failed to reconfigure spectral scan: %d\n", in write_file_spec_scan_ctl()
325 res = ath10k_spectral_scan_trigger(ar); in write_file_spec_scan_ctl()
327 ath10k_warn(ar, "failed to trigger spectral scan: %d\n", in write_file_spec_scan_ctl()
334 res = ath10k_spectral_scan_config(ar, SPECTRAL_BACKGROUND); in write_file_spec_scan_ctl()
336 res = ath10k_spectral_scan_config(ar, SPECTRAL_MANUAL); in write_file_spec_scan_ctl()
338 res = ath10k_spectral_scan_config(ar, SPECTRAL_DISABLED); in write_file_spec_scan_ctl()
343 mutex_unlock(&ar->conf_mutex); in write_file_spec_scan_ctl()
363 struct ath10k *ar = file->private_data; in read_file_spectral_count() local
368 mutex_lock(&ar->conf_mutex); in read_file_spectral_count()
369 spectral_count = ar->spectral.config.count; in read_file_spectral_count()
370 mutex_unlock(&ar->conf_mutex); in read_file_spectral_count()
380 struct ath10k *ar = file->private_data; in write_file_spectral_count() local
396 mutex_lock(&ar->conf_mutex); in write_file_spectral_count()
397 ar->spectral.config.count = val; in write_file_spectral_count()
398 mutex_unlock(&ar->conf_mutex); in write_file_spectral_count()
415 struct ath10k *ar = file->private_data; in read_file_spectral_bins() local
419 mutex_lock(&ar->conf_mutex); in read_file_spectral_bins()
421 fft_size = ar->spectral.config.fft_size; in read_file_spectral_bins()
425 mutex_unlock(&ar->conf_mutex); in read_file_spectral_bins()
435 struct ath10k *ar = file->private_data; in write_file_spectral_bins() local
454 mutex_lock(&ar->conf_mutex); in write_file_spectral_bins()
455 ar->spectral.config.fft_size = ilog2(val); in write_file_spectral_bins()
456 ar->spectral.config.fft_size += WMI_SPECTRAL_BIN_SCALE_DEFAULT; in write_file_spectral_bins()
457 mutex_unlock(&ar->conf_mutex); in write_file_spectral_bins()
496 int ath10k_spectral_start(struct ath10k *ar) in ath10k_spectral_start() argument
500 lockdep_assert_held(&ar->conf_mutex); in ath10k_spectral_start()
502 list_for_each_entry(arvif, &ar->arvifs, list) in ath10k_spectral_start()
505 ar->spectral.mode = SPECTRAL_DISABLED; in ath10k_spectral_start()
506 ar->spectral.config.count = WMI_SPECTRAL_COUNT_DEFAULT; in ath10k_spectral_start()
507 ar->spectral.config.fft_size = WMI_SPECTRAL_FFT_SIZE_DEFAULT; in ath10k_spectral_start()
517 return ath10k_spectral_scan_config(arvif->ar, SPECTRAL_DISABLED); in ath10k_spectral_vif_stop()
520 int ath10k_spectral_create(struct ath10k *ar) in ath10k_spectral_create() argument
522 ar->spectral.rfs_chan_spec_scan = relay_open("spectral_scan", in ath10k_spectral_create()
523 ar->debug.debugfs_phy, in ath10k_spectral_create()
528 ar->debug.debugfs_phy, ar, in ath10k_spectral_create()
532 ar->debug.debugfs_phy, ar, in ath10k_spectral_create()
536 ar->debug.debugfs_phy, ar, in ath10k_spectral_create()
542 void ath10k_spectral_destroy(struct ath10k *ar) in ath10k_spectral_destroy() argument
544 if (ar->spectral.rfs_chan_spec_scan) { in ath10k_spectral_destroy()
545 relay_close(ar->spectral.rfs_chan_spec_scan); in ath10k_spectral_destroy()
546 ar->spectral.rfs_chan_spec_scan = NULL; in ath10k_spectral_destroy()