From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B664EC433EF for ; Thu, 27 Jan 2022 16:04:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:In-Reply-To: Date:From:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:References: List-Owner; bh=PqFWkh01Qxz5yfmgfZxuQkP7ADmNTKxkgFOUuyclrQ0=; b=Y7E2HcNOUqe5Bg yPdPEDOhmSktTJ0Vg+WxzmvBgBe3Mz/SHR5lICLvtsu6cJkCwRVEENXmsXTdYZJbrgDNm5m8cYkmK wr+RVL3lrNUNRaZTozbLcWSgyIAALDpJ9LP8N247Q3tgGXm8umpX1yoGFkyrDy+HVi63BxBCQBO1p xnZNmvjC4bwDaUybjjzyzvIZvzGO1Vtnkc5+4jLftx/MzzSCbyURtYpmEuDRN5OWhO7NSCYuytVuZ 5GBN6RfJwlHwtP1YMVd3g2+N2NGHmwAS8lygU2tzBbG5JBbHzB048j3OlTQwJUhxY82TCMA6adL0R yjVIPHIp5uiZun6IFjOA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nD7EX-00GMLQ-Vw; Thu, 27 Jan 2022 16:02:50 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nD7Dv-00GM9D-Nq; Thu, 27 Jan 2022 16:02:13 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 7013EB8013C; Thu, 27 Jan 2022 16:02:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A18A6C340E4; Thu, 27 Jan 2022 16:02:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643299329; bh=WO3lGdGPgRAi8p5D/8j7oYY9O2Dxet5jcrM6rLKeCnA=; h=Subject:To:Cc:From:Date:In-Reply-To:From; b=zF6DbctOsYm/FFp94FYc89zc6mRr8VQmJVrhK3tlmwyrmmBeX4RgneqR7SXYT7k4q /OmuBK7AY7QCsdDUC6LacRcyqQd6jNw4iVdVjSvelTVTSQVMHIVK00yxSAA8H/KLSl /LsQe1J3U8DficqyCzdt7+uTlrgd5HGNInByBFec= Subject: Patch "pinctrl: bcm2835: Change init order for gpio hogs" has been added to the 5.4-stable tree To: bcm-kernel-feedback-list@broadcom.com, eric@anholt.net, f.fainelli@gmail.com, gregkh@linuxfoundation.org, linus.walleij@linaro.org, linux-arm-kernel@lists.infradead.org, linux-rpi-kernel@lists.infradead.org, mark.rutland@arm.com, nsaenz@kernel.org, phil@raspberrypi.com, rjui@broadcom.com, robh+dt@kernel.org, sbranden@broadcom.com, wahrenst@gmx.net Cc: From: Date: Thu, 27 Jan 2022 17:01:49 +0100 In-Reply-To: <20220125194222.12783-7-f.fainelli@gmail.com> Message-ID: <1643299309209162@kroah.com> MIME-Version: 1.0 X-stable: commit X-Patchwork-Hint: ignore X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220127_080212_138515_1E61BDB1 X-CRM114-Status: GOOD ( 19.44 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This is a note to let you know that I've just added the patch titled pinctrl: bcm2835: Change init order for gpio hogs to the 5.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: pinctrl-bcm2835-change-init-order-for-gpio-hogs.patch and it can be found in the queue-5.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let know about it. >From foo@baz Thu Jan 27 04:40:37 PM CET 2022 From: Florian Fainelli Date: Tue, 25 Jan 2022 11:42:21 -0800 Subject: pinctrl: bcm2835: Change init order for gpio hogs To: stable@vger.kernel.org Cc: Phil Elwell , Florian Fainelli , Linus Walleij , Rob Herring , Mark Rutland , Ray Jui , Scott Branden , bcm-kernel-feedback-list@broadcom.com (maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE...), Eric Anholt , Stefan Wahren , Nicolas Saenz Julienne , devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS), linux-kernel@vger.kernel.org (open list), linux-gpio@vger.kernel.org (open list:PIN CONTROL SUBSYSTEM), linux-rpi-kernel@lists.infradead.org (moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE), linux-arm-kernel@lists.infradead.org (moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE) Message-ID: <20220125194222.12783-7-f.fainelli@gmail.com> From: Phil Elwell commit 266423e60ea1b953fcc0cd97f3dad85857e434d1 upstream ...and gpio-ranges pinctrl-bcm2835 is a combined pinctrl/gpio driver. Currently the gpio side is registered first, but this breaks gpio hogs (which are configured during gpiochip_add_data). Part of the hog initialisation is a call to pinctrl_gpio_request, and since the pinctrl driver hasn't yet been registered this results in an -EPROBE_DEFER from which it can never recover. Change the initialisation sequence to register the pinctrl driver first. This also solves a similar problem with the gpio-ranges property, which is required in order for released pins to be returned to inputs. Fixes: 73345a18d464b ("pinctrl: bcm2835: Pass irqchip when adding gpiochip") Signed-off-by: Phil Elwell Reviewed-by: Florian Fainelli Link: https://lore.kernel.org/r/20211206092237.4105895-2-phil@raspberrypi.com Signed-off-by: Linus Walleij Signed-off-by: Florian Fainelli Signed-off-by: Greg Kroah-Hartman --- drivers/pinctrl/bcm/pinctrl-bcm2835.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c @@ -1241,6 +1241,18 @@ static int bcm2835_pinctrl_probe(struct raw_spin_lock_init(&pc->irq_lock[i]); } + pc->pctl_desc = *pdata->pctl_desc; + pc->pctl_dev = devm_pinctrl_register(dev, &pc->pctl_desc, pc); + if (IS_ERR(pc->pctl_dev)) { + gpiochip_remove(&pc->gpio_chip); + return PTR_ERR(pc->pctl_dev); + } + + pc->gpio_range = *pdata->gpio_range; + pc->gpio_range.base = pc->gpio_chip.base; + pc->gpio_range.gc = &pc->gpio_chip; + pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range); + girq = &pc->gpio_chip.irq; girq->chip = &bcm2835_gpio_irq_chip; girq->parent_handler = bcm2835_gpio_irq_handler; @@ -1248,8 +1260,10 @@ static int bcm2835_pinctrl_probe(struct girq->parents = devm_kcalloc(dev, BCM2835_NUM_IRQS, sizeof(*girq->parents), GFP_KERNEL); - if (!girq->parents) + if (!girq->parents) { + pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range); return -ENOMEM; + } if (is_7211) { pc->wake_irq = devm_kcalloc(dev, BCM2835_NUM_IRQS, @@ -1300,21 +1314,10 @@ static int bcm2835_pinctrl_probe(struct err = gpiochip_add_data(&pc->gpio_chip, pc); if (err) { dev_err(dev, "could not add GPIO chip\n"); + pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range); return err; } - pc->pctl_desc = *pdata->pctl_desc; - pc->pctl_dev = devm_pinctrl_register(dev, &pc->pctl_desc, pc); - if (IS_ERR(pc->pctl_dev)) { - gpiochip_remove(&pc->gpio_chip); - return PTR_ERR(pc->pctl_dev); - } - - pc->gpio_range = *pdata->gpio_range; - pc->gpio_range.base = pc->gpio_chip.base; - pc->gpio_range.gc = &pc->gpio_chip; - pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range); - return 0; } Patches currently in stable-queue which might be from f.fainelli@gmail.com are queue-5.4/pinctrl-bcm2835-drop-unused-define.patch queue-5.4/arm-dts-gpio-ranges-property-is-now-required.patch queue-5.4/pinctrl-bcm2835-add-support-for-wake-up-interrupts.patch queue-5.4/pinctrl-bcm2835-change-init-order-for-gpio-hogs.patch queue-5.4/pinctrl-bcm2835-refactor-platform-data.patch queue-5.4/pinctrl-bcm2835-match-bcm7211-compatible-string.patch queue-5.4/pinctrl-bcm2835-add-support-for-all-gpios-on-bcm2711.patch _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel