diff mbox series

drm/vkms: Remove useless call to drm_connector_register()

Message ID 20190310212241.4fsqejz5rlnp7m2k@smtp.gmail.com (mailing list archive)
State New, archived
Headers show
Series drm/vkms: Remove useless call to drm_connector_register() | expand

Commit Message

Rodrigo Siqueira March 10, 2019, 9:22 p.m. UTC
The function vkms_output_init() is invoked during the module
initialization, and it handles the creation/configuration of the vkms
essential elements (e.g., connectors, encoder, etc). Among the
initializations, this function tries to initialize a connector and
register it by calling drm_connector_register(). However, inside the
drm_connector_register(), at the beginning of this function there is the
following validation:

 if (!connector->dev->registered)
   return 0;

In this sense, invoke drm_connector_register() after initializing the
connector has no effect because the register field is false. The
connector register happens when drm_dev_register() is invoked.
Therefore, this commit removes the drm_connector_register() from
vkms_output_init().

Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
---
 drivers/gpu/drm/vkms/vkms_output.c | 6 ------
 1 file changed, 6 deletions(-)

Comments

Daniel Vetter March 11, 2019, 1:29 p.m. UTC | #1
On Sun, Mar 10, 2019 at 06:22:41PM -0300, Rodrigo Siqueira wrote:
> The function vkms_output_init() is invoked during the module
> initialization, and it handles the creation/configuration of the vkms
> essential elements (e.g., connectors, encoder, etc). Among the
> initializations, this function tries to initialize a connector and
> register it by calling drm_connector_register(). However, inside the
> drm_connector_register(), at the beginning of this function there is the
> following validation:
> 
>  if (!connector->dev->registered)
>    return 0;
> 
> In this sense, invoke drm_connector_register() after initializing the
> connector has no effect because the register field is false. The
> connector register happens when drm_dev_register() is invoked.
> Therefore, this commit removes the drm_connector_register() from
> vkms_output_init().
> 
> Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
> ---
>  drivers/gpu/drm/vkms/vkms_output.c | 6 ------
>  1 file changed, 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/vkms/vkms_output.c b/drivers/gpu/drm/vkms/vkms_output.c
> index 3b162b25312e..a6cee4c279c2 100644
> --- a/drivers/gpu/drm/vkms/vkms_output.c
> +++ b/drivers/gpu/drm/vkms/vkms_output.c
> @@ -71,12 +71,6 @@ int vkms_output_init(struct vkms_device *vkmsdev)
>  
>  	drm_connector_helper_add(connector, &vkms_conn_helper_funcs);
>  
> -	ret = drm_connector_register(connector);

Yeah that's only needed for connectors added when hotplugging at runtime,
not for connectors which are created at driver load time.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

btw same issue exists with the drm_connector_unregister, that's also not
needed.
-Daniel

> -	if (ret) {
> -		DRM_ERROR("Failed to register connector\n");
> -		goto err_connector_register;
> -	}
> -
>  	ret = drm_encoder_init(dev, encoder, &vkms_encoder_funcs,
>  			       DRM_MODE_ENCODER_VIRTUAL, NULL);
>  	if (ret) {
> -- 
> 2.21.0
Rodrigo Siqueira March 11, 2019, 6 p.m. UTC | #2
On 03/11, Daniel Vetter wrote:
> On Sun, Mar 10, 2019 at 06:22:41PM -0300, Rodrigo Siqueira wrote:
> > The function vkms_output_init() is invoked during the module
> > initialization, and it handles the creation/configuration of the vkms
> > essential elements (e.g., connectors, encoder, etc). Among the
> > initializations, this function tries to initialize a connector and
> > register it by calling drm_connector_register(). However, inside the
> > drm_connector_register(), at the beginning of this function there is the
> > following validation:
> > 
> >  if (!connector->dev->registered)
> >    return 0;
> > 
> > In this sense, invoke drm_connector_register() after initializing the
> > connector has no effect because the register field is false. The
> > connector register happens when drm_dev_register() is invoked.
> > Therefore, this commit removes the drm_connector_register() from
> > vkms_output_init().
> > 
> > Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
> > ---
> >  drivers/gpu/drm/vkms/vkms_output.c | 6 ------
> >  1 file changed, 6 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/vkms/vkms_output.c b/drivers/gpu/drm/vkms/vkms_output.c
> > index 3b162b25312e..a6cee4c279c2 100644
> > --- a/drivers/gpu/drm/vkms/vkms_output.c
> > +++ b/drivers/gpu/drm/vkms/vkms_output.c
> > @@ -71,12 +71,6 @@ int vkms_output_init(struct vkms_device *vkmsdev)
> >  
> >  	drm_connector_helper_add(connector, &vkms_conn_helper_funcs);
> >  
> > -	ret = drm_connector_register(connector);
> 
> Yeah that's only needed for connectors added when hotplugging at runtime,
> not for connectors which are created at driver load time.
> 
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> 
> btw same issue exists with the drm_connector_unregister, that's also not
> needed.

Thanks for your review :)

Should I send a V2 that also removes the drm_connector_unregister()? Or
should I send it in a separated patch?

Best Regards

> -Daniel
> 
> > -	if (ret) {
> > -		DRM_ERROR("Failed to register connector\n");
> > -		goto err_connector_register;
> > -	}
> > -
> >  	ret = drm_encoder_init(dev, encoder, &vkms_encoder_funcs,
> >  			       DRM_MODE_ENCODER_VIRTUAL, NULL);
> >  	if (ret) {
> > -- 
> > 2.21.0
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
Daniel Vetter March 11, 2019, 6:50 p.m. UTC | #3
On Mon, Mar 11, 2019 at 03:00:04PM -0300, Rodrigo Siqueira wrote:
> On 03/11, Daniel Vetter wrote:
> > On Sun, Mar 10, 2019 at 06:22:41PM -0300, Rodrigo Siqueira wrote:
> > > The function vkms_output_init() is invoked during the module
> > > initialization, and it handles the creation/configuration of the vkms
> > > essential elements (e.g., connectors, encoder, etc). Among the
> > > initializations, this function tries to initialize a connector and
> > > register it by calling drm_connector_register(). However, inside the
> > > drm_connector_register(), at the beginning of this function there is the
> > > following validation:
> > > 
> > >  if (!connector->dev->registered)
> > >    return 0;
> > > 
> > > In this sense, invoke drm_connector_register() after initializing the
> > > connector has no effect because the register field is false. The
> > > connector register happens when drm_dev_register() is invoked.
> > > Therefore, this commit removes the drm_connector_register() from
> > > vkms_output_init().
> > > 
> > > Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
> > > ---
> > >  drivers/gpu/drm/vkms/vkms_output.c | 6 ------
> > >  1 file changed, 6 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/vkms/vkms_output.c b/drivers/gpu/drm/vkms/vkms_output.c
> > > index 3b162b25312e..a6cee4c279c2 100644
> > > --- a/drivers/gpu/drm/vkms/vkms_output.c
> > > +++ b/drivers/gpu/drm/vkms/vkms_output.c
> > > @@ -71,12 +71,6 @@ int vkms_output_init(struct vkms_device *vkmsdev)
> > >  
> > >  	drm_connector_helper_add(connector, &vkms_conn_helper_funcs);
> > >  
> > > -	ret = drm_connector_register(connector);
> > 
> > Yeah that's only needed for connectors added when hotplugging at runtime,
> > not for connectors which are created at driver load time.
> > 
> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > 
> > btw same issue exists with the drm_connector_unregister, that's also not
> > needed.
> 
> Thanks for your review :)
> 
> Should I send a V2 that also removes the drm_connector_unregister()? Or
> should I send it in a separated patch?

Either is fine with me. Either has my r-b.
-Daniel

> 
> Best Regards
> 
> > -Daniel
> > 
> > > -	if (ret) {
> > > -		DRM_ERROR("Failed to register connector\n");
> > > -		goto err_connector_register;
> > > -	}
> > > -
> > >  	ret = drm_encoder_init(dev, encoder, &vkms_encoder_funcs,
> > >  			       DRM_MODE_ENCODER_VIRTUAL, NULL);
> > >  	if (ret) {
> > > -- 
> > > 2.21.0
> > 
> > -- 
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
> 
> -- 
> Rodrigo Siqueira
> https://siqueira.tech
> Graduate Student
> Department of Computer Science
> University of São Paulo



> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/vkms/vkms_output.c b/drivers/gpu/drm/vkms/vkms_output.c
index 3b162b25312e..a6cee4c279c2 100644
--- a/drivers/gpu/drm/vkms/vkms_output.c
+++ b/drivers/gpu/drm/vkms/vkms_output.c
@@ -71,12 +71,6 @@  int vkms_output_init(struct vkms_device *vkmsdev)
 
 	drm_connector_helper_add(connector, &vkms_conn_helper_funcs);
 
-	ret = drm_connector_register(connector);
-	if (ret) {
-		DRM_ERROR("Failed to register connector\n");
-		goto err_connector_register;
-	}
-
 	ret = drm_encoder_init(dev, encoder, &vkms_encoder_funcs,
 			       DRM_MODE_ENCODER_VIRTUAL, NULL);
 	if (ret) {