|
@@ -29012,6 +29012,78 @@ typedef struct {
|
|
|
*/
|
|
|
} wmi_afc_serv_resp_struct;
|
|
|
|
|
|
+/*
|
|
|
+ * The following structures define the format used for AFC binary data objects
|
|
|
+ * shared by the host SW and target FW.
|
|
|
+ * FW expects these structures to be written in shared memory in little-endian
|
|
|
+ * format. If the host/AFC app uses big endian format, Host/APP needs to
|
|
|
+ * byteswap the data, so FW will get data in the expected little-endian format.
|
|
|
+ */
|
|
|
+typedef struct {
|
|
|
+ A_UINT32 freq_info; /* bits 15:0 = u16 start_freq,
|
|
|
+ * bits 31:16 = u16 end_freq
|
|
|
+ * both in MHz units
|
|
|
+ */
|
|
|
+ A_INT32 max_psd; /* Maximum PSD in dBm/MHz, value is stored in 0.01 dBm/MHz steps */
|
|
|
+} afc_freq_info;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ A_UINT32 channel_cfi; /* channel center frequency index */
|
|
|
+ A_UINT32 max_eirp_pwr; /* maximum permissible EIRP available for above CFI in dBm, value is stored in 0.01 dBm steps */
|
|
|
+} afc_eirp_info;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ A_UINT32 global_operating_class;
|
|
|
+ A_UINT32 num_channels; /* num of valid channels for above global operating class */
|
|
|
+ /* This structure is followed by (num_channels*sizeof(afc_eirp_info))
|
|
|
+ * bytes array:
|
|
|
+ * afc_eirp_info eirp_info[num_channels];
|
|
|
+ * List of channel cfi and eirp power values,
|
|
|
+ * Total size will be num_channels * sizeof(afc_eirp_info)
|
|
|
+ */
|
|
|
+} afc_channel_info;
|
|
|
+
|
|
|
+/*
|
|
|
+ * For case of afc_server_resp containing binary payload, the buf pointer
|
|
|
+ * in wmi_afc_serv_resp_struct will be poiniting to binary format payload
|
|
|
+ * which is in the format defined below.
|
|
|
+ */
|
|
|
+typedef struct {
|
|
|
+ A_UINT32 local_error_code; /* Internal error code between AFC app and target success = 0, General failure = 1 */
|
|
|
+ A_UINT32 version; /* Internal version between AFC app and Target for structure pattern */
|
|
|
+ A_UINT32 afc_wfa_version; /* Version defined in AFC spec document. bits 15:0 -- minor version & bits 31:16 -- major version */
|
|
|
+ A_UINT32 request_id; /* AFC unique request ID */
|
|
|
+ A_UINT32 avail_exp_time_d; /* avail_exp_time_d and avail_exp_time_t are in UTC
|
|
|
+ * Availability expiry time date format: YYYY-MM-DD,
|
|
|
+ * bits 7:0 -DD - Day (expected values 1-31)
|
|
|
+ * bits 15:8 -MM - Month (expected values 1-12)
|
|
|
+ * bits 31:16 -YYYY - Year
|
|
|
+ */
|
|
|
+ A_UINT32 avail_exp_time_t; /* Availability expiry time format HH-MM-SS
|
|
|
+ * bits 7:0 -SS - Time in Sec (expected values 0-59)
|
|
|
+ * bits 15:8 -MM - Minute (expected values 0-59)
|
|
|
+ * bits 23:16 -HH - Hour (expected values 0-23)
|
|
|
+ * bits 31:24 -reserved
|
|
|
+ */
|
|
|
+ A_INT32 afc_serv_resp_code; /* response code defined in afc wfa document, refer WMI_AFC_SERV_RESP_CODE */
|
|
|
+ A_UINT32 num_frequency_obj; /* Total number of frequency objects */
|
|
|
+ A_UINT32 num_channel_obj; /* Total number of frequency objects */
|
|
|
+ char shortdesc[64]; /* This field represents a short description related to the result indicated by the response_code
|
|
|
+ * field. End of description will be indicated by 0 */
|
|
|
+ A_UINT32 reserved[2]; /* reserve space for future fields - needs to be set to 0x0 */
|
|
|
+
|
|
|
+ /*
|
|
|
+ * This structure is followed by an array of frequency info and
|
|
|
+ * channel info array:
|
|
|
+ * - afc_freq_info freq_info[num_frequency_obj];
|
|
|
+ * List of frequency power values, total size will be
|
|
|
+ * num_frequency_obj * sizeof(afc_freq_info)
|
|
|
+ * - afc_channel_info chan_info[num_channel_obj];
|
|
|
+ * List of channel power values, total size will be
|
|
|
+ * num_channel_obj * sizeof(afc_channel_info)
|
|
|
+ */
|
|
|
+} afc_spectrum_inquiry_resp_bin_type;
|
|
|
+
|
|
|
/* Freq units in MHz */
|
|
|
#define WMI_REG_RULE_START_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 0, 16)
|
|
|
#define WMI_REG_RULE_START_FREQ_SET(freq_info, value) WMI_SET_BITS(freq_info, 0, 16, value)
|
|
@@ -29313,6 +29385,11 @@ typedef struct {
|
|
|
A_UINT32 tlv_header;
|
|
|
A_UINT32 request_id; /* AFC unique Request ID for AFC expiry event, This is Nonce generated by FW for freshness */
|
|
|
A_UINT32 event_subtype; /* refer to WMI_AFC_EXPIRY_EVENT_SUBTYPE */
|
|
|
+ A_UINT32 afc_wfa_version; /* bits 15:0 -- minor version
|
|
|
+ * bits 31:16 -- major version
|
|
|
+ * WMI_AFC_WFA_MINOR_VERSION_GET &
|
|
|
+ * WMI_AFC_WFA_MAJOR_VERSION_GET
|
|
|
+ */
|
|
|
} wmi_afc_expiry_event_param;
|
|
|
|
|
|
typedef struct {
|
|
@@ -29353,7 +29430,7 @@ typedef struct {
|
|
|
* use MACRO as WMI_REG_RULE_START_FREQ_GET &
|
|
|
* WMI_REG_RULE_START_FREQ_SET
|
|
|
*/
|
|
|
- A_INT32 psd_power_info; /* Maximum PSD in dBm/MHz */
|
|
|
+ A_INT32 psd_power_info; /* Maximum PSD in dBm/MHz, value is stored in 0.01 dBm/MHz steps */
|
|
|
} wmi_6g_afc_frequency_info;
|
|
|
|
|
|
typedef struct {
|
|
@@ -29387,7 +29464,7 @@ typedef struct {
|
|
|
* tag equals WMITLV_TAG_STRUC_wmi_afc_chan_eirp_power_info */
|
|
|
A_UINT32 tlv_header ;
|
|
|
A_UINT32 channel_cfi; /* channel center frequency indices */
|
|
|
- A_UINT32 eirp_pwr; /* maximum permissible EIRP available for above CFI in dBm */
|
|
|
+ A_UINT32 eirp_pwr; /* maximum permissible EIRP available for above CFI in dBm, value is stored in 0.01 dBm steps */
|
|
|
} wmi_afc_chan_eirp_power_info;
|
|
|
|
|
|
typedef struct {
|