[PATCH v3 RESEND 00/24] drm/exynos: add support for GSCALER planes on Exynos5433

Andrzej Hajda a.hajda at samsung.com
Tue Mar 26 13:51:43 UTC 2019


On 26.03.2019 09:45, Inki Dae wrote:
> Hi Andrzej,
>
> 19. 3. 25. 오후 4:13에 Andrzej Hajda 이(가) 쓴 글:
>> Hi Inki,
>>
>> GSCALERs in Exynos SoCs support conversion between wide range of image formats,
>> plus scaling and rotation.
>> Driver already supports mem2mem mode - via ExynosDRM IPP framework.
>> This patchset adds support for mem to display mode - framebuffers can
>> be converted, scaled and send directly to Display Controller. From DRM
>> framework's point of view every GSCALER exposes drm_plane which can be connected
>> to display controller (display panel or TV).
>> The feature is not well documented so the development was quite difficult -
>> a process of trial and error, vendor code analysis, guessing from datasheets.
>> Hopefully most of the issues were solved. I have developed and tested it on
>> TM2 device with panel and TV paths.
>>
>> The patchset contains three parts:
>> 1. Preparatory patches - mostly cleanup and refactoring of drm_crtc and drm_plane
>>    related structures, to allow usage of planes which are not physically bound
>>    to crtcs (01-13).
>> 2. Adding local path support to GSCALER and DECON (14-20).
>> 3. Few fixes of bugs existing already in the code but discovered due to added
>>    local path support (21-23).
>>
>> The patchset is based on exynos_drm_next plus my patchset adding zpos to DECON
>> and FIMD - 'drm/exynos: add support for dynamic zpos in DECON and FIMD' - it is
>> required to allow set z-pos position of GSCALER planes.
> As for this, we had a discussion before,
> https://patchwork.kernel.org/cover/10715521/
>
> And the last comment I left was,
> "I know. Your patch will show that plane order is changed by changing mapping of plane from one window to another window regardless of overlay priority change support. 
> I'm not clear but seems maybe we could do more something with your patch even though DECON/FIMD have limit. So I will enqueue your patch until real user is fixed."
>
> Did you fix TDM module of Tizen which is a real user? Without any modification of the TDM module, the user doesn't work.


Last time I have tried to work with Tizen on tm2 the whole system was
very unstable, the display was black even without my patches, so I gave
up. If you want to fix TDM in Tizen anyway I can try it again, the only
problem is that I am currently busy with other tasks, so it can take
some time to look at Tizen again.


Regards

Andrzej


>
>> To simplify tests I have also created branch containing all required patches:
>> Repo: https://git.tizen.org/cgit/platform/kernel/linux-exynos
>> Branch: sandbox/ahajda/dev/exynos-drm-local-path
>>
>> This is v2 version of the patchset. In this version I have moved code setting
>> cursor plane in crtc to separate patch together with code disabling fast cursor
>> updates - hardware does not support it. To keep bisectability DTS patches should
>> be applied before subsequent ones. It is rebased on today's exynos-drm-next.
>>
>> Please be aware that DTS patches has been already applied to samsung-soc tree,
>> I left them here to simplify testing on exynos-drm-next, which is not in sync with
>> samsung-soc, for this reason I have moved them on the beginning of the patchset.
> Got it. I can test it by doing cherry-pick these two patches.
>
> Thanks,
> Inki Dae
>
>> Regards
>> Andrzej
>>
>>
>> Andrzej Hajda (24):
>>   arm64: dts: exynos: configure GSCALER related clocks
>>   arm64: dts: exynos: add DSD/GSD clocks to DECONs and GSCALERs
>>   drm/exynos: remove exynos_drm_plane.h header
>>   drm/exynos: remove spare macro
>>   drm/exynos: drop exynos_drm_plane_config structure
>>   drm/exynos: add exynos_drm_crtc_init function
>>   drm/exynos/decon5433: embed exynos_drm_crtc directly into context
>>   drm/exynos/decon7: embed exynos_drm_crtc directly into context
>>   drm/exynos/fimd: embed exynos_drm_crtc directly into context
>>   drm/exynos/mixer: embed exynos_drm_crtc directly into context
>>   drm/exynos/vidi: embed exynos_drm_crtc directly into context
>>   drm/exynos: remove standalone exynos_drm_crtc leftovers
>>   drm/exynos/vidi: remove encoder_to_vidi helper
>>   drm/exynos: unify plane type assignment
>>   drm/exynos: set primary plane in exynos_drm_crtc_init
>>   drm/exynos: set cursor plane in exynos_drm_crtc_init
>>   drm/exynos: add plane update/disable callbacks for planes
>>   drm/exynos: add GSCALER plane capability
>>   drm/exynos/gscaler: fix id assignement
>>   drm/exynos/gscaler: add local path support
>>   drm/exynos/decon5433: add local path support
>>   drm/exynos/decon5433: wait for finish previous update
>>   drm/exynos/gscaler: change supported color format BGRX8888 to XBGR8888
>>   drm/exynos/gscaler: fix handling YVU420 pixel format
>>
>>  .../dts/exynos/exynos5433-tm2-common.dtsi     |   6 +
>>  arch/arm64/boot/dts/exynos/exynos5433-tm2.dts |   6 +-
>>  arch/arm64/boot/dts/exynos/exynos5433.dtsi    |  25 +-
>>  drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 162 ++++++++-----
>>  drivers/gpu/drm/exynos/exynos7_drm_decon.c    |  66 +++--
>>  drivers/gpu/drm/exynos/exynos_drm_crtc.c      |  46 ++--
>>  drivers/gpu/drm/exynos/exynos_drm_crtc.h      |   7 +-
>>  drivers/gpu/drm/exynos/exynos_drm_drv.c       |   1 -
>>  drivers/gpu/drm/exynos/exynos_drm_drv.h       |  50 ++--
>>  drivers/gpu/drm/exynos/exynos_drm_fb.c        |  10 +-
>>  drivers/gpu/drm/exynos/exynos_drm_fimd.c      |  85 +++----
>>  drivers/gpu/drm/exynos/exynos_drm_gsc.c       | 229 ++++++++++++++----
>>  drivers/gpu/drm/exynos/exynos_drm_plane.c     |  84 ++++---
>>  drivers/gpu/drm/exynos/exynos_drm_plane.h     |  14 --
>>  drivers/gpu/drm/exynos/exynos_drm_vidi.c      |  48 ++--
>>  drivers/gpu/drm/exynos/exynos_mixer.c         |  95 +++-----
>>  drivers/gpu/drm/exynos/regs-decon5433.h       |   6 +
>>  drivers/gpu/drm/exynos/regs-gsc.h             |   6 +
>>  18 files changed, 538 insertions(+), 408 deletions(-)
>>  delete mode 100644 drivers/gpu/drm/exynos/exynos_drm_plane.h
>>
>



More information about the dri-devel mailing list