search for: nouveau_runtime_pm

Displaying 20 results from an estimated 53 matches for "nouveau_runtime_pm".

2014 Mar 19
2
[PATCH] drm: compute runpm on load, don't register autosuspend for non-runpm
...hanged, 6 insertions(+), 16 deletions(-) diff --git a/drm/nouveau_drm.c b/drm/nouveau_drm.c index 8f811a5..a6225ee 100644 --- a/drm/nouveau_drm.c +++ b/drm/nouveau_drm.c @@ -352,6 +352,10 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags) struct nouveau_drm *drm; int ret; + if (nouveau_runtime_pm == -1) + nouveau_runtime_pm = + nouveau_is_optimus() || nouveau_is_v1_dsm(); + ret = nouveau_cli_create(nouveau_name(dev), "DRM", sizeof(*drm), (void **)&drm); if (ret) @@ -443,7 +447,7 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags) nouveau_accel_init(...
2014 Mar 19
0
[PATCH] drm: compute runpm on load, don't register autosuspend for non-runpm
...rm/nouveau_drm.c b/drm/nouveau_drm.c > index 8f811a5..a6225ee 100644 > --- a/drm/nouveau_drm.c > +++ b/drm/nouveau_drm.c > @@ -352,6 +352,10 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags) > struct nouveau_drm *drm; > int ret; > > + if (nouveau_runtime_pm == -1) > + nouveau_runtime_pm = > + nouveau_is_optimus() || nouveau_is_v1_dsm(); > + > ret = nouveau_cli_create(nouveau_name(dev), "DRM", sizeof(*drm), > (void **)&drm); > if (ret) &...
2015 May 28
12
[PATCH v2 1/9] acpi: Rename v1 DSM to mux to avoid ambiguity
...roo_optimus_dsm(void) {} diff --git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c index 8904933..c06a7a1 100644 --- a/drm/nouveau/nouveau_drm.c +++ b/drm/nouveau/nouveau_drm.c @@ -719,7 +719,7 @@ nouveau_pmops_runtime_suspend(struct device *dev) } /* are we optimus enabled? */ - if (nouveau_runtime_pm == -1 && !nouveau_is_optimus() && !nouveau_is_v1_dsm()) { + if (nouveau_runtime_pm == -1 && !nouveau_is_optimus() && !nouveau_has_mux()) { DRM_DEBUG_DRIVER("failing to power off - not optimus\n"); pm_runtime_forbid(dev); return -EBUSY; @@ -780,7 +7...
2015 May 25
15
[PATCH 1/8] acpi: Rename v1 DSM to mux to avoid ambiguity
...roo_optimus_dsm(void) {} diff --git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c index 8904933..c06a7a1 100644 --- a/drm/nouveau/nouveau_drm.c +++ b/drm/nouveau/nouveau_drm.c @@ -719,7 +719,7 @@ nouveau_pmops_runtime_suspend(struct device *dev) } /* are we optimus enabled? */ - if (nouveau_runtime_pm == -1 && !nouveau_is_optimus() && !nouveau_is_v1_dsm()) { + if (nouveau_runtime_pm == -1 && !nouveau_is_optimus() && !nouveau_has_mux()) { DRM_DEBUG_DRIVER("failing to power off - not optimus\n"); pm_runtime_forbid(dev); return -EBUSY; @@ -780,7 +7...
2015 May 21
2
[PATCH 1/2] drm/nouveau: add staging module option
...-git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c > index 89049335b738..e4bd6ed51e73 100644 > --- a/drm/nouveau/nouveau_drm.c > +++ b/drm/nouveau/nouveau_drm.c > @@ -75,6 +75,10 @@ MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-1 > int nouveau_runtime_pm = -1; > module_param_named(runpm, nouveau_runtime_pm, int, 0400); > > +MODULE_PARM_DESC(staging, "enable staging APIs"); > +int nouveau_staging = 0; > +module_param_named(staging, nouveau_staging, int, 0400); > + > static struct drm_driver driver_stub; > static...
2017 Feb 24
1
[PATCH 3/5] drm/nouveau: Don't register Thunderbolt eGPU with vga_switcheroo
...n't register Thunderbolt eGPU with vga_switcheroo */ > + if (pci_is_thunderbolt_attached(dev->pdev)) > + return; I guess there's no way to move this inside vga_switcheroo_register_client() instead of putting the test in all the drivers? > + > if (nouveau_runtime_pm == 1) > runtime = true; > if ((nouveau_runtime_pm == -1) && (nouveau_is_optimus() || nouveau_is_v1_dsm())) > @@ -111,6 +115,11 @@ nouveau_vga_fini(struct nouveau_drm *drm) > struct drm_device *dev = drm->dev; > bool runtime = false;...
2015 May 21
2
[PATCH 1/2] drm/nouveau: add staging module option
...ouveau/nouveau_drm.c >>> index 89049335b738..e4bd6ed51e73 100644 >>> --- a/drm/nouveau/nouveau_drm.c >>> +++ b/drm/nouveau/nouveau_drm.c >>> @@ -75,6 +75,10 @@ MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-1 >>> int nouveau_runtime_pm = -1; >>> module_param_named(runpm, nouveau_runtime_pm, int, 0400); >>> >>> +MODULE_PARM_DESC(staging, "enable staging APIs"); >>> +int nouveau_staging = 0; >>> +module_param_named(staging, nouveau_staging, int, 0400); >>> + >>&...
2017 Feb 24
0
[PATCH 3/5] drm/nouveau: Don't register Thunderbolt eGPU with vga_switcheroo
.../gpu/drm/nouveau/nouveau_vga.c @@ -95,6 +95,10 @@ nouveau_vga_init(struct nouveau_drm *drm) vga_client_register(dev->pdev, dev, NULL, nouveau_vga_set_decode); + /* don't register Thunderbolt eGPU with vga_switcheroo */ + if (pci_is_thunderbolt_attached(dev->pdev)) + return; + if (nouveau_runtime_pm == 1) runtime = true; if ((nouveau_runtime_pm == -1) && (nouveau_is_optimus() || nouveau_is_v1_dsm())) @@ -111,6 +115,11 @@ nouveau_vga_fini(struct nouveau_drm *drm) struct drm_device *dev = drm->dev; bool runtime = false; + vga_client_register(dev->pdev, NULL, NULL, NULL);...
2014 Dec 30
2
[PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
...gt; index afb93bb72f97..0ed99ef80211 100644 > --- a/drm/nouveau_drm.c > +++ b/drm/nouveau_drm.c > @@ -72,6 +72,7 @@ module_param_named(modeset, nouveau_modeset, int, 0400); > > MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-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...
2015 May 20
3
[PATCH 0/2] drm/nouveau: option for staging ioctls and new SET_TILING ioctl
This patchset proposes to introduce a "staging" module option to dynamically enable features (mostly ioctls) that are merged but may be refined before they are declared "stable". The second patch illustrates the use of this staging option with the SET_TILING ioctl, which can be used to specify the tiling options of a PRIME-imported buffer. The staging parameter will allow us
2015 Jan 17
0
[PATCH RFC] nouveau: Add support for Gmux _DSM method
...atic inline void nouveau_switcheroo_optimus_dsm(void) {} diff --git a/drm/nouveau_drm.c b/drm/nouveau_drm.c index 9eb90a6..414acc4 100644 --- a/drm/nouveau_drm.c +++ b/drm/nouveau_drm.c @@ -719,7 +719,7 @@ nouveau_pmops_runtime_suspend(struct device *dev) } /* are we optimus enabled? */ - if (nouveau_runtime_pm == -1 && !nouveau_is_optimus() && !nouveau_is_v1_dsm()) { + if (nouveau_runtime_pm == -1 && !nouveau_is_optimus() && !nouveau_is_v1_dsm() && !nouveau_has_gmux_dsm()) { DRM_DEBUG_DRIVER("failing to power off - not optimus\n"); pm_runtime_forbid...
2016 Aug 02
0
[PATCH 0205/1285] Replace numeric parameter like 0444 with macro
...t;0 = disabled, 1 = enabled, 2 = headless)"); int nouveau_modeset = -1; -module_param_named(modeset, nouveau_modeset, int, 0400); +module_param_named(modeset, nouveau_modeset, int, S_IRUSR); MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-1)"); int nouveau_runtime_pm = -1; -module_param_named(runpm, nouveau_runtime_pm, int, 0400); +module_param_named(runpm, nouveau_runtime_pm, int, S_IRUSR); static struct drm_driver driver_stub; static struct drm_driver driver_pci; -- 2.9.2
2014 Dec 23
0
[PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
...nouveau_drm.c b/drm/nouveau_drm.c index afb93bb72f97..0ed99ef80211 100644 --- a/drm/nouveau_drm.c +++ b/drm/nouveau_drm.c @@ -72,6 +72,7 @@ module_param_named(modeset, nouveau_modeset, int, 0400); MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-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 *d...
2014 Dec 30
0
[PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
...99ef80211 100644 >> --- a/drm/nouveau_drm.c >> +++ b/drm/nouveau_drm.c >> @@ -72,6 +72,7 @@ module_param_named(modeset, nouveau_modeset, int, 0400); >> >> MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-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); >...
2015 May 28
3
[PATCH v2 8/9] acpi: Add support for Apple Gmux _DMS
...probably forgot some stuff as it doesn't want to work on my laptop. Pierre > + if (nouveau_has_dsm() && state == VGA_SWITCHEROO_OFF) > return; > > if (state == VGA_SWITCHEROO_ON) { > @@ -96,11 +96,11 @@ nouveau_vga_init(struct nouveau_drm *drm) > > if (nouveau_runtime_pm == 1) > runtime = true; > - if ((nouveau_runtime_pm == -1) && (nouveau_is_optimus() || > nouveau_has_mux())) > + if ((nouveau_runtime_pm == -1) && nouveau_has_dsm()) > runtime = true; > vga_switcheroo_register_client(dev->pdev, &nouveau_switcheroo_op...
2016 May 27
2
[PATCH 1/9] drm/nouveau: Don't leak runtime pm ref on driver unload
On Tue, May 24, 2016 at 06:03:27PM +0200, Lukas Wunner wrote: > nouveau_drm_load() calls pm_runtime_put() if nouveau_runtime_pm != 0, > but nouveau_drm_unload() calls pm_runtime_get_sync() unconditionally. > We therefore leak a runtime pm ref whenever nouveau is loaded with > runpm=0 and then unloaded. The GPU will subsequently never runtime > suspend even if nouveau is loaded again with runpm=1. > > Fix...
2016 May 24
5
[PATCH 0/9] Fix runtime pm ref leaks
In preparation for runtime pm on muxed dual GPU laptops, I've fixed all runtime pm ref leaks I could find in nouveau, radeon and amdgpu. To ease reviewing, I've pushed this series to GitHub: https://github.com/l1k/linux/commits/drm_runpm_fixes_v1 @Alex Deucher: I do not have an AMD GPU so couldn't test this beyond verifying that it compiles. Please double-check the patches and test
2015 Jun 15
2
[PATCH v2 2/2] drm/nouveau: add GEM_SET_TILING staging ioctl
...git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c > index 28860268cf38..45a2c88ebf8e 100644 > --- a/drm/nouveau/nouveau_drm.c > +++ b/drm/nouveau/nouveau_drm.c > @@ -75,6 +75,10 @@ MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-1 > int nouveau_runtime_pm = -1; > module_param_named(runpm, nouveau_runtime_pm, int, 0400); > > +MODULE_PARM_DESC(staging_tiling, "enable staging GEM_SET_TILING ioctl"); > +int nouveau_staging_tiling = 0; > +module_param_named(staging_tiling, nouveau_staging_tiling, int, 0600); > + > stati...
2015 Jun 15
4
[PATCH v2 0/2] drm/nouveau: option for staging ioctls and new GEM_SET_TILING ioctl
Second version of this patchset addressing Ben's comments and fixing a few extra things. This patchset proposes to introduce a "staging" module option to dynamically enable features (mostly ioctls) that are merged but may be refined before they are declared "stable". The second patch illustrates the use of this staging option with the SET_TILING ioctl, which can be used to
2015 Jun 15
2
[PATCH v2 2/2] drm/nouveau: add GEM_SET_TILING staging ioctl
...-git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c > index 28860268cf38..45a2c88ebf8e 100644 > --- a/drm/nouveau/nouveau_drm.c > +++ b/drm/nouveau/nouveau_drm.c > @@ -75,6 +75,10 @@ MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-1 > int nouveau_runtime_pm = -1; > module_param_named(runpm, nouveau_runtime_pm, int, 0400); > > +MODULE_PARM_DESC(staging_tiling, "enable staging GEM_SET_TILING ioctl"); > +int nouveau_staging_tiling = 0; > +module_param_named(staging_tiling, nouveau_staging_tiling, int, 0600); Please use _unsaf...