diff options
| author | Tatenda Chipeperekwa <tatendac@codeaurora.org> | 2016-11-15 18:07:08 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-11-29 11:43:14 -0800 |
| commit | 7ea6182fb78bd062df618e348dc694da9065bd9c (patch) | |
| tree | 73525aa1a699c6ae6b5a4ad735787ea96f126d3e | |
| parent | 53863e53970ab9bfef1f085e3fad7bc5311cb1bd (diff) | |
msm: mdss: dp: update AUX error codes to match I2C error codes
Update the AUX error codes to match the I2C error codes so that
the driver has the correct corresponding error code. This is
useful for debugging problems in which there is an AUX
transaction failure.
CRs-Fixed: 1076516
Change-Id: I3857905e5cc916a3e095fa8fcf3d170b172a8efd
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dp.h | 34 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dp_aux.c | 7 |
2 files changed, 33 insertions, 8 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dp.h b/drivers/video/fbdev/msm/mdss_dp.h index 068be4fdf602..6d0f82899485 100644 --- a/drivers/video/fbdev/msm/mdss_dp.h +++ b/drivers/video/fbdev/msm/mdss_dp.h @@ -39,11 +39,6 @@ #define EDP_PORT_MAX 1 #define EDP_SINK_CAP_LEN 16 -#define EDP_AUX_ERR_NONE 0 -#define EDP_AUX_ERR_ADDR -1 -#define EDP_AUX_ERR_TOUT -2 -#define EDP_AUX_ERR_NACK -3 - /* 4 bits of aux command */ #define EDP_CMD_AUX_WRITE 0x8 #define EDP_CMD_AUX_READ 0x9 @@ -512,6 +507,35 @@ enum dp_lane_count { DP_LANE_COUNT_4 = 4, }; +enum dp_aux_error { + EDP_AUX_ERR_NONE = 0, + EDP_AUX_ERR_ADDR = -1, + EDP_AUX_ERR_TOUT = -2, + EDP_AUX_ERR_NACK = -3, + EDP_AUX_ERR_DEFER = -4, + EDP_AUX_ERR_NACK_DEFER = -5, +}; + +static inline char *mdss_dp_get_aux_error(u32 aux_error) +{ + switch (aux_error) { + case EDP_AUX_ERR_NONE: + return DP_ENUM_STR(EDP_AUX_ERR_NONE); + case EDP_AUX_ERR_ADDR: + return DP_ENUM_STR(EDP_AUX_ERR_ADDR); + case EDP_AUX_ERR_TOUT: + return DP_ENUM_STR(EDP_AUX_ERR_TOUT); + case EDP_AUX_ERR_NACK: + return DP_ENUM_STR(EDP_AUX_ERR_NACK); + case EDP_AUX_ERR_DEFER: + return DP_ENUM_STR(EDP_AUX_ERR_DEFER); + case EDP_AUX_ERR_NACK_DEFER: + return DP_ENUM_STR(EDP_AUX_ERR_NACK_DEFER); + default: + return "unknown"; + } +} + enum test_response { TEST_ACK = 0x1, TEST_NACK = 0x2, diff --git a/drivers/video/fbdev/msm/mdss_dp_aux.c b/drivers/video/fbdev/msm/mdss_dp_aux.c index 173851071b7a..a13dc948a9b8 100644 --- a/drivers/video/fbdev/msm/mdss_dp_aux.c +++ b/drivers/video/fbdev/msm/mdss_dp_aux.c @@ -335,11 +335,11 @@ void dp_aux_i2c_handler(struct mdss_dp_drv_pdata *ep, u32 isr) else if (isr & EDP_INTR_TIMEOUT) ep->aux_error_num = EDP_AUX_ERR_TOUT; if (isr & EDP_INTR_NACK_DEFER) - ep->aux_error_num = EDP_AUX_ERR_NACK; + ep->aux_error_num = EDP_AUX_ERR_NACK_DEFER; if (isr & EDP_INTR_I2C_NACK) ep->aux_error_num = EDP_AUX_ERR_NACK; if (isr & EDP_INTR_I2C_DEFER) - ep->aux_error_num = EDP_AUX_ERR_NACK; + ep->aux_error_num = EDP_AUX_ERR_DEFER; } complete(&ep->aux_comp); @@ -709,7 +709,8 @@ static int dp_aux_chan_ready(struct mdss_dp_drv_pdata *ep) for (cnt = 5; cnt; cnt--) { ret = dp_aux_write_buf(ep, EDID_START_ADDRESS, &data, 1, 1); - pr_debug("ret=%d\n", ret); + pr_debug("ret = %d, aux_error = %s\n", + ret, mdss_dp_get_aux_error(ep->aux_error_num)); if (ret >= 0) break; msleep(100); |
