qcacmn: Use common Spectral config definition

Today Driver and applications maintain a separate copy of
spectral config definitions, which is error prone. Solution is to
expose the definitions via a header file from driver and include
them in all applications using Spectral.

CRs-Fixed: 2432011
Change-Id: I107c2db05e1cb71b379d6f15a282a889882da2f8
diff --git a/spectral/dispatcher/inc/spectral_ioctl.h b/spectral/dispatcher/inc/spectral_ioctl.h
index 13efc57..e5a9607 100644
--- a/spectral/dispatcher/inc/spectral_ioctl.h
+++ b/spectral/dispatcher/inc/spectral_ioctl.h
@@ -20,6 +20,10 @@
 #define _SPECTRAL_IOCTL_H_
 #include <wlan_dfs_ioctl.h>
 
+#ifndef AH_MAX_CHAINS
+#define AH_MAX_CHAINS 3
+#endif
+
 /*
  * ioctl defines
  */
@@ -98,6 +102,91 @@
 };
 
 /**
+ * struct spectral_config - spectral config parameters
+ * @ss_fft_period:        Skip interval for FFT reports
+ * @ss_period:            Spectral scan period
+ * @ss_count:             # of reports to return from ss_active
+ * @ss_short_report:      Set to report only 1 set of FFT results
+ * @radar_bin_thresh_sel: Select threshold to classify strong bin for FFT
+ * @ss_spectral_pri:      Priority, and are we doing a noise power cal ?
+ * @ss_fft_size:          Defines the number of FFT data points to compute,
+ *                        defined as a log index num_fft_pts =
+ *                        2^ss_fft_size
+ * @ss_gc_ena:            Set, to enable targeted gain change before
+ *                        starting the spectral scan FFT
+ * @ss_restart_ena:       Set, to enable abort of receive frames when in high
+ *                        priority and a spectral scan is queued
+ * @ss_noise_floor_ref:   Noise floor reference number (signed) for the
+ *                        calculation of bin power (dBm) Though stored as an
+ *                        unsigned this should be treated as a signed 8-bit int.
+ * @ss_init_delay:        Disallow spectral scan triggers after tx/rx packets
+ *                        by setting this delay value to roughly SIFS time
+ *                        period or greater Delay timer count in units of 0.25us
+ * @ss_nb_tone_thr:       Number of strong bins (inclusive) per sub-channel,
+ *                        below which a signal is declared a narrowband tone
+ * @ss_str_bin_thr:       Bin/max_bin ratio threshold over which a bin is
+ *                        declared strong (for spectral scan bandwidth analysis)
+ * @ss_wb_rpt_mode:       Set this bit to report spectral scans as EXT_BLOCKER
+ *                        (phy_error=36), if none of the sub-channels are
+ *                        deemed narrowband
+ * @ss_rssi_rpt_mode:     Set this bit to report spectral scans as EXT_BLOCKER
+ *                        (phy_error=36), if the ADC RSSI is below the
+ *                        threshold ss_rssi_thr
+ * @ss_rssi_thr:          ADC RSSI must be greater than or equal to this
+ *                        threshold (signed Db) to ensure spectral scan
+ *                        reporting with normal phy error codes (please see
+ *                        ss_rssi_rpt_mode above).Though stored as an unsigned
+ *                        value, this should be treated as a signed 8-bit int
+ * @ss_pwr_format:        Format of frequency bin magnitude for spectral scan
+ *                        triggered FFTs 0: linear magnitude
+ *                        1: log magnitude (20*log10(lin_mag), 1/2 dB step size)
+ * @ss_rpt_mode:          Format of per-FFT reports to software for spectral
+ *                        scan triggered FFTs
+ *                        0: No FFT report (only pulse end summary)
+ *                        1: 2-dword summary of metrics for each completed FFT
+ *                        2: 2-dword summary + 1x-oversampled bins(in-band) per
+ *                           FFT
+ *                        3: 2-dword summary + 2x-oversampled bins (all) per FFT
+ * @ss_bin_scale:         Number of LSBs to shift out to scale the FFT bins
+ *                        for spectral scan triggered FFTs
+ * @ss_dbm_adj:           Set (with ss_pwr_format=1), to report bin
+ *                        magnitudes
+ *                        converted to dBm power using the noisefloor
+ *                        calibration results
+ * @ss_chn_mask:          Per chain enable mask to select input ADC for search
+ *                        FFT
+ * @ss_nf_cal:            nf calibrated values for ctl+ext
+ * @ss_nf_pwr:            nf pwr values for ctl+ext
+ * @ss_nf_temp_data:      temperature data taken during nf scan
+ */
+struct spectral_config {
+	uint16_t ss_fft_period;
+	uint16_t ss_period;
+	uint16_t ss_count;
+	uint16_t ss_short_report;
+	uint8_t radar_bin_thresh_sel;
+	uint16_t ss_spectral_pri;
+	uint16_t ss_fft_size;
+	uint16_t ss_gc_ena;
+	uint16_t ss_restart_ena;
+	uint16_t ss_noise_floor_ref;
+	uint16_t ss_init_delay;
+	uint16_t ss_nb_tone_thr;
+	uint16_t ss_str_bin_thr;
+	uint16_t ss_wb_rpt_mode;
+	uint16_t ss_rssi_rpt_mode;
+	uint16_t ss_rssi_thr;
+	uint16_t ss_pwr_format;
+	uint16_t ss_rpt_mode;
+	uint16_t ss_bin_scale;
+	uint16_t ss_dbm_adj;
+	uint16_t ss_chn_mask;
+	int8_t ss_nf_cal[AH_MAX_CHAINS * 2];
+	int8_t ss_nf_pwr[AH_MAX_CHAINS * 2];
+	int32_t ss_nf_temp_data;
+};
+
+/**
  * struct spectral_caps - Spectral capabilities structure
  * @phydiag_cap:         Phydiag capability
  * @radar_cap:           Radar detection capability
diff --git a/spectral/dispatcher/inc/wlan_spectral_public_structs.h b/spectral/dispatcher/inc/wlan_spectral_public_structs.h
index ea97a9e..f12f353 100644
--- a/spectral/dispatcher/inc/wlan_spectral_public_structs.h
+++ b/spectral/dispatcher/inc/wlan_spectral_public_structs.h
@@ -232,91 +232,6 @@
 };
 
 /**
- * struct spectral_config - spectral config parameters
- * @ss_fft_period:        Skip interval for FFT reports
- * @ss_period:            Spectral scan period
- * @ss_count:             # of reports to return from ss_active
- * @ss_short_report:      Set to report only 1 set of FFT results
- * @radar_bin_thresh_sel: Select threshold to classify strong bin for FFT
- * @ss_spectral_pri:      Priority, and are we doing a noise power cal ?
- * @ss_fft_size:          Defines the number of FFT data points to compute,
- *                        defined as a log index num_fft_pts =
- *                        2^ss_fft_size
- * @ss_gc_ena:            Set, to enable targeted gain change before
- *                        starting the spectral scan FFT
- * @ss_restart_ena:       Set, to enable abort of receive frames when in high
- *                        priority and a spectral scan is queued
- * @ss_noise_floor_ref:   Noise floor reference number (signed) for the
- *                        calculation of bin power (dBm) Though stored as an
- *                        unsigned this should be treated as a signed 8-bit int.
- * @ss_init_delay:        Disallow spectral scan triggers after tx/rx packets
- *                        by setting this delay value to roughly SIFS time
- *                        period or greater Delay timer count in units of 0.25us
- * @ss_nb_tone_thr:       Number of strong bins (inclusive) per sub-channel,
- *                        below which a signal is declared a narrowband tone
- * @ss_str_bin_thr:       Bin/max_bin ratio threshold over which a bin is
- *                        declared strong (for spectral scan bandwidth analysis)
- * @ss_wb_rpt_mode:       Set this bit to report spectral scans as EXT_BLOCKER
- *                        (phy_error=36), if none of the sub-channels are
- *                        deemed narrowband
- * @ss_rssi_rpt_mode:     Set this bit to report spectral scans as EXT_BLOCKER
- *                        (phy_error=36), if the ADC RSSI is below the
- *                        threshold ss_rssi_thr
- * @ss_rssi_thr:          ADC RSSI must be greater than or equal to this
- *                        threshold (signed Db) to ensure spectral scan
- *                        reporting with normal phy error codes (please see
- *                        ss_rssi_rpt_mode above).Though stored as an unsigned
- *                        value, this should be treated as a signed 8-bit int
- * @ss_pwr_format:        Format of frequency bin magnitude for spectral scan
- *                        triggered FFTs 0: linear magnitude
- *                        1: log magnitude (20*log10(lin_mag), 1/2 dB step size)
- * @ss_rpt_mode:          Format of per-FFT reports to software for spectral
- *                        scan triggered FFTs
- *                        0: No FFT report (only pulse end summary)
- *                        1: 2-dword summary of metrics for each completed FFT
- *                        2: 2-dword summary + 1x-oversampled bins(in-band) per
- *                           FFT
- *                        3: 2-dword summary + 2x-oversampled bins (all) per FFT
- * @ss_bin_scale:         Number of LSBs to shift out to scale the FFT bins
- *                        for spectral scan triggered FFTs
- * @ss_dbm_adj:           Set (with ss_pwr_format=1), to report bin
- *                        magnitudes
- *                        converted to dBm power using the noisefloor
- *                        calibration results
- * @ss_chn_mask:          Per chain enable mask to select input ADC for search
- *                        FFT
- * @ss_nf_cal:            nf calibrated values for ctl+ext
- * @ss_nf_pwr:            nf pwr values for ctl+ext
- * @ss_nf_temp_data:      temperature data taken during nf scan
- */
-struct spectral_config {
-	uint16_t ss_fft_period;
-	uint16_t ss_period;
-	uint16_t ss_count;
-	uint16_t ss_short_report;
-	uint8_t radar_bin_thresh_sel;
-	uint16_t ss_spectral_pri;
-	uint16_t ss_fft_size;
-	uint16_t ss_gc_ena;
-	uint16_t ss_restart_ena;
-	uint16_t ss_noise_floor_ref;
-	uint16_t ss_init_delay;
-	uint16_t ss_nb_tone_thr;
-	uint16_t ss_str_bin_thr;
-	uint16_t ss_wb_rpt_mode;
-	uint16_t ss_rssi_rpt_mode;
-	uint16_t ss_rssi_thr;
-	uint16_t ss_pwr_format;
-	uint16_t ss_rpt_mode;
-	uint16_t ss_bin_scale;
-	uint16_t ss_dbm_adj;
-	uint16_t ss_chn_mask;
-	int8_t ss_nf_cal[AH_MAX_CHAINS * 2];
-	int8_t ss_nf_pwr[AH_MAX_CHAINS * 2];
-	int32_t ss_nf_temp_data;
-};
-
-/**
  * struct spectral_scan_state - State of spectral scan
  * @is_active:  Is spectral scan active
  * @is_enabled: Is spectral scan enabled