Browse Source

fw-api: CL 21614996 - update fw common interface files

extend MLO shmem chip_info bitfields

Change-Id: I7fc8748dd8c42ee629985c3a95fcc4c02e69d3e8
CRs-Fixed: 2262693
spuligil 2 years ago
parent
commit
4d7a738387
1 changed files with 22 additions and 5 deletions
  1. 22 5
      fw/wlan_defs.h

+ 22 - 5
fw/wlan_defs.h

@@ -1763,11 +1763,17 @@ A_COMPILE_TIME_ASSERT(check_mlo_glb_per_chip_crash_info,
         (((sizeof(mlo_glb_per_chip_crash_info) % sizeof(A_UINT64) == 0x0))));
 
 /** Helper macro for params GET/SET of mlo_glb_chip_crash_info */
-#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_NO_OF_CHIPS_GET(chip_info) MLO_SHMEM_GET_BITS(chip_info, 0, 2)
-#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_NO_OF_CHIPS_SET(chip_info, value) MLO_SHMEM_SET_BITS(chip_info, 0, 2, value)
+#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_NO_OF_CHIPS_GET(chip_info) \
+    (MLO_SHMEM_GET_BITS(chip_info, 0, 2) + \
+     (MLO_SHMEM_GET_BITS(chip_info, 12, 4) << 2))
+#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_NO_OF_CHIPS_SET(chip_info, value) \
+    do { \
+       MLO_SHMEM_SET_BITS(chip_info, 0, 2, ((value) & 0x03)); \
+       MLO_SHMEM_SET_BITS(chip_info, 12, 4, ((value) >> 2)); \
+} while (0)
 
-#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_VALID_CHIP_BMAP_GET(chip_info) MLO_SHMEM_GET_BITS(chip_info, 2, 3)
-#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_VALID_CHIP_BMAP_SET(chip_info, value) MLO_SHMEM_SET_BITS(chip_info, 2, 3, value)
+#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_VALID_CHIP_BMAP_GET(chip_info) MLO_SHMEM_GET_BITS(chip_info, 2, 8)
+#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_VALID_CHIP_BMAP_SET(chip_info, value) MLO_SHMEM_SET_BITS(chip_info, 2, 8, value)
 
 typedef struct {
     /* TLV tag and len; tag equals MLO_SHMEM_TLV_STRUCT_MLO_GLB_CHIP_CRASH_INFO */
@@ -1778,7 +1784,18 @@ typedef struct {
      *
      * [1:0]:  no_of_chips
      * [4:2]:  valid_chip_bmap
-     * [31:6]: reserved
+     * For number of chips beyond 3, extension fields are added.
+     * To maintain backward compatibility, with 3 chip board and
+     * old host driver, valid chip bmap is extended in continuation from
+     * existing bit 4 onwards, while extending no_of_chips information
+     * would overlap with old valid_chip_bmap, hence extended from
+     * bit 12:15. Now no_of_chip will have two parts, lower 2 bits from 0-1 and
+     * upper 4 bits from 12-15. SET-GET macros are modified accordingly.
+     * This helps in no change in respective processing files and don't need
+     * to maintain two copy of information for backward compatibility.
+     * [9:5]:  valid_chip_bmap_ext
+     * [15:12]: no_of_chips_ext
+     * [31:16]: reserved
      */
     A_UINT32 chip_info;
     /*  This TLV is followed by array of mlo_glb_per_chip_crash_info: