|
@@ -223,7 +223,7 @@ void
|
|
nouveau_fbcon_accel_save_disable(struct drm_device *dev)
|
|
nouveau_fbcon_accel_save_disable(struct drm_device *dev)
|
|
{
|
|
{
|
|
struct nouveau_drm *drm = nouveau_drm(dev);
|
|
struct nouveau_drm *drm = nouveau_drm(dev);
|
|
- if (drm->fbcon) {
|
|
|
|
|
|
+ if (drm->fbcon && drm->fbcon->helper.fbdev) {
|
|
drm->fbcon->saved_flags = drm->fbcon->helper.fbdev->flags;
|
|
drm->fbcon->saved_flags = drm->fbcon->helper.fbdev->flags;
|
|
drm->fbcon->helper.fbdev->flags |= FBINFO_HWACCEL_DISABLED;
|
|
drm->fbcon->helper.fbdev->flags |= FBINFO_HWACCEL_DISABLED;
|
|
}
|
|
}
|
|
@@ -233,7 +233,7 @@ void
|
|
nouveau_fbcon_accel_restore(struct drm_device *dev)
|
|
nouveau_fbcon_accel_restore(struct drm_device *dev)
|
|
{
|
|
{
|
|
struct nouveau_drm *drm = nouveau_drm(dev);
|
|
struct nouveau_drm *drm = nouveau_drm(dev);
|
|
- if (drm->fbcon) {
|
|
|
|
|
|
+ if (drm->fbcon && drm->fbcon->helper.fbdev) {
|
|
drm->fbcon->helper.fbdev->flags = drm->fbcon->saved_flags;
|
|
drm->fbcon->helper.fbdev->flags = drm->fbcon->saved_flags;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -245,7 +245,8 @@ nouveau_fbcon_accel_fini(struct drm_device *dev)
|
|
struct nouveau_fbdev *fbcon = drm->fbcon;
|
|
struct nouveau_fbdev *fbcon = drm->fbcon;
|
|
if (fbcon && drm->channel) {
|
|
if (fbcon && drm->channel) {
|
|
console_lock();
|
|
console_lock();
|
|
- fbcon->helper.fbdev->flags |= FBINFO_HWACCEL_DISABLED;
|
|
|
|
|
|
+ if (fbcon->helper.fbdev)
|
|
|
|
+ fbcon->helper.fbdev->flags |= FBINFO_HWACCEL_DISABLED;
|
|
console_unlock();
|
|
console_unlock();
|
|
nouveau_channel_idle(drm->channel);
|
|
nouveau_channel_idle(drm->channel);
|
|
nvif_object_fini(&fbcon->twod);
|
|
nvif_object_fini(&fbcon->twod);
|