1. 30 6月, 2017 2 次提交
  2. 01 6月, 2017 4 次提交
  3. 21 3月, 2017 1 次提交
  4. 08 2月, 2017 1 次提交
  5. 31 1月, 2017 2 次提交
    • I
      drm/exynos: use atomic helper commit · 41cbf0fd
      Inki Dae 提交于
      This patch replaces specific atomic commit function
      with atomic helper commit one.
      
      For this, it removes existing atomic commit function
      and relevant code specific to Exynos DRM and makes
      atomic helper commit to be used instead.
      
      Below are changes for the use of atomic helper commit:
      - add atomic_commit_tail callback specific to Exynos DRM
        . default implemention of atomic helper doesn't mesh well
          with runtime PM so the device driver which supports runtime
          PM should call drm_atomic_helper_commit_modeset_enables function
          prior to drm_atomic_helper_commit_planes function call.
          atomic_commit_tail callback implements this call ordering.
      - allow plane commit only in case that CRTC device is enabled.
        . for this, it calls atomic_helper_commit_planes function
          with DRM_PLANE_COMMIT_ACTIVE_ONLY flag in atomic_commit_tail callback.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      Reviewed-by: NGustavo Padovan <gustavo.padovan@collabora.com>
      41cbf0fd
    • I
      drm/exynos: remove unnecessary codes · 9db41d43
      Inki Dae 提交于
      This patch removes exynos_drm_crtc_cancel_page_flip call
      when drm is closed because at that time, events will be released
      by drm_events_release function.
      
      Changelog v1:
      - remove exynos_drm_crtc_cancel_page_flip function also because
        this funtion isn't used anymore.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      Reviewed-by: NAndrzej Hajda <a.hajda@samsung.com>
      9db41d43
  6. 18 1月, 2017 1 次提交
  7. 30 9月, 2016 2 次提交
  8. 10 5月, 2016 1 次提交
    • A
      drm/exynos: fix cancel page flip code · fc173ae6
      Andrzej Hajda 提交于
      Driver code did not remove event from the list of pending events before destroy.
      As a result drm core later tried to inspect invalid memory location.
      The patch replaces removal code with call to core helper.
      
      The bug was detected using KASAN:
      
      [   10.107249] ==================================================================
      [   10.107518] BUG: KASAN: use-after-free in drm_release+0xe9c/0x1000 at addr ffffffc089154a18
      [   10.107784] Read of size 8 by task modetest/103
      [   10.107931] =============================================================================
      [   10.113191] BUG kmalloc-128 (Not tainted): kasan: bad access detected
      [   10.119608] -----------------------------------------------------------------------------
      [   10.119608]
      [   10.129243] Disabling lock debugging due to kernel taint
      [   10.134551] INFO: Allocated in drm_mode_page_flip_ioctl+0x500/0xa98 age=4 cpu=0 pid=103
      [   10.142532] 	alloc_debug_processing+0x18c/0x198
      [   10.147043] 	___slab_alloc.constprop.28+0x360/0x380
      [   10.151906] 	__slab_alloc.isra.25.constprop.27+0x54/0xa0
      [   10.157197] 	kmem_cache_alloc_trace+0x370/0x3b0
      [   10.161709] 	drm_mode_page_flip_ioctl+0x500/0xa98
      [   10.166400] 	drm_ioctl+0x4c4/0xb68
      [   10.169787] 	do_vfs_ioctl+0x16c/0xeb8
      [   10.173429] 	SyS_ioctl+0x8c/0xa0
      [   10.176642] 	el0_svc_naked+0x24/0x28
      [   10.180204] INFO: Freed in exynos_drm_crtc_cancel_page_flip+0xe0/0x160 age=0 cpu=0 pid=103
      [   10.188447] 	free_debug_processing+0x174/0x388
      [   10.192871] 	__slab_free+0x2e8/0x438
      [   10.196431] 	kfree+0x350/0x360
      [   10.199469] 	exynos_drm_crtc_cancel_page_flip+0xe0/0x160
      [   10.204762] 	exynos_drm_preclose+0x58/0xa0
      [   10.208844] 	drm_release+0x1f0/0x1000
      [   10.212491] 	__fput+0x1c4/0x5b8
      [   10.215613] 	____fput+0xc/0x18
      [   10.218654] 	task_work_run+0x130/0x198
      [   10.222385] 	do_exit+0x700/0x2278
      [   10.225681] 	do_group_exit+0xe4/0x2c8
      [   10.229327] 	SyS_exit_group+0x1c/0x20
      [   10.232973] 	el0_svc_naked+0x24/0x28
      [   10.236532] INFO: Slab 0xffffffbdc2a45500 objects=32 used=10 fp=0xffffffc089154a00 flags=0x4080
      [   10.245210] INFO: Object 0xffffffc089154a00 @offset=2560 fp=0xffffffc089157600
      [   10.245210]
      ...
      [   10.384532] CPU: 0 PID: 103 Comm: modetest Tainted: G    B           4.5.0-rc3-00748-gd5e2881 #271
      [   10.398325] Call trace:
      [   10.400764] [<ffffffc000091428>] dump_backtrace+0x0/0x328
      [   10.406141] [<ffffffc000091764>] show_stack+0x14/0x20
      [   10.411176] [<ffffffc00089c550>] dump_stack+0xb0/0xe8
      [   10.416210] [<ffffffc000395778>] print_trailer+0xf8/0x160
      [   10.421592] [<ffffffc00039b5cc>] object_err+0x3c/0x50
      [   10.426626] [<ffffffc00039d630>] kasan_report_error+0x248/0x550
      [   10.432527] [<ffffffc00039da50>] __asan_report_load8_noabort+0x40/0x48
      [   10.439039] [<ffffffc000b5b724>] drm_release+0xe9c/0x1000
      [   10.444419] [<ffffffc0003d340c>] __fput+0x1c4/0x5b8
      [   10.449280] [<ffffffc0003d3884>] ____fput+0xc/0x18
      [   10.454055] [<ffffffc000101aa8>] task_work_run+0x130/0x198
      [   10.459522] [<ffffffc0000bc058>] do_exit+0x700/0x2278
      [   10.464557] [<ffffffc0000bdcfc>] do_group_exit+0xe4/0x2c8
      [   10.469939] [<ffffffc0000bdefc>] SyS_exit_group+0x1c/0x20
      [   10.475320] [<ffffffc000087530>] el0_svc_naked+0x24/0x28
      Signed-off-by: NAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      fc173ae6
  9. 30 4月, 2016 1 次提交
  10. 12 1月, 2016 3 次提交
    • I
      drm/exynos: fix kernel panic issue at drm releasing · c74d8eb5
      Inki Dae 提交于
      This patch fixes a kernel panic issue which happened
      when drm driver is closed while modetest.
      
      This issue could be reproduced easily by launching modetest
      with page flip repeatedly.
      
      The reason is that invalid drm_file object could be accessed by
      send_vblank_event function when finishing page flip if the drm_file
      object was removed by drm_release and there was a pended page
      flip event which was already committed to hardware.
      
      So this patch makes the pended page flip event to be cancelled by
      preclose callback which is called at front of drm_release function.
      
      Changelog v2:
      - free vblank event objects belonging to the request process,
        increment event space and decrease pending_update when cancelling
        the event
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      Reviewed-by: NDaniel Stone <daniels@collabora.com>
      Acked-by: NDaniel Vetter <daniel@ffwll.ch>
      c74d8eb5
    • I
      drm/exynos: crtc: do not wait for the scanout completion · d619894c
      Inki Dae 提交于
      This patch removes exynos_drm_crtc_complete_scanout function call
      which makes sure for overlay data to be updated to real hardware
      when drm driver is released.
      
      With atomic modeset support, it doesn't need the funtion anymore
      because atomic modeset interface makes sure that.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      d619894c
    • M
      drm/exynos: crtc: rework atomic_{begin,flush} · d29c2c14
      Marek Szyprowski 提交于
      Some CRTC drivers (like Exynos DRM Mixer) can handle blocking register
      updates only on per-device level, not per-plane level. This patch changes
      exynos_crts atomic_begin/atomic_flush callbacks to handle the entire crtc,
      instead of given planes, so driver can handle both cases on their own.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      d29c2c14
  11. 20 12月, 2015 1 次提交
  12. 15 12月, 2015 1 次提交
  13. 11 12月, 2015 1 次提交
    • V
      drm: Pass 'name' to drm_crtc_init_with_planes() · f9882876
      Ville Syrjälä 提交于
      Done with coccinelle for the most part. However, it thinks '...' is
      part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder
      in its place and got rid of it with sed afterwards.
      
      I didn't convert drm_crtc_init() since passing the varargs through
      would mean either cpp macros or va_list, and I figured we don't
      care about these legacy functions enough to warrant the extra pain.
      
      @@
      identifier dev, crtc, primary, cursor, funcs;
      @@
       int drm_crtc_init_with_planes(struct drm_device *dev,
                                     struct drm_crtc *crtc,
                                     struct drm_plane *primary, struct drm_plane *cursor,
                                     const struct drm_crtc_funcs *funcs
      +                              ,const char *name, int DOTDOTDOT
                                     )
      { ... }
      
      @@
      identifier dev, crtc, primary, cursor, funcs;
      @@
       int drm_crtc_init_with_planes(struct drm_device *dev,
                                     struct drm_crtc *crtc,
                                     struct drm_plane *primary, struct drm_plane *cursor,
                                     const struct drm_crtc_funcs *funcs
      +                              ,const char *name, int DOTDOTDOT
                                     );
      
      @@
      expression E1, E2, E3, E4, E5;
      @@
       drm_crtc_init_with_planes(E1, E2, E3, E4, E5
      +                          ,NULL
                                 )
      
      v2: Split crtc and plane changes apart
          Pass NULL for no-name instead of ""
          Leave drm_crtc_init() alone
      v3: Add ', or NULL...' to @name kernel doc (Jani)
          Annotate the function with __printf() attribute (Jani)
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1449670771-2751-1-git-send-email-ville.syrjala@linux.intel.com
      f9882876
  14. 03 11月, 2015 1 次提交
  15. 06 10月, 2015 1 次提交
    • T
      drm/irq: Use unsigned int pipe in public API · 88e72717
      Thierry Reding 提交于
      This continues the pattern started in commit cc1ef118 ("drm/irq:
      Make pipe unsigned and name consistent"). This is applied to the public
      APIs and driver callbacks, so pretty much all drivers need to be updated
      to match the new prototypes.
      
      Cc: Christian König <christian.koenig@amd.com>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Jianwei Wang <jianwei.wang.chn@gmail.com>
      Cc: Alison Wang <alison.wang@freescale.com>
      Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Philipp Zabel <p.zabel@pengutronix.de>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Cc: Mark Yao <mark.yao@rock-chips.com>
      Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
      Cc: Vincent Abriou <vincent.abriou@st.com>
      Cc: Thomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      88e72717
  16. 30 9月, 2015 1 次提交
  17. 30 8月, 2015 5 次提交
  18. 16 8月, 2015 5 次提交
  19. 27 7月, 2015 1 次提交
  20. 19 6月, 2015 5 次提交