qcacld-3.0: Move OPM parameters to PMO module

Store OPM parameters in PMO per vdev context.

Change-Id: I97b84171db434af0e43246d61416b37849728a6d
CRs-Fixed: 3567042
This commit is contained in:
Vishal Miskin
2023-07-05 12:14:46 +05:30
committato da Rahul Choudhary
parent 6a7f372d75
commit a9c42d3d8f
14 ha cambiato i file con 254 aggiunte e 65 eliminazioni

Vedi File

@@ -532,4 +532,17 @@ struct pmo_igmp_offload_req {
uint32_t num_grp_ip_address;
uint32_t grp_ip_address[MAX_MC_IP_ADDR];
};
/**
* struct pmo_ps_params - structure to hold OPM params
*
* @opm_mode: OPM mode
* @ps_ito: power save inactivity timeout
* @spec_wake: OPM speculative wake interval
*/
struct pmo_ps_params {
enum powersave_mode opm_mode;
uint16_t ps_ito;
uint16_t spec_wake;
};
#endif /* end of _WLAN_PMO_COMMONP_STRUCT_H_ */

Vedi File

@@ -325,6 +325,26 @@ wlan_pmo_get_interval_for_pagefault_wakeup_counts(
QDF_STATUS wlan_pmo_get_listen_interval(struct wlan_objmgr_vdev *vdev,
uint32_t *listen_interval);
/**
* wlan_pmo_set_ps_params() - Set vdev OPM params
* @vdev: pointer to vdev object
* @ps_params: pointer to OPM params
*
* Return: None
*/
void wlan_pmo_set_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params);
/**
* wlan_pmo_get_ps_params() - Get vdev OPM params
* @vdev: pointer to vdev object
* @ps_params: Pointer to get OPM params
*
* Return: QDF Status
*/
QDF_STATUS wlan_pmo_get_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params);
#else /* WLAN_POWER_MANAGEMENT_OFFLOAD */
static inline QDF_STATUS pmo_init(void)
@@ -512,6 +532,18 @@ static QDF_STATUS wlan_pmo_get_listen_interval(struct wlan_objmgr_vdev *vdev,
return QDF_STATUS_SUCCESS;
}
static inline
void wlan_pmo_set_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params)
{
}
static inline QDF_STATUS
wlan_pmo_get_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params)
{
return QDF_STATUS_SUCCESS;
}
#endif /* WLAN_POWER_MANAGEMENT_OFFLOAD */
#endif /* end of _WLAN_PMO_OBJ_MGMT_API_H_ */

Vedi File

@@ -808,6 +808,27 @@ void
ucfg_pmo_set_wow_enable(struct wlan_objmgr_psoc *psoc,
enum pmo_wow_enable_type val);
/**
* ucfg_pmo_set_ps_params() - Set vdev OPM params
* @vdev: pointer to vdev object
* @ps_params: pointer to OPM params
*
* Return: None
*/
void
ucfg_pmo_set_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params);
/**
* ucfg_pmo_get_ps_params() - Get vdev OPM params
* @vdev: pointer to vdev object
* @ps_params: Pointer to get OPM params
*
* Return: QDF Status
*/
QDF_STATUS ucfg_pmo_get_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params);
/**
* ucfg_pmo_get_gtk_rsp(): API to send gtk response request to fwr
* @vdev: objmgr vdev handle

Vedi File

@@ -285,6 +285,15 @@ QDF_STATUS pmo_vdev_object_created_notification(
vdev_ctx->pmo_psoc_ctx = psoc_ctx;
qdf_atomic_init(&vdev_ctx->gtk_err_enable);
pmo_vdev_dynamic_arp_ns_offload_init(vdev_ctx);
/*
* Update Powersave mode
* 0 - PMO_PS_ADVANCED_POWER_SAVE_DISABLE
* 1 - PMO_PS_ADVANCED_POWER_SAVE_ENABLE
* 2 - PMO_PS_ADVANCED_POWER_SAVE_USER_DEFINED
*/
vdev_ctx->ps_params.opm_mode = psoc_ctx->psoc_cfg.power_save_mode;
vdev_ctx->ps_params.ps_ito = PMO_PS_DATA_INACTIVITY_TIMEOUT;
vdev_ctx->ps_params.spec_wake = PMO_PS_DATA_SPEC_WAKE;
out:
pmo_exit();
@@ -906,3 +915,15 @@ QDF_STATUS wlan_pmo_get_listen_interval(struct wlan_objmgr_vdev *vdev,
{
return pmo_core_get_listen_interval(vdev, listen_interval);
}
void wlan_pmo_set_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params)
{
pmo_core_vdev_set_ps_params(vdev, ps_params);
}
QDF_STATUS wlan_pmo_get_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params)
{
return pmo_core_vdev_get_ps_params(vdev, ps_params);
}

Vedi File

@@ -594,6 +594,19 @@ ucfg_pmo_set_wow_enable(struct wlan_objmgr_psoc *psoc,
pmo_psoc_ctx->psoc_cfg.wow_enable = val;
}
void
ucfg_pmo_set_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params)
{
pmo_core_vdev_set_ps_params(vdev, ps_params);
}
QDF_STATUS ucfg_pmo_get_ps_params(struct wlan_objmgr_vdev *vdev,
struct pmo_ps_params *ps_params)
{
return pmo_core_vdev_get_ps_params(vdev, ps_params);
}
bool
ucfg_pmo_is_arp_offload_enabled(struct wlan_objmgr_psoc *psoc)
{