|
@@ -16581,6 +16581,19 @@ typedef struct {
|
|
|
*/
|
|
|
#define WMI_PEER_PUNCTURE_20MHZ_BITMAP 0x26
|
|
|
|
|
|
+#define WMI_PEER_CHWIDTH_PUNCTURE_BITMAP_GET_CHWIDTH(value32) WMI_GET_BITS(value32, 0x0, 8)
|
|
|
+#define WMI_PEER_CHWIDTH_PUNCTURE_BITMAP_GET_PUNCTURE_BMAP(value32) WMI_GET_BITS(value32, 0x8, 16)
|
|
|
+/* peer channel bandwidth and puncture_bitmap
|
|
|
+ * BIT 0-7 - Peer channel width
|
|
|
+ * This bitfield holds a wmi_channel_width enum value.
|
|
|
+ * BIT 8-23 - Peer Puncture bitmap where each bit indicates whether
|
|
|
+ * a 20 MHz BW is punctured.
|
|
|
+ * The variable should be read from left, LSb (bit 8) will
|
|
|
+ * represent the lowest-frequency 20 MHz portion.
|
|
|
+ * Bit value: 0 - 20 MHz channel is punctured, 1 - not punctured
|
|
|
+ */
|
|
|
+#define WMI_PEER_CHWIDTH_PUNCTURE_20MHZ_BITMAP 0x27
|
|
|
+
|
|
|
typedef struct {
|
|
|
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */
|
|
|
/** unique id identifying the VDEV, generated by the caller */
|
|
@@ -35871,11 +35884,26 @@ typedef struct {
|
|
|
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUCT_wmi_chan_width_peer_list */
|
|
|
wmi_mac_addr peer_macaddr;
|
|
|
A_UINT32 chan_width; /* wmi_channel_width */
|
|
|
+ A_UINT32 puncture_20mhz_bitmap; /* per peer wmi puncture_bitmap,
|
|
|
+ * each bit indicates one 20 MHz BW
|
|
|
+ * punctured.
|
|
|
+ * This variable should be read from left,
|
|
|
+ * LSb will point to the lowest-frequency
|
|
|
+ * 20 MHz frequency slice.
|
|
|
+ * bit value:
|
|
|
+ * 0 - 20 MHz BW is punctured
|
|
|
+ * 1 - not punctured
|
|
|
+ */
|
|
|
} wmi_chan_width_peer_list;
|
|
|
|
|
|
#define WMI_PEER_CHAN_WIDTH_SWITCH_SET_VALID_VDEV_ID(comp) WMI_SET_BITS(comp, 31,1, 1)
|
|
|
#define WMI_PEER_CHAN_WIDTH_SWITCH_GET_VALID_VDEV_ID(comp) WMI_GET_BITS(comp, 31, 1)
|
|
|
|
|
|
+#define WMI_PEER_CHAN_WIDTH_SWITCH_SET_VALID_PUNCTURE_BITMAP(comp) WMI_SET_BITS(comp, 30, 1, 1)
|
|
|
+#define WMI_PEER_CHAN_WIDTH_SWITCH_GET_VALID_PUNCTURE_BITMAP(comp) WMI_GET_BITS(comp, 30, 1)
|
|
|
+
|
|
|
+/* bits 29:8 currently unused */
|
|
|
+
|
|
|
#define WMI_PEER_CHAN_WIDTH_SWITCH_SET_VDEV_ID(comp, value) WMI_SET_BITS(comp, 0, 8, value)
|
|
|
#define WMI_PEER_CHAN_WIDTH_SWITCH_GET_VDEV_ID(comp) WMI_GET_BITS(comp, 0, 8)
|
|
|
|
|
@@ -35884,7 +35912,8 @@ typedef struct {
|
|
|
A_UINT32 num_peers;
|
|
|
/* vdev_var:
|
|
|
* The MSb (bit 31) indicates that the vdev_id is valid.
|
|
|
- * The LSB is used to infer the actual vdev_id.
|
|
|
+ * Bit 30 indicates that the puncture bitmap is valid.
|
|
|
+ * The LSB (bits 0-7) is used to infer the actual vdev_id.
|
|
|
* The other bits can be used for future enhancements.
|
|
|
*/
|
|
|
A_UINT32 vdev_var;
|