linux/drivers/gpu/drm/exynos
Rob Clark f7eff60ea0 drm: refcnt drm_framebuffer (v4.1)
This simplifies drm fb lifetime, and if the crtc/plane needs to hold
a ref to the fb when disabling a pipe until the next vblank, this
avoids the need to make disabling an overlay synchronous.  This is a
problem that shows up when userspace is using a drm plane to
implement a hw cursor.. making overlay disable synchronous causes
a performance problem when x11 is rapidly enabling/disabling the
hw cursor.  But not making it synchronous opens up a race condition
for crashing if userspace turns around and immediately deletes the
fb.  Refcnt'ing the fb makes it possible to solve this problem.

v1: original
v2: add drm_framebuffer_remove() which is called in all paths where
    fb->funcs->destroy() was directly called before.  This cleans
    up the CRTCs/planes that the fb was attached to.  You should
    only directly use drm_framebuffer_unreference() if you are also
    using drm_framebuffer_reference() to keep a ref to the fb.
v3: add comment explaining the fb refcount
v4: remove duplicate 'list_del(&fb->filp_head)'

[airlied: v4.1: fix local rejection]

Signed-off-by: Rob Clark <rob@ti.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-10-02 22:15:39 +10:00
..
exynos_ddc.c drm/exynos: remove module of exynos drm subdrv 2012-03-20 09:40:23 +00:00
exynos_drm_buf.c drm/exynos: added drm prime feature. 2012-05-08 18:46:32 +09:00
exynos_drm_buf.h drm/exynos: update gem and buffer framework. 2012-03-20 09:40:21 +00:00
exynos_drm_connector.c drm: remove the raw_edid field from struct drm_display_info 2012-08-24 09:37:36 +10:00
exynos_drm_connector.h
exynos_drm_core.c drm/exynos: removed unnecessary variable 2012-07-27 11:13:57 +09:00
exynos_drm_crtc.c drm/exynos: add property for crtc mode 2012-07-27 11:13:54 +09:00
exynos_drm_crtc.h drm/exynos: update overlay via plane from crtc 2012-07-27 11:13:53 +09:00
exynos_drm_dmabuf.c drm/exynos: add dummy support for dmabuf-mmap 2012-09-13 12:38:09 +09:00
exynos_drm_dmabuf.h drm/exynos: added drm prime feature. 2012-05-08 18:46:32 +09:00
exynos_drm_drv.c drm/exynos: fix double call of drm_prime_(init/destroy)_file_private 2012-09-13 12:38:09 +09:00
exynos_drm_drv.h drm/exynos: add property for crtc mode 2012-07-27 11:13:54 +09:00
exynos_drm_encoder.c drm/exynos: add plane enable/disable 2012-07-27 11:13:54 +09:00
exynos_drm_encoder.h drm/exynos: add plane enable/disable 2012-07-27 11:13:54 +09:00
exynos_drm_fb.c drm/exynos: Keep a reference to frame buffer GEM objects 2012-06-05 11:53:58 +09:00
exynos_drm_fb.h drm/exynos: Use DRM_FORMAT_{NV12, YUV420} instead of DRM_FORMAT_{NV12M, YUV420M} 2012-06-05 11:51:43 +09:00
exynos_drm_fbdev.c drm: refcnt drm_framebuffer (v4.1) 2012-10-02 22:15:39 +10:00
exynos_drm_fbdev.h
exynos_drm_fimd.c drm/exynos: Remove redundant check in exynos_drm_fimd.c file 2012-09-13 12:38:07 +09:00
exynos_drm_g2d.c drm/exynos: Make g2d_pm_ops static 2012-09-13 12:38:09 +09:00
exynos_drm_g2d.h drm/exynos: add G2D driver 2012-05-17 20:14:48 +09:00
exynos_drm_gem.c drm/exynos: fixed page align bug. 2012-09-13 12:38:08 +09:00
exynos_drm_gem.h drm/exynos: fixed a comment to gem size. 2012-07-27 11:13:57 +09:00
exynos_drm_hdmi.c drm/exynos: Use devm_kzalloc in exynos_drm_hdmi.c file 2012-09-13 12:38:08 +09:00
exynos_drm_hdmi.h drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
exynos_drm_plane.c drm/exynos: remove DRM_FORMAT_NV12M from plane module 2012-09-13 12:38:10 +09:00
exynos_drm_plane.h drm/exynos: add plane enable/disable 2012-07-27 11:13:54 +09:00
exynos_drm_vidi.c Linux 3.6-rc7 2012-09-24 18:17:12 +02:00
exynos_drm_vidi.h drm/exynos: added virtual display driver. 2012-03-21 10:15:49 +00:00
exynos_hdmi.c drm/exynos: Add missing braces around sizeof in exynos_hdmi.c 2012-09-13 12:38:09 +09:00
exynos_hdmi.h drm/exynos: cleanup exynos_hdmi.h 2012-03-20 09:41:45 +00:00
exynos_hdmiphy.c drm/exynos: added hdmi display support 2011-12-29 11:21:42 +09:00
exynos_mixer.c drm/exynos: Add missing braces around sizeof in exynos_mixer.c 2012-09-13 12:38:09 +09:00
Kconfig drm/exynos: Add dependency for G2D in Kconfig 2012-09-13 12:38:08 +09:00
Makefile drm/exynos: add G2D driver 2012-05-17 20:14:48 +09:00
regs-hdmi.h drm/exynos: enable dvi mode for dvi monitor 2012-05-17 20:14:25 +09:00
regs-mixer.h drm/exynos: added hdmi display support 2011-12-29 11:21:42 +09:00
regs-vp.h drm/exynos: added hdmi display support 2011-12-29 11:21:42 +09:00