Lines Matching full:fb

53 	return ifbdev->fb->frontbuffer;  in to_frontbuffer()
120 struct drm_framebuffer *fb; in intelfb_alloc() local
148 * If the FB is too big, just don't use it since fbdev is not very in intelfb_alloc()
163 fb = intel_framebuffer_create(obj, &mode_cmd); in intelfb_alloc()
165 if (IS_ERR(fb)) in intelfb_alloc()
166 return PTR_ERR(fb); in intelfb_alloc()
168 ifbdev->fb = to_intel_framebuffer(fb); in intelfb_alloc()
177 struct intel_framebuffer *intel_fb = ifbdev->fb; in intelfb_create()
198 "BIOS fb too small (%dx%d), we require (%dx%d)," in intelfb_create()
203 intel_fb = ifbdev->fb = NULL; in intelfb_create()
207 "no BIOS fb, allocating a new one\n"); in intelfb_create()
211 intel_fb = ifbdev->fb; in intelfb_create()
213 drm_dbg_kms(&dev_priv->drm, "re-using BIOS fb\n"); in intelfb_create()
222 * This also validates that any existing fb inherited from the in intelfb_create()
225 vma = intel_pin_and_fence_fb_obj(&ifbdev->fb->base, false, in intelfb_create()
241 ifbdev->helper.fb = &ifbdev->fb->base; in intelfb_create()
289 drm_dbg_kms(&dev_priv->drm, "allocated %dx%d fb: 0x%08x\n", in intelfb_create()
290 ifbdev->fb->base.width, ifbdev->fb->base.height, in intelfb_create()
322 if (ifbdev->fb) in intel_fbdev_destroy()
323 drm_framebuffer_remove(&ifbdev->fb->base); in intel_fbdev_destroy()
332 * fb, and if so, we re-use it for the fbdev configuration.
334 * Note we only support a single fb shared across pipes for boot (mostly for
341 struct intel_framebuffer *fb = NULL; in intel_fbdev_init_bios() local
345 /* Find the largest fb */ in intel_fbdev_init_bios()
354 intel_fb_obj(plane_state->uapi.fb); in intel_fbdev_init_bios()
365 "[PLANE:%d:%s] no fb, skipping\n", in intel_fbdev_init_bios()
372 "found possible fb from [PLANE:%d:%s]\n", in intel_fbdev_init_bios()
374 fb = to_intel_framebuffer(plane_state->uapi.fb); in intel_fbdev_init_bios()
379 if (!fb) { in intel_fbdev_init_bios()
400 drm_dbg_kms(&i915->drm, "checking [PLANE:%d:%s] for BIOS fb\n", in intel_fbdev_init_bios()
404 * See if the plane fb we found above will fit on this in intel_fbdev_init_bios()
405 * pipe. Note we need to use the selected fb's pitch and bpp in intel_fbdev_init_bios()
409 cur_size = cur_size * fb->base.format->cpp[0]; in intel_fbdev_init_bios()
410 if (fb->base.pitches[0] < cur_size) { in intel_fbdev_init_bios()
412 "fb not wide enough for [PLANE:%d:%s] (%d vs %d)\n", in intel_fbdev_init_bios()
414 cur_size, fb->base.pitches[0]); in intel_fbdev_init_bios()
415 fb = NULL; in intel_fbdev_init_bios()
420 cur_size = intel_fb_align_height(&fb->base, 0, cur_size); in intel_fbdev_init_bios()
421 cur_size *= fb->base.pitches[0]; in intel_fbdev_init_bios()
427 fb->base.format->cpp[0] * 8, in intel_fbdev_init_bios()
432 "fb not big enough for [PLANE:%d:%s] (%d vs %d)\n", in intel_fbdev_init_bios()
435 fb = NULL; in intel_fbdev_init_bios()
440 "fb big enough [PLANE:%d:%s] (%d >= %d)\n", in intel_fbdev_init_bios()
445 if (!fb) { in intel_fbdev_init_bios()
447 "BIOS fb not suitable for all pipes, not using\n"); in intel_fbdev_init_bios()
451 ifbdev->preferred_bpp = fb->base.format->cpp[0] * 8; in intel_fbdev_init_bios()
452 ifbdev->fb = fb; in intel_fbdev_init_bios()
454 drm_framebuffer_get(&ifbdev->fb->base); in intel_fbdev_init_bios()
468 drm_WARN(dev, !plane_state->uapi.fb, in intel_fbdev_init_bios()
469 "re-used BIOS config but lost an fb on [PLANE:%d:%s]\n", in intel_fbdev_init_bios()
474 drm_dbg_kms(&i915->drm, "using BIOS fb for initial console\n"); in intel_fbdev_init_bios()
641 !i915_gem_object_is_shmem(intel_fb_obj(&ifbdev->fb->base))) in intel_fbdev_set_suspend()