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: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Simon Farnsworth <simon.farnsworth@onelan.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:

committed by
Jani Nikula

parent
c4749c9a4a
commit
79a2b161c1
@@ -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,
|
|||||||
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)
|
|||||||
* 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)
|
|||||||
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:
|
||||||
|
Reference in New Issue
Block a user