Re: [Freedreno] [PATCH v3 5/8] drm/msm/a6xx: Ensure CX collapse during gpu recovery

2022-08-03 Thread Akhil P Oommen
On 8/2/2022 12:44 PM, Dmitry Baryshkov wrote: On 30/07/2022 12:40, Akhil P Oommen wrote: Because there could be transient votes from other drivers/tz/hyp which may keep the cx gdsc enabled, we should poll until cx gdsc collapses. We can use the reset framework to poll for cx gdsc collapse from

Re: [Freedreno] [PATCH 3/5] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-08-03 Thread Akhil P Oommen
On 8/2/2022 12:45 PM, Dmitry Baryshkov wrote: On 30/07/2022 12:17, Akhil P Oommen wrote: Allow a consumer driver to poll for cx gdsc collapse through Reset framework. Signed-off-by: Akhil P Oommen ---   drivers/clk/qcom/gpucc-sc7280.c | 6 ++   1 file changed, 6 insertions(+) diff --git

Re: [Freedreno] [PATCH 1/2] drm/msm: Move hangcheck timer restart

2022-08-03 Thread Akhil P Oommen
On 8/3/2022 10:53 PM, Rob Clark wrote: From: Rob Clark Don't directly restart the hangcheck timer from the timer handler, but instead start it after the recover_worker replays remaining jobs. If the kthread is blocked for other reasons, there is no point to immediately restart the timer. Fixe

Re: [Freedreno] [PATCH 1/2] drm/msm: Move hangcheck timer restart

2022-08-04 Thread Akhil P Oommen
On 8/4/2022 1:59 AM, Rob Clark wrote: On Wed, Aug 3, 2022 at 12:52 PM Akhil P Oommen wrote: On 8/3/2022 10:53 PM, Rob Clark wrote: From: Rob Clark Don't directly restart the hangcheck timer from the timer handler, but instead start it after the recover_worker replays remaining jobs. I

Re: [Freedreno] [PATCH 1/3] dma-buf: Add ioctl to query mmap info

2022-08-07 Thread Akhil P Oommen
On 7/29/2022 10:37 PM, Rob Clark wrote: From: Rob Clark This is a fairly narrowly focused interface, providing a way for a VMM in userspace to tell the guest kernel what pgprot settings to use when mapping a buffer to guest userspace. For buffers that get mapped into guest userspace, virglrend

Re: [Freedreno] [PATCH 0/5] clk/qcom: Support gdsc collapse polling using 'reset' inteface

2022-08-11 Thread Akhil P Oommen
On 8/10/2022 2:35 AM, Bjorn Andersson wrote: On Sat 30 Jul 04:17 CDT 2022, Akhil P Oommen wrote: Some clients like adreno gpu driver would like to ensure that its gdsc is collapsed at hardware during a gpu reset sequence. This is because it has a votable gdsc which could be ON due to a vote

[Freedreno] [PATCH v2 3/5] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-08-17 Thread Akhil P Oommen
Add a reset op compatible function to poll for gdsc collapse. Signed-off-by: Akhil P Oommen --- Changes in v2: - Minor update to function prototype drivers/clk/qcom/gdsc.c | 23 +++ drivers/clk/qcom/gdsc.h | 7 +++ 2 files changed, 26 insertions(+), 4 deletions

[Freedreno] [PATCH v4 2/7] drm/msm: Take single rpm refcount on behalf of all submits

2022-08-17 Thread Akhil P Oommen
Instead of separate refcount for each submit, take single rpm refcount on behalf of all the submits. This makes it easier to drop the rpm refcount during recovery in an upcoming patch. Signed-off-by: Akhil P Oommen --- (no changes since v3) Changes in v3: - New patch drivers/gpu/drm/msm

[Freedreno] [PATCH v4 6/7] drm/msm/a6xx: Improve gpu recovery sequence

2022-08-17 Thread Akhil P Oommen
We can do a few more things to improve our chance at a successful gpu recovery, especially during a hangcheck timeout: 1. Halt CP and GMU core 2. Do RBBM GBIF HALT sequence 3. Do a soft reset of GPU core Signed-off-by: Akhil P Oommen --- (no changes since v1) drivers/gpu/drm/msm/adreno

[Freedreno] [PATCH v2 5/5] arm64: dts: qcom: sc7280: Add Reset support for gpu

2022-08-17 Thread Akhil P Oommen
Add support for Reset using GPUCC driver for GPU. This helps to ensure that GPU state is reset by making sure that CX head switch is collapsed. Signed-off-by: Akhil P Oommen --- (no changes since v1) arch/arm64/boot/dts/qcom/sc7280.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a

[Freedreno] [PATCH v2 4/5] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-08-17 Thread Akhil P Oommen
Allow a consumer driver to poll for cx gdsc collapse through Reset framework. Signed-off-by: Akhil P Oommen --- Changes in v2: - Minor update to use the updated custom reset ops implementation drivers/clk/qcom/gpucc-sc7280.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a

[Freedreno] [PATCH v4 5/7] drm/msm/a6xx: Ensure CX collapse during gpu recovery

2022-08-17 Thread Akhil P Oommen
igned-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v3) Changes in v3: - Use reset interface from gpucc driver to poll for cx gdsc collapse https://patchwork.freedesktop.org/series/106860/ drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 4 drivers/gpu/drm/msm/msm_

[Freedreno] [PATCH v4 0/7] Improve GPU Recovery

2022-08-17 Thread Akhil P Oommen
uspend (Rob) Changes in v3: - Use reset interface from gpucc driver to poll for cx gdsc collapse https://patchwork.freedesktop.org/series/106860/ - Use single pm refcount for all active submits Changes in v2: - Rebased on msm-next tip Akhil P Oommen (7): drm/msm: Remove unnecessary pm_runt

[Freedreno] [PATCH v4 7/7] drm/msm/a6xx: Handle GMU prepare-slumber hfi failure

2022-08-17 Thread Akhil P Oommen
When prepare-slumber hfi fails, we should follow a6xx_gmu_force_off() sequence. Signed-off-by: Akhil P Oommen --- (no changes since v1) drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b

[Freedreno] [PATCH v2 0/5] clk/qcom: Support gdsc collapse polling using 'reset' inteface

2022-08-17 Thread Akhil P Oommen
eturn error when a particular custom reset op is not implemented. (Dmitry) Akhil P Oommen (5): dt-bindings: clk: qcom: Support gpu cx gdsc reset clk: qcom: Allow custom reset ops clk: qcom: gdsc: Add a reset op to poll gdsc collapse clk: qcom: gpucc-sc7280: Add cx collapse reset support

[Freedreno] [PATCH v4 3/7] drm/msm: Correct pm_runtime votes in recover worker

2022-08-17 Thread Akhil P Oommen
In the scenario where there is one a single submit which is hung, gpu is power collapsed when it is retired. Because of this, by the time we call reover(), gpu state would be already clear. Fix this by correctly managing the pm runtime votes. Signed-off-by: Akhil P Oommen --- (no changes since

[Freedreno] [PATCH v4 4/7] drm/msm: Fix cx collapse issue during recovery

2022-08-17 Thread Akhil P Oommen
n gpu and its smmu. So the *struct gpu device* needs to be runtime suspended to ensure that the iommu driver removes its vote on cx gdsc. Signed-off-by: Akhil P Oommen --- Changes in v4: - Keep active_submit lock across the suspend & resume (Rob) - Clear gpu->active_submits to silence a W

[Freedreno] [PATCH v4 1/7] drm/msm: Remove unnecessary pm_runtime_get/put

2022-08-17 Thread Akhil P Oommen
We already enable gpu power from msm_gpu_submit(), so avoid a duplicate pm_runtime_get/put from msm_job_run(). Signed-off-by: Akhil P Oommen --- (no changes since v1) drivers/gpu/drm/msm/msm_ringbuffer.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/gpu/drm/msm

[Freedreno] [PATCH v3 0/5] clk/qcom: Support gdsc collapse polling using 'reset' inteface

2022-08-18 Thread Akhil P Oommen
- Use pointer to const for "struct qcom_reset_ops" in qcom_reset_map (Krzysztof) Changes in v2: - Return error when a particular custom reset op is not implemented. (Dmitry) Akhil P Oommen (5): dt-bindings: clk: qcom: Support gpu cx gdsc reset clk: qcom: Allow custom reset ops clk: qc

[Freedreno] [PATCH v3 1/5] dt-bindings: clk: qcom: Support gpu cx gdsc reset

2022-08-18 Thread Akhil P Oommen
Add necessary definitions in gpucc bindings to ensure gpu cx gdsc collapse through 'reset' framework for SC7280. Signed-off-by: Akhil P Oommen Acked-by: Krzysztof Kozlowski --- (no changes since v1) include/dt-bindings/clock/qcom,gpucc-sc7280.h | 3 +++ 1 file changed, 3 insertion

[Freedreno] [PATCH v3 2/5] clk: qcom: Allow custom reset ops

2022-08-18 Thread Akhil P Oommen
Allow soc specific clk drivers to specify a custom reset operation. We will use this in an upcoming patch to allow gpucc driver to specify a differet reset operation for cx_gdsc. Signed-off-by: Akhil P Oommen --- Changes in v3: - Use pointer to const for "struct qcom_reset_op

[Freedreno] [PATCH v3 3/5] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-08-18 Thread Akhil P Oommen
Add a reset op compatible function to poll for gdsc collapse. Signed-off-by: Akhil P Oommen --- (no changes since v2) Changes in v2: - Minor update to function prototype drivers/clk/qcom/gdsc.c | 23 +++ drivers/clk/qcom/gdsc.h | 7 +++ 2 files changed, 26 insertions

[Freedreno] [PATCH v3 4/5] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-08-18 Thread Akhil P Oommen
Allow a consumer driver to poll for cx gdsc collapse through Reset framework. Signed-off-by: Akhil P Oommen --- Changes in v3: - Convert 'struct qcom_reset_ops cx_gdsc_reset' to 'static const' (Krzysztof) Changes in v2: - Minor update to use the updated custom rese

[Freedreno] [PATCH v3 5/5] arm64: dts: qcom: sc7280: Add Reset support for gpu

2022-08-18 Thread Akhil P Oommen
Add support for Reset using GPUCC driver for GPU. This helps to ensure that GPU state is reset by making sure that CX head switch is collapsed. Signed-off-by: Akhil P Oommen --- (no changes since v1) arch/arm64/boot/dts/qcom/sc7280.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a

[Freedreno] [PATCH v5 0/7] Improve GPU Recovery

2022-08-18 Thread Akhil P Oommen
active submits Changes in v2: - Rebased on msm-next tip Akhil P Oommen (7): drm/msm: Remove unnecessary pm_runtime_get/put drm/msm: Take single rpm refcount on behalf of all submits drm/msm: Correct pm_runtime votes in recover worker drm/msm: Fix cx collapse issue during recovery drm/m

[Freedreno] [PATCH v5 1/7] drm/msm: Remove unnecessary pm_runtime_get/put

2022-08-18 Thread Akhil P Oommen
We already enable gpu power from msm_gpu_submit(), so avoid a duplicate pm_runtime_get/put from msm_job_run(). Signed-off-by: Akhil P Oommen --- (no changes since v1) drivers/gpu/drm/msm/msm_ringbuffer.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/gpu/drm/msm

[Freedreno] [PATCH v5 3/7] drm/msm: Correct pm_runtime votes in recover worker

2022-08-18 Thread Akhil P Oommen
In the scenario where there is one a single submit which is hung, gpu is power collapsed when it is retired. Because of this, by the time we call reover(), gpu state would be already clear. Fix this by correctly managing the pm runtime votes. Signed-off-by: Akhil P Oommen --- (no changes since

[Freedreno] [PATCH v5 2/7] drm/msm: Take single rpm refcount on behalf of all submits

2022-08-18 Thread Akhil P Oommen
Instead of separate refcount for each submit, take single rpm refcount on behalf of all the submits. This makes it easier to drop the rpm refcount during recovery in an upcoming patch. Signed-off-by: Akhil P Oommen --- (no changes since v3) Changes in v3: - New patch drivers/gpu/drm/msm

[Freedreno] [PATCH v5 4/7] drm/msm: Fix cx collapse issue during recovery

2022-08-18 Thread Akhil P Oommen
n gpu and its smmu. So the *struct gpu device* needs to be runtime suspended to ensure that the iommu driver removes its vote on cx gdsc. Signed-off-by: Akhil P Oommen --- (no changes since v4) Changes in v4: - Keep active_submit lock across the suspend & resume (Rob) - Clear gpu->activ

[Freedreno] [PATCH v5 5/7] drm/msm/a6xx: Ensure CX collapse during gpu recovery

2022-08-18 Thread Akhil P Oommen
igned-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov Reviewed-by: Philipp Zabel --- Changes in v5: - Replace devm_reset_control_get_optional() with devm_reset_control_get_optional_exclusive() (Philipp) Changes in v3: - Use reset interface from gpucc driver to poll for cx gdsc collapse

[Freedreno] [PATCH v5 6/7] drm/msm/a6xx: Improve gpu recovery sequence

2022-08-18 Thread Akhil P Oommen
We can do a few more things to improve our chance at a successful gpu recovery, especially during a hangcheck timeout: 1. Halt CP and GMU core 2. Do RBBM GBIF HALT sequence 3. Do a soft reset of GPU core Signed-off-by: Akhil P Oommen --- (no changes since v1) drivers/gpu/drm/msm/adreno

[Freedreno] [PATCH v5 7/7] drm/msm/a6xx: Handle GMU prepare-slumber hfi failure

2022-08-18 Thread Akhil P Oommen
When prepare-slumber hfi fails, we should follow a6xx_gmu_force_off() sequence. Signed-off-by: Akhil P Oommen --- (no changes since v1) drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b

[Freedreno] [PATCH v4 1/6] dt-bindings: clk: qcom: Support gpu cx gdsc reset

2022-08-19 Thread Akhil P Oommen
Add necessary definitions in gpucc bindings to ensure gpu cx gdsc collapse through 'reset' framework for SC7280. Signed-off-by: Akhil P Oommen Acked-by: Krzysztof Kozlowski --- (no changes since v1) include/dt-bindings/clock/qcom,gpucc-sc7280.h | 3 +++ 1 file changed, 3 insertion

[Freedreno] [PATCH v4 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-08-19 Thread Akhil P Oommen
pdate gpu dt-binding schema - Typo fix in commit text Changes in v3: - Use pointer to const for "struct qcom_reset_ops" in qcom_reset_map (Krzysztof) Changes in v2: - Return error when a particular custom reset op is not implemented. (Dmitry) Akhil P Oommen (6): dt-bindings: clk: qcom:

[Freedreno] [PATCH v4 2/6] clk: qcom: Allow custom reset ops

2022-08-19 Thread Akhil P Oommen
Allow soc specific clk drivers to specify a custom reset operation. We will use this in an upcoming patch to allow gpucc driver to specify a differet reset operation for cx_gdsc. Signed-off-by: Akhil P Oommen --- (no changes since v3) Changes in v3: - Use pointer to const for "s

[Freedreno] [PATCH v4 3/6] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-08-19 Thread Akhil P Oommen
Add a reset op compatible function to poll for gdsc collapse. Signed-off-by: Akhil P Oommen --- (no changes since v2) Changes in v2: - Minor update to function prototype drivers/clk/qcom/gdsc.c | 23 +++ drivers/clk/qcom/gdsc.h | 7 +++ 2 files changed, 26 insertions

[Freedreno] [PATCH v4 4/6] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-08-19 Thread Akhil P Oommen
Allow a consumer driver to poll for cx gdsc collapse through Reset framework. Signed-off-by: Akhil P Oommen --- (no changes since v3) Changes in v3: - Convert 'struct qcom_reset_ops cx_gdsc_reset' to 'static const' (Krzysztof) Changes in v2: - Minor update to use the upda

[Freedreno] [PATCH v4 5/6] dt-bindings: drm/msm/gpu: Add optional resets

2022-08-19 Thread Akhil P Oommen
Add an optional reference to GPUCC reset which can be used to ensure cx gdsc collapse during gpu recovery. Signed-off-by: Akhil P Oommen --- Changes in v4: - New patch in v4 Documentation/devicetree/bindings/display/msm/gpu.yaml | 7 +++ 1 file changed, 7 insertions(+) diff --git a

[Freedreno] [PATCH v4 6/6] arm64: dts: qcom: sc7280: Add Reset support for gpu

2022-08-19 Thread Akhil P Oommen
Add support for Reset using GPUCC driver for GPU. This helps to ensure that GPU state is reset by making sure that CX head switch is collapsed. Signed-off-by: Akhil P Oommen --- (no changes since v1) arch/arm64/boot/dts/qcom/sc7280.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a

Re: [Freedreno] [PATCH v4 5/6] dt-bindings: drm/msm/gpu: Add optional resets

2022-08-23 Thread Akhil P Oommen
On 8/23/2022 4:41 PM, Krzysztof Kozlowski wrote: On 19/08/2022 19:40, Akhil P Oommen wrote: Documentation/devicetree/bindings/display/msm/gpu.yaml | 7 +++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/display/msm/gpu.yaml b/Documentation/devicetree

Re: [Freedreno] [PATCH v2] drm/msm/iommu: optimize map/unmap

2022-08-23 Thread Akhil P Oommen
On 8/23/2022 10:07 PM, Rob Clark wrote: From: Rob Clark Using map_pages/unmap_pages cuts down on the # of pgtable walks needed in the process of finding where to insert/remove an entry. The end result is ~5-10x faster than mapping a single page at a time. v2: Rename iommu_pgsize(), drop obsol

[Freedreno] [PATCH v2 2/5] clk: qcom: Allow custom reset ops

2022-08-24 Thread Akhil P Oommen
Allow soc specific clk drivers to specify a custom reset operation. We will use this in an upcoming patch to allow gpucc driver to specify a differet reset operation for cx_gdsc. Signed-off-by: Akhil P Oommen --- Changes in v2: - Return error when a particular custom reset op is not implemented

[Freedreno] [PATCH v2 1/5] dt-bindings: clk: qcom: Support gpu cx gdsc reset

2022-08-24 Thread Akhil P Oommen
Add necessary definitions in gpucc bindings to ensure gpu cx gdsc collapse through 'reset' framework for SC7280. Signed-off-by: Akhil P Oommen Acked-by: Krzysztof Kozlowski --- (no changes since v1) include/dt-bindings/clock/qcom,gpucc-sc7280.h | 3 +++ 1 file changed, 3 insertion

Re: [Freedreno] [PATCH v3 5/5] arm64: dts: qcom: sc7280: Add Reset support for gpu

2022-08-24 Thread Akhil P Oommen
On 8/19/2022 11:47 AM, Krzysztof Kozlowski wrote: On 18/08/2022 23:18, Akhil P Oommen wrote: Add support for Reset using GPUCC driver for GPU. This helps to ensure that GPU state is reset by making sure that CX head switch is collapsed. Signed-off-by: Akhil P Oommen --- (no changes since v1

Re: [Freedreno] [PATCH 5/5] drm/msm: Skip tlbinv on unmap from non-current pgtables

2022-08-25 Thread Akhil P Oommen
On 8/21/2022 11:49 PM, Rob Clark wrote: From: Rob Clark We can rely on the tlbinv done by CP_SMMU_TABLE_UPDATE in this case. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 6 ++ drivers/gpu/drm/msm/msm_iommu.c | 29 +++ 2 files chan

Re: [Freedreno] [PATCH 5/5] drm/msm: Skip tlbinv on unmap from non-current pgtables

2022-08-25 Thread Akhil P Oommen
On 8/25/2022 12:32 AM, Rob Clark wrote: On Wed, Aug 24, 2022 at 10:46 AM Akhil P Oommen wrote: On 8/21/2022 11:49 PM, Rob Clark wrote: From: Rob Clark We can rely on the tlbinv done by CP_SMMU_TABLE_UPDATE in this case. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c

[Freedreno] [PATCH v5 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-08-28 Thread Akhil P Oommen
not implemented. (Dmitry) Akhil P Oommen (6): dt-bindings: clk: qcom: Support gpu cx gdsc reset clk: qcom: Allow custom reset ops clk: qcom: gdsc: Add a reset op to poll gdsc collapse clk: qcom: gpucc-sc7280: Add cx collapse reset support dt-bindings: drm/msm/gpu: Add optional resets arm64: dt

[Freedreno] [PATCH v5 1/6] dt-bindings: clk: qcom: Support gpu cx gdsc reset

2022-08-28 Thread Akhil P Oommen
Add necessary definitions in gpucc bindings to ensure gpu cx gdsc collapse through 'reset' framework for SC7280. Signed-off-by: Akhil P Oommen Acked-by: Krzysztof Kozlowski --- (no changes since v1) include/dt-bindings/clock/qcom,gpucc-sc7280.h | 3 +++ 1 file changed, 3 insertion

[Freedreno] [PATCH v5 2/6] clk: qcom: Allow custom reset ops

2022-08-28 Thread Akhil P Oommen
Allow soc specific clk drivers to specify a custom reset operation. We will use this in an upcoming patch to allow gpucc driver to specify a differet reset operation for cx_gdsc. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v3) Changes in v3: - Use pointer

[Freedreno] [PATCH v5 4/6] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-08-28 Thread Akhil P Oommen
Allow a consumer driver to poll for cx gdsc collapse through Reset framework. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v3) Changes in v3: - Convert 'struct qcom_reset_ops cx_gdsc_reset' to 'static const' (Krzysztof) Changes in v

[Freedreno] [PATCH v5 3/6] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-08-28 Thread Akhil P Oommen
Add a reset op compatible function to poll for gdsc collapse. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v2) Changes in v2: - Minor update to function prototype drivers/clk/qcom/gdsc.c | 23 +++ drivers/clk/qcom/gdsc.h | 7

[Freedreno] [PATCH v5 6/6] arm64: dts: qcom: sc7280: Add Reset support for gpu

2022-08-28 Thread Akhil P Oommen
Add support for Reset using GPUCC driver for GPU. This helps to ensure that GPU state is reset by making sure that CX head switch is collapsed. Signed-off-by: Akhil P Oommen --- (no changes since v1) arch/arm64/boot/dts/qcom/sc7280.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a

[Freedreno] [PATCH v5 5/6] dt-bindings: drm/msm/gpu: Add optional resets

2022-08-28 Thread Akhil P Oommen
Add an optional reference to GPUCC reset which can be used to ensure cx gdsc collapse during gpu recovery. Signed-off-by: Akhil P Oommen Acked-by: Rob Herring --- Changes in v5: - Nit: Remove a duplicate blank line (Krzysztof) Changes in v4: - New patch in v4 Documentation/devicetree

[Freedreno] [PATCH] arm64: dts: qcom: sc7280: Update gpu opp table

2022-08-28 Thread Akhil P Oommen
On the lite sku where GPU Fmax is 550Mhz, voting for a slightly higher bandwidth at the highest gpu opp helps to improve "Manhattan offscreen" score by 10%. Update the gpu opp table such that this is applicable only on SKUs which has 550Mhz as GPU Fmax. Signed-off-by: Akhil P Oommen

[Freedreno] [PATCH v6 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-08-30 Thread Akhil P Oommen
_map (Krzysztof) Changes in v2: - Return error when a particular custom reset op is not implemented. (Dmitry) Akhil P Oommen (6): dt-bindings: clk: qcom: Support gpu cx gdsc reset clk: qcom: Allow custom reset ops clk: qcom: gdsc: Add a reset op to poll gdsc collapse clk: qcom: gpucc-sc7280: Add cx

[Freedreno] [PATCH v6 1/6] dt-bindings: clk: qcom: Support gpu cx gdsc reset

2022-08-30 Thread Akhil P Oommen
Add necessary definitions in gpucc bindings to ensure gpu cx gdsc collapse through 'reset' framework for SC7280. Signed-off-by: Akhil P Oommen Acked-by: Krzysztof Kozlowski --- (no changes since v1) include/dt-bindings/clock/qcom,gpucc-sc7280.h | 3 +++ 1 file changed, 3 insertion

[Freedreno] [PATCH v6 3/6] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-08-30 Thread Akhil P Oommen
Add a reset op compatible function to poll for gdsc collapse. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v2) Changes in v2: - Minor update to function prototype drivers/clk/qcom/gdsc.c | 23 +++ drivers/clk/qcom/gdsc.h | 7

[Freedreno] [PATCH v6 2/6] clk: qcom: Allow custom reset ops

2022-08-30 Thread Akhil P Oommen
Allow soc specific clk drivers to specify a custom reset operation. We will use this in an upcoming patch to allow gpucc driver to specify a differet reset operation for cx_gdsc. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v3) Changes in v3: - Use pointer

[Freedreno] [PATCH v6 4/6] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-08-30 Thread Akhil P Oommen
Allow a consumer driver to poll for cx gdsc collapse through Reset framework. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v3) Changes in v3: - Convert 'struct qcom_reset_ops cx_gdsc_reset' to 'static const' (Krzysztof) Changes in v

[Freedreno] [PATCH v6 5/6] dt-bindings: drm/msm/gpu: Add optional resets

2022-08-30 Thread Akhil P Oommen
Add an optional reference to GPUCC reset which can be used to ensure cx gdsc collapse during gpu recovery. Signed-off-by: Akhil P Oommen Acked-by: Rob Herring Acked-by: Krzysztof Kozlowski --- (no changes since v5) Changes in v5: - Nit: Remove a duplicate blank line (Krzysztof) Changes in

[Freedreno] [PATCH v6 6/6] arm64: dts: qcom: sc7280: Add Reset support for gpu

2022-08-30 Thread Akhil P Oommen
Add support for Reset using GPUCC driver for GPU. This helps to ensure that GPU state is reset by making sure that CX head switch is collapsed. Signed-off-by: Akhil P Oommen --- (no changes since v1) arch/arm64/boot/dts/qcom/sc7280.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a

Re: [Freedreno] [PATCH v6 4/6] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-09-01 Thread Akhil P Oommen
On 9/1/2022 4:16 PM, Dmitry Baryshkov wrote: On 01/09/2022 13:34, Philipp Zabel wrote: On Wed, Aug 31, 2022 at 10:48:25AM +0530, Akhil P Oommen wrote: Allow a consumer driver to poll for cx gdsc collapse through Reset framework. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov

Re: [Freedreno] [PATCH v6 2/6] clk: qcom: Allow custom reset ops

2022-09-01 Thread Akhil P Oommen
On 9/1/2022 3:47 PM, Philipp Zabel wrote: Hi Akhil, On Wed, Aug 31, 2022 at 10:48:23AM +0530, Akhil P Oommen wrote: Allow soc specific clk drivers to specify a custom reset operation. We will use this in an upcoming patch to allow gpucc driver to specify a differet reset operation for cx_gdsc

Re: [Freedreno] [PATCH v6 3/6] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-09-01 Thread Akhil P Oommen
On 9/1/2022 3:58 PM, Philipp Zabel wrote: On Wed, Aug 31, 2022 at 10:48:24AM +0530, Akhil P Oommen wrote: Add a reset op compatible function to poll for gdsc collapse. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v2) Changes in v2: - Minor update to

[Freedreno] [PATCH 1/2] drm/msm/a6xx: Replace kcalloc() with kvzalloc()

2022-09-28 Thread Akhil P Oommen
: Akhil P Oommen --- drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 12 +++- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c index 55f4433..3c112a6 100644 --- a/drivers/gpu/drm/msm/adreno

[Freedreno] [PATCH 2/2] drm/msm/gpu: Fix crash during system suspend after unbind

2022-09-28 Thread Akhil P Oommen
In adreno_unbind, we should clean up gpu device's drvdata to avoid accessing a stale pointer during system suspend. Also, check for NULL ptr in both system suspend/resume callbacks. Signed-off-by: Akhil P Oommen --- Rebased on msm-next + some external fixes to boot sc7280 device. driver

Re: [Freedreno] [PATCH v3 3/5] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-09-28 Thread Akhil P Oommen
On 9/27/2022 10:56 PM, Bjorn Andersson wrote: On Fri, Aug 19, 2022 at 01:48:37AM +0530, Akhil P Oommen wrote: Add a reset op compatible function to poll for gdsc collapse. Signed-off-by: Akhil P Oommen --- (no changes since v2) Changes in v2: - Minor update to function prototype drivers

Re: [Freedreno] [PATCH -next] drm/msm/msm_gem_shrinker: fix compile error in can_block()

2022-09-29 Thread Akhil P Oommen
{ - if (sc->gfp_mask & __GFP_ATOMIC) + if (sc->gfp_mask & __GFP_HIGH) return false; return current_is_kswapd() || (sc->gfp_mask & __GFP_RECLAIM); } Reviewed-by: Akhil P Oommen -Akhil.

[Freedreno] [PATCH v7 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-10-05 Thread Akhil P Oommen
Changes in v3: - Use pointer to const for "struct qcom_reset_ops" in qcom_reset_map (Krzysztof) Changes in v2: - Return error when a particular custom reset op is not implemented. (Dmitry) Akhil P Oommen (6): dt-bindings: clk: qcom: Support gpu cx gdsc reset clk: qcom: Allow custom

[Freedreno] [PATCH v7 2/6] clk: qcom: Allow custom reset ops

2022-10-05 Thread Akhil P Oommen
Allow soc specific clk drivers to specify a custom reset operation. We will use this in an upcoming patch to allow gpucc driver to specify a differet reset operation for cx_gdsc. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v3) Changes in v3: - Use pointer

[Freedreno] [PATCH v7 1/6] dt-bindings: clk: qcom: Support gpu cx gdsc reset

2022-10-05 Thread Akhil P Oommen
Add necessary definitions in gpucc bindings to ensure gpu cx gdsc collapse through 'reset' framework for SC7280. Signed-off-by: Akhil P Oommen Acked-by: Krzysztof Kozlowski --- (no changes since v1) include/dt-bindings/clock/qcom,gpucc-sc7280.h | 3 +++ 1 file changed, 3 insertion

[Freedreno] [PATCH v7 3/6] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-10-05 Thread Akhil P Oommen
. GPU recovery). Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- Changes in v7: - Update commit message (Bjorn) Changes in v2: - Minor update to function prototype drivers/clk/qcom/gdsc.c | 23 +++ drivers/clk/qcom/gdsc.h | 7 +++ 2 files change

[Freedreno] [PATCH v7 4/6] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-10-05 Thread Akhil P Oommen
Allow a consumer driver to poll for cx gdsc collapse through Reset framework. Signed-off-by: Akhil P Oommen Reviewed-by: Dmitry Baryshkov --- (no changes since v3) Changes in v3: - Convert 'struct qcom_reset_ops cx_gdsc_reset' to 'static const' (Krzysztof) Changes in v

[Freedreno] [PATCH v7 6/6] arm64: dts: qcom: sc7280: Add Reset support for gpu

2022-10-05 Thread Akhil P Oommen
Add support for Reset using GPUCC driver for GPU. This helps to ensure that GPU state is reset by making sure that CX head switch is collapsed. Signed-off-by: Akhil P Oommen --- (no changes since v1) arch/arm64/boot/dts/qcom/sc7280.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a

[Freedreno] [PATCH v7 5/6] dt-bindings: drm/msm/gpu: Add optional resets

2022-10-05 Thread Akhil P Oommen
Add an optional reference to GPUCC reset which can be used to ensure cx gdsc collapse during gpu recovery. Signed-off-by: Akhil P Oommen Acked-by: Rob Herring Acked-by: Krzysztof Kozlowski --- (no changes since v5) Changes in v5: - Nit: Remove a duplicate blank line (Krzysztof) Changes in

Re: [Freedreno] [PATCH 0/3] drm/msm/a6xx: devcore dump fixes

2022-10-13 Thread Akhil P Oommen
state objects from list before freeing drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 18 -- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 7 ++- 2 files changed, 22 insertions(+), 3 deletions(-) For the entire series: Reviewed-by: Akhil P Oommen -Akhil

Re: [Freedreno] [PATCH 2/2] drm/msm: Hangcheck progress detection

2022-11-01 Thread Akhil P Oommen
either way, at some point the ROQ will be full.) +*/ + cp_state.ib1_rem += gpu_read(gpu, REG_A6XX_CP_CSQ_IB1_STAT) >> 16; + cp_state.ib2_rem += gpu_read(gpu, REG_A6XX_CP_CSQ_IB1_STAT) >> 16; REG_A6XX_CP_CSQ_IB1_STAT -> REG_A6XX_CP_CSQ_IB2_STAT With that, Reviewe

Re: [Freedreno] [PATCH 1/2] drm/msm/adreno: Simplify read64/write64 helpers

2022-11-01 Thread Akhil P Oommen
+ (hi << 2)); + msm_writel(lower_32_bits(val), gpu->mmio + (reg << 2)); + msm_writel(upper_32_bits(val), gpu->mmio + ((reg + 1) << 2)); } int msm_gpu_pm_suspend(struct msm_gpu *gpu); Reviewed-by: Akhil P Oommen -Akhil.

Re: [Freedreno] [PATCH v7 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-11-07 Thread Akhil P Oommen
On 10/5/2022 2:36 PM, Akhil P Oommen wrote: Some clients like adreno gpu driver would like to ensure that its gdsc is collapsed at hardware during a gpu reset sequence. This is because it has a votable gdsc which could be ON due to a vote from another subsystem like tz, hyp etc or due to an

Re: [Freedreno] [PATCH 2/2] adreno: Detect shutdown during get_param()

2022-11-11 Thread Akhil P Oommen
On 11/12/2022 1:19 AM, Joel Fernandes (Google) wrote: Even though the GPU is shut down, during kexec reboot we can have userspace still running. This is especially true if KEXEC_JUMP is not enabled, because we do not freeze userspace in this case. To prevent crashes, track that the GPU is shutdo

Re: [Freedreno] [PATCH] drm/msm/a6xx: Fix speed-bin detection vs probe-defer

2022-11-14 Thread Akhil P Oommen
may not be supported by hardware", I just noticed and was going to send a similar fix. We should remove ". Some OPPs may not be supported by hardware" here. Reviewed-by: Akhil P Oommen Btw, on msm-next-external-fixes + this fix,  I still see boot up issue in herobrine due to dr

Re: [Freedreno] [PATCH] drm/msm/a6xx: Fix speed-bin detection vs probe-defer

2022-11-14 Thread Akhil P Oommen
On 11/15/2022 1:57 AM, Doug Anderson wrote: Hi, On Mon, Nov 14, 2022 at 11:41 AM Rob Clark wrote: From: Rob Clark If we get an error (other than -ENOENT) we need to propagate that up the stack. Otherwise if the nvmem driver hasn't probed yet, we'll end up with whatever OPP(s) are represente

Re: [Freedreno] [PATCH v3] drm/msm/a6xx: Fix speed-bin detection vs probe-defer

2022-11-17 Thread Akhil P Oommen
pp_hw, 1); if (ret) return ret; Reviewed-by: Akhil P Oommen -Akhil.

Re: [Freedreno] [PATCH v7 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-12-01 Thread Akhil P Oommen
On 12/2/2022 4:27 AM, Bjorn Andersson wrote: > On Wed, Oct 05, 2022 at 02:36:58PM +0530, Akhil P Oommen wrote: > @Ulf, Akhil has a power-domain for a piece of hardware which may be > voted active by multiple different subsystems (co-processors/execution > contexts) in the system.

[Freedreno] [PATCH 1/4] drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup()

2022-12-03 Thread Akhil P Oommen
] kthread+0x104/0x1c0 [ 18.791981] ret_from_fork+0x10/0x20 [ 18.795654] Code: f9400408 aa0003f3 aa1f03f4 91142015 (f9402516) [ 18.801913] ---[ end trace ]--- [ 18.809039] Kernel panic - not syncing: Oops: Fatal exception Signed-off-by: Akhil P Oommen --- drivers/gpu/drm/msm

[Freedreno] [PATCH 2/4] drm/msm: Fix failure paths in msm_drm_init()

2022-12-03 Thread Akhil P Oommen
Ensure that we do drm_dev_put() when there is an early return in msm_drm_init(). Signed-off-by: Akhil P Oommen --- drivers/gpu/drm/msm/disp/msm_disp_snapshot.c | 3 +++ drivers/gpu/drm/msm/msm_drv.c| 11 +++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git

[Freedreno] [PATCH 3/4] drm/msm/a6xx: Update a6xx gpu coredump

2022-12-03 Thread Akhil P Oommen
Update gpu coredump for a660/a650 family of gpus with the extra information available. Signed-off-by: Akhil P Oommen --- drivers/gpu/drm/msm/adreno/a6xx.xml.h | 18 +++ drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 50 - drivers/gpu/drm/msm/adreno

[Freedreno] [PATCH 4/4] drm/msm/a6xx: Update ROQ size in coredump

2022-12-03 Thread Akhil P Oommen
Since RoQ size differs between generations, calculate dynamically the RoQ size while capturing coredump. Signed-off-by: Akhil P Oommen --- drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 11 ++- drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h | 17 ++--- 2 files changed, 20

Re: [Freedreno] [PATCH v7 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-12-06 Thread Akhil P Oommen
On 12/2/2022 12:30 PM, Akhil P Oommen wrote: > On 12/2/2022 4:27 AM, Bjorn Andersson wrote: >> On Wed, Oct 05, 2022 at 02:36:58PM +0530, Akhil P Oommen wrote: >> @Ulf, Akhil has a power-domain for a piece of hardware which may be >> voted active by multiple different subs

Re: [Freedreno] [PATCH 1/4] drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup()

2022-12-06 Thread Akhil P Oommen
On 12/5/2022 2:10 PM, Dan Carpenter wrote: > On Sun, Dec 04, 2022 at 04:11:41AM +0530, Akhil P Oommen wrote: >> Fix the below kernel panic due to null pointer access: >> [ 18.504431] Unable to handle kernel NULL pointer dereference at virtual >> address 0048

Re: [Freedreno] [PATCH v7 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-12-08 Thread Akhil P Oommen
On 12/8/2022 7:10 PM, Ulf Hansson wrote: > On Wed, 7 Dec 2022 at 17:55, Bjorn Andersson wrote: >> On Wed, Dec 07, 2022 at 05:00:51PM +0100, Ulf Hansson wrote: >>> On Thu, 1 Dec 2022 at 23:57, Bjorn Andersson wrote: >>>> On Wed, Oct 05, 2022 at 02:36:58PM +0530, A

Re: [Freedreno] [PATCH v7 3/6] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-12-08 Thread Akhil P Oommen
On 12/7/2022 9:15 PM, Ulf Hansson wrote: > On Wed, 5 Oct 2022 at 11:08, Akhil P Oommen wrote: >> Add a reset op compatible function to poll for gdsc collapse. This is >> required because: >> 1. We don't wait for it to turn OFF at hardware for VOTABLE GDSCs. >>

Re: [Freedreno] [PATCH v7 4/6] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-12-08 Thread Akhil P Oommen
On 12/7/2022 9:16 PM, Ulf Hansson wrote: > On Wed, 5 Oct 2022 at 11:08, Akhil P Oommen wrote: >> Allow a consumer driver to poll for cx gdsc collapse through Reset >> framework. > Would you mind extending this commit message, to allow us to better > understand what part i

Re: [Freedreno] [PATCH v7 3/6] clk: qcom: gdsc: Add a reset op to poll gdsc collapse

2022-12-08 Thread Akhil P Oommen
On 12/8/2022 8:32 PM, Akhil P Oommen wrote: > On 12/7/2022 9:15 PM, Ulf Hansson wrote: >> On Wed, 5 Oct 2022 at 11:08, Akhil P Oommen wrote: >>> Add a reset op compatible function to poll for gdsc collapse. This is >>> required because: >>> 1. We don'

Re: [Freedreno] [PATCH v7 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-12-08 Thread Akhil P Oommen
On 12/7/2022 9:30 PM, Ulf Hansson wrote: > On Thu, 1 Dec 2022 at 23:57, Bjorn Andersson wrote: >> On Wed, Oct 05, 2022 at 02:36:58PM +0530, Akhil P Oommen wrote: >> @Ulf, Akhil has a power-domain for a piece of hardware which may be >> voted active by multiple different subs

Re: [Freedreno] [PATCH v7 0/6] clk/qcom: Support gdsc collapse polling using 'reset' interface

2022-12-12 Thread Akhil P Oommen
te: >>>>> On Wed, Dec 07, 2022 at 05:00:51PM +0100, Ulf Hansson wrote: >>>>>> On Thu, 1 Dec 2022 at 23:57, Bjorn Andersson >>>>>> wrote: >>>>>>> On Wed, Oct 05, 2022 at 02:36:58PM +0530, Akhil P Oommen wrote: >>>>

Re: [Freedreno] [PATCH v7 4/6] clk: qcom: gpucc-sc7280: Add cx collapse reset support

2022-12-12 Thread Akhil P Oommen
On 12/9/2022 2:39 AM, Bjorn Andersson wrote: > On Thu, Dec 08, 2022 at 08:54:39PM +0530, Akhil P Oommen wrote: >> On 12/7/2022 9:16 PM, Ulf Hansson wrote: >>> On Wed, 5 Oct 2022 at 11:08, Akhil P Oommen >>> wrote: >>>> Allow a consumer driver to

Re: [Freedreno] [PATCH 3/7] drm/msm/a6xx: Add support for A640 speed binning

2022-12-12 Thread Akhil P Oommen
speed_bin(fuse); > > + if (adreno_cmp_rev(ADRENO_REV(6, 4, 0, ANY_ID), rev)) > + val = a640_get_speed_bin(fuse); > + > if (val == UINT_MAX) { > DRM_DEV_ERROR(dev, > "missing support for speed-bin: %u. Some OPPs may not > be supported by hardware\n", Reviewed-by: Akhil P Oommen -Akhil.

[Freedreno] [PATCH 0/5] Improve GPU reset sequence for Adreno GPU

2022-12-15 Thread Akhil P Oommen
s rebased on top of linux-next (20221215) since the changes span multiple drivers. [1] https://patchwork.freedesktop.org/series/107507/ Akhil P Oommen (4): clk: qcom: gdsc: Support 'synced_poweroff' genpd flag drm/msm/a6xx: Vote for cx gdsc from gpu driver drm/msm/a6xx: Remove cx g

[Freedreno] [PATCH 1/5] PM: domains: Allow a genpd consumer to require a synced power off

2022-12-15 Thread Akhil P Oommen
which requires that the 'gpucc cx gdsc' power domain should move to OFF state in hardware at least once before turning in ON again to clear the internal state. Signed-off-by: Ulf Hansson Signed-off-by: Akhil P Oommen --- @Ulf, I took the liberty to cleanup and post your patch. dri

<    1   2   3   4   5   6   7   8   >