From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH v2 1/3] drm/msm/hdmi: Prevent gpio_free related kernel warnings Date: Mon, 25 Apr 2016 15:46:40 +0530 Message-ID: <1461579402-14301-2-git-send-email-architt@codeaurora.org> References: <1461063396-2285-1-git-send-email-architt@codeaurora.org> <1461579402-14301-1-git-send-email-architt@codeaurora.org> Return-path: Received: from smtp.codeaurora.org ([198.145.29.96]:45992 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754030AbcDYKQy (ORCPT ); Mon, 25 Apr 2016 06:16:54 -0400 In-Reply-To: <1461579402-14301-1-git-send-email-architt@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org To: dri-devel@lists.freedesktop.org Cc: robdclark@gmail.com, daniel@ffwll.ch, linux-arm-msm@vger.kernel.org, Archit Taneja 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 --- 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