[2/4] interconnect: qcom: qcm2290: Set AB coefficients

Message ID 20230726-topic-icc_coeff-v1-2-31616960818c@linaro.org
State New
Headers
Series Fix up icc clock rate calculation on some platforms |

Commit Message

Konrad Dybcio July 26, 2023, 4:25 p.m. UTC
  Some buses need additional manual adjustments atop the usual
calculations. Fill in the missing coefficients.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 drivers/interconnect/qcom/qcm2290.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Stephan Gerhold July 26, 2023, 5:18 p.m. UTC | #1
On Wed, Jul 26, 2023 at 06:25:44PM +0200, Konrad Dybcio wrote:
> Some buses need additional manual adjustments atop the usual
> calculations. Fill in the missing coefficients.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>

What about the funny util-fact/vrail-comp on the mas-apps-proc node
downstream?

Thanks,
Stephan

> ---
>  drivers/interconnect/qcom/qcm2290.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/interconnect/qcom/qcm2290.c b/drivers/interconnect/qcom/qcm2290.c
> index 3c3b24264a5b..457e5713ae43 100644
> --- a/drivers/interconnect/qcom/qcm2290.c
> +++ b/drivers/interconnect/qcom/qcm2290.c
> @@ -1198,6 +1198,7 @@ static const struct qcom_icc_desc qcm2290_bimc = {
>  	.regmap_cfg = &qcm2290_bimc_regmap_config,
>  	/* M_REG_BASE() in vendor msm_bus_bimc_adhoc driver */
>  	.qos_offset = 0x8000,
> +	.ab_percent = 153,
>  };
>  
>  static struct qcom_icc_node * const qcm2290_cnoc_nodes[] = {
> @@ -1324,6 +1325,7 @@ static const struct qcom_icc_desc qcm2290_mmnrt_virt = {
>  	.bus_clk_desc = &mmaxi_0_clk,
>  	.regmap_cfg = &qcm2290_snoc_regmap_config,
>  	.qos_offset = 0x15000,
> +	.ab_percent = 142,
>  };
>  
>  static struct qcom_icc_node * const qcm2290_mmrt_virt_nodes[] = {
> @@ -1339,6 +1341,7 @@ static const struct qcom_icc_desc qcm2290_mmrt_virt = {
>  	.bus_clk_desc = &mmaxi_1_clk,
>  	.regmap_cfg = &qcm2290_snoc_regmap_config,
>  	.qos_offset = 0x15000,
> +	.ab_percent = 139,
>  };
>  
>  static const struct of_device_id qcm2290_noc_of_match[] = {
> 
> -- 
> 2.41.0
>
  
Konrad Dybcio July 26, 2023, 5:20 p.m. UTC | #2
On 26.07.2023 19:18, Stephan Gerhold wrote:
> On Wed, Jul 26, 2023 at 06:25:44PM +0200, Konrad Dybcio wrote:
>> Some buses need additional manual adjustments atop the usual
>> calculations. Fill in the missing coefficients.
>>
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> 
> What about the funny util-fact/vrail-comp on the mas-apps-proc node
> downstream?
Can't see it neither on msm-5.4 (with the icc API) nor in the 4.19 (msmbus)
device tree.

Konrad
  
Stephan Gerhold July 26, 2023, 5:26 p.m. UTC | #3
On Wed, Jul 26, 2023 at 07:20:27PM +0200, Konrad Dybcio wrote:
> On 26.07.2023 19:18, Stephan Gerhold wrote:
> > On Wed, Jul 26, 2023 at 06:25:44PM +0200, Konrad Dybcio wrote:
> >> Some buses need additional manual adjustments atop the usual
> >> calculations. Fill in the missing coefficients.
> >>
> >> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> > 
> > What about the funny util-fact/vrail-comp on the mas-apps-proc node
> > downstream?
> Can't see it neither on msm-5.4 (with the icc API) nor in the 4.19 (msmbus)
> device tree.
> 

Not sure where to get up-to-date device trees nowadays. The AOSP repo
I was looking at has this commit where it was added:
https://android.googlesource.com/kernel/msm-extra/devicetree/+/02f8c342b23c20a5cf967df649814be37a08227c%5E%21/#F0

Stephan
  
Konrad Dybcio July 26, 2023, 5:46 p.m. UTC | #4
On 26.07.2023 19:26, Stephan Gerhold wrote:
> On Wed, Jul 26, 2023 at 07:20:27PM +0200, Konrad Dybcio wrote:
>> On 26.07.2023 19:18, Stephan Gerhold wrote:
>>> On Wed, Jul 26, 2023 at 06:25:44PM +0200, Konrad Dybcio wrote:
>>>> Some buses need additional manual adjustments atop the usual
>>>> calculations. Fill in the missing coefficients.
>>>>
>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>>>
>>> What about the funny util-fact/vrail-comp on the mas-apps-proc node
>>> downstream?
>> Can't see it neither on msm-5.4 (with the icc API) nor in the 4.19 (msmbus)
>> device tree.
>>
> 
> Not sure where to get up-to-date device trees nowadays. The AOSP repo
> I was looking at has this commit where it was added:
> https://android.googlesource.com/kernel/msm-extra/devicetree/+/02f8c342b23c20a5cf967df649814be37a08227c%5E%21/#F0
Oh right, take a look at this one:

https://git.codelinaro.org/clo/la/kernel/msm-4.14/-/commit/201df022706e100cef8d28983c6a7b883fcaec5a

I guess I'll need to update the icc driver then.

Konrad
  
Konrad Dybcio July 26, 2023, 5:52 p.m. UTC | #5
On 26.07.2023 19:46, Konrad Dybcio wrote:
> On 26.07.2023 19:26, Stephan Gerhold wrote:
>> On Wed, Jul 26, 2023 at 07:20:27PM +0200, Konrad Dybcio wrote:
>>> On 26.07.2023 19:18, Stephan Gerhold wrote:
>>>> On Wed, Jul 26, 2023 at 06:25:44PM +0200, Konrad Dybcio wrote:
>>>>> Some buses need additional manual adjustments atop the usual
>>>>> calculations. Fill in the missing coefficients.
>>>>>
>>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>>>>
>>>> What about the funny util-fact/vrail-comp on the mas-apps-proc node
>>>> downstream?
>>> Can't see it neither on msm-5.4 (with the icc API) nor in the 4.19 (msmbus)
>>> device tree.
>>>
>>
>> Not sure where to get up-to-date device trees nowadays. The AOSP repo
>> I was looking at has this commit where it was added:
>> https://android.googlesource.com/kernel/msm-extra/devicetree/+/02f8c342b23c20a5cf967df649814be37a08227c%5E%21/#F0
> Oh right, take a look at this one:
> 
> https://git.codelinaro.org/clo/la/kernel/msm-4.14/-/commit/201df022706e100cef8d28983c6a7b883fcaec5a
> 
> I guess I'll need to update the icc driver then.
Moreover, this having vrail-comp = 96, means I'll have to go with
the wrecked downstream way of *(100/(percent)) instead of
*(percent/100)...

I also noticed that sm6125 makes very heavy use of per-node clocks..

Konrad
  

Patch

diff --git a/drivers/interconnect/qcom/qcm2290.c b/drivers/interconnect/qcom/qcm2290.c
index 3c3b24264a5b..457e5713ae43 100644
--- a/drivers/interconnect/qcom/qcm2290.c
+++ b/drivers/interconnect/qcom/qcm2290.c
@@ -1198,6 +1198,7 @@  static const struct qcom_icc_desc qcm2290_bimc = {
 	.regmap_cfg = &qcm2290_bimc_regmap_config,
 	/* M_REG_BASE() in vendor msm_bus_bimc_adhoc driver */
 	.qos_offset = 0x8000,
+	.ab_percent = 153,
 };
 
 static struct qcom_icc_node * const qcm2290_cnoc_nodes[] = {
@@ -1324,6 +1325,7 @@  static const struct qcom_icc_desc qcm2290_mmnrt_virt = {
 	.bus_clk_desc = &mmaxi_0_clk,
 	.regmap_cfg = &qcm2290_snoc_regmap_config,
 	.qos_offset = 0x15000,
+	.ab_percent = 142,
 };
 
 static struct qcom_icc_node * const qcm2290_mmrt_virt_nodes[] = {
@@ -1339,6 +1341,7 @@  static const struct qcom_icc_desc qcm2290_mmrt_virt = {
 	.bus_clk_desc = &mmaxi_1_clk,
 	.regmap_cfg = &qcm2290_snoc_regmap_config,
 	.qos_offset = 0x15000,
+	.ab_percent = 139,
 };
 
 static const struct of_device_id qcm2290_noc_of_match[] = {