Hi Am 16.07.21 um 03:56 schrieb ainux.wang@xxxxxxxxx:
From: "Ainux.Wang" <ainux.wang@xxxxxxxxx> 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@xxxxxxxxx> --- 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'.
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
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature