* [PATCH 1/3] drm/nouveau/tegra: Skip manual unpowergating when not necessary
@ 2017-06-09 12:25 Mikko Perttunen
[not found] ` <20170609122541.31118-1-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Mikko Perttunen @ 2017-06-09 12:25 UTC (permalink / raw)
To: bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Cc: thierry.reding-Re5JQEeQqe8AvxtiuMwx3w,
jonathanh-DDmLM1+adcrQT0dZR+AlfA, kholtta-DDmLM1+adcrQT0dZR+AlfA,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-tegra-u79uwXL29TY76Z2rM5mHXA, Mikko Perttunen
On Tegra186, powergating is handled by the BPMP power domain provider
and the "legacy" powergating API is not available. Therefore skip
these calls if we are attached to a power domain.
Signed-off-by: Mikko Perttunen <mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
index 6474bd2a6d07..3d42cdbbe9c0 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
@@ -51,10 +51,12 @@ nvkm_device_tegra_power_up(struct nvkm_device_tegra *tdev)
reset_control_assert(tdev->rst);
udelay(10);
- ret = tegra_powergate_remove_clamping(TEGRA_POWERGATE_3D);
- if (ret)
- goto err_clamp;
- udelay(10);
+ if (!tdev->pdev->dev.pm_domain) {
+ ret = tegra_powergate_remove_clamping(TEGRA_POWERGATE_3D);
+ if (ret)
+ goto err_clamp;
+ udelay(10);
+ }
reset_control_deassert(tdev->rst);
udelay(10);
--
2.13.0
^ permalink raw reply related [flat|nested] 5+ messages in thread[parent not found: <20170609122541.31118-1-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>]
* [PATCH 2/3] drm/nouveau/tegra: Don't leave GPU in reset [not found] ` <20170609122541.31118-1-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> @ 2017-06-09 12:25 ` Mikko Perttunen 2017-06-09 12:25 ` [PATCH 3/3] drm/nouveau: Skip vga_fini on non-PCI device Mikko Perttunen 2017-06-12 22:52 ` [PATCH 1/3] drm/nouveau/tegra: Skip manual unpowergating when not necessary Ben Skeggs 2 siblings, 0 replies; 5+ messages in thread From: Mikko Perttunen @ 2017-06-09 12:25 UTC (permalink / raw) To: bskeggs-H+wXaHxf7aLQT0dZR+AlfA, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Cc: thierry.reding-Re5JQEeQqe8AvxtiuMwx3w, jonathanh-DDmLM1+adcrQT0dZR+AlfA, kholtta-DDmLM1+adcrQT0dZR+AlfA, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, linux-tegra-u79uwXL29TY76Z2rM5mHXA, Mikko Perttunen On Tegra186 systems with certain firmware revisions, leaving the GPU in reset can cause a hang. To prevent this, don't leave the GPU in reset. Signed-off-by: Mikko Perttunen <mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> --- drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c index 3d42cdbbe9c0..189ed80e21ff 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c @@ -82,9 +82,6 @@ nvkm_device_tegra_power_down(struct nvkm_device_tegra *tdev) { int ret; - reset_control_assert(tdev->rst); - udelay(10); - clk_disable_unprepare(tdev->clk_pwr); if (tdev->clk_ref) clk_disable_unprepare(tdev->clk_ref); -- 2.13.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] drm/nouveau: Skip vga_fini on non-PCI device [not found] ` <20170609122541.31118-1-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2017-06-09 12:25 ` [PATCH 2/3] drm/nouveau/tegra: Don't leave GPU in reset Mikko Perttunen @ 2017-06-09 12:25 ` Mikko Perttunen 2017-06-12 22:52 ` [PATCH 1/3] drm/nouveau/tegra: Skip manual unpowergating when not necessary Ben Skeggs 2 siblings, 0 replies; 5+ messages in thread From: Mikko Perttunen @ 2017-06-09 12:25 UTC (permalink / raw) To: bskeggs-H+wXaHxf7aLQT0dZR+AlfA, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Cc: thierry.reding-Re5JQEeQqe8AvxtiuMwx3w, jonathanh-DDmLM1+adcrQT0dZR+AlfA, kholtta-DDmLM1+adcrQT0dZR+AlfA, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, linux-tegra-u79uwXL29TY76Z2rM5mHXA, Mikko Perttunen As with vga_init, this function doesn't make sense on non-PCI devices, and the Thunderbolt check in it dereferences a NULL pointer in that case. Add some code to skip this function when the device is not a PCI device. Signed-off-by: Mikko Perttunen <mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> --- drivers/gpu/drm/nouveau/nouveau_vga.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c index a4aacbc0cec8..b19dd4dc7099 100644 --- a/drivers/gpu/drm/nouveau/nouveau_vga.c +++ b/drivers/gpu/drm/nouveau/nouveau_vga.c @@ -115,6 +115,10 @@ nouveau_vga_fini(struct nouveau_drm *drm) struct drm_device *dev = drm->dev; bool runtime = false; + /* only relevant for PCI devices */ + if (!dev->pdev) + return; + vga_client_register(dev->pdev, NULL, NULL, NULL); if (pci_is_thunderbolt_attached(dev->pdev)) -- 2.13.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] drm/nouveau/tegra: Skip manual unpowergating when not necessary [not found] ` <20170609122541.31118-1-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2017-06-09 12:25 ` [PATCH 2/3] drm/nouveau/tegra: Don't leave GPU in reset Mikko Perttunen 2017-06-09 12:25 ` [PATCH 3/3] drm/nouveau: Skip vga_fini on non-PCI device Mikko Perttunen @ 2017-06-12 22:52 ` Ben Skeggs [not found] ` <c8569914-3264-bd12-9418-8bdaa4aaa379-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2 siblings, 1 reply; 5+ messages in thread From: Ben Skeggs @ 2017-06-12 22:52 UTC (permalink / raw) To: Mikko Perttunen, bskeggs-H+wXaHxf7aLQT0dZR+AlfA, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA, thierry.reding-Re5JQEeQqe8AvxtiuMwx3w, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW [-- Attachment #1.1.1: Type: text/plain, Size: 1307 bytes --] On 06/09/2017 10:25 PM, Mikko Perttunen wrote: > On Tegra186, powergating is handled by the BPMP power domain provider > and the "legacy" powergating API is not available. Therefore skip > these calls if we are attached to a power domain. Thanks Mikko, Taken all 3 patches into my tree. Ben. > > Signed-off-by: Mikko Perttunen <mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> > --- > drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c > index 6474bd2a6d07..3d42cdbbe9c0 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c > +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c > @@ -51,10 +51,12 @@ nvkm_device_tegra_power_up(struct nvkm_device_tegra *tdev) > reset_control_assert(tdev->rst); > udelay(10); > > - ret = tegra_powergate_remove_clamping(TEGRA_POWERGATE_3D); > - if (ret) > - goto err_clamp; > - udelay(10); > + if (!tdev->pdev->dev.pm_domain) { > + ret = tegra_powergate_remove_clamping(TEGRA_POWERGATE_3D); > + if (ret) > + goto err_clamp; > + udelay(10); > + } > > reset_control_deassert(tdev->rst); > udelay(10); > [-- Attachment #1.2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] [-- Attachment #2: Type: text/plain, Size: 154 bytes --] _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <c8569914-3264-bd12-9418-8bdaa4aaa379-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH 1/3] drm/nouveau/tegra: Skip manual unpowergating when not necessary [not found] ` <c8569914-3264-bd12-9418-8bdaa4aaa379-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2017-06-13 12:43 ` Mikko Perttunen 0 siblings, 0 replies; 5+ messages in thread From: Mikko Perttunen @ 2017-06-13 12:43 UTC (permalink / raw) To: Ben Skeggs, Mikko Perttunen, bskeggs-H+wXaHxf7aLQT0dZR+AlfA, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Cc: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, kholtta-DDmLM1+adcrQT0dZR+AlfA, thierry.reding-Re5JQEeQqe8AvxtiuMwx3w, linux-tegra-u79uwXL29TY76Z2rM5mHXA, jonathanh-DDmLM1+adcrQT0dZR+AlfA On 13.06.2017 01:52, Ben Skeggs wrote: > On 06/09/2017 10:25 PM, Mikko Perttunen wrote: >> On Tegra186, powergating is handled by the BPMP power domain provider >> and the "legacy" powergating API is not available. Therefore skip >> these calls if we are attached to a power domain. > Thanks Mikko, > > Taken all 3 patches into my tree. Thanks! > > Ben. > >> >> Signed-off-by: Mikko Perttunen <mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> >> --- >> drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 10 ++++++---- >> 1 file changed, 6 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c >> index 6474bd2a6d07..3d42cdbbe9c0 100644 >> --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c >> +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c >> @@ -51,10 +51,12 @@ nvkm_device_tegra_power_up(struct nvkm_device_tegra *tdev) >> reset_control_assert(tdev->rst); >> udelay(10); >> >> - ret = tegra_powergate_remove_clamping(TEGRA_POWERGATE_3D); >> - if (ret) >> - goto err_clamp; >> - udelay(10); >> + if (!tdev->pdev->dev.pm_domain) { >> + ret = tegra_powergate_remove_clamping(TEGRA_POWERGATE_3D); >> + if (ret) >> + goto err_clamp; >> + udelay(10); >> + } >> >> reset_control_deassert(tdev->rst); >> udelay(10); >> > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-06-13 12:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-09 12:25 [PATCH 1/3] drm/nouveau/tegra: Skip manual unpowergating when not necessary Mikko Perttunen
[not found] ` <20170609122541.31118-1-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2017-06-09 12:25 ` [PATCH 2/3] drm/nouveau/tegra: Don't leave GPU in reset Mikko Perttunen
2017-06-09 12:25 ` [PATCH 3/3] drm/nouveau: Skip vga_fini on non-PCI device Mikko Perttunen
2017-06-12 22:52 ` [PATCH 1/3] drm/nouveau/tegra: Skip manual unpowergating when not necessary Ben Skeggs
[not found] ` <c8569914-3264-bd12-9418-8bdaa4aaa379-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-06-13 12:43 ` Mikko Perttunen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox