search for: nouveau_do_resume

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; >...