* [PATCH RESEND v2 0/4] Venus - change clk enable, disable order and change bw values
@ 2020-09-16 17:25 Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 1/4] venus: core: change clk enable and disable order in resume and suspend Mansur Alisha Shaik
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Mansur Alisha Shaik @ 2020-09-16 17:25 UTC (permalink / raw)
To: linux-media, stanimir.varbanov
Cc: linux-kernel, linux-arm-msm, vgarodia, Mansur Alisha Shaik
The intention of this patchset is to correct clock enable and disable
order and vote for venus-ebi and cpucfg paths with average bandwidth
instad of peak bandwidth since with current implementation we are seeing
clock related warning during XO-SD and suspend device while video playback
---
Resending as all patches not updated properly because
of some mailing issues.
Mansur Alisha Shaik (4):
venus: core: change clk enable and disable order in resume and suspend
venus: core: vote for video-mem path
venus: core: vote with average bandwidth and peak bandwidth as zero
venus: put dummy vote on video-mem path after last session release
drivers/media/platform/qcom/venus/core.c | 29 +++++++++++++++++++-------
drivers/media/platform/qcom/venus/pm_helpers.c | 3 +++
2 files changed, 25 insertions(+), 7 deletions(-)
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/4] venus: core: change clk enable and disable order in resume and suspend
2020-09-16 17:25 [PATCH RESEND v2 0/4] Venus - change clk enable, disable order and change bw values Mansur Alisha Shaik
@ 2020-09-16 17:25 ` Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 2/4] venus: core: vote for video-mem path Mansur Alisha Shaik
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Mansur Alisha Shaik @ 2020-09-16 17:25 UTC (permalink / raw)
To: linux-media, stanimir.varbanov
Cc: linux-kernel, linux-arm-msm, vgarodia, Mansur Alisha Shaik
Currently video driver is voting after clk enable and un voting
before clk disable. Basically we should vote before clk enable
and un vote after clk disable.
Corrected this by changing the order of clk enable and clk disable.
Fixes: 7482a983d ("media: venus: redesign clocks and pm domains control")
Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org>
---
Changes in V2:
- Added fixes tag
drivers/media/platform/qcom/venus/core.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 6103aaf..52a3886 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -355,13 +355,16 @@ static __maybe_unused int venus_runtime_suspend(struct device *dev)
if (ret)
return ret;
+ if (pm_ops->core_power) {
+ ret = pm_ops->core_power(dev, POWER_OFF);
+ if (ret)
+ return ret;
+ }
+
ret = icc_set_bw(core->cpucfg_path, 0, 0);
if (ret)
return ret;
- if (pm_ops->core_power)
- ret = pm_ops->core_power(dev, POWER_OFF);
-
return ret;
}
@@ -371,16 +374,16 @@ static __maybe_unused int venus_runtime_resume(struct device *dev)
const struct venus_pm_ops *pm_ops = core->pm_ops;
int ret;
+ ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
+ if (ret)
+ return ret;
+
if (pm_ops->core_power) {
ret = pm_ops->core_power(dev, POWER_ON);
if (ret)
return ret;
}
- ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
- if (ret)
- return ret;
-
return hfi_core_resume(core, false);
}
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/4] venus: core: vote for video-mem path
2020-09-16 17:25 [PATCH RESEND v2 0/4] Venus - change clk enable, disable order and change bw values Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 1/4] venus: core: change clk enable and disable order in resume and suspend Mansur Alisha Shaik
@ 2020-09-16 17:25 ` Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 3/4] venus: core: vote with average bandwidth and peak bandwidth as zero Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 4/4] venus: put dummy vote on video-mem path after last session release Mansur Alisha Shaik
3 siblings, 0 replies; 6+ messages in thread
From: Mansur Alisha Shaik @ 2020-09-16 17:25 UTC (permalink / raw)
To: linux-media, stanimir.varbanov
Cc: linux-kernel, linux-arm-msm, vgarodia, Mansur Alisha Shaik
Currently we are voting for venus0-ebi path during buffer processing
with an average bandwidth of all the instances and unvoting during
session release.
While video streaming when we try to do XO-SD using the command
"echo mem > /sys/power/state command" , device is not entering
to suspend state and from interconnect summary seeing votes for venus0-ebi
Corrected this by voting for venus0-ebi path in venus_runtime_resume
and unvote during venus_runtime_suspend.
Fixes: 7482a983d ("media: venus: redesign clocks and pm domains control")
Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org>
---
Changes in V2:
- Added fixes tag
- Addressed review comments by Stephen Boyd
drivers/media/platform/qcom/venus/core.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 52a3886..064b6c8 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -363,8 +363,16 @@ static __maybe_unused int venus_runtime_suspend(struct device *dev)
ret = icc_set_bw(core->cpucfg_path, 0, 0);
if (ret)
- return ret;
+ goto err_poweron_core;
+
+ ret = icc_set_bw(core->video_path, 0, 0);
+ if (ret)
+ goto err_poweron_core;
+
+ return ret;
+err_poweron_core:
+ pm_ops->core_power(dev, POWER_ON);
return ret;
}
@@ -374,6 +382,10 @@ static __maybe_unused int venus_runtime_resume(struct device *dev)
const struct venus_pm_ops *pm_ops = core->pm_ops;
int ret;
+ ret = icc_set_bw(core->video_path, 0, kbps_to_icc(1000));
+ if (ret)
+ return ret;
+
ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
if (ret)
return ret;
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 3/4] venus: core: vote with average bandwidth and peak bandwidth as zero
2020-09-16 17:25 [PATCH RESEND v2 0/4] Venus - change clk enable, disable order and change bw values Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 1/4] venus: core: change clk enable and disable order in resume and suspend Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 2/4] venus: core: vote for video-mem path Mansur Alisha Shaik
@ 2020-09-16 17:25 ` Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 4/4] venus: put dummy vote on video-mem path after last session release Mansur Alisha Shaik
3 siblings, 0 replies; 6+ messages in thread
From: Mansur Alisha Shaik @ 2020-09-16 17:25 UTC (permalink / raw)
To: linux-media, stanimir.varbanov
Cc: linux-kernel, linux-arm-msm, vgarodia, Mansur Alisha Shaik
As per bandwidth table we are voting with average bandwidth
for "video-mem" and "cpu-cfg" paths as peak bandwidth is zero
in bandwidth table.
Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org>
---
drivers/media/platform/qcom/venus/core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 064b6c8..c9669ad 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -382,11 +382,11 @@ static __maybe_unused int venus_runtime_resume(struct device *dev)
const struct venus_pm_ops *pm_ops = core->pm_ops;
int ret;
- ret = icc_set_bw(core->video_path, 0, kbps_to_icc(1000));
+ ret = icc_set_bw(core->video_path, kbps_to_icc(20000), 0);
if (ret)
return ret;
- ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
+ ret = icc_set_bw(core->cpucfg_path, kbps_to_icc(1000), 0);
if (ret)
return ret;
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 4/4] venus: put dummy vote on video-mem path after last session release
2020-09-16 17:25 [PATCH RESEND v2 0/4] Venus - change clk enable, disable order and change bw values Mansur Alisha Shaik
` (2 preceding siblings ...)
2020-09-16 17:25 ` [PATCH v2 3/4] venus: core: vote with average bandwidth and peak bandwidth as zero Mansur Alisha Shaik
@ 2020-09-16 17:25 ` Mansur Alisha Shaik
3 siblings, 0 replies; 6+ messages in thread
From: Mansur Alisha Shaik @ 2020-09-16 17:25 UTC (permalink / raw)
To: linux-media, stanimir.varbanov
Cc: linux-kernel, linux-arm-msm, vgarodia, Mansur Alisha Shaik
As per current implementation, we are unvoting "videom-mem" path
for last video session during vdec_session_release().
While video playback when we try to suspend device, we see video clock
warnings since votes are already removed during vdec_session_release().
corrected this by putting dummy vote on "video-mem" after last video
session release and unvoting it during suspend.
Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org>
---
drivers/media/platform/qcom/venus/pm_helpers.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
index 57877ea..c0a3524 100644
--- a/drivers/media/platform/qcom/venus/pm_helpers.c
+++ b/drivers/media/platform/qcom/venus/pm_helpers.c
@@ -212,6 +212,9 @@ static int load_scale_bw(struct venus_core *core)
}
mutex_unlock(&core->lock);
+ if (!total_avg && !total_peak)
+ total_avg = kbps_to_icc(1000);
+
dev_dbg(core->dev, VDBGL "total: avg_bw: %u, peak_bw: %u\n",
total_avg, total_peak);
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 1/4] venus: core: change clk enable and disable order in resume and suspend
2020-09-16 10:28 [PATCH v2 0/4] Venus - change clk enable, disable order and change bw values Mansur Alisha Shaik
@ 2020-09-16 10:28 ` Mansur Alisha Shaik
0 siblings, 0 replies; 6+ messages in thread
From: Mansur Alisha Shaik @ 2020-09-16 10:28 UTC (permalink / raw)
To: linux-media, stanimir.varbanov
Cc: linux-kernel, linux-arm-msm, vgarodia, Mansur Alisha Shaik
Currently video driver is voting after clk enable and un voting
before clk disable. Basically we should vote before clk enable
and un vote after clk disable.
Corrected this by changing the order of clk enable and clk disable.
Fixes: 7482a983d ("media: venus: redesign clocks and pm domains control")
Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org>
---
Changes in V2:
- Added fixes tag
drivers/media/platform/qcom/venus/core.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 6103aaf..52a3886 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -355,13 +355,16 @@ static __maybe_unused int venus_runtime_suspend(struct device *dev)
if (ret)
return ret;
+ if (pm_ops->core_power) {
+ ret = pm_ops->core_power(dev, POWER_OFF);
+ if (ret)
+ return ret;
+ }
+
ret = icc_set_bw(core->cpucfg_path, 0, 0);
if (ret)
return ret;
- if (pm_ops->core_power)
- ret = pm_ops->core_power(dev, POWER_OFF);
-
return ret;
}
@@ -371,16 +374,16 @@ static __maybe_unused int venus_runtime_resume(struct device *dev)
const struct venus_pm_ops *pm_ops = core->pm_ops;
int ret;
+ ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
+ if (ret)
+ return ret;
+
if (pm_ops->core_power) {
ret = pm_ops->core_power(dev, POWER_ON);
if (ret)
return ret;
}
- ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
- if (ret)
- return ret;
-
return hfi_core_resume(core, false);
}
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-09-16 20:26 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-16 17:25 [PATCH RESEND v2 0/4] Venus - change clk enable, disable order and change bw values Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 1/4] venus: core: change clk enable and disable order in resume and suspend Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 2/4] venus: core: vote for video-mem path Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 3/4] venus: core: vote with average bandwidth and peak bandwidth as zero Mansur Alisha Shaik
2020-09-16 17:25 ` [PATCH v2 4/4] venus: put dummy vote on video-mem path after last session release Mansur Alisha Shaik
-- strict thread matches above, loose matches on Subject: below --
2020-09-16 10:28 [PATCH v2 0/4] Venus - change clk enable, disable order and change bw values Mansur Alisha Shaik
2020-09-16 10:28 ` [PATCH v2 1/4] venus: core: change clk enable and disable order in resume and suspend Mansur Alisha Shaik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).