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 >> >