1 2 /* 3 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 19 20 #ifndef _RX_FRAME_BITMAP_REQ_H_ 21 #define _RX_FRAME_BITMAP_REQ_H_ 22 #if !defined(__ASSEMBLER__) 23 #endif 24 25 #define NUM_OF_DWORDS_RX_FRAME_BITMAP_REQ 2 26 27 #define NUM_OF_QWORDS_RX_FRAME_BITMAP_REQ 1 28 29 struct rx_frame_bitmap_req { 30 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 31 uint32_t explicit_user_request : 1, 32 user_request_type : 1, 33 user_number : 6, 34 sw_peer_id : 16, 35 tid_specific_request : 1, 36 requested_tid : 4, 37 reserved_0 : 3; 38 uint32_t tlv64_padding : 32; 39 #else 40 uint32_t reserved_0 : 3, 41 requested_tid : 4, 42 tid_specific_request : 1, 43 sw_peer_id : 16, 44 user_number : 6, 45 user_request_type : 1, 46 explicit_user_request : 1; 47 uint32_t tlv64_padding : 32; 48 #endif 49 }; 50 51 #define RX_FRAME_BITMAP_REQ_EXPLICIT_USER_REQUEST_OFFSET 0x0000000000000000 52 #define RX_FRAME_BITMAP_REQ_EXPLICIT_USER_REQUEST_LSB 0 53 #define RX_FRAME_BITMAP_REQ_EXPLICIT_USER_REQUEST_MSB 0 54 #define RX_FRAME_BITMAP_REQ_EXPLICIT_USER_REQUEST_MASK 0x0000000000000001 55 56 #define RX_FRAME_BITMAP_REQ_USER_REQUEST_TYPE_OFFSET 0x0000000000000000 57 #define RX_FRAME_BITMAP_REQ_USER_REQUEST_TYPE_LSB 1 58 #define RX_FRAME_BITMAP_REQ_USER_REQUEST_TYPE_MSB 1 59 #define RX_FRAME_BITMAP_REQ_USER_REQUEST_TYPE_MASK 0x0000000000000002 60 61 #define RX_FRAME_BITMAP_REQ_USER_NUMBER_OFFSET 0x0000000000000000 62 #define RX_FRAME_BITMAP_REQ_USER_NUMBER_LSB 2 63 #define RX_FRAME_BITMAP_REQ_USER_NUMBER_MSB 7 64 #define RX_FRAME_BITMAP_REQ_USER_NUMBER_MASK 0x00000000000000fc 65 66 #define RX_FRAME_BITMAP_REQ_SW_PEER_ID_OFFSET 0x0000000000000000 67 #define RX_FRAME_BITMAP_REQ_SW_PEER_ID_LSB 8 68 #define RX_FRAME_BITMAP_REQ_SW_PEER_ID_MSB 23 69 #define RX_FRAME_BITMAP_REQ_SW_PEER_ID_MASK 0x0000000000ffff00 70 71 #define RX_FRAME_BITMAP_REQ_TID_SPECIFIC_REQUEST_OFFSET 0x0000000000000000 72 #define RX_FRAME_BITMAP_REQ_TID_SPECIFIC_REQUEST_LSB 24 73 #define RX_FRAME_BITMAP_REQ_TID_SPECIFIC_REQUEST_MSB 24 74 #define RX_FRAME_BITMAP_REQ_TID_SPECIFIC_REQUEST_MASK 0x0000000001000000 75 76 #define RX_FRAME_BITMAP_REQ_REQUESTED_TID_OFFSET 0x0000000000000000 77 #define RX_FRAME_BITMAP_REQ_REQUESTED_TID_LSB 25 78 #define RX_FRAME_BITMAP_REQ_REQUESTED_TID_MSB 28 79 #define RX_FRAME_BITMAP_REQ_REQUESTED_TID_MASK 0x000000001e000000 80 81 #define RX_FRAME_BITMAP_REQ_RESERVED_0_OFFSET 0x0000000000000000 82 #define RX_FRAME_BITMAP_REQ_RESERVED_0_LSB 29 83 #define RX_FRAME_BITMAP_REQ_RESERVED_0_MSB 31 84 #define RX_FRAME_BITMAP_REQ_RESERVED_0_MASK 0x00000000e0000000 85 86 #define RX_FRAME_BITMAP_REQ_TLV64_PADDING_OFFSET 0x0000000000000000 87 #define RX_FRAME_BITMAP_REQ_TLV64_PADDING_LSB 32 88 #define RX_FRAME_BITMAP_REQ_TLV64_PADDING_MSB 63 89 #define RX_FRAME_BITMAP_REQ_TLV64_PADDING_MASK 0xffffffff00000000 90 91 #endif 92