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:

committad av
nshrivas

förälder
f87f43f8b2
incheckning
1de47959b6
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
||||
|
Referens i nytt ärende
Block a user