/** @file */
|
/******************************************************************************
|
*
|
* Copyright(c) 2019 Realtek Corporation. All rights reserved.
|
*
|
* This program is free software; you can redistribute it and/or modify it
|
* under the terms of version 2 of the GNU General Public License as
|
* published by the Free Software Foundation.
|
*
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
* more details.
|
*
|
******************************************************************************/
|
|
#ifndef _MAC_AX_POWER_SAVING_H_
|
#define _MAC_AX_POWER_SAVING_H_
|
|
#include "../type.h"
|
#include "fwcmd.h"
|
#include "role.h"
|
|
#define MACID_GRP_SH 5
|
#define MACID_GRP_MASK 0x1F
|
#define PORT_SH 4
|
|
/**
|
* @enum last_rpwm_mode
|
*
|
* @brief last_rpwm_mode
|
*
|
* @var last_rpwm_mode::LAST_RPWM_PS
|
* Please Place Description here.
|
* @var last_rpwm_mode::LAST_RPWM_ACTIVE
|
* Please Place Description here.
|
*/
|
enum last_rpwm_mode {
|
LAST_RPWM_PS = 0x0,
|
LAST_RPWM_ACTIVE = 0x6,
|
};
|
|
/**
|
* @struct lps_parm
|
* @brief lps_parm
|
*
|
* @var lps_parm::macid
|
* Please Place Description here.
|
* @var lps_parm::psmode
|
* Please Place Description here.
|
* @var lps_parm::rlbm
|
* Please Place Description here.
|
* @var lps_parm::smartps
|
* Please Place Description here.
|
* @var lps_parm::awakeinterval
|
* Please Place Description here.
|
* @var lps_parm::vouapsd
|
* Please Place Description here.
|
* @var lps_parm::viuapsd
|
* Please Place Description here.
|
* @var lps_parm::beuapsd
|
* Please Place Description here.
|
* @var lps_parm::bkuapsd
|
* Please Place Description here.
|
* @var lps_parm::rsvd
|
* Please Place Description here.
|
* @var lps_parm::lastrpwm
|
* Please Place Description here.
|
* @var lps_parm::rsvd1
|
* Please Place Description here.
|
*/
|
struct lps_parm {
|
u32 macid:8;
|
u32 psmode:8;
|
u32 rlbm:4;
|
u32 smartps:4;
|
u32 awakeinterval:8;
|
u32 vouapsd:1;
|
u32 viuapsd:1;
|
u32 beuapsd:1;
|
u32 bkuapsd:1;
|
u32 rsvd:4;
|
u32 lastrpwm:8;
|
u32 rsvd1:16;
|
};
|
|
/**
|
* @struct ps_rpwm_parm
|
* @brief ps_rpwm_parm
|
*
|
* @var ps_rpwm_parm::req_pwr_state
|
* Please Place Description here.
|
* @var ps_rpwm_parm::notify_wake
|
* Please Place Description here.
|
* @var ps_rpwm_parm::rsvd0
|
*/
|
struct ps_rpwm_parm {
|
enum mac_ax_rpwm_req_pwr_state req_pwr_state;
|
u32 notify_wake:1;
|
u32 rsvd0:31;
|
};
|
|
/**
|
* @macid_grp_list
|
*
|
* @brief macid_grp_list
|
*
|
* @var macid_grp_list::MACID_GRP_0
|
* Please Place Description here.
|
* @var macid_grp_list::MACID_GRP_1
|
* Please Place Description here.
|
* @var macid_grp_list::MACID_GRP_2
|
* Please Place Description here.
|
* @var macid_grp_list::MACID_GRP_3
|
* Please Place Description here.
|
*/
|
enum macid_grp_list {
|
MACID_GRP_0 = 0,
|
MACID_GRP_1 = 1,
|
MACID_GRP_2 = 2,
|
MACID_GRP_3 = 3,
|
};
|
|
/**
|
* @struct ips_cfg
|
* @brief ips_cfg
|
*
|
* @var ips_cfg::macid
|
* Please Place Description here.
|
* @var ips_cfg::enable
|
* Please Place Description here.
|
* @var ips_cfg::rsvd0
|
* Please Place Description here.
|
*/
|
struct ips_cfg {
|
u32 macid:8;
|
u32 enable:1;
|
u32 rsvd0:23;
|
};
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup LPS
|
* @{
|
*/
|
|
/**
|
* @brief mac_cfg_lps
|
*
|
* @param *adapter
|
* @param macid
|
* @param ps_mode
|
* @param *lps_info
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_cfg_lps(struct mac_ax_adapter *adapter, u8 macid,
|
enum mac_ax_ps_mode ps_mode, struct mac_ax_lps_info *lps_info);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup LPS
|
* @{
|
*/
|
|
/**
|
* @brief mac_ps_pwr_state
|
*
|
* @param *adapter
|
* @param action
|
* @param req_pwr_state
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_ps_pwr_state(struct mac_ax_adapter *adapter,
|
enum mac_ax_pwr_state_action action,
|
enum mac_ax_rpwm_req_pwr_state req_pwr_state);
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup LPS
|
* @{
|
*/
|
|
/**
|
* @brief mac_chk_leave_lps
|
*
|
* @param *adapter
|
* @param macid
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
|
u32 mac_chk_leave_lps(struct mac_ax_adapter *adapter, u8 macid);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup LPS
|
* @{
|
*/
|
|
/**
|
* @brief _is_in_lps
|
*
|
* @param *adapter
|
* @return Please Place Description here.
|
* @retval u8
|
*/
|
|
u8 _is_in_lps(struct mac_ax_adapter *adapter);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup LPS
|
* @{
|
*/
|
|
/**
|
* @brief reset_lps_seq_num
|
*
|
* @param *adapter
|
* @return Please Place Description here.
|
* @retval void
|
*/
|
void reset_lps_seq_num(struct mac_ax_adapter *adapter);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup IPS
|
* @{
|
*/
|
|
/**
|
* @brief mac_cfg_ips
|
*
|
* @param *adapter
|
* @param macid
|
* @param enable
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_cfg_ips(struct mac_ax_adapter *adapter, u8 macid, u8 enable);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup IPS
|
* @{
|
*/
|
|
/**
|
* @brief mac_chk_leave_ips
|
*
|
* @param *adapter
|
* @param macid
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_chk_leave_ips(struct mac_ax_adapter *adapter, u8 macid);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup IPS
|
* @{
|
*/
|
|
/**
|
* @brief _is_in_ips
|
*
|
* @param *adapter
|
* @return Please Place Description here.
|
* @retval u8
|
*/
|
u8 _is_in_ips(struct mac_ax_adapter *adapter);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup LPS
|
* @{
|
*/
|
|
/**
|
* @brief mac_ps_notify_wake
|
*
|
* @param *adapter
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_ps_notify_wake(struct mac_ax_adapter *adapter);
|
/**
|
* @}
|
* @}
|
*/
|
|
/**
|
* @addtogroup PowerSaving
|
* @{
|
* @addtogroup LPS
|
* @{
|
*/
|
|
/**
|
* @brief mac_cfg_ps_advance_parm
|
*
|
* @param *adapter
|
* @param parm
|
* @return Please Place Description here.
|
* @retval u32
|
*/
|
u32 mac_cfg_ps_advance_parm(struct mac_ax_adapter *adapter,
|
struct mac_ax_ps_adv_parm *parm);
|
/**
|
* @}
|
* @}
|
*/
|
|
#endif // #define _MAC_AX_POWER_SAVING_H_
|