All of lore.kernel.org
 help / color / mirror / Atom feed
From: Archit Taneja <architt@codeaurora.org>
To: dri-devel@lists.freedesktop.org
Cc: robdclark@gmail.com, linux-arm-msm@vger.kernel.org,
	Archit Taneja <architt@codeaurora.org>
Subject: [PATCH 1/3] drm/msm/hdmi: Prevent gpio_free related kernel warnings
Date: Tue, 19 Apr 2016 16:26:34 +0530	[thread overview]
Message-ID: <1461063396-2285-2-git-send-email-architt@codeaurora.org> (raw)
In-Reply-To: <1461063396-2285-1-git-send-email-architt@codeaurora.org>

Calling the legacy gpio_free on an invalid GPIO (a GPIO numbered -1)
results in kernel warnings. This causes a lot of backtraces when
we try to unload the drm/msm module.

Call gpio_free only on valid GPIOs.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
---
 drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
index 26129bf..ce86117 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
@@ -112,13 +112,16 @@ static int gpio_config(struct hdmi *hdmi, bool on)
 		for (i = 0; i < HDMI_MAX_NUM_GPIO; i++) {
 			struct hdmi_gpio_data gpio = config->gpios[i];
 
-			if (gpio.output) {
-				int value = gpio.value ? 0 : 1;
+			if (gpio.num != -1) {
+				if (gpio.output) {
+					int value = gpio.value ? 0 : 1;
 
-				gpio_set_value_cansleep(gpio.num, value);
-			}
+					gpio_set_value_cansleep(gpio.num,
+								value);
+				}
 
-			gpio_free(gpio.num);
+				gpio_free(gpio.num);
+			}
 		};
 
 		DBG("gpio off");
@@ -126,8 +129,10 @@ static int gpio_config(struct hdmi *hdmi, bool on)
 
 	return 0;
 err:
-	while (i--)
-		gpio_free(config->gpios[i].num);
+	while (i--) {
+		if (config->gpios[i].num != -1)
+			gpio_free(config->gpios[i].num);
+	}
 
 	return ret;
 }
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

  reply	other threads:[~2016-04-19 10:56 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-19 10:56 [PATCH 0/3] drm/msm: Remove drm_driver load/unload ops Archit Taneja
2016-04-19 10:56 ` Archit Taneja [this message]
2016-04-19 15:49   ` [PATCH 1/3] drm/msm/hdmi: Prevent gpio_free related kernel warnings Bjorn Andersson
     [not found]     ` <CAF6AEGv0uJhvkhsOWeZvZ9iXZO3eMdCnr6PCq5bpx0bNTJHj9g@mail.gmail.com>
     [not found]       ` <CAF6AEGuHq96komyBscvB6jfVSRUn0djp_W6Ui_0xi7VEE2mGsw@mail.gmail.com>
     [not found]         ` <CAF6AEGuMTZ0dr26oC4v2whFKoFY3Wc4SY=Ryst7QCoD-Ko2_AQ@mail.gmail.com>
     [not found]           ` <CAF6AEGsTPw8GPqfUuzVPjKoGM0FTq=XTtS0mEk5BxwvRUdbVfw@mail.gmail.com>
     [not found]             ` <CAF6AEGvTp2xEo6H2P-VOoFrg5aSd3T7eEbd6vDm_kMm8-FkfpQ@mail.gmail.com>
     [not found]               ` <CAF6AEGsX7F4Q=8__Y-SP_gs6e6CfX6JuocK5jVKJO0CkE10_Hw@mail.gmail.com>
2016-04-19 17:44                 ` Rob Clark
2016-04-19 18:25                   ` Bjorn Andersson
2016-04-20  6:03                   ` Archit Taneja
2016-04-19 10:56 ` [PATCH 2/3] drm/msm: Centralize connector registration/unregistration Archit Taneja
2016-04-19 12:10   ` Daniel Vetter
2016-04-20  4:40     ` Archit Taneja
2016-04-19 10:56 ` [PATCH 3/3] drm/msm: Drop load/unload drm_driver ops Archit Taneja
2016-04-25 10:16 ` [PATCH v2 0/3] drm/msm: Remove drm_driver load/unload ops Archit Taneja
2016-04-25 10:16   ` [PATCH v2 1/3] drm/msm/hdmi: Prevent gpio_free related kernel warnings Archit Taneja
2016-04-25 17:48     ` twp
2016-04-27  4:55       ` Archit Taneja
2016-04-25 10:16   ` [PATCH v2 2/3] drm/msm: Centralize connector registration/unregistration Archit Taneja
2016-04-25 10:16   ` [PATCH v2 3/3] drm/msm: Drop load/unload drm_driver ops Archit Taneja
2016-05-02  5:35   ` [PATCH v3 0/3] drm/msm: Remove drm_driver load/unload ops Archit Taneja
2016-05-02  5:35     ` [PATCH v3 1/3] drm/msm/hdmi: Prevent gpio_free related kernel warnings Archit Taneja
2016-05-02  5:35     ` [PATCH v3 2/3] drm/msm: Centralize connector registration/unregistration Archit Taneja
2016-05-02  5:35     ` [PATCH v3 3/3] drm/msm: Drop load/unload drm_driver ops Archit Taneja

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=1461063396-2285-2-git-send-email-architt@codeaurora.org \
    --to=architt@codeaurora.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=robdclark@gmail.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.