Commit 79a2b161 authored by Ville Syrjälä's avatar Ville Syrjälä Committed by Jani Nikula

drm/dp: Define AUX_RETRY_INTERVAL as 500 us

Currently we react to native and i2c defers by waiting either 400-500 us
or 500-600 us, depending on which code path we take. Consolidate them
all to one define AUX_RETRY_INTERVAL which defines the minimum interval.
Since we've been using two different intervals pick the longer of them
and define AUX_RETRY_INTERVAL as 500 us. For the maximum just use
AUX_RETRY_INTERVAL+100 us.

I want to have a define for this so that I can use it when calculating
the estimated duration of i2c-over-aux transfers. Without a define it
would be very easy to change the sleep duration and neglect to update
the i2c-over-aux estimates.

Cc: Simon Farnsworth <simon.farnsworth@onelan.com>
Cc: moosotc@gmail.com
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: default avatarSimon Farnsworth <simon.farnsworth@onelan.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent c4749c9a
...@@ -159,6 +159,8 @@ int drm_dp_bw_code_to_link_rate(u8 link_bw) ...@@ -159,6 +159,8 @@ int drm_dp_bw_code_to_link_rate(u8 link_bw)
} }
EXPORT_SYMBOL(drm_dp_bw_code_to_link_rate); EXPORT_SYMBOL(drm_dp_bw_code_to_link_rate);
#define AUX_RETRY_INTERVAL 500 /* us */
/** /**
* DOC: dp helpers * DOC: dp helpers
* *
...@@ -213,7 +215,7 @@ static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8 request, ...@@ -213,7 +215,7 @@ static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8 request,
return -EIO; return -EIO;
case DP_AUX_NATIVE_REPLY_DEFER: case DP_AUX_NATIVE_REPLY_DEFER:
usleep_range(400, 500); usleep_range(AUX_RETRY_INTERVAL, AUX_RETRY_INTERVAL + 100);
break; break;
} }
} }
...@@ -476,7 +478,7 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg) ...@@ -476,7 +478,7 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
* For now just defer for long enough to hopefully be * For now just defer for long enough to hopefully be
* safe for all use-cases. * safe for all use-cases.
*/ */
usleep_range(500, 600); usleep_range(AUX_RETRY_INTERVAL, AUX_RETRY_INTERVAL + 100);
continue; continue;
default: default:
...@@ -506,7 +508,7 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg) ...@@ -506,7 +508,7 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
aux->i2c_defer_count++; aux->i2c_defer_count++;
if (defer_i2c < 7) if (defer_i2c < 7)
defer_i2c++; defer_i2c++;
usleep_range(400, 500); usleep_range(AUX_RETRY_INTERVAL, AUX_RETRY_INTERVAL + 100);
continue; continue;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment