[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