Lines Matching refs:fb
55 void *src, struct drm_framebuffer *fb, in gud_xrgb8888_to_r124() argument
80 drm_fb_xrgb8888_to_gray8(&dst_map, NULL, &vmap, fb, rect); in gud_xrgb8888_to_r124()
104 void *src, struct drm_framebuffer *fb, in gud_xrgb8888_to_color() argument
121 sbuf32 = src + (y * fb->pitches[0]); in gud_xrgb8888_to_color()
154 static int gud_prep_flush(struct gud_device *gdrm, struct drm_framebuffer *fb, in gud_prep_flush() argument
158 struct dma_buf_attachment *import_attach = fb->obj[0]->import_attach; in gud_prep_flush()
172 ret = drm_gem_fb_vmap(fb, map, map_data); in gud_prep_flush()
178 ret = drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE); in gud_prep_flush()
192 if (format != fb->format) { in gud_prep_flush()
194 len = gud_xrgb8888_to_r124(buf, format, vaddr, fb, rect); in gud_prep_flush()
200 drm_fb_xrgb8888_to_gray8(&dst, NULL, map_data, fb, rect); in gud_prep_flush()
202 drm_fb_xrgb8888_to_rgb332(&dst, NULL, map_data, fb, rect); in gud_prep_flush()
204 drm_fb_xrgb8888_to_rgb565(&dst, NULL, map_data, fb, rect, in gud_prep_flush()
207 drm_fb_xrgb8888_to_rgb888(&dst, NULL, map_data, fb, rect); in gud_prep_flush()
209 len = gud_xrgb8888_to_color(buf, format, vaddr, fb, rect); in gud_prep_flush()
212 drm_fb_swab(&dst, NULL, map_data, fb, rect, !import_attach); in gud_prep_flush()
213 } else if (compression && !import_attach && pitch == fb->pitches[0]) { in gud_prep_flush()
217 drm_fb_memcpy(&dst, NULL, map_data, fb, rect); in gud_prep_flush()
241 drm_gem_fb_end_cpu_access(fb, DMA_FROM_DEVICE); in gud_prep_flush()
243 drm_gem_fb_vunmap(fb, map); in gud_prep_flush()
287 static int gud_flush_rect(struct gud_device *gdrm, struct drm_framebuffer *fb, in gud_flush_rect() argument
294 drm_dbg(&gdrm->drm, "Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect)); in gud_flush_rect()
296 ret = gud_prep_flush(gdrm, fb, format, rect, &req); in gud_flush_rect()
344 static void gud_retry_failed_flush(struct gud_device *gdrm, struct drm_framebuffer *fb, in gud_retry_failed_flush() argument
354 if (!gdrm->fb) { in gud_retry_failed_flush()
355 drm_framebuffer_get(fb); in gud_retry_failed_flush()
356 gdrm->fb = fb; in gud_retry_failed_flush()
371 struct drm_framebuffer *fb; in gud_flush_work() local
381 fb = gdrm->fb; in gud_flush_work()
382 gdrm->fb = NULL; in gud_flush_work()
387 if (!fb) in gud_flush_work()
390 format = fb->format; in gud_flush_work()
407 ret = gud_flush_rect(gdrm, fb, format, &rect); in gud_flush_work()
413 gud_retry_failed_flush(gdrm, fb, &damage); in gud_flush_work()
415 dev_err_ratelimited(fb->dev->dev, in gud_flush_work()
424 drm_framebuffer_put(fb); in gud_flush_work()
429 static void gud_fb_queue_damage(struct gud_device *gdrm, struct drm_framebuffer *fb, in gud_fb_queue_damage() argument
436 if (fb != gdrm->fb) { in gud_fb_queue_damage()
437 old_fb = gdrm->fb; in gud_fb_queue_damage()
438 drm_framebuffer_get(fb); in gud_fb_queue_damage()
439 gdrm->fb = fb; in gud_fb_queue_damage()
460 struct drm_framebuffer *old_fb = old_plane_state->fb; in gud_pipe_check()
462 struct drm_framebuffer *fb = new_plane_state->fb; in gud_pipe_check() local
463 const struct drm_format_info *format = fb->format; in gud_pipe_check()
470 if (WARN_ON_ONCE(!fb)) in gud_pipe_check()
555 if (drm_dev_enter(fb->dev, &idx)) { in gud_pipe_check()
574 struct drm_framebuffer *fb = state->fb; in gud_pipe_update() local
582 if (gdrm->fb) { in gud_pipe_update()
583 drm_framebuffer_put(gdrm->fb); in gud_pipe_update()
584 gdrm->fb = NULL; in gud_pipe_update()
593 if (!old_state->fb) in gud_pipe_update()
596 if (fb && (crtc->state->mode_changed || crtc->state->connectors_changed)) in gud_pipe_update()
604 drm_rect_init(&damage, 0, 0, fb->width, fb->height); in gud_pipe_update()
605 gud_fb_queue_damage(gdrm, fb, &damage); in gud_pipe_update()