* [PATCH 0/2] iommu/arm-smmu-qcom: Add SC7280 support @ 2021-02-25 10:24 Sai Prakash Ranjan 2021-02-25 10:24 ` [PATCH 1/2] iommu/arm-smmu-qcom: Add SC7280 SMMU compatible Sai Prakash Ranjan 2021-02-25 10:24 ` [PATCH 2/2] iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier Sai Prakash Ranjan 0 siblings, 2 replies; 5+ messages in thread From: Sai Prakash Ranjan @ 2021-02-25 10:24 UTC (permalink / raw) To: Will Deacon, Robin Murphy, Joerg Roedel, Jordan Crouse, Rob Clark, Akhil P Oommen, Bjorn Andersson Cc: iommu, linux-arm-kernel, linux-kernel, linux-arm-msm, Sai Prakash Ranjan Patch 1 adds the sc7280 smmu compatible. Patch 2 moves the adreno smmu check before apss smmu to enable adreno smmu specific implementation. 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 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) base-commit: 7060377ce06f9cd3ed6274c0f2310463feb5baec -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] iommu/arm-smmu-qcom: Add SC7280 SMMU compatible 2021-02-25 10:24 [PATCH 0/2] iommu/arm-smmu-qcom: Add SC7280 support Sai Prakash Ranjan @ 2021-02-25 10:24 ` Sai Prakash Ranjan 2021-02-25 10:24 ` [PATCH 2/2] iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier Sai Prakash Ranjan 1 sibling, 0 replies; 5+ messages in thread From: Sai Prakash Ranjan @ 2021-02-25 10:24 UTC (permalink / raw) To: Will Deacon, Robin Murphy, Joerg Roedel, Jordan Crouse, Rob Clark, Akhil P Oommen, Bjorn Andersson Cc: iommu, linux-arm-kernel, linux-kernel, linux-arm-msm, Sai Prakash Ranjan Add compatible for SC7280 SMMU to use the Qualcomm Technologies, Inc. specific implementation. Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> --- 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 98b3a1c2a181..bea3ee0dabc2 100644 --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c @@ -166,6 +166,7 @@ static const struct of_device_id qcom_smmu_client_of_match[] __maybe_unused = { { .compatible = "qcom,mdss" }, { .compatible = "qcom,sc7180-mdss" }, { .compatible = "qcom,sc7180-mss-pil" }, + { .compatible = "qcom,sc7280-mdss" }, { .compatible = "qcom,sc8180x-mdss" }, { .compatible = "qcom,sdm845-mdss" }, { .compatible = "qcom,sdm845-mss-pil" }, @@ -330,6 +331,7 @@ static struct arm_smmu_device *qcom_smmu_create(struct arm_smmu_device *smmu, static const struct of_device_id __maybe_unused qcom_smmu_impl_of_match[] = { { .compatible = "qcom,msm8998-smmu-v2" }, { .compatible = "qcom,sc7180-smmu-500" }, + { .compatible = "qcom,sc7280-smmu-500" }, { .compatible = "qcom,sc8180x-smmu-500" }, { .compatible = "qcom,sdm630-smmu-v2" }, { .compatible = "qcom,sdm845-smmu-500" }, -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier 2021-02-25 10:24 [PATCH 0/2] iommu/arm-smmu-qcom: Add SC7280 support Sai Prakash Ranjan 2021-02-25 10:24 ` [PATCH 1/2] iommu/arm-smmu-qcom: Add SC7280 SMMU compatible Sai Prakash Ranjan @ 2021-02-25 10:24 ` Sai Prakash Ranjan 2021-02-25 18:06 ` Jordan Crouse 1 sibling, 1 reply; 5+ messages in thread From: Sai Prakash Ranjan @ 2021-02-25 10:24 UTC (permalink / raw) To: Will Deacon, Robin Murphy, Joerg Roedel, Jordan Crouse, Rob Clark, Akhil P Oommen, Bjorn Andersson Cc: iommu, linux-arm-kernel, linux-kernel, linux-arm-msm, Sai Prakash Ranjan 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 <akhilpo@codeaurora.org> Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> --- Its either this or we add a new compatible for adreno smmu implementing arm,mmu-500 like "qcom,sc7280-adreno-smmu-500". --- drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 6 +++--- 1 file changed, 3 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..7d0fc2c8e72f 100644 --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c @@ -345,11 +345,11 @@ 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); - 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 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier 2021-02-25 10:24 ` [PATCH 2/2] iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier Sai Prakash Ranjan @ 2021-02-25 18:06 ` Jordan Crouse 2021-02-26 8:06 ` Sai Prakash Ranjan 0 siblings, 1 reply; 5+ messages in thread From: Jordan Crouse @ 2021-02-25 18:06 UTC (permalink / raw) To: Sai Prakash Ranjan Cc: Will Deacon, Robin Murphy, Joerg Roedel, Rob Clark, Akhil P Oommen, Bjorn Andersson, linux-arm-msm, iommu, linux-kernel, linux-arm-kernel On Thu, Feb 25, 2021 at 03:54:10PM +0530, Sai Prakash Ranjan wrote: > 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 <akhilpo@codeaurora.org> > Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> > --- > > Its either this or we add a new compatible for adreno smmu implementing > arm,mmu-500 like "qcom,sc7280-adreno-smmu-500". > > --- > drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 6 +++--- > 1 file changed, 3 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..7d0fc2c8e72f 100644 > --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c > +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c > @@ -345,11 +345,11 @@ 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); > - > 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); > + It would be good to add a comment here explaining the order here so we don't accidentally reorganize ourselves back into a problem later. Jordan > return smmu; > } > -- > QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member > of Code Aurora Forum, hosted by The Linux Foundation > > _______________________________________________ > iommu mailing list > iommu@lists.linux-foundation.org > https://lists.linuxfoundation.org/mailman/listinfo/iommu ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier 2021-02-25 18:06 ` Jordan Crouse @ 2021-02-26 8:06 ` Sai Prakash Ranjan 0 siblings, 0 replies; 5+ messages in thread From: Sai Prakash Ranjan @ 2021-02-26 8:06 UTC (permalink / raw) To: Jordan Crouse, Jordan Crouse Cc: Will Deacon, Robin Murphy, Joerg Roedel, Rob Clark, Akhil P Oommen, Bjorn Andersson, linux-arm-msm, iommu, linux-kernel, linux-arm-kernel On 2021-02-25 23:36, Jordan Crouse wrote: > On Thu, Feb 25, 2021 at 03:54:10PM +0530, Sai Prakash Ranjan wrote: >> 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 <akhilpo@codeaurora.org> >> Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> >> --- >> >> Its either this or we add a new compatible for adreno smmu >> implementing >> arm,mmu-500 like "qcom,sc7280-adreno-smmu-500". >> >> --- >> drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 6 +++--- >> 1 file changed, 3 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..7d0fc2c8e72f 100644 >> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c >> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c >> @@ -345,11 +345,11 @@ 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); >> - >> 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); >> + > > It would be good to add a comment here explaining the order here so we > don't accidentally reorganize ourselves back into a problem later. > Sure its better, will add it. Thanks, Sai -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-02-26 8:07 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-02-25 10:24 [PATCH 0/2] iommu/arm-smmu-qcom: Add SC7280 support Sai Prakash Ranjan 2021-02-25 10:24 ` [PATCH 1/2] iommu/arm-smmu-qcom: Add SC7280 SMMU compatible Sai Prakash Ranjan 2021-02-25 10:24 ` [PATCH 2/2] iommu/arm-smmu-qcom: Move the adreno smmu specific impl earlier Sai Prakash Ranjan 2021-02-25 18:06 ` Jordan Crouse 2021-02-26 8:06 ` Sai Prakash Ranjan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).