drm/fb helper: don't call drm_helper_connector_dpms directly
diff mbox

Message ID 1347005692-1459-1-git-send-email-daniel.vetter@ffwll.ch
State New, archived
Headers show

Commit Message

Daniel Vetter Sept. 7, 2012, 8:14 a.m. UTC
Yet again a case where the fb helper is too intimate with the crtc
helper and calls a crtc helepr function directly instead of going
through the interface vtable.

This fixes console blanking in drm/i915 with the new i915-specific
modeset code.

Reported-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/drm_fb_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jesse Barnes Sept. 7, 2012, 9:28 p.m. UTC | #1
On Fri,  7 Sep 2012 10:14:52 +0200
Daniel Vetter <daniel.vetter@ffwll.ch> wrote:

> Yet again a case where the fb helper is too intimate with the crtc
> helper and calls a crtc helepr function directly instead of going
> through the interface vtable.
> 
> This fixes console blanking in drm/i915 with the new i915-specific
> modeset code.
> 
> Reported-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/drm_fb_helper.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index eb79515..b5d05f5 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -330,7 +330,7 @@ static void drm_fb_helper_dpms(struct fb_info *info, int dpms_mode)
>  		/* Walk the connectors & encoders on this fb turning them on/off */
>  		for (j = 0; j < fb_helper->connector_count; j++) {
>  			connector = fb_helper->connector_info[j]->connector;
> -			drm_helper_connector_dpms(connector, dpms_mode);
> +			connector->funcs->dpms(connector, dpms_mode);
>  			drm_connector_property_set_value(connector,
>  				dev->mode_config.dpms_property, dpms_mode);
>  		}

Tested-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Daniel Vetter Sept. 7, 2012, 10:52 p.m. UTC | #2
On Fri, Sep 07, 2012 at 02:28:28PM -0700, Jesse Barnes wrote:
> On Fri,  7 Sep 2012 10:14:52 +0200
> Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> 
> > Yet again a case where the fb helper is too intimate with the crtc
> > helper and calls a crtc helepr function directly instead of going
> > through the interface vtable.
> > 
> > This fixes console blanking in drm/i915 with the new i915-specific
> > modeset code.
> > 
> > Reported-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > ---
> >  drivers/gpu/drm/drm_fb_helper.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> > index eb79515..b5d05f5 100644
> > --- a/drivers/gpu/drm/drm_fb_helper.c
> > +++ b/drivers/gpu/drm/drm_fb_helper.c
> > @@ -330,7 +330,7 @@ static void drm_fb_helper_dpms(struct fb_info *info, int dpms_mode)
> >  		/* Walk the connectors & encoders on this fb turning them on/off */
> >  		for (j = 0; j < fb_helper->connector_count; j++) {
> >  			connector = fb_helper->connector_info[j]->connector;
> > -			drm_helper_connector_dpms(connector, dpms_mode);
> > +			connector->funcs->dpms(connector, dpms_mode);
> >  			drm_connector_property_set_value(connector,
> >  				dev->mode_config.dpms_property, dpms_mode);
> >  		}
> 
> Tested-by: Jesse Barnes <jbarnes@virtuousgeek.org>

Applied with Dave's irc-ack, thanks for yelling&testing.
-Daniel

Patch
diff mbox

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index eb79515..b5d05f5 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -330,7 +330,7 @@  static void drm_fb_helper_dpms(struct fb_info *info, int dpms_mode)
 		/* Walk the connectors & encoders on this fb turning them on/off */
 		for (j = 0; j < fb_helper->connector_count; j++) {
 			connector = fb_helper->connector_info[j]->connector;
-			drm_helper_connector_dpms(connector, dpms_mode);
+			connector->funcs->dpms(connector, dpms_mode);
 			drm_connector_property_set_value(connector,
 				dev->mode_config.dpms_property, dpms_mode);
 		}