summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fw/htt_ppdu_stats.h52
1 files changed, 25 insertions, 27 deletions
diff --git a/fw/htt_ppdu_stats.h b/fw/htt_ppdu_stats.h
index b3fb65efcdc8..a3594eec8652 100644
--- a/fw/htt_ppdu_stats.h
+++ b/fw/htt_ppdu_stats.h
@@ -256,36 +256,34 @@ typedef struct {
struct htt_tx_ppdu_stats_info tx_ppdu_stats_info[1/*number_of_ppdu_stats*/];
} htt_ppdu_stats_usr_common_array_tlv_v;
-#define HTT_PPDU_STATS_SCH_CMD_TLV_HDR_STRUCT \
- struct { \
- htt_tlv_hdr_t tlv_hdr; \
- /* Refer bmi_msg.h */ \
- A_UINT32 target_type; \
- }
-
-typedef HTT_PPDU_STATS_SCH_CMD_TLV_HDR_STRUCT htt_ppdu_stats_sch_cmd_tlv_hdr_t;
-
typedef struct {
- /*
- * Use a union to allow the HW-independent header portion of this struct
- * to be accessed either within a hdr struct, or directly within the
- * htt_ppdu_stats_sch_cmd_tlv_v struct.
- * For example, the target_type field can be accessed either as
- * htt_ppdu_stats_sch_cmd_tlv_v.target_type
- * or
- * htt_ppdu_stats_sch_cmd_tlv_v.hdr.target_type
- */
+ htt_tlv_hdr_t tlv_hdr;
union {
- htt_ppdu_stats_sch_cmd_tlv_hdr_t hdr;
- HTT_PPDU_STATS_SCH_CMD_TLV_HDR_STRUCT;
+ /* DEPRECATED (target_type)
+ * The target_type field is not actually present in the HTT messages
+ * produced by the FW. However, it cannot be removed (yet), due to
+ * FW code that refers to this field.
+ * As a workaround, this target_type field is being moved into a
+ * union with the "hw" field that actually is present in the message.
+ * This makes the message definitions become consistent with the
+ * actual message contents, while not breaking the compilation of
+ * code that refers to the target_type field.
+ * Overlaying the memory for "target_type" and "hw" does not cause
+ * problems, because the FW code that refers to target_type first
+ * writes a value into the target_type field, then writes data into
+ * the hw field.
+ * Once all FW references to the target_type field have been removed,
+ * the target_type field def and the encapsulating anonymous union
+ * will be removed from this htt_ppdu_stats_sch_cmd_tlv_v struct def.
+ */
+ A_UINT32 target_type;
+
+ /*
+ * The hw portion of this struct contains a scheduler_command_status
+ * struct, whose definition is different for different target HW types.
+ */
+ A_UINT32 hw[1];
};
- /*
- * The hw portion of this struct contains a scheduler_command_status
- * struct, whose definition is different for different target HW types.
- * The target_type field within the header can, if set correctly,
- * clarify which definition of scheduler_command_status is being used.
- */
- A_UINT32 hw[1];
} htt_ppdu_stats_sch_cmd_tlv_v;
#define HTT_PPDU_STATS_COMMON_TLV_SCH_CMDID_M 0x0000ffff