Loading drivers/platform/msm/ipa/ipa_v3/ipa.c +3 −0 Original line number Diff line number Diff line Loading @@ -3659,6 +3659,9 @@ void ipa3_disable_clks(void) ipa3_ctx->ctrl->ipa3_disable_clks(); if (ipa3_ctx->use_ipa_pm) ipa_pm_set_clock_index(0); if (msm_bus_scale_client_update_request(ipa3_ctx->ipa_bus_hdl, 0)) WARN(1, "bus scaling failed"); atomic_set(&ipa3_ctx->ipa_clk_vote, 0); Loading drivers/platform/msm/ipa/ipa_v3/ipa_pm.c +14 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include <linux/debugfs.h> Loading Loading @@ -345,6 +345,11 @@ static int do_clk_scaling(void) int new_th_idx = 1; struct clk_scaling_db *clk_scaling; if (atomic_read(&ipa3_ctx->ipa_clk_vote) == 0) { IPA_PM_DBG("IPA clock is gated\n"); return 0; } clk_scaling = &ipa_pm_ctx->clk_scaling; mutex_lock(&ipa_pm_ctx->client_mutex); Loading Loading @@ -1271,6 +1276,14 @@ int ipa_pm_set_throughput(u32 hdl, int throughput) return 0; } void ipa_pm_set_clock_index(int index) { if (ipa_pm_ctx && index >= 0) ipa_pm_ctx->clk_scaling.cur_vote = index; IPA_PM_DBG("Setting pm clock vote to %d\n", index); } /** * ipa_pm_stat() - print PM stat * @buf: [in] The user buff used to print Loading drivers/platform/msm/ipa/ipa_v3/ipa_pm.h +2 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _IPA_PM_H_ Loading Loading @@ -100,6 +100,7 @@ int ipa_pm_handle_suspend(u32 pipe_bitmask); int ipa_pm_deactivate_all_deferred(void); int ipa_pm_stat(char *buf, int size); int ipa_pm_exceptions_stat(char *buf, int size); void ipa_pm_set_clock_index(int index); #else Loading Loading
drivers/platform/msm/ipa/ipa_v3/ipa.c +3 −0 Original line number Diff line number Diff line Loading @@ -3659,6 +3659,9 @@ void ipa3_disable_clks(void) ipa3_ctx->ctrl->ipa3_disable_clks(); if (ipa3_ctx->use_ipa_pm) ipa_pm_set_clock_index(0); if (msm_bus_scale_client_update_request(ipa3_ctx->ipa_bus_hdl, 0)) WARN(1, "bus scaling failed"); atomic_set(&ipa3_ctx->ipa_clk_vote, 0); Loading
drivers/platform/msm/ipa/ipa_v3/ipa_pm.c +14 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include <linux/debugfs.h> Loading Loading @@ -345,6 +345,11 @@ static int do_clk_scaling(void) int new_th_idx = 1; struct clk_scaling_db *clk_scaling; if (atomic_read(&ipa3_ctx->ipa_clk_vote) == 0) { IPA_PM_DBG("IPA clock is gated\n"); return 0; } clk_scaling = &ipa_pm_ctx->clk_scaling; mutex_lock(&ipa_pm_ctx->client_mutex); Loading Loading @@ -1271,6 +1276,14 @@ int ipa_pm_set_throughput(u32 hdl, int throughput) return 0; } void ipa_pm_set_clock_index(int index) { if (ipa_pm_ctx && index >= 0) ipa_pm_ctx->clk_scaling.cur_vote = index; IPA_PM_DBG("Setting pm clock vote to %d\n", index); } /** * ipa_pm_stat() - print PM stat * @buf: [in] The user buff used to print Loading
drivers/platform/msm/ipa/ipa_v3/ipa_pm.h +2 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _IPA_PM_H_ Loading Loading @@ -100,6 +100,7 @@ int ipa_pm_handle_suspend(u32 pipe_bitmask); int ipa_pm_deactivate_all_deferred(void); int ipa_pm_stat(char *buf, int size); int ipa_pm_exceptions_stat(char *buf, int size); void ipa_pm_set_clock_index(int index); #else Loading