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 |
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 >
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 --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;