From patchwork Sat Sep 4 00:05:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saravana Kannan X-Patchwork-Id: 12475281 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-26.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7E65C433EF for ; Sat, 4 Sep 2021 00:05:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A324260F21 for ; Sat, 4 Sep 2021 00:05:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350806AbhIDAGw (ORCPT ); Fri, 3 Sep 2021 20:06:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57760 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350789AbhIDAGu (ORCPT ); Fri, 3 Sep 2021 20:06:50 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C785C061757 for ; Fri, 3 Sep 2021 17:05:50 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id g192-20020a25dbc9000000b0059bd2958c8aso987379ybf.5 for ; Fri, 03 Sep 2021 17:05:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=CmiOovZTt1y4cIWEfI47PRt3/MlHznjnR9cha/mAR4c=; b=YwL/ZRmVL05ExLE8Uye2bq5sdTwSfXVFJvEJM3RSL7OVnlT4viA1ZPsdqJbNE+RcMg UgbROXkOc+awabmhS8Dhd/IfE5Ni+56xWlHUf4Eqgphst0spjSiEsxqxlBXxV6m2Ah+P LaZabo3SchFKsQZrmYELQEAmKQVR0XJQMx1Y7YMcU2RCpessU4+lEZPRoEI+GypG8SfW PwCI/fte/EJW9+wuc09PN7EbczrDfoIoDp+TcylGNLZ3K+R7g3WutymywjInJTwNdUKp tOKHhoauY9ddyjAT4cxP8s+rsbMV7xjnf5qPR1oJUosL0E12HM383vRUS7Me6ht+ZctT ydbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=CmiOovZTt1y4cIWEfI47PRt3/MlHznjnR9cha/mAR4c=; b=mv+d2CwiJ+5kldQqeJGv81lboD0ZzrWF9aUCOYEs0bGEgglLdwq0DWNoqUD25yWou0 hcvDYeox26SFyzo+psN69iBwBMbhRCsoAXOn2Sv6pNP4DUECbcdSdyVgijka8RGT6ATQ 0ETwSbr5FjflcfJgyKamGmnWdJq9i3+K2EJ+Ai9TwO1D+lkRY0JseJtXlte+YDVsM6PW Lrg1LXPvNlXb5aTx8/4lAP3bgRVqVDxONF2C+m+zAPjbrwfdmaxdWDaqNVujlrilatjm FK7o5/hwrPXm5XaTYPGueN/aZceAkjus+Zdwqv211rFD47LmwDU7Cz5rFCYNw8tXvsic uG1w== X-Gm-Message-State: AOAM533Wya7YH38mBmMb8slCiTwEuesKkSmKI3NauSrrhZr7bShS4VB2 gc5gGaBtw/C/aodttHKV3TrWjVDnm+kr50s= X-Google-Smtp-Source: ABdhPJxmH19nPmNYfApQCzFJa101DpD5Gzo0XYSrXU/wL13p/J/9TjYYqd+ffs7ankEM4mjnReGAXwID7O4vqfQ= X-Received: from saravanak.san.corp.google.com ([2620:15c:2d:3:b45b:ca56:952a:2176]) (user=saravanak job=sendgmr) by 2002:a25:b9cf:: with SMTP id y15mr2035451ybj.110.1630713949404; Fri, 03 Sep 2021 17:05:49 -0700 (PDT) Date: Fri, 3 Sep 2021 17:05:41 -0700 In-Reply-To: <20210904000543.2019010-1-saravanak@google.com> Message-Id: <20210904000543.2019010-2-saravanak@google.com> Mime-Version: 1.0 References: <20210904000543.2019010-1-saravanak@google.com> X-Mailer: git-send-email 2.33.0.153.gba50c8fa24-goog Subject: [PATCH v3 1/2] drivers: bus: simple-pm-bus: Add support for probing simple bus only devices From: Saravana Kannan To: Russell King , Neil Armstrong , Geert Uytterhoeven , Magnus Damm , Tony Lindgren , Catalin Marinas , Will Deacon , Damien Le Moal Cc: Saravana Kannan , Ulf Hansson , Rob Herring , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-oxnas@groups.io, linux-renesas-soc@vger.kernel.org, linux-omap@vger.kernel.org, linux-riscv@lists.infradead.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org fw_devlink could end up creating device links for bus only devices. However, bus only devices don't get probed and can block probe() or sync_state() [1] call backs of other devices. To avoid this, probe these devices using the simple-pm-bus driver. However, there are instances of devices that are not simple buses (they get probed by their specific drivers) that also list the "simple-bus" (or other bus only compatible strings) in their compatible property to automatically populate their child devices. We still want these devices to get probed by their specific drivers. So, we make sure this driver only probes devices that are only buses. [1] - https://lore.kernel.org/lkml/CAPDyKFo9Bxremkb1dDrr4OcXSpE0keVze94Cm=zrkOVxHHxBmQ@mail.gmail.com/ Signed-off-by: Saravana Kannan Tested-by: Saravana Kannan Reviewed-by: Ulf Hansson Tested-by: Ulf Hansson --- drivers/bus/simple-pm-bus.c | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/drivers/bus/simple-pm-bus.c b/drivers/bus/simple-pm-bus.c index 01a3d0cd08ed..3e086a9f34cb 100644 --- a/drivers/bus/simple-pm-bus.c +++ b/drivers/bus/simple-pm-bus.c @@ -13,11 +13,26 @@ #include #include - static int simple_pm_bus_probe(struct platform_device *pdev) { - const struct of_dev_auxdata *lookup = dev_get_platdata(&pdev->dev); - struct device_node *np = pdev->dev.of_node; + const struct device *dev = &pdev->dev; + const struct of_dev_auxdata *lookup = dev_get_platdata(dev); + struct device_node *np = dev->of_node; + const struct of_device_id *match; + + match = of_match_device(dev->driver->of_match_table, dev); + + /* + * These are transparent bus devices (not simple-pm-bus matches) that + * have their child nodes populated automatically. So, don't need to + * do anything more. + */ + if (match && match->data) { + if (of_property_match_string(np, "compatible", match->compatible) == 0) + return 0; + else + return -ENODEV; + } dev_dbg(&pdev->dev, "%s\n", __func__); @@ -31,14 +46,25 @@ static int simple_pm_bus_probe(struct platform_device *pdev) static int simple_pm_bus_remove(struct platform_device *pdev) { + const void *data = of_device_get_match_data(&pdev->dev); + + if (data) + return 0; + dev_dbg(&pdev->dev, "%s\n", __func__); pm_runtime_disable(&pdev->dev); return 0; } +#define ONLY_BUS ((void *) 1) /* Match if the device is only a bus. */ + static const struct of_device_id simple_pm_bus_of_match[] = { { .compatible = "simple-pm-bus", }, + { .compatible = "simple-bus", .data = ONLY_BUS }, + { .compatible = "simple-mfd", .data = ONLY_BUS }, + { .compatible = "isa", .data = ONLY_BUS }, + { .compatible = "arm,amba-bus", .data = ONLY_BUS }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, simple_pm_bus_of_match); From patchwork Sat Sep 4 00:05:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saravana Kannan X-Patchwork-Id: 12475283 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-26.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6FA2C433F5 for ; Sat, 4 Sep 2021 00:05:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 87545610A2 for ; Sat, 4 Sep 2021 00:05:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350819AbhIDAG4 (ORCPT ); Fri, 3 Sep 2021 20:06:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57782 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350812AbhIDAGy (ORCPT ); Fri, 3 Sep 2021 20:06:54 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2584C061760 for ; Fri, 3 Sep 2021 17:05:53 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id w8-20020a259188000000b0059bf0bed21fso917898ybl.18 for ; Fri, 03 Sep 2021 17:05:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=SfbHJEWQeRliBoQsEhXHv1u4n2Ik1OMNCo9r1o66Q/M=; b=GZ0vA80A2Z6y+ef/rz+ER1DjhGiMBo8Unx54I5q93wBFk5a1Z+4+yOIbK6F8i6ml2Z huiMjvHV8w71Q3r8BTQ/7TSElsFnHWLQDvxTnX+hKAiCZ254RixITRjqZ/IkeQDEa6Xa ZHq5gAWBcLx2sATUvcX6LCd5uJwhAibNyPK+H1uI1wDW2vOEQs5tun/Diez11Orwu/Mj 2YGwWwNS6bgr7AHu7BQ0hkDZZcShVMOj8cb659TQVcsEXS6doanhqlsyn3p8XcHOx0/l 7WZRAHbvWGlOrm6KJSi1Nlvvtq8mjZIHmKkwItCNckxL3rBNLO4+NL0/ug488Wqf9rZm Ud7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=SfbHJEWQeRliBoQsEhXHv1u4n2Ik1OMNCo9r1o66Q/M=; b=QIeIfH6Vr+wWPycPaukbWqWA4gv0fq8VT8VsFhmQ4DjC696GG8YJomHqiJzZV1HjeA OE+ev/GJ4WaCWrCCREyXz5Kv5EoHumqsnmtgJoTWORV87p6K7AUfyuLIuNhM0TenM36U CIkny9BBsaeDQbRxEOnML6eRfWpA17nPCsA64qOaJlCug+nABX3uooejUA+obsC/RRfp ALZwtQwKYVYO/0GcPq5IHBRvQ3iouT2QijYQ/1GvQ4pE4KKQKJDgSjfifzlHI3Pv1OdN apBR2zc0K9C/+7fomu0MFocEWpQaFDUevFnhxyJMFsdmBSeBZ+uoH2EL2ou7/Zaq6t2+ IsMg== X-Gm-Message-State: AOAM5309qYToX1VOHrL22JasYLu1eSjkSCtUztIS9sUCKUoRzlsLNg+F M18WHwxMHVYTH3kZCP9+vM9lSUlN1RgZeMw= X-Google-Smtp-Source: ABdhPJxMnuM52qVl21b48kLxkv3AyKumezraz5sUmqPRmVkkOO34LbbxoyfV+PPzFtSDDybtmhFrOnQR8bYDu7Y= X-Received: from saravanak.san.corp.google.com ([2620:15c:2d:3:b45b:ca56:952a:2176]) (user=saravanak job=sendgmr) by 2002:a25:268c:: with SMTP id m134mr2133217ybm.298.1630713952840; Fri, 03 Sep 2021 17:05:52 -0700 (PDT) Date: Fri, 3 Sep 2021 17:05:42 -0700 In-Reply-To: <20210904000543.2019010-1-saravanak@google.com> Message-Id: <20210904000543.2019010-3-saravanak@google.com> Mime-Version: 1.0 References: <20210904000543.2019010-1-saravanak@google.com> X-Mailer: git-send-email 2.33.0.153.gba50c8fa24-goog Subject: [PATCH v3 2/2] drivers: bus: Delete CONFIG_SIMPLE_PM_BUS From: Saravana Kannan To: Russell King , Neil Armstrong , Geert Uytterhoeven , Magnus Damm , Tony Lindgren , Catalin Marinas , Will Deacon , Damien Le Moal Cc: Saravana Kannan , Ulf Hansson , Rob Herring , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-oxnas@groups.io, linux-renesas-soc@vger.kernel.org, linux-omap@vger.kernel.org, linux-riscv@lists.infradead.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org The simple-pm-bus driver is mandatory for CONFIG_OF based platforms to work with fw_devlink. So, always compile it in for CONFIG_OF and delete the config since it's no longer necessary. Signed-off-by: Saravana Kannan Reviewed-by: Ulf Hansson Tested-by: Ulf Hansson --- arch/arm/configs/multi_v7_defconfig | 1 - arch/arm/configs/oxnas_v6_defconfig | 1 - arch/arm/configs/shmobile_defconfig | 1 - arch/arm/mach-omap2/Kconfig | 1 - arch/arm64/configs/defconfig | 1 - drivers/bus/Kconfig | 12 ------------ drivers/bus/Makefile | 2 +- drivers/soc/canaan/Kconfig | 1 - 8 files changed, 1 insertion(+), 19 deletions(-) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index d9abaae118dd..362720ae8d65 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -196,7 +196,6 @@ CONFIG_PCI_EPF_TEST=m CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_OMAP_OCP2SCP=y -CONFIG_SIMPLE_PM_BUS=y CONFIG_MTD=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_BLOCK=y diff --git a/arch/arm/configs/oxnas_v6_defconfig b/arch/arm/configs/oxnas_v6_defconfig index cae0db6b4eaf..de37f7e90999 100644 --- a/arch/arm/configs/oxnas_v6_defconfig +++ b/arch/arm/configs/oxnas_v6_defconfig @@ -46,7 +46,6 @@ CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_DMA_CMA=y CONFIG_CMA_SIZE_MBYTES=64 -CONFIG_SIMPLE_PM_BUS=y CONFIG_MTD=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_BLOCK=y diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index d9a27e4e0914..18d2a960b2d2 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig @@ -40,7 +40,6 @@ CONFIG_PCI_RCAR_GEN2=y CONFIG_PCIE_RCAR_HOST=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y -CONFIG_SIMPLE_PM_BUS=y CONFIG_MTD=y CONFIG_MTD_BLOCK=y CONFIG_MTD_CFI=y diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 7df8f5276ddf..02f2f3157f07 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -112,7 +112,6 @@ config ARCH_OMAP2PLUS select PM_GENERIC_DOMAINS select PM_GENERIC_DOMAINS_OF select RESET_CONTROLLER - select SIMPLE_PM_BUS select SOC_BUS select TI_SYSC select OMAP_IRQCHIP diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index f423d08b9a71..474b1f2e3f06 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -245,7 +245,6 @@ CONFIG_DEVTMPFS_MOUNT=y CONFIG_FW_LOADER_USER_HELPER=y CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y CONFIG_HISILICON_LPC=y -CONFIG_SIMPLE_PM_BUS=y CONFIG_FSL_MC_BUS=y CONFIG_TEGRA_ACONNECT=m CONFIG_GNSS=m diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig index e7f7eee6ee9a..dc3801369488 100644 --- a/drivers/bus/Kconfig +++ b/drivers/bus/Kconfig @@ -141,18 +141,6 @@ config QCOM_EBI2 Interface 2, which can be used to connect things like NAND Flash, SRAM, ethernet adapters, FPGAs and LCD displays. -config SIMPLE_PM_BUS - tristate "Simple Power-Managed Bus Driver" - depends on OF && PM - help - Driver for transparent busses that don't need a real driver, but - where the bus controller is part of a PM domain, or under the control - of a functional clock, and thus relies on runtime PM for managing - this PM domain and/or clock. - An example of such a bus controller is the Renesas Bus State - Controller (BSC, sometimes called "LBSC within Bus Bridge", or - "External Bus Interface") as found on several Renesas ARM SoCs. - config SUN50I_DE2_BUS bool "Allwinner A64 DE2 Bus Driver" default ARM64 diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile index 397e35392bff..86aacd36a56d 100644 --- a/drivers/bus/Makefile +++ b/drivers/bus/Makefile @@ -26,7 +26,7 @@ obj-$(CONFIG_OMAP_OCP2SCP) += omap-ocp2scp.o obj-$(CONFIG_QCOM_EBI2) += qcom-ebi2.o obj-$(CONFIG_SUN50I_DE2_BUS) += sun50i-de2.o obj-$(CONFIG_SUNXI_RSB) += sunxi-rsb.o -obj-$(CONFIG_SIMPLE_PM_BUS) += simple-pm-bus.o +obj-$(CONFIG_OF) += simple-pm-bus.o obj-$(CONFIG_TEGRA_ACONNECT) += tegra-aconnect.o obj-$(CONFIG_TEGRA_GMI) += tegra-gmi.o obj-$(CONFIG_TI_PWMSS) += ti-pwmss.o diff --git a/drivers/soc/canaan/Kconfig b/drivers/soc/canaan/Kconfig index 8179b69518b4..853096b7e84c 100644 --- a/drivers/soc/canaan/Kconfig +++ b/drivers/soc/canaan/Kconfig @@ -5,7 +5,6 @@ config SOC_K210_SYSCTL depends on RISCV && SOC_CANAAN && OF default SOC_CANAAN select PM - select SIMPLE_PM_BUS select SYSCON select MFD_SYSCON help