Hi Joonyoung,
2015-06-01 Joonyoung Shim jy0922.shim@samsung.com:
On 05/30/2015 12:57 AM, Gustavo Padovan wrote:
Hi Joonyoung,
2015-05-29 Joonyoung Shim jy0922.shim@samsung.com:
Handle changes by removing copy from adjusted_mode to mode as using adjusted_mode of crtc_state.
Signed-off-by: Joonyoung Shim jy0922.shim@samsung.com
This is based on a patch "[PATCH v9 04/18] drm/exynos: atomic phase 1: add .mode_set_nofb() callback" of Gustavo.
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;
Please take a look on the discussion here:
http://www.spinics.net/lists/linux-samsung-soc/msg44734.html
Tobias reports that he was seeing oops due to null pointer with an approach similar to this one.
The lastest version of the patch is here:
http://www.spinics.net/lists/linux-samsung-soc/msg44790.html
It's impossible crtc->base.state is NULL as driver is switched by atomic modeset functions, right?
Yes, I think so too, I'll rebase v10 on top of your patch.
Gustavo