1. 16 8月, 2015 17 次提交
  2. 06 8月, 2015 1 次提交
  3. 27 7月, 2015 1 次提交
  4. 22 6月, 2015 13 次提交
  5. 19 6月, 2015 8 次提交
    • I
      drm/exynos: do not wait for vblank at atomic operation · ad533ade
      Inki Dae 提交于
      This patch resolves the issue that refresh rate got low
      at extension mode test with fimd and vidi combination.
      
      The problem was because atomic_commit callback waited
      for the completion of vblank to gaurantee crtc relevant
      registers are updated from shadow registers to real ones.
      
      However, the waiting there is really unnecessary because
      page flip operation does already it.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      ad533ade
    • K
      drm/exynos: Remove unused vma field of exynos_drm_gem_obj · 286bd022
      Krzysztof Kozlowski 提交于
      The field 'vma' of 'exynos_drm_gem_obj' structure was introduced in
      2a3098ff ("drm/exynos: add userptr feature for g2d module") but is
      not referenced anywhere.
      
      One instance of 'exynos_drm_gem_obj' may be mapped to multiple
      user-space VMAs so 'vma' field does not look useful anyway.
      Signed-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      286bd022
    • I
      drm/exynos: fimd: fix page fault issue with iommu · 94ab95a9
      Inki Dae 提交于
      This patch resolves page fault issue with iommu and atomic feature
      when modetest test application is terminated.
      
      ENWIN_F field of WINCONx register enables or disable a dma channel to
      each hardware overlay - the value of the field will be updated to real
      register after vsync.
      
      So this patch makes sure the dma channel is disabled by waiting for vsync
      one time after clearing shadow registers to all dma channels.
      
      Below shows the page fault issue:
      setting mode 720x1280-60Hz@XR24 on connectors 31, crtc 29
      freq: 59.99Hz
      
      [   34.831025] PAGE FAULT occurred at 0x20400000 by 11e20000.sysmmu(Page
      		table base: 0x6e324000)
      [   34.838072]  Lv1 entry: 0x6e92dc01
      [   34.841489] ------------[ cut here ]------------
      [   34.846058] kernel BUG at drivers/iommu/exynos-iommu.c:364!
      [   34.851614] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
      [   34.857428] Modules linked in:
      <--snip-->
      [   35.210894] [<c02880d0>] (exynos_sysmmu_irq) from [<c00608f8>]
      (handle_irq_event_percpu+0x78/0x134)
      [   35.219914] [<c00608f8>] (handle_irq_event_percpu) from [<c00609f0>]
      (handle_irq_event+0x3c/0x5c)
      [   35.228768] [<c00609f0>] (handle_irq_event) from [<c0063698>]
      (handle_level_irq+0xc4/0x13c)
      [   35.237101] [<c0063698>] (handle_level_irq) from [<c005ff7c>]
      (generic_handle_irq+0x2c/0x3c)
      [   35.245521] [<c005ff7c>] (generic_handle_irq) from [<c02214ec>]
      (combiner_handle_cascade_irq+0x94/0x100)
      [   35.254980] [<c02214ec>] (combiner_handle_cascade_irq) from
      [<c005ff7c>] (generic_handle_irq+0x2c/0x3c)
      [   35.264353] [<c005ff7c>] (generic_handle_irq) from [<c0060248>]
      (__handle_domain_irq+0x7c/0xec)
      [   35.273034] [<c0060248>] (__handle_domain_irq) from [<c0009434>]
      (gic_handle_irq+0x30/0x68)
      [   35.281366] [<c0009434>] (gic_handle_irq) from [<c0012ec0>]
      (__irq_svc+0x40/0x74)
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      94ab95a9
    • M
      drm/exynos: iommu: improve a check for non-iommu dma_ops · bcfe4e25
      Marek Szyprowski 提交于
      DRM Exynos driver is relying on dma-mapping internal structures when used
      with IOMMU enabled. This patch partially hides dma-mapping internal things
      by using proper get_dma_ops/set_dma_ops calls.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      bcfe4e25
    • M
      drm/exynos: iommu: detach from default dma-mapping domain on init · 45286858
      Marek Szyprowski 提交于
      This patch adds code, which detach sub-device nodes from default iommu
      domain if such has been configured. This lets Exynos DRM driver to properly
      attach sub-devices to its own, common for all sub-devices domain.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Tested-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      45286858
    • M
      drm/exynos: fimd: ensure proper hw state in fimd_clear_channel() · fb88e214
      Marek Szyprowski 提交于
      One should not do any assumptions on the stare of the fimd hardware
      during driver initialization, so to properly reset fimd before enabling
      IOMMU, one should ensure that all power domains and clocks are really
      enabled. This patch adds pm_runtime and clocks management in the
      fimd_clear_channel() function to ensure that any access to fimd
      registers will be performed with clocks and power domains enabled.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Tested-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      fb88e214
    • J
      drm/exynos: initialize VIDCON0 when fimd is disabled · b74f14fd
      Joonyoung Shim 提交于
      When the fimd is disabled by fimd_disable(), enabled overlay layers also
      are disabled. If clocks for fimd are enabled by fimd_enable() on this
      case, it can lead IOMMU page fault. The reason is that VIDCON0_ENVID and
      VIDCON0_ENVID_F bits of VIDCON0 register are set still even though fimd
      is disabled, so it may continue display output of prior when clocks for
      fimd are enabled again.
      Signed-off-by: NJoonyoung Shim <jy0922.shim@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      b74f14fd
    • J
      drm/exynos: remove chained calls to enable · c329f667
      Joonyoung Shim 提交于
      With atomic modesetting all the control for CRTC, Planes, Encoders and
      Connectors should come from DRM core, so the driver is not allowed to
      enable or disable planes from inside the crtc_enable()/disable() call.
      
      But it needs to disable planes with crtc_disable in exynos driver
      internally. Because crtc is disabled before plane is disabled, it means
      plane_disable just returns without any register changes, then we cannot
      be sure setting register to disable plane when crtc is disable.
      
      This patch removes this chainned calls to enable plane from exynos hw
      drivers code letting only DRM core touch planes except to disable plane.
      Also it leads eliminable enabled and resume of struct exynos_drm_plane.
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Signed-off-by: NJoonyoung Shim <jy0922.shim@samsung.com>
      Tested-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      c329f667