drm/dp_helper: don't return EPROTO for defers (v2)
Subsystems (2)
Dave Airlie
maintainerPATCH 1/1 drm/dp_helper: don't return EPROTO for defers (v2)
From: Dave Airlie <[email protected]>
If we get a msg.reply of REPLY_DEFER, we also get an err of 0 so we fail reads with 0 < size and return -EPROTO instead of trying again.
v2: same fix in i2c code.
Found writing MST support.
Signed-off-by Dave Airlie <[email protected]>
--- drivers/gpu/drm/drm_dp_helper.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/gpu/drm/drm_dp_helper.c +4 -4
@@ -386,11 +386,11 @@ static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8 request,return err; } -if (err < size) -return -EPROTO ;switch (msg.reply &DP_AUX_NATIVE_REPLY_MASK ) {case DP_AUX_NATIVE_REPLY_ACK : +if (err < size) +return -EPROTO ;return err;case DP_AUX_NATIVE_REPLY_NACK :
@@ -599,8 +599,6 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)return err; } -if (err < msg->size) -return -EPROTO ;switch (msg->reply &DP_AUX_NATIVE_REPLY_MASK ) {case DP_AUX_NATIVE_REPLY_ACK :
@@ -639,6 +637,8 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)* Both native ACK and I2C ACK replies received. We * can assume the transfer was successful. */ +if (err < msg->size) +return -EPROTO ;return 0 ;case DP_AUX_I2C_REPLY_NACK :
Signature · 1 line
1.8.5.3
Quoted 10 lines · Dave Airlie
From: Dave Airlie <[email protected]>
If we get a msg.reply of
REPLY_DEFER, we also get an err of 0 so we fail reads with 0 < size and return-EPROTOinstead of trying again.v2: same fix in i2c code.
Found writing MST support.
Reviewed-by Jani Nikula <[email protected]>
Quoted 48 lines
Signed-off-by Dave Airlie <[email protected]>--- drivers/gpu/drm/drm_dp_helper.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)drivers/gpu/drm/drm_dp_helper.c +4
-4@@ -386,11 +386,11 @@ static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8 request,return err; } -if (err < size) -return -EPROTO ;switch (msg.reply &DP_AUX_NATIVE_REPLY_MASK ) {case DP_AUX_NATIVE_REPLY_ACK : +if (err < size) +return -EPROTO ;return err;case DP_AUX_NATIVE_REPLY_NACK :@@ -599,8 +599,6 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)return err; } -if (err < msg->size) -return -EPROTO ;switch (msg->reply &DP_AUX_NATIVE_REPLY_MASK ) {case DP_AUX_NATIVE_REPLY_ACK :@@ -639,6 +637,8 @@ static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)* Both native ACK and I2C ACK replies received. We * can assume the transfer was successful. */ +if (err < msg->size) +return -EPROTO ;return 0 ;case DP_AUX_I2C_REPLY_NACK :Signature · 6 lines
1.8.5.3 _______________________________________________ dri-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/dri-devel
Signature · 1 line
Jani Nikula, Intel Open Source Technology Center