[PATCH v10 00/17] drm/exynos: atomic modesetting support

Inki Dae inki.dae at samsung.com
Sun Jun 14 23:09:29 PDT 2015


Hi Gustavo,

On 2015년 06월 02일 00:04, Gustavo Padovan wrote:
> From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
> 
> Hi,
> 
> Here goes the full support for atomic modesetting on exynos. I've
> split the patches in the various phases of atomic support.
> 
> v2: fixes comments by Joonyoung
>         - remove unused var in patch 09
>         - use ->disable instead of outdated ->dpms in hdmi code
>         - remove WARN_ON from crtc enable/disable
> 
> v3: fixes comment by Joonyoung
>         - move the removal of drm_helper_disable_unused_functions() to
>         separated patch
> 
> v4: add patches that remove unnecessary calls to disable_plane()
> 
> v5: fixes NULL CRTC crash on planes updates (reported by Inki and Tobias)
> 
> v6: rebase on latest exynos_drm_next
> 
> v7: fix comments by Joonyoung
>         - fix two checkpatch errors
>         - remove extra crtc->commit() call
>         - check for null fb on exynos_check_plane()
> 
> v8: fix comments by Joonyoung
>         - fix merge error
>         - move drm_crtc_vblank_get to the commit that introduces atomic pageflip
>         - remove .prepare() in the apropiated patch
>         - add a new patch to move exynos_drm_crtc_disable()
> 
> v9:  * fix comments by Joonyoung
>         - also remove encoder .prepare()
>         - do not shift exynos_update_plane() parameters
>         - remove unused .mode_set() and .mode_set_base()
>      * add specific exynos .atomic_commit()
>      * add split of exynos_crtc->ops->dpms() into enable() and disable()
>      * add other atomic clean ups
> 
> v10: * fix comments by Joonyoung
> 	- add more comments on exynos_atomic_commit()
> 	- make exynos_crtc's .enable and .disable void

I found out one issue that refresh rate gets low with display extension
mode test.

I tested it with two crtc drivers - vidi and fimd on Trats2 board. Here
is how to test it,

#echo 1 > /sys/devices/platform/exynos-drm-vidi/connection
# modetest -M exynos -v -s 31 at 29:720x1280 -s 23 at 21:640x480
setting mode 720x1280-60Hz at XR24 on connectors 31, crtc 29
setting mode 640x480-75Hz at XR24 on connectors 23, crtc 21
freq: 20.00Hz
freq: 20.00Hz

As you can see, refresh rate is 20.

Below is the result without atomic patch series,
# modetest -M exynos -v -s 31 at 29:720x1280 -s 23 at 21:640x480
setting mode 720x1280-60Hz at XR24 on connectors 31, crtc 29
setting mode 640x480-75Hz at XR24 on connectors 23, crtc 21
freq: 60.18Hz
freq: 49.09Hz

I can see 60Hz for FIMD and 49Hz for vidi.

Thanks,
Inki Dae

> 
> 
> 	Gustavo
> 
> ---
> Gustavo Padovan (15):
>   drm/exynos: atomic phase 1: use drm_plane_helper_update()
>   drm/exynos: atomic phase 1: use drm_plane_helper_disable()
>   drm/exynos: atomic phase 1: add .mode_set_nofb() callback
>   drm/exynos: atomic phase 2: wire up state reset(), duplicate() and
>     destroy()
>   drm/exynos: atomic phase 2: keep track of framebuffer pointer
>   drm/exynos: atomic phase 3: atomic updates of planes
>   drm/exynos: atomic phase 3: use atomic .set_config helper
>   drm/exynos: atomic phase 3: convert page flips
>   drm/exynos: remove exported functions from exynos_drm_plane
>   drm/exynos: don't disable unused functions at init
>   drm/exynos: move exynos_drm_crtc_disable()
>   drm/exynos: add exynos specific .atomic_commit()
>   drm/exynos: atomic dpms support
>   drm/exynos: remove unnecessary calls to disable_plane()
>   drm/exynos: split exynos_crtc->dpms in enable() and disable()
> 
> Joonyoung Shim (2):
>   drm/exynos: fix source data argument for plane
>   drm/exynos: use adjusted_mode of crtc_state instead of mode
> 
>  drivers/gpu/drm/bridge/ps8622.c             |   6 +-
>  drivers/gpu/drm/bridge/ptn3460.c            |   6 +-
>  drivers/gpu/drm/exynos/exynos7_drm_decon.c  |  91 +++----------
>  drivers/gpu/drm/exynos/exynos_dp_core.c     |   6 +-
>  drivers/gpu/drm/exynos/exynos_drm_crtc.c    | 201 ++++++----------------------
>  drivers/gpu/drm/exynos/exynos_drm_dpi.c     |   6 +-
>  drivers/gpu/drm/exynos/exynos_drm_drv.c     |   2 +
>  drivers/gpu/drm/exynos/exynos_drm_drv.h     |  10 +-
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c     |   6 +-
>  drivers/gpu/drm/exynos/exynos_drm_encoder.c |  35 +----
>  drivers/gpu/drm/exynos/exynos_drm_fb.c      |  41 ++++++
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c   |   3 -
>  drivers/gpu/drm/exynos/exynos_drm_fimd.c    |  71 +++-------
>  drivers/gpu/drm/exynos/exynos_drm_plane.c   | 137 ++++++++++---------
>  drivers/gpu/drm/exynos/exynos_drm_plane.h   |  11 --
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c    |  59 ++++----
>  drivers/gpu/drm/exynos/exynos_hdmi.c        |  10 +-
>  drivers/gpu/drm/exynos/exynos_mixer.c       |  26 +---
>  18 files changed, 269 insertions(+), 458 deletions(-)
> 



More information about the dri-devel mailing list