drm/dp: Add counters in the drm_dp_aux struct for I2C NACKs and DEFERs
authorTodd Previte <tprevite@gmail.com>
Tue, 4 Nov 2014 22:17:35 +0000 (15:17 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 5 Nov 2014 13:03:22 +0000 (14:03 +0100)
These counters are used for Displayort compliance testing to detect error
conditions when executing tests 4.2.2.4 and 4.2.2.5 in the Displayport Link
CTS specificaiton. They determine whether to use the preferred/requested
mode or the failsafe mode during these tests.

V2:
- Addressed previous review feedback
- Updated commit message
- Changed from uint8_t to uint32_t

Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Todd Previte <tprevite@gmail.com>
[danvet: s/uint32_t/unsigned/ for clearer intent. Also drop the i915
from the subject, it's all core stuff.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_dp_helper.c
include/drm/drm_dp_helper.h

index c088bad7e72f15899c01364104004d898f473b24..959e2074b0d4299c10d45311fbce06c13ab58d0c 100644 (file)
@@ -462,10 +462,12 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
 
                case DP_AUX_I2C_REPLY_NACK:
                        DRM_DEBUG_KMS("I2C nack\n");
+                       aux->i2c_nack_count++;
                        return -EREMOTEIO;
 
                case DP_AUX_I2C_REPLY_DEFER:
                        DRM_DEBUG_KMS("I2C defer\n");
+                       aux->i2c_defer_count++;
                        usleep_range(400, 500);
                        continue;
 
index afebb08eee3a217fff240fb8d11118af3871f3ee..6041ad8c2f2d07c41289c6643261759d7aca0895 100644 (file)
@@ -530,6 +530,7 @@ struct drm_dp_aux {
        struct mutex hw_mutex;
        ssize_t (*transfer)(struct drm_dp_aux *aux,
                            struct drm_dp_aux_msg *msg);
+       unsigned i2c_nack_count, i2c_defer_count;
 };
 
 ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,