diff mbox series

drm/ast: Zero is missing in detect function

Message ID 20210716015615.9150-1-ainux.wang@gmail.com (mailing list archive)
State New, archived
Headers show
Series drm/ast: Zero is missing in detect function | expand

Commit Message

Ainux Wang July 16, 2021, 1:56 a.m. UTC
From: "Ainux.Wang" <ainux.wang@gmail.com>

The function ast_get_modes() will also return 0, when it try to get the
edid, but it also do not get the edid.

Signed-off-by: Ainux.Wang <ainux.wang@gmail.com>
---
 drivers/gpu/drm/ast/ast_mode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Ainux Wang July 16, 2021, 9:45 a.m. UTC | #1
Thomas Zimmermann <tzimmermann@suse.de> 于2021年7月16日周五 下午2:29写道:
>
> Hi
>
> Am 16.07.21 um 03:56 schrieb ainux.wang@gmail.com:
> > From: "Ainux.Wang" <ainux.wang@gmail.com>
> >
> > The function ast_get_modes() will also return 0, when it try to get the
> > edid, but it also do not get the edid.
> >
> > Signed-off-by: Ainux.Wang <ainux.wang@gmail.com>
> > ---
> >   drivers/gpu/drm/ast/ast_mode.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
> > index e5996ae03c49..b7dcf7821ec6 100644
> > --- a/drivers/gpu/drm/ast/ast_mode.c
> > +++ b/drivers/gpu/drm/ast/ast_mode.c
> > @@ -1299,7 +1299,7 @@ static enum drm_connector_status ast_connector_detect(struct drm_connector
> >       int r;
> >
> >       r = ast_get_modes(connector);
> > -     if (r < 0)
> > +     if (r <= 0)
> >               return connector_status_disconnected;
>
> Thanks for caring.
>
> I thought about the case of (r == 0) when reviewing the patch that added
> it, but found it to be correct. If (r < 0) it's clearly an error and we
> should return 'disconnected'. If (r == 0), we were able to retrieve the
> EDID, but could not find any meaningful modes. Still, it's 'connected'.
>
Hi,Thomas
Thanks review.
I see, the drm_add_edid_modes() will retrun0 in ast_get_modes().
Best regards,
Ainux Wang.
> Unless there is a concrete bug where the status is mis-detected, I think
> that the current code is correct.
>
> Best regards
> Thomas
>
> >
> >       return connector_status_connected;
> >
>
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Software Solutions Germany GmbH
> Maxfeldstr. 5, 90409 Nürnberg, Germany
> (HRB 36809, AG Nürnberg)
> Geschäftsführer: Felix Imendörffer
>
Thomas Zimmermann July 20, 2021, 8:57 a.m. UTC | #2
Hi

Am 16.07.21 um 03:56 schrieb ainux.wang@gmail.com:
> From: "Ainux.Wang" <ainux.wang@gmail.com>
> 
> The function ast_get_modes() will also return 0, when it try to get the
> edid, but it also do not get the edid.
> 
> Signed-off-by: Ainux.Wang <ainux.wang@gmail.com>

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>

after the issue has been discussed a bit. I'll merge the patch into 
drm-misc-next soon.

Best regards
Thomas

> ---
>   drivers/gpu/drm/ast/ast_mode.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
> index e5996ae03c49..b7dcf7821ec6 100644
> --- a/drivers/gpu/drm/ast/ast_mode.c
> +++ b/drivers/gpu/drm/ast/ast_mode.c
> @@ -1299,7 +1299,7 @@ static enum drm_connector_status ast_connector_detect(struct drm_connector
>   	int r;
>   
>   	r = ast_get_modes(connector);
> -	if (r < 0)
> +	if (r <= 0)
>   		return connector_status_disconnected;
>   
>   	return connector_status_connected;
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
index e5996ae03c49..b7dcf7821ec6 100644
--- a/drivers/gpu/drm/ast/ast_mode.c
+++ b/drivers/gpu/drm/ast/ast_mode.c
@@ -1299,7 +1299,7 @@  static enum drm_connector_status ast_connector_detect(struct drm_connector
 	int r;
 
 	r = ast_get_modes(connector);
-	if (r < 0)
+	if (r <= 0)
 		return connector_status_disconnected;
 
 	return connector_status_connected;