* [PATCH] drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled [not found] <CGME20170113081037eucas1p2a87c058901f1bf9544a36b798b8349ff@eucas1p2.samsung.com> @ 2017-01-13 8:10 ` Andrzej Hajda 2017-01-13 8:37 ` Joonyoung Shim [not found] ` <CGME20170113084308eucas1p24db5cafc0cc94556beaabfc4cfde8200@eucas1p2.samsung.com> 0 siblings, 2 replies; 7+ messages in thread From: Andrzej Hajda @ 2017-01-13 8:10 UTC (permalink / raw) To: Inki Dae, dri-devel, linux-samsung-soc Cc: Marek Szyprowski, Bartlomiej Zolnierkiewicz STANDALONE_UPDATE_F should be set if something changed in plane configurations, including plane disable. The patch fixes page-faults bugs, caused by decon still using framebuffers of disabled planes. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> --- drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c index ef7fcb5..3999e88 100644 --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -46,7 +46,8 @@ enum decon_flag_bits { BIT_CLKS_ENABLED, BIT_IRQS_ENABLED, BIT_WIN_UPDATED, - BIT_SUSPENDED + BIT_SUSPENDED, + BIT_REQUEST_UPDATE }; struct decon_context { @@ -313,6 +314,7 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc, /* window enable */ decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, ~0); + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); } static void decon_disable_plane(struct exynos_drm_crtc *crtc, @@ -325,6 +327,7 @@ static void decon_disable_plane(struct exynos_drm_crtc *crtc, return; decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, 0); + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); } static void decon_atomic_flush(struct exynos_drm_crtc *crtc) @@ -339,8 +342,10 @@ static void decon_atomic_flush(struct exynos_drm_crtc *crtc) decon_shadow_protect_win(ctx, i, false); /* update iff there are active windows */ - if (crtc->base.state->plane_mask) + if (test_bit(BIT_REQUEST_UPDATE, &ctx->flags)) { decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0); + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); + } if (ctx->out_type & IFTYPE_I80) set_bit(BIT_WIN_UPDATED, &ctx->flags); -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled 2017-01-13 8:10 ` [PATCH] drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled Andrzej Hajda @ 2017-01-13 8:37 ` Joonyoung Shim 2017-01-13 8:44 ` Andrzej Hajda [not found] ` <CGME20170113084308eucas1p24db5cafc0cc94556beaabfc4cfde8200@eucas1p2.samsung.com> 1 sibling, 1 reply; 7+ messages in thread From: Joonyoung Shim @ 2017-01-13 8:37 UTC (permalink / raw) To: Andrzej Hajda, Inki Dae, dri-devel, linux-samsung-soc Cc: Marek Szyprowski, Bartlomiej Zolnierkiewicz, Joonyoung Shim Hi Andrzej, On 01/13/2017 05:10 PM, Andrzej Hajda wrote: > STANDALONE_UPDATE_F should be set if something changed in plane configurations, > including plane disable. > The patch fixes page-faults bugs, caused by decon still using framebuffers > of disabled planes. > > Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> > --- > drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c > index ef7fcb5..3999e88 100644 > --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c > +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c > @@ -46,7 +46,8 @@ enum decon_flag_bits { > BIT_CLKS_ENABLED, > BIT_IRQS_ENABLED, > BIT_WIN_UPDATED, > - BIT_SUSPENDED > + BIT_SUSPENDED, > + BIT_REQUEST_UPDATE > }; > > struct decon_context { > @@ -313,6 +314,7 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc, > > /* window enable */ > decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, ~0); > + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); > } > > static void decon_disable_plane(struct exynos_drm_crtc *crtc, > @@ -325,6 +327,7 @@ static void decon_disable_plane(struct exynos_drm_crtc *crtc, > return; > > decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, 0); > + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); > } > > static void decon_atomic_flush(struct exynos_drm_crtc *crtc) > @@ -339,8 +342,10 @@ static void decon_atomic_flush(struct exynos_drm_crtc *crtc) > decon_shadow_protect_win(ctx, i, false); > > /* update iff there are active windows */ > - if (crtc->base.state->plane_mask) > + if (test_bit(BIT_REQUEST_UPDATE, &ctx->flags)) { > decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0); > + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); > + } There is no code to clear BIT_REQUEST_UPDATE, is it right? Thanks. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled 2017-01-13 8:37 ` Joonyoung Shim @ 2017-01-13 8:44 ` Andrzej Hajda 0 siblings, 0 replies; 7+ messages in thread From: Andrzej Hajda @ 2017-01-13 8:44 UTC (permalink / raw) To: Joonyoung Shim, Inki Dae, dri-devel, linux-samsung-soc Cc: Bartlomiej Zolnierkiewicz, Marek Szyprowski On 13.01.2017 09:37, Joonyoung Shim wrote: > > There is no code to clear BIT_REQUEST_UPDATE, is it right? Marek has already pointed it out, v2 sent. Regards Andrzej _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <CGME20170113084308eucas1p24db5cafc0cc94556beaabfc4cfde8200@eucas1p2.samsung.com>]
* [PATCH v2] drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled [not found] ` <CGME20170113084308eucas1p24db5cafc0cc94556beaabfc4cfde8200@eucas1p2.samsung.com> @ 2017-01-13 8:42 ` Andrzej Hajda 2017-01-13 8:55 ` Joonyoung Shim 0 siblings, 1 reply; 7+ messages in thread From: Andrzej Hajda @ 2017-01-13 8:42 UTC (permalink / raw) To: Inki Dae, dri-devel, linux-samsung-soc Cc: Andrzej Hajda, Bartlomiej Zolnierkiewicz, Marek Szyprowski STANDALONE_UPDATE_F should be set if something changed in plane configurations, including plane disable. The patch fixes page-faults bugs, caused by decon still using framebuffers of disabled planes. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> --- v2: fixed clear-bit code (Thx Marek) --- drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c index ef7fcb5..77a614d 100644 --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -46,7 +46,8 @@ enum decon_flag_bits { BIT_CLKS_ENABLED, BIT_IRQS_ENABLED, BIT_WIN_UPDATED, - BIT_SUSPENDED + BIT_SUSPENDED, + BIT_REQUEST_UPDATE }; struct decon_context { @@ -313,6 +314,7 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc, /* window enable */ decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, ~0); + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); } static void decon_disable_plane(struct exynos_drm_crtc *crtc, @@ -325,6 +327,7 @@ static void decon_disable_plane(struct exynos_drm_crtc *crtc, return; decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, 0); + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); } static void decon_atomic_flush(struct exynos_drm_crtc *crtc) @@ -339,8 +342,10 @@ static void decon_atomic_flush(struct exynos_drm_crtc *crtc) decon_shadow_protect_win(ctx, i, false); /* update iff there are active windows */ - if (crtc->base.state->plane_mask) + if (test_bit(BIT_REQUEST_UPDATE, &ctx->flags)) { decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0); + clear_bit(BIT_REQUEST_UPDATE, &ctx->flags); + } if (ctx->out_type & IFTYPE_I80) set_bit(BIT_WIN_UPDATED, &ctx->flags); -- 2.7.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled 2017-01-13 8:42 ` [PATCH v2] " Andrzej Hajda @ 2017-01-13 8:55 ` Joonyoung Shim [not found] ` <CGME20170113092102eucas1p2e9cc739f2ff96b5ad760f5e5c821037d@eucas1p2.samsung.com> 0 siblings, 1 reply; 7+ messages in thread From: Joonyoung Shim @ 2017-01-13 8:55 UTC (permalink / raw) To: Andrzej Hajda, Inki Dae, dri-devel, linux-samsung-soc Cc: Marek Szyprowski, Bartlomiej Zolnierkiewicz, Joonyoung Shim Hi Andrzej, On 01/13/2017 05:42 PM, Andrzej Hajda wrote: > @@ -339,8 +342,10 @@ static void decon_atomic_flush(struct exynos_drm_crtc *crtc) > decon_shadow_protect_win(ctx, i, false); > > /* update iff there are active windows */ > - if (crtc->base.state->plane_mask) > + if (test_bit(BIT_REQUEST_UPDATE, &ctx->flags)) { It's better to just use test_and_clear_bit? > decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0); > + clear_bit(BIT_REQUEST_UPDATE, &ctx->flags); > + } > > if (ctx->out_type & IFTYPE_I80) > set_bit(BIT_WIN_UPDATED, &ctx->flags); > I tested on TM2E board, Tested-by: Joonyoung Shim <jy0922.shim@samsung.com> Thanks. ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <CGME20170113092102eucas1p2e9cc739f2ff96b5ad760f5e5c821037d@eucas1p2.samsung.com>]
* [PATCH v3] drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled [not found] ` <CGME20170113092102eucas1p2e9cc739f2ff96b5ad760f5e5c821037d@eucas1p2.samsung.com> @ 2017-01-13 9:20 ` Andrzej Hajda 2017-01-13 9:26 ` Inki Dae 0 siblings, 1 reply; 7+ messages in thread From: Andrzej Hajda @ 2017-01-13 9:20 UTC (permalink / raw) To: Inki Dae, dri-devel, linux-samsung-soc, Joonyoung Shim Cc: Marek Szyprowski, Bartlomiej Zolnierkiewicz STANDALONE_UPDATE_F should be set if something changed in plane configurations, including plane disable. The patch fixes page-faults bugs, caused by decon still using framebuffers of disabled planes. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com> --- v2: fixed clear-bit code (Thx Marek) v3: use test_and_clear_bit (Thx Joonyoung) --- drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c index ef7fcb5..09e8cc3 100644 --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -46,7 +46,8 @@ enum decon_flag_bits { BIT_CLKS_ENABLED, BIT_IRQS_ENABLED, BIT_WIN_UPDATED, - BIT_SUSPENDED + BIT_SUSPENDED, + BIT_REQUEST_UPDATE }; struct decon_context { @@ -313,6 +314,7 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc, /* window enable */ decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, ~0); + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); } static void decon_disable_plane(struct exynos_drm_crtc *crtc, @@ -325,6 +327,7 @@ static void decon_disable_plane(struct exynos_drm_crtc *crtc, return; decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, 0); + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); } static void decon_atomic_flush(struct exynos_drm_crtc *crtc) @@ -338,8 +341,7 @@ static void decon_atomic_flush(struct exynos_drm_crtc *crtc) for (i = ctx->first_win; i < WINDOWS_NR; i++) decon_shadow_protect_win(ctx, i, false); - /* update iff there are active windows */ - if (crtc->base.state->plane_mask) + if (test_and_clear_bit(BIT_REQUEST_UPDATE, &ctx->flags)) decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0); if (ctx->out_type & IFTYPE_I80) -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3] drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled 2017-01-13 9:20 ` [PATCH v3] " Andrzej Hajda @ 2017-01-13 9:26 ` Inki Dae 0 siblings, 0 replies; 7+ messages in thread From: Inki Dae @ 2017-01-13 9:26 UTC (permalink / raw) To: Andrzej Hajda, dri-devel, linux-samsung-soc, Joonyoung Shim Cc: Bartlomiej Zolnierkiewicz, Marek Szyprowski 2017년 01월 13일 18:20에 Andrzej Hajda 이(가) 쓴 글: > STANDALONE_UPDATE_F should be set if something changed in plane configurations, > including plane disable. > The patch fixes page-faults bugs, caused by decon still using framebuffers > of disabled planes. Excellent! Applied and this patch will go to -fixes with below another one[1], [1] [PATCH] drm/exynos/decon5433: update shadow registers iff there are active windows Thanks. > > Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> > Tested-by: Joonyoung Shim <jy0922.shim@samsung.com> > --- > v2: fixed clear-bit code (Thx Marek) > v3: use test_and_clear_bit (Thx Joonyoung) > --- > drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c > index ef7fcb5..09e8cc3 100644 > --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c > +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c > @@ -46,7 +46,8 @@ enum decon_flag_bits { > BIT_CLKS_ENABLED, > BIT_IRQS_ENABLED, > BIT_WIN_UPDATED, > - BIT_SUSPENDED > + BIT_SUSPENDED, > + BIT_REQUEST_UPDATE > }; > > struct decon_context { > @@ -313,6 +314,7 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc, > > /* window enable */ > decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, ~0); > + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); > } > > static void decon_disable_plane(struct exynos_drm_crtc *crtc, > @@ -325,6 +327,7 @@ static void decon_disable_plane(struct exynos_drm_crtc *crtc, > return; > > decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, 0); > + set_bit(BIT_REQUEST_UPDATE, &ctx->flags); > } > > static void decon_atomic_flush(struct exynos_drm_crtc *crtc) > @@ -338,8 +341,7 @@ static void decon_atomic_flush(struct exynos_drm_crtc *crtc) > for (i = ctx->first_win; i < WINDOWS_NR; i++) > decon_shadow_protect_win(ctx, i, false); > > - /* update iff there are active windows */ > - if (crtc->base.state->plane_mask) > + if (test_and_clear_bit(BIT_REQUEST_UPDATE, &ctx->flags)) > decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0); > > if (ctx->out_type & IFTYPE_I80) > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-01-13 9:26 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <CGME20170113081037eucas1p2a87c058901f1bf9544a36b798b8349ff@eucas1p2.samsung.com> 2017-01-13 8:10 ` [PATCH] drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled Andrzej Hajda 2017-01-13 8:37 ` Joonyoung Shim 2017-01-13 8:44 ` Andrzej Hajda [not found] ` <CGME20170113084308eucas1p24db5cafc0cc94556beaabfc4cfde8200@eucas1p2.samsung.com> 2017-01-13 8:42 ` [PATCH v2] " Andrzej Hajda 2017-01-13 8:55 ` Joonyoung Shim [not found] ` <CGME20170113092102eucas1p2e9cc739f2ff96b5ad760f5e5c821037d@eucas1p2.samsung.com> 2017-01-13 9:20 ` [PATCH v3] " Andrzej Hajda 2017-01-13 9:26 ` Inki Dae
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.