* [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
* [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
* 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