1. 30 7月, 2019 1 次提交
  2. 27 6月, 2019 1 次提交
    • S
      drm/exynos: drop drmP.h usage · 2bda34d7
      Sam Ravnborg 提交于
      Drop use of the deprecated drmP.h file.
      Replace with forwards / externals as appropriate.
      
      While touching the list of include files divide
      them up in blocks and sort them.
      
      v3:
      - fix build errors in exynos_drm_g2d.c (Inki Dae)
        The exynos_drm_g2d.c file is not built in the
        standard configurations and was therefore missed.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Joonyoung Shim <jy0922.shim@samsung.com>
      Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Kukjin Kim <kgene@kernel.org>
      Cc: Krzysztof Kozlowski <krzk@kernel.org>
      Cc: Jingoo Han <jingoohan1@gmail.com>
      Fixed merge conflict.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      2bda34d7
  3. 31 5月, 2019 1 次提交
  4. 24 1月, 2019 1 次提交
  5. 04 12月, 2018 2 次提交
  6. 20 9月, 2018 1 次提交
  7. 24 7月, 2018 3 次提交
  8. 02 7月, 2018 1 次提交
  9. 10 5月, 2018 5 次提交
    • A
      drm/exynos: Add driver for Exynos Scaler module · 01fb9185
      Andrzej Pietrasiewicz 提交于
      Exynos Scaler is a hardware module, which processes graphic data fetched
      from memory and transfers the resultant dato another memory buffer.
      Graphics data can be up/down-scaled, rotated, flipped and converted color
      space. Scaler hardware modules are a part of Exynos5420 and newer Exynos
      SoCs.
      Signed-off-by: NAndrzej Pietrasiewicz <andrzej.p@samsung.com>
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Acked-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      01fb9185
    • M
      drm/exynos: fimc: Convert driver to IPP v2 core API · 7a2d5c77
      Marek Szyprowski 提交于
      This patch adapts Exynos DRM FIMC driver to new IPP v2 core API.
      The side effect of this conversion is a switch to driver component API
      to register properly in the Exynos DRM core.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Merge conflict so merged manually.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      7a2d5c77
    • M
      drm/exynos: gsc: Convert driver to IPP v2 core API · 8b7d3ec8
      Marek Szyprowski 提交于
      This patch adapts Exynos DRM GScaler driver to new IPP v2 core API.
      The side effect of this conversion is a switch to driver component API
      to register properly in the Exynos DRM core. During the conversion
      driver has been adapted to support more specific compatible strings
      to distinguish between Exynos5250 and Exynos5420 (different hardware
      limits). Support for Exynos5433 variant has been added too
      (different limits table, removed dependency on ARCH_EXYNOS5).
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Tested-by: NHoegeun Kwon <hoegeun.kwon@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      8b7d3ec8
    • M
      drm/exynos: rotator: Convert driver to IPP v2 core API · d8cb9eea
      Marek Szyprowski 提交于
      This patch adapts Exynos DRM rotator driver to new IPP v2 core API.
      The side effect of this conversion is a switch to driver component API
      to register properly in the Exynos DRM core.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      d8cb9eea
    • M
      drm/exynos: ipp: Add IPP v2 framework · 9913f74f
      Marek Szyprowski 提交于
      This patch adds Exynos IPP v2 subsystem and userspace API.
      
      New userspace API is focused ONLY on memory-to-memory image processing.
      The two remainging operation modes of obsolete IPP v1 API (framebuffer
      writeback and local-path output with image processing) can be implemented
      using standard DRM features: writeback connectors and additional DRM planes
      with scaling features.
      
      V2 IPP userspace API is based on stateless approach, which much better fits
      to memory-to-memory image processing model. It also provides support for
      all image formats, which are both already defined in DRM API and supported
      by the existing IPP hardware modules.
      
      The API consists of the following ioctls:
      - DRM_IOCTL_EXYNOS_IPP_GET_RESOURCES: to enumerate all available image
        processing modules,
      - DRM_IOCTL_EXYNOS_IPP_GET_CAPS: to query capabilities and supported image
        formats of given IPP module,
      - DRM_IOCTL_EXYNOS_IPP_GET_LIMITS: to query hardware limitiations for
        selected image format of given IPP module,
      - DRM_IOCTL_EXYNOS_IPP_COMMIT: to perform operation described by the
        provided structures (source and destination buffers, operation rectangle,
        transformation, etc).
      
      The proposed userspace API is extensible. In the future more advanced image
      processing operations can be defined to support for example blending.
      
      Userspace API is fully functional also on DRM render nodes, so it is not
      limited to the root/privileged client.
      
      Internal driver API also has been completely rewritten. New IPP core
      performs all possible input validation, checks and object life-time
      control. The drivers can focus only on writing configuration to hardware
      registers. Stateless nature of DRM_IOCTL_EXYNOS_IPP_COMMIT ioctl simplifies
      the driver API. Minimal driver needs to provide a single callback for
      starting processing and an array with supported image formats.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Tested-by: NHoegeun Kwon <hoegeun.kwon@samsung.com>
      Merge conflict so merged manually.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      9913f74f
  10. 28 3月, 2018 1 次提交
  11. 02 1月, 2018 1 次提交
    • M
      drm/exynos: ipp: Remove Exynos DRM IPP subsystem · 8ded5941
      Marek Szyprowski 提交于
      Exynos DRM IPP subsystem is in fact non-functional and frankly speaking
      dead-code. This patch clearly marks that Exynos DRM IPP subsystem is
      broken and never really functional. It will be replaced by a completely
      rewritten API.
      
      Exynos DRM IPP user-space API can be obsoleted for the following
      reasons:
      
      1. Exynos DRM IPP user-space API can be optional in Exynos DRM, so
      userspace should not rely that it is always available and should have
      a software fallback in case it is not there.
      
      2. The only mode which was initially semi-working was memory-to-memory
      image processing. The remaining modes (LCD-"writeback" and "output")
      were never operational due to missing code (both in mainline and even
      vendor kernels).
      
      3. Exynos DRM IPP mainline user-space API compatibility for
      memory-to-memory got broken very early by commit 083500ba ("drm:
      remove DRM_FORMAT_NV12MT", which removed the support for tiled formats,
      the main feature which made this API somehow useful on Exynos platforms
      (video codec that time produced only tiled frames, to implement xvideo
      or any other video overlay, one has to de-tile them for proper
      display).
      
      4. Broken drivers. Especially once support for IOMMU has been added,
      it revealed that drivers don't configure DMA operations properly and in
      many cases operate outside the provided buffers trashing memory around.
      
      5. Need for external patches. Although IPP user-space API has been used
      in some vendor kernels, but in such cases there were additional patches
      applied (like reverting mentioned 083500ba patch) what means that
      those userspace apps which might use it, still won't work with the
      mainline kernel version.
      
      We don't have time machines, so we cannot change it, but Exynos DRM IPP
      extension should never have been merged to mainline in that form.
      
      Exynos IPP subsystem and user-space API will be rewritten, so remove
      current IPP core code and mark existing drivers as BROKEN.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Acked-by: NDaniel Stone <daniels@collabora.com>
      Acked-by: NKrzysztof Kozlowski <krzk@kernel.org>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      8ded5941
  12. 08 12月, 2017 1 次提交
  13. 07 12月, 2017 2 次提交
    • I
      drm/exynos: remove unnecessary function declaration · 1cd6ae35
      Inki Dae 提交于
      Removed exynos_drm_get_dma_device funtion declaration on top
      of exynos_drm_drv.c file.
      
      We can remove this declaration by moving the implementation
      of this function upwards.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      1cd6ae35
    • M
      drm/exynos: Fix dma-buf import · 89452d4a
      Marek Szyprowski 提交于
      When IOMMU support was enabled, dma-buf import in Exynos DRM was broken
      since commit f43c3596 ("drm/exynos: use real device for DMA-mapping
      operations") due to using wrong struct device in drm_gem_prime_import()
      function. This patch fixes following kernel BUG caused by incorrect buffer
      mapping to DMA address space:
      
      exynos-sysmmu 14650000.sysmmu: 14450000.mixer: PAGE FAULT occurred at 0xb2e00000
      ------------[ cut here ]------------
      kernel BUG at drivers/iommu/exynos-iommu.c:449!
      Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
      Modules linked in:
      CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.14.0-rc4-next-20171016-00033-g990d723669fd #3165
      Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
      task: c0e0b7c0 task.stack: c0e00000
      PC is at exynos_sysmmu_irq+0x1d0/0x24c
      LR is at exynos_sysmmu_irq+0x154/0x24c
      ------------[ cut here ]------------
      Reported-by: NMarian Mihailescu <mihailescu2m@gmail.com>
      Fixes: f43c3596 ("drm/exynos: use real device for DMA-mapping operations")
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Reviewed-by: NTobias Jakobi <tjakobi@math.uni-bielefeld.de>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      89452d4a
  14. 16 10月, 2017 2 次提交
  15. 19 9月, 2017 2 次提交
  16. 17 8月, 2017 1 次提交
  17. 27 7月, 2017 1 次提交
  18. 26 7月, 2017 1 次提交
  19. 01 6月, 2017 1 次提交
  20. 29 5月, 2017 1 次提交
  21. 26 5月, 2017 1 次提交
  22. 09 5月, 2017 1 次提交
  23. 17 2月, 2017 1 次提交
  24. 08 2月, 2017 2 次提交
  25. 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
  26. 09 1月, 2017 1 次提交
  27. 02 11月, 2016 1 次提交
  28. 27 10月, 2016 1 次提交