[PATCH 2/2] drm/amdgpu/display: use msleep rather than udelay for long delays
Alex Deucher
alexdeucher at gmail.com
Tue Jan 25 16:23:49 UTC 2022
On Tue, Jan 25, 2022 at 6:32 AM Lazar, Lijo <lijo.lazar at amd.com> wrote:
>
>
>
> On 1/20/2022 11:34 PM, Alex Deucher wrote:
> > Some architectures (e.g., ARM) throw an compilation error if the
> > udelay is too long. In general udelays of longer than 2000us are
> > not recommended on any architecture. Switch to msleep in these
> > cases.
> >
> > Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> > ---
> > drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> > index aa1c67c3c386..eb4432dca761 100644
> > --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> > @@ -6941,7 +6941,7 @@ bool dpcd_write_128b_132b_sst_payload_allocation_table(
> > }
> > }
> > retries++;
> > - udelay(5000);
> > + msleep(5);
>
> msleep is not recommended for sleeps < 20ms. The original code (modified
> in patch 1) seems to do such a check. As per kernel doc, if precision
> matters recommendation is to use usleep_range().
I'm not sure what to use here. ARM32 doesn't allow udelay longer than 2000us.
Alex
>
> Thanks,
> Lijo
>
> > }
> >
> > if (!result && retries == max_retries) {
> > @@ -6993,7 +6993,7 @@ bool dpcd_poll_for_allocation_change_trigger(struct dc_link *link)
> > break;
> > }
> >
> > - udelay(5000);
> > + msleep(5);
> > }
> >
> > if (result == ACT_FAILED) {
> >
More information about the amd-gfx
mailing list