[PATCH -v3 11/11] drm/exynos: atomic dpms support
Gustavo Padovan
gustavo at padovan.org
Mon Apr 6 11:26:46 PDT 2015
Hi Inki,
2015-04-05 Inki Dae <inki.dae at samsung.com>:
> Hi,
>
> 2015-04-04 3:09 GMT+09:00 Gustavo Padovan <gustavo at padovan.org>:
> > From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
> >
> > Run dpms operations through the atomic intefaces. This basically removes
> > the .dpms() callback from econders and crtcs and use .disable() and
> > .enable() to turn the crtc on and off.
> >
> > v2: Address comments by Joonyoung:
> > - make hdmi code call ->disable() instead of ->dpms()
> > - do not use WARN_ON on crtc enable/disable
> >
> > Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
> > ---
> > drivers/gpu/drm/exynos/exynos_dp_core.c | 2 +-
> > drivers/gpu/drm/exynos/exynos_drm_connector.c | 2 +-
> > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 99 +++++++++++++++------------
> > drivers/gpu/drm/exynos/exynos_drm_dpi.c | 2 +-
> > drivers/gpu/drm/exynos/exynos_drm_drv.h | 4 +-
> > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 2 +-
> > drivers/gpu/drm/exynos/exynos_drm_encoder.c | 27 ++------
> > drivers/gpu/drm/exynos/exynos_drm_vidi.c | 2 +-
> > drivers/gpu/drm/exynos/exynos_hdmi.c | 6 +-
> > 9 files changed, 70 insertions(+), 76 deletions(-)
> >
>
> ...snip...
>
> > diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
> > index 5b597bc..2ea7d01 100644
> > --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> > +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> > @@ -1051,7 +1051,7 @@ static void hdmi_connector_destroy(struct drm_connector *connector)
> > }
> >
> > static struct drm_connector_funcs hdmi_connector_funcs = {
> > - .dpms = drm_helper_connector_dpms,
> > + .dpms = drm_atomic_helper_connector_dpms,
> > .fill_modes = drm_helper_probe_single_connector_modes,
> > .detect = hdmi_detect,
> > .destroy = hdmi_connector_destroy,
> > @@ -2127,8 +2127,8 @@ static void hdmi_dpms(struct exynos_drm_display *display, int mode)
> > */
> > if (crtc)
> > funcs = crtc->helper_private;
> > - if (funcs && funcs->dpms)
> > - (*funcs->dpms)(crtc, mode);
> > + if (funcs && funcs->disable)
> > + (*funcs->disable)(crtc, mode);
>
> This patch makes funcs->disable callback to be called instead of
> funcs->dpms callback. However, funcs->disable callback isn't required
> for second argument so the build is failed like below,
>
> drivers/gpu/drm/exynos/exynos_hdmi.c: In function 'hdmi_dpms':
> drivers/gpu/drm/exynos/exynos_hdmi.c:2131:4: error: too many arguments
> to function 'funcs->disable'
>
> Please, keep in mind that you should build it and at least have a
> basic test before posting.
Sure, I think this happened because I've been using exynos_defconfig to test
my kernels and HDMI is not there. Maybe should we add the EXYNOS_DRM_HDMI to
defconfig? What do you think?
Gustavo
More information about the dri-devel
mailing list