mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 08:36:12 -04:00
qcacmn: Fix AHB & disable soc-sleep durring driver load
Instead of checking target type, check bus type for skipping soc-sleep durring driver load code. Also enhance comments to explain why hif_pci_target_sleep_state_adjust is called instead of hif_target_sleep_state_adjust for the disable soc-sleep durring driver load feature Change-Id: I891e1b1782b46b32c1718e2c539215282e090bad
This commit is contained in:
parent
13164aac76
commit
e20c6dceda
1 changed files with 17 additions and 8 deletions
|
|
@ -1259,10 +1259,11 @@ static void hif_enable_power_gating(struct hif_pci_softc *sc)
|
|||
* hif_enable_power_management() - enable power management
|
||||
* @hif_ctx: hif context
|
||||
*
|
||||
* Currently only does runtime pm. Eventually this function could
|
||||
* consolidate other power state features such as only letting
|
||||
* the soc sleep after the driver finishes loading and re-enabling
|
||||
* aspm (hif_enable_power_gating).
|
||||
* Enables runtime pm, aspm(PCI.. hif_enable_power_gating) and re-enabling
|
||||
* soc-sleep after driver load (hif_pci_target_sleep_state_adjust).
|
||||
*
|
||||
* note: epping mode does not call this function as it does not
|
||||
* care about saving power.
|
||||
*/
|
||||
void hif_pci_enable_power_management(struct hif_softc *hif_sc,
|
||||
bool is_packet_log_enabled)
|
||||
|
|
@ -1281,6 +1282,7 @@ void hif_pci_enable_power_management(struct hif_softc *hif_sc,
|
|||
|
||||
if (!CONFIG_ATH_PCIE_MAX_PERF &&
|
||||
CONFIG_ATH_PCIE_AWAKE_WHILE_DRIVER_LOAD) {
|
||||
/* allow sleep for PCIE_AWAKE_WHILE_DRIVER_LOAD feature */
|
||||
if (hif_pci_target_sleep_state_adjust(hif_sc, true, false) < 0)
|
||||
HIF_ERROR("%s, failed to set target to sleep",
|
||||
__func__);
|
||||
|
|
@ -1903,8 +1905,6 @@ int hif_pci_bus_configure(struct hif_softc *hif_sc)
|
|||
{
|
||||
int status = 0;
|
||||
struct HIF_CE_state *hif_state = HIF_GET_CE_STATE(hif_sc);
|
||||
struct hif_opaque_softc *hif_hdl = GET_HIF_OPAQUE_HDL(hif_sc);
|
||||
struct hif_target_info *tgt_info = hif_get_target_info_handle(hif_hdl);
|
||||
|
||||
hif_ce_prepare_config(hif_sc);
|
||||
|
||||
|
|
@ -1933,8 +1933,17 @@ int hif_pci_bus_configure(struct hif_softc *hif_sc)
|
|||
|
||||
if (CONFIG_ATH_PCIE_MAX_PERF ||
|
||||
CONFIG_ATH_PCIE_AWAKE_WHILE_DRIVER_LOAD) {
|
||||
/* Force AWAKE forever/till the driver is loaded */
|
||||
if (tgt_info->target_type != TARGET_TYPE_IPQ4019) {
|
||||
/*
|
||||
* prevent sleep for PCIE_AWAKE_WHILE_DRIVER_LOAD feature
|
||||
* prevent sleep when we want to keep firmware always awake
|
||||
* note: when we want to keep firmware always awake,
|
||||
* hif_target_sleep_state_adjust will point to a dummy
|
||||
* function, and hif_pci_target_sleep_state_adjust must
|
||||
* be called instead.
|
||||
* note: bus type check is here because AHB bus is reusing
|
||||
* hif_pci_bus_configure code.
|
||||
*/
|
||||
if (hif_sc->bus_type == QDF_BUS_TYPE_PCI) {
|
||||
if (hif_pci_target_sleep_state_adjust(hif_sc,
|
||||
false, true) < 0) {
|
||||
status = -EACCES;
|
||||
|
|
|
|||
Loading…
Reference in a new issue