1. 21 2月, 2013 8 次提交
  2. 14 2月, 2013 3 次提交
  3. 25 1月, 2013 13 次提交
  4. 21 1月, 2013 1 次提交
    • D
      drm: revamp framebuffer cleanup interfaces · 36206361
      Daniel Vetter 提交于
      We have two classes of framebuffer
      - Created by the driver (atm only for fbdev), and the driver holds
        onto the last reference count until destruction.
      - Created by userspace and associated with a given fd. These
        framebuffers will be reaped when their assoiciated fb is closed.
      
      Now these two cases are set up differently, the framebuffers are on
      different lists and hence destruction needs to clean up different
      things. Also, for userspace framebuffers we remove them from any
      current usage, whereas for internal framebuffers it is assumed that
      the driver has done this already.
      
      Long story short, we need two different ways to cleanup such drivers.
      Three functions are involved in total:
      - drm_framebuffer_remove: Convenience function which removes the fb
        from all active usage and then drops the passed-in reference.
      - drm_framebuffer_unregister_private: Will remove driver-private
        framebuffers from relevant lists and drop the corresponding
        references. Should be called for driver-private framebuffers before
        dropping the last reference (or like for a lot of the drivers where
        the fbdev is embedded someplace else, before doing the cleanup
        manually).
      - drm_framebuffer_cleanup: Final cleanup for both classes of fbs,
        should be called by the driver's ->destroy callback once the last
        reference is gone.
      
      This patch just rolls out the new interfaces and updates all drivers
      (by adding calls to drm_framebuffer_unregister_private at all the
      right places)- no functional changes yet. Follow-on patches will move
      drm core code around and update the lifetime management for
      framebuffers, so that we are no longer required to keep framebuffers
      alive by locking mode_config.mutex.
      
      I've also updated the kerneldoc already.
      
      vmwgfx seems to again be a bit special, at least I haven't figured out
      how the fbdev support in that driver works. It smells like it's
      external though.
      
      v2: The i915 driver creates another private framebuffer in the
      load-detect code. Adjust its cleanup code, too.
      Reviewed-by: NRob Clark <rob@ti.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      36206361
  5. 08 1月, 2013 1 次提交
    • S
      drm/prime: drop reference on imported dma-buf come from gem · be8a42ae
      Seung-Woo Kim 提交于
      Increasing ref counts of both dma-buf and gem for imported dma-buf come from gem
      makes memory leak. release function of dma-buf cannot be called because f_count
      of dma-buf increased by importing gem and gem ref count cannot be decrease
      because of exported dma-buf.
      
      So I add dma_buf_put() for imported gem come from its own gem into each drivers
      having prime_import and prime_export capabilities. With this, only gem ref
      count is increased if importing gem exported from gem of same driver.
      Signed-off-by: NSeung-Woo Kim <sw0312.kim@samsung.com>
      Signed-off-by: NKyungmin.park <kyungmin.park@samsung.com>
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Rob Clark <rob.clark@linaro.org>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      be8a42ae
  6. 07 1月, 2013 2 次提交
  7. 04 1月, 2013 12 次提交