Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp899883yba; Thu, 18 Apr 2019 11:27:12 -0700 (PDT) X-Google-Smtp-Source: APXvYqwuFmPSpvgAvaDDq9AwYTOM7uM4cNQLKSFBqXtkRc8xyitaEIHtjH8n5G1jnaA7nlZSOkw9 X-Received: by 2002:a63:4241:: with SMTP id p62mr90351620pga.379.1555612032430; Thu, 18 Apr 2019 11:27:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555612032; cv=none; d=google.com; s=arc-20160816; b=lYdTCECRN8ORsiVHlNtlQ1MQvb50Qgv9zNGKL8mPjR/qjYKruBDbBwPMNd0Q7G2lTC rqxaB/D0xWsXP8bGQvVySJ55MbaE/XHSlUTb8Y/pcRUvMLNATCueapWemtVmpHwko4lJ UoplnXJYOjOVnLXs3GS1IyCR+oezapbRsyXkoUjM6eZagJArN6xUiIZesdoJlW2V6PmM KVUzqAF8DE/20drAAwRaNwAejO/FCxNYkUJXM+8tbvjGSfN++qnzejp4ZJQ0H+SsoV1A yRAicfROF+t2gcM5Uw2XSyfNos0n5f+q1Nc1VGLkSu8xETQw2sQCAl9g7YP6fMIjlWYp 79SQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=7E5ucEJFAecRBQ0APDIJkdfC1gwTZvKIQ3TLpgwc+zA=; b=AtoDFIYZr5l86UZwI7wOpwvrkb8/Z48TBT8Omkc83vrTfOumAgQyCsfrQn81D+2pHE 6LREq3jSxZSBzyaN16hj+5HC2Lg6hVXJ4m82r17oSSgK4dx6zLCGreLeecx/gzOQOWRF pPb4NOBWxbPh3vzTiTyM9/Q/pAVsLJt5Ajk5GmNx0epzVE1KHReUEU9nWahjfwjz5NIZ +G0nZXTXiWIJTgpw8JLsNFr/UEE0XA926Pj+Cfbulail23XIZ09Fxxt9QSoPaYEi5KWM vtGc+uo0R/5v8qXCZbt8o6HDMMs1EAbTcuJeuXbzGTxLsD5/CF7pHAlfv+rFz7npkemY QDzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PavaQN7I; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m3si2737743pfh.249.2019.04.18.11.26.57; Thu, 18 Apr 2019 11:27:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PavaQN7I; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391469AbfDRSYT (ORCPT + 99 others); Thu, 18 Apr 2019 14:24:19 -0400 Received: from mail.kernel.org ([198.145.29.99]:35440 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390979AbfDRSFy (ORCPT ); Thu, 18 Apr 2019 14:05:54 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 690BD206B6; Thu, 18 Apr 2019 18:05:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1555610753; bh=jSYeYiJF80OkDt6g1mNOb+1uxoJuiUKAeMBEwfUL/6I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PavaQN7IiOAsZMvgFdaorhRd6DfCNhff07n+DArN/BNEll7OSVVC+NA/Yt+AwNBdl KqAuSCPEr2yfNpccB6pmgdWY23aD1wm0YejMSnERoht0H15eaQb8zU+IjU2qE56Hns r6To8qEEb8pwcxiZoqCwdwuWl+i3WewZdfLTwGzM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Robert Jarzmik , Nicolas Chauvet , Linus Walleij , Sasha Levin Subject: [PATCH 4.14 38/92] gpio: pxa: handle corner case of unprobed device Date: Thu, 18 Apr 2019 19:56:56 +0200 Message-Id: <20190418160433.634630112@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190418160430.325165109@linuxfoundation.org> References: <20190418160430.325165109@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 9ce3ebe973bf4073426f35f282c6b955ed802765 ] In the corner case where the gpio driver probe fails, for whatever reason, the suspend and resume handlers will still be called as they have to be registered as syscore operations. This applies as well when no probe was called while the driver has been built in the kernel. Nicolas tracked this in : https://bugzilla.kernel.org/show_bug.cgi?id=200905 Therefore, add a failsafe in these function, and test if a proper probe succeeded and the driver is functional. Signed-off-by: Robert Jarzmik Reported-by: Nicolas Chauvet Signed-off-by: Linus Walleij Signed-off-by: Sasha Levin --- drivers/gpio/gpio-pxa.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c index 2943dfc4c470..822ad220f0af 100644 --- a/drivers/gpio/gpio-pxa.c +++ b/drivers/gpio/gpio-pxa.c @@ -776,6 +776,9 @@ static int pxa_gpio_suspend(void) struct pxa_gpio_bank *c; int gpio; + if (!pchip) + return 0; + for_each_gpio_bank(gpio, c, pchip) { c->saved_gplr = readl_relaxed(c->regbase + GPLR_OFFSET); c->saved_gpdr = readl_relaxed(c->regbase + GPDR_OFFSET); @@ -794,6 +797,9 @@ static void pxa_gpio_resume(void) struct pxa_gpio_bank *c; int gpio; + if (!pchip) + return; + for_each_gpio_bank(gpio, c, pchip) { /* restore level with set/clear */ writel_relaxed(c->saved_gplr, c->regbase + GPSR_OFFSET); -- 2.19.1