Home | History | Annotate | Download | only in drm

Lines Matching defs:dma_buf

79  * On the export the &dma_buf holds a reference to the exported buffer object,
82 * and stores the exporting GEM object in the &dma_buf.priv field. This
83 * reference needs to be released when the final reference to the &dma_buf
85 * GEM-based drivers, the &dma_buf should be exported using
106 struct dma_buf *dma_buf;
120 if (ma->dma_buf < mb->dma_buf)
122 if (ma->dma_buf > mb->dma_buf)
131 const struct dma_buf *const *kp = vk;
133 if (m->dma_buf < *kp)
135 if (m->dma_buf > *kp)
180 struct dma_buf *dma_buf, uint32_t handle)
193 get_dma_buf(dma_buf);
194 member->dma_buf = dma_buf;
209 if (dma_buf > pos->dma_buf)
242 static struct dma_buf *drm_prime_lookup_buf_by_handle(struct drm_prime_file_private *prime_fpriv,
251 return member->dma_buf;
261 return member->dma_buf;
273 struct dma_buf *dma_buf,
279 member = rb_tree_find_node(&prime_fpriv->dmabufs.rbr_tree, &dma_buf);
292 if (member->dma_buf == dma_buf) {
295 } else if (member->dma_buf < dma_buf) {
307 struct dma_buf *dma_buf)
312 member = rb_tree_find_node(&prime_fpriv->dmabufs.rbr_tree, &dma_buf);
316 dma_buf_put(dma_buf);
327 if (member->dma_buf == dma_buf) {
331 dma_buf_put(dma_buf);
334 } else if (member->dma_buf < dma_buf) {
364 * drm_gem_dmabuf_export - &dma_buf export implementation for GEM
375 struct dma_buf *drm_gem_dmabuf_export(struct drm_device *dev,
379 struct dma_buf *dma_buf;
381 dma_buf = dma_buf_export(exp_info);
382 if (IS_ERR(dma_buf))
383 return dma_buf;
388 dma_buf->file->f_mapping = obj->dev->anon_inode->i_mapping;
391 return dma_buf;
396 * drm_gem_dmabuf_release - &dma_buf release implementation for GEM
397 * @dma_buf: buffer to be released
404 void drm_gem_dmabuf_release(struct dma_buf *dma_buf)
406 struct drm_gem_object *obj = dma_buf->priv;
434 struct dma_buf *dma_buf;
438 dma_buf = dma_buf_get(prime_fd);
439 if (IS_ERR(dma_buf))
440 return PTR_ERR(dma_buf);
445 dma_buf, handle);
452 obj = dev->driver->gem_prime_import(dev, dma_buf);
454 obj = drm_gem_prime_import(dev, dma_buf);
460 if (obj->dma_buf) {
461 WARN_ON(obj->dma_buf != dma_buf);
463 obj->dma_buf = dma_buf;
464 get_dma_buf(dma_buf);
474 dma_buf, *handle);
479 dma_buf_put(dma_buf);
488 dma_buf_put(dma_buf);
495 dma_buf_put(dma_buf);
512 static struct dma_buf *export_and_register_object(struct drm_device *dev,
516 struct dma_buf *dmabuf;
542 obj->dma_buf = dmabuf;
543 get_dma_buf(obj->dma_buf);
568 struct dma_buf *dmabuf;
591 if (obj->dma_buf) {
592 get_dma_buf(obj->dma_buf);
593 dmabuf = obj->dma_buf;
624 * created dma buf is already linked in the global obj->dma_buf pointer,
703 * drm_gem_map_attach - dma_buf attach implementation for GEM
704 * @dma_buf: buffer to attach device to
713 int drm_gem_map_attach(struct dma_buf *dma_buf,
716 struct drm_gem_object *obj = dma_buf->priv;
723 * drm_gem_map_detach - dma_buf detach implementation for GEM
724 * @dma_buf: buffer to detach from
731 void drm_gem_map_detach(struct dma_buf *dma_buf,
734 struct drm_gem_object *obj = dma_buf->priv;
800 * drm_gem_dmabuf_vmap - dma_buf vmap implementation for GEM
801 * @dma_buf: buffer to be mapped
808 void *drm_gem_dmabuf_vmap(struct dma_buf *dma_buf)
810 struct drm_gem_object *obj = dma_buf->priv;
822 * drm_gem_dmabuf_vunmap - dma_buf vunmap implementation for GEM
823 * @dma_buf: buffer to be unmapped
829 void drm_gem_dmabuf_vunmap(struct dma_buf *dma_buf, void *vaddr)
831 struct drm_gem_object *obj = dma_buf->priv;
921 * drm_gem_dmabuf_mmap - dma_buf mmap implementation for GEM
922 * @dma_buf: buffer to be mapped
936 drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, off_t *offp, size_t size,
940 int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma)
943 struct drm_gem_object *obj = dma_buf->priv;
978 * importers address space for use with dma_buf itself.
1014 struct dma_buf *drm_gem_prime_export(struct drm_gem_object *obj,
1037 * @dma_buf: dma-buf object to import
1038 * @attach_dev: struct device to dma_buf attach
1042 * attaching via dma_buf. This function calls
1050 struct dma_buf *dma_buf,
1054 struct dma_buf *dma_buf,
1063 if (dma_buf->ops == &drm_gem_prime_dmabuf_ops) {
1064 obj = dma_buf->priv;
1078 attach = dma_buf_attach(dma_buf, attach_dev);
1082 get_dma_buf(dma_buf);
1097 obj->resv = dma_buf->resv;
1104 dma_buf_detach(dma_buf, attach);
1105 dma_buf_put(dma_buf);
1114 * @dma_buf: dma-buf object to import
1125 struct dma_buf *dma_buf)
1128 return drm_gem_prime_import_dev(dev, dma_buf, dev->dmat);
1130 return drm_gem_prime_import_dev(dev, dma_buf, dev->dev);
1290 struct dma_buf *dma_buf;
1294 dma_buf = attach->dmabuf;
1297 dma_buf_put(dma_buf);