diff mbox series

arm_mpam: Fix T241-MPAM-4 workaround

Message ID 20240819220818.201870-1-sdonthineni@nvidia.com (mailing list archive)
State New
Headers show
Series arm_mpam: Fix T241-MPAM-4 workaround | expand

Commit Message

Shanker Donthineni Aug. 19, 2024, 10:08 p.m. UTC
The workaround for T241-MPAM-4 was applied incorrectly, leading to
MBW_MIN being programmed with a zero value when the user specifies
MBW_MAX is less than 5%.

This patch ensures that MBW_MIN is programmed with a non-zero value,
set to 1 to fix the T241-MPAM-4 as expected.

Fixes: 13ff1b527e40 ("arm_mpam: Add workaround for T241-MPAM-4")
Signed-off-by: Shanker Donthineni <sdonthineni@nvidia.com>
---
 drivers/platform/arm64/mpam/mpam_devices.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jonathan Cameron Aug. 21, 2024, 11:42 a.m. UTC | #1
On Mon, 19 Aug 2024 17:08:18 -0500
Shanker Donthineni <sdonthineni@nvidia.com> wrote:

> The workaround for T241-MPAM-4 was applied incorrectly, leading to
> MBW_MIN being programmed with a zero value when the user specifies
> MBW_MAX is less than 5%.
> 
> This patch ensures that MBW_MIN is programmed with a non-zero value,
> set to 1 to fix the T241-MPAM-4 as expected.
> 
> Fixes: 13ff1b527e40 ("arm_mpam: Add workaround for T241-MPAM-4")
> Signed-off-by: Shanker Donthineni <sdonthineni@nvidia.com>
Hi Shanker,

I can guess which branch this fix is for, but good to mention it
in the patch given it's not mainline.

Jonathan

> ---
>  drivers/platform/arm64/mpam/mpam_devices.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/platform/arm64/mpam/mpam_devices.c b/drivers/platform/arm64/mpam/mpam_devices.c
> index a802ca1c9f05..e49a27c02c66 100644
> --- a/drivers/platform/arm64/mpam/mpam_devices.c
> +++ b/drivers/platform/arm64/mpam/mpam_devices.c
> @@ -2990,7 +2990,7 @@ static void mpam_extend_config(struct mpam_class *class, struct mpam_config *cfg
>  	}
>  
>  	if (mpam_has_quirk(T241_FORCE_MBW_MIN_TO_ONE, class) &&
> -	    cfg->mbw_min == 0) {
> +	    cfg->mbw_min <= min_hw_granule) {
>  		cfg->mbw_min = min_hw_granule + 1;
>  		mpam_set_feature(mpam_feat_mbw_min, cfg);
>  	}
Koba Ko Sept. 17, 2024, 4:12 p.m. UTC | #2
On 8/21/24 19:42, Jonathan Cameron wrote:
> On Mon, 19 Aug 2024 17:08:18 -0500
> Shanker Donthineni <sdonthineni@nvidia.com> wrote:
>
>> The workaround for T241-MPAM-4 was applied incorrectly, leading to
>> MBW_MIN being programmed with a zero value when the user specifies
>> MBW_MAX is less than 5%.
>>
>> This patch ensures that MBW_MIN is programmed with a non-zero value,
>> set to 1 to fix the T241-MPAM-4 as expected.
>>
>> Fixes: 13ff1b527e40 ("arm_mpam: Add workaround for T241-MPAM-4")
>> Signed-off-by: Shanker Donthineni <sdonthineni@nvidia.com>
> Hi Shanker,
>
> I can guess which branch this fix is for, but good to mention it
> in the patch given it's not mainline.
>
> Jonathan
Hi Jonathan,
could you please share the cgit of branch?
Thanks
>> ---
>>   drivers/platform/arm64/mpam/mpam_devices.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/platform/arm64/mpam/mpam_devices.c b/drivers/platform/arm64/mpam/mpam_devices.c
>> index a802ca1c9f05..e49a27c02c66 100644
>> --- a/drivers/platform/arm64/mpam/mpam_devices.c
>> +++ b/drivers/platform/arm64/mpam/mpam_devices.c
>> @@ -2990,7 +2990,7 @@ static void mpam_extend_config(struct mpam_class *class, struct mpam_config *cfg
>>   	}
>>   
>>   	if (mpam_has_quirk(T241_FORCE_MBW_MIN_TO_ONE, class) &&
>> -	    cfg->mbw_min == 0) {
>> +	    cfg->mbw_min <= min_hw_granule) {
>>   		cfg->mbw_min = min_hw_granule + 1;
>>   		mpam_set_feature(mpam_feat_mbw_min, cfg);
>>   	}
>
diff mbox series

Patch

diff --git a/drivers/platform/arm64/mpam/mpam_devices.c b/drivers/platform/arm64/mpam/mpam_devices.c
index a802ca1c9f05..e49a27c02c66 100644
--- a/drivers/platform/arm64/mpam/mpam_devices.c
+++ b/drivers/platform/arm64/mpam/mpam_devices.c
@@ -2990,7 +2990,7 @@  static void mpam_extend_config(struct mpam_class *class, struct mpam_config *cfg
 	}
 
 	if (mpam_has_quirk(T241_FORCE_MBW_MIN_TO_ONE, class) &&
-	    cfg->mbw_min == 0) {
+	    cfg->mbw_min <= min_hw_granule) {
 		cfg->mbw_min = min_hw_granule + 1;
 		mpam_set_feature(mpam_feat_mbw_min, cfg);
 	}