[PATCH 04/15] drm/amd/display: Replace msleep with udelay while read edid return defer.

Alex Deucher alexdeucher at gmail.com
Wed Sep 16 22:18:19 UTC 2020


On Wed, Sep 16, 2020 at 6:16 PM Zhuo, Qingqing <Qingqing.Zhuo at amd.com> wrote:
>
> [AMD Official Use Only - Internal Distribution Only]
>
> On Wed, Sep 16, 2020 at 3:42 PM Qingqing Zhuo <qingqing.zhuo at amd.com> wrote:
> >
> > From: jinlong zhang <jinlong.zhang at amd.com>
> >
> > [why]
> > while read edid return defer, then it enter to msleep, but it actually
> > took more time during msleep, this will cause remaining edid read
> > fail.
> >
> > [how]
> > Replacing msleep with udelay, it will not take any extra time, edid return pass finally.
>
> How long of a delay are we talking about here?  Some platforms don't support long udelays and someone will send a patch to change this to msleep.
>
> Alex
>
> ---------------------
>
> Hi Alex,
>
> It's between 0-5ms for generic cases, though there exist some dongle workaround cases where we will do 70ms. Would this be a concern?

I think ARM has a limit of 2ms for udelay.

Alex

>
> Thank you,
> Lillian
>
>
> >
> > Signed-off-by: jinlong zhang <jinlong.zhang at amd.com>
> > Reviewed-by: Wenjing Liu <Wenjing.Liu at amd.com>
> > Acked-by: Qingqing Zhuo <qingqing.zhuo at amd.com>
> > ---
> >  drivers/gpu/drm/amd/display/dc/dce/dce_aux.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
> > b/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
> > index 743042d5905a..cdcad82765e0 100644
> > --- a/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
> > +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
> > @@ -653,7 +653,7 @@ bool dce_aux_transfer_with_retries(struct ddc_service *ddc,
> >                                         if ((*payload->reply == AUX_TRANSACTION_REPLY_AUX_DEFER) ||
> >                                                 (*payload->reply == AUX_TRANSACTION_REPLY_I2C_OVER_AUX_DEFER)) {
> >                                                 if (payload->defer_delay > 0)
> > -                                                       msleep(payload->defer_delay);
> > +
> > + udelay(payload->defer_delay * 1000);
> >                                         }
> >                                 }
> >                                 break;
> > --
> > 2.17.1
> >
> > _______________________________________________
> > amd-gfx mailing list
> > amd-gfx at lists.freedesktop.org
> > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> > s.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=02%7C01%7Cqi
> > ngqing.zhuo%40amd.com%7C36c3bee68c28448769fa08d85a884619%7C3dd8961fe48
> > 84e608e11a82d994e183d%7C0%7C0%7C637358888627498307&sdata=mynpHpiup
> > J%2FU2o5gZNW%2Bft%2Fg2beFY86%2BzMRWoTZCghQ%3D&reserved=0


More information about the amd-gfx mailing list