drm/exynos: remove all codes relevant to dmabuf-sync 32/30732/1 accepted/tizen/common/20141124.171414 submit/tizen/20141124.161713
authorInki Dae <inki.dae@samsung.com>
Mon, 24 Nov 2014 16:12:11 +0000 (01:12 +0900)
committerInki Dae <inki.dae@samsung.com>
Mon, 24 Nov 2014 16:12:11 +0000 (01:12 +0900)
This patch removes existing codes relevant to dmabuf-sync.
For dmabuf-sync support, new codes will be added later.

Change-Id: I1f794f95941519d8ef791f6fda01ab5f1e32807a
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_crtc.c
drivers/gpu/drm/exynos/exynos_drm_fb.c
drivers/gpu/drm/exynos/exynos_drm_fb.h
drivers/gpu/drm/exynos/exynos_drm_plane.c

index e4f187d..1ea248c 100644 (file)
@@ -22,8 +22,6 @@
 #include "exynos_drm_fb.h"
 #include "exynos_drm_gem.h"
 
-#include <linux/dmabuf-sync.h>
-
 #define to_exynos_crtc(x)      container_of(x, struct exynos_drm_crtc,\
                                drm_crtc)
 
@@ -57,18 +55,6 @@ struct exynos_drm_crtc {
        enum exynos_crtc_mode           mode;
        wait_queue_head_t               pending_flip_queue;
        atomic_t                        pending_flip;
-       struct list_head                sync_committed;
-};
-
-static void exynos_drm_dmabuf_sync_free(void *priv)
-{
-       struct drm_pending_vblank_event *event = priv;
-
-       event->event.reserved = 0;
-}
-
-static struct dmabuf_sync_priv_ops dmabuf_sync_ops = {
-       .free   = exynos_drm_dmabuf_sync_free,
 };
 
 static void exynos_drm_crtc_dpms(struct drm_crtc *crtc, int mode)
@@ -139,7 +125,6 @@ exynos_drm_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode,
 {
        struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
        struct drm_plane *plane = exynos_crtc->plane;
-       struct dmabuf_sync *sync;
        unsigned int crtc_w;
        unsigned int crtc_h;
        int ret;
@@ -161,15 +146,6 @@ exynos_drm_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode,
        plane->crtc = crtc;
        plane->fb = crtc->fb;
 
-       if (!dmabuf_sync_is_supported())
-               return 0;
-
-       sync = (struct dmabuf_sync *)exynos_drm_dmabuf_sync_work(crtc->fb);
-       if (IS_ERR(sync)) {
-               /* just ignore buffer synchronization this time. */
-               return 0;
-       }
-
        return 0;
 }
 
@@ -214,21 +190,12 @@ static void exynos_drm_crtc_load_lut(struct drm_crtc *crtc)
 static int exynos_drm_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
                                          struct drm_framebuffer *old_fb)
 {
-       struct dmabuf_sync *sync;
        int ret;
 
        ret = exynos_drm_crtc_mode_set_commit(crtc, x, y, old_fb);
        if (ret < 0)
                return ret;
 
-       if (!dmabuf_sync_is_supported())
-               return 0;
-
-       sync = (struct dmabuf_sync *)exynos_drm_dmabuf_sync_work(crtc->fb);
-       if (IS_ERR(sync))
-               /* just ignore buffer synchronization this time. */
-               return 0;
-
        return 0;
 }
 
@@ -277,11 +244,6 @@ static int exynos_drm_crtc_page_flip(struct drm_crtc *crtc,
        }
 
        if (event) {
-               struct exynos_drm_fb *exynos_fb;
-               struct drm_gem_object *obj;
-               struct dmabuf_sync *sync;
-               unsigned int i;
-
                mutex_lock(&dev->struct_mutex);
 
                /*
@@ -297,45 +259,6 @@ static int exynos_drm_crtc_page_flip(struct drm_crtc *crtc,
                        return ret;
                }
 
-               if (!dmabuf_sync_is_supported())
-                       goto out_fence;
-
-               sync = dmabuf_sync_init("DRM", &dmabuf_sync_ops, event);
-               if (IS_ERR(sync)) {
-                       WARN_ON(1);
-                       goto out_fence;
-               }
-
-               exynos_fb = to_exynos_fb(fb);
-
-               for (i = 0; i < exynos_fb->buf_cnt; i++) {
-                       if (!exynos_fb->exynos_gem_obj[i]) {
-                               WARN_ON(1);
-                               continue;
-                       }
-
-                       obj = &exynos_fb->exynos_gem_obj[i]->base;
-                       if (!obj->dma_buf)
-                               continue;
-
-                       ret = dmabuf_sync_get(sync,
-                                       obj->dma_buf, (unsigned int)crtc,
-                                       DMA_BUF_ACCESS_DMA_R);
-                       if (WARN_ON(ret < 0))
-                               continue;
-               }
-
-               ret = dmabuf_sync_wait_all(sync);
-               if (ret < 0) {
-                       dmabuf_sync_put_all(sync);
-                       dmabuf_sync_fini(sync);
-                       goto out_fence;
-               }
-
-               event->event.reserved = (unsigned long)sync;
-
-out_fence:
-
                spin_lock_irq(&dev->event_lock);
                list_add_tail(&event->base.link,
                                &dev_priv->pageflip_event_list);
@@ -463,8 +386,6 @@ int exynos_drm_crtc_create(struct exynos_drm_manager *manager)
                return -ENOMEM;
        }
 
-       INIT_LIST_HEAD(&exynos_crtc->sync_committed);
-
        crtc = &exynos_crtc->drm_crtc;
 
        private->crtc[manager->pipe] = crtc;
@@ -515,19 +436,6 @@ void exynos_drm_crtc_finish_pageflip(struct drm_device *dev, int pipe)
        struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(drm_crtc);
        unsigned long flags;
 
-       if (!list_empty(&exynos_crtc->sync_committed) &&
-                       dmabuf_sync_is_supported()) {
-               struct dmabuf_sync *sync;
-
-               sync = list_first_entry(&exynos_crtc->sync_committed,
-                                       struct dmabuf_sync, list);
-               if (!dmabuf_sync_signal_all(sync)) {
-                       list_del_init(&sync->list);
-                       dmabuf_sync_put_all(sync);
-                       dmabuf_sync_fini(sync);
-               }
-       }
-
        spin_lock_irqsave(&dev->event_lock, flags);
 
        list_for_each_entry_safe(e, t, &dev_priv->pageflip_event_list,
@@ -536,15 +444,6 @@ void exynos_drm_crtc_finish_pageflip(struct drm_device *dev, int pipe)
                if (pipe != e->pipe)
                        continue;
 
-               if (e->event.reserved && dmabuf_sync_is_supported()) {
-                       struct dmabuf_sync *sync;
-
-                       sync = (struct dmabuf_sync *)e->event.reserved;
-                       e->event.reserved = 0;
-                       list_add_tail(&sync->list,
-                                       &exynos_crtc->sync_committed);
-               }
-
                list_del(&e->base.link);
                drm_send_vblank_event(dev, -1, e);
                drm_vblank_put(dev, pipe);
index 305f76d..bef99bb 100644 (file)
@@ -25,8 +25,6 @@
 #include "exynos_drm_iommu.h"
 #include "exynos_drm_crtc.h"
 
-#include <linux/dmabuf-sync.h>
-
 static int check_fb_gem_memory_type(struct drm_device *drm_dev,
                                struct exynos_drm_gem_obj *exynos_gem_obj)
 {
@@ -159,64 +157,6 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
        return &exynos_fb->fb;
 }
 
-#ifdef CONFIG_DMABUF_SYNC
-void *exynos_drm_dmabuf_sync_work(struct drm_framebuffer *fb)
-{
-       struct exynos_drm_fb *exynos_fb;
-       struct drm_gem_object *obj;
-       struct dmabuf_sync *sync;
-       unsigned int i;
-       int ret = 0;
-
-       sync = dmabuf_sync_init("DRM", NULL, NULL);
-       if (IS_ERR(sync)) {
-               WARN_ON(1);
-               goto out_dmabuf_sync;
-       }
-
-       exynos_fb = to_exynos_fb(fb);
-
-       for (i = 0; i < exynos_fb->buf_cnt; i++) {
-               if (!exynos_fb->exynos_gem_obj[i]) {
-                       WARN_ON(1);
-                       continue;
-               }
-
-               obj = &exynos_fb->exynos_gem_obj[i]->base;
-               if (!obj->export_dma_buf)
-                       continue;
-
-               /*
-                * set dmabuf to fence and registers reservation
-                * object to reservation entry.
-                */
-               ret = dmabuf_sync_get(sync,
-                               obj->export_dma_buf,
-                               DMA_BUF_ACCESS_DMA_R);
-               if (WARN_ON(ret < 0))
-                       continue;
-
-       }
-
-       ret = dmabuf_sync_wait_all(sync);
-       if (ret < 0) {
-               dmabuf_sync_put_all(sync);
-               dmabuf_sync_fini(sync);
-               sync = ERR_PTR(ret);
-               goto out_dmabuf_sync;
-       }
-
-       /* buffer synchronization is done by wait_for_vblank so just signal. */
-       dmabuf_sync_signal_all(sync);
-
-       dmabuf_sync_put_all(sync);
-       dmabuf_sync_fini(sync);
-
-out_dmabuf_sync:
-       return sync;
-}
-#endif
-
 static u32 exynos_drm_format_num_buffers(struct drm_mode_fb_cmd2 *mode_cmd)
 {
        unsigned int cnt = 0;
index dbedbfc..3163e41 100644 (file)
@@ -47,13 +47,4 @@ void exynos_drm_fb_set_buf_cnt(struct drm_framebuffer *fb,
 /* get a buffer count to drm framebuffer. */
 unsigned int exynos_drm_fb_get_buf_cnt(struct drm_framebuffer *fb);
 
-#ifdef CONFIG_DMABUF_SYNC
-void *exynos_drm_dmabuf_sync_work(struct drm_framebuffer *fb);
-#else
-static inline void *exynos_drm_dmabuf_sync_work(struct drm_framebuffer *fb)
-{
-       return ERR_PTR(0);
-}
-#endif
-
 #endif
index e2e0506..8371cbd 100644 (file)
@@ -18,8 +18,6 @@
 #include "exynos_drm_gem.h"
 #include "exynos_drm_plane.h"
 
-#include <linux/dmabuf-sync.h>
-
 #define to_exynos_plane(x)     container_of(x, struct exynos_plane, base)
 
 struct exynos_plane {
@@ -181,7 +179,6 @@ exynos_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
                     uint32_t src_x, uint32_t src_y,
                     uint32_t src_w, uint32_t src_h)
 {
-       struct dmabuf_sync *sync;
        int ret;
 
        ret = exynos_plane_mode_set(plane, crtc, fb, crtc_x, crtc_y,
@@ -195,16 +192,6 @@ exynos_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
        exynos_plane_commit(plane);
        exynos_plane_dpms(plane, DRM_MODE_DPMS_ON);
 
-       if (!dmabuf_sync_is_supported())
-               return 0;
-
-       sync = (struct dmabuf_sync *)exynos_drm_dmabuf_sync_work(fb);
-       if (IS_ERR(sync)) {
-               WARN_ON(1);
-               /* just ignore buffer synchronization this time. */
-               return 0;
-       }
-
        return 0;
 }