diff mbox

drm: Make the HPD status updates debug logs more readable

Message ID 1354636817-1426-1-git-send-email-damien.lespiau@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Damien Lespiau Dec. 4, 2012, 4 p.m. UTC
From: Damien Lespiau <damien.lespiau@intel.com>

Instead of just printing "status updated from 1 to 2", make those enum
numbers immediately readable.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/drm_crtc_helper.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

Comments

Daniel Vetter Dec. 4, 2012, 5:39 p.m. UTC | #1
On Tue, Dec 04, 2012 at 04:00:17PM +0000, Damien Lespiau wrote:
> From: Damien Lespiau <damien.lespiau@intel.com>
> 
> Instead of just printing "status updated from 1 to 2", make those enum
> numbers immediately readable.
> 
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>

I like, stupid me can never remember the magic values. For the patch
itself, can you please also patch the connector updates in
drm_helper_probe_single_connector_modes (which is required to avoid losing
hpd events when doing a manual probe cycle) and output_poll_execute. For
completeness maybe also throw in a debug output in
drm_helper_disable_unused_functions, but that's only relevant for drivers
that use the modeset helpers (i.e. not for drm/i915).

Thanks, Daniel

> ---
>  drivers/gpu/drm/drm_crtc_helper.c | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
> index 1fe719f..8b963fd 100644
> --- a/drivers/gpu/drm/drm_crtc_helper.c
> +++ b/drivers/gpu/drm/drm_crtc_helper.c
> @@ -1043,6 +1043,18 @@ void drm_kms_helper_poll_fini(struct drm_device *dev)
>  }
>  EXPORT_SYMBOL(drm_kms_helper_poll_fini);
>  
> +static const char *connector_status_str(enum drm_connector_status status)
> +{
> +	switch (status) {
> +	case connector_status_connected:
> +		return "connected";
> +	case connector_status_disconnected:
> +		return "disconnected";
> +	default:
> +		return "unknown";
> +	}
> +}
> +
>  void drm_helper_hpd_irq_event(struct drm_device *dev)
>  {
>  	struct drm_connector *connector;
> @@ -1062,10 +1074,11 @@ void drm_helper_hpd_irq_event(struct drm_device *dev)
>  		old_status = connector->status;
>  
>  		connector->status = connector->funcs->detect(connector, false);
> -		DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated from %d to %d\n",
> +		DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated from %s to %s\n",
>  			      connector->base.id,
>  			      drm_get_connector_name(connector),
> -			      old_status, connector->status);
> +			      connector_status_str(old_status),
> +			      connector_status_str(connector->status));
>  		if (old_status != connector->status)
>  			changed = true;
>  	}
> -- 
> 1.7.11.7
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
Lespiau, Damien Dec. 10, 2012, 8:28 p.m. UTC | #2
On Tue, Dec 4, 2012 at 5:39 PM, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Tue, Dec 04, 2012 at 04:00:17PM +0000, Damien Lespiau wrote:
>> From: Damien Lespiau <damien.lespiau@intel.com>
>>
>> Instead of just printing "status updated from 1 to 2", make those enum
>> numbers immediately readable.
>>
>> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
>
> I like, stupid me can never remember the magic values. For the patch
> itself, can you please also patch the connector updates in
> drm_helper_probe_single_connector_modes (which is required to avoid losing
> hpd events when doing a manual probe cycle) and output_poll_execute. For
> completeness maybe also throw in a debug output in
> drm_helper_disable_unused_functions, but that's only relevant for drivers
> that use the modeset helpers (i.e. not for drm/i915).

v2 sent. I think that the current log messages around ->detect in
drm_helper_probe_single_connector_modes() serves as nice guards around
the detection code and went to "fix" a bigger offender, namely logging
all the previously valid modes when detecting a disconnection.

For the last one, leaving the decision of adding yet another log
message to the users of that helper sounds better to me.
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 1fe719f..8b963fd 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -1043,6 +1043,18 @@  void drm_kms_helper_poll_fini(struct drm_device *dev)
 }
 EXPORT_SYMBOL(drm_kms_helper_poll_fini);
 
+static const char *connector_status_str(enum drm_connector_status status)
+{
+	switch (status) {
+	case connector_status_connected:
+		return "connected";
+	case connector_status_disconnected:
+		return "disconnected";
+	default:
+		return "unknown";
+	}
+}
+
 void drm_helper_hpd_irq_event(struct drm_device *dev)
 {
 	struct drm_connector *connector;
@@ -1062,10 +1074,11 @@  void drm_helper_hpd_irq_event(struct drm_device *dev)
 		old_status = connector->status;
 
 		connector->status = connector->funcs->detect(connector, false);
-		DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated from %d to %d\n",
+		DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated from %s to %s\n",
 			      connector->base.id,
 			      drm_get_connector_name(connector),
-			      old_status, connector->status);
+			      connector_status_str(old_status),
+			      connector_status_str(connector->status));
 		if (old_status != connector->status)
 			changed = true;
 	}