search for: nouveau_fbcon_fini

Displaying 20 results from an estimated 30 matches for "nouveau_fbcon_fini".

2018 Jan 12
3
[Bug 104609] New: [G96, 9500 GT] Removing nouveau module results in BUG: unable to handle kernel NULL pointer dereference at 00000000000000b8
...ber of selected component (if applicable): Linux 4.14.0-3-amd64 (Debian 4.14.12-2) How reproducible: Didn't try. Steps to Reproduce: 1. sudo modprobe -r nouveau 2. 3. Actual results: [466017.592089] BUG: unable to handle kernel NULL pointer dereference at 00000000000000b8 [466017.592089] IP: nouveau_fbcon_fini+0xb8/0x120 [nouveau] [466017.592089] PGD 0 P4D 0 [466017.592089] Oops: 0000 [#1] SMP NOPTI [466017.592089] Modules linked in: ufs qnx4 hfsplus hfs minix ntfs vfat msdos fat jfs xfs dm_mod cfg80211 rfkill snd_hrtimer snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device iptable_filter...
2015 Nov 07
1
[PATCH] drm: fix issue by messing up runpm usage_counter
.../nouveau_drm.c +++ b/drm/nouveau/nouveau_drm.c @@ -481,7 +481,8 @@ nouveau_drm_unload(struct drm_device *dev) { struct nouveau_drm *drm = nouveau_drm(dev); - pm_runtime_get_sync(dev->dev); + if (atomic_read(&dev->dev->power.usage_count) == 0) + pm_runtime_get_sync(dev->dev); nouveau_fbcon_fini(dev); nouveau_accel_fini(drm); nouveau_hwmon_fini(dev); -- 2.6.3
2016 Jul 12
6
[PATCH] drm/nouveau/fbcon: fix deadlock with FBIOPUT_CON2FBMAP
...ce *dev) fbcon->dev = dev; drm->fbcon = fbcon; + INIT_WORK(&drm->fbdev_suspend_work, nouveau_fbcon_suspend_worker); + drm_fb_helper_prepare(dev, &fbcon->helper, &nouveau_fbcon_helper_funcs); ret = drm_fb_helper_init(dev, &fbcon->helper, @@ -571,6 +607,8 @@ nouveau_fbcon_fini(struct drm_device *dev) if (!drm->fbcon) return; + flush_work(&drm->fbdev_suspend_work); + nouveau_fbcon_accel_fini(dev); nouveau_fbcon_destroy(dev, drm->fbcon); kfree(drm->fbcon); diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.h b/drivers/gpu/drm/nouveau/nouveau_fb...
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
2016 Jul 12
0
[PATCH] drm/nouveau/fbcon: fix deadlock with FBIOPUT_CON2FBMAP
...rm->fbcon = fbcon; > > + INIT_WORK(&drm->fbdev_suspend_work, nouveau_fbcon_suspend_worker); > + > drm_fb_helper_prepare(dev, &fbcon->helper, &nouveau_fbcon_helper_funcs); > > ret = drm_fb_helper_init(dev, &fbcon->helper, > @@ -571,6 +607,8 @@ nouveau_fbcon_fini(struct drm_device *dev) > if (!drm->fbcon) > return; > > + flush_work(&drm->fbdev_suspend_work); > + > nouveau_fbcon_accel_fini(dev); > nouveau_fbcon_destroy(dev, drm->fbcon); > kfree(drm->fbcon); > diff --git a/drivers/gpu/drm/nouveau/nouveau...
2016 Jul 13
0
[PATCH] drm/nouveau/fbcon: fix deadlock with FBIOPUT_CON2FBMAP
...rm->fbcon = fbcon; > > + INIT_WORK(&drm->fbdev_suspend_work, nouveau_fbcon_suspend_worker); > + > drm_fb_helper_prepare(dev, &fbcon->helper, &nouveau_fbcon_helper_funcs); > > ret = drm_fb_helper_init(dev, &fbcon->helper, > @@ -571,6 +607,8 @@ nouveau_fbcon_fini(struct drm_device *dev) > if (!drm->fbcon) > return; > > + flush_work(&drm->fbdev_suspend_work); > + > nouveau_fbcon_accel_fini(dev); > nouveau_fbcon_destroy(dev, drm->fbcon); > kfree(drm->fbcon); > diff --git a/drivers/gpu/drm/nouveau/nouveau...
2012 Sep 12
1
[PATCH] drm/nouveau: fix early vram corruption originating from vgacon
...+fail_cli: + pci_write_config_byte(pdev, NV_PCI_VGAMEM_ENABLE, 1); + + console_lock(); + do_unblank_screen(1); + console_unlock(); + return ret; } static int nouveau_drm_unload(struct drm_device *dev) { + struct pci_dev *pdev = dev->pdev; struct nouveau_drm *drm = nouveau_drm(dev); nouveau_fbcon_fini(dev); @@ -375,6 +402,8 @@ nouveau_drm_unload(struct drm_device *dev) nouveau_vga_fini(drm); nouveau_cli_destroy(&drm->client); + + pci_write_config_byte(pdev, NV_PCI_VGAMEM_ENABLE, 1); return 0; } -- 1.7.12
2016 May 27
2
[PATCH 1/9] drm/nouveau: Don't leak runtime pm ref on driver unload
...ouveau/nouveau_drm.c > @@ -498,7 +498,10 @@ nouveau_drm_unload(struct drm_device *dev) > { > struct nouveau_drm *drm = nouveau_drm(dev); > > - pm_runtime_get_sync(dev->dev); > + if (nouveau_runtime_pm != 0) { > + pm_runtime_get_sync(dev->dev); > + } > + > nouveau_fbcon_fini(dev); > nouveau_accel_fini(drm); > nouveau_hwmon_fini(dev); > -- > 2.8.1 > > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/nouveau -- Kind regards, Peter W...
2016 May 24
0
[PATCH 1/9] drm/nouveau: Don't leak runtime pm ref on driver unload
.../drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -498,7 +498,10 @@ nouveau_drm_unload(struct drm_device *dev) { struct nouveau_drm *drm = nouveau_drm(dev); - pm_runtime_get_sync(dev->dev); + if (nouveau_runtime_pm != 0) { + pm_runtime_get_sync(dev->dev); + } + nouveau_fbcon_fini(dev); nouveau_accel_fini(drm); nouveau_hwmon_fini(dev); -- 2.8.1
2016 Aug 22
10
[PATCH v2] drm/nouveau: add a LED driver for the NVIDIA logo
...veau_fbcon_init(dev); + nouveau_led_init(dev); if (nouveau_runtime_pm != 0) { pm_runtime_use_autosuspend(dev->dev); @@ -499,6 +501,7 @@ nouveau_drm_unload(struct drm_device *dev) struct nouveau_drm *drm = nouveau_drm(dev); pm_runtime_get_sync(dev->dev); + nouveau_led_fini(dev); nouveau_fbcon_fini(dev); nouveau_accel_fini(drm); nouveau_hwmon_fini(dev); @@ -550,6 +553,8 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) struct nouveau_cli *cli; int ret; + nouveau_led_suspend(dev); + if (dev->mode_config.num_crtc) { NV_INFO(drm, "suspending console...\n");...
2016 May 29
0
[PATCH 1/9] drm/nouveau: Don't leak runtime pm ref on driver unload
...@ nouveau_drm_unload(struct drm_device *dev) > > { > > struct nouveau_drm *drm = nouveau_drm(dev); > > > > - pm_runtime_get_sync(dev->dev); > > + if (nouveau_runtime_pm != 0) { > > + pm_runtime_get_sync(dev->dev); > > + } > > + > > nouveau_fbcon_fini(dev); > > nouveau_accel_fini(drm); > > nouveau_hwmon_fini(dev); > > -- > > 2.8.1 > > > > _______________________________________________ > > Nouveau mailing list > > Nouveau at lists.freedesktop.org > > https://lists.freedesktop.org/mailma...
2016 Aug 23
1
[PATCH v2] drm/nouveau: add a LED driver for the NVIDIA logo
...pm_runtime_use_autosuspend(dev->dev); >> @@ -499,6 +501,7 @@ nouveau_drm_unload(struct drm_device *dev) >> struct nouveau_drm *drm = nouveau_drm(dev); >> >> pm_runtime_get_sync(dev->dev); >> + nouveau_led_fini(dev); >> nouveau_fbcon_fini(dev); >> nouveau_accel_fini(drm); >> nouveau_hwmon_fini(dev); >> @@ -550,6 +553,8 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) >> struct nouveau_cli *cli; >> int ret; >> >> + nouveau_led_suspend(dev);...
2016 Jul 13
2
[PATCH] drm/nouveau/fbcon: fix deadlock with FBIOPUT_CON2FBMAP
...gt; > + INIT_WORK(&drm->fbdev_suspend_work, nouveau_fbcon_suspend_worker); > > + > > drm_fb_helper_prepare(dev, &fbcon->helper, &nouveau_fbcon_helper_funcs); > > > > ret = drm_fb_helper_init(dev, &fbcon->helper, > > @@ -571,6 +607,8 @@ nouveau_fbcon_fini(struct drm_device *dev) > > if (!drm->fbcon) > > return; > > > > + flush_work(&drm->fbdev_suspend_work); > > + > > nouveau_fbcon_accel_fini(dev); > > nouveau_fbcon_destroy(dev, drm->fbcon); > > kfree(drm->fbcon); > >...
2016 Jun 08
8
[PATCH v2 00/15] Runtime pm ref leak bonanza
Second iteration of my endeavour to rid nouveau, radeon and amdgpu of runtime pm ref leaks. Patches 1 to 8 are identical to v1. Patch 9 of v1 modified the DRM core to turn off all CRTCs on driver unload. Based on feedback by Daniel Vetter, I've replaced this with a helper to turn off all CRTCs, which is called by nouveau, radeon and amdgpu on unload. In other words, this is now opt-in. So
2016 Aug 22
0
[PATCH v2] drm/nouveau: add a LED driver for the NVIDIA logo
...init(dev); nouveau_accel_init(drm); nouveau_fbcon_init(dev); + nouveau_led_init(dev); if (nouveau_runtime_pm != 0) { pm_runtime_use_autosuspend(dev->dev); @@ -510,6 +512,7 @@ nouveau_drm_unload(struct drm_device *dev) pm_runtime_forbid(dev->dev); } + nouveau_led_fini(dev); nouveau_fbcon_fini(dev); nouveau_accel_fini(drm); nouveau_hwmon_fini(dev); @@ -561,6 +564,8 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) struct nouveau_cli *cli; int ret; + nouveau_led_suspend(dev); + if (dev->mode_config.num_crtc) { NV_INFO(drm, "suspending console...\n");...
2016 May 03
0
[PATCH] drm/nouveau: add a LED driver for the NVIDIA logo
..._pm != 0) { > pm_runtime_use_autosuspend(dev->dev); > @@ -499,6 +501,7 @@ nouveau_drm_unload(struct drm_device *dev) > struct nouveau_drm *drm = nouveau_drm(dev); > > pm_runtime_get_sync(dev->dev); > + nouveau_led_fini(dev); > nouveau_fbcon_fini(dev); > nouveau_accel_fini(drm); > nouveau_hwmon_fini(dev); > @@ -550,6 +553,8 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) > struct nouveau_cli *cli; > int ret; > > + nouveau_led_suspend(dev); > + > if (dev-&gt...
2016 Aug 23
0
[PATCH v2] drm/nouveau: add a LED driver for the NVIDIA logo
..._pm != 0) { > pm_runtime_use_autosuspend(dev->dev); > @@ -499,6 +501,7 @@ nouveau_drm_unload(struct drm_device *dev) > struct nouveau_drm *drm = nouveau_drm(dev); > > pm_runtime_get_sync(dev->dev); > + nouveau_led_fini(dev); > nouveau_fbcon_fini(dev); > nouveau_accel_fini(drm); > nouveau_hwmon_fini(dev); > @@ -550,6 +553,8 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) > struct nouveau_cli *cli; > int ret; > > + nouveau_led_suspend(dev); > + > if (dev-&gt...
2016 Jul 13
0
[PATCH] drm/nouveau/fbcon: fix deadlock with FBIOPUT_CON2FBMAP
...rm->fbcon = fbcon; > > + INIT_WORK(&drm->fbdev_suspend_work, nouveau_fbcon_suspend_worker); > + > drm_fb_helper_prepare(dev, &fbcon->helper, &nouveau_fbcon_helper_funcs); > > ret = drm_fb_helper_init(dev, &fbcon->helper, > @@ -571,6 +607,8 @@ nouveau_fbcon_fini(struct drm_device *dev) > if (!drm->fbcon) > return; > > + flush_work(&drm->fbdev_suspend_work); Hmm, since suspend_work can theorectically rearm itself, this should be cancel_work_sync(). The copy'n'paste of the code looks fine, so (other than the bug copied...
2016 May 07
0
[PATCH] drm/nouveau: add a LED driver for the NVIDIA logo
..._pm != 0) { > pm_runtime_use_autosuspend(dev->dev); > @@ -499,6 +501,7 @@ nouveau_drm_unload(struct drm_device *dev) > struct nouveau_drm *drm = nouveau_drm(dev); > > pm_runtime_get_sync(dev->dev); > + nouveau_led_fini(dev); > nouveau_fbcon_fini(dev); > nouveau_accel_fini(drm); > nouveau_hwmon_fini(dev); > @@ -550,6 +553,8 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) > struct nouveau_cli *cli; > int ret; > > + nouveau_led_suspend(dev); > + > if (dev-&gt...
2016 Jul 15
1
[PATCH] drm/nouveau/fbcon: fix deadlock with FBIOPUT_CON2FBMAP
...gt; > + INIT_WORK(&drm->fbdev_suspend_work, nouveau_fbcon_suspend_worker); > > + > > drm_fb_helper_prepare(dev, &fbcon->helper, &nouveau_fbcon_helper_funcs); > > > > ret = drm_fb_helper_init(dev, &fbcon->helper, > > @@ -571,6 +607,8 @@ nouveau_fbcon_fini(struct drm_device *dev) > > if (!drm->fbcon) > > return; > > > > + flush_work(&drm->fbdev_suspend_work); > > Hmm, since suspend_work can theorectically rearm itself, this should be > cancel_work_sync(). How so? The worker calls with state = FBINFO...