return 0;
 
        if (RING_SPACE(chan, 4)) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-               info->flags |= FBINFO_HWACCEL_DISABLED;
+               nouveau_fbcon_gpu_lockup(info);
                return 0;
        }
 
        }
 
        if (ret) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-               info->flags |= FBINFO_HWACCEL_DISABLED;
+               nouveau_fbcon_gpu_lockup(info);
                return 0;
        }
 
 
        return 0;
 }
+
+void nouveau_fbcon_gpu_lockup(struct fb_info *info)
+{
+       struct nouveau_fbcon_par *par = info->par;
+       struct drm_device *dev = par->dev;
+
+       NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
+       info->flags |= FBINFO_HWACCEL_DISABLED;
+}
 
 int nv04_fbcon_accel_init(struct fb_info *info);
 int nv50_fbcon_accel_init(struct fb_info *info);
 
+void nouveau_fbcon_gpu_lockup(struct fb_info *info);
 #endif /* __NV50_FBCON_H__ */
 
 
                return;
 
        if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 4)) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-               info->flags |= FBINFO_HWACCEL_DISABLED;
+               nouveau_fbcon_gpu_lockup(info);
        }
 
        if (info->flags & FBINFO_HWACCEL_DISABLED) {
                return;
 
        if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 7)) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-               info->flags |= FBINFO_HWACCEL_DISABLED;
+               nouveau_fbcon_gpu_lockup(info);
        }
 
        if (info->flags & FBINFO_HWACCEL_DISABLED) {
        }
 
        if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 8)) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-               info->flags |= FBINFO_HWACCEL_DISABLED;
+               nouveau_fbcon_gpu_lockup(info);
        }
 
        if (info->flags & FBINFO_HWACCEL_DISABLED) {
                int iter_len = dsize > 128 ? 128 : dsize;
 
                if (RING_SPACE(chan, iter_len + 1)) {
-                       NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-                       info->flags |= FBINFO_HWACCEL_DISABLED;
+                       nouveau_fbcon_gpu_lockup(info);
                        cfb_imageblit(info, image);
                        return;
                }
                return ret;
 
        if (RING_SPACE(chan, 49)) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-               info->flags |= FBINFO_HWACCEL_DISABLED;
+               nouveau_fbcon_gpu_lockup(info);
                return 0;
        }
 
 
 
        if (!(info->flags & FBINFO_HWACCEL_DISABLED) &&
             RING_SPACE(chan, rect->rop == ROP_COPY ? 7 : 11)) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-
-               info->flags |= FBINFO_HWACCEL_DISABLED;
+               nouveau_fbcon_gpu_lockup(info);
        }
 
        if (info->flags & FBINFO_HWACCEL_DISABLED) {
                return;
 
        if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 12)) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-
-               info->flags |= FBINFO_HWACCEL_DISABLED;
+               nouveau_fbcon_gpu_lockup(info);
        }
 
        if (info->flags & FBINFO_HWACCEL_DISABLED) {
        }
 
        if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 11)) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
-               info->flags |= FBINFO_HWACCEL_DISABLED;
+               nouveau_fbcon_gpu_lockup(info);
        }
 
        if (info->flags & FBINFO_HWACCEL_DISABLED) {
                int push = dwords > 2047 ? 2047 : dwords;
 
                if (RING_SPACE(chan, push + 1)) {
-                       NV_ERROR(dev,
-                                "GPU lockup - switching to software fbcon\n");
-                       info->flags |= FBINFO_HWACCEL_DISABLED;
+                       nouveau_fbcon_gpu_lockup(info);
                        cfb_imageblit(info, image);
                        return;
                }
 
        ret = RING_SPACE(chan, 59);
        if (ret) {
-               NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
+               nouveau_fbcon_gpu_lockup(info);
                return ret;
        }