qcacmn: Add support configure EP vote feature based on pm states

Add support to configure EP vote feature based on pm states

Change-Id: Ia424d364248283da8e978f924fd421c1b5f4b888
CRs-Fixed: 2939884
This commit is contained in:
Karthik Kantamneni
2021-04-30 15:03:45 +05:30
committed by Madan Koyyalamudi
parent c7c724572a
commit 841fa1bd6a
3 changed files with 122 additions and 0 deletions

View File

@@ -45,6 +45,10 @@ extern "C" {
typedef void __iomem *A_target_id_t;
typedef void *hif_handle_t;
#if defined(HIF_IPCI) && defined(FEATURE_HAL_DELAYED_REG_WRITE)
#define HIF_WORK_DRAIN_WAIT_CNT 10
#endif
#define HIF_TYPE_AR6002 2
#define HIF_TYPE_AR6003 3
#define HIF_TYPE_AR6004 5
@@ -1064,6 +1068,26 @@ static inline char *rtpm_string_from_dbgid(wlan_rtpm_dbgid id)
return (char *)strings[id];
}
/**
* enum hif_ep_vote_type - hif ep vote type
* HIF_EP_VOTE_DP_ACCESS: vote type is specific DP
* HIF_EP_VOTE_NONDP_ACCESS: ep vote for over all access
*/
enum hif_ep_vote_type {
HIF_EP_VOTE_DP_ACCESS,
HIF_EP_VOTE_NONDP_ACCESS
};
/**
* enum hif_ep_vote_access - hif ep vote access
* HIF_EP_VOTE_ACCESS_ENABLE: Enable ep voting
* HIF_EP_VOTE_ACCESS_DISABLE: disable ep voting
*/
enum hif_ep_vote_access {
HIF_EP_VOTE_ACCESS_ENABLE,
HIF_EP_VOTE_ACCESS_DISABLE
};
/**
* enum hif_pm_link_state - hif link state
* HIF_PM_LINK_STATE_DOWN: hif link state is down
@@ -1677,6 +1701,39 @@ hif_softc_to_hif_opaque_softc(struct hif_softc *hif_handle)
return (struct hif_opaque_softc *)hif_handle;
}
#if defined(HIF_IPCI) && defined(FEATURE_HAL_DELAYED_REG_WRITE)
QDF_STATUS hif_try_prevent_ep_vote_access(struct hif_opaque_softc *hif_ctx);
void hif_allow_ep_vote_access(struct hif_opaque_softc *hif_ctx);
void hif_set_ep_vote_access(struct hif_opaque_softc *hif_ctx,
uint8_t type, uint8_t access);
uint8_t hif_get_ep_vote_access(struct hif_opaque_softc *hif_ctx,
uint8_t type);
#else
static inline QDF_STATUS
hif_try_prevent_ep_vote_access(struct hif_opaque_softc *hif_ctx)
{
return QDF_STATUS_SUCCESS;
}
static inline void
hif_allow_ep_vote_access(struct hif_opaque_softc *hif_ctx)
{
}
static inline void
hif_set_ep_vote_access(struct hif_opaque_softc *hif_ctx,
uint8_t type, uint8_t access)
{
}
static inline uint8_t
hif_get_ep_vote_access(struct hif_opaque_softc *hif_ctx,
uint8_t type)
{
return HIF_EP_VOTE_ACCESS_ENABLE;
}
#endif
#ifdef FORCE_WAKE
/**
* hif_srng_init_phase(): Indicate srng initialization phase