mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 16:16:15 -04:00
qcacld-3.0: Move RTPM QoS notification inside HDD enable/disable
Runtime PM is enabled in hdd_enable_power_management(). Hence, move PM QoS notification registration to HDD enable power management. Similarly, move PM QoS unregistration to HDD disable power management. Change-Id: Ifc7f280ab838dd9347095726961b6a0296626f6a CRs-Fixed: 2665176
This commit is contained in:
parent
ea9dddbe54
commit
ff95ece535
1 changed files with 49 additions and 50 deletions
|
|
@ -2856,44 +2856,6 @@ err_start_adapter:
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* hdd_enable_power_management() - API to Enable Power Management
|
||||
*
|
||||
* API invokes Bus Interface Layer power management functionality
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void hdd_enable_power_management(void)
|
||||
{
|
||||
void *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF);
|
||||
|
||||
if (!hif_ctx) {
|
||||
hdd_err("Bus Interface Context is Invalid");
|
||||
return;
|
||||
}
|
||||
|
||||
hif_enable_power_management(hif_ctx, cds_is_packet_log_enabled());
|
||||
}
|
||||
|
||||
/**
|
||||
* hdd_disable_power_management() - API to disable Power Management
|
||||
*
|
||||
* API disable Bus Interface Layer Power management functionality
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void hdd_disable_power_management(void)
|
||||
{
|
||||
void *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF);
|
||||
|
||||
if (!hif_ctx) {
|
||||
hdd_err("Bus Interface Context is Invalid");
|
||||
return;
|
||||
}
|
||||
|
||||
hif_disable_power_management(hif_ctx);
|
||||
}
|
||||
|
||||
void hdd_update_hw_sw_info(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
void *hif_sc;
|
||||
|
|
@ -3543,6 +3505,46 @@ static void hdd_wlan_unregister_pm_qos_notifier(struct hdd_context *hdd_ctx)
|
|||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* hdd_enable_power_management() - API to Enable Power Management
|
||||
*
|
||||
* API invokes Bus Interface Layer power management functionality
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void hdd_enable_power_management(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
void *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF);
|
||||
|
||||
if (!hif_ctx) {
|
||||
hdd_err("Bus Interface Context is Invalid");
|
||||
return;
|
||||
}
|
||||
|
||||
hif_enable_power_management(hif_ctx, cds_is_packet_log_enabled());
|
||||
hdd_wlan_register_pm_qos_notifier(hdd_ctx);
|
||||
}
|
||||
|
||||
/**
|
||||
* hdd_disable_power_management() - API to disable Power Management
|
||||
*
|
||||
* API disable Bus Interface Layer Power management functionality
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void hdd_disable_power_management(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
void *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF);
|
||||
|
||||
if (!hif_ctx) {
|
||||
hdd_err("Bus Interface Context is Invalid");
|
||||
return;
|
||||
}
|
||||
|
||||
hdd_wlan_unregister_pm_qos_notifier(hdd_ctx);
|
||||
hif_disable_power_management(hif_ctx);
|
||||
}
|
||||
|
||||
/**
|
||||
* hdd_register_notifiers - Register netdev notifiers.
|
||||
* @hdd_ctx: HDD context
|
||||
|
|
@ -3573,14 +3575,8 @@ static int hdd_register_notifiers(struct hdd_context *hdd_ctx)
|
|||
goto unregister_inetaddr_notifier;
|
||||
}
|
||||
|
||||
ret = hdd_wlan_register_pm_qos_notifier(hdd_ctx);
|
||||
if (ret)
|
||||
goto unregister_nud_notifier;
|
||||
|
||||
return 0;
|
||||
|
||||
unregister_nud_notifier:
|
||||
hdd_nud_unregister_netevent_notifier(hdd_ctx);
|
||||
unregister_inetaddr_notifier:
|
||||
unregister_inetaddr_notifier(&hdd_ctx->ipv4_notifier);
|
||||
unregister_ip6_notifier:
|
||||
|
|
@ -3777,7 +3773,7 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx, bool reinit)
|
|||
hdd_update_hw_sw_info(hdd_ctx);
|
||||
|
||||
if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
|
||||
hdd_enable_power_management();
|
||||
hdd_enable_power_management(hdd_ctx);
|
||||
hdd_err("in ftm mode, no need to configure cds modules");
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
|
|
@ -3789,7 +3785,7 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx, bool reinit)
|
|||
goto destroy_driver_sysfs;
|
||||
}
|
||||
|
||||
hdd_enable_power_management();
|
||||
hdd_enable_power_management(hdd_ctx);
|
||||
|
||||
hdd_skip_acs_scan_timer_init(hdd_ctx);
|
||||
|
||||
|
|
@ -8043,7 +8039,6 @@ void hdd_set_disconnect_status(struct hdd_adapter *adapter, bool status)
|
|||
*/
|
||||
void hdd_unregister_notifiers(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
hdd_wlan_unregister_pm_qos_notifier(hdd_ctx);
|
||||
hdd_nud_unregister_netevent_notifier(hdd_ctx);
|
||||
hdd_wlan_unregister_ip6_notifier(hdd_ctx);
|
||||
|
||||
|
|
@ -12760,15 +12755,19 @@ int hdd_wlan_stop_modules(struct hdd_context *hdd_ctx, bool ftm_mode)
|
|||
case DRIVER_MODULES_ENABLED:
|
||||
hdd_debug("Wlan transitioning (CLOSED <- ENABLED)");
|
||||
|
||||
if (hdd_get_conparam() == QDF_GLOBAL_FTM_MODE ||
|
||||
hdd_get_conparam() == QDF_GLOBAL_EPPING_MODE)
|
||||
if (hdd_get_conparam() == QDF_GLOBAL_FTM_MODE) {
|
||||
hdd_disable_power_management(hdd_ctx);
|
||||
break;
|
||||
}
|
||||
|
||||
if (hdd_get_conparam() == QDF_GLOBAL_EPPING_MODE)
|
||||
break;
|
||||
|
||||
wlan_hdd_deinit_tx_rx_histogram(hdd_ctx);
|
||||
|
||||
hdd_skip_acs_scan_timer_deinit(hdd_ctx);
|
||||
|
||||
hdd_disable_power_management();
|
||||
hdd_disable_power_management(hdd_ctx);
|
||||
if (hdd_deconfigure_cds(hdd_ctx)) {
|
||||
hdd_err("Failed to de-configure CDS");
|
||||
QDF_ASSERT(0);
|
||||
|
|
|
|||
Loading…
Reference in a new issue