Message ID | 1428562478-29076-1-git-send-email-jy0922.shim@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Joonyoung, 2015-04-09 Joonyoung Shim <jy0922.shim@samsung.com>: > Don't call directly disable callback of plane helper, we need to > disconnect the plane from the fb and crtc after disable callback. > > Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> > --- > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 5 +---- > drivers/gpu/drm/exynos/exynos_drm_encoder.c | 2 +- > 2 files changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > index 519c569..50c830e 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > @@ -48,7 +48,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) > { > struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); > struct drm_plane *plane; > - int ret; > > if (!exynos_crtc->enabled) > return; > @@ -69,9 +68,7 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) > if (plane->crtc != crtc) > continue; > > - ret = plane->funcs->disable_plane(plane); > - if (ret) > - DRM_ERROR("Failed to disable plane %d\n", ret); > + drm_plane_force_disable(plane); > } Which tree did you based this code? I've removed all this code in atomic. These two pieces of code makes no sense in atomic modesetting, disable would be called from the drm atomic core there. Gustavo
On 2015? 04? 10? 05:25, Gustavo Padovan wrote: > Hi Joonyoung, > > 2015-04-09 Joonyoung Shim <jy0922.shim@samsung.com>: > >> Don't call directly disable callback of plane helper, we need to >> disconnect the plane from the fb and crtc after disable callback. >> >> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> >> --- >> drivers/gpu/drm/exynos/exynos_drm_crtc.c | 5 +---- >> drivers/gpu/drm/exynos/exynos_drm_encoder.c | 2 +- >> 2 files changed, 2 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c >> index 519c569..50c830e 100644 >> --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c >> +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c >> @@ -48,7 +48,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) >> { >> struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); >> struct drm_plane *plane; >> - int ret; >> >> if (!exynos_crtc->enabled) >> return; >> @@ -69,9 +68,7 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) >> if (plane->crtc != crtc) >> continue; >> >> - ret = plane->funcs->disable_plane(plane); >> - if (ret) >> - DRM_ERROR("Failed to disable plane %d\n", ret); >> + drm_plane_force_disable(plane); >> } > > Which tree did you based this code? I've removed all this code in atomic. > These two pieces of code makes no sense in atomic modesetting, disable would > be called from the drm atomic core there. Mr. Gustavo, Could you check if you have other codes not posted? At least, it seems that the codes you posted are same as above. Thanks, Inki Dae > > Gustavo > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel >
Hi Inki, 2015-04-10 Inki Dae <inki.dae@samsung.com>: > On 2015? 04? 10? 05:25, Gustavo Padovan wrote: > > Hi Joonyoung, > > > > 2015-04-09 Joonyoung Shim <jy0922.shim@samsung.com>: > > > >> Don't call directly disable callback of plane helper, we need to > >> disconnect the plane from the fb and crtc after disable callback. > >> > >> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> > >> --- > >> drivers/gpu/drm/exynos/exynos_drm_crtc.c | 5 +---- > >> drivers/gpu/drm/exynos/exynos_drm_encoder.c | 2 +- > >> 2 files changed, 2 insertions(+), 5 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > >> index 519c569..50c830e 100644 > >> --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c > >> +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > >> @@ -48,7 +48,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) > >> { > >> struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); > >> struct drm_plane *plane; > >> - int ret; > >> > >> if (!exynos_crtc->enabled) > >> return; > >> @@ -69,9 +68,7 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) > >> if (plane->crtc != crtc) > >> continue; > >> > >> - ret = plane->funcs->disable_plane(plane); > >> - if (ret) > >> - DRM_ERROR("Failed to disable plane %d\n", ret); > >> + drm_plane_force_disable(plane); > >> } > > > > Which tree did you based this code? I've removed all this code in atomic. > > These two pieces of code makes no sense in atomic modesetting, disable would > > be called from the drm atomic core there. > > Mr. Gustavo, > > Could you check if you have other codes not posted? At least, it seems > that the codes you posted are same as above. In fact there was one patch not post. In my head it was just a simple clean up so I've delayed but I've looked to them again and it exactly the patch you may need here. Gustavo
diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c index 519c569..50c830e 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c @@ -48,7 +48,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) { struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); struct drm_plane *plane; - int ret; if (!exynos_crtc->enabled) return; @@ -69,9 +68,7 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) if (plane->crtc != crtc) continue; - ret = plane->funcs->disable_plane(plane); - if (ret) - DRM_ERROR("Failed to disable plane %d\n", ret); + drm_plane_force_disable(plane); } } diff --git a/drivers/gpu/drm/exynos/exynos_drm_encoder.c b/drivers/gpu/drm/exynos/exynos_drm_encoder.c index 0648ba4..3ca266d 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_encoder.c +++ b/drivers/gpu/drm/exynos/exynos_drm_encoder.c @@ -90,7 +90,7 @@ static void exynos_drm_encoder_disable(struct drm_encoder *encoder) /* all planes connected to this encoder should be also disabled. */ drm_for_each_legacy_plane(plane, &dev->mode_config.plane_list) { if (plane->crtc && (plane->crtc == encoder->crtc)) - plane->funcs->disable_plane(plane); + drm_plane_force_disable(plane); } }
Don't call directly disable callback of plane helper, we need to disconnect the plane from the fb and crtc after disable callback. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> --- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 5 +---- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-)