Message ID | 20250117-drm-rework-dpcd-access-v1-4-7fc020e04dbc@linaro.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm/display: dp: add new DPCD access functions | expand |
On Fri, 17 Jan 2025, Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote: > Switch drm_dp_aux_dev.c to use new set of DPCD read / write helpers. This might be one of the few places where the old functions and the old return value was used in a sensible manner. BR, Jani. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/display/drm_dp_aux_dev.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/display/drm_dp_aux_dev.c b/drivers/gpu/drm/display/drm_dp_aux_dev.c > index 29555b9f03c8c42681c17c4a01e74a966cf8611f..a31ab3f41efb71fd5f936c24ba5c3b8ebea68a5e 100644 > --- a/drivers/gpu/drm/display/drm_dp_aux_dev.c > +++ b/drivers/gpu/drm/display/drm_dp_aux_dev.c > @@ -163,17 +163,16 @@ static ssize_t auxdev_read_iter(struct kiocb *iocb, struct iov_iter *to) > break; > } > > - res = drm_dp_dpcd_read(aux_dev->aux, pos, buf, todo); > - > + res = drm_dp_dpcd_read_data(aux_dev->aux, pos, buf, todo); > if (res <= 0) > break; > > - if (copy_to_iter(buf, res, to) != res) { > + if (copy_to_iter(buf, todo, to) != todo) { > res = -EFAULT; > break; > } > > - pos += res; > + pos += todo; > } > > if (pos != iocb->ki_pos) > @@ -211,12 +210,11 @@ static ssize_t auxdev_write_iter(struct kiocb *iocb, struct iov_iter *from) > break; > } > > - res = drm_dp_dpcd_write(aux_dev->aux, pos, buf, todo); > - > + res = drm_dp_dpcd_write_data(aux_dev->aux, pos, buf, todo); > if (res <= 0) > break; > > - pos += res; > + pos += todo; > } > > if (pos != iocb->ki_pos)
On Thu, Jan 23, 2025 at 12:05:29PM +0200, Jani Nikula wrote: > On Fri, 17 Jan 2025, Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote: > > Switch drm_dp_aux_dev.c to use new set of DPCD read / write helpers. > > This might be one of the few places where the old functions and the old > return value was used in a sensible manner. Well... Yes and no. What does it mean if we return less bytes? Is that still a protocol error? > > BR, > Jani. > > > > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > > drivers/gpu/drm/display/drm_dp_aux_dev.c | 12 +++++------- > > 1 file changed, 5 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/gpu/drm/display/drm_dp_aux_dev.c b/drivers/gpu/drm/display/drm_dp_aux_dev.c > > index 29555b9f03c8c42681c17c4a01e74a966cf8611f..a31ab3f41efb71fd5f936c24ba5c3b8ebea68a5e 100644 > > --- a/drivers/gpu/drm/display/drm_dp_aux_dev.c > > +++ b/drivers/gpu/drm/display/drm_dp_aux_dev.c > > @@ -163,17 +163,16 @@ static ssize_t auxdev_read_iter(struct kiocb *iocb, struct iov_iter *to) > > break; > > } > > > > - res = drm_dp_dpcd_read(aux_dev->aux, pos, buf, todo); > > - > > + res = drm_dp_dpcd_read_data(aux_dev->aux, pos, buf, todo); > > if (res <= 0) > > break; > > > > - if (copy_to_iter(buf, res, to) != res) { > > + if (copy_to_iter(buf, todo, to) != todo) { > > res = -EFAULT; > > break; > > } > > > > - pos += res; > > + pos += todo; > > } > > > > if (pos != iocb->ki_pos) > > @@ -211,12 +210,11 @@ static ssize_t auxdev_write_iter(struct kiocb *iocb, struct iov_iter *from) > > break; > > } > > > > - res = drm_dp_dpcd_write(aux_dev->aux, pos, buf, todo); > > - > > + res = drm_dp_dpcd_write_data(aux_dev->aux, pos, buf, todo); > > if (res <= 0) > > break; > > > > - pos += res; > > + pos += todo; > > } > > > > if (pos != iocb->ki_pos) > > -- > Jani Nikula, Intel
diff --git a/drivers/gpu/drm/display/drm_dp_aux_dev.c b/drivers/gpu/drm/display/drm_dp_aux_dev.c index 29555b9f03c8c42681c17c4a01e74a966cf8611f..a31ab3f41efb71fd5f936c24ba5c3b8ebea68a5e 100644 --- a/drivers/gpu/drm/display/drm_dp_aux_dev.c +++ b/drivers/gpu/drm/display/drm_dp_aux_dev.c @@ -163,17 +163,16 @@ static ssize_t auxdev_read_iter(struct kiocb *iocb, struct iov_iter *to) break; } - res = drm_dp_dpcd_read(aux_dev->aux, pos, buf, todo); - + res = drm_dp_dpcd_read_data(aux_dev->aux, pos, buf, todo); if (res <= 0) break; - if (copy_to_iter(buf, res, to) != res) { + if (copy_to_iter(buf, todo, to) != todo) { res = -EFAULT; break; } - pos += res; + pos += todo; } if (pos != iocb->ki_pos) @@ -211,12 +210,11 @@ static ssize_t auxdev_write_iter(struct kiocb *iocb, struct iov_iter *from) break; } - res = drm_dp_dpcd_write(aux_dev->aux, pos, buf, todo); - + res = drm_dp_dpcd_write_data(aux_dev->aux, pos, buf, todo); if (res <= 0) break; - pos += res; + pos += todo; } if (pos != iocb->ki_pos)
Switch drm_dp_aux_dev.c to use new set of DPCD read / write helpers. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/gpu/drm/display/drm_dp_aux_dev.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)