It's observed that if the previous transfer didn't end with a command without DP_AUX_I2C_MOT, the next trasnfer will miss the first byte. But if the command in previous transfer is requested with length 0, anx7625 can't process this command. To make the case simpler, request with commands without DP_AUX_I2C_MOT bit. Fixes: adca62ec370c ("drm/bridge: anx7625: Support reading edid through aux channel") Signed-off-by: Hsin-Yi Wang <hsinyi@xxxxxxxxxxxx> --- drivers/gpu/drm/bridge/analogix/anx7625.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index 633618bafd75d3..050616c1162128 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -1703,7 +1703,7 @@ static ssize_t anx7625_aux_transfer(struct drm_dp_aux *aux, ret = -EINVAL; } if (!ret) - ret = anx7625_aux_trans(ctx, msg->request, msg->address, + ret = anx7625_aux_trans(ctx, request, msg->address, msg->size, msg->buffer); pm_runtime_mark_last_busy(dev); pm_runtime_put_autosuspend(dev); -- 2.35.1.265.g69c8d7142f-goog