Lines Matching full:fb
51 return ifbdev->fb->frontbuffer; in to_frontbuffer()
118 struct drm_framebuffer *fb; in intelfb_alloc() local
140 /* If the FB is too big, just don't use it since fbdev is not very in intelfb_alloc()
153 fb = intel_framebuffer_create(obj, &mode_cmd); in intelfb_alloc()
155 if (IS_ERR(fb)) in intelfb_alloc()
156 return PTR_ERR(fb); in intelfb_alloc()
158 ifbdev->fb = to_intel_framebuffer(fb); in intelfb_alloc()
167 struct intel_framebuffer *intel_fb = ifbdev->fb; in intelfb_create()
187 "BIOS fb too small (%dx%d), we require (%dx%d)," in intelfb_create()
192 intel_fb = ifbdev->fb = NULL; in intelfb_create()
196 "no BIOS fb, allocating a new one\n"); in intelfb_create()
200 intel_fb = ifbdev->fb; in intelfb_create()
202 drm_dbg_kms(&dev_priv->drm, "re-using BIOS fb\n"); in intelfb_create()
211 * This also validates that any existing fb inherited from the in intelfb_create()
214 vma = intel_pin_and_fence_fb_obj(&ifbdev->fb->base, in intelfb_create()
230 ifbdev->helper.fb = &ifbdev->fb->base; in intelfb_create()
264 drm_dbg_kms(&dev_priv->drm, "allocated %dx%d fb: 0x%08x\n", in intelfb_create()
265 ifbdev->fb->base.width, ifbdev->fb->base.height, in intelfb_create()
297 if (ifbdev->fb) in intel_fbdev_destroy()
298 drm_framebuffer_remove(&ifbdev->fb->base); in intel_fbdev_destroy()
307 * fb, and if so, we re-use it for the fbdev configuration.
309 * Note we only support a single fb shared across pipes for boot (mostly for
316 struct intel_framebuffer *fb = NULL; in intel_fbdev_init_bios() local
321 /* Find the largest fb */ in intel_fbdev_init_bios()
324 intel_fb_obj(crtc->primary->state->fb); in intel_fbdev_init_bios()
329 "pipe %c not active or no fb, skipping\n", in intel_fbdev_init_bios()
336 "found possible fb from plane %c\n", in intel_fbdev_init_bios()
338 fb = to_intel_framebuffer(crtc->primary->state->fb); in intel_fbdev_init_bios()
343 if (!fb) { in intel_fbdev_init_bios()
362 drm_dbg_kms(&i915->drm, "checking plane %c for BIOS fb\n", in intel_fbdev_init_bios()
366 * See if the plane fb we found above will fit on this in intel_fbdev_init_bios()
367 * pipe. Note we need to use the selected fb's pitch and bpp in intel_fbdev_init_bios()
371 cur_size = cur_size * fb->base.format->cpp[0]; in intel_fbdev_init_bios()
372 if (fb->base.pitches[0] < cur_size) { in intel_fbdev_init_bios()
374 "fb not wide enough for plane %c (%d vs %d)\n", in intel_fbdev_init_bios()
376 cur_size, fb->base.pitches[0]); in intel_fbdev_init_bios()
377 fb = NULL; in intel_fbdev_init_bios()
382 cur_size = intel_fb_align_height(&fb->base, 0, cur_size); in intel_fbdev_init_bios()
383 cur_size *= fb->base.pitches[0]; in intel_fbdev_init_bios()
389 fb->base.format->cpp[0] * 8, in intel_fbdev_init_bios()
394 "fb not big enough for plane %c (%d vs %d)\n", in intel_fbdev_init_bios()
397 fb = NULL; in intel_fbdev_init_bios()
402 "fb big enough for plane %c (%d >= %d)\n", in intel_fbdev_init_bios()
407 if (!fb) { in intel_fbdev_init_bios()
409 "BIOS fb not suitable for all pipes, not using\n"); in intel_fbdev_init_bios()
413 ifbdev->preferred_bpp = fb->base.format->cpp[0] * 8; in intel_fbdev_init_bios()
414 ifbdev->fb = fb; in intel_fbdev_init_bios()
416 drm_framebuffer_get(&ifbdev->fb->base); in intel_fbdev_init_bios()
425 drm_WARN(dev, !crtc->primary->state->fb, in intel_fbdev_init_bios()
426 "re-used BIOS config but lost an fb on crtc %d\n", in intel_fbdev_init_bios()
431 drm_dbg_kms(&i915->drm, "using BIOS fb for initial console\n"); in intel_fbdev_init_bios()
598 intel_fb_obj(&ifbdev->fb->base)->stolen) in intel_fbdev_set_suspend()