qcacmn: refer system time for pld_is_pci_ep_awake timeout

Currently timeout for checking pld_is_pci_ep_awake in
hif_prevent_link_low_power_states might be higher than
the defined timeout depends on how long qdf_sleep takes
to get scheduled again, so avoid this uncertain timeout
adding reference to the system time.

Change-Id: I67a28d46c996ccc56680cf8e20c09a70729a33c5
CRs-Fixed: 2994746
Tento commit je obsažen v:
Vevek Venkatesan
2021-07-19 18:29:13 +05:30
odevzdal Madan Koyyalamudi
rodič 3c98d7456d
revize 9f5cc5aae8
2 změnil soubory, kde provedl 11 přidání a 10 odebrání

Zobrazit soubor

@@ -897,15 +897,16 @@ int hif_prevent_link_low_power_states(struct hif_opaque_softc *hif)
{
struct hif_softc *scn = HIF_GET_SOFTC(hif);
struct hif_ipci_softc *ipci_scn = HIF_GET_IPCI_SOFTC(scn);
uint32_t timeout = 0;
uint32_t start_time = 0, curr_time = 0;
if (pld_is_pci_ep_awake(scn->qdf_dev->dev) == -ENOTSUPP)
return 0;
start_time = curr_time = qdf_system_ticks_to_msecs(qdf_system_ticks());
while (pld_is_pci_ep_awake(scn->qdf_dev->dev) &&
timeout <= EP_WAKE_RESET_DELAY_TIMEOUT_US) {
curr_time <= start_time + EP_WAKE_RESET_DELAY_TIMEOUT_MS) {
qdf_sleep_us(EP_WAKE_RESET_DELAY_US);
timeout += EP_WAKE_RESET_DELAY_US;
curr_time = qdf_system_ticks_to_msecs(qdf_system_ticks());
}
if (pld_is_pci_ep_awake(scn->qdf_dev->dev)) {
@@ -921,11 +922,11 @@ int hif_prevent_link_low_power_states(struct hif_opaque_softc *hif)
}
ipci_scn->prevent_l1 = true;
timeout = 0;
start_time = curr_time = qdf_system_ticks_to_msecs(qdf_system_ticks());
while (!pld_is_pci_ep_awake(scn->qdf_dev->dev) &&
timeout <= EP_WAKE_DELAY_TIMEOUT_US) {
curr_time <= start_time + EP_WAKE_DELAY_TIMEOUT_MS) {
qdf_sleep_us(EP_WAKE_DELAY_US);
timeout += EP_WAKE_DELAY_US;
curr_time = qdf_system_ticks_to_msecs(qdf_system_ticks());
}
if (pld_is_pci_ep_awake(scn->qdf_dev->dev) <= 0) {

Zobrazit soubor

@@ -66,11 +66,11 @@ struct hif_ipci_stats {
#ifdef FEATURE_HAL_DELAYED_REG_WRITE
#ifdef HAL_CONFIG_SLUB_DEBUG_ON
#define EP_WAKE_RESET_DELAY_TIMEOUT_US 3000
#define EP_WAKE_DELAY_TIMEOUT_US 7000
#define EP_WAKE_RESET_DELAY_TIMEOUT_MS 3
#define EP_WAKE_DELAY_TIMEOUT_MS 7
#else
#define EP_WAKE_RESET_DELAY_TIMEOUT_US 10000
#define EP_WAKE_DELAY_TIMEOUT_US 10000
#define EP_WAKE_RESET_DELAY_TIMEOUT_MS 10
#define EP_WAKE_DELAY_TIMEOUT_MS 10
#endif
#define EP_WAKE_RESET_DELAY_US 50
#define EP_WAKE_DELAY_US 200