From patchwork Thu Apr 27 22:16:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 677622 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 94128C77B7F for ; Thu, 27 Apr 2023 22:18:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229783AbjD0WSK (ORCPT ); Thu, 27 Apr 2023 18:18:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40744 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344058AbjD0WSH (ORCPT ); Thu, 27 Apr 2023 18:18:07 -0400 Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A18483584; Thu, 27 Apr 2023 15:18:03 -0700 (PDT) Received: by mail-pg1-x52a.google.com with SMTP id 41be03b00d2f7-51b4ef5378bso8828709a12.1; Thu, 27 Apr 2023 15:18:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682633883; x=1685225883; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Es1k5EjqLrEC+NljuMDyo0wk9bQclI6Hf3tCC6xmdYE=; b=cFuXRwsZ34marh8kZZRpUTpL2f+2CNidWexMSC05HsB5LNA2k7PcxL0TI81mPuE96y E1uYQysxlmBglOt3Uddn3IURTYpY/3yBNAfPKDoKQrp0cnA3VFxOTNosvKsEPM4DmdSa wMJcheix1fLAy0dSipLDPw5su9sBEBl7T7knR6IFsUQapa784f29M9Gb/ffMocYx8rZs VeVyJk6N7plQEZDyvRjJK/XvrD86rd2NY68r4xc/jcP7UwNkPNAZF+yApaRVaRDFP7xF jaRPyCd23uHhd1AmCkiJXjsySb3Z9F5Py6164HvofmlUKnKOtyrnLVld+D1lT+AANiEo 1j4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682633883; x=1685225883; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Es1k5EjqLrEC+NljuMDyo0wk9bQclI6Hf3tCC6xmdYE=; b=bS/dFTSofMrad1VfGJMaIBV0IhwtiZQBQm05EOI0gqY9HtHxBYKE/3X/cT0oiDDFM6 FbyMDdLUBDORWTvW+paYNLzmr1J98wFVsILRkFHIbTBdK+CWnTtJ4h1Ro984++EfJkwz hXHXVJm8n2RgXj8cKs8nxatY4nwNJ0OWNgofo3trID3hA3JU8/VkpChMNJruJUsIgSKa MmpS2N//EvKaS/XgmMLHzarROBAyo+nRmTfD6F9EUguwvwWFM4no/yKY2BCvwyudiQuF e3plVLrSkB6vTHH88K2cuAFGiODrm05Yua5Dqf3MEcIJrlqeFY/FJbAATzaF4qYMckwN iAZg== X-Gm-Message-State: AC+VfDxh2TpY/7tLmk81ijHKpWbWYIyW9bkQliO4As4EjvY+EntRKrC0 AO6NrGdzygeL4TSw9K3uREc= X-Google-Smtp-Source: ACHHUZ6NB0tgFcr/spIeSsOD2gaUVO3Th0HUJs0gVc+aQhdtyCOthMe0ePblA7hhYlPSy9U+26bw+A== X-Received: by 2002:a17:902:f790:b0:1a6:d15f:3ce1 with SMTP id q16-20020a170902f79000b001a6d15f3ce1mr3038657pln.34.1682633883167; Thu, 27 Apr 2023 15:18:03 -0700 (PDT) Received: from stbirv-lnx-1.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id w8-20020a1709027b8800b001a661000398sm12022783pll.103.2023.04.27.15.18.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Apr 2023 15:18:02 -0700 (PDT) From: Doug Berger To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Dmitry Torokhov Cc: Lad Prabhakar , Gergo Koteles , Jonathan Cameron , Andy Shevchenko , Dan Williams , Hans de Goede , Thomas Gleixner , Kees Cook , Kishon Vijay Abraham I , Saravana Kannan , Florian Fainelli , linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, Doug Berger Subject: [RFC PATCH 1/3] input: gpio-keys - use device_pm_move_to_tail Date: Thu, 27 Apr 2023 15:16:23 -0700 Message-Id: <20230427221625.116050-2-opendmb@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230427221625.116050-1-opendmb@gmail.com> References: <20230427221625.116050-1-opendmb@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org The gpio-keys device driver implements the functionality of its child nodes which do not receive dedicated drivers. This means it should inherit the dependencies of these child nodes and their effects on suspend/resume and shutdown order. This commit exposes the device_pm_move_to_tail function to allow the driver to move itself to the end of the lists upon a successful probe to allow proper sequencing when other methods are not available. Fixes: 722e5f2b1eec ("driver core: Partially revert "driver core: correct device's shutdown order"") Signed-off-by: Doug Berger --- drivers/base/core.c | 1 + drivers/input/keyboard/gpio_keys.c | 2 ++ include/linux/device.h | 1 + 3 files changed, 4 insertions(+) diff --git a/drivers/base/core.c b/drivers/base/core.c index 6878dfcbf0d6..8385df4d9677 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -428,6 +428,7 @@ void device_pm_move_to_tail(struct device *dev) device_pm_unlock(); device_links_read_unlock(idx); } +EXPORT_SYMBOL_GPL(device_pm_move_to_tail); #define to_devlink(dev) container_of((dev), struct device_link, link_dev) diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c index c42f86ad0766..0516c6279d8a 100644 --- a/drivers/input/keyboard/gpio_keys.c +++ b/drivers/input/keyboard/gpio_keys.c @@ -810,6 +810,8 @@ static int gpio_keys_probe(struct platform_device *pdev) int i, error; int wakeup = 0; + device_pm_move_to_tail(dev); + if (!pdata) { pdata = gpio_keys_get_devtree_pdata(dev); if (IS_ERR(pdata)) diff --git a/include/linux/device.h b/include/linux/device.h index 1508e637bb26..dad40bd45509 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -1082,6 +1082,7 @@ void device_link_del(struct device_link *link); void device_link_remove(void *consumer, struct device *supplier); void device_links_supplier_sync_state_pause(void); void device_links_supplier_sync_state_resume(void); +void device_pm_move_to_tail(struct device *dev); extern __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); From patchwork Thu Apr 27 22:16:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 677623 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3C95C77B7C for ; Thu, 27 Apr 2023 22:18:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344175AbjD0WSJ (ORCPT ); Thu, 27 Apr 2023 18:18:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344052AbjD0WSH (ORCPT ); Thu, 27 Apr 2023 18:18:07 -0400 Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A452235BD; Thu, 27 Apr 2023 15:18:05 -0700 (PDT) Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-64115e652eeso8320948b3a.0; Thu, 27 Apr 2023 15:18:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682633885; x=1685225885; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HrgbNBTkkVblpvAn2v9YOOmUXIXg/Fdyqm0l3sunmw8=; b=K7EwckKGPdG1c9lc16yhp7Rv4+pouv9SGrkYiLp+rc/pUobLUEA0b1iekkOupx/Kjj z8R8rNf2UlV8nrZ01T1h8Po/2qh8fNirp3P3EkQKzF2Yg0mPEjIAQe55S4XzDqoxUDEn vR+hUt7KqTOKOB5whmA0I+4DWvwbkhUyOYCEohfFxZ0HVciVB1fF7W58b5IxmlcK0LbP nshKB7UHMusdA79/aolgAGmMsraUxU3A9C/ybW8ewegfQ4IhxcmBo1XgSay9pSYiuUsH s1YjF8lWSY3jYSf0lL6gSGTVxypSPkKHzwNVp9J7ynxzoUrgrJdieul3WSbxIirdSbHL tHvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682633885; x=1685225885; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HrgbNBTkkVblpvAn2v9YOOmUXIXg/Fdyqm0l3sunmw8=; b=HLu1wtVGXC+3Uv15+aeEauLChZ2tCmIslBOIJnapc74rGCE5YA7cDF3ZLctIJpNrRi Z2x7+ge4vgj9JaAFhZdiVLo/7n9UtsHX/+ELyy/VImep3KFJbT9Iq5skRrPSlOvJPoB6 Xx405ecVY2eVFeGOWMJJeG3n9VdCFo12R/R27LH+Ns+Q322RtftK0wbIQDASU/3P0M+k 67B2fHjfSKTY0AclDtuX+bPSBbn7oDBHYpXyxK+Zgwnt3+VZh++K81OtVj7T1yYOhvAx JUEkxsawDk8XEg5+nxX2jmjDmEasKSIWsbTAZ+zyIVzbuknUptea0m82/knEW9xIAJ9p QyEw== X-Gm-Message-State: AC+VfDxPmZBh92MJAAEV9gJ+7dbvneqO13pBjhJx1DeQbBgF/j91bYfy 67aE8/V45JfJgksucIhZN5E= X-Google-Smtp-Source: ACHHUZ5SLrdWKXr6zzoUWHku3g/qBdYWiINb0XUUUhO3tj6ZCbUPTWqVv9TiRaqO4u24BPdtRi8DYA== X-Received: by 2002:a17:902:d4c7:b0:1a6:dc3b:9ed2 with SMTP id o7-20020a170902d4c700b001a6dc3b9ed2mr4197913plg.13.1682633885089; Thu, 27 Apr 2023 15:18:05 -0700 (PDT) Received: from stbirv-lnx-1.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id w8-20020a1709027b8800b001a661000398sm12022783pll.103.2023.04.27.15.18.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Apr 2023 15:18:04 -0700 (PDT) From: Doug Berger To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Dmitry Torokhov Cc: Lad Prabhakar , Gergo Koteles , Jonathan Cameron , Andy Shevchenko , Dan Williams , Hans de Goede , Thomas Gleixner , Kees Cook , Kishon Vijay Abraham I , Saravana Kannan , Florian Fainelli , linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, Doug Berger Subject: [RFC PATCH 2/3] input: gpio-keys - add device links of children Date: Thu, 27 Apr 2023 15:16:24 -0700 Message-Id: <20230427221625.116050-3-opendmb@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230427221625.116050-1-opendmb@gmail.com> References: <20230427221625.116050-1-opendmb@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Since the child nodes of gpio-keys are implemented by the gpio-keys device driver, that driver should explicitly create the appropriate device links to support proper device power management and shutdown sequencing. Fixes: f9aa460672c9 ("driver core: Refactor fw_devlink feature") Signed-off-by: Doug Berger --- drivers/input/keyboard/gpio_keys.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c index 0516c6279d8a..7a0dcfeb02dc 100644 --- a/drivers/input/keyboard/gpio_keys.c +++ b/drivers/input/keyboard/gpio_keys.c @@ -865,6 +865,7 @@ static int gpio_keys_probe(struct platform_device *pdev) for (i = 0; i < pdata->nbuttons; i++) { const struct gpio_keys_button *button = &pdata->buttons[i]; + struct fwnode_link *link; if (!dev_get_platdata(dev)) { child = device_get_next_child_node(dev, child); @@ -882,6 +883,12 @@ static int gpio_keys_probe(struct platform_device *pdev) fwnode_handle_put(child); return error; } + if (child) { + list_for_each_entry(link, &child->suppliers, c_hook) { + device_link_add(dev, link->supplier->dev, + DL_FLAG_AUTOREMOVE_CONSUMER); + } + } if (button->wakeup) wakeup = 1; From patchwork Thu Apr 27 22:16:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 677926 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4FA43C7EE21 for ; Thu, 27 Apr 2023 22:18:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344202AbjD0WSL (ORCPT ); Thu, 27 Apr 2023 18:18:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40746 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344151AbjD0WSI (ORCPT ); Thu, 27 Apr 2023 18:18:08 -0400 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F20C30EE; Thu, 27 Apr 2023 15:18:07 -0700 (PDT) Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1a66911f5faso71049525ad.0; Thu, 27 Apr 2023 15:18:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682633887; x=1685225887; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0ELp9fgud3UdxJ+O/AE6SN/Ok6X9uyjRmf7Sz0Ap8bU=; b=rutWmViHAVTCnPlrOdFrruYI9nWxH/zuvPxIMijiltKm8YZfif8gK1a5xq1WwaOH5n cC82n3hxMjk591mM1MXheDJIrz6pg/7YZ+sM2+uljG7FM4v2UFcglWZjs780Ce6OlxK0 Twla7eFxpx3OzebpqAmJcM89cBFW+klKLuXotR2cGCIvGvykR2r59LWxJhgic/SrsaDG Yk0lfnvEs3sQl3KPvPg6JLIsnO6D5UwB1cAKSO5UkBuaF7nCrYJwun++f2wdJGqD4LIP CgVynXRWwqPGh8jYpBgCQwWSDvx3Wi96ucJtYaqD61OdkPxCz50BNuz44vB9Tul7OMRm tQMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682633887; x=1685225887; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0ELp9fgud3UdxJ+O/AE6SN/Ok6X9uyjRmf7Sz0Ap8bU=; b=bbkZ+JlDvhgbbBq2zimuk+CwVzbZoxLNTvHCfu2JLR+yoAj1P50V4lha3eu3p1/9/Y U/woVqrMVgXqD6mIVY8TOl44Dso3CfZH0Z9i4BvScBeoNm3k6y8ZVtLMQ0mUivm2VyHv Hbl3VIGw2gUhyYp7OjN3YurHFyO2qiUrqLZZy7yXNqUMz+GgNddYR3Ml0DmvdpFlMJhP Ic0Ocenih0d6xIerpRj+uc0B1Mt+NCxbWoR60QvjURUqJPGpjCumi/6rit+Er08qbjhv DU3B4ZEBvY13kNikKoB/sQLgtXr9vVCRrSlMHFN/VvFv0XlgrI2BmnRlVb4O8pGw0mOx Ko6w== X-Gm-Message-State: AC+VfDyAJJ48vAQKgy/TCQDrvZcEdE3CEwy25aCi8q+DY8R3XJs2aNRw cK36EVlK5iv37ra0nvtqw/k= X-Google-Smtp-Source: ACHHUZ7xFhhJ+tYpzUP5m76t79QUtMWC24oLMYDs2179NHFqdIhjg5fMjTUumuDsN45niyKYoN0PbA== X-Received: by 2002:a17:902:c950:b0:1a9:546c:1593 with SMTP id i16-20020a170902c95000b001a9546c1593mr3199355pla.14.1682633887039; Thu, 27 Apr 2023 15:18:07 -0700 (PDT) Received: from stbirv-lnx-1.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id w8-20020a1709027b8800b001a661000398sm12022783pll.103.2023.04.27.15.18.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Apr 2023 15:18:06 -0700 (PDT) From: Doug Berger To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Dmitry Torokhov Cc: Lad Prabhakar , Gergo Koteles , Jonathan Cameron , Andy Shevchenko , Dan Williams , Hans de Goede , Thomas Gleixner , Kees Cook , Kishon Vijay Abraham I , Saravana Kannan , Florian Fainelli , linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, Doug Berger Subject: [RFC PATCH 3/3] Revert "input: gpio-keys - use device_pm_move_to_tail" Date: Thu, 27 Apr 2023 15:16:25 -0700 Message-Id: <20230427221625.116050-4-opendmb@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230427221625.116050-1-opendmb@gmail.com> References: <20230427221625.116050-1-opendmb@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org This reverts commit 2569873096f7eb1acf63624e9772d82b23923bf4. Signed-off-by: Doug Berger --- drivers/base/core.c | 1 - drivers/input/keyboard/gpio_keys.c | 2 -- include/linux/device.h | 1 - 3 files changed, 4 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 8385df4d9677..6878dfcbf0d6 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -428,7 +428,6 @@ void device_pm_move_to_tail(struct device *dev) device_pm_unlock(); device_links_read_unlock(idx); } -EXPORT_SYMBOL_GPL(device_pm_move_to_tail); #define to_devlink(dev) container_of((dev), struct device_link, link_dev) diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c index 7a0dcfeb02dc..e5af0a254a3f 100644 --- a/drivers/input/keyboard/gpio_keys.c +++ b/drivers/input/keyboard/gpio_keys.c @@ -810,8 +810,6 @@ static int gpio_keys_probe(struct platform_device *pdev) int i, error; int wakeup = 0; - device_pm_move_to_tail(dev); - if (!pdata) { pdata = gpio_keys_get_devtree_pdata(dev); if (IS_ERR(pdata)) diff --git a/include/linux/device.h b/include/linux/device.h index dad40bd45509..1508e637bb26 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -1082,7 +1082,6 @@ void device_link_del(struct device_link *link); void device_link_remove(void *consumer, struct device *supplier); void device_links_supplier_sync_state_pause(void); void device_links_supplier_sync_state_resume(void); -void device_pm_move_to_tail(struct device *dev); extern __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...);