|
@@ -16,9 +16,7 @@ nv50_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
|
|
|
|
|
|
if (!(info->flags & FBINFO_HWACCEL_DISABLED) &&
|
|
if (!(info->flags & FBINFO_HWACCEL_DISABLED) &&
|
|
RING_SPACE(chan, rect->rop == ROP_COPY ? 7 : 11)) {
|
|
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) {
|
|
if (info->flags & FBINFO_HWACCEL_DISABLED) {
|
|
@@ -60,9 +58,7 @@ nv50_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region)
|
|
return;
|
|
return;
|
|
|
|
|
|
if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 12)) {
|
|
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) {
|
|
@@ -105,8 +101,7 @@ nv50_fbcon_imageblit(struct fb_info *info, const struct fb_image *image)
|
|
}
|
|
}
|
|
|
|
|
|
if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 11)) {
|
|
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) {
|
|
if (info->flags & FBINFO_HWACCEL_DISABLED) {
|
|
@@ -139,9 +134,7 @@ nv50_fbcon_imageblit(struct fb_info *info, const struct fb_image *image)
|
|
int push = dwords > 2047 ? 2047 : dwords;
|
|
int push = dwords > 2047 ? 2047 : dwords;
|
|
|
|
|
|
if (RING_SPACE(chan, push + 1)) {
|
|
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);
|
|
cfb_imageblit(info, image);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -203,7 +196,7 @@ nv50_fbcon_accel_init(struct fb_info *info)
|
|
|
|
|
|
ret = RING_SPACE(chan, 59);
|
|
ret = RING_SPACE(chan, 59);
|
|
if (ret) {
|
|
if (ret) {
|
|
- NV_ERROR(dev, "GPU lockup - switching to software fbcon\n");
|
|
|
|
|
|
+ nouveau_fbcon_gpu_lockup(info);
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|