Re: [PATCH] drm: change connector disconnected debug message to an error
From: Shuah Khan
Date: Thu Feb 02 2017 - 12:26:01 EST
On 02/02/2017 01:32 AM, Jani Nikula wrote:
> On Thu, 02 Feb 2017, Shuah Khan <shuahkh@xxxxxxxxxxxxxxx> wrote:
>> Change drm_helper_probe_single_connector_modes() to print an error to
>> report connector disconnected status instead of a debug message.
>>
>> When this condition occurs, application doesn't know the real error and
>> reports it as driver lacking support for mode setting. Change it to an
>> error to make it easier to debug.
>
> Please explain what makes this condition an error. Connectors get
> connected and disconnected, business as usual, why should this be an
> error?
>
> BR,
> Jani.
Disconnecting connector itself isn't an error. When user-space tries
to access it, it would be useful to report the status that the connector
is disconnected.
I use embedded system(s) that don't like it when HDMI is hot added or
removed. Also, because of return power, it is safer to disconnect HDMI
and then apply power to the board. It chased a few libdrm and user-space
dead ends before I enabled drm debug and was able to fix the real issue,
which is a disconnected cable.
User-space prints rather confusing messages as it doesn't really know
the disconnected status as it isn't returned to it.
I figured it might be a good idea to at least print a message and this can
be a notice or info instead of an error. I do think its is worth while in
some cases.
thanks,
-- Shuah
>
>
>>
>> Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
>> ---
>> drivers/gpu/drm/drm_probe_helper.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
>> index ac953f0..6472b7f 100644
>> --- a/drivers/gpu/drm/drm_probe_helper.c
>> +++ b/drivers/gpu/drm/drm_probe_helper.c
>> @@ -282,8 +282,8 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector,
>> dev->mode_config.poll_running = drm_kms_helper_poll;
>>
>> if (connector->status == connector_status_disconnected) {
>> - DRM_DEBUG_KMS("[CONNECTOR:%d:%s] disconnected\n",
>> - connector->base.id, connector->name);
>> + DRM_ERROR("[CONNECTOR:%d:%s] disconnected\n",
>> + connector->base.id, connector->name);
>> drm_mode_connector_update_edid_property(connector, NULL);
>> verbose_prune = false;
>> goto prune;
>