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