search for: nouveau_drm_load

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