qcacld-3.0: Set PM_QOS for non-offloaded TX at V_HIGH

Set system PM_QOS with low latency only for "very-high" throughput levels
in TX case. Currently, its being done for "high" throughput levels.
In less than "very-high" throughput cases, this allows CPU cores to
enter low power modes. This is done only for non-offloaded packets e.g.
UDP.

Change-Id: Idf1dd2968b7dd8b4ef9f4061ee862de03d962c6e
CRs-Fixed: 3045963
Esse commit está contido em:
Mohit Khanna
2021-11-09 07:47:05 -08:00
commit de Madan Koyyalamudi
commit 49760b669f
4 arquivos alterados com 139 adições e 67 exclusões

Ver arquivo

@@ -1079,6 +1079,14 @@ int pld_thermal_register(struct device *dev, unsigned long state, int mon_id);
*/
void pld_thermal_unregister(struct device *dev, int mon_id);
/**
* pld_level_to_str() - Helper function to convert PLD bandwidth level to str
* @level: PLD bus width level
*
* Return: String corresponding to input "level"
*/
uint8_t *pld_level_to_str(uint32_t level);
/**
* pld_get_thermal_state() - Get the current thermal state from the PLD
* @dev: The device structure

Ver arquivo

@@ -3210,6 +3210,32 @@ void pld_thermal_unregister(struct device *dev, int mon_id)
}
}
uint8_t *pld_level_to_str(uint32_t level)
{
switch (level) {
/* initialize the wlan sub system */
case PLD_BUS_WIDTH_NONE:
return "NONE";
case PLD_BUS_WIDTH_IDLE:
return "IDLE";
case PLD_BUS_WIDTH_LOW:
return "LOW";
case PLD_BUS_WIDTH_MEDIUM:
return "MEDIUM";
case PLD_BUS_WIDTH_HIGH:
return "HIGH";
case PLD_BUS_WIDTH_VERY_HIGH:
return "VERY_HIGH";
case PLD_BUS_WIDTH_LOW_LATENCY:
return "LOW_LAT";
default:
if (level > PLD_BUS_WIDTH_VERY_HIGH)
return "VERY_HIGH+";
else
return "INVAL";
}
}
int pld_get_thermal_state(struct device *dev, unsigned long *thermal_state,
int mon_id)
{