[PATCH 2/2] drm/amdgpu/display: use msleep rather than udelay for HDCP

Alex Deucher alexdeucher at gmail.com
Thu Dec 19 04:45:14 UTC 2019


On Wed, Dec 18, 2019 at 6:07 PM Dave Airlie <airlied at gmail.com> wrote:
>
> Hey,
>
> I've pulled in these two patches to drm-next directly because my arm
> test build was broken.

Sounds good.

Alex

>
> Dave.
>
> On Wed, 18 Dec 2019 at 06:47, Alex Deucher <alexdeucher at gmail.com> wrote:
> >
> > ARM has a 2000us limit for udelay.  Switch to msleep.  This code
> > executes in a worker thread so shouldn't be an atomic context.
> >
> > Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> > ---
> >  drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c
> > index bcbc0b8a9aa0..f730b94ac3c0 100644
> > --- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c
> > +++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp2_execution.c
> > @@ -153,7 +153,7 @@ static enum mod_hdcp_status poll_l_prime_available(struct mod_hdcp *hdcp)
> >  {
> >         enum mod_hdcp_status status;
> >         uint8_t size;
> > -       uint16_t max_wait = 20000; // units of us
> > +       uint16_t max_wait = 20; // units of ms
> >         uint16_t num_polls = 5;
> >         uint16_t wait_time = max_wait / num_polls;
> >
> > @@ -161,7 +161,7 @@ static enum mod_hdcp_status poll_l_prime_available(struct mod_hdcp *hdcp)
> >                 status = MOD_HDCP_STATUS_INVALID_OPERATION;
> >         else
> >                 for (; num_polls; num_polls--) {
> > -                       udelay(wait_time);
> > +                       msleep(wait_time);
> >
> >                         status = mod_hdcp_read_rxstatus(hdcp);
> >                         if (status != MOD_HDCP_STATUS_SUCCESS)
> > @@ -474,7 +474,7 @@ static enum mod_hdcp_status locality_check(struct mod_hdcp *hdcp,
> >                          hdcp, "lc_init_write"))
> >                 goto out;
> >         if (is_dp_hdcp(hdcp))
> > -               udelay(16000);
> > +               msleep(16);
> >         else
> >                 if (!mod_hdcp_execute_and_set(poll_l_prime_available,
> >                                 &input->l_prime_available_poll, &status,
> > --
> > 2.23.0
> >
> > _______________________________________________
> > amd-gfx mailing list
> > amd-gfx at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list