• Home
  • Raw
  • Download

Lines Matching refs:buffer

272 static void drm_client_buffer_delete(struct drm_client_buffer *buffer)  in drm_client_buffer_delete()  argument
274 if (buffer->gem) { in drm_client_buffer_delete()
275 drm_gem_vunmap_unlocked(buffer->gem, &buffer->map); in drm_client_buffer_delete()
276 drm_gem_object_put(buffer->gem); in drm_client_buffer_delete()
279 kfree(buffer); in drm_client_buffer_delete()
289 struct drm_client_buffer *buffer; in drm_client_buffer_create() local
293 buffer = kzalloc(sizeof(*buffer), GFP_KERNEL); in drm_client_buffer_create()
294 if (!buffer) in drm_client_buffer_create()
297 buffer->client = client; in drm_client_buffer_create()
312 buffer->pitch = dumb_args.pitch; in drm_client_buffer_create()
313 buffer->gem = obj; in drm_client_buffer_create()
316 return buffer; in drm_client_buffer_create()
319 drm_client_buffer_delete(buffer); in drm_client_buffer_create()
344 int drm_client_buffer_vmap_local(struct drm_client_buffer *buffer, in drm_client_buffer_vmap_local() argument
347 struct drm_gem_object *gem = buffer->gem; in drm_client_buffer_vmap_local()
348 struct iosys_map *map = &buffer->map; in drm_client_buffer_vmap_local()
374 void drm_client_buffer_vunmap_local(struct drm_client_buffer *buffer) in drm_client_buffer_vunmap_local() argument
376 struct drm_gem_object *gem = buffer->gem; in drm_client_buffer_vunmap_local()
377 struct iosys_map *map = &buffer->map; in drm_client_buffer_vunmap_local()
405 drm_client_buffer_vmap(struct drm_client_buffer *buffer, in drm_client_buffer_vmap() argument
408 struct drm_gem_object *gem = buffer->gem; in drm_client_buffer_vmap()
409 struct iosys_map *map = &buffer->map; in drm_client_buffer_vmap()
428 drm_gem_unpin_locked(buffer->gem); in drm_client_buffer_vmap()
443 void drm_client_buffer_vunmap(struct drm_client_buffer *buffer) in drm_client_buffer_vunmap() argument
445 struct drm_gem_object *gem = buffer->gem; in drm_client_buffer_vunmap()
446 struct iosys_map *map = &buffer->map; in drm_client_buffer_vunmap()
455 static void drm_client_buffer_rmfb(struct drm_client_buffer *buffer) in drm_client_buffer_rmfb() argument
459 if (!buffer->fb) in drm_client_buffer_rmfb()
462 ret = drm_mode_rmfb(buffer->client->dev, buffer->fb->base.id, buffer->client->file); in drm_client_buffer_rmfb()
464 drm_err(buffer->client->dev, in drm_client_buffer_rmfb()
465 "Error removing FB:%u (%d)\n", buffer->fb->base.id, ret); in drm_client_buffer_rmfb()
467 buffer->fb = NULL; in drm_client_buffer_rmfb()
470 static int drm_client_buffer_addfb(struct drm_client_buffer *buffer, in drm_client_buffer_addfb() argument
474 struct drm_client_dev *client = buffer->client; in drm_client_buffer_addfb()
482 fb_req.pitches[0] = buffer->pitch; in drm_client_buffer_addfb()
488 buffer->fb = drm_framebuffer_lookup(client->dev, buffer->client->file, fb_req.fb_id); in drm_client_buffer_addfb()
489 if (WARN_ON(!buffer->fb)) in drm_client_buffer_addfb()
493 drm_framebuffer_put(buffer->fb); in drm_client_buffer_addfb()
495 strscpy(buffer->fb->comm, client->name, TASK_COMM_LEN); in drm_client_buffer_addfb()
517 struct drm_client_buffer *buffer; in drm_client_framebuffer_create() local
521 buffer = drm_client_buffer_create(client, width, height, format, in drm_client_framebuffer_create()
523 if (IS_ERR(buffer)) in drm_client_framebuffer_create()
524 return buffer; in drm_client_framebuffer_create()
526 ret = drm_client_buffer_addfb(buffer, width, height, format, handle); in drm_client_framebuffer_create()
537 drm_client_buffer_delete(buffer); in drm_client_framebuffer_create()
541 return buffer; in drm_client_framebuffer_create()
549 void drm_client_framebuffer_delete(struct drm_client_buffer *buffer) in drm_client_framebuffer_delete() argument
551 if (!buffer) in drm_client_framebuffer_delete()
554 drm_client_buffer_rmfb(buffer); in drm_client_framebuffer_delete()
555 drm_client_buffer_delete(buffer); in drm_client_framebuffer_delete()
570 int drm_client_framebuffer_flush(struct drm_client_buffer *buffer, struct drm_rect *rect) in drm_client_framebuffer_flush() argument
572 if (!buffer || !buffer->fb || !buffer->fb->funcs->dirty) in drm_client_framebuffer_flush()
583 return buffer->fb->funcs->dirty(buffer->fb, buffer->client->file, in drm_client_framebuffer_flush()
587 return buffer->fb->funcs->dirty(buffer->fb, buffer->client->file, in drm_client_framebuffer_flush()