Displaying 20 results from an estimated 103 matches for "nouveau_drm_load".
2019 Nov 26
0
nouveau regression [bisected] hotplug broken on gf108 since 4.1
...) call from drm_sysfs_connector_add().
One thing to note here is that drm_register_connector has the following at
the top:
if (!connector->dev->registered)
return 0;
Before the troublesome commit, when we still had a load callback, this
check would not be hit when nouveau_drm_load() (now nouveau_drm_device_init()
ran as drm_dev_register does:
dev->registered = true;
if (dev->driver->load) {
ret = dev->driver->load(dev, flags);
if (ret)
goto err_minors;
}
So would register...
2013 Jul 24
4
[PATCH] [RFC] drm/nouveau: bring back hdmi audio device after switcheroo power down
...);
+ return;
+ }
+
+ if ((drm->hdmi_device->class >> 8) != PCI_CLASS_MULTIMEDIA_HD_AUDIO) {
+ DRM_INFO("possible hdmi device not audio %d\n", drm->hdmi_device->class);
+ pci_dev_put(drm->hdmi_device);
+ drm->hdmi_device = NULL;
+ return;
+ }
+}
+
static int
nouveau_drm_load(struct drm_device *dev, unsigned long flags)
{
@@ -314,6 +339,8 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags)
INIT_LIST_HEAD(&drm->clients);
spin_lock_init(&drm->tile.lock);
+ nouveau_get_hdmi_dev(dev);
+
/* make sure AGP controller is in a consistent state...
2017 May 15
1
[PATCH] drm/nouveau: Fix drm poll_helper handling
...the mode_config.poll_enabled will be true,
but the poll itself is disabled.
To avoid the race caused by calling the poll_enable() from different paths,
this patch will enable the poll from one place, in the
nouveau_display_hpd_work().
In case the pm_runtime is disabled we will enable the poll in
nouveau_drm_load() once.
Fixes: cae9ff036eea ("drm/nouveau: Don't enabling polling twice on runtime resume")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
Cc: Lyude Paul <lyude at redhat.com>
Cc: Dave Airlie <airlied at redhat.com>
Cc: Gleb Nemshilov <gleb at fastmail....
2018 Dec 07
2
next/master boot bisection: Oops in nouveau driver on jetson-tk1
..., ~0ULL, &device);
- if (ret)
- return ret;
-
- pci_set_master(pdev);
-
- if (nouveau_atomic)
- driver_pci.driver_features |= DRIVER_ATOMIC;
-
- ret = drm_get_pci_dev(pdev, pent, &driver_pci);
- if (ret) {
- nvkm_device_del(&device);
- return ret;
- }
-
- return 0;
-}
-
static int
-nouveau_drm_load(struct drm_device *dev, unsigned long flags)
+nouveau_drm_device_init(struct drm_device *dev)
{
struct nouveau_drm *drm;
int ret;
@@ -613,7 +546,7 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags)
}
static void
-nouveau_drm_unload(struct drm_device *dev)
+nouveau_drm_device_...
2012 Sep 12
1
[PATCH] drm/nouveau: fix early vram corruption originating from vgacon
...;core/client.h>
@@ -51,6 +52,8 @@
#include "nouveau_ttm.h"
+#define NV_PCI_VGAMEM_ENABLE 0x54
+
MODULE_PARM_DESC(config, "option string to pass to driver core");
static char *nouveau_config;
module_param_named(config, nouveau_config, charp, 0400);
@@ -247,9 +250,20 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags)
struct nouveau_drm *drm;
int ret;
+ /* Blank initial console to prevent VRAM corruption while we initialize
+ * the HW. For vgacon it will move console memory from VGA VRAM to RAM.
+ */
+ console_lock();
+ do_blank_screen(1);
+ console_unlock();...
2014 Mar 19
2
[PATCH] drm: compute runpm on load, don't register autosuspend for non-runpm
...rs, that'd be great.
drm/nouveau_drm.c | 18 +++++-------------
drm/nouveau_vga.c | 4 +---
2 files changed, 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...
2016 Nov 08
4
[PATCH] drm/nouveau: fix LEDS_CLASS=m configuration
...:
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 function `nouveau_drm_load':
tvnv17.c:(.text.nouveau_drm_load+0x7d0): undefined reference to `nouveau_led_init'
This adds a separate Kconfig symbol for the LED support that
correctly tracks the dependencies.
Fixes: 8d021d71b324 ("drm/nouveau/drm/nouveau: add a LED driver for the NVIDIA logo")
Signed-off-b...
2018 Aug 23
3
[PATCH 0/3] drm/nouveau: Fixup module probe to add ->shutdown()
...klights
https://patchwork.freedesktop.org/series/47843/
This fixes issues with DRM connectors getting leaked on device removal,
due to hpd_work still being active when unloading nouveau.
============================== IMPORTANT ===============================
This also uncovered one small bug in nouveau_drm_load().
Lyude Paul (3):
drm/nouveau: Fix potential memory leak in nouveau_drm_load()
drm/nouveau: Start using new drm_dev initialization helpers
drm/nouveau: Shut down GPU on kernel shutdown
drivers/gpu/drm/nouveau/nouveau_drm.c | 180 +++++++++++++++-----------
1 file changed, 106 insertions(+...
2018 Feb 13
2
4.16-rc1: UBSAN warning in nouveau/nvkm/subdev/therm/base.c + oops in nvkm_therm_clkgate_fini
...f [nouveau]
[ 7.403382] nvkm_client_ioctl+0x1c/0x22 [nouveau]
[ 7.403643] nvif_object_ioctl+0x6f/0xff [nouveau]
[ 7.403903] nvif_object_init+0xd4/0x1de [nouveau]
[ 7.404164] nvif_device_init+0x21/0x5c [nouveau]
[ 7.404453] nouveau_cli_init+0x21f/0xe1f [nouveau]
[ 7.404733] ? nouveau_drm_load+0x1d/0xe11 [nouveau]
[ 7.405011] nouveau_drm_load+0x54/0xe11 [nouveau]
[ 7.405112] ? kernfs_new_node+0x2b/0x8e
[ 7.405209] ? kernfs_create_link+0x55/0xcd
[ 7.405323] ? drm_dev_register+0x12f/0x2e0 [drm]
[ 7.405437] drm_dev_register+0x168/0x2e0 [drm]
[ 7.405538] ? pci_enable_...
2017 Jul 12
2
[PATCH] drm/nouveau: split nouveau_drm_postclose back in pre/postclose
...lock(&drm->client.mutex);
+}
+static void
+nouveau_drm_postclose(struct drm_device *dev, struct drm_file *fpriv)
+{
+ struct nouveau_cli *cli = nouveau_cli(fpriv);
nouveau_cli_fini(cli);
kfree(cli);
pm_runtime_mark_last_busy(dev->dev);
@@ -964,6 +969,7 @@ driver_stub = {
.load = nouveau_drm_load,
.unload = nouveau_drm_unload,
.open = nouveau_drm_open,
+ .preclose = nouveau_drm_preclose,
.postclose = nouveau_drm_postclose,
.lastclose = nouveau_vga_lastclose,
--
2.13.2
2018 May 02
0
[PATCH] drm/nouveau: Fix deadlock in nv50_mstm_register_connector()
...drm_modeset_lock+0x71/0x130 [drm]
drm_helper_probe_single_connector_modes+0x7d/0x6b0 [drm_kms_helper]
drm_setup_crtcs+0x15e/0xc90 [drm_kms_helper]
__drm_fb_helper_initial_config_and_unlock+0x29/0x480 [drm_kms_helper]
nouveau_fbcon_init+0x138/0x1a0 [nouveau]
nouveau_drm_load+0x173/0x7e0 [nouveau]
drm_dev_register+0x134/0x1c0 [drm]
drm_get_pci_dev+0x8e/0x160 [drm]
nouveau_drm_probe+0x1a9/0x230 [nouveau]
pci_device_probe+0xcd/0x150
driver_probe_device+0x30b/0x480
__driver_attach+0xbc/0xe0
bus_for_each_dev+0x67/0x90...
2018 Dec 08
0
next/master boot bisection: Oops in nouveau driver on jetson-tk1
...> -
> - if (nouveau_atomic)
> - driver_pci.driver_features |= DRIVER_ATOMIC;
> -
> - ret = drm_get_pci_dev(pdev, pent, &driver_pci);
> - if (ret) {
> - nvkm_device_del(&device);
> - return ret;
> - }
> -
> - return 0;
> -}
> -
> static int
> -nouveau_drm_load(struct drm_device *dev, unsigned long flags)
> +nouveau_drm_device_init(struct drm_device *dev)
> {
> struct nouveau_drm *drm;
> int ret;
> @@ -613,7 +546,7 @@ nouveau_drm_load(struct drm_device *dev, unsigned long
> flags)
> }
>
> static void
> -nouveau_drm_u...
2018 Aug 02
1
[PATCH v4 2/8] drm/nouveau: Enable polling even if we have runtime PM
On Wed, Aug 01, 2018 at 05:14:52PM -0400, Lyude Paul wrote:
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -592,10 +592,11 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags)
> 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);
> }
> +
> +...
2016 Nov 08
0
[PATCH] drm/nouveau: fix LEDS_CLASS=m configuration
...xt.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 function `nouveau_drm_load':
> tvnv17.c:(.text.nouveau_drm_load+0x7d0): undefined reference to `nouveau_led_init'
>
> This adds a separate Kconfig symbol for the LED support that
> correctly tracks the dependencies.
>
> Fixes: 8d021d71b324 ("drm/nouveau/drm/nouveau: add a LED driver for the NVI...
2014 Feb 10
0
[PATCH] drm/nouveau: support for platform devices
...;
> - args.start = pci_resource_start(device->pdev, 1);
> + args.start = nv_device_resource_len(device, 1);
Should this have been nv_device_resource_start()?
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
[...]
> @@ -345,7 +368,7 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags)
> /* make sure AGP controller is in a consistent state before we
> * (possibly) execute vbios init tables (see nouveau_agp.h)
> */
> - if (drm_pci_device_is_agp(dev) && dev->agp) {
> + if (pdev && drm_pci_device_...
2014 Mar 19
0
[PATCH] drm: compute runpm on load, don't register autosuspend for non-runpm
...drm.c | 18 +++++-------------
> drm/nouveau_vga.c | 4 +---
> 2 files changed, 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 = nouv...
2018 Dec 10
2
next/master boot bisection: Oops in nouveau driver on jetson-tk1
..._pci.driver_features |= DRIVER_ATOMIC;
>> -
>> - ret = drm_get_pci_dev(pdev, pent, &driver_pci);
>> - if (ret) {
>> - nvkm_device_del(&device);
>> - return ret;
>> - }
>> -
>> - return 0;
>> -}
>> -
>> static int
>> -nouveau_drm_load(struct drm_device *dev, unsigned long flags)
>> +nouveau_drm_device_init(struct drm_device *dev)
>> {
>> struct nouveau_drm *drm;
>> int ret;
>> @@ -613,7 +546,7 @@ nouveau_drm_load(struct drm_device *dev, unsigned long
>> flags)
>> }
>>
>&...
2017 Mar 08
1
[PATCH 14/24] drm/nouveau: Merge pre/postclose hooks
...ck(&drm->client.mutex);
-}
-
-static void
-nouveau_drm_postclose(struct drm_device *dev, struct drm_file *fpriv)
-{
- struct nouveau_cli *cli = nouveau_cli(fpriv);
nouveau_cli_fini(cli);
kfree(cli);
pm_runtime_mark_last_busy(dev->dev);
@@ -974,7 +968,6 @@ driver_stub = {
.load = nouveau_drm_load,
.unload = nouveau_drm_unload,
.open = nouveau_drm_open,
- .preclose = nouveau_drm_preclose,
.postclose = nouveau_drm_postclose,
.lastclose = nouveau_vga_lastclose,
--
2.11.0
2017 May 08
1
[PATCH RESEND 1/4] drm/nouveau: Merge pre/postclose hooks
...ck(&drm->client.mutex);
-}
-
-static void
-nouveau_drm_postclose(struct drm_device *dev, struct drm_file *fpriv)
-{
- struct nouveau_cli *cli = nouveau_cli(fpriv);
nouveau_cli_fini(cli);
kfree(cli);
pm_runtime_mark_last_busy(dev->dev);
@@ -974,7 +968,6 @@ driver_stub = {
.load = nouveau_drm_load,
.unload = nouveau_drm_unload,
.open = nouveau_drm_open,
- .preclose = nouveau_drm_preclose,
.postclose = nouveau_drm_postclose,
.lastclose = nouveau_vga_lastclose,
--
2.11.0
2013 Jul 24
0
[PATCH] [RFC] drm/nouveau: bring back hdmi audio device after switcheroo power down
...e->class >> 8) != PCI_CLASS_MULTIMEDIA_HD_AUDIO) {
> + DRM_INFO("possible hdmi device not audio %d\n", drm->hdmi_device->class);
> + pci_dev_put(drm->hdmi_device);
> + drm->hdmi_device = NULL;
> + return;
> + }
> +}
> +
> static int
> nouveau_drm_load(struct drm_device *dev, unsigned long flags)
> {
> @@ -314,6 +339,8 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags)
> INIT_LIST_HEAD(&drm->clients);
> spin_lock_init(&drm->tile.lock);
>
> + nouveau_get_hdmi_dev(dev);
> +
> /* make sure...