/* * Copyright (c) 2020, The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _PHYRX_ABORT_REQUEST_INFO_H_ #define _PHYRX_ABORT_REQUEST_INFO_H_ #if !defined(__ASSEMBLER__) #endif // ################ START SUMMARY ################# // // Dword Fields // 0 phyrx_abort_reason[7:0], phy_enters_nap_state[8], phy_enters_defer_state[9], reserved_0[15:10], receive_duration[31:16] // // ################ END SUMMARY ################# #define NUM_OF_DWORDS_PHYRX_ABORT_REQUEST_INFO 1 struct phyrx_abort_request_info { uint32_t phyrx_abort_reason : 8, //[7:0] phy_enters_nap_state : 1, //[8] phy_enters_defer_state : 1, //[9] reserved_0 : 6, //[15:10] receive_duration : 16; //[31:16] }; /* phyrx_abort_reason Reception aborted due to receiving a PHY_OFF TLV Should not really be used. If needed, ask for documentation update phy_enters_nap_state When set, PHY enters PHY NAP state after sending this abort Note that nap and defer state are mutually exclusive. Field put pro-actively in place....usage still to be agreed upon. phy_enters_defer_state When set, PHY enters PHY defer state after sending this abort Note that nap and defer state are mutually exclusive. Field put pro-actively in place....usage still to be agreed upon. reserved_0 receive_duration The remaining receive duration of this PPDU in the medium (in us). When PHY does not know this duration when this TLV is generated, the field will be set to 0. The timing reference point is the reception by the MAC of this TLV. The value shall be accurate to within 2us. In case Phy_enters_nap_state and/or Phy_enters_defer_state is set, there is a possibility that MAC PMM can also decide to go into a low(er) power state. */ /* Description PHYRX_ABORT_REQUEST_INFO_0_PHYRX_ABORT_REASON Reception aborted due to receiving a PHY_OFF TLV Should not really be used. If needed, ask for documentation update */ #define PHYRX_ABORT_REQUEST_INFO_0_PHYRX_ABORT_REASON_OFFSET 0x00000000 #define PHYRX_ABORT_REQUEST_INFO_0_PHYRX_ABORT_REASON_LSB 0 #define PHYRX_ABORT_REQUEST_INFO_0_PHYRX_ABORT_REASON_MASK 0x000000ff /* Description PHYRX_ABORT_REQUEST_INFO_0_PHY_ENTERS_NAP_STATE When set, PHY enters PHY NAP state after sending this abort Note that nap and defer state are mutually exclusive. Field put pro-actively in place....usage still to be agreed upon. */ #define PHYRX_ABORT_REQUEST_INFO_0_PHY_ENTERS_NAP_STATE_OFFSET 0x00000000 #define PHYRX_ABORT_REQUEST_INFO_0_PHY_ENTERS_NAP_STATE_LSB 8 #define PHYRX_ABORT_REQUEST_INFO_0_PHY_ENTERS_NAP_STATE_MASK 0x00000100 /* Description PHYRX_ABORT_REQUEST_INFO_0_PHY_ENTERS_DEFER_STATE When set, PHY enters PHY defer state after sending this abort Note that nap and defer state are mutually exclusive. Field put pro-actively in place....usage still to be agreed upon. */ #define PHYRX_ABORT_REQUEST_INFO_0_PHY_ENTERS_DEFER_STATE_OFFSET 0x00000000 #define PHYRX_ABORT_REQUEST_INFO_0_PHY_ENTERS_DEFER_STATE_LSB 9 #define PHYRX_ABORT_REQUEST_INFO_0_PHY_ENTERS_DEFER_STATE_MASK 0x00000200 /* Description PHYRX_ABORT_REQUEST_INFO_0_RESERVED_0 */ #define PHYRX_ABORT_REQUEST_INFO_0_RESERVED_0_OFFSET 0x00000000 #define PHYRX_ABORT_REQUEST_INFO_0_RESERVED_0_LSB 10 #define PHYRX_ABORT_REQUEST_INFO_0_RESERVED_0_MASK 0x0000fc00 /* Description PHYRX_ABORT_REQUEST_INFO_0_RECEIVE_DURATION The remaining receive duration of this PPDU in the medium (in us). When PHY does not know this duration when this TLV is generated, the field will be set to 0. The timing reference point is the reception by the MAC of this TLV. The value shall be accurate to within 2us. In case Phy_enters_nap_state and/or Phy_enters_defer_state is set, there is a possibility that MAC PMM can also decide to go into a low(er) power state. */ #define PHYRX_ABORT_REQUEST_INFO_0_RECEIVE_DURATION_OFFSET 0x00000000 #define PHYRX_ABORT_REQUEST_INFO_0_RECEIVE_DURATION_LSB 16 #define PHYRX_ABORT_REQUEST_INFO_0_RECEIVE_DURATION_MASK 0xffff0000 #endif // _PHYRX_ABORT_REQUEST_INFO_H_