19. 3. 26. 오후 10:51에 Andrzej Hajda 이(가) 쓴 글: > 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. > I tested Tizen platform and it worked - I could see launcher UI on screen. The version I used was tizen-unified_20190322.1_mobile-wayland-armv7l-tm2.tar. Could you try it again? Ps. I know you are busy with other works but DRM community wants to take care of all real users so we have to follow this. so new ABI or any changes cannot be upstreamed without real user who uses this. Thanks, Inki Dae > > 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 >>> >> > > >