1. 15 2月, 2016 2 次提交
  2. 16 1月, 2016 1 次提交
  3. 03 11月, 2015 1 次提交
  4. 26 10月, 2015 1 次提交
    • J
      drm/exynos: cleanup name of gem object for exynos_drm · 813fd67b
      Joonyoung Shim 提交于
      Struct of gem object in exynos_drm driver is struct exynos_drm_gem_obj.
      It's too long and we can know its meaning of name without _obj postfix.
      
      We use several names to variable name of gem object for exynos_drm -
      exynos_gem_obj, gem_obj and obj. Especially "obj" name can cause
      misunderstanding with variable name "obj" of struct drm_gem_object.
      
      This will clean about name of gem object for exynos_drm as follows.
      s/struct exynos_drm_gem_obj/struct exynos_drm_gem
      s/exynos_gem_obj or gem_obj or obj/exynos_gem
      Signed-off-by: NJoonyoung Shim <jy0922.shim@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      813fd67b
  5. 01 10月, 2015 1 次提交
  6. 30 9月, 2015 8 次提交
  7. 31 8月, 2015 1 次提交
  8. 17 8月, 2015 1 次提交
  9. 16 8月, 2015 11 次提交
  10. 20 9月, 2014 2 次提交
    • I
      drm/exynos: use drm generic mmap interface · 832316c7
      Inki Dae 提交于
      This patch removes DRM_EXYNOS_GEM_MMAP ictrl feature specific
      to Exynos drm and instead uses drm generic mmap.
      
      We had used the interface specific to Exynos drm to do mmap directly,
      not to use demand paging which maps each page with physical memory
      at page fault handler. We don't need the specific mmap interface
      because the drm generic mmap which uses vm offset manager stuff can
      also do mmap directly.
      
      This patch makes a userspace region to be mapped with whole physical
      memory region allocated by userspace request when mmap system call is
      requested.
      
      Changelog v2:
      - do not set VM_IO, VM_DONTEXPEND and VM_DONTDUMP. These flags were already
        set by drm_gem_mmap
      - do not include <linux/anon_inodes.h>, which isn't needed anymore.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      832316c7
    • I
      drm/exynos: remove DRM_EXYNOS_GEM_MAP_OFFSET ioctl · d931589c
      Inki Dae 提交于
      This interface and relevant codes aren't used anymore.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      d931589c
  11. 03 8月, 2014 1 次提交
  12. 02 6月, 2014 1 次提交
  13. 07 1月, 2014 1 次提交
  14. 02 12月, 2013 1 次提交
  15. 09 10月, 2013 1 次提交
    • D
      drm: kill ->gem_init_object() and friends · 16eb5f43
      David Herrmann 提交于
      All drivers embed gem-objects into their own buffer objects. There is no
      reason to keep drm_gem_object_alloc(), gem->driver_private and
      ->gem_init_object() anymore.
      
      New drivers are highly encouraged to do the same. There is no benefit in
      allocating gem-objects separately.
      
      Cc: Dave Airlie <airlied@gmail.com>
      Cc: Alex Deucher <alexdeucher@gmail.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Jerome Glisse <jglisse@redhat.com>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Ben Skeggs <skeggsb@gmail.com>
      Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Acked-by: NAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      16eb5f43
  16. 05 9月, 2013 2 次提交
  17. 21 8月, 2013 1 次提交
    • D
      drm/gem: fix up flink name create race · a8e11d1c
      Daniel Vetter 提交于
      This is the 2nd attempt, I've always been a bit dissatisified with the
      tricky nature of the first one:
      
      http://lists.freedesktop.org/archives/dri-devel/2012-July/025451.html
      
      The issue is that the flink ioctl can race with calling gem_close on
      the last gem handle. In that case we'll end up with a zero handle
      count, but an flink name (and it's corresponding reference). Which
      results in a neat space leak.
      
      In my first attempt I've solved this by rechecking the handle count.
      But fundamentally the issue is that ->handle_count isn't your usual
      refcount - it can be resurrected from 0 among other things.
      
      For those special beasts atomic_t often suggest way more ordering that
      it actually guarantees. To prevent being tricked by those hairy
      semantics take the easy way out and simply protect the handle with the
      existing dev->object_name_lock.
      
      With that change implemented it's dead easy to fix the flink vs. gem
      close reace: When we try to create the name we simply have to check
      whether there's still officially a gem handle around and if not refuse
      to create the flink name. Since the handle count decrement and flink
      name destruction is now also protected by that lock the reace is gone
      and we can't ever leak the flink reference again.
      
      Outside of the drm core only the exynos driver looks at the handle
      count, and tbh I have no idea why (it's just for debug dmesg output
      luckily).
      
      I've considered inlining the drm_gem_object_handle_free, but I plan to
      add more name-like things (like the exported dma_buf) to this scheme,
      so it's clearer to leave the handle freeing in its own function.
      
      This is exercised by the new gem_flink_race i-g-t testcase, which on
      my snb leaks gem objects at a rate of roughly 1k objects/s.
      
      v2: Fix up the error path handling in handle_create and make it more
      robust by simply calling object_handle_unreference.
      
      v3: Fix up the handle_unreference logic bug - atomic_dec_and_test
      retursn 1 for 0. Oops.
      
      v4: Squash in inlining of drm_gem_object_handle_reference as suggested
      by Dave Airlie and add a note that we now have a testcase.
      
      Cc: Dave Airlie <airlied@gmail.com>
      Cc: Inki Dae <inki.dae@samsung.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      a8e11d1c
  18. 07 8月, 2013 1 次提交
  19. 25 7月, 2013 1 次提交
    • D
      drm/gem: convert to new unified vma manager · 0de23977
      David Herrmann 提交于
      Use the new vma manager instead of the old hashtable. Also convert all
      drivers to use the new convenience helpers. This drops all the
      (map_list.hash.key << PAGE_SHIFT) non-sense.
      
      Locking and access-management is exactly the same as before with an
      additional lock inside of the vma-manager, which strictly wouldn't be
      needed for gem.
      
      v2:
       - rebase on drm-next
       - init nodes via drm_vma_node_reset() in drm_gem.c
      v3:
       - fix tegra
      v4:
       - remove duplicate if (drm_vma_node_has_offset()) checks
       - inline now trivial drm_vma_node_offset_addr() calls
      v5:
       - skip node-reset on gem-init due to kzalloc()
       - do not allow mapping gem-objects with offsets (backwards compat)
       - remove unneccessary casts
      
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Acked-by: NPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@gmail.com>
      0de23977
  20. 04 7月, 2013 1 次提交