drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+)
From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
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.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
---
Changes from V4:
1) Change subject prefix to "iommu/arm-smmu-qcom:"
based on the changes. -- Bjorn
https://lore.kernel.org/all/20251202125447.2102658-1-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 57c097e87613..c6645df97bbc 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
On Tue, 09 Dec 2025 10:53:23 +0530, bibek.patro@oss.qualcomm.com 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.
>
> [...]
Applied to iommu (arm/smmu/updates), thanks!
[1/1] iommu/arm-smmu-qcom: Add actlr settings for mdss on Qualcomm platforms
https://git.kernel.org/iommu/c/f91879fdf70b
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
On 1/6/2026 4:28 AM, Will Deacon wrote:
> On Tue, 09 Dec 2025 10:53:23 +0530, bibek.patro@oss.qualcomm.com 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.
>>
>> [...]
>
> Applied to iommu (arm/smmu/updates), thanks!
>
Hi Will,
While reviewing the applied patch, I noticed that during the transition
from v2 [1] to v3 [2], one of the SoC entries (sa8775p) appears to have
been dropped while addressing the review comments.
Sorry for not catching this earlier.
Would it be acceptable at this stage to send a v6 including the diff below?
Alternatively, if it’s easier on your side, please feel free to squash
this into the existing patch currently applied in your tree.
diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
index 456d5146831e..718d102356d9 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
@@ -43,6 +43,8 @@ static const struct of_device_id
qcom_smmu_actlr_client_of_match[] = {
.data = (const void *) (PREFETCH_DEEP | CPRE |
CMTLB) },
{ .compatible = "qcom,qcm2290-mdss",
.data = (const void *) (PREFETCH_SHALLOW | CPRE
| CMTLB) },
+ { .compatible = "qcom,sa8775p-mdss",
+ .data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
{ .compatible = "qcom,sc7280-mdss",
.data = (const void *) (PREFETCH_SHALLOW | CPRE
| CMTLB) },
{ .compatible = "qcom,sc7280-venus",
If neither approach looks suitable, I can send a standalone follow‑up
patch, either on top of your tree[3] or on tip.
[1]:
https://lore.kernel.org/lkml/20251118171822.3539062-1-charan.kalla@oss.qualcomm.com/#t
[2]:
https://lore.kernel.org/all/20251124171030.323989-1-charan.kalla@oss.qualcomm.com/
[3]:
https://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git/log/?h=arm/smmu/updates
Thanks & regards,
Bibek
> [1/1] iommu/arm-smmu-qcom: Add actlr settings for mdss on Qualcomm platforms
> https://git.kernel.org/iommu/c/f91879fdf70b
>
> Cheers,
On Fri, Jan 09, 2026 at 04:59:13PM +0530, Bibek Kumar Patro wrote:
>
>
> On 1/6/2026 4:28 AM, Will Deacon wrote:
> > On Tue, 09 Dec 2025 10:53:23 +0530, bibek.patro@oss.qualcomm.com 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.
> > >
> > > [...]
> >
> > Applied to iommu (arm/smmu/updates), thanks!
> >
>
> Hi Will,
>
> While reviewing the applied patch, I noticed that during the transition from
> v2 [1] to v3 [2], one of the SoC entries (sa8775p) appears to have been
> dropped while addressing the review comments.
>
> Sorry for not catching this earlier.
>
> Would it be acceptable at this stage to send a v6 including the diff below?
> Alternatively, if it’s easier on your side, please feel free to squash this
> into the existing patch currently applied in your tree.
>
> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> index 456d5146831e..718d102356d9 100644
> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> @@ -43,6 +43,8 @@ static const struct of_device_id
> qcom_smmu_actlr_client_of_match[] = {
> .data = (const void *) (PREFETCH_DEEP | CPRE |
> CMTLB) },
> { .compatible = "qcom,qcm2290-mdss",
> .data = (const void *) (PREFETCH_SHALLOW | CPRE |
> CMTLB) },
> + { .compatible = "qcom,sa8775p-mdss",
> + .data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> { .compatible = "qcom,sc7280-mdss",
> .data = (const void *) (PREFETCH_SHALLOW | CPRE |
> CMTLB) },
> { .compatible = "qcom,sc7280-venus",
>
> If neither approach looks suitable, I can send a standalone follow‑up patch,
> either on top of your tree[3] or on tip.
No worries, but please just send a patch on top so that we have an
explanation in the commit message and we won't have to rebase the
branch.
Cheers,
Will
From: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
The ACTLR configuration for the sa8775p MDSS client was inadvertently
dropped while reworking the commit f91879fdf70b ("iommu/arm-smmu-qcom:
Add actlr settings for mdss on Qualcomm platforms"). Without this
entry, the sa8775p MDSS block does not receive the intended default
ACTLR configuration.
Restore the missing compatible entry so that the platform receives the
expected behavior.
Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
---
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
index 456d5146831e..718d102356d9 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
@@ -43,6 +43,8 @@ static const struct of_device_id qcom_smmu_actlr_client_of_match[] = {
.data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
{ .compatible = "qcom,qcm2290-mdss",
.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
+ { .compatible = "qcom,sa8775p-mdss",
+ .data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
{ .compatible = "qcom,sc7280-mdss",
.data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
{ .compatible = "qcom,sc7280-venus",
--
2.34.1
Hi Will,
Thanks for the clarification in [1].
I’ve sent the follow‑up patch on top, including the explanation in the
commit message as suggested.
Please lmk if any further adjustment is needed.
https://lore.kernel.org/all/aWDsFoEe7PHQaL9F@willie-the-truck/
Thanks & Regards,
Bibek
On 1/10/2026 2:15 AM, bibek.patro@oss.qualcomm.com wrote:
> From: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
>
> The ACTLR configuration for the sa8775p MDSS client was inadvertently
> dropped while reworking the commit f91879fdf70b ("iommu/arm-smmu-qcom:
> Add actlr settings for mdss on Qualcomm platforms"). Without this
> entry, the sa8775p MDSS block does not receive the intended default
> ACTLR configuration.
>
> Restore the missing compatible entry so that the platform receives the
> expected behavior.
>
> Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
> ---
> drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> index 456d5146831e..718d102356d9 100644
> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> @@ -43,6 +43,8 @@ static const struct of_device_id qcom_smmu_actlr_client_of_match[] = {
> .data = (const void *) (PREFETCH_DEEP | CPRE | CMTLB) },
> { .compatible = "qcom,qcm2290-mdss",
> .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> + { .compatible = "qcom,sa8775p-mdss",
> + .data = (const void *) (PREFETCH_DEFAULT | CMTLB) },
> { .compatible = "qcom,sc7280-mdss",
> .data = (const void *) (PREFETCH_SHALLOW | CPRE | CMTLB) },
> { .compatible = "qcom,sc7280-venus",
> --
> 2.34.1
>
Hi all,
Resurfacing this patch in case it was overlooked due to the holidays and
Plumbers.
As per Dmitry’s suggestion [1] , I’m sharing the v5 revision, which
incorporates Bjorn’s feedback on v4.
[1]:
https://lore.kernel.org/all/CAO9ioeW0fafwRnxvDJ7yHGcQYbgfkfRF1BMTpXpG=8tSKRptdw@mail.gmail.com/#t
Thanks & regards,
Bibek
On 12/9/2025 10:53 AM, bibek.patro@oss.qualcomm.com wrote:
> From: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
>
> 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.
>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Charan Teja Kalla <charan.kalla@oss.qualcomm.com>
> Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
> ---
> Changes from V4:
> 1) Change subject prefix to "iommu/arm-smmu-qcom:"
> based on the changes. -- Bjorn
> https://lore.kernel.org/all/20251202125447.2102658-1-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 57c097e87613..c6645df97bbc 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) },
> { }
> };
>
© 2016 - 2026 Red Hat, Inc.