diff options
author | Jason Yen <jason.yen@paradetech.corp-partner.google.com> | 2022-09-30 06:25:06 +0200 |
---|---|---|
committer | Douglas Anderson <dianders@chromium.org> | 2022-10-05 17:09:52 +0200 |
commit | 562d2dd8702806c636ba81c43b23394b29c60acc (patch) | |
tree | acbf12f4f69b3fb9f3e398b84a1a1c2f0cb2d806 | |
parent | drm/sched: add missing NULL check in drm_sched_get_cleanup_job v2 (diff) | |
download | linux-562d2dd8702806c636ba81c43b23394b29c60acc.tar.xz linux-562d2dd8702806c636ba81c43b23394b29c60acc.zip |
drm/bridge: ps8640: Add software to support aux defer
This chip can not handle aux defer if the host directly program
its aux registers to access edid/dpcd. So we need let software
to handle the aux defer situation.
Signed-off-by: Jason Yen <jason.yen@paradetech.corp-partner.google.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20220930042506.2529522-1-jason.yen@paradetech.corp-partner.google.com
-rw-r--r-- | drivers/gpu/drm/bridge/parade-ps8640.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c index d7483c13c569..5be6562c2a19 100644 --- a/drivers/gpu/drm/bridge/parade-ps8640.c +++ b/drivers/gpu/drm/bridge/parade-ps8640.c @@ -286,7 +286,6 @@ static ssize_t ps8640_aux_transfer_msg(struct drm_dp_aux *aux, } switch (data & SWAUX_STATUS_MASK) { - /* Ignore the DEFER cases as they are already handled in hardware */ case SWAUX_STATUS_NACK: case SWAUX_STATUS_I2C_NACK: /* @@ -303,6 +302,14 @@ static ssize_t ps8640_aux_transfer_msg(struct drm_dp_aux *aux, case SWAUX_STATUS_ACKM: len = data & SWAUX_M_MASK; break; + case SWAUX_STATUS_DEFER: + case SWAUX_STATUS_I2C_DEFER: + if (is_native_aux) + msg->reply |= DP_AUX_NATIVE_REPLY_DEFER; + else + msg->reply |= DP_AUX_I2C_REPLY_DEFER; + len = data & SWAUX_M_MASK; + break; case SWAUX_STATUS_INVALID: return -EOPNOTSUPP; case SWAUX_STATUS_TIMEOUT: |