Message ID | 1626191647-13901-4-git-send-email-khsieh@codeaurora.org |
---|---|
State | Superseded |
Headers | show |
Series | add fixes to pass DP Link Layer compliance test cases | expand |
Quoting Kuogee Hsieh (2021-07-13 08:54:03) > 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 <khsieh@codeaurora.org> > --- Reviewed-by: Stephen Boyd <swboyd@chromium.org>
diff --git a/drivers/gpu/drm/msm/dp/dp_aux.c b/drivers/gpu/drm/msm/dp/dp_aux.c index 4a3293b..eb40d84 100644 --- a/drivers/gpu/drm/msm/dp/dp_aux.c +++ b/drivers/gpu/drm/msm/dp/dp_aux.c @@ -353,6 +353,9 @@ static ssize_t dp_aux_transfer(struct drm_dp_aux *dp_aux, if (!(aux->retry_cnt % MAX_AUX_RETRIES)) dp_catalog_aux_update_cfg(aux->catalog); } + /* reset aux if link is in connected state */ + if (dp_catalog_link_is_connected(aux->catalog)) + dp_catalog_aux_reset(aux->catalog); } else { aux->retry_cnt = 0; switch (aux->aux_error_num) {
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 <khsieh@codeaurora.org> --- drivers/gpu/drm/msm/dp/dp_aux.c | 3 +++ 1 file changed, 3 insertions(+)