search for: nouveau_do_suspend

Displaying 20 results from an estimated 99 matches for "nouveau_do_suspend".

2018 Aug 07
0
[PATCH v5 06/13] drm/nouveau: Call optimus_dsm functions after nouveau_do_suspend()
It's not necessary to call these before we call nouveau_do_suspend(). Ideally; we shouldn't have to call this at all here, but getting that to work will take a bit more effort. So for the time being, just move this call after nouveau_do_suspend() to allow us to easily be able to abort the runtime suspend process in nouveau_do_suspend() Signed-off-by: Lyude Pa...
2018 Aug 07
0
[PATCH v5 07/13] drm/nouveau: Add missing unroll functions in nouveau_do_suspend()
Currently, it appears that nouveau_do_suspend() forgets to roll back suspending fbcon and suspending the device LEDs. We also currently skip the entire rollback process if nouveau_display_suspend() fails. So, fix that. Signed-off-by: Lyude Paul <lyude at redhat.com> Cc: stable at vger.kernel.org Cc: Lukas Wunner <lukas at wunner.de&g...
2018 Aug 07
0
[PATCH v5 08/13] drm/nouveau: Don't ignore nouveau_do_suspend() ret value
...f --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index db56e9b6b6af..f79b435368ec 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -842,6 +842,9 @@ nouveau_pmops_runtime_suspend(struct device *dev) } ret = nouveau_do_suspend(drm_dev, true); + if (ret) + return ret; + nouveau_switcheroo_optimus_dsm(); pci_save_state(pdev); pci_disable_device(pdev); -- 2.17.1
2014 Dec 30
2
[PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
...ORT_SYMBOL(nouveau_runtime_pm); > module_param_named(runpm, nouveau_runtime_pm, int, 0400); > > static struct drm_driver driver_stub; > @@ -543,7 +544,7 @@ nouveau_drm_remove(struct pci_dev *pdev) > nouveau_drm_device_remove(dev); > } > > -static int > +int > nouveau_do_suspend(struct drm_device *dev, bool runtime) > { > struct nouveau_drm *drm = nouveau_drm(dev); > @@ -559,8 +560,10 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) > return ret; > } > > - NV_INFO(drm, "evicting buffers...\n"); > - ttm_bo_evict_mm(&am...
2014 Dec 23
0
[PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
...lt (-1)"); int nouveau_runtime_pm = -1; +EXPORT_SYMBOL(nouveau_runtime_pm); module_param_named(runpm, nouveau_runtime_pm, int, 0400); static struct drm_driver driver_stub; @@ -543,7 +544,7 @@ nouveau_drm_remove(struct pci_dev *pdev) nouveau_drm_device_remove(dev); } -static int +int nouveau_do_suspend(struct drm_device *dev, bool runtime) { struct nouveau_drm *drm = nouveau_drm(dev); @@ -559,8 +560,10 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) return ret; } - NV_INFO(drm, "evicting buffers...\n"); - ttm_bo_evict_mm(&drm->ttm.bdev, TTM_PL_VRAM); + if (...
2018 Aug 07
19
[PATCH v5 00/13] Fix connector probing deadlocks from RPM bugs
...() in pmops_runtime_suspend() drm/nouveau: Remove useless poll_enable() call in switcheroo_set_state() drm/nouveau: Remove useless poll_disable() call in switcheroo_set_state() drm/nouveau: Remove useless poll_enable() call in drm_load() drm/nouveau: Call optimus_dsm functions after nouveau_do_suspend() drm/nouveau: Add missing unroll functions in nouveau_do_suspend() drm/nouveau: Don't ignore nouveau_do_suspend() ret value drm/nouveau: Fix deadlock with fb_helper by inhibiting it's HPD drm/nouveau: Use pm_runtime_get_noresume() in connector_detect() drm/nouveau: Respond to HPD...
2014 Dec 30
0
[PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
...le_param_named(runpm, nouveau_runtime_pm, int, 0400); >> >> static struct drm_driver driver_stub; >> @@ -543,7 +544,7 @@ nouveau_drm_remove(struct pci_dev *pdev) >> nouveau_drm_device_remove(dev); >> } >> >> -static int >> +int >> nouveau_do_suspend(struct drm_device *dev, bool runtime) >> { >> struct nouveau_drm *drm = nouveau_drm(dev); >> @@ -559,8 +560,10 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) >> return ret; >> } >> >> - NV_INFO(drm, "evicting buffers...\n&q...
2019 Nov 20
2
[PATCH v4] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...struct pci_dev *pdev = to_pci_dev(dev); struct drm_device *drm_dev = pci_get_drvdata(pdev); int ret; if (!nouveau_pmops_runtime()) { pm_runtime_forbid(dev); return -EBUSY; } nouveau_switcheroo_optimus_dsm(); ret = nouveau_do_suspend(drm_dev, true); pci_save_state(pdev); pci_disable_device(pdev); pci_ignore_hotplug(pdev); pci_set_power_state(pdev, PCI_D3cold); drm_dev->switch_power_state = DRM_SWITCH_POWER_DYNAMIC_OFF; return ret; } Normally PCI drivers leave the PCI bus PM th...
2016 Nov 08
4
[PATCH] drm/nouveau: fix LEDS_CLASS=m configuration
The newly introduced LED handling for nouveau 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 fun...
2013 Apr 08
1
[PATCH] drm/nouveau: idle all channels before suspending
...-by: Maarten Lankhorst <maarten.lankhorst at canonical.com> --- diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index b6bdc9f..5032c31 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -464,6 +464,23 @@ nouveau_do_suspend(struct drm_device *dev) NV_INFO(drm, "evicting buffers...\n"); ttm_bo_evict_mm(&drm->ttm.bdev, TTM_PL_VRAM); + list_for_each_entry(cli, &drm->clients, head) { + struct nouveau_abi16 *abi16 = cli->abi16; + struct nouveau_abi16_chan *chan; + + if (!abi16) + conti...
2016 Nov 08
0
[PATCH] drm/nouveau: fix LEDS_CLASS=m configuration
On Tue, Nov 8, 2016 at 8:56 AM, Arnd Bergmann <arnd at arndb.de> wrote: > The newly introduced LED handling for nouveau 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/nouve...
2016 Nov 08
2
[PATCH] drm/nouveau: Drop superfluous DRM_SWITCH_POWER_DYNAMIC_OFF checks
...ci_dev *pdev, struct drm_device *drm_dev = pci_get_drvdata(pdev); int ret; - if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF || - drm_dev->switch_power_state == DRM_SWITCH_POWER_DYNAMIC_OFF) + if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; ret = nouveau_do_suspend(drm_dev, false); @@ -688,8 +687,7 @@ static int nouveau_drm_probe(struct pci_dev *pdev, struct drm_device *drm_dev = pci_get_drvdata(pdev); int ret; - if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF || - drm_dev->switch_power_state == DRM_SWITCH_POWER_DYNAMIC_OFF) + if (drm_...
2019 Nov 20
0
[PATCH v4] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...struct drm_device *drm_dev = pci_get_drvdata(pdev); > int ret; > > if (!nouveau_pmops_runtime()) { > pm_runtime_forbid(dev); > return -EBUSY; > } > > nouveau_switcheroo_optimus_dsm(); > ret = nouveau_do_suspend(drm_dev, true); > pci_save_state(pdev); > pci_disable_device(pdev); > pci_ignore_hotplug(pdev); > pci_set_power_state(pdev, PCI_D3cold); > drm_dev->switch_power_state = DRM_SWITCH_POWER_DYNAMIC_OFF; > return ret; > } > >...
2019 Nov 20
1
[PATCH v4] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
On Wed, Nov 20, 2019 at 12:58:00PM +0100, Karol Herbst wrote: > overall, what I really want to know is, _why_ does it work on windows? So do I ;-) > Or what are we doing differently on Linux so that it doesn't work? If > anybody has any idea on how we could dig into this and figure it out > on this level, this would probably allow us to get closer to the root > cause? no?
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:
2019 May 07
2
[PATCH 1/5] drm: don't set the pci power state if the pci subsystem handles the ACPI bits
..._optimus_dsm() does here is check nouveau_dsm_priv.optimus_detected/optimus_skip_dsm. Why not just make add a function to check these that we call when setting up the DRM device, then store the result of that into drm->runpm_dsm instead of changing it every time we runtime suspend? > ret = nouveau_do_suspend(drm_dev, true); > pci_save_state(pdev); > pci_disable_device(pdev); > pci_ignore_hotplug(pdev); > - pci_set_power_state(pdev, PCI_D3cold); > + if (drm->runpm_dsm) > + pci_set_power_state(pdev, PCI_D3cold); > + > drm_dev->switch_power_state = DRM_SWITCH_POWER_D...
2016 Dec 14
1
[PATCH] drm/nouveau: Drop superfluous DRM_SWITCH_POWER_DYNAMIC_OFF checks
...int ret; > > > > - if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF || > > - drm_dev->switch_power_state == DRM_SWITCH_POWER_DYNAMIC_OFF) > > + if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF) > > return 0; > > > > ret = nouveau_do_suspend(drm_dev, false); > > @@ -688,8 +687,7 @@ static int nouveau_drm_probe(struct pci_dev *pdev, > > struct drm_device *drm_dev = pci_get_drvdata(pdev); > > int ret; > > > > - if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF || > > - drm_dev->sw...
2017 Jul 19
2
[PATCH] drm: disable vblank only if it got previously enabled
...able_and_save+0x55/0xc0 [drm] > [ 12.768250] ? drm_crtc_vblank_off+0xa9/0x1e0 [drm] > [ 12.768253] ? pci_pm_runtime_resume+0xa0/0xa0 > [ 12.768299] ? nouveau_display_fini+0x56/0xd0 [nouveau] > [ 12.768339] ? nouveau_display_suspend+0x51/0x110 [nouveau] > [ 12.768378] ? nouveau_do_suspend+0x76/0x1c0 [nouveau] > [ 12.768413] ? nouveau_pmops_runtime_suspend+0x54/0xb0 [nouveau] > [ 12.768416] ? pci_pm_runtime_suspend+0x5c/0x160 > [ 12.768419] ? __rpm_callback+0xb6/0x1e0 > [ 12.768423] ? kobject_uevent_env+0x111/0x5e0 > [ 12.768425] ? pci_pm_runtime_resume+...
2017 Jul 11
2
[regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
...0] drm_vblank_disable_and_save at ffffffffa020bbe9 [drm] #16 [ffffc900039f7c40] drm_crtc_vblank_off at ffffffffa020c3c0 [drm] #17 [ffffc900039f7cb0] nouveau_display_fini at ffffffffa048a4d6 [nouveau] #18 [ffffc900039f7ce0] nouveau_display_suspend at ffffffffa048ac4f [nouveau] #19 [ffffc900039f7d00] nouveau_do_suspend at ffffffffa047e5ec [nouveau] #20 [ffffc900039f7d38] nouveau_pmops_suspend at ffffffffa047e77d [nouveau] #21 [ffffc900039f7d50] pci_pm_suspend at ffffffff813b1ff0 #22 [ffffc900039f7d80] dpm_run_callback at ffffffff814c4dbd #23 [ffffc900039f7db8] __device_suspend at ffffffff814c5a61 #24 [ffffc900039...
2019 Aug 02
1
nouveau problem
...g 02 14:19:42 localhost.localdomain kernel: [<ffffffffc05b97a3>] nvkm_client_suspend+0x13/0x20 [nouveau] Aug 02 14:19:42 localhost.localdomain kernel: [<ffffffffc04f685a>] nvif_client_suspend+0x1a/0x20 [nouveau] Aug 02 14:19:42 localhost.localdomain kernel: [<ffffffffc05b7437>] nouveau_do_suspend+0x147/0x2d0 [nouveau] Aug 02 14:19:42 localhost.localdomain kernel: [<ffffffffc05b8317>] nouveau_pmops_runtime_suspend+0x47/0xa0 [nouveau] Aug 02 14:19:42 localhost.localdomain kernel: [<ffffffff949c6622>] pci_pm_runtime_suspend+0x62/0x190 Aug 02 14:19:42 localhost.localdomain kernel:...