linux/drivers/net/wireless/ath/ath11k/spectral.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: BSD-3-Clause-Clear */
   2/*
   3 * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
   4 */
   5
   6#ifndef ATH11K_SPECTRAL_H
   7#define ATH11K_SPECTRAL_H
   8
   9#include "../spectral_common.h"
  10#include "dbring.h"
  11
  12/* enum ath11k_spectral_mode:
  13 *
  14 * @SPECTRAL_DISABLED: spectral mode is disabled
  15 * @SPECTRAL_BACKGROUND: hardware sends samples when it is not busy with
  16 *      something else.
  17 * @SPECTRAL_MANUAL: spectral scan is enabled, triggering for samples
  18 *      is performed manually.
  19 */
  20enum ath11k_spectral_mode {
  21        ATH11K_SPECTRAL_DISABLED = 0,
  22        ATH11K_SPECTRAL_BACKGROUND,
  23        ATH11K_SPECTRAL_MANUAL,
  24};
  25
  26struct ath11k_spectral {
  27        struct ath11k_dbring rx_ring;
  28        /* Protects enabled */
  29        spinlock_t lock;
  30        struct rchan *rfs_scan; /* relay(fs) channel for spectral scan */
  31        struct dentry *scan_ctl;
  32        struct dentry *scan_count;
  33        struct dentry *scan_bins;
  34        enum ath11k_spectral_mode mode;
  35        u16 count;
  36        u8 fft_size;
  37        bool enabled;
  38};
  39
  40#ifdef CONFIG_ATH11K_SPECTRAL
  41
  42int ath11k_spectral_init(struct ath11k_base *ab);
  43void ath11k_spectral_deinit(struct ath11k_base *ab);
  44int ath11k_spectral_vif_stop(struct ath11k_vif *arvif);
  45void ath11k_spectral_reset_buffer(struct ath11k *ar);
  46enum ath11k_spectral_mode ath11k_spectral_get_mode(struct ath11k *ar);
  47struct ath11k_dbring *ath11k_spectral_get_dbring(struct ath11k *ar);
  48
  49#else
  50
  51static inline int ath11k_spectral_init(struct ath11k_base *ab)
  52{
  53        return 0;
  54}
  55
  56static inline void ath11k_spectral_deinit(struct ath11k_base *ab)
  57{
  58}
  59
  60static inline int ath11k_spectral_vif_stop(struct ath11k_vif *arvif)
  61{
  62        return 0;
  63}
  64
  65static inline void ath11k_spectral_reset_buffer(struct ath11k *ar)
  66{
  67}
  68
  69static inline
  70enum ath11k_spectral_mode ath11k_spectral_get_mode(struct ath11k *ar)
  71{
  72        return ATH11K_SPECTRAL_DISABLED;
  73}
  74
  75static inline
  76struct ath11k_dbring *ath11k_spectral_get_dbring(struct ath11k *ar)
  77{
  78        return NULL;
  79}
  80
  81#endif /* CONFIG_ATH11K_SPECTRAL */
  82#endif /* ATH11K_SPECTRAL_H */
  83