drm level already takes care of retries on EBUSY and we had retries all over intel layer. So let's organize it a bit. Everything started with aux communications on sink_crc were failing a lot randomly on recent platforms. The first solution was to try to use intel_dp_dpcd_read_wake, but then it was suggested to move retries to drm level. Since drm level was already taking care of retries and didn't want to through random retries on that level the second solution was to put the retries at aux_transfer layer what was nacked. So I realized we had so many retries in different places and started to organize that a bit. Instead of duplicating the retries on our code, whenever we need to retry or we don't know what failed we can return EBUSY so drm level will take care of retries. Also during this investigation I noticed we weren't handling forbiddens message size. This is fixed with patch 3/4. Rodrigo Vivi (4): drm/i915: Avoid EBUSY retry on intel_dp_aux_ch. drm/i915: Remove remaining retries from intel_dp_aux_ch. drm/i915: Fix random aux transactions failures. drm/i915: Kill intel_dp_dpcd_read_wake drivers/gpu/drm/i915/intel_dp.c | 195 ++++++++++++++++++---------------------- 1 file changed, 85 insertions(+), 110 deletions(-) -- 2.4.3 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx