2020-11-09 12:46:58

by Georgi Djakov

[permalink] [raw]
Subject: [PATCH] interconnect: qcom: msm8974: Don't boost the NoC rate during boot

It has been reported that on Fairphone 2 (msm8974-based), increasing
the clock rate for some of the NoCs during boot may lead to hangs.
Let's restore the original behavior and not touch the clock rate of
any of the NoCs to fix the regression.

Reported-by: Luca Weiss <[email protected]>
Fixes: b1d681d8d324 ("interconnect: Add sync state support")
Signed-off-by: Georgi Djakov <[email protected]>
---
drivers/interconnect/qcom/msm8974.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/interconnect/qcom/msm8974.c b/drivers/interconnect/qcom/msm8974.c
index b6b639dad691..da68ce375a89 100644
--- a/drivers/interconnect/qcom/msm8974.c
+++ b/drivers/interconnect/qcom/msm8974.c
@@ -637,6 +637,14 @@ static int msm8974_icc_set(struct icc_node *src, struct icc_node *dst)
return 0;
}

+static int msm8974_get_bw(struct icc_node *node, u32 *avg, u32 *peak)
+{
+ *avg = 0;
+ *peak = 0;
+
+ return 0;
+}
+
static int msm8974_icc_probe(struct platform_device *pdev)
{
const struct msm8974_icc_desc *desc;
@@ -690,6 +698,7 @@ static int msm8974_icc_probe(struct platform_device *pdev)
provider->aggregate = icc_std_aggregate;
provider->xlate = of_icc_xlate_onecell;
provider->data = data;
+ provider->get_bw = msm8974_get_bw;

ret = icc_provider_add(provider);
if (ret) {


2020-11-17 19:25:15

by Luca Weiss

[permalink] [raw]
Subject: Re: [PATCH] interconnect: qcom: msm8974: Don't boost the NoC rate during boot

Hi Georgi

On Montag, 9. November 2020 13:45:12 CET Georgi Djakov wrote:
> It has been reported that on Fairphone 2 (msm8974-based), increasing
> the clock rate for some of the NoCs during boot may lead to hangs.
> Let's restore the original behavior and not touch the clock rate of
> any of the NoCs to fix the regression.
>
> Reported-by: Luca Weiss <[email protected]>
> Fixes: b1d681d8d324 ("interconnect: Add sync state support")
> Signed-off-by: Georgi Djakov <[email protected]>

Tested-by: Luca Weiss <[email protected]>

> ---
> drivers/interconnect/qcom/msm8974.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/interconnect/qcom/msm8974.c
> b/drivers/interconnect/qcom/msm8974.c index b6b639dad691..da68ce375a89
> 100644
> --- a/drivers/interconnect/qcom/msm8974.c
> +++ b/drivers/interconnect/qcom/msm8974.c
> @@ -637,6 +637,14 @@ static int msm8974_icc_set(struct icc_node *src, struct
> icc_node *dst) return 0;
> }
>
> +static int msm8974_get_bw(struct icc_node *node, u32 *avg, u32 *peak)
> +{
> + *avg = 0;
> + *peak = 0;
> +
> + return 0;
> +}
> +
> static int msm8974_icc_probe(struct platform_device *pdev)
> {
> const struct msm8974_icc_desc *desc;
> @@ -690,6 +698,7 @@ static int msm8974_icc_probe(struct platform_device
> *pdev) provider->aggregate = icc_std_aggregate;
> provider->xlate = of_icc_xlate_onecell;
> provider->data = data;
> + provider->get_bw = msm8974_get_bw;
>
> ret = icc_provider_add(provider);
> if (ret) {

Regards
Luca