public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
@ 2024-07-29  8:37 Konrad Dybcio
  2024-07-29 20:14 ` Dmitry Baryshkov
  2024-07-30 16:39 ` Rob Clark
  0 siblings, 2 replies; 12+ messages in thread
From: Konrad Dybcio @ 2024-07-29  8:37 UTC (permalink / raw)
  To: Bjorn Andersson, Rob Clark, Will Deacon, Robin Murphy,
	Joerg Roedel
  Cc: Marijn Suijten, iommu, linux-arm-msm, linux-arm-kernel,
	linux-kernel, Konrad Dybcio, Sumit Semwal

From: Konrad Dybcio <konrad.dybcio@linaro.org>

SDM845's Adreno SMMU is unique in that it actually advertizes support
for 16K (and 32M) pages, which doesn't hold for newer SoCs.

This however, seems either broken in the hardware implementation, the
hypervisor middleware that abstracts the SMMU, or there's a bug in the
Linux kernel somewhere down the line that nobody managed to track down.

Booting SDM845 with 16K page sizes and drm/msm results in:

*** gpu fault: ttbr0=0000000000000000 iova=000100000000c000 dir=READ
type=TRANSLATION source=CP (0,0,0,0)

right after loading the firmware. The GPU then starts spitting out
illegal intstruction errors, as it's quite obvious that it got a
bogus pointer.

Hide 16K support on SDM845's Adreno SMMU to work around this.

Reported-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
There's a mismatch in sender/committer addresses but that's "fine":
https://lore.kernel.org/linux-usb/2024072734-scenic-unwilling-71ea@gregkh/
---
 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
index 36c6b36ad4ff..d25825c05817 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
@@ -338,6 +338,15 @@ static int qcom_smmu_cfg_probe(struct arm_smmu_device *smmu)
 	return 0;
 }
 
+static int qcom_adreno_smmuv2_cfg_probe(struct arm_smmu_device *smmu)
+{
+	/* SDM845 Adreno SMMU advertizes 16K pages support, but something is broken */
+	if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-v2"))
+		smmu->features &= ~ARM_SMMU_FEAT_FMT_AARCH64_16K;
+
+	return 0;
+}
+
 static void qcom_smmu_write_s2cr(struct arm_smmu_device *smmu, int idx)
 {
 	struct arm_smmu_s2cr *s2cr = smmu->s2crs + idx;
@@ -436,6 +445,7 @@ static const struct arm_smmu_impl sdm845_smmu_500_impl = {
 
 static const struct arm_smmu_impl qcom_adreno_smmu_v2_impl = {
 	.init_context = qcom_adreno_smmu_init_context,
+	.cfg_probe = qcom_adreno_smmuv2_cfg_probe,
 	.def_domain_type = qcom_smmu_def_domain_type,
 	.alloc_context_bank = qcom_adreno_smmu_alloc_context_bank,
 	.write_sctlr = qcom_adreno_smmu_write_sctlr,

---
base-commit: 931a3b3bccc96e7708c82b30b2b5fa82dfd04890
change-id: 20240726-topic-845_gpu_smmu-ab738f7a013c

Best regards,
-- 
Konrad Dybcio <konradybcio@kernel.org>



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-29  8:37 [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages Konrad Dybcio
@ 2024-07-29 20:14 ` Dmitry Baryshkov
  2024-07-29 21:07   ` Rob Clark
  2024-07-30 16:39 ` Rob Clark
  1 sibling, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2024-07-29 20:14 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Bjorn Andersson, Rob Clark, Will Deacon, Robin Murphy,
	Joerg Roedel, Marijn Suijten, iommu, linux-arm-msm,
	linux-arm-kernel, linux-kernel, Konrad Dybcio, Sumit Semwal

On Mon, Jul 29, 2024 at 10:37:48AM GMT, Konrad Dybcio wrote:
> From: Konrad Dybcio <konrad.dybcio@linaro.org>
> 
> SDM845's Adreno SMMU is unique in that it actually advertizes support
> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> 
> This however, seems either broken in the hardware implementation, the
> hypervisor middleware that abstracts the SMMU, or there's a bug in the
> Linux kernel somewhere down the line that nobody managed to track down.
> 
> Booting SDM845 with 16K page sizes and drm/msm results in:
> 
> *** gpu fault: ttbr0=0000000000000000 iova=000100000000c000 dir=READ
> type=TRANSLATION source=CP (0,0,0,0)
> 
> right after loading the firmware. The GPU then starts spitting out
> illegal intstruction errors, as it's quite obvious that it got a
> bogus pointer.
> 
> Hide 16K support on SDM845's Adreno SMMU to work around this.
> 
> Reported-by: Sumit Semwal <sumit.semwal@linaro.org>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
> There's a mismatch in sender/committer addresses but that's "fine":
> https://lore.kernel.org/linux-usb/2024072734-scenic-unwilling-71ea@gregkh/
> ---
>  drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> index 36c6b36ad4ff..d25825c05817 100644
> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> @@ -338,6 +338,15 @@ static int qcom_smmu_cfg_probe(struct arm_smmu_device *smmu)
>  	return 0;
>  }
>  
> +static int qcom_adreno_smmuv2_cfg_probe(struct arm_smmu_device *smmu)
> +{
> +	/* SDM845 Adreno SMMU advertizes 16K pages support, but something is broken */
> +	if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-v2"))
> +		smmu->features &= ~ARM_SMMU_FEAT_FMT_AARCH64_16K;

Shouldn't we hide that uncoditionally as it's likely that none of v2
Adreno SMMUs support 16k pages?

> +
> +	return 0;
> +}
> +
>  static void qcom_smmu_write_s2cr(struct arm_smmu_device *smmu, int idx)
>  {
>  	struct arm_smmu_s2cr *s2cr = smmu->s2crs + idx;
> @@ -436,6 +445,7 @@ static const struct arm_smmu_impl sdm845_smmu_500_impl = {
>  
>  static const struct arm_smmu_impl qcom_adreno_smmu_v2_impl = {
>  	.init_context = qcom_adreno_smmu_init_context,
> +	.cfg_probe = qcom_adreno_smmuv2_cfg_probe,
>  	.def_domain_type = qcom_smmu_def_domain_type,
>  	.alloc_context_bank = qcom_adreno_smmu_alloc_context_bank,
>  	.write_sctlr = qcom_adreno_smmu_write_sctlr,
> 
> ---
> base-commit: 931a3b3bccc96e7708c82b30b2b5fa82dfd04890
> change-id: 20240726-topic-845_gpu_smmu-ab738f7a013c
> 
> Best regards,
> -- 
> Konrad Dybcio <konradybcio@kernel.org>
> 

-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-29 20:14 ` Dmitry Baryshkov
@ 2024-07-29 21:07   ` Rob Clark
  2024-07-29 21:21     ` Dmitry Baryshkov
  0 siblings, 1 reply; 12+ messages in thread
From: Rob Clark @ 2024-07-29 21:07 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Konrad Dybcio, Bjorn Andersson, Will Deacon, Robin Murphy,
	Joerg Roedel, Marijn Suijten, iommu, linux-arm-msm,
	linux-arm-kernel, linux-kernel, Konrad Dybcio, Sumit Semwal

On Mon, Jul 29, 2024 at 1:14 PM Dmitry Baryshkov
<dmitry.baryshkov@linaro.org> wrote:
>
> On Mon, Jul 29, 2024 at 10:37:48AM GMT, Konrad Dybcio wrote:
> > From: Konrad Dybcio <konrad.dybcio@linaro.org>
> >
> > SDM845's Adreno SMMU is unique in that it actually advertizes support
> > for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> >
> > This however, seems either broken in the hardware implementation, the
> > hypervisor middleware that abstracts the SMMU, or there's a bug in the
> > Linux kernel somewhere down the line that nobody managed to track down.
> >
> > Booting SDM845 with 16K page sizes and drm/msm results in:
> >
> > *** gpu fault: ttbr0=0000000000000000 iova=000100000000c000 dir=READ
> > type=TRANSLATION source=CP (0,0,0,0)
> >
> > right after loading the firmware. The GPU then starts spitting out
> > illegal intstruction errors, as it's quite obvious that it got a
> > bogus pointer.
> >
> > Hide 16K support on SDM845's Adreno SMMU to work around this.
> >
> > Reported-by: Sumit Semwal <sumit.semwal@linaro.org>
> > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> > ---
> > There's a mismatch in sender/committer addresses but that's "fine":
> > https://lore.kernel.org/linux-usb/2024072734-scenic-unwilling-71ea@gregkh/
> > ---
> >  drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> >
> > diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> > index 36c6b36ad4ff..d25825c05817 100644
> > --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> > +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> > @@ -338,6 +338,15 @@ static int qcom_smmu_cfg_probe(struct arm_smmu_device *smmu)
> >       return 0;
> >  }
> >
> > +static int qcom_adreno_smmuv2_cfg_probe(struct arm_smmu_device *smmu)
> > +{
> > +     /* SDM845 Adreno SMMU advertizes 16K pages support, but something is broken */
> > +     if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-v2"))
> > +             smmu->features &= ~ARM_SMMU_FEAT_FMT_AARCH64_16K;
>
> Shouldn't we hide that uncoditionally as it's likely that none of v2
> Adreno SMMUs support 16k pages?

Hmm, that would be unfortunate to have the GPU not supporting the CPU
page size.  I guess we could still map 16k pages as multiple 4k pages,
but that is a bit sad..

BR,
-R

>
> > +
> > +     return 0;
> > +}
> > +
> >  static void qcom_smmu_write_s2cr(struct arm_smmu_device *smmu, int idx)
> >  {
> >       struct arm_smmu_s2cr *s2cr = smmu->s2crs + idx;
> > @@ -436,6 +445,7 @@ static const struct arm_smmu_impl sdm845_smmu_500_impl = {
> >
> >  static const struct arm_smmu_impl qcom_adreno_smmu_v2_impl = {
> >       .init_context = qcom_adreno_smmu_init_context,
> > +     .cfg_probe = qcom_adreno_smmuv2_cfg_probe,
> >       .def_domain_type = qcom_smmu_def_domain_type,
> >       .alloc_context_bank = qcom_adreno_smmu_alloc_context_bank,
> >       .write_sctlr = qcom_adreno_smmu_write_sctlr,
> >
> > ---
> > base-commit: 931a3b3bccc96e7708c82b30b2b5fa82dfd04890
> > change-id: 20240726-topic-845_gpu_smmu-ab738f7a013c
> >
> > Best regards,
> > --
> > Konrad Dybcio <konradybcio@kernel.org>
> >
>
> --
> With best wishes
> Dmitry


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-29 21:07   ` Rob Clark
@ 2024-07-29 21:21     ` Dmitry Baryshkov
  2024-07-30  8:08       ` Konrad Dybcio
  0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2024-07-29 21:21 UTC (permalink / raw)
  To: Rob Clark
  Cc: Konrad Dybcio, Bjorn Andersson, Will Deacon, Robin Murphy,
	Joerg Roedel, Marijn Suijten, iommu, linux-arm-msm,
	linux-arm-kernel, linux-kernel, Konrad Dybcio, Sumit Semwal

On Tue, 30 Jul 2024 at 00:08, Rob Clark <robdclark@gmail.com> wrote:
>
> On Mon, Jul 29, 2024 at 1:14 PM Dmitry Baryshkov
> <dmitry.baryshkov@linaro.org> wrote:
> >
> > On Mon, Jul 29, 2024 at 10:37:48AM GMT, Konrad Dybcio wrote:
> > > From: Konrad Dybcio <konrad.dybcio@linaro.org>
> > >
> > > SDM845's Adreno SMMU is unique in that it actually advertizes support
> > > for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> > >
> > > This however, seems either broken in the hardware implementation, the
> > > hypervisor middleware that abstracts the SMMU, or there's a bug in the
> > > Linux kernel somewhere down the line that nobody managed to track down.
> > >
> > > Booting SDM845 with 16K page sizes and drm/msm results in:
> > >
> > > *** gpu fault: ttbr0=0000000000000000 iova=000100000000c000 dir=READ
> > > type=TRANSLATION source=CP (0,0,0,0)
> > >
> > > right after loading the firmware. The GPU then starts spitting out
> > > illegal intstruction errors, as it's quite obvious that it got a
> > > bogus pointer.
> > >
> > > Hide 16K support on SDM845's Adreno SMMU to work around this.
> > >
> > > Reported-by: Sumit Semwal <sumit.semwal@linaro.org>
> > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> > > ---
> > > There's a mismatch in sender/committer addresses but that's "fine":
> > > https://lore.kernel.org/linux-usb/2024072734-scenic-unwilling-71ea@gregkh/
> > > ---
> > >  drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 10 ++++++++++
> > >  1 file changed, 10 insertions(+)
> > >
> > > diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> > > index 36c6b36ad4ff..d25825c05817 100644
> > > --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> > > +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> > > @@ -338,6 +338,15 @@ static int qcom_smmu_cfg_probe(struct arm_smmu_device *smmu)
> > >       return 0;
> > >  }
> > >
> > > +static int qcom_adreno_smmuv2_cfg_probe(struct arm_smmu_device *smmu)
> > > +{
> > > +     /* SDM845 Adreno SMMU advertizes 16K pages support, but something is broken */
> > > +     if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-v2"))
> > > +             smmu->features &= ~ARM_SMMU_FEAT_FMT_AARCH64_16K;
> >
> > Shouldn't we hide that uncoditionally as it's likely that none of v2
> > Adreno SMMUs support 16k pages?
>
> Hmm, that would be unfortunate to have the GPU not supporting the CPU
> page size.  I guess we could still map 16k pages as multiple 4k pages,
> but that is a bit sad..

For now this might be limited to older platforms (v2 vs -500)

>
> BR,
> -R
>
> >
> > > +
> > > +     return 0;
> > > +}
> > > +
> > >  static void qcom_smmu_write_s2cr(struct arm_smmu_device *smmu, int idx)
> > >  {
> > >       struct arm_smmu_s2cr *s2cr = smmu->s2crs + idx;
> > > @@ -436,6 +445,7 @@ static const struct arm_smmu_impl sdm845_smmu_500_impl = {
> > >
> > >  static const struct arm_smmu_impl qcom_adreno_smmu_v2_impl = {
> > >       .init_context = qcom_adreno_smmu_init_context,
> > > +     .cfg_probe = qcom_adreno_smmuv2_cfg_probe,
> > >       .def_domain_type = qcom_smmu_def_domain_type,
> > >       .alloc_context_bank = qcom_adreno_smmu_alloc_context_bank,
> > >       .write_sctlr = qcom_adreno_smmu_write_sctlr,
> > >
> > > ---
> > > base-commit: 931a3b3bccc96e7708c82b30b2b5fa82dfd04890
> > > change-id: 20240726-topic-845_gpu_smmu-ab738f7a013c
> > >
> > > Best regards,
> > > --
> > > Konrad Dybcio <konradybcio@kernel.org>
> > >
> >
> > --
> > With best wishes
> > Dmitry



-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-29 21:21     ` Dmitry Baryshkov
@ 2024-07-30  8:08       ` Konrad Dybcio
  2024-07-30  8:50         ` Dmitry Baryshkov
  0 siblings, 1 reply; 12+ messages in thread
From: Konrad Dybcio @ 2024-07-30  8:08 UTC (permalink / raw)
  To: Dmitry Baryshkov, Rob Clark
  Cc: Konrad Dybcio, Bjorn Andersson, Will Deacon, Robin Murphy,
	Joerg Roedel, Marijn Suijten, iommu, linux-arm-msm,
	linux-arm-kernel, linux-kernel, Konrad Dybcio, Sumit Semwal

On 29.07.2024 11:21 PM, Dmitry Baryshkov wrote:
> On Tue, 30 Jul 2024 at 00:08, Rob Clark <robdclark@gmail.com> wrote:
>>
>> On Mon, Jul 29, 2024 at 1:14 PM Dmitry Baryshkov
>> <dmitry.baryshkov@linaro.org> wrote:
>>>
>>> On Mon, Jul 29, 2024 at 10:37:48AM GMT, Konrad Dybcio wrote:
>>>> From: Konrad Dybcio <konrad.dybcio@linaro.org>
>>>>
>>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
>>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
>>>>
>>>> This however, seems either broken in the hardware implementation, the
>>>> hypervisor middleware that abstracts the SMMU, or there's a bug in the
>>>> Linux kernel somewhere down the line that nobody managed to track down.
>>>>
>>>> Booting SDM845 with 16K page sizes and drm/msm results in:
>>>>
>>>> *** gpu fault: ttbr0=0000000000000000 iova=000100000000c000 dir=READ
>>>> type=TRANSLATION source=CP (0,0,0,0)
>>>>
>>>> right after loading the firmware. The GPU then starts spitting out
>>>> illegal intstruction errors, as it's quite obvious that it got a
>>>> bogus pointer.
>>>>
>>>> Hide 16K support on SDM845's Adreno SMMU to work around this.
>>>>
>>>> Reported-by: Sumit Semwal <sumit.semwal@linaro.org>
>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>>>> ---
>>>> There's a mismatch in sender/committer addresses but that's "fine":
>>>> https://lore.kernel.org/linux-usb/2024072734-scenic-unwilling-71ea@gregkh/
>>>> ---
>>>>  drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 10 ++++++++++
>>>>  1 file changed, 10 insertions(+)
>>>>
>>>> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>>>> index 36c6b36ad4ff..d25825c05817 100644
>>>> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>>>> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>>>> @@ -338,6 +338,15 @@ static int qcom_smmu_cfg_probe(struct arm_smmu_device *smmu)
>>>>       return 0;
>>>>  }
>>>>
>>>> +static int qcom_adreno_smmuv2_cfg_probe(struct arm_smmu_device *smmu)
>>>> +{
>>>> +     /* SDM845 Adreno SMMU advertizes 16K pages support, but something is broken */
>>>> +     if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-v2"))
>>>> +             smmu->features &= ~ARM_SMMU_FEAT_FMT_AARCH64_16K;
>>>
>>> Shouldn't we hide that uncoditionally as it's likely that none of v2
>>> Adreno SMMUs support 16k pages?
>>
>> Hmm, that would be unfortunate to have the GPU not supporting the CPU
>> page size.  I guess we could still map 16k pages as multiple 4k pages,
>> but that is a bit sad..
> 
> For now this might be limited to older platforms (v2 vs -500)

In the commit message:

>>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
>>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.

Konrad


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-30  8:08       ` Konrad Dybcio
@ 2024-07-30  8:50         ` Dmitry Baryshkov
  2024-07-30 10:12           ` Konrad Dybcio
  2024-07-30 17:16           ` Trilok Soni
  0 siblings, 2 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2024-07-30  8:50 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Rob Clark, Konrad Dybcio, Bjorn Andersson, Will Deacon,
	Robin Murphy, Joerg Roedel, Marijn Suijten, iommu, linux-arm-msm,
	linux-arm-kernel, linux-kernel, Konrad Dybcio, Sumit Semwal

On Tue, 30 Jul 2024 at 11:08, Konrad Dybcio <konradybcio@gmail.com> wrote:
>
> On 29.07.2024 11:21 PM, Dmitry Baryshkov wrote:
> > On Tue, 30 Jul 2024 at 00:08, Rob Clark <robdclark@gmail.com> wrote:
> >>
> >> On Mon, Jul 29, 2024 at 1:14 PM Dmitry Baryshkov
> >> <dmitry.baryshkov@linaro.org> wrote:
> >>>
> >>> On Mon, Jul 29, 2024 at 10:37:48AM GMT, Konrad Dybcio wrote:
> >>>> From: Konrad Dybcio <konrad.dybcio@linaro.org>
> >>>>
> >>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
> >>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> >>>>
> >>>> This however, seems either broken in the hardware implementation, the
> >>>> hypervisor middleware that abstracts the SMMU, or there's a bug in the
> >>>> Linux kernel somewhere down the line that nobody managed to track down.
> >>>>
> >>>> Booting SDM845 with 16K page sizes and drm/msm results in:
> >>>>
> >>>> *** gpu fault: ttbr0=0000000000000000 iova=000100000000c000 dir=READ
> >>>> type=TRANSLATION source=CP (0,0,0,0)
> >>>>
> >>>> right after loading the firmware. The GPU then starts spitting out
> >>>> illegal intstruction errors, as it's quite obvious that it got a
> >>>> bogus pointer.
> >>>>
> >>>> Hide 16K support on SDM845's Adreno SMMU to work around this.
> >>>>
> >>>> Reported-by: Sumit Semwal <sumit.semwal@linaro.org>
> >>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> >>>> ---
> >>>> There's a mismatch in sender/committer addresses but that's "fine":
> >>>> https://lore.kernel.org/linux-usb/2024072734-scenic-unwilling-71ea@gregkh/
> >>>> ---
> >>>>  drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 10 ++++++++++
> >>>>  1 file changed, 10 insertions(+)
> >>>>
> >>>> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> >>>> index 36c6b36ad4ff..d25825c05817 100644
> >>>> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> >>>> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> >>>> @@ -338,6 +338,15 @@ static int qcom_smmu_cfg_probe(struct arm_smmu_device *smmu)
> >>>>       return 0;
> >>>>  }
> >>>>
> >>>> +static int qcom_adreno_smmuv2_cfg_probe(struct arm_smmu_device *smmu)
> >>>> +{
> >>>> +     /* SDM845 Adreno SMMU advertizes 16K pages support, but something is broken */
> >>>> +     if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-v2"))
> >>>> +             smmu->features &= ~ARM_SMMU_FEAT_FMT_AARCH64_16K;
> >>>
> >>> Shouldn't we hide that uncoditionally as it's likely that none of v2
> >>> Adreno SMMUs support 16k pages?
> >>
> >> Hmm, that would be unfortunate to have the GPU not supporting the CPU
> >> page size.  I guess we could still map 16k pages as multiple 4k pages,
> >> but that is a bit sad..
> >
> > For now this might be limited to older platforms (v2 vs -500)
>
> In the commit message:
>
> >>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
> >>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.

My question is about forbidding 16k pages for sdm845 only or for other
chips too. I'd assume that it shouldn't also work for other smmu-v2
platforms.

-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-30  8:50         ` Dmitry Baryshkov
@ 2024-07-30 10:12           ` Konrad Dybcio
  2024-07-30 15:57             ` Rob Clark
  2024-07-30 17:16           ` Trilok Soni
  1 sibling, 1 reply; 12+ messages in thread
From: Konrad Dybcio @ 2024-07-30 10:12 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Rob Clark, Konrad Dybcio, Bjorn Andersson, Will Deacon,
	Robin Murphy, Joerg Roedel, Marijn Suijten, iommu, linux-arm-msm,
	linux-arm-kernel, linux-kernel, Konrad Dybcio, Sumit Semwal

On 30.07.2024 10:50 AM, Dmitry Baryshkov wrote:
> On Tue, 30 Jul 2024 at 11:08, Konrad Dybcio <konradybcio@gmail.com> wrote:
>>
>> On 29.07.2024 11:21 PM, Dmitry Baryshkov wrote:
>>> On Tue, 30 Jul 2024 at 00:08, Rob Clark <robdclark@gmail.com> wrote:
>>>>
>>>> On Mon, Jul 29, 2024 at 1:14 PM Dmitry Baryshkov
>>>> <dmitry.baryshkov@linaro.org> wrote:
>>>>>
>>>>> On Mon, Jul 29, 2024 at 10:37:48AM GMT, Konrad Dybcio wrote:
>>>>>> From: Konrad Dybcio <konrad.dybcio@linaro.org>
>>>>>>
>>>>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
>>>>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
>>>>>>
>>>>>> This however, seems either broken in the hardware implementation, the
>>>>>> hypervisor middleware that abstracts the SMMU, or there's a bug in the
>>>>>> Linux kernel somewhere down the line that nobody managed to track down.
>>>>>>
>>>>>> Booting SDM845 with 16K page sizes and drm/msm results in:
>>>>>>
>>>>>> *** gpu fault: ttbr0=0000000000000000 iova=000100000000c000 dir=READ
>>>>>> type=TRANSLATION source=CP (0,0,0,0)
>>>>>>
>>>>>> right after loading the firmware. The GPU then starts spitting out
>>>>>> illegal intstruction errors, as it's quite obvious that it got a
>>>>>> bogus pointer.
>>>>>>
>>>>>> Hide 16K support on SDM845's Adreno SMMU to work around this.
>>>>>>
>>>>>> Reported-by: Sumit Semwal <sumit.semwal@linaro.org>
>>>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>>>>>> ---
>>>>>> There's a mismatch in sender/committer addresses but that's "fine":
>>>>>> https://lore.kernel.org/linux-usb/2024072734-scenic-unwilling-71ea@gregkh/
>>>>>> ---
>>>>>>  drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 10 ++++++++++
>>>>>>  1 file changed, 10 insertions(+)
>>>>>>
>>>>>> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>>>>>> index 36c6b36ad4ff..d25825c05817 100644
>>>>>> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>>>>>> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
>>>>>> @@ -338,6 +338,15 @@ static int qcom_smmu_cfg_probe(struct arm_smmu_device *smmu)
>>>>>>       return 0;
>>>>>>  }
>>>>>>
>>>>>> +static int qcom_adreno_smmuv2_cfg_probe(struct arm_smmu_device *smmu)
>>>>>> +{
>>>>>> +     /* SDM845 Adreno SMMU advertizes 16K pages support, but something is broken */
>>>>>> +     if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-v2"))
>>>>>> +             smmu->features &= ~ARM_SMMU_FEAT_FMT_AARCH64_16K;
>>>>>
>>>>> Shouldn't we hide that uncoditionally as it's likely that none of v2
>>>>> Adreno SMMUs support 16k pages?
>>>>
>>>> Hmm, that would be unfortunate to have the GPU not supporting the CPU
>>>> page size.  I guess we could still map 16k pages as multiple 4k pages,
>>>> but that is a bit sad..
>>>
>>> For now this might be limited to older platforms (v2 vs -500)
>>
>> In the commit message:
>>
>>>>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
>>>>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> 
> My question is about forbidding 16k pages for sdm845 only or for other
> chips too. I'd assume that it shouldn't also work for other smmu-v2
> platforms.

I'd say we shouldn't cause trouble unless we know it's an issue

Konrad


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-30 10:12           ` Konrad Dybcio
@ 2024-07-30 15:57             ` Rob Clark
  0 siblings, 0 replies; 12+ messages in thread
From: Rob Clark @ 2024-07-30 15:57 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Dmitry Baryshkov, Bjorn Andersson, Will Deacon, Robin Murphy,
	Joerg Roedel, Marijn Suijten, iommu, linux-arm-msm,
	linux-arm-kernel, linux-kernel, Konrad Dybcio, Sumit Semwal

On Tue, Jul 30, 2024 at 3:12 AM Konrad Dybcio <konradybcio@kernel.org> wrote:
>
> On 30.07.2024 10:50 AM, Dmitry Baryshkov wrote:
> > On Tue, 30 Jul 2024 at 11:08, Konrad Dybcio <konradybcio@gmail.com> wrote:
> >>
> >> On 29.07.2024 11:21 PM, Dmitry Baryshkov wrote:
> >>> On Tue, 30 Jul 2024 at 00:08, Rob Clark <robdclark@gmail.com> wrote:
> >>>>
> >>>> On Mon, Jul 29, 2024 at 1:14 PM Dmitry Baryshkov
> >>>> <dmitry.baryshkov@linaro.org> wrote:
> >>>>>
> >>>>> On Mon, Jul 29, 2024 at 10:37:48AM GMT, Konrad Dybcio wrote:
> >>>>>> From: Konrad Dybcio <konrad.dybcio@linaro.org>
> >>>>>>
> >>>>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
> >>>>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> >>>>>>
> >>>>>> This however, seems either broken in the hardware implementation, the
> >>>>>> hypervisor middleware that abstracts the SMMU, or there's a bug in the
> >>>>>> Linux kernel somewhere down the line that nobody managed to track down.
> >>>>>>
> >>>>>> Booting SDM845 with 16K page sizes and drm/msm results in:
> >>>>>>
> >>>>>> *** gpu fault: ttbr0=0000000000000000 iova=000100000000c000 dir=READ
> >>>>>> type=TRANSLATION source=CP (0,0,0,0)
> >>>>>>
> >>>>>> right after loading the firmware. The GPU then starts spitting out
> >>>>>> illegal intstruction errors, as it's quite obvious that it got a
> >>>>>> bogus pointer.
> >>>>>>
> >>>>>> Hide 16K support on SDM845's Adreno SMMU to work around this.
> >>>>>>
> >>>>>> Reported-by: Sumit Semwal <sumit.semwal@linaro.org>
> >>>>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> >>>>>> ---
> >>>>>> There's a mismatch in sender/committer addresses but that's "fine":
> >>>>>> https://lore.kernel.org/linux-usb/2024072734-scenic-unwilling-71ea@gregkh/
> >>>>>> ---
> >>>>>>  drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 10 ++++++++++
> >>>>>>  1 file changed, 10 insertions(+)
> >>>>>>
> >>>>>> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> >>>>>> index 36c6b36ad4ff..d25825c05817 100644
> >>>>>> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> >>>>>> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> >>>>>> @@ -338,6 +338,15 @@ static int qcom_smmu_cfg_probe(struct arm_smmu_device *smmu)
> >>>>>>       return 0;
> >>>>>>  }
> >>>>>>
> >>>>>> +static int qcom_adreno_smmuv2_cfg_probe(struct arm_smmu_device *smmu)
> >>>>>> +{
> >>>>>> +     /* SDM845 Adreno SMMU advertizes 16K pages support, but something is broken */
> >>>>>> +     if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-v2"))
> >>>>>> +             smmu->features &= ~ARM_SMMU_FEAT_FMT_AARCH64_16K;
> >>>>>
> >>>>> Shouldn't we hide that uncoditionally as it's likely that none of v2
> >>>>> Adreno SMMUs support 16k pages?
> >>>>
> >>>> Hmm, that would be unfortunate to have the GPU not supporting the CPU
> >>>> page size.  I guess we could still map 16k pages as multiple 4k pages,
> >>>> but that is a bit sad..
> >>>
> >>> For now this might be limited to older platforms (v2 vs -500)
> >>
> >> In the commit message:
> >>
> >>>>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
> >>>>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> >
> > My question is about forbidding 16k pages for sdm845 only or for other
> > chips too. I'd assume that it shouldn't also work for other smmu-v2
> > platforms.
>
> I'd say we shouldn't cause trouble unless we know it's an issue

I guess the other direction (gpu only supporting _larger_ pgsize as
cpu) would be more problematic

What is the next larger pg size above 4k which is supported by both gpu and cpu?

BR,
-R


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-29  8:37 [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages Konrad Dybcio
  2024-07-29 20:14 ` Dmitry Baryshkov
@ 2024-07-30 16:39 ` Rob Clark
  1 sibling, 0 replies; 12+ messages in thread
From: Rob Clark @ 2024-07-30 16:39 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Bjorn Andersson, Will Deacon, Robin Murphy, Joerg Roedel,
	Marijn Suijten, iommu, linux-arm-msm, linux-arm-kernel,
	linux-kernel, Konrad Dybcio, Sumit Semwal

On Mon, Jul 29, 2024 at 1:37 AM Konrad Dybcio <konradybcio@kernel.org> wrote:
>
> From: Konrad Dybcio <konrad.dybcio@linaro.org>
>
> SDM845's Adreno SMMU is unique in that it actually advertizes support
> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
>
> This however, seems either broken in the hardware implementation, the
> hypervisor middleware that abstracts the SMMU, or there's a bug in the
> Linux kernel somewhere down the line that nobody managed to track down.
>
> Booting SDM845 with 16K page sizes and drm/msm results in:
>
> *** gpu fault: ttbr0=0000000000000000 iova=000100000000c000 dir=READ
> type=TRANSLATION source=CP (0,0,0,0)
>
> right after loading the firmware. The GPU then starts spitting out
> illegal intstruction errors, as it's quite obvious that it got a
> bogus pointer.
>
> Hide 16K support on SDM845's Adreno SMMU to work around this.
>
> Reported-by: Sumit Semwal <sumit.semwal@linaro.org>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
> There's a mismatch in sender/committer addresses but that's "fine":
> https://lore.kernel.org/linux-usb/2024072734-scenic-unwilling-71ea@gregkh/
> ---
>  drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> index 36c6b36ad4ff..d25825c05817 100644
> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
> @@ -338,6 +338,15 @@ static int qcom_smmu_cfg_probe(struct arm_smmu_device *smmu)
>         return 0;
>  }
>
> +static int qcom_adreno_smmuv2_cfg_probe(struct arm_smmu_device *smmu)
> +{
> +       /* SDM845 Adreno SMMU advertizes 16K pages support, but something is broken */
> +       if (of_device_is_compatible(smmu->dev->of_node, "qcom,sdm845-smmu-v2"))
> +               smmu->features &= ~ARM_SMMU_FEAT_FMT_AARCH64_16K;

jfwiw, it looks like we need this for sc7180 as well.. probably just
remove the "if" and mask out 16K for all smmu-v2, until we know that
there is somewhere that it _does_ work?

BR,
-R


> +
> +       return 0;
> +}
> +
>  static void qcom_smmu_write_s2cr(struct arm_smmu_device *smmu, int idx)
>  {
>         struct arm_smmu_s2cr *s2cr = smmu->s2crs + idx;
> @@ -436,6 +445,7 @@ static const struct arm_smmu_impl sdm845_smmu_500_impl = {
>
>  static const struct arm_smmu_impl qcom_adreno_smmu_v2_impl = {
>         .init_context = qcom_adreno_smmu_init_context,
> +       .cfg_probe = qcom_adreno_smmuv2_cfg_probe,
>         .def_domain_type = qcom_smmu_def_domain_type,
>         .alloc_context_bank = qcom_adreno_smmu_alloc_context_bank,
>         .write_sctlr = qcom_adreno_smmu_write_sctlr,
>
> ---
> base-commit: 931a3b3bccc96e7708c82b30b2b5fa82dfd04890
> change-id: 20240726-topic-845_gpu_smmu-ab738f7a013c
>
> Best regards,
> --
> Konrad Dybcio <konradybcio@kernel.org>
>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-30  8:50         ` Dmitry Baryshkov
  2024-07-30 10:12           ` Konrad Dybcio
@ 2024-07-30 17:16           ` Trilok Soni
  2024-08-23 15:21             ` Will Deacon
  1 sibling, 1 reply; 12+ messages in thread
From: Trilok Soni @ 2024-07-30 17:16 UTC (permalink / raw)
  To: Dmitry Baryshkov, Konrad Dybcio
  Cc: Rob Clark, Konrad Dybcio, Bjorn Andersson, Will Deacon,
	Robin Murphy, Joerg Roedel, Marijn Suijten, iommu, linux-arm-msm,
	linux-arm-kernel, linux-kernel, Konrad Dybcio, Sumit Semwal

On 7/30/2024 1:50 AM, Dmitry Baryshkov wrote:
>>>>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
>>>>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> My question is about forbidding 16k pages for sdm845 only or for other
> chips too. I'd assume that it shouldn't also work for other smmu-v2
> platforms.

Yes, my understanding was that SMMUv2 based IPs doesn't have 16k support
and it is only starting from SMMUv3. 


-- 
---Trilok Soni



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-07-30 17:16           ` Trilok Soni
@ 2024-08-23 15:21             ` Will Deacon
  2024-08-23 17:15               ` Rob Clark
  0 siblings, 1 reply; 12+ messages in thread
From: Will Deacon @ 2024-08-23 15:21 UTC (permalink / raw)
  To: Trilok Soni
  Cc: Dmitry Baryshkov, Konrad Dybcio, Rob Clark, Konrad Dybcio,
	Bjorn Andersson, Robin Murphy, Joerg Roedel, Marijn Suijten,
	iommu, linux-arm-msm, linux-arm-kernel, linux-kernel,
	Konrad Dybcio, Sumit Semwal

On Tue, Jul 30, 2024 at 10:16:00AM -0700, Trilok Soni wrote:
> On 7/30/2024 1:50 AM, Dmitry Baryshkov wrote:
> >>>>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
> >>>>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> > My question is about forbidding 16k pages for sdm845 only or for other
> > chips too. I'd assume that it shouldn't also work for other smmu-v2
> > platforms.
> 
> Yes, my understanding was that SMMUv2 based IPs doesn't have 16k support
> and it is only starting from SMMUv3. 

I'm not sure about that. The architecture doc for SMMUv2 talks about the
AArch64 translation regime in section 1.5 and bit 13 of SMMU_IDR2 says:

  | PTFSv8_16kB, bit[13]
  | Support for 16KB translation granule size. The possible values of this bit are:
  | 0	The 16KB translation granule is not supported.
  | 1	The 16KB translation granule is supported.
  | In SMMUv1, this bit is reserved.

so I think Konrad's patch is about right, but if you want to extend it
to cover other implementations then that's fine too.

Will


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
  2024-08-23 15:21             ` Will Deacon
@ 2024-08-23 17:15               ` Rob Clark
  0 siblings, 0 replies; 12+ messages in thread
From: Rob Clark @ 2024-08-23 17:15 UTC (permalink / raw)
  To: Will Deacon
  Cc: Trilok Soni, Dmitry Baryshkov, Konrad Dybcio, Konrad Dybcio,
	Bjorn Andersson, Robin Murphy, Joerg Roedel, Marijn Suijten,
	iommu, linux-arm-msm, linux-arm-kernel, linux-kernel,
	Konrad Dybcio, Sumit Semwal

On Fri, Aug 23, 2024 at 8:21 AM Will Deacon <will@kernel.org> wrote:
>
> On Tue, Jul 30, 2024 at 10:16:00AM -0700, Trilok Soni wrote:
> > On 7/30/2024 1:50 AM, Dmitry Baryshkov wrote:
> > >>>>>> SDM845's Adreno SMMU is unique in that it actually advertizes support
> > >>>>>> for 16K (and 32M) pages, which doesn't hold for newer SoCs.
> > > My question is about forbidding 16k pages for sdm845 only or for other
> > > chips too. I'd assume that it shouldn't also work for other smmu-v2
> > > platforms.
> >
> > Yes, my understanding was that SMMUv2 based IPs doesn't have 16k support
> > and it is only starting from SMMUv3.
>
> I'm not sure about that. The architecture doc for SMMUv2 talks about the
> AArch64 translation regime in section 1.5 and bit 13 of SMMU_IDR2 says:
>
>   | PTFSv8_16kB, bit[13]
>   | Support for 16KB translation granule size. The possible values of this bit are:
>   | 0   The 16KB translation granule is not supported.
>   | 1   The 16KB translation granule is supported.
>   | In SMMUv1, this bit is reserved.
>
> so I think Konrad's patch is about right, but if you want to extend it
> to cover other implementations then that's fine too.
>

Perhaps that should have been "qcom's SMMUv2 based IPs doesn't have
16k support"?

At any rate, 16k sizes don't appear to work on sc7180 as well.  I
don't really have any other data points but it wouldn't really
surprise me if this applied to all qc smmu-v2

BR,
-R


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-08-23 17:16 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-29  8:37 [PATCH] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages Konrad Dybcio
2024-07-29 20:14 ` Dmitry Baryshkov
2024-07-29 21:07   ` Rob Clark
2024-07-29 21:21     ` Dmitry Baryshkov
2024-07-30  8:08       ` Konrad Dybcio
2024-07-30  8:50         ` Dmitry Baryshkov
2024-07-30 10:12           ` Konrad Dybcio
2024-07-30 15:57             ` Rob Clark
2024-07-30 17:16           ` Trilok Soni
2024-08-23 15:21             ` Will Deacon
2024-08-23 17:15               ` Rob Clark
2024-07-30 16:39 ` Rob Clark

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox