[PATCH -v3 00/11] drm/exynos: Add atomic modesetting support

Inki Dae inki.dae at samsung.com
Mon Apr 6 08:44:04 PDT 2015


2015-04-06 19:46 GMT+09:00 Inki Dae <inki.dae at samsung.com>:
> On 2015년 04월 04일 03:09, 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.
>>
>> These patches sits on top of the clean up patches I've sent yesterday
>> to this mailing list[1].
>>
>> 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
>
> With this patch series, Kernel booting is halted at end of kernel
> booting. I tested this patch series on Trats2 board based on Exynos4412 SoC.
>
> Below is a part of full booting logs, which was halted,
> [    1.992015] exynos-drm-ipp exynos-drm-ipp: drm ipp registered
> successfully.
> [    1.993009] exynos-drm exynos-drm: bound exynos-drm-vidi (ops
> vidi_component_ops)
> [    1.993036] exynos-drm exynos-drm: bound 11c00000.fimd (ops
> fimd_component_ops)
> [    1.993385] exynos-drm exynos-drm: bound 11c80000.dsi (ops
> exynos_dsi_component_ops)
> [    1.993390] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> [    1.993393] [drm] No driver support for vblank timestamp query.
> [    1.993442] [drm] Initialized exynos 1.0.0 20110530 on minor 0
> [    2.043358] WARNING: CPU: 2 PID: 1209 at drivers/clk/clk.c:898
> clk_unprepare+0x24/0x2c()
> [    2.051412] Modules linked in:
> [    2.054422] CPU: 2 PID: 1209 Comm: kworker/2:1 Tainted: G        W
>     4.0.0-rc6-00526-gc49d7de-dirty #1278
> [    2.064337] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [    2.070428] Workqueue: pm pm_runtime_work>
>
> After that, I tested it again without FIMD and the booting is ok. So I
> guess that this atomic feature has a bug to FIMD driver.
>

More information,

The reason the booting is halted is that a deadlock occurs at fbcon
module when register_framebuffer() is called.

Below are our test results,
- with only cleanup series, FIMD and HDMI work well.
- with cleanup and atomic series, HDMI works well but FIMD doesn't
work - a deadlock occurs.

Could anyone test it with the atomic series on trats2 board? You can
test it on top of exynos-drm-next-todo branch which contains all
relevant patches,
https://git.kernel.org/cgit/linux/kernel/git/daeinki/drm-exynos.git/log/?h=exynos-drm-next-todo

Anyway, we will continue to take a look at the this issue why the
deadlock occurs.

Thanks,
Inki Dae

> Thanks,
> Inki Dae
>
>>
>>       Gustavo
>> ---
>>
>> Gustavo Padovan (11):
>>   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: atomic dpms support
>>
>>  drivers/gpu/drm/bridge/ptn3460.c              |   4 +
>>  drivers/gpu/drm/exynos/exynos_dp_core.c       |   6 +-
>>  drivers/gpu/drm/exynos/exynos_drm_connector.c |   6 +-
>>  drivers/gpu/drm/exynos/exynos_drm_crtc.c      | 226 ++++++++------------------
>>  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       |   4 +-
>>  drivers/gpu/drm/exynos/exynos_drm_dsi.c       |   6 +-
>>  drivers/gpu/drm/exynos/exynos_drm_encoder.c   |  27 +--
>>  drivers/gpu/drm/exynos/exynos_drm_fb.c        |  12 +-
>>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |   3 -
>>  drivers/gpu/drm/exynos/exynos_drm_plane.c     | 113 +++++++------
>>  drivers/gpu/drm/exynos/exynos_drm_plane.h     |  11 --
>>  drivers/gpu/drm/exynos/exynos_drm_vidi.c      |   6 +-
>>  drivers/gpu/drm/exynos/exynos_hdmi.c          |  10 +-
>>  15 files changed, 187 insertions(+), 255 deletions(-)
>>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list