lkml.org 
[lkml]   [2019]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v3 5/7] gpio: Add GPIO Aggregator/Repeater driver
    From
    Date

    On 03/12/19 1:47 PM, Geert Uytterhoeven wrote:
    > Hi Harish,
    >
    > On Tue, Dec 3, 2019 at 6:42 AM Harish Jenny K N
    > <harish_kandiga@mentor.com> wrote:
    >>> +static int gpio_aggregator_probe(struct platform_device *pdev)
    >>> +{
    >>> + struct device *dev = &pdev->dev;
    >>> + struct gpio_desc **descs;
    >>> + struct gpiochip_fwd *fwd;
    >>> + int i, n;
    >>> +
    >>> + n = gpiod_count(dev, NULL);
    >>> + if (n < 0)
    >>> + return n;
    >>> +
    >>> + descs = devm_kmalloc_array(dev, n, sizeof(*descs), GFP_KERNEL);
    >>> + if (!descs)
    >>> + return -ENOMEM;
    >>> +
    >>> + for (i = 0; i < n; i++) {
    >>> + descs[i] = devm_gpiod_get_index(dev, NULL, i, GPIOD_ASIS);
    >> can you please add this check as well as we need to return EPROBE_DEFER.
    >>
    >> if (desc[i] == ERR_PTR(-ENOENT))
    >> < return -EPROBE_DEFER;
    > So gpiod_get_index() nevers return -EPROBE_DEFER, but returns -ENOENT
    > instead?
    > How can a driver distinguish between "GPIO not found" and "gpiochip driver
    > not yet initialized"?
    > Worse, so the *_optional() variants will return NULL in both cases, too, so
    > the caller will always fall back to optional GPIO not present?
    >
    > Or am I missing something?
    >
    > Gr{oetje,eeting}s,
    >
    > Geert


    We had earlier tested our changes on 4.14 kernel and the explicit return of -EPROBE_DEFER was needed in the inverter driver.

    probably the commit 6662ae6af82df10259a70c7569b4c12ea7f3ba93 ( gpiolib: Keep returning EPROBE_DEFER when we should)

    has fixed the issue and now it returns -EPROBE_DEFER.  you can ignore this comment as of now. I will test and let you know if needed.


    Thanks,

    Harish

    \
     
     \ /
      Last update: 2019-12-03 09:52    [W:2.847 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site