On 06/02/2015 12:09 AM, Tobias Jakobi wrote: > Hello, > > as pointed out in [1] before, this gives me an kernel oops during boot. > > With best wishes, > Tobias > > [1] http://www.spinics.net/lists/linux-samsung-soc/msg44736.html > Yeah, this patch should go after switched by drm_helper_crtc_mode_set, e.g. after the patch "drm/exynos: atomic phase 1: add .mode_set_nofb() callback". Then crtc->base.state cannot be NULL. Gustavo, sorry for that, i meant rebase based on the patch "drm/exynos: atomic phase 1: add .mode_set_nofb() callback" Inki, i think it's time to merge this patchset for switch to atomic modeset functions if no any objection, just need to rebase of this patch based on the patch "drm/exynos: atomic phase 1 : add .mode_set_nofb() callback" and except a patch 17/17 from this merge, i think clean up patches like it need to more review after merge atomic patchset. Thanks. > > On 2015-06-01 17:04, Gustavo Padovan wrote: >> From: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> >> >> Handle changes by removing copy from adjusted_mode to mode as using >> adjusted_mode of crtc_state. >> >> Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> >> --- >> drivers/gpu/drm/exynos/exynos7_drm_decon.c | 4 ++-- >> drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +- >> drivers/gpu/drm/exynos/exynos_drm_plane.c | 13 +++++++------ >> 3 files changed, 10 insertions(+), 9 deletions(-) >> >> diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c >> b/drivers/gpu/drm/exynos/exynos7_drm_decon.c >> index 6714e5b..f29e4be 100644 >> --- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c >> +++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c >> @@ -175,7 +175,7 @@ static bool decon_mode_fixup(struct exynos_drm_crtc *crtc, >> static void decon_commit(struct exynos_drm_crtc *crtc) >> { >> struct decon_context *ctx = crtc->ctx; >> - struct drm_display_mode *mode = &crtc->base.mode; >> + struct drm_display_mode *mode = &crtc->base.state->adjusted_mode; >> u32 val, clkdiv; >> >> if (ctx->suspended) >> @@ -395,7 +395,7 @@ static void decon_shadow_protect_win(struct >> decon_context *ctx, >> static void decon_win_commit(struct exynos_drm_crtc *crtc, unsigned int win) >> { >> struct decon_context *ctx = crtc->ctx; >> - struct drm_display_mode *mode = &crtc->base.mode; >> + struct drm_display_mode *mode = &crtc->base.state->adjusted_mode; >> struct exynos_drm_plane *plane; >> int padding; >> unsigned long val, alpha; >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c >> b/drivers/gpu/drm/exynos/exynos_drm_fimd.c >> index a0edab8..b326b31 100644 >> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c >> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c >> @@ -337,7 +337,7 @@ static bool fimd_mode_fixup(struct exynos_drm_crtc *crtc, >> static void fimd_commit(struct exynos_drm_crtc *crtc) >> { >> struct fimd_context *ctx = crtc->ctx; >> - struct drm_display_mode *mode = &crtc->base.mode; >> + struct drm_display_mode *mode = &crtc->base.state->adjusted_mode; >> struct fimd_driver_data *driver_data = ctx->driver_data; >> void *timing_base = ctx->regs + driver_data->timing_base; >> u32 val, clkdiv; >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c >> b/drivers/gpu/drm/exynos/exynos_drm_plane.c >> index b1180fb..01d2918 100644 >> --- a/drivers/gpu/drm/exynos/exynos_drm_plane.c >> +++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c >> @@ -92,11 +92,12 @@ void exynos_plane_mode_set(struct drm_plane >> *plane, struct drm_crtc *crtc, >> uint32_t src_w, uint32_t src_h) >> { >> struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane); >> + struct drm_display_mode *mode = &crtc->state->adjusted_mode; >> unsigned int actual_w; >> unsigned int actual_h; >> >> - actual_w = exynos_plane_get_size(crtc_x, crtc_w, crtc->mode.hdisplay); >> - actual_h = exynos_plane_get_size(crtc_y, crtc_h, crtc->mode.vdisplay); >> + actual_w = exynos_plane_get_size(crtc_x, crtc_w, mode->hdisplay); >> + actual_h = exynos_plane_get_size(crtc_y, crtc_h, mode->vdisplay); >> >> if (crtc_x < 0) { >> if (actual_w) >> @@ -132,10 +133,10 @@ void exynos_plane_mode_set(struct drm_plane >> *plane, struct drm_crtc *crtc, >> exynos_plane->crtc_height = actual_h; >> >> /* set drm mode data. */ >> - exynos_plane->mode_width = crtc->mode.hdisplay; >> - exynos_plane->mode_height = crtc->mode.vdisplay; >> - exynos_plane->refresh = crtc->mode.vrefresh; >> - exynos_plane->scan_flag = crtc->mode.flags; >> + exynos_plane->mode_width = mode->hdisplay; >> + exynos_plane->mode_height = mode->vdisplay; >> + exynos_plane->refresh = mode->vrefresh; >> + exynos_plane->scan_flag = mode->flags; >> >> DRM_DEBUG_KMS("plane : offset_x/y(%d,%d), width/height(%d,%d)", >> exynos_plane->crtc_x, exynos_plane->crtc_y, > > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel