Yes, thank you! On Sat, Nov 14, 2015 at 3:16 PM, Mark Kettenis <[email protected]> wrote:
> > Date: Sat, 14 Nov 2015 14:36:11 +0100 > > From: Lubos Boucek <[email protected]> > > > > trace > > ----- > > rw_enter_write() > > drm_modeset_lock_all() > > radeon_driver_lastclose_kms() > > drm_lastclose() > > drm_detach() > > config_detach() > > radeondrm_detach_kms() > > config_detach() > > radeondrm_forcedetach() > > radeondrm_attachhook() > > dohooks() > > main() > > Does the diff below fix the problem for you? > > > Index: radeon_kms.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon_kms.c,v > retrieving revision 1.42 > diff -u -p -r1.42 radeon_kms.c > --- radeon_kms.c 27 Sep 2015 16:13:23 -0000 1.42 > +++ radeon_kms.c 14 Nov 2015 14:14:11 -0000 > @@ -1091,13 +1091,16 @@ int radeon_driver_firstopen_kms(struct d > void radeon_driver_lastclose_kms(struct drm_device *dev) > { > struct radeon_device *rdev = dev->dev_private; > + struct drm_fb_helper *fb_helper = (void *)rdev->mode_info.rfbdev; > > #ifdef __sparc64__ > fbwscons_setcolormap(&rdev->sf, radeondrm_setcolor); > #endif > - drm_modeset_lock_all(dev); > - drm_fb_helper_restore_fbdev_mode((void *)rdev->mode_info.rfbdev); > - drm_modeset_unlock_all(dev); > + if (rdev->mode_info.mode_config_initialized) { > + drm_modeset_lock_all(dev); > + drm_fb_helper_restore_fbdev_mode(fb_helper); > + drm_modeset_unlock_all(dev); > + } > #ifdef notyet > vga_switcheroo_process_delayed_switch(); > #endif > -- Lubos Boucek <[email protected]>
