From: "Ainux.Wang" ainux.wang@gmail.com
There is should a status when do not get edid.
Signed-off-by: Ainux.Wang ainux.wang@gmail.com --- drivers/gpu/drm/ast/ast_mode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index e5996ae03c49..05df48b3d223 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -1231,8 +1231,10 @@ static int ast_get_modes(struct drm_connector *connector) ret = drm_add_edid_modes(connector, edid); kfree(edid); return ret; - } else + } else { drm_connector_update_edid_property(&ast_connector->base, NULL); + return -ENXIO; + } return 0; }
Hi
Am 16.07.21 um 11:55 schrieb ainux.wang@gmail.com:
From: "Ainux.Wang" ainux.wang@gmail.com
There is should a status when do not get edid.
Well, not really.
So, the problem is that VGA is not hotplug-able. It's supposed to be connected when the computer gets switched on. And there's no interface for sensing the connection state.
But in practice, the cable can be attached/detached at any time. Reading out the EDID is the non-official way for detecting the connection state. You either get EDID data or garbage, where the latter is interpreted as 'disconnected'.
But really old monitors (maybe mid-90s and before) don't provide EDID data. For those, DRM adds standard VGA modes IIRC. And they would likely be detected as 'disconnected'.
I'll merge your original patch '(r <= 0)' and anyone who's stuck with such an old monitor can probably specify a compatible EDID on the kernel command line.
(I'd like to hear other people's opinion about this TBH.)
Best regards Thomas
Signed-off-by: Ainux.Wang ainux.wang@gmail.com
drivers/gpu/drm/ast/ast_mode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index e5996ae03c49..05df48b3d223 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -1231,8 +1231,10 @@ static int ast_get_modes(struct drm_connector *connector) ret = drm_add_edid_modes(connector, edid); kfree(edid); return ret;
- } else
- } else { drm_connector_update_edid_property(&ast_connector->base, NULL);
return -ENXIO;
- } return 0; }
Thomas Zimmermann tzimmermann@suse.de 于2021年7月16日周五 下午8:00写道:
Hi
Am 16.07.21 um 11:55 schrieb ainux.wang@gmail.com:
From: "Ainux.Wang" ainux.wang@gmail.com
There is should a status when do not get edid.
Well, not really.
So, the problem is that VGA is not hotplug-able. It's supposed to be connected when the computer gets switched on. And there's no interface for sensing the connection state.
But in practice, the cable can be attached/detached at any time. Reading out the EDID is the non-official way for detecting the connection state. You either get EDID data or garbage, where the latter is interpreted as 'disconnected'.
But really old monitors (maybe mid-90s and before) don't provide EDID data. For those, DRM adds standard VGA modes IIRC. And they would likely be detected as 'disconnected'.
I'll merge your original patch '(r <= 0)' and anyone who's stuck with such an old monitor can probably specify a compatible EDID on the kernel command line.
(I'd like to hear other people's opinion about this TBH.)
Best regards Thomas
Hi, Thank you for your review and reply, and what is the ‘IIRC’, i do not find it in the kernel document.
Best regards Ainux
Signed-off-by: Ainux.Wang ainux.wang@gmail.com
drivers/gpu/drm/ast/ast_mode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index e5996ae03c49..05df48b3d223 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -1231,8 +1231,10 @@ static int ast_get_modes(struct drm_connector *connector) ret = drm_add_edid_modes(connector, edid); kfree(edid); return ret;
} else
} else { drm_connector_update_edid_property(&ast_connector->base, NULL);
return -ENXIO;
}} return 0;
-- 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
Am 17.07.21 um 03:14 schrieb Ainux Wang:
Thomas Zimmermann tzimmermann@suse.de 于2021年7月16日周五 下午8:00写道:
Hi
Am 16.07.21 um 11:55 schrieb ainux.wang@gmail.com:
From: "Ainux.Wang" ainux.wang@gmail.com
There is should a status when do not get edid.
Well, not really.
So, the problem is that VGA is not hotplug-able. It's supposed to be connected when the computer gets switched on. And there's no interface for sensing the connection state.
But in practice, the cable can be attached/detached at any time. Reading out the EDID is the non-official way for detecting the connection state. You either get EDID data or garbage, where the latter is interpreted as 'disconnected'.
But really old monitors (maybe mid-90s and before) don't provide EDID data. For those, DRM adds standard VGA modes IIRC. And they would likely be detected as 'disconnected'.
I'll merge your original patch '(r <= 0)' and anyone who's stuck with such an old monitor can probably specify a compatible EDID on the kernel command line.
(I'd like to hear other people's opinion about this TBH.)
Best regards Thomas
Hi, Thank you for your review and reply, and what is the ‘IIRC’, i do not
IIRC stands for 'if I remember correctly'
find it in the kernel document.
Best regards Ainux
Signed-off-by: Ainux.Wang ainux.wang@gmail.com
drivers/gpu/drm/ast/ast_mode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index e5996ae03c49..05df48b3d223 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -1231,8 +1231,10 @@ static int ast_get_modes(struct drm_connector *connector) ret = drm_add_edid_modes(connector, edid); kfree(edid); return ret;
} else
} else { drm_connector_update_edid_property(&ast_connector->base, NULL);
return -ENXIO;
}} return 0;
-- 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
dri-devel@lists.freedesktop.org