Lines Matching refs:info
64 nouveau_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
66 struct nouveau_fbdev *fbcon = info->par;
71 if (info->state != FBINFO_STATE_RUNNING)
75 if (!in_interrupt() && !(info->flags & FBINFO_HWACCEL_DISABLED) &&
77 if (device->info.family < NV_DEVICE_INFO_V0_TESLA)
78 ret = nv04_fbcon_fillrect(info, rect);
80 if (device->info.family < NV_DEVICE_INFO_V0_FERMI)
81 ret = nv50_fbcon_fillrect(info, rect);
83 ret = nvc0_fbcon_fillrect(info, rect);
91 nouveau_fbcon_gpu_lockup(info);
92 drm_fb_helper_cfb_fillrect(info, rect);
96 nouveau_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *image)
98 struct nouveau_fbdev *fbcon = info->par;
103 if (info->state != FBINFO_STATE_RUNNING)
107 if (!in_interrupt() && !(info->flags & FBINFO_HWACCEL_DISABLED) &&
109 if (device->info.family < NV_DEVICE_INFO_V0_TESLA)
110 ret = nv04_fbcon_copyarea(info, image);
112 if (device->info.family < NV_DEVICE_INFO_V0_FERMI)
113 ret = nv50_fbcon_copyarea(info, image);
115 ret = nvc0_fbcon_copyarea(info, image);
123 nouveau_fbcon_gpu_lockup(info);
124 drm_fb_helper_cfb_copyarea(info, image);
128 nouveau_fbcon_imageblit(struct fb_info *info, const struct fb_image *image)
130 struct nouveau_fbdev *fbcon = info->par;
135 if (info->state != FBINFO_STATE_RUNNING)
139 if (!in_interrupt() && !(info->flags & FBINFO_HWACCEL_DISABLED) &&
141 if (device->info.family < NV_DEVICE_INFO_V0_TESLA)
142 ret = nv04_fbcon_imageblit(info, image);
144 if (device->info.family < NV_DEVICE_INFO_V0_FERMI)
145 ret = nv50_fbcon_imageblit(info, image);
147 ret = nvc0_fbcon_imageblit(info, image);
155 nouveau_fbcon_gpu_lockup(info);
156 drm_fb_helper_cfb_imageblit(info, image);
160 nouveau_fbcon_sync(struct fb_info *info)
162 struct nouveau_fbdev *fbcon = info->par;
168 info->state != FBINFO_STATE_RUNNING ||
169 info->flags & FBINFO_HWACCEL_DISABLED)
178 nouveau_fbcon_gpu_lockup(info);
187 nouveau_fbcon_open(struct fb_info *info, int user)
189 struct nouveau_fbdev *fbcon = info->par;
200 nouveau_fbcon_release(struct fb_info *info, int user)
202 struct nouveau_fbdev *fbcon = info->par;
274 struct fb_info *info = fbcon->helper.fbdev;
277 if (drm->client.device.info.family < NV_DEVICE_INFO_V0_TESLA)
278 ret = nv04_fbcon_accel_init(info);
280 if (drm->client.device.info.family < NV_DEVICE_INFO_V0_FERMI)
281 ret = nv50_fbcon_accel_init(info);
283 ret = nvc0_fbcon_accel_init(info);
286 info->fbops = &nouveau_fbcon_ops;
292 struct fb_info *info = fbcon->helper.fbdev;
300 rect.width = info->var.xres_virtual;
301 rect.height = info->var.yres_virtual;
304 info->fbops->fb_fillrect(info, &rect);
316 struct fb_info *info;
357 if (chan && device->info.family >= NV_DEVICE_INFO_V0_TESLA) {
365 info = drm_fb_helper_alloc_fbi(helper);
366 if (IS_ERR(info)) {
367 ret = PTR_ERR(info);
375 info->flags = FBINFO_HWACCEL_DISABLED;
377 info->flags = FBINFO_HWACCEL_COPYAREA |
380 info->fbops = &nouveau_fbcon_sw_ops;
381 info->fix.smem_start = nvbo->bo.mem.bus.offset;
382 info->fix.smem_len = nvbo->bo.mem.num_pages << PAGE_SHIFT;
384 info->screen_base = nvbo_kmap_obj_iovirtual(nvbo);
385 info->screen_size = nvbo->bo.mem.num_pages << PAGE_SHIFT;
387 drm_fb_helper_fill_info(info, &fbcon->helper, sizes);
389 /* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */
399 vga_switcheroo_client_fb_set(dev->pdev, info);
434 void nouveau_fbcon_gpu_lockup(struct fb_info *info)
436 struct nouveau_fbdev *fbcon = info->par;
440 info->flags |= FBINFO_HWACCEL_DISABLED;
569 if (drm->client.device.info.ram_size <= 32 * 1024 * 1024)
572 if (drm->client.device.info.ram_size <= 64 * 1024 * 1024)