Hi Inki and Tobias, 2015-05-12 Gustavo Padovan <gustavo@xxxxxxxxxxx>: > 2015-05-10 Inki Dae <inki.dae@xxxxxxxxxxx>: > > > 2015-05-09 21:13 GMT+09:00 Tobias Jakobi <liquid.acid@xxxxxxx>: > > > Hello Inki, > > > > > > > > > Inki Dae wrote: > > >> Hi, > > >> > > >> 2015-05-09 6:51 GMT+09:00 Tobias Jakobi <liquid.acid@xxxxxxx>: > > >>> Hello, > > >>> > > >>> I've tested this on my Hardkernel Odroid-X2 (connected via HDMI to a > > >>> 1080p panel). > > >>> > > >>> Run the usual modetest tests (just primary plane, primary plane with > > >>> vsync, primary plane with overlay, primary plane with overlay and video > > >>> overlay, overlay partially outside of crtc area, etc.) and haven't > > >>> noticed any issues so far. > > >> > > >> As I mentioned several times, it works well in case that only one crtc > > >> driver is enabled. Could you check it again after you enable two or > > >> more crtc drivers such as FIMD and HDMI or FIMD, HDMI and VIDI > > >> together? For this, dts file for X2 should contain their device nodes > > >> and also should be configurated though menuconfig. > > > I've enabled VIDI and FIMD and confirmed that they should up properly in > > > modetest before applying the series. > > > > > > Booting with the atomic series works fine, but I get a segfault when > > > calling modetest. I've attached the kernel log below. > > > > Below panic issue is same as one I faced with at previous patch seris, > > v3, which was invalid memory access - state->crtc is NULL whille > > modetest is being performed. It seems that the last patch of v4 didn't > > resolve this issue yet. > > The weird thing is that it works quite fine on my exynos 5 hardware. > I'll take a look on what could be be happening to cause this kind of > crash. Can you please check if the following diff solves the issue? iff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c index 8a1cd8b..3d64799 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c @@ -163,6 +163,9 @@ static void exynos_plane_atomic_update(struct drm_plane *plane, struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(state->crtc); struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane); + if (!state->crtc) + return; + exynos_plane_mode_set(plane, state->crtc, state->fb, state->crtc_x, state->crtc_y, state->crtc_w, state->crtc_h, @@ -179,6 +182,9 @@ static void exynos_plane_atomic_disable(struct drm_plane *plane, struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane); struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(old_state->crtc); + if (!old_state->crtc) + return; + if (exynos_crtc->ops->disable_plane) exynos_crtc->ops->disable_plane(exynos_crtc, exynos_plane->zpos); _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel