[PATCH V4] iommu/arm-smmu: add actlr settings for mdss on Qualcomm platforms

Charan Teja Kalla posted 1 patch 1 week, 6 days ago
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 26 ++++++++++++++++++++++
1 file changed, 26 insertions(+)
[PATCH V4] iommu/arm-smmu: add actlr settings for mdss on Qualcomm platforms
Posted by Charan Teja Kalla 1 week, 6 days ago
Add ACTLR settings for missing MDSS devices on Qualcomm platforms.

These are QoS settings and are specific to per SoC thus different
settings, eg: some have shallow prefetch while others have no
prefetch.

Aswell, this prefetch feature is not implemented for all the
platforms, capturing to those are implemented to the best of my
knowledge.

Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
---
Changes from V3:
 1) Add actlr setting for missing sc8180x & sm6115.
 2) Improved commit message.
https://lore.kernel.org/all/20251124171030.323989-1-charan.kalla@oss.qualcomm.com/

Changes from V2:
 1) Add actlr settings for all the mdss devices on Qualcomm platforms.
 2) Improved the commit message that explain why different ACTLR
    settings
https://lore.kernel.org/lkml/20251118171822.3539062-1-charan.kalla@oss.qualcomm.com/#t

Changes from V1:
  1) Added actlr setting only for MDSS and dropped for fastrpc. --
konrad
  2) ACTLR table is updated per alphanumeric order -- konrad 
  https://lore.kernel.org/all/20251105075307.1658329-1-charan.kalla@oss.qualcomm.com/

 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 26 ++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
index c21a401c71eb..149da53091de 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
@@ -41,12 +41,38 @@ static const struct of_device_id qcom_smmu_actlr_client_of_match[] = {
 			.data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
 	{ .compatible = "qcom,fastrpc",
 			.data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
+	{ .compatible = "qcom,qcm2290-mdss",
+			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
 	{ .compatible = "qcom,sc7280-mdss",
 			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
 	{ .compatible = "qcom,sc7280-venus",
 			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+	{ .compatible = "qcom,sc8180x-mdss",
+			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+	{ .compatible = "qcom,sc8280xp-mdss",
+			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+	{ .compatible = "qcom,sm6115-mdss",
+			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+	{ .compatible = "qcom,sm6125-mdss",
+			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+	{ .compatible = "qcom,sm6350-mdss",
+			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+	{ .compatible = "qcom,sm8150-mdss",
+			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+	{ .compatible = "qcom,sm8250-mdss",
+			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+	{ .compatible = "qcom,sm8350-mdss",
+			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+	{ .compatible = "qcom,sm8450-mdss",
+			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
 	{ .compatible = "qcom,sm8550-mdss",
 			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
+	{ .compatible = "qcom,sm8650-mdss",
+			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
+	{ .compatible = "qcom,sm8750-mdss",
+			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
+	{ .compatible = "qcom,x1e80100-mdss",
+			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
 	{ }
 };
 
-- 
2.34.1
Re: [PATCH V4] iommu/arm-smmu: add actlr settings for mdss on Qualcomm platforms
Posted by Bjorn Andersson 1 week, 3 days ago
On Tue, Dec 02, 2025 at 06:24:47PM +0530, Charan Teja Kalla wrote:

Based on the other changes to this file, the subject prefix should be
"iommu/arm-smmu-qcom:"

Regards,
Bjorn

> Add ACTLR settings for missing MDSS devices on Qualcomm platforms.
> 
> These are QoS settings and are specific to per SoC thus different
> settings, eg: some have shallow prefetch while others have no
> prefetch.
> 
> Aswell, this prefetch feature is not implemented for all the
> platforms, capturing to those are implemented to the best of my
> knowledge.
> 
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> ---
> Changes from V3:
>  1) Add actlr setting for missing sc8180x & sm6115.
>  2) Improved commit message.
> https://lore.kernel.org/all/20251124171030.323989-1-charan.kalla@oss.qualcomm.com/
> 
> Changes from V2:
>  1) Add actlr settings for all the mdss devices on Qualcomm platforms.
>  2) Improved the commit message that explain why different ACTLR
>     settings
> https://lore.kernel.org/lkml/20251118171822.3539062-1-charan.kalla@oss.qualcomm.com/#t
> 
> Changes from V1:
>   1) Added actlr setting only for MDSS and dropped for fastrpc. --
> konrad
>   2) ACTLR table is updated per alphanumeric order -- konrad 
>   https://lore.kernel.org/all/20251105075307.1658329-1-charan.kalla@oss.qualcomm.com/
> 
>  drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 26 ++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> index c21a401c71eb..149da53091de 100644
> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> @@ -41,12 +41,38 @@ static const struct of_device_id qcom_smmu_actlr_client_of_match[] = {
>  			.data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
>  	{ .compatible = "qcom,fastrpc",
>  			.data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
> +	{ .compatible = "qcom,qcm2290-mdss",
> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>  	{ .compatible = "qcom,sc7280-mdss",
>  			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>  	{ .compatible = "qcom,sc7280-venus",
>  			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> +	{ .compatible = "qcom,sc8180x-mdss",
> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> +	{ .compatible = "qcom,sc8280xp-mdss",
> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> +	{ .compatible = "qcom,sm6115-mdss",
> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> +	{ .compatible = "qcom,sm6125-mdss",
> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> +	{ .compatible = "qcom,sm6350-mdss",
> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> +	{ .compatible = "qcom,sm8150-mdss",
> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> +	{ .compatible = "qcom,sm8250-mdss",
> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> +	{ .compatible = "qcom,sm8350-mdss",
> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> +	{ .compatible = "qcom,sm8450-mdss",
> +			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
>  	{ .compatible = "qcom,sm8550-mdss",
>  			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> +	{ .compatible = "qcom,sm8650-mdss",
> +			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> +	{ .compatible = "qcom,sm8750-mdss",
> +			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> +	{ .compatible = "qcom,x1e80100-mdss",
> +			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
>  	{ }
>  };
>  
> -- 
> 2.34.1
> 
>
Re: [PATCH V4] iommu/arm-smmu: add actlr settings for mdss on Qualcomm platforms
Posted by Bibek Kumar Patro 1 week ago

On 12/6/2025 2:36 AM, Bjorn Andersson wrote:
> On Tue, Dec 02, 2025 at 06:24:47PM +0530, Charan Teja Kalla wrote:
> 
> Based on the other changes to this file, the subject prefix should be
> "iommu/arm-smmu-qcom:"
> 

Sure Bjorn, I will address this in v4 RESEND and collect all reviewed-by
tags.
Let me know if you feel this change needs a revision update to v5
instead of v4-RESEND.

Thanks & regards,
Bibek

> Regards,
> Bjorn
> 
>> Add ACTLR settings for missing MDSS devices on Qualcomm platforms.
>>
>> These are QoS settings and are specific to per SoC thus different
>> settings, eg: some have shallow prefetch while others have no
>> prefetch.
>>
>> Aswell, this prefetch feature is not implemented for all the
>> platforms, capturing to those are implemented to the best of my
>> knowledge.
>>
>> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>> ---
>> Changes from V3:
>>   1) Add actlr setting for missing sc8180x & sm6115.
>>   2) Improved commit message.
>> https://lore.kernel.org/all/20251124171030.323989-1-charan.kalla@oss.qualcomm.com/
>>
>> Changes from V2:
>>   1) Add actlr settings for all the mdss devices on Qualcomm platforms.
>>   2) Improved the commit message that explain why different ACTLR
>>      settings
>> https://lore.kernel.org/lkml/20251118171822.3539062-1-charan.kalla@oss.qualcomm.com/#t
>>
>> Changes from V1:
>>    1) Added actlr setting only for MDSS and dropped for fastrpc. --
>> konrad
>>    2) ACTLR table is updated per alphanumeric order -- konrad
>>    https://lore.kernel.org/all/20251105075307.1658329-1-charan.kalla@oss.qualcomm.com/
>>
>>   drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 26 ++++++++++++++++++++++
>>   1 file changed, 26 insertions(+)
>>
>> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>> index c21a401c71eb..149da53091de 100644
>> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>> @@ -41,12 +41,38 @@ static const struct of_device_id qcom_smmu_actlr_client_of_match[] = {
>>   			.data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
>>   	{ .compatible = "qcom,fastrpc",
>>   			.data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,qcm2290-mdss",
>> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>>   	{ .compatible = "qcom,sc7280-mdss",
>>   			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>>   	{ .compatible = "qcom,sc7280-venus",
>>   			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,sc8180x-mdss",
>> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,sc8280xp-mdss",
>> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,sm6115-mdss",
>> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,sm6125-mdss",
>> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,sm6350-mdss",
>> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,sm8150-mdss",
>> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,sm8250-mdss",
>> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,sm8350-mdss",
>> +			.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
>> +	{ .compatible = "qcom,sm8450-mdss",
>> +			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
>>   	{ .compatible = "qcom,sm8550-mdss",
>>   			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
>> +	{ .compatible = "qcom,sm8650-mdss",
>> +			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
>> +	{ .compatible = "qcom,sm8750-mdss",
>> +			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
>> +	{ .compatible = "qcom,x1e80100-mdss",
>> +			.data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
>>   	{ }
>>   };
>>   
>> -- 
>> 2.34.1
>>
>>
Re: [PATCH V4] iommu/arm-smmu: add actlr settings for mdss on Qualcomm platforms
Posted by Dmitry Baryshkov 6 days, 22 hours ago
On Mon, 8 Dec 2025 at 21:28, Bibek Kumar Patro
<bibek.patro@oss.qualcomm.com> wrote:
>
>
>
> On 12/6/2025 2:36 AM, Bjorn Andersson wrote:
> > On Tue, Dec 02, 2025 at 06:24:47PM +0530, Charan Teja Kalla wrote:
> >
> > Based on the other changes to this file, the subject prefix should be
> > "iommu/arm-smmu-qcom:"
> >
>
> Sure Bjorn, I will address this in v4 RESEND and collect all reviewed-by
> tags.
> Let me know if you feel this change needs a revision update to v5
> instead of v4-RESEND.

RESEND means that there were no changes to the patches. If you've
changed anything, it is a next iteration.

>
> Thanks & regards,
> Bibek
>
> > Regards,
> > Bjorn
> >
> >> Add ACTLR settings for missing MDSS devices on Qualcomm platforms.
> >>
> >> These are QoS settings and are specific to per SoC thus different
> >> settings, eg: some have shallow prefetch while others have no
> >> prefetch.
> >>
> >> Aswell, this prefetch feature is not implemented for all the
> >> platforms, capturing to those are implemented to the best of my
> >> knowledge.
> >>
> >> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> >> ---
> >> Changes from V3:
> >>   1) Add actlr setting for missing sc8180x & sm6115.
> >>   2) Improved commit message.
> >> https://lore.kernel.org/all/20251124171030.323989-1-charan.kalla@oss.qualcomm.com/
> >>
> >> Changes from V2:
> >>   1) Add actlr settings for all the mdss devices on Qualcomm platforms.
> >>   2) Improved the commit message that explain why different ACTLR
> >>      settings
> >> https://lore.kernel.org/lkml/20251118171822.3539062-1-charan.kalla@oss.qualcomm.com/#t
> >>
> >> Changes from V1:
> >>    1) Added actlr setting only for MDSS and dropped for fastrpc. --
> >> konrad
> >>    2) ACTLR table is updated per alphanumeric order -- konrad
> >>    https://lore.kernel.org/all/20251105075307.1658329-1-charan.kalla@oss.qualcomm.com/
> >>
> >>   drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 26 ++++++++++++++++++++++
> >>   1 file changed, 26 insertions(+)
> >>
> >> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> >> index c21a401c71eb..149da53091de 100644
> >> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> >> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> >> @@ -41,12 +41,38 @@ static const struct of_device_id qcom_smmu_actlr_client_of_match[] = {
> >>                      .data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
> >>      { .compatible = "qcom,fastrpc",
> >>                      .data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,qcm2290-mdss",
> >> +                    .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >>      { .compatible = "qcom,sc7280-mdss",
> >>                      .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >>      { .compatible = "qcom,sc7280-venus",
> >>                      .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,sc8180x-mdss",
> >> +                    .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,sc8280xp-mdss",
> >> +                    .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,sm6115-mdss",
> >> +                    .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,sm6125-mdss",
> >> +                    .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,sm6350-mdss",
> >> +                    .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,sm8150-mdss",
> >> +                    .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,sm8250-mdss",
> >> +                    .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,sm8350-mdss",
> >> +                    .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> >> +    { .compatible = "qcom,sm8450-mdss",
> >> +                    .data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> >>      { .compatible = "qcom,sm8550-mdss",
> >>                      .data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> >> +    { .compatible = "qcom,sm8650-mdss",
> >> +                    .data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> >> +    { .compatible = "qcom,sm8750-mdss",
> >> +                    .data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> >> +    { .compatible = "qcom,x1e80100-mdss",
> >> +                    .data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> >>      { }
> >>   };
> >>
> >> --
> >> 2.34.1
> >>
> >>
>


-- 
With best wishes
Dmitry
Re: [PATCH V4] iommu/arm-smmu: add actlr settings for mdss on Qualcomm platforms
Posted by Dmitry Baryshkov 1 week, 3 days ago
On Tue, Dec 02, 2025 at 06:24:47PM +0530, Charan Teja Kalla wrote:
> Add ACTLR settings for missing MDSS devices on Qualcomm platforms.
> 
> These are QoS settings and are specific to per SoC thus different
> settings, eg: some have shallow prefetch while others have no
> prefetch.
> 
> Aswell, this prefetch feature is not implemented for all the
> platforms, capturing to those are implemented to the best of my
> knowledge.
> 
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> ---
> Changes from V3:
>  1) Add actlr setting for missing sc8180x & sm6115.

Thanks!


Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>


> 

-- 
With best wishes
Dmitry
Re: [PATCH V4] iommu/arm-smmu: add actlr settings for mdss on Qualcomm platforms
Posted by Konrad Dybcio 1 week, 3 days ago
On 12/2/25 1:54 PM, Charan Teja Kalla wrote:
> Add ACTLR settings for missing MDSS devices on Qualcomm platforms.
> 
> These are QoS settings and are specific to per SoC thus different
> settings, eg: some have shallow prefetch while others have no
> prefetch.
> 
> Aswell, this prefetch feature is not implemented for all the
> platforms, capturing to those are implemented to the best of my
> knowledge.
> 
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> ---
> Changes from V3:
>  1) Add actlr setting for missing sc8180x & sm6115.

Thanks for digging them all up!

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad