All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Aaro Koskinen <aaro.koskinen@iki.fi>, Tony Lindgren <tony@atomide.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 11/12] ARM: omap1/ams-delta: warn about failed regulator enable
Date: Thu, 20 Jul 2017 17:53:44 +0200	[thread overview]
Message-ID: <20170720155410.3251043-2-arnd@arndb.de> (raw)
In-Reply-To: <20170720154616.3250481-1-arnd@arndb.de>

The modem pm handler in the ams-delta board uses regulator_enable()
but does not check for a successful return code:

board-ams-delta.c:521:3: error: ignoring return value of 'regulator_enable', declared with attribute warn_unused_result [-Werror=unused-result]

It is not easy to propagate that return code to the callers in
uart_configure_port/uart_suspend_port/uart_resume_port, unless
we change all UART drivers, and it is unclear what those would
do with the return code.

Instead, this patch uses a runtime warning to replace the
compiletime warning. I have checked that the regulator in question
is hardcoded to a fixed-voltage GPIO regulator, and that should
never fail to get enabled if I understand the code right.

Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Link: https://patchwork.kernel.org/patch/8391981/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
Originally sent in Feb 2016, but it got lost for some reason
---
 arch/arm/mach-omap1/board-ams-delta.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c
index 6613a6ff5dbc..6cbc69c92913 100644
--- a/arch/arm/mach-omap1/board-ams-delta.c
+++ b/arch/arm/mach-omap1/board-ams-delta.c
@@ -510,6 +510,7 @@ static void __init ams_delta_init(void)
 static void modem_pm(struct uart_port *port, unsigned int state, unsigned old)
 {
 	struct modem_private_data *priv = port->private_data;
+	int ret;
 
 	if (IS_ERR(priv->regulator))
 		return;
@@ -518,9 +519,16 @@ static void modem_pm(struct uart_port *port, unsigned int state, unsigned old)
 		return;
 
 	if (state == 0)
-		regulator_enable(priv->regulator);
+		ret = regulator_enable(priv->regulator);
 	else if (old == 0)
-		regulator_disable(priv->regulator);
+		ret = regulator_disable(priv->regulator);
+	else
+		ret = 0;
+
+	if (ret)
+		dev_warn(port->dev,
+			 "ams_delta modem_pm: failed to %sable regulator: %d\n",
+			 state ? "dis" : "en", ret);
 }
 
 static struct plat_serial8250_port ams_delta_modem_ports[] = {
-- 
2.9.0

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 11/12] ARM: omap1/ams-delta: warn about failed regulator enable
Date: Thu, 20 Jul 2017 17:53:44 +0200	[thread overview]
Message-ID: <20170720155410.3251043-2-arnd@arndb.de> (raw)
In-Reply-To: <20170720154616.3250481-1-arnd@arndb.de>

The modem pm handler in the ams-delta board uses regulator_enable()
but does not check for a successful return code:

board-ams-delta.c:521:3: error: ignoring return value of 'regulator_enable', declared with attribute warn_unused_result [-Werror=unused-result]

It is not easy to propagate that return code to the callers in
uart_configure_port/uart_suspend_port/uart_resume_port, unless
we change all UART drivers, and it is unclear what those would
do with the return code.

Instead, this patch uses a runtime warning to replace the
compiletime warning. I have checked that the regulator in question
is hardcoded to a fixed-voltage GPIO regulator, and that should
never fail to get enabled if I understand the code right.

Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Link: https://patchwork.kernel.org/patch/8391981/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
Originally sent in Feb 2016, but it got lost for some reason
---
 arch/arm/mach-omap1/board-ams-delta.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c
index 6613a6ff5dbc..6cbc69c92913 100644
--- a/arch/arm/mach-omap1/board-ams-delta.c
+++ b/arch/arm/mach-omap1/board-ams-delta.c
@@ -510,6 +510,7 @@ static void __init ams_delta_init(void)
 static void modem_pm(struct uart_port *port, unsigned int state, unsigned old)
 {
 	struct modem_private_data *priv = port->private_data;
+	int ret;
 
 	if (IS_ERR(priv->regulator))
 		return;
@@ -518,9 +519,16 @@ static void modem_pm(struct uart_port *port, unsigned int state, unsigned old)
 		return;
 
 	if (state == 0)
-		regulator_enable(priv->regulator);
+		ret = regulator_enable(priv->regulator);
 	else if (old == 0)
-		regulator_disable(priv->regulator);
+		ret = regulator_disable(priv->regulator);
+	else
+		ret = 0;
+
+	if (ret)
+		dev_warn(port->dev,
+			 "ams_delta modem_pm: failed to %sable regulator: %d\n",
+			 state ? "dis" : "en", ret);
 }
 
 static struct plat_serial8250_port ams_delta_modem_ports[] = {
-- 
2.9.0

  parent reply	other threads:[~2017-07-20 15:54 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-20 15:45 [PATCH 00/12] ARM: randconfig patches for platforms Arnd Bergmann
2017-07-20 15:45 ` Arnd Bergmann
2017-07-20 15:45 ` [PATCH 01/12] ARM: ixp4xx: fix ioport_unmap definition Arnd Bergmann
2017-07-20 15:45   ` Arnd Bergmann
2017-07-21 12:21   ` Krzysztof Hałasa
2017-07-21 12:21     ` Krzysztof Hałasa
2017-07-20 15:49 ` [PATCH 02/12] ARM: ep93xx: use ARM_PATCH_PHYS_VIRT Arnd Bergmann
2017-07-20 15:49   ` Arnd Bergmann
2017-07-20 16:07   ` Alexander Sverdlin
2017-07-20 16:07     ` Alexander Sverdlin
2017-08-02 12:29   ` Linus Walleij
2017-08-02 12:29     ` Linus Walleij
2017-07-20 15:50 ` [PATCH 03/12] ARM: normalize clk API for older platforms Arnd Bergmann
2017-07-20 15:50   ` Arnd Bergmann
2017-07-20 16:04   ` Alexander Sverdlin
2017-07-21  7:51     ` Arnd Bergmann
2017-07-21  8:05   ` Sekhar Nori
2017-07-21  8:05     ` Sekhar Nori
2017-07-21  8:17     ` Arnd Bergmann
2017-07-21  8:17       ` Arnd Bergmann
2017-07-21  9:44       ` Sekhar Nori
2017-07-21  9:44         ` Sekhar Nori
2017-07-20 15:51 ` [PATCH 04/12] ARM: sa1100/pxa: fix MTD_XIP build Arnd Bergmann
2017-07-20 15:51   ` Arnd Bergmann
2017-07-23 15:53   ` Robert Jarzmik
2017-07-23 15:53     ` Robert Jarzmik
2017-07-25 15:14     ` Arnd Bergmann
2017-07-25 15:14       ` Arnd Bergmann
2017-07-20 15:51 ` [PATCH 05/12] ARM: mmp: mark usb_dma_mask as __maybe_unused Arnd Bergmann
2017-07-20 15:51   ` Arnd Bergmann
2017-07-20 15:51 ` [PATCH 06/12] ARM: omap2: mark unused functions " Arnd Bergmann
2017-07-20 15:51   ` Arnd Bergmann
2017-07-27 10:08   ` Sebastian Reichel
2017-07-27 10:08     ` Sebastian Reichel
2017-07-20 15:51 ` [PATCH 07/12] ARM: omap1: avoid unused variable warning Arnd Bergmann
2017-07-20 15:51   ` Arnd Bergmann
2017-07-20 15:51 ` [PATCH 08/12] ARM: sirf: mark sirfsoc_init_late as __maybe_unused Arnd Bergmann
2017-07-20 15:51   ` Arnd Bergmann
2017-07-20 15:51 ` [PATCH 09/12] ARM: ixp4xx: use normal prototype for {read,write}s{b,w,l} Arnd Bergmann
2017-07-20 15:51   ` [PATCH 09/12] ARM: ixp4xx: use normal prototype for {read, write}s{b, w, l} Arnd Bergmann
2017-07-20 15:53 ` [PATCH 10/12] [v2] ARM: s3c24xx: make H1940BT depend on RFKILL Arnd Bergmann
2017-07-20 15:53   ` Arnd Bergmann
2017-07-20 19:30   ` Krzysztof Kozlowski
2017-07-20 19:30     ` Krzysztof Kozlowski
2017-07-20 15:53 ` Arnd Bergmann [this message]
2017-07-20 15:53   ` [PATCH 11/12] ARM: omap1/ams-delta: warn about failed regulator enable Arnd Bergmann
2017-07-20 15:53 ` [PATCH 12/12] ARM: rpc: rename RAM_SIZE macro Arnd Bergmann
2017-07-20 15:53   ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170720155410.3251043-2-arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=aaro.koskinen@iki.fi \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.