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