[Freedreno] [PATCH v11 3/5] drm/msm/dp: add support for DP PLL driver

2020-08-17 Thread Tanmay Shah
From: Chandan Uddaraju Add the needed DP PLL specific files to support display port interface on msm targets. The DP driver calls the DP PLL driver registration. The DP driver sets the link and pixel clock sources. Changes in v2: -- Update copyright markings on all relevant files. -- Use DRM_DE

[Freedreno] [PATCH v11 5/5] drm/msm/dp: Add Display Port HPD feature

2020-08-17 Thread Tanmay Shah
Configure HPD registers in DP controller and enable HPD interrupt. Add interrupt to handle HPD connect and disconnect events. Changes in v8: None Signed-off-by: Tanmay Shah --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 18 drivers/gpu/drm/msm/dp/dp_catalog.c | 63 -- dri

[Freedreno] [PATCH v11 4/5] drm/msm/dpu: add display port support in DPU

2020-08-17 Thread Tanmay Shah
From: Jeykumar Sankaran Add display port support in DPU by creating hooks for DP encoder enumeration and encoder mode initialization. changes in v2: - rebase on [2] (Sean Paul) - remove unwanted error checks and switch cases (Jordan Crouse) [1] https://lwn.net/Articles

[Freedreno] [PATCH v11 0/5] Add support for DisplayPort driver on SnapDragon

2020-08-17 Thread Tanmay Shah
These patches add Display-Port driver on SnapDragon/msm hardware. This series also contains device-tree bindings for msm DP driver. It also contains Makefile and Kconfig changes to compile msm DP driver. The block diagram of DP driver is shown below: +-+

[Freedreno] [PATCH v11 1/5] drm: add constant N value in helper file

2020-08-17 Thread Tanmay Shah
From: Chandan Uddaraju The constant N value (0x8000) is used by i915 DP driver. Define this value in dp helper header file to use in multiple Display Port drivers. Change i915 driver accordingly. Change in v6: Change commit message Signed-off-by: Chandan Uddaraju Signed-off-by: Vara Reddy Sig

[Freedreno] [PATCH v3] arm64: dts: qcom: sc7180: Add DisplayPort HPD pin dt node

2020-08-17 Thread Tanmay Shah
This node defines alternate DP HPD functionality of GPIO. Signed-off-by: Tanmay Shah --- arch/arm64/boot/dts/qcom/sc7180.dtsi | 13 + 1 file changed, 13 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi index bf2f2bb1aa79..2e2a06

Re: [Freedreno] [PATCH v6] arm64: dts: qcom: sc7180: Add Display Port dt node

2020-08-17 Thread Tanmay Shah
On 2020-08-17 17:24, Stephen Boyd wrote: Quoting Tanmay Shah (2020-08-17 15:53:00) diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi index 31b9217bb5bf..bf2f2bb1aa79 100644 --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7180.dt

Re: [Freedreno] [PATCH v6] arm64: dts: qcom: sc7180: Add Display Port dt node

2020-08-17 Thread Stephen Boyd
Quoting Tanmay Shah (2020-08-17 15:53:00) > diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi > b/arch/arm64/boot/dts/qcom/sc7180.dtsi > index 31b9217bb5bf..bf2f2bb1aa79 100644 > --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi > +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi > @@ -2440,6 +2447,71 @@ dsi_ph

Re: [Freedreno] [PATCH v2] arm64: dts: qcom: sc7180: Add DisplayPort HPD pin dt node

2020-08-17 Thread Stephen Boyd
Quoting Tanmay Shah (2020-08-17 15:59:12) > This node defines alternate DP HPD functionality of GPIO. > > Signed-off-by: Tanmay Shah > --- > arch/arm64/boot/dts/qcom/sc7180.dtsi | 13 + > 1 file changed, 13 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi > b/arc

[Freedreno] [PATCH v2] arm64: dts: qcom: sc7180: Add DisplayPort HPD pin dt node

2020-08-17 Thread Tanmay Shah
This node defines alternate DP HPD functionality of GPIO. Signed-off-by: Tanmay Shah --- arch/arm64/boot/dts/qcom/sc7180.dtsi | 13 + 1 file changed, 13 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi index bf2f2bb1aa79..0eedf0

[Freedreno] [PATCH v6] arm64: dts: qcom: sc7180: Add Display Port dt node

2020-08-17 Thread Tanmay Shah
Add DP device node on sc7180. Changes in v2: - Add assigned-clocks and assigned-clock-parents - Remove cell-index and pixel_rcg - Change compatible to qcom,sc7180-dp Changes in v3: - Update commit text - Make DP child node of MDSS - Remove data-lanes property from SOC dts - Disable DP node in SO

Re: [Freedreno] [PATCH v1] arm64: dts: qcom: sc7180: Add DisplayPort HPD pin dt node

2020-08-17 Thread Stephen Boyd
Quoting Tanmay Shah (2020-08-17 15:45:27) > This node defines alternate DP HPD functionality of GPIO. > > Signed-off-by: Tanmay Shah > --- > arch/arm64/boot/dts/qcom/sc7180.dtsi | 14 ++ > 1 file changed, 14 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi > b/ar

[Freedreno] [PATCH v1] arm64: dts: qcom: sc7180: Add DisplayPort HPD pin dt node

2020-08-17 Thread Tanmay Shah
This node defines alternate DP HPD functionality of GPIO. Signed-off-by: Tanmay Shah --- arch/arm64/boot/dts/qcom/sc7180.dtsi | 14 ++ 1 file changed, 14 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi index bf2f2bb1aa79..9f97c

[Freedreno] [PATCH 20/20] drm/msm: show process names in gem_describe

2020-08-17 Thread Rob Clark
From: Rob Clark In $debugfs/gem we already show any vma(s) associated with an object. Also show process names if the vma's address space is a per-process address space. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_drv.c | 2 +- drivers/gpu/drm/msm/msm_gem.c | 25 ++

[Freedreno] [PATCH 19/20] iommu/arm-smmu: add a way for implementations to influence SCTLR

2020-08-17 Thread Rob Clark
From: Rob Clark For the Adreno GPU's SMMU, we want SCTLR.HUPCF set to ensure that pending translations are not terminated on iova fault. Otherwise a terminated CP read could hang the GPU by returning invalid command-stream data. Signed-off-by: Rob Clark --- drivers/iommu/arm/arm-smmu/arm-smmu

[Freedreno] [PATCH 18/20] arm: dts: qcom: sc7180: Set the compatible string for the GPU SMMU

2020-08-17 Thread Rob Clark
From: Rob Clark Set the qcom,adreno-smmu compatible string for the GPU SMMU to enable split pagetables and per-instance pagetables for drm/msm. Signed-off-by: Rob Clark --- arch/arm64/boot/dts/qcom/sc7180.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/

[Freedreno] [PATCH 17/20] arm: dts: qcom: sm845: Set the compatible string for the GPU SMMU

2020-08-17 Thread Rob Clark
From: Jordan Crouse Set the qcom,adreno-smmu compatible string for the GPU SMMU to enable split pagetables and per-instance pagetables for drm/msm. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark --- arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion

[Freedreno] [PATCH 09/20] iommu/arm-smmu-qcom: Add implementation for the adreno GPU SMMU

2020-08-17 Thread Rob Clark
From: Jordan Crouse Add a special implementation for the SMMU attached to most Adreno GPU target triggered from the qcom,adreno-smmu compatible string. The new Adreno SMMU implementation will enable split pagetables (TTBR1) for the domain attached to the GPU device (SID 0) and hard code it conte

[Freedreno] [PATCH 12/20] drm/msm: Drop context arg to gpu->submit()

2020-08-17 Thread Rob Clark
From: Jordan Crouse Now that we can get the ctx from the submitqueue, the extra arg is redundant. Signed-off-by: Jordan Crouse [split out of previous patch to reduce churny noise] Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 12 +--- drivers/gpu/drm/msm/adren

[Freedreno] [PATCH 10/20] dt-bindings: arm-smmu: Add compatible string for Adreno GPU SMMU

2020-08-17 Thread Rob Clark
From: Jordan Crouse Every Qcom Adreno GPU has an embedded SMMU for its own use. These devices depend on unique features such as split pagetables, different stall/halt requirements and other settings. Identify them with a compatible string so that they can be identified in the arm-smmu implementat

[Freedreno] [PATCH 15/20] drm/msm: Add support for private address space instances

2020-08-17 Thread Rob Clark
From: Jordan Crouse Add support for allocating private address space instances. Targets that support per-context pagetables should implement their own function to allocate private address spaces. The default will return a pointer to the global address space. Signed-off-by: Jordan Crouse Signed

[Freedreno] [PATCH 07/20] drm/msm: set adreno_smmu as gpu's drvdata

2020-08-17 Thread Rob Clark
From: Rob Clark This will be populated by adreno-smmu, to provide a way for coordinating enabling/disabling TTBR0 translation. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/adreno_device.c | 2 -- drivers/gpu/drm/msm/msm_gpu.c | 2 +- drivers/gpu/drm/msm/msm_gpu.h

[Freedreno] [PATCH 16/20] drm/msm/a6xx: Add support for per-instance pagetables

2020-08-17 Thread Rob Clark
From: Jordan Crouse Add support for using per-instance pagetables if all the dependencies are available. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 63 +++ drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 1 + drivers/gpu/

[Freedreno] [PATCH 11/20] drm/msm: Add a context pointer to the submitqueue

2020-08-17 Thread Rob Clark
From: Jordan Crouse Each submitqueue is attached to a context. Add a pointer to the context to the submitqueue at create time and refcount it so that it stays around through the life of the queue. Co-developed-by: Rob Clark Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark --- drivers/gp

[Freedreno] [PATCH 13/20] drm/msm: Set the global virtual address range from the IOMMU domain

2020-08-17 Thread Rob Clark
From: Jordan Crouse Use the aperture settings from the IOMMU domain to set up the virtual address range for the GPU. This allows us to transparently deal with IOMMU side features (like split pagetables). Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/adre

[Freedreno] [PATCH 04/20] iommu/arm-smmu: Prepare for the adreno-smmu implementation

2020-08-17 Thread Rob Clark
From: Jordan Crouse Do a bit of prep work to add the upcoming adreno-smmu implementation. Add an hook to allow the implementation to choose which context banks to allocate. Move some of the common structs to arm-smmu.h in anticipation of them being used by the implementations and update some of

[Freedreno] [PATCH 14/20] drm/msm: Add support to create a local pagetable

2020-08-17 Thread Rob Clark
From: Jordan Crouse Add support to create a io-pgtable for use by targets that support per-instance pagetables. In order to support per-instance pagetables the GPU SMMU device needs to have the qcom,adreno-smmu compatible string and split pagetables enabled. Signed-off-by: Jordan Crouse Signed-

[Freedreno] [PATCH 08/20] iommu/arm-smmu: constify some helpers

2020-08-17 Thread Rob Clark
From: Rob Clark Sprinkle a few `const`s where helpers don't need write access. Signed-off-by: Rob Clark --- drivers/iommu/arm/arm-smmu/arm-smmu.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.h b/drivers/iommu/arm/arm-smmu/arm-sm

[Freedreno] [PATCH 05/20] iommu: add private interface for adreno-smmu

2020-08-17 Thread Rob Clark
From: Rob Clark This interface will be used for drm/msm to coordinate with the qcom_adreno_smmu_impl to enable/disable TTBR0 translation. Once TTBR0 translation is enabled, the GPU's CP (Command Processor) will directly switch TTBR0 pgtables (and do the necessary TLB inv) synchronized to the GPU

[Freedreno] [PATCH 06/20] drm/msm/gpu: add dev_to_gpu() helper

2020-08-17 Thread Rob Clark
From: Rob Clark In a later patch, the drvdata will not directly be 'struct msm_gpu *', so add a helper to reduce the churn. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/adreno_device.c | 10 -- drivers/gpu/drm/msm/msm_gpu.c | 6 +++--- drivers/gpu/drm/msm/msm_g

[Freedreno] [PATCH 03/20] iommu/arm-smmu: Add support for split pagetables

2020-08-17 Thread Rob Clark
From: Jordan Crouse Enable TTBR1 for a context bank if IO_PGTABLE_QUIRK_ARM_TTBR1 is selected by the io-pgtable configuration. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark --- drivers/iommu/arm/arm-smmu/arm-smmu.c | 21 - drivers/iommu/arm/arm-smmu/arm-smmu.h | 25

[Freedreno] [PATCH 01/20] drm/msm: remove dangling submitqueue references

2020-08-17 Thread Rob Clark
From: Rob Clark Currently it doesn't matter, since we free the ctx immediately. But when we start refcnt'ing the ctx, we don't want old dangling list entries to hang around. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_submitqueue.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletio

[Freedreno] [PATCH 02/20] iommu/arm-smmu: Pass io-pgtable config to implementation specific function

2020-08-17 Thread Rob Clark
From: Jordan Crouse Construct the io-pgtable config before calling the implementation specific init_context function and pass it so the implementation specific function can get a chance to change it before the io-pgtable is created. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark --- dr

[Freedreno] [PATCH 00/20] iommu/arm-smmu + drm/msm: per-process GPU pgtables

2020-08-17 Thread Rob Clark
From: Rob Clark This series adds an Adreno SMMU implementation to arm-smmu to allow GPU hardware pagetable switching. The Adreno GPU has built in capabilities to switch the TTBR0 pagetable during runtime to allow each individual instance or application to have its own pagetable. In order to tak

Re: [Freedreno] [PATCH v10 3/5] drm/msm/dp: add support for DP PLL driver

2020-08-17 Thread Rob Clark
On Mon, Aug 17, 2020 at 1:32 PM Dmitry Baryshkov wrote: > > On 16/08/2020 01:45, Rob Clark wrote: > > On Sat, Aug 15, 2020 at 2:21 PM Jonathan Marek wrote: > >> > >> On 8/15/20 4:20 PM, Rob Clark wrote: > >>> On Fri, Aug 14, 2020 at 10:05 AM Dmitry Baryshkov > >>> wrote: > > > On

Re: [Freedreno] [PATCH v10 3/5] drm/msm/dp: add support for DP PLL driver

2020-08-17 Thread Dmitry Baryshkov
On 16/08/2020 01:45, Rob Clark wrote: On Sat, Aug 15, 2020 at 2:21 PM Jonathan Marek wrote: On 8/15/20 4:20 PM, Rob Clark wrote: On Fri, Aug 14, 2020 at 10:05 AM Dmitry Baryshkov wrote: On 12/08/2020 07:42, Tanmay Shah wrote: > From: Chandan Uddaraju > > Add the needed DP PLL sp

Re: [Freedreno] [PATCH v10 3/5] drm/msm/dp: add support for DP PLL driver

2020-08-17 Thread Tanmay Shah
On 2020-08-15 15:45, Rob Clark wrote: On Sat, Aug 15, 2020 at 2:21 PM Jonathan Marek wrote: On 8/15/20 4:20 PM, Rob Clark wrote: > On Fri, Aug 14, 2020 at 10:05 AM Dmitry Baryshkov > wrote: >> >> >> On 12/08/2020 07:42, Tanmay Shah wrote: >> > From: Chandan Uddaraju >> > >> > Add the n

Re: [Freedreno] [PATCH v10 3/5] drm/msm/dp: add support for DP PLL driver

2020-08-17 Thread Tanmay Shah
On 2020-08-15 04:45, Dmitry Baryshkov wrote: On 15/08/2020 02:22, Tanmay Shah wrote: On 2020-08-14 10:05, Dmitry Baryshkov wrote: On 12/08/2020 07:42, Tanmay Shah wrote: From: Chandan Uddaraju Add the needed DP PLL specific files to support display port interface on msm targets. [skipped]

Re: [Freedreno] [PATCH] drm/msm/adreno: remove return value of function XX_print

2020-08-17 Thread Jordan Crouse
On Fri, Aug 14, 2020 at 01:17:44AM -0700, Bernard Zhao wrote: > XX_print like pfp_print/me_print/meq_print/roq_print are just > used in file a5xx_debugfs.c. And these function always return > 0, this return value is meaningless. > This change is to make the code a bit more readable. This is reason

Re: [Freedreno] [PATCH 19/19] drm/msm: show process names in gem_describe

2020-08-17 Thread Jordan Crouse
On Thu, Aug 13, 2020 at 07:41:14PM -0700, Rob Clark wrote: > From: Rob Clark > > In $debugfs/gem we already show any vma(s) associated with an object. > Also show process names if the vma's address space is a per-process > address space. Reviewed-by: Jordan Crouse > Signed-off-by: Rob Clark >

Re: [Freedreno] [PATCH] drm/msm/gpu: make ringbuffer readonly

2020-08-17 Thread Jordan Crouse
On Mon, Aug 17, 2020 at 09:23:09AM -0700, Rob Clark wrote: > From: Rob Clark > > The GPU has no business writing into the ringbuffer, let's make it > readonly to the GPU. Yep. There are some additional things we can do in the a6xx family to make this even more robust but for the vast majority of

Re: [Freedreno] [PATCH 07/19] drm/msm: set adreno_smmu as gpu's drvdata

2020-08-17 Thread Jordan Crouse
On Thu, Aug 13, 2020 at 07:41:02PM -0700, Rob Clark wrote: > From: Rob Clark > > This will be populated by adreno-smmu, to provide a way for coordinating > enabling/disabling TTBR0 translation. > Reviewed-by: Jordan Crouse > Signed-off-by: Rob Clark > --- > drivers/gpu/drm/msm/adreno/adreno

Re: [Freedreno] [PATCH 06/19] drm/msm/gpu: add dev_to_gpu() helper

2020-08-17 Thread Jordan Crouse
On Thu, Aug 13, 2020 at 07:41:01PM -0700, Rob Clark wrote: > From: Rob Clark > > In a later patch, the drvdata will not directly be 'struct msm_gpu *', > so add a helper to reduce the churn. > Reviewed-by: Jordan Crouse > Signed-off-by: Rob Clark > --- > drivers/gpu/drm/msm/adreno/adreno_dev

Re: [Freedreno] [PATCH 05/19] iommu: add private interface for adreno-smmu

2020-08-17 Thread Jordan Crouse
On Thu, Aug 13, 2020 at 07:41:00PM -0700, Rob Clark wrote: > From: Rob Clark > > This interface will be used for drm/msm to coordinate with the > qcom_adreno_smmu_impl to enable/disable TTBR0 translation. > > Once TTBR0 translation is enabled, the GPU's CP (Command Processor) > will directly swi

Re: [Freedreno] [PATCH 01/19] drm/msm: remove dangling submitqueue references

2020-08-17 Thread Jordan Crouse
On Thu, Aug 13, 2020 at 07:40:56PM -0700, Rob Clark wrote: > From: Rob Clark > > Currently it doesn't matter, since we free the ctx immediately. But > when we start refcnt'ing the ctx, we don't want old dangling list > entries to hang around. Reviewed-by: Jordan Crouse > Signed-off-by: Rob Cl

Re: [Freedreno] [PATCH 00/19] iommu/arm-smmu + drm/msm: per-process GPU pgtables

2020-08-17 Thread Jordan Crouse
On Thu, Aug 13, 2020 at 07:40:55PM -0700, Rob Clark wrote: > From: Rob Clark > > NOTE: Since Jordan was out today, and I wanted to keep things moving on > this, I took the liberty of respinning his series (originally > titled "iommu/arm-smmu: Add Adreno SMMU specific implementation")

Re: [Freedreno] [PATCH 16/19] drm/msm/a6xx: Add support for per-instance pagetables

2020-08-17 Thread Jordan Crouse
On Mon, Aug 17, 2020 at 09:10:46PM +0530, Akhil P Oommen wrote: > On 8/14/2020 8:11 AM, Rob Clark wrote: > >From: Jordan Crouse > > > >Add support for using per-instance pagetables if all the dependencies are > >available. > > > >Signed-off-by: Jordan Crouse > >Signed-off-by: Rob Clark > >--- >

Re: [Freedreno] [PATCH] drm/msm/adreno: fix updating ring fence

2020-08-17 Thread Jordan Crouse
On Wed, Aug 12, 2020 at 05:03:09PM -0700, Rob Clark wrote: > From: Rob Clark > > We need to set it to the most recent completed fence, not the most > recent submitted. Otherwise we have races where we think we can retire > submits that the GPU is not finished with, if the GPU doesn't manage to >

[Freedreno] [PATCH] drm/msm/gpu: make ringbuffer readonly

2020-08-17 Thread Rob Clark
From: Rob Clark The GPU has no business writing into the ringbuffer, let's make it readonly to the GPU. Fixes: 7198e6b03155 ("drm/msm: add a3xx gpu support") Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_ringbuffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/

Re: [Freedreno] [PATCH 16/19] drm/msm/a6xx: Add support for per-instance pagetables

2020-08-17 Thread Rob Clark
On Mon, Aug 17, 2020 at 8:41 AM Akhil P Oommen wrote: > > On 8/14/2020 8:11 AM, Rob Clark wrote: > > From: Jordan Crouse > > > > Add support for using per-instance pagetables if all the dependencies are > > available. > > > > Signed-off-by: Jordan Crouse > > Signed-off-by: Rob Clark > > --- > >

Re: [Freedreno] [PATCH 16/19] drm/msm/a6xx: Add support for per-instance pagetables

2020-08-17 Thread Akhil P Oommen
On 8/14/2020 8:11 AM, Rob Clark wrote: From: Jordan Crouse Add support for using per-instance pagetables if all the dependencies are available. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 70 +++ drivers/gpu/drm

Re: [Freedreno] [RESEND PATCH] drm/msm/a6xx: fix frequency not always being restored on GMU resume

2020-08-17 Thread Akhil P Oommen
Why don't we move the early return in a6xx_gmu_set_freq() to msm_devfreq_target() instead? -Akhil. On 8/14/2020 12:24 AM, Jonathan Marek wrote: The patch reorganizing the set_freq function made it so the gmu resume doesn't always set the frequency, because a6xx_gmu_set_freq() exits early when