2021-04-20 06:06:18

by Sai Prakash Ranjan

[permalink] [raw]
Subject: [PATCHv3 0/2] iommu/arm-smmu-qcom: Add SC7280 support

Patch 1 adds the sc7280 smmu compatible.
Patch 2 moves the adreno smmu check before apss smmu to enable
adreno smmu specific implementation.

Note that dt-binding for sc7280 is already merged.

Changes in v3:
* Collect acks and reviews
* Rebase on top of for-joerg/arm-smmu/updates

Changes in v2:
* Add a comment to make sure this order is not changed in future (Jordan)

Sai Prakash Ranjan (2):
iommu/arm-smmu-qcom: Add SC7280 SMMU compatible
iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier

drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)

--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation


2021-04-20 06:06:57

by Sai Prakash Ranjan

[permalink] [raw]
Subject: [PATCHv3 2/2] iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier

Adreno(GPU) SMMU and APSS(Application Processor SubSystem) SMMU
both implement "arm,mmu-500" in some QTI SoCs and to run through
adreno smmu specific implementation such as enabling split pagetables
support, we need to match the "qcom,adreno-smmu" compatible first
before apss smmu or else we will be running apps smmu implementation
for adreno smmu and the additional features for adreno smmu is never
set. For ex: we have "qcom,sc7280-smmu-500" compatible for both apps
and adreno smmu implementing "arm,mmu-500", so the adreno smmu
implementation is never reached because the current sequence checks
for apps smmu compatible(qcom,sc7280-smmu-500) first and runs that
specific impl and we never reach adreno smmu specific implementation.

Suggested-by: Akhil P Oommen <[email protected]>
Signed-off-by: Sai Prakash Ranjan <[email protected]>
Reviewed-by: Bjorn Andersson <[email protected]>
Acked-by: Jordan Crouse <[email protected]>
---
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
index bea3ee0dabc2..03f048aebb80 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
@@ -345,11 +345,17 @@ struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu)
{
const struct device_node *np = smmu->dev->of_node;

- if (of_match_node(qcom_smmu_impl_of_match, np))
- return qcom_smmu_create(smmu, &qcom_smmu_impl);
-
+ /*
+ * Do not change this order of implementation, i.e., first adreno
+ * smmu impl and then apss smmu since we can have both implementing
+ * arm,mmu-500 in which case we will miss setting adreno smmu specific
+ * features if the order is changed.
+ */
if (of_device_is_compatible(np, "qcom,adreno-smmu"))
return qcom_smmu_create(smmu, &qcom_adreno_smmu_impl);

+ if (of_match_node(qcom_smmu_impl_of_match, np))
+ return qcom_smmu_create(smmu, &qcom_smmu_impl);
+
return smmu;
}
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation

2021-05-24 02:44:27

by Sai Prakash Ranjan

[permalink] [raw]
Subject: Re: [PATCHv3 0/2] iommu/arm-smmu-qcom: Add SC7280 support

Hi Will,

On 2021-04-20 11:34, Sai Prakash Ranjan wrote:
> Patch 1 adds the sc7280 smmu compatible.
> Patch 2 moves the adreno smmu check before apss smmu to enable
> adreno smmu specific implementation.
>
> Note that dt-binding for sc7280 is already merged.
>
> Changes in v3:
> * Collect acks and reviews
> * Rebase on top of for-joerg/arm-smmu/updates
>
> Changes in v2:
> * Add a comment to make sure this order is not changed in future
> (Jordan)
>
> Sai Prakash Ranjan (2):
> iommu/arm-smmu-qcom: Add SC7280 SMMU compatible
> iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier
>
> drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)

Gentle Ping!

Thanks,
Sai
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member
of Code Aurora Forum, hosted by The Linux Foundation

2021-06-07 02:58:26

by Sai Prakash Ranjan

[permalink] [raw]
Subject: Re: [PATCHv3 0/2] iommu/arm-smmu-qcom: Add SC7280 support

Hi Will,

On 2021-05-24 08:13, Sai Prakash Ranjan wrote:
> Hi Will,
>
> On 2021-04-20 11:34, Sai Prakash Ranjan wrote:
>> Patch 1 adds the sc7280 smmu compatible.
>> Patch 2 moves the adreno smmu check before apss smmu to enable
>> adreno smmu specific implementation.
>>
>> Note that dt-binding for sc7280 is already merged.
>>
>> Changes in v3:
>> * Collect acks and reviews
>> * Rebase on top of for-joerg/arm-smmu/updates
>>
>> Changes in v2:
>> * Add a comment to make sure this order is not changed in future
>> (Jordan)
>>
>> Sai Prakash Ranjan (2):
>> iommu/arm-smmu-qcom: Add SC7280 SMMU compatible
>> iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier
>>
>> drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 14 +++++++++++---
>> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> Gentle Ping!
>

Is this going to be taken for 5.14 or needs one more release cycle?

Thanks,
Sai

--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member
of Code Aurora Forum, hosted by The Linux Foundation

2021-06-08 12:35:54

by Sai Prakash Ranjan

[permalink] [raw]
Subject: Re: [PATCHv3 0/2] iommu/arm-smmu-qcom: Add SC7280 support

On 2021-06-08 17:31, Will Deacon wrote:
> On Tue, Apr 20, 2021 at 11:34:55AM +0530, Sai Prakash Ranjan wrote:
>> Patch 1 adds the sc7280 smmu compatible.
>> Patch 2 moves the adreno smmu check before apss smmu to enable
>> adreno smmu specific implementation.
>>
>> Note that dt-binding for sc7280 is already merged.
>
> This conflicts with what I've already got queued at [1]. Please can you
> send an updated version, as I wasn't sure about the initialisation
> order
> you need here wrt to the ACPI parts.
>
> Thanks,
>
> Will
>
> [1]
> https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git/log/?h=for-joerg/arm-smmu/updates

Sure, have rebased and sent the updated patch [1] after testing for the
order.

Thanks,
Sai

[1]
https://lore.kernel.org/lkml/[email protected]/

--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member
of Code Aurora Forum, hosted by The Linux Foundation

2021-06-09 00:54:05

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCHv3 0/2] iommu/arm-smmu-qcom: Add SC7280 support

On Tue, Apr 20, 2021 at 11:34:55AM +0530, Sai Prakash Ranjan wrote:
> Patch 1 adds the sc7280 smmu compatible.
> Patch 2 moves the adreno smmu check before apss smmu to enable
> adreno smmu specific implementation.
>
> Note that dt-binding for sc7280 is already merged.

This conflicts with what I've already got queued at [1]. Please can you
send an updated version, as I wasn't sure about the initialisation order
you need here wrt to the ACPI parts.

Thanks,

Will

[1] https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git/log/?h=for-joerg/arm-smmu/updates