lkml.org 
[lkml]   [2022]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v1 04/11] usb: phy: tegra: switch to using devm_gpiod_get()
    On Mon, Sep 05, 2022 at 03:07:48PM -0700, Guenter Roeck wrote:
    > On 9/5/22 12:55, Andy Shevchenko wrote:
    > > On Mon, Sep 5, 2022 at 10:51 PM Dmitry Torokhov
    > > <dmitry.torokhov@gmail.com> wrote:
    > > > On Mon, Sep 05, 2022 at 10:41:40PM +0300, Andy Shevchenko wrote:
    > > > > On Mon, Sep 5, 2022 at 10:40 PM Dmitry Torokhov
    > > > > <dmitry.torokhov@gmail.com> wrote:
    > > > > > On Mon, Sep 05, 2022 at 01:59:44PM +0300, Andy Shevchenko wrote:
    > > > > > > On Mon, Sep 5, 2022 at 9:32 AM Dmitry Torokhov
    > > > > > > <dmitry.torokhov@gmail.com> wrote:

    ...

    > > > > > > > + gpiod = devm_gpiod_get(&pdev->dev, "nvidia,phy-reset",
    > > > > > > > + GPIOD_OUT_HIGH);
    > > > > > > > err = PTR_ERR_OR_ZERO(gpiod);
    > > > > > >
    > > > > > > What does _OR_ZERO mean now?
    > > > > >
    > > > > > This converts a pointer to an error code if a pointer represents
    > > > > > ERR_PTR() encoded error, or 0 to indicate success.
    > > > >
    > > > > Yes, I know that. My point is, how is it useful now (or even before)?
    > > > > I mean that devm_gpio_get() never returns NULL, right?
    > > >
    > > > What does returning NULL have to do with anything.
    > >
    > > It has to do with a dead code. If defm_gpiod_get() does not return
    > > NULL, then why do we even bother to check?
    >
    > PTR_ERR_OR_ZERO() converts into an error code (if the pointer is an
    > ERR_PTR) or 0 if it is a real pointer. Its purpose is not to convert
    > NULL into 0, its purpose is to convert a pointer either into an error
    > code or 0. That is what is done here, and it is done all over the place
    > in the kernel. I don't see your problem with it. Care to explain ?
    >
    > > > It converts a pointer
    > > > to a "classic" return code, with negative errors and 0 on success.
    > > >
    > > > It allows to not use multiple IS_ERR/PTR_ERR in the code (I'd need 1
    > > > IS_ERR and 2 PTR_ERR, one in dev_err() and another to return).
    > >
    > > I don't see how this is relevant.
    >
    > You lost me. Really, please explain your problem with PTR_ERR_OR_ZERO().

    I don't know what I was thinking about... You, guys, are right, sorry for
    my noise.

    --
    With Best Regards,
    Andy Shevchenko


    \
     
     \ /
      Last update: 2022-09-06 14:33    [W:5.725 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site