Skip to content

Commit 0b32456

Browse files
Kuogee Hsiehrobclark
authored andcommitted
drm/msm/dp: reset aux controller after dp_aux_cmd_fifo_tx() failed.
Aux hardware calibration sequence requires resetting the aux controller in order for the new setting to take effect. However resetting the AUX controller will also clear HPD interrupt status which may accidentally cause pending unplug interrupt to get lost. Therefore reset aux controller only when link is in connection state when dp_aux_cmd_fifo_tx() fail. This fixes Link Layer CTS cases 4.2.1.1 and 4.2.1.2. Signed-off-by: Kuogee Hsieh <[email protected]> Reviewed-by: Stephen Boyd <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Clark <[email protected]>
1 parent 4b85d40 commit 0b32456

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/gpu/drm/msm/dp/dp_aux.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,9 @@ static ssize_t dp_aux_transfer(struct drm_dp_aux *dp_aux,
353353
if (!(aux->retry_cnt % MAX_AUX_RETRIES))
354354
dp_catalog_aux_update_cfg(aux->catalog);
355355
}
356+
/* reset aux if link is in connected state */
357+
if (dp_catalog_link_is_connected(aux->catalog))
358+
dp_catalog_aux_reset(aux->catalog);
356359
} else {
357360
aux->retry_cnt = 0;
358361
switch (aux->aux_error_num) {

0 commit comments

Comments
 (0)