diff mbox

drm/rockchip: Rely on the default best_encoder() behavior

Message ID 20170927182317.GA8249@Haneen (mailing list archive)
State New, archived
Headers show

Commit Message

Haneen Mohammed Sept. 27, 2017, 6:23 p.m. UTC
Since the output has 1:1 relationship between connectors and encoders,
and the driver is relying on the atomic helpers, remove the custom
best_encoder() and let the core call drm_atomic_helper_best_encoder().

Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>
---
 drivers/gpu/drm/rockchip/cdn-dp-core.c | 9 ---------
 1 file changed, 9 deletions(-)

Comments

Haneen Mohammed Oct. 9, 2017, 11:18 p.m. UTC | #1
On Wed, Sep 27, 2017 at 04:06:21PM -0400, Sean Paul wrote:
> On Wed, Sep 27, 2017 at 12:23:17PM -0600, Haneen Mohammed wrote:
> > Since the output has 1:1 relationship between connectors and encoders,
> > and the driver is relying on the atomic helpers, remove the custom
> > best_encoder() and let the core call drm_atomic_helper_best_encoder().
> > 
> > Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>
> 
> Thanks for the patch, I've applied it to drm-misc-next.
> 
> I noticed a few instances of .best_encoder = drm_atomic_helper_best_encoder
> hanging around. Any interest in removing those as well?
> 
> Sean
> 
> 

I have found three instances, the one in bridge/synopsys/sw-hdmi.c I
checked and the log msg of commit c2a441fe8f7 mentioned that an explicit
assginment to the best_encoder is needed because the bridge is compatible
with both atomic and non-atomic devices.

I suspect this is the same case for vmwgfx/vmwgfx_/ldu/scrn/stdu.c from
checking commit d947d1b71.

Lastly, there is an instance in tinydrm/core/tinydrm-pipe.c but I am not
sure how to verify if the driver supports atomic and non-atomic devices
as well, hence justify deleting it. 

- Haneen

> > ---
> >  drivers/gpu/drm/rockchip/cdn-dp-core.c | 9 ---------
> >  1 file changed, 9 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> > index a57da05..275844d 100644
> > --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c
> > +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> > @@ -287,14 +287,6 @@ static int cdn_dp_connector_get_modes(struct drm_connector *connector)
> >  	return ret;
> >  }
> >  
> > -static struct drm_encoder *
> > -cdn_dp_connector_best_encoder(struct drm_connector *connector)
> > -{
> > -	struct cdn_dp_device *dp = connector_to_dp(connector);
> > -
> > -	return &dp->encoder;
> > -}
> > -
> >  static int cdn_dp_connector_mode_valid(struct drm_connector *connector,
> >  				       struct drm_display_mode *mode)
> >  {
> > @@ -346,7 +338,6 @@ static int cdn_dp_connector_mode_valid(struct drm_connector *connector,
> >  
> >  static struct drm_connector_helper_funcs cdn_dp_connector_helper_funcs = {
> >  	.get_modes = cdn_dp_connector_get_modes,
> > -	.best_encoder = cdn_dp_connector_best_encoder,
> >  	.mode_valid = cdn_dp_connector_mode_valid,
> >  };
> >  
> > -- 
> > 2.7.4
> > 
> 
> -- 
> Sean Paul, Software Engineer, Google / Chromium OS
Daniel Vetter Oct. 10, 2017, 9:06 a.m. UTC | #2
On Mon, Oct 09, 2017 at 05:18:57PM -0600, Haneen Mohammed wrote:
> On Wed, Sep 27, 2017 at 04:06:21PM -0400, Sean Paul wrote:
> > On Wed, Sep 27, 2017 at 12:23:17PM -0600, Haneen Mohammed wrote:
> > > Since the output has 1:1 relationship between connectors and encoders,
> > > and the driver is relying on the atomic helpers, remove the custom
> > > best_encoder() and let the core call drm_atomic_helper_best_encoder().
> > > 
> > > Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>
> > 
> > Thanks for the patch, I've applied it to drm-misc-next.
> > 
> > I noticed a few instances of .best_encoder = drm_atomic_helper_best_encoder
> > hanging around. Any interest in removing those as well?
> > 
> > Sean
> > 
> > 
> 
> I have found three instances, the one in bridge/synopsys/sw-hdmi.c I
> checked and the log msg of commit c2a441fe8f7 mentioned that an explicit
> assginment to the best_encoder is needed because the bridge is compatible
> with both atomic and non-atomic devices.

Yes, this is blocked on armada not yet being converted to atomic.

Might be good to add a comment to assignment in the code.

> I suspect this is the same case for vmwgfx/vmwgfx_/ldu/scrn/stdu.c from
> checking commit d947d1b71.

vmgfx is fully atomic.

> Lastly, there is an instance in tinydrm/core/tinydrm-pipe.c but I am not
> sure how to verify if the driver supports atomic and non-atomic devices
> as well, hence justify deleting it. 

Same for tinydrm.

You can check this by looking for drm_crtc_helper_set_config() - if a
driver is using that then it's a legacy one, if not, then it's atomic.
-Daniel

> 
> - Haneen
> 
> > > ---
> > >  drivers/gpu/drm/rockchip/cdn-dp-core.c | 9 ---------
> > >  1 file changed, 9 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> > > index a57da05..275844d 100644
> > > --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c
> > > +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c
> > > @@ -287,14 +287,6 @@ static int cdn_dp_connector_get_modes(struct drm_connector *connector)
> > >  	return ret;
> > >  }
> > >  
> > > -static struct drm_encoder *
> > > -cdn_dp_connector_best_encoder(struct drm_connector *connector)
> > > -{
> > > -	struct cdn_dp_device *dp = connector_to_dp(connector);
> > > -
> > > -	return &dp->encoder;
> > > -}
> > > -
> > >  static int cdn_dp_connector_mode_valid(struct drm_connector *connector,
> > >  				       struct drm_display_mode *mode)
> > >  {
> > > @@ -346,7 +338,6 @@ static int cdn_dp_connector_mode_valid(struct drm_connector *connector,
> > >  
> > >  static struct drm_connector_helper_funcs cdn_dp_connector_helper_funcs = {
> > >  	.get_modes = cdn_dp_connector_get_modes,
> > > -	.best_encoder = cdn_dp_connector_best_encoder,
> > >  	.mode_valid = cdn_dp_connector_mode_valid,
> > >  };
> > >  
> > > -- 
> > > 2.7.4
> > > 
> > 
> > -- 
> > Sean Paul, Software Engineer, Google / Chromium OS
diff mbox

Patch

diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c
index a57da05..275844d 100644
--- a/drivers/gpu/drm/rockchip/cdn-dp-core.c
+++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c
@@ -287,14 +287,6 @@  static int cdn_dp_connector_get_modes(struct drm_connector *connector)
 	return ret;
 }
 
-static struct drm_encoder *
-cdn_dp_connector_best_encoder(struct drm_connector *connector)
-{
-	struct cdn_dp_device *dp = connector_to_dp(connector);
-
-	return &dp->encoder;
-}
-
 static int cdn_dp_connector_mode_valid(struct drm_connector *connector,
 				       struct drm_display_mode *mode)
 {
@@ -346,7 +338,6 @@  static int cdn_dp_connector_mode_valid(struct drm_connector *connector,
 
 static struct drm_connector_helper_funcs cdn_dp_connector_helper_funcs = {
 	.get_modes = cdn_dp_connector_get_modes,
-	.best_encoder = cdn_dp_connector_best_encoder,
 	.mode_valid = cdn_dp_connector_mode_valid,
 };