2014-12-30 Inki Dae <inki.dae@xxxxxxxxxxx>: > On 2014년 12월 18일 22:58, Gustavo Padovan wrote: > > From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> > > > > Add CRTC callbacks .atomic_begin() .atomic_flush(). On exynos they > > unprotect the windows before the commit and protects it after based on > > a plane mask tha store which plane will be updated. > > tha? Typo? Okay. > > > > > For that we create two new exynos_crtc callbacks: .win_protect() and > > .win_unprotect(). The only driver that implement those now is FIMD. > > > > Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> > > --- > > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 34 +++++++++++++++++++ > > drivers/gpu/drm/exynos/exynos_drm_drv.h | 4 +++ > > drivers/gpu/drm/exynos/exynos_drm_fimd.c | 56 ++++++++++++++++++++++--------- > > drivers/gpu/drm/exynos/exynos_drm_plane.c | 4 +++ > > 4 files changed, 82 insertions(+), 16 deletions(-) > > > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > > index 74980c5..f231eb8 100644 > > --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c > > +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > > @@ -156,6 +156,38 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) > > } > > } > > > > +static void exynos_crtc_atomic_begin(struct drm_crtc *crtc) > > +{ > > + struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); > > + struct drm_plane *plane; > > + int index = 0; > > + > > Isn't drm_modest_lock_all(dev) required? Or is this function atomic > context? I didn't look into all codes yet so there may be my missing point. the atomic code already protects it by calling drm_modeset_lock_all() so we are running in a safe context. Gustavo _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel