Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753451AbbBARH0 (ORCPT ); Sun, 1 Feb 2015 12:07:26 -0500 Received: from nbfkord-smmo03.seg.att.com ([209.65.160.84]:52256 "EHLO nbfkord-smmo03.seg.att.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753307AbbBARHX (ORCPT ); Sun, 1 Feb 2015 12:07:23 -0500 X-Greylist: delayed 447 seconds by postgrey-1.27 at vger.kernel.org; Sun, 01 Feb 2015 12:07:23 EST X-MXL-Hash: 54ce5d4b33c9a293-3392b901ed3f5c72ac0289ff2abb1206b404b4ca X-MXL-Hash: 54ce5b8b0ffec354-8fa6dc791cc385fea3a7aa2eeb35ed09558dc153 Date: Sun, 1 Feb 2015 08:59:54 -0800 From: =?utf-8?B?U8O2cmVu?= Brinkmann To: Bryan Wu , Richard Purdie , Andreas =?utf-8?Q?F=C3=A4rber?= Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, Michal Simek Subject: Re: [PATCH] leds: leds-gpio: Pass on error codes unmodified Message-ID: <20150201165954.GX13057@xsjandreislx> References: <1422760500-21793-1-git-send-email-soren.brinkmann@xilinx.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1422760500-21793-1-git-send-email-soren.brinkmann@xilinx.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-TM-AS-MML: disable X-TM-AS-Product-Ver: IMSS-7.1.0.1679-7.5.0.1018-21252.003 X-TM-AS-Result: No--11.731-7.0-31-10 X-imss-scan-details: No--11.731-7.0-31-10 X-TMASE-MatchedRID: F7tLedRt7ifUL3YCMmnG4hyFKiDPvSEglavqJJda2A+7+NPPxj+R6skU hKWc+gwPmNZ3qplQhO0jpZka9kZaMS8DdD6aqeL37I0RzvPYnMLWme/MypByxkunU+i7GdKR/4Q mCej9TIJ66wuw71RpqUn/SP4Y+XhMlEx3ASJaTY2RsyIQ4jFl64GMvMvh2j5WXFNHTRKzg/r5WK Feqf3EscF9H9ZT7pg4gSjsth/7+MEM8jMXjBF+sIMbH85DUZXyseWplitmp0j6C0ePs7A07Xi4X EoPXecxTO6wDUISp57TGfTanv2Y0HxbLno6L9pRupa09/Sn5I4= X-AnalysisOut: [v=2.0 cv=SN/1opTH c=1 sm=1 a=ytFCLQ5985UKRBYsi826uA==:17 a] X-AnalysisOut: [=yEdEr6MRgwAA:10 a=BLceEmwcHowA:10 a=IkcTkHD0fZMA:10 a=Am4] X-AnalysisOut: [ss40yAAAA:8 a=0HtSIViG9nkA:10 a=hl6h0ItvEKQtbnsxmmUA:9 a=Q] X-AnalysisOut: [EXdDO2ut3YA:10] X-Spam: [F=0.2000000000; CM=0.500; S=0.200(2014051901)] X-MAIL-FROM: X-SOURCE-IP: [149.199.60.96] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2247 Lines: 58 + Andreas who actually reported this issue and also tested the patch. On Sat, 2015-01-31 at 07:15PM -0800, Soren Brinkmann wrote: > Instead of overriding error codes, pass them on unmodified. This > way a EPROBE_DEFER is correctly passed to the driver core. This results > in the LED driver correctly requesting probe deferral in cases the GPIO > controller is not yet available. > > Signed-off-by: Soren Brinkmann Here should be a: Reported-and-tested-by: Andreas Färber > --- > Adding pinctrl on Zynq shuffled with probing order quite a bit and a lot > of deferred probing is going on. With those changes I saw the LEDs > failing to probe due to the GPIO controller deferring probe until the > pincontroller is available. With this patch things work again: > > dmesg | grep -i led: > of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/ds23[0]' - status (-517) > platform leds: Driver leds-gpio requests probe deferral > of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/ds23[0]' - status (0) > > Soren > --- > drivers/leds/leds-gpio.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c > index 7ea1ea42c2d2..d26af0a79a90 100644 > --- a/drivers/leds/leds-gpio.c > +++ b/drivers/leds/leds-gpio.c > @@ -187,6 +187,7 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev) > led.gpiod = devm_get_gpiod_from_child(dev, child); > if (IS_ERR(led.gpiod)) { > fwnode_handle_put(child); > + ret = PTR_ERR(led.gpiod); > goto err; > } > > @@ -229,7 +230,7 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev) > err: > for (count = priv->num_leds - 2; count >= 0; count--) > delete_gpio_led(&priv->leds[count]); > - return ERR_PTR(-ENODEV); > + return ERR_PTR(ret); > } > > static const struct of_device_id of_gpio_leds_match[] = { > -- > 2.2.2.1.g63c5777 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/