Skip to content

Commit

Permalink
drm/bridge: analogix_dp: return error if transfer none byte
Browse files Browse the repository at this point in the history
Reference from drm_dp_aux description (about transfer):
Upon success, the implementation should return the number of payload bytes
that were transferred, or a negative error-code on failure. Helpers
propagate errors from the .transfer() function, with the exception of
the -EBUSY error, which causes a transaction to be retried. On a short,
helpers will return -EPROTO to make it simpler to check for failure.

The analogix_dp_transfer will return num_transferred, but if there is none
byte been transferred, the return value will be 0, which means success, we
should return error-code if transfer none byte.

for (retry = 0; retry < 32; retry++) {
	err = aux->transfer(aux, &msg);
	if (err < 0) {
		if (err == -EBUSY)
			continue;

		goto unlock;
	}
}

Cc: zain wang <[email protected]>
Reviewed-by: Sean Paul <[email protected]>
Signed-off-by: Jianqun Xu <[email protected]>
Signed-off-by: Archit Taneja <[email protected]>
Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
  • Loading branch information
jayxurockchip authored and boddob committed Nov 16, 2016
1 parent b9876d5 commit 19423ba
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
Original file line number Diff line number Diff line change
Expand Up @@ -1162,5 +1162,5 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
(msg->request & ~DP_AUX_I2C_MOT) == DP_AUX_NATIVE_READ)
msg->reply = DP_AUX_NATIVE_REPLY_ACK;

return num_transferred;
return num_transferred > 0 ? num_transferred : -EBUSY;
}

0 comments on commit 19423ba

Please sign in to comment.