Displaying 20 results from an estimated 55 matches for "nouveau_do_resume".
2014 Dec 30
2
[PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
....bdev, TTM_PL_VRAM);
> + }
>
> NV_INFO(drm, "waiting for kernel channels to go idle...\n");
> if (drm->cechan) {
> @@ -612,8 +615,9 @@ fail_display:
> }
> return ret;
> }
> +EXPORT_SYMBOL(nouveau_do_suspend);
>
> -static int
> +int
> nouveau_do_resume(struct drm_device *dev, bool runtime)
> {
> struct nouveau_drm *drm = nouveau_drm(dev);
> @@ -635,7 +639,8 @@ nouveau_do_resume(struct drm_device *dev, bool runtime)
> nvif_client_resume(&cli->base);
> }
>
> - nouveau_run_vbios_init(dev);
> + if (dev->pde...
2014 Dec 23
0
[PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
...evicting buffers...\n");
+ ttm_bo_evict_mm(&drm->ttm.bdev, TTM_PL_VRAM);
+ }
NV_INFO(drm, "waiting for kernel channels to go idle...\n");
if (drm->cechan) {
@@ -612,8 +615,9 @@ fail_display:
}
return ret;
}
+EXPORT_SYMBOL(nouveau_do_suspend);
-static int
+int
nouveau_do_resume(struct drm_device *dev, bool runtime)
{
struct nouveau_drm *drm = nouveau_drm(dev);
@@ -635,7 +639,8 @@ nouveau_do_resume(struct drm_device *dev, bool runtime)
nvif_client_resume(&cli->base);
}
- nouveau_run_vbios_init(dev);
+ if (dev->pdev)
+ nouveau_run_vbios_init(dev);
i...
2014 Dec 30
0
[PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
..._INFO(drm, "waiting for kernel channels to go idle...\n");
>> if (drm->cechan) {
>> @@ -612,8 +615,9 @@ fail_display:
>> }
>> return ret;
>> }
>> +EXPORT_SYMBOL(nouveau_do_suspend);
>>
>> -static int
>> +int
>> nouveau_do_resume(struct drm_device *dev, bool runtime)
>> {
>> struct nouveau_drm *drm = nouveau_drm(dev);
>> @@ -635,7 +639,8 @@ nouveau_do_resume(struct drm_device *dev, bool runtime)
>> nvif_client_resume(&cli->base);
>> }
>>
>> - nouveau_run_vbios_...
2016 Nov 08
4
[PATCH] drm/nouveau: fix LEDS_CLASS=m configuration
...fails to link when the
driver is built-in but the LED subsystem is a loadable module:
drivers/gpu/drm/nouveau/nouveau.o: In function `nouveau_do_suspend':
tvnv17.c:(.text.nouveau_do_suspend+0x10): undefined reference to `nouveau_led_suspend'
drivers/gpu/drm/nouveau/nouveau.o: In function `nouveau_do_resume':
tvnv17.c:(.text.nouveau_do_resume+0xf0): undefined reference to `nouveau_led_resume'
drivers/gpu/drm/nouveau/nouveau.o: In function `nouveau_drm_unload':
tvnv17.c:(.text.nouveau_drm_unload+0x34): undefined reference to `nouveau_led_fini'
drivers/gpu/drm/nouveau/nouveau.o: In funct...
2016 Nov 21
2
[PATCH 1/2] drm/nouveau: Rename acpi_work to hpd_work
We need to call drm_helper_hpd_irq_event() on resume to properly detect
monitor connection / disconnection on some laptops. For runtime-resume
(which gets called on resume from normal suspend too) we must call
drm_helper_hpd_irq_event() from a workqueue to avoid a deadlock.
Rename acpi_work to hpd_work, and move it out of the #ifdef CONFIG_ACPI
blocks to make it suitable for generic work.
2014 Dec 23
18
[PATCH 0/11] Add suspend/resume support for GK20A
Hi,
This series includes some pieces of fixes to complete the GK20A power
on/off sequences and add the suspend/resume support.
The patches 1/11 - 4/11 are based on the linux-next-20141219.
The patches 5/11 - 11/11 are based on the branch "linux-3.19" of Ben Skeggs's
tree (http://cgit.freedesktop.org/~darktama/nouveau).
Thanks,
Vince
Vince Hsu (4): (linux-next-20141219)
ARM:
2017 Jan 24
1
[PATCH 2/2] drm/nouveau: Queue hpd_work on (runtime) resume
.../gpu/drm/nouveau/nouveau_drm.c
> index 3100fd88..b564ab8 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -692,7 +692,12 @@ nouveau_pmops_resume(struct device *dev)
> return ret;
> pci_set_master(pdev);
>
> - return nouveau_do_resume(drm_dev, false);
> + ret = nouveau_do_resume(drm_dev, false);
> +
> + /* Monitors may have been connected / disconnected during suspend */
> + schedule_work(&nouveau_drm(drm_dev)->hpd_work);
> +
> + return ret;
> }
>
> static int
> @@ -766,6 +771,10 @@ nouveau...
2016 Nov 16
0
[PATCH] drm/nouveau: Don't enabling polling twice on runtime resume
...rivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 3100fd88..35ffa41 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -761,7 +761,14 @@ nouveau_pmops_runtime_resume(struct device *dev)
pci_set_master(pdev);
ret = nouveau_do_resume(drm_dev, true);
- drm_kms_helper_poll_enable(drm_dev);
+
+ /* If this card has CRTCs attached to it, nouveau_do_resume() will have
+ * already enabled polling. As such, make sure we don't enable it twice
+ * and deadlock
+ */
+ if (!drm_dev->mode_config.poll_enabled)
+ drm_kms_helper_pol...
2016 Nov 21
0
[PATCH 2/2] drm/nouveau: Queue hpd_work on (runtime) resume
...pu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 3100fd88..b564ab8 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -692,7 +692,12 @@ nouveau_pmops_resume(struct device *dev)
return ret;
pci_set_master(pdev);
- return nouveau_do_resume(drm_dev, false);
+ ret = nouveau_do_resume(drm_dev, false);
+
+ /* Monitors may have been connected / disconnected during suspend */
+ schedule_work(&nouveau_drm(drm_dev)->hpd_work);
+
+ return ret;
}
static int
@@ -766,6 +771,10 @@ nouveau_pmops_runtime_resume(struct device *dev)
nvif...
2019 Mar 28
0
[PATCH] nouveau: forward error generated while resuming objects tree
...a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 5020265bfbd9..56a107f3a0e1 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -802,10 +802,15 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime)
static int
nouveau_do_resume(struct drm_device *dev, bool runtime)
{
+ int ret = 0;
struct nouveau_drm *drm = nouveau_drm(dev);
NV_DEBUG(drm, "resuming object tree...\n");
- nvif_client_resume(&drm->master.base);
+ ret = nvif_client_resume(&drm->master.base);
+ if (ret) {
+ NV_ERROR(drm, "C...
2016 Nov 08
0
[PATCH] drm/nouveau: fix LEDS_CLASS=m configuration
...> driver is built-in but the LED subsystem is a loadable module:
>
> drivers/gpu/drm/nouveau/nouveau.o: In function `nouveau_do_suspend':
> tvnv17.c:(.text.nouveau_do_suspend+0x10): undefined reference to `nouveau_led_suspend'
> drivers/gpu/drm/nouveau/nouveau.o: In function `nouveau_do_resume':
> tvnv17.c:(.text.nouveau_do_resume+0xf0): undefined reference to `nouveau_led_resume'
> drivers/gpu/drm/nouveau/nouveau.o: In function `nouveau_drm_unload':
> tvnv17.c:(.text.nouveau_drm_unload+0x34): undefined reference to `nouveau_led_fini'
> drivers/gpu/drm/nouveau...
2017 Mar 02
2
[Bug 100035] New: nouveau runtime pm causes soft lockups and hangs during boot
...0x60 [nouveau]
[ 56.593313] nvkm_object_init+0x40/0x190 [nouveau]
[ 56.593320] nvkm_object_init+0x80/0x190 [nouveau]
[ 56.593328] nvkm_client_init+0xe/0x10 [nouveau]
[ 56.593343] nvkm_client_resume+0xe/0x10 [nouveau]
[ 56.593350] nvif_client_resume+0x14/0x20 [nouveau]
[ 56.593365] nouveau_do_resume+0x4d/0x130 [nouveau]
[ 56.593379] nouveau_pmops_runtime_resume+0x72/0x150 [nouveau]
[ 56.593381] pci_pm_runtime_resume+0x7b/0xa0
[ 56.593382] __rpm_callback+0xc6/0x210
[ 56.593383] ? pci_restore_standard_config+0x40/0x40
[ 56.593384] rpm_callback+0x24/0x80
[ 56.593385] ? pci_resto...
2019 Aug 23
1
[PATCH] drm/nouveau: Fix memory leak in nvkm_ram_get()
...;00000000c6f92dc0>] nvkm_object_init+0x74/0x110 [nouveau]
[<00000000c6f92dc0>] nvkm_object_init+0x74/0x110 [nouveau]
[<000000007416951c>] nvkm_client_resume+0xe/0x10 [nouveau]
[<00000000c5d31dfd>] nvif_client_resume+0x1d/0x20 [nouveau]
[<000000008f3a638f>] nouveau_do_resume+0x2d/0x150 [nouveau]
[<00000000df2c2b85>] nouveau_pmops_resume+0x6b/0xa0 [nouveau]
[<00000000f44c649d>] pci_pm_resume+0x71/0xb0
Signed-off-by: Yongxin Liu <yongxin.liu at windriver.com>
---
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c | 3 +++
1 file changed, 3 insertion...
2016 Jul 12
6
[PATCH] drm/nouveau/fbcon: fix deadlock with FBIOPUT_CON2FBMAP
..._crtc) {
NV_INFO(drm, "suspending console...\n");
- nouveau_fbcon_set_suspend(dev, 1);
+ nouveau_fbcon_set_suspend(dev, FBINFO_STATE_SUSPENDED, true);
NV_INFO(drm, "suspending display...\n");
ret = nouveau_display_suspend(dev, runtime);
if (ret)
@@ -635,7 +635,7 @@ nouveau_do_resume(struct drm_device *dev, bool runtime)
NV_INFO(drm, "resuming display...\n");
nouveau_display_resume(dev, runtime);
NV_INFO(drm, "resuming console...\n");
- nouveau_fbcon_set_suspend(dev, 0);
+ nouveau_fbcon_set_suspend(dev, FBINFO_STATE_RUNNING, false);
}
return...
2017 May 15
1
[PATCH] drm/nouveau: Fix drm poll_helper handling
...pm_runtime_allow(dev->dev);
pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put(dev->dev);
+ } else {
+ /* enable polling for external displays */
+ drm_kms_helper_poll_enable(dev);
}
return 0;
@@ -774,9 +777,6 @@ nouveau_pmops_runtime_resume(struct device *dev)
ret = nouveau_do_resume(drm_dev, true);
- if (!drm_dev->mode_config.poll_enabled)
- drm_kms_helper_poll_enable(drm_dev);
-
/* do magic */
nvif_mask(&device->object, 0x088488, (1 << 25), (1 << 25));
vga_switcheroo_set_dynamic_switch(pdev, VGA_SWITCHEROO_ON);
--
2.12.2
2017 Nov 21
2
[PATCH v2] drm: don't continue with anything after the GPU couldn't be woken up
...ct device *dev)
drm_dev->switch_power_state == DRM_SWITCH_POWER_DYNAMIC_OFF)
return 0;
- pci_set_power_state(pdev, PCI_D0);
- pci_restore_state(pdev);
- ret = pci_enable_device(pdev);
+ ret = nouveau_set_power_state_D0(pdev);
if (ret)
return ret;
- pci_set_master(pdev);
ret = nouveau_do_resume(drm_dev, false);
@@ -879,12 +897,9 @@ nouveau_pmops_runtime_resume(struct device *dev)
return -EBUSY;
}
- pci_set_power_state(pdev, PCI_D0);
- pci_restore_state(pdev);
- ret = pci_enable_device(pdev);
+ ret = nouveau_set_power_state_D0(pdev);
if (ret)
return ret;
- pci_set_master(pdev...
2013 Oct 03
2
[PATCH] drm/nouveau/fb: fix suspend/resume fbcon
...fbcon.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 383f4e6..6148758 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -544,7 +544,7 @@ nouveau_do_resume(struct drm_device *dev)
nouveau_pm_resume(dev);
if (dev->mode_config.num_crtc) {
- NV_INFO(drm, "resuming display...\n");
+ NV_INFO(drm, "resuming display and fbcon...\n");
nouveau_display_resume(dev);
}
return 0;
diff --git a/drivers/gpu/drm/nouveau/nouveau_fb...
2016 Jul 13
0
[PATCH] drm/nouveau/fbcon: fix deadlock with FBIOPUT_CON2FBMAP
...;suspending console...\n");
> - nouveau_fbcon_set_suspend(dev, 1);
> + nouveau_fbcon_set_suspend(dev, FBINFO_STATE_SUSPENDED, true);
> NV_INFO(drm, "suspending display...\n");
> ret = nouveau_display_suspend(dev, runtime);
> if (ret)
> @@ -635,7 +635,7 @@ nouveau_do_resume(struct drm_device *dev, bool runtime)
> NV_INFO(drm, "resuming display...\n");
> nouveau_display_resume(dev, runtime);
> NV_INFO(drm, "resuming console...\n");
> - nouveau_fbcon_set_suspend(dev, 0);
> + nouveau_fbcon_set_suspend(dev, FBINFO_STATE_RUNNIN...
2019 Apr 04
4
[PATCH] pci/quirks: Add quirk to reset nvgpu at boot for the Lenovo ThinkPad P50
...callback = RPM_GET_CALLBACK(dev, runtime_resume)
rpm_callback(callback, dev)
__rpm_callback
pci_pm_runtime_resume
drv->pm->runtime_resume
nouveau_pmops_runtime_resume
nouveau_do_resume
schedule_work(hpd_work) # <---
...
nouveau_display_hpd_work
pm_runtime_get_sync
drm_helper_hpd_irq_event
pm_runtime_mark_last_busy...
2018 Nov 24
1
[PATCH 2/2] drm/nouveau: Grab an rpm reference before/after DP AUX transactions
...m_task = current;
> +
> pci_set_power_state(pdev, PCI_D0);
> pci_restore_state(pdev);
> ret = pci_enable_device(pdev);
> if (ret)
> - return ret;
> + goto out;
> pci_set_master(pdev);
>
> ret = nouveau_do_resume(drm_dev, true);
> @@ -905,6 +913,8 @@ nouveau_pmops_runtime_resume(struct device *dev)
> /* Monitors may have been connected / disconnected during suspend */
> schedule_work(&nouveau_drm(drm_dev)->hpd_work);
>
> +out:
> + drm->rpm_task = NULL;
>...