qcacmn: Enable Agile Spectral in single synth targets

Some targets have a single synthesizer and it allows
a single Spectral detector to scan in 160 MHz /165 MHz.
Enable Agile Spectral scanning in 160 MHz / 165 MHz for
such targets. Agile creq2 will be populated in the WMI
command after WMI interface changes are merged.

CRs-Fixed: 2648480
Change-Id: I8522cbeeab29ac41479e3041eea376b081c0758a
This commit is contained in:
Edayilliam Jayadev
2020-04-02 11:30:21 +05:30
committad av nshrivas
förälder f87f43f8b2
incheckning 1de47959b6
14 ändrade filer med 563 tillägg och 263 borttagningar

Visa fil

@@ -172,6 +172,21 @@ enum spectral_cap_hw_gen {
SPECTRAL_CAP_HW_GEN_3 = 2,
};
/**
* struct spectral_config_frequency - Spectral scan frequency
* @cfreq1: Center frequency (in MHz) of the span of interest(primary 80 MHz
* span for 80 + 80 agile scan request) or center frequency (in MHz)
* of any WLAN channel in the span of interest.
* @cfreq2: Applicable only for Agile Spectral scan request in 80+80 MHz mode.
* For 80+80 mode it represents the center frequency (in MHz) of the
* secondary 80 MHz span of interest or center frequency (in MHz) of
* any WLAN channel in the secondary 80 MHz span of interest.
*/
struct spectral_config_frequency {
uint32_t cfreq1;
uint32_t cfreq2;
};
/**
* struct spectral_config - spectral config parameters
* @ss_fft_period: Skip interval for FFT reports
@@ -236,9 +251,16 @@ enum spectral_cap_hw_gen {
* Not applicable. Spectral scan would happen in the
* operating span.
* Agile mode:-
* Center frequency (in MHz) of the interested span
* or center frequency (in MHz) of any WLAN channel
* in the interested span.
* cfreq1 represents the center frequency (in MHz) of
* the span of interest(primary 80 MHz span for 80 + 80
* agile scan request) or center frequency (in MHz) of
* any WLAN channel in the span of interest. cfreq2 is
* applicable only for Agile Spectral scan request in
* 80+80 MHz mode. For 80+80 mode it represents the
* center frequency (in MHz) of the secondary 80 MHz
* span of interest or center frequency (in MHz) of
* any WLAN channel in the secondary 80 MHz span of
* interest.
*/
struct spectral_config {
uint16_t ss_fft_period;
@@ -265,7 +287,7 @@ struct spectral_config {
int8_t ss_nf_cal[AH_MAX_CHAINS * 2];
int8_t ss_nf_pwr[AH_MAX_CHAINS * 2];
int32_t ss_nf_temp_data;
uint32_t ss_frequency;
struct spectral_config_frequency ss_frequency;
};
/**
@@ -526,9 +548,13 @@ struct spectral_samp_data {
* @freq: Operating frequency in MHz
* @vhtop_ch_freq_seg1: VHT Segment 1 centre frequency in MHz
* @vhtop_ch_freq_seg2: VHT Segment 2 centre frequency in MHz
* @agile_freq: Center frequency in MHz of the entire span across which
* @agile_freq1: Center frequency in MHz of the entire span(for 80+80 MHz
* agile Scan it is primary 80 MHz span) across which
* Agile Spectral is carried out. Applicable only for Agile
* Spectral samples.
* @agile_freq2: Center frequency in MHz of the secondary 80 MHz span
* across which Agile Spectral is carried out. Applicable
* only for Agile Spectral samples in 80+80 MHz mode.
* @freq_loading: How busy was the channel
* @dcs_enabled: Whether DCS is enabled
* @int_type: Interference type indicated by DCS
@@ -540,7 +566,8 @@ struct spectral_samp_msg {
uint16_t freq;
uint16_t vhtop_ch_freq_seg1;
uint16_t vhtop_ch_freq_seg2;
uint16_t agile_freq;
uint16_t agile_freq1;
uint16_t agile_freq2;
uint16_t freq_loading;
uint16_t dcs_enabled;
enum dcs_int_type int_type;

Visa fil

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2011,2017-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2011,2017-2020 The Linux Foundation. All rights reserved.
*
*
* Permission to use, copy, modify, and/or distribute this software for
@@ -242,6 +242,21 @@ enum spectral_dma_debug {
SPECTRAL_DMA_BUFFER_DEBUG,
};
/**
* struct spectral_cp_param - Spectral control path data structure which
* contains parameter and its value
* @id: Parameter ID
* @value: Single parameter value
* @freq: Spectral scan frequency
*/
struct spectral_cp_param {
uint32_t id;
union {
uint32_t value;
struct spectral_config_frequency freq;
};
};
/**
* struct spectral_chan_stats - channel status info
* @cycle_count: Cycle count

Visa fil

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
*
*
* Permission to use, copy, modify, and/or distribute this software for
@@ -68,8 +68,7 @@ void tgt_pdev_spectral_deinit(struct wlan_objmgr_pdev *pdev);
/**
* tgt_set_spectral_config() - Set spectral config
* @pdev: Pointer to pdev object
* @threshtype: spectral parameter type
* @value: Value to be configured for the given spectral parameter
* @param: Pointer object describing Spectral parameter
* @smode: Spectral scan mode
* @err: Spectral control path error code
*
@@ -78,8 +77,7 @@ void tgt_pdev_spectral_deinit(struct wlan_objmgr_pdev *pdev);
* Return: QDF_STATUS_SUCCESS on success, else QDF_STATUS_E_FAILURE
*/
QDF_STATUS tgt_set_spectral_config(struct wlan_objmgr_pdev *pdev,
const u_int32_t threshtype,
const u_int32_t value,
const struct spectral_cp_param *param,
const enum spectral_scan_mode smode,
enum spectral_cp_error_code *err);