diff options
author | Daniel Kurtz | 2014-04-16 22:54:40 -0500 |
---|---|---|
committer | Rob Clark | 2014-05-12 22:09:20 -0500 |
commit | a13bdd5c7197c4c008c0f3976742231cf61d8ce9 (patch) | |
tree | 82ed402876790f6ce466e381b761fa114c9becb6 /exynos/exynos_drm.c | |
parent | d1000c432c8ce76ea64f7f9eb6094d11542e0495 (diff) | |
download | external-libgbm-a13bdd5c7197c4c008c0f3976742231cf61d8ce9.tar.gz external-libgbm-a13bdd5c7197c4c008c0f3976742231cf61d8ce9.tar.xz external-libgbm-a13bdd5c7197c4c008c0f3976742231cf61d8ce9.zip |
exynos: prime: use drmPrime*() helpers
Reuse the common drmPrime() helper functions rather than reinventing them.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Acked-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'exynos/exynos_drm.c')
-rw-r--r-- | exynos/exynos_drm.c | 48 |
1 files changed, 10 insertions, 38 deletions
diff --git a/exynos/exynos_drm.c b/exynos/exynos_drm.c index b7acdf5e..5fff2597 100644 --- a/exynos/exynos_drm.c +++ b/exynos/exynos_drm.c | |||
@@ -303,59 +303,31 @@ void *exynos_bo_map(struct exynos_bo *bo) | |||
303 | /* | 303 | /* |
304 | * Export gem object to dmabuf as file descriptor. | 304 | * Export gem object to dmabuf as file descriptor. |
305 | * | 305 | * |
306 | * @dev: a exynos device object. | 306 | * @dev: exynos device object |
307 | * @handle: gem handle to be exported into dmabuf as file descriptor. | 307 | * @handle: gem handle to export as file descriptor of dmabuf |
308 | * @fd: file descriptor to dmabuf exported from gem handle and | 308 | * @fd: file descriptor returned from kernel |
309 | * returned by kernel side. | ||
310 | * | 309 | * |
311 | * if true, return 0 else negative. | 310 | * @return: 0 on success, -1 on error, and errno will be set |
312 | */ | 311 | */ |
313 | int exynos_prime_handle_to_fd(struct exynos_device *dev, uint32_t handle, | 312 | int exynos_prime_handle_to_fd(struct exynos_device *dev, uint32_t handle, |
314 | int *fd) | 313 | int *fd) |
315 | { | 314 | { |
316 | int ret; | 315 | return drmPrimeHandleToFD(dev->fd, handle, 0, fd); |
317 | struct drm_prime_handle req = { | ||
318 | .handle = handle, | ||
319 | }; | ||
320 | |||
321 | ret = drmIoctl(dev->fd, DRM_IOCTL_PRIME_HANDLE_TO_FD, &req); | ||
322 | if (ret) { | ||
323 | fprintf(stderr, "failed to mmap[%s].\n", | ||
324 | strerror(errno)); | ||
325 | return ret; | ||
326 | } | ||
327 | |||
328 | *fd = req.fd; | ||
329 | return 0; | ||
330 | } | 316 | } |
331 | 317 | ||
332 | /* | 318 | /* |
333 | * Import file descriptor into gem handle. | 319 | * Import file descriptor into gem handle. |
334 | * | 320 | * |
335 | * @dev: a exynos device object. | 321 | * @dev: exynos device object |
336 | * @fd: file descriptor exported into dmabuf. | 322 | * @fd: file descriptor of dmabuf to import |
337 | * @handle: gem handle to gem object imported from file descriptor | 323 | * @handle: gem handle returned from kernel |
338 | * and returned by kernel side. | ||
339 | * | 324 | * |
340 | * if true, return 0 else negative. | 325 | * @return: 0 on success, -1 on error, and errno will be set |
341 | */ | 326 | */ |
342 | int exynos_prime_fd_to_handle(struct exynos_device *dev, int fd, | 327 | int exynos_prime_fd_to_handle(struct exynos_device *dev, int fd, |
343 | uint32_t *handle) | 328 | uint32_t *handle) |
344 | { | 329 | { |
345 | int ret; | 330 | return drmPrimeFDToHandle(dev->fd, fd, handle); |
346 | struct drm_prime_handle req = { | ||
347 | .fd = fd, | ||
348 | }; | ||
349 | |||
350 | ret = drmIoctl(dev->fd, DRM_IOCTL_PRIME_FD_TO_HANDLE, &req); | ||
351 | if (ret) { | ||
352 | fprintf(stderr, "failed to mmap[%s].\n", | ||
353 | strerror(errno)); | ||
354 | return ret; | ||
355 | } | ||
356 | |||
357 | *handle = req.handle; | ||
358 | return 0; | ||
359 | } | 331 | } |
360 | 332 | ||
361 | 333 | ||