diff mbox series

[2/4] soc: qcom: icc-bwmon: add support for sc7280 LLCC BWMON

Message ID 20220901124730.19460-3-quic_rjendra@quicinc.com (mailing list archive)
State Superseded
Headers show
Series soc: qcom: icc-bwmon: Add support for llcc and cpu bwmon on sc7280 | expand

Commit Message

Rajendra Nayak Sept. 1, 2022, 12:47 p.m. UTC
Add support for sc7280 BWMON instance measuring traffic between LLCC and
memory with the v5 register layout.

Signed-off-by: Rajendra Nayak <quic_rjendra@quicinc.com>
---
 drivers/soc/qcom/icc-bwmon.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Krzysztof Kozlowski Sept. 1, 2022, 3:27 p.m. UTC | #1
On 01/09/2022 15:47, Rajendra Nayak wrote:
> Add support for sc7280 BWMON instance measuring traffic between LLCC and
> memory with the v5 register layout.
> 
> Signed-off-by: Rajendra Nayak <quic_rjendra@quicinc.com>
> ---
>  drivers/soc/qcom/icc-bwmon.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/drivers/soc/qcom/icc-bwmon.c b/drivers/soc/qcom/icc-bwmon.c
> index 47c2c3e7bb3f..44a10009b45e 100644
> --- a/drivers/soc/qcom/icc-bwmon.c
> +++ b/drivers/soc/qcom/icc-bwmon.c
> @@ -656,6 +656,18 @@ static const struct icc_bwmon_data sdm845_llcc_bwmon_data = {
>  	.regmap_cfg = &sdm845_llcc_bwmon_regmap_cfg,
>  };
>  
> +static const struct icc_bwmon_data sc7280_llcc_bwmon_data = {
> +	.sample_ms = 4,
> +	.count_unit_kb = 64,

This makes me wonder if I put correct count unit for SDM845 LLCC...

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof
Rajendra Nayak Sept. 2, 2022, 4:04 a.m. UTC | #2
On 9/1/2022 8:57 PM, Krzysztof Kozlowski wrote:
> On 01/09/2022 15:47, Rajendra Nayak wrote:
>> Add support for sc7280 BWMON instance measuring traffic between LLCC and
>> memory with the v5 register layout.
>>
>> Signed-off-by: Rajendra Nayak <quic_rjendra@quicinc.com>
>> ---
>>   drivers/soc/qcom/icc-bwmon.c | 15 +++++++++++++++
>>   1 file changed, 15 insertions(+)
>>
>> diff --git a/drivers/soc/qcom/icc-bwmon.c b/drivers/soc/qcom/icc-bwmon.c
>> index 47c2c3e7bb3f..44a10009b45e 100644
>> --- a/drivers/soc/qcom/icc-bwmon.c
>> +++ b/drivers/soc/qcom/icc-bwmon.c
>> @@ -656,6 +656,18 @@ static const struct icc_bwmon_data sdm845_llcc_bwmon_data = {
>>   	.regmap_cfg = &sdm845_llcc_bwmon_regmap_cfg,
>>   };
>>   
>> +static const struct icc_bwmon_data sc7280_llcc_bwmon_data = {
>> +	.sample_ms = 4,
>> +	.count_unit_kb = 64,
> 
> This makes me wonder if I put correct count unit for SDM845 LLCC...

These numbers seem to vary from SoC to SoC, I looked up the sdm845.dtsi from
the CAF kernels [1] and it seems like it should be 4096 instead of 1024?

[1] https://source.codeaurora.org/quic/la/kernel/msm-4.9/tree/arch/arm64/boot/dts/qcom/sdm845.dtsi
  
> 
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> Best regards,
> Krzysztof
Krzysztof Kozlowski Sept. 5, 2022, 1:17 p.m. UTC | #3
On 02/09/2022 06:04, Rajendra Nayak wrote:
> 
> 
> On 9/1/2022 8:57 PM, Krzysztof Kozlowski wrote:
>> On 01/09/2022 15:47, Rajendra Nayak wrote:
>>> Add support for sc7280 BWMON instance measuring traffic between LLCC and
>>> memory with the v5 register layout.
>>>
>>> Signed-off-by: Rajendra Nayak <quic_rjendra@quicinc.com>
>>> ---
>>>   drivers/soc/qcom/icc-bwmon.c | 15 +++++++++++++++
>>>   1 file changed, 15 insertions(+)
>>>
>>> diff --git a/drivers/soc/qcom/icc-bwmon.c b/drivers/soc/qcom/icc-bwmon.c
>>> index 47c2c3e7bb3f..44a10009b45e 100644
>>> --- a/drivers/soc/qcom/icc-bwmon.c
>>> +++ b/drivers/soc/qcom/icc-bwmon.c
>>> @@ -656,6 +656,18 @@ static const struct icc_bwmon_data sdm845_llcc_bwmon_data = {
>>>   	.regmap_cfg = &sdm845_llcc_bwmon_regmap_cfg,
>>>   };
>>>   
>>> +static const struct icc_bwmon_data sc7280_llcc_bwmon_data = {
>>> +	.sample_ms = 4,
>>> +	.count_unit_kb = 64,
>>
>> This makes me wonder if I put correct count unit for SDM845 LLCC...
> 
> These numbers seem to vary from SoC to SoC, 

Hm, then it is probably ok.

> I looked up the sdm845.dtsi from
> the CAF kernels [1] and it seems like it should be 4096 instead of 1024?

The SDM845 v2 DTSI was saying 64 kB for CPU bwmon and indeed 4 MB for
LLCC. I think I took 1 MB from default value from the msm-4.9 driver and
it matched my measurements. I need to test it again and maybe fix it to
4 MB.

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/drivers/soc/qcom/icc-bwmon.c b/drivers/soc/qcom/icc-bwmon.c
index 47c2c3e7bb3f..44a10009b45e 100644
--- a/drivers/soc/qcom/icc-bwmon.c
+++ b/drivers/soc/qcom/icc-bwmon.c
@@ -656,6 +656,18 @@  static const struct icc_bwmon_data sdm845_llcc_bwmon_data = {
 	.regmap_cfg = &sdm845_llcc_bwmon_regmap_cfg,
 };
 
+static const struct icc_bwmon_data sc7280_llcc_bwmon_data = {
+	.sample_ms = 4,
+	.count_unit_kb = 64,
+	.default_highbw_kbps = 800 * 1024, /* 800 MBps */
+	.default_medbw_kbps = 256 * 1024, /* 256 MBps */
+	.default_lowbw_kbps = 0,
+	.zone1_thres_count = 16,
+	.zone3_thres_count = 1,
+	.regmap_fields = sdm845_llcc_bwmon_reg_fields,
+	.regmap_cfg = &sdm845_llcc_bwmon_regmap_cfg,
+};
+
 static const struct of_device_id bwmon_of_match[] = {
 	{
 		.compatible = "qcom,msm8998-bwmon",
@@ -663,6 +675,9 @@  static const struct of_device_id bwmon_of_match[] = {
 	}, {
 		.compatible = "qcom,sdm845-llcc-bwmon",
 		.data = &sdm845_llcc_bwmon_data
+	}, {
+		.compatible = "qcom,sc7280-llcc-bwmon",
+		.data = &sc7280_llcc_bwmon_data
 	},
 	{}
 };