1. 10 May, 2016 6 commits
    • Tobias Jakobi's avatar
      drm/exynos: fimd: harden fimd_calc_clkdiv() · fa9971d6
      Tobias Jakobi authored
      Don't use the vrefresh field of the DRM mode since this
      one is supposed to only be used for debug purpose.
      Instead use the clock field which should also provide
      much more precise information.
      
      Also sanitize the case in which the clock value
      should be zero. We then just default to the maximum
      clock divisor.
      Signed-off-by: default avatarTobias Jakobi <tjakobi@math.uni-bielefeld.de>
      Reviewed-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      fa9971d6
    • Andrzej Hajda's avatar
      drm/exynos: fix cancel page flip code · fc173ae6
      Andrzej Hajda authored
      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: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      fc173ae6
    • Andrzej Hajda's avatar
      drm/exynos/decon5433: do not use unnecessary software trigger · 3f4c8e5c
      Andrzej Hajda authored
      Software trigger should not be used if hardware trigger is configured.
      Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      3f4c8e5c
    • Andrzej Hajda's avatar
      drm/exynos/decon5433: handle vblank in vblank interrupt · b0bb3d07
      Andrzej Hajda authored
      vblank should be signaled to userspace after reading framebuffers not before,
      signaling it in TE interrupt looks wrong. TE triggers reading framebuffers
      so it is the worst moment. Tearing is not observable because hardware prevents
      it, but there are frequently skipped vblank events.
      Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      b0bb3d07
    • Andrzej Hajda's avatar
      drm/exynos/hdmi: expose HDMI-PHY clock as pipeline clock · 59b62d3c
      Andrzej Hajda authored
      HDMI-PHY clock should be accessible from other components in the pipeline.
      Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      59b62d3c
    • Dave Airlie's avatar
      Merge tag 'mediatek-drm-2016-05-09' of git://git.pengutronix.de/git/pza/linux into drm-next · 2e726dc4
      Dave Airlie authored
      MT8173 DRM support
      
      - device tree binding documentation for all MT8173 display
        subsystem components
      - basic mediatek-drm driver for MT8173 with two optional,
        currently fixed output paths:
      - DSI encoder support for DSI and (via bridge) eDP panels
      - DPI encoder support for output to HDMI bridge
      - necessary clock tree changes for the DPI->HDMI path
      - export mtk-smi functions used by mediatek-drm
      
      * tag 'mediatek-drm-2016-05-09' of git://git.pengutronix.de/git/pza/linux:
        clk: mediatek: remove hdmitx_dig_cts from TOP clocks
        clk: mediatek: Add hdmi_ref HDMI PHY PLL reference clock output
        clk: mediatek: make dpi0_sel propagate rate changes
        drm/mediatek: Add DPI sub driver
        drm/mediatek: Add DSI sub driver
        drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.
        dt-bindings: drm/mediatek: Add Mediatek display subsystem dts binding
        memory: mtk-smi: export mtk_smi_larb_get/put
      2e726dc4
  2. 09 May, 2016 4 commits
    • Dave Airlie's avatar
      Merge tag 'v4.6-rc7' into drm-next · bafb86f5
      Dave Airlie authored
      Merge this back as we've built up a fair few conflicts, and I have
      some newer trees to pull in.
      bafb86f5
    • Dave Airlie's avatar
      drm/amdgpu: fix build on aarch64. · ba391646
      Dave Airlie authored
      Same fix went in previously for some other files.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      ba391646
    • Dave Airlie's avatar
      Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next · 2c3d68ab
      Dave Airlie authored
      Mostly cleanups, fixes, and 'struct fence' conversion this time
      around, with one reservation patch which is a-b Sumit (which the fence
      conversion patches depend on).
      
      * 'msm-next' of git://people.freedesktop.org/~robclark/linux: (25 commits)
        drm/msm: Drop load/unload drm_driver ops
        drm/msm: Centralize connector registration/unregistration
        drm/msm/hdmi: Prevent gpio_free related kernel warnings
        drm/msm: print offender task name on hangcheck recovery
        drm/msm: fix leak in failed submit path
        drm/msm: de-indent submit_create()
        drm/msm: drop return from gpu->submit()
        drm/msm/mdp4: Don't manage DSI PLL regulators in MDP driver
        drm/msm/edp: Drop regulator_set_voltage call
        drm/msm/dsi: Fix regulator API abuse
        drm/msm: Move call to PTR_ERR_OR_ZERO after reassignment
        drm/msm/mdp: Add support for more RGBX formats
        drm: msm: remove unused variable
        drm/msm: fix ->last_fence() after recover
        drm/msm: 'struct fence' conversion
        drm/msm: remove fence_cbs
        drm/msm: introduce msm_fence_context
        drm/msm: split locking and pinning BO's
        drm/msm/gpu: simplify tracking in-flight bo's
        drm/msm: split out timeout_to_jiffies helper
        ...
      2c3d68ab
    • Dave Airlie's avatar
      Merge tag 'topic/drm-misc-2016-05-08' of git://anongit.freedesktop.org/drm-intel into drm-next · 2958cf0e
      Dave Airlie authored
      Refcounting is hard, so here's a quick pull request with the one-liner to
      fix up i915. Otherwise just a few other small things I picked up. Plus the
      regression fix from Marten for rmfb behaviour that lingered around forever
      since no testers. Feel free to cherry-pick that over to drm-fixes, but
      given that there's not many who seemed to have cared, meh.
      
      * tag 'topic/drm-misc-2016-05-08' of git://anongit.freedesktop.org/drm-intel:
        drm/i915: Correctly refcount connectors in hw state readou
        drm/panel: Flesh out kerneldoc
        drm: Add gpu.tmpl docbook to MAINTAINERS entry
        drm/core: Do not preserve framebuffer on rmfb, v4.
        drm: Fix up markup fumble
        drm/fb_helper: Fix a few typos
      2958cf0e
  3. 08 May, 2016 26 commits
  4. 07 May, 2016 4 commits