From: Saravana Kannan <saravanak@google.com> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "Rafael J. Wysocki" <rafael@kernel.org>, Rob Herring <robh+dt@kernel.org>, Frank Rowand <frowand.list@gmail.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Daniel Scally <djrscally@gmail.com>, Heikki Krogerus <heikki.krogerus@linux.intel.com>, Sakari Ailus <sakari.ailus@linux.intel.com>, Len Brown <lenb@kernel.org>, Saravana Kannan <saravanak@google.com> Cc: sascha hauer <sha@pengutronix.de>, peng fan <peng.fan@nxp.com>, kevin hilman <khilman@kernel.org>, ulf hansson <ulf.hansson@linaro.org>, len brown <len.brown@intel.com>, pavel machek <pavel@ucw.cz>, joerg roedel <joro@8bytes.org>, will deacon <will@kernel.org>, andrew lunn <andrew@lunn.ch>, heiner kallweit <hkallweit1@gmail.com>, russell king <linux@armlinux.org.uk>, "david s. miller" <davem@davemloft.net>, eric dumazet <edumazet@google.com>, jakub kicinski <kuba@kernel.org>, paolo abeni <pabeni@redhat.com>, linus walleij <linus.walleij@linaro.org>, hideaki yoshifuji <yoshfuji@linux-ipv6.org>, david ahern <dsahern@kernel.org>, kernel-team@android.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, iommu@lists.linux-foundation.org, netdev@vger.kernel.org, linux-gpio@vger.kernel.org, kernel@pengutronix.de, devicetree@vger.kernel.org, linux-acpi@vger.kernel.org Subject: [PATCH v2 1/2] driver core: fw_devlink: Allow firmware to mark devices as best effort Date: Thu, 23 Jun 2022 01:03:42 -0700 [thread overview] Message-ID: <20220623080344.783549-2-saravanak@google.com> (raw) In-Reply-To: <20220623080344.783549-1-saravanak@google.com> When firmware sets the FWNODE_FLAG_BEST_EFFORT flag for a fwnode, fw_devlink will do a best effort ordering for that device where it'll only enforce the probe/suspend/resume ordering of that device with suppliers that have drivers. The driver of that device can then decide if it wants to defer probe or probe without the suppliers. This will be useful for avoid probe delays of the console device that were caused by commit 71066545b48e ("driver core: Set fw_devlink.strict=1 by default"). Fixes: 71066545b48e ("driver core: Set fw_devlink.strict=1 by default") Reported-by: Sascha Hauer <sha@pengutronix.de> Reported-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Saravana Kannan <saravanak@google.com> Tested-by: Peng Fan <peng.fan@nxp.com> --- drivers/base/core.c | 3 ++- include/linux/fwnode.h | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 839f64485a55..ccdd5b4295de 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -968,7 +968,8 @@ static void device_links_missing_supplier(struct device *dev) static bool dev_is_best_effort(struct device *dev) { - return fw_devlink_best_effort && dev->can_match; + return (fw_devlink_best_effort && dev->can_match) || + (dev->fwnode && (dev->fwnode->flags & FWNODE_FLAG_BEST_EFFORT)); } /** diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h index 9a81c4410b9f..89b9bdfca925 100644 --- a/include/linux/fwnode.h +++ b/include/linux/fwnode.h @@ -27,11 +27,15 @@ struct device; * driver needs its child devices to be bound with * their respective drivers as soon as they are * added. + * BEST_EFFORT: The fwnode/device needs to probe early and might be missing some + * suppliers. Only enforce ordering with suppliers that have + * drivers. */ #define FWNODE_FLAG_LINKS_ADDED BIT(0) #define FWNODE_FLAG_NOT_DEVICE BIT(1) #define FWNODE_FLAG_INITIALIZED BIT(2) #define FWNODE_FLAG_NEEDS_CHILD_BOUND_ON_ADD BIT(3) +#define FWNODE_FLAG_BEST_EFFORT BIT(4) struct fwnode_handle { struct fwnode_handle *secondary; -- 2.37.0.rc0.161.g10f37bed90-goog
WARNING: multiple messages have this Message-ID (diff)
From: Saravana Kannan via iommu <iommu@lists.linux-foundation.org> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "Rafael J. Wysocki" <rafael@kernel.org>, Rob Herring <robh+dt@kernel.org>, Frank Rowand <frowand.list@gmail.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Daniel Scally <djrscally@gmail.com>, Heikki Krogerus <heikki.krogerus@linux.intel.com>, Sakari Ailus <sakari.ailus@linux.intel.com>, Len Brown <lenb@kernel.org>, Saravana Kannan <saravanak@google.com> Cc: andrew lunn <andrew@lunn.ch>, peng fan <peng.fan@nxp.com>, devicetree@vger.kernel.org, linus walleij <linus.walleij@linaro.org>, ulf hansson <ulf.hansson@linaro.org>, eric dumazet <edumazet@google.com>, pavel machek <pavel@ucw.cz>, will deacon <will@kernel.org>, sascha hauer <sha@pengutronix.de>, kevin hilman <khilman@kernel.org>, russell king <linux@armlinux.org.uk>, linux-acpi@vger.kernel.org, jakub kicinski <kuba@kernel.org>, paolo abeni <pabeni@redhat.com>, kernel-team@android.com, len brown <len.brown@intel.com>, linux-pm@vger.kernel.org, linux-gpio@vger.kernel.org, hideaki yoshifuji <yoshfuji@linux-ipv6.org>, netdev@vger.kernel.org, david ahern <dsahern@kernel.org>, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, kernel@pengutronix.de, "david s. miller" <davem@davemloft.net>, heiner kallweit <hkallweit1@gmail.com> Subject: [PATCH v2 1/2] driver core: fw_devlink: Allow firmware to mark devices as best effort Date: Thu, 23 Jun 2022 01:03:42 -0700 [thread overview] Message-ID: <20220623080344.783549-2-saravanak@google.com> (raw) In-Reply-To: <20220623080344.783549-1-saravanak@google.com> When firmware sets the FWNODE_FLAG_BEST_EFFORT flag for a fwnode, fw_devlink will do a best effort ordering for that device where it'll only enforce the probe/suspend/resume ordering of that device with suppliers that have drivers. The driver of that device can then decide if it wants to defer probe or probe without the suppliers. This will be useful for avoid probe delays of the console device that were caused by commit 71066545b48e ("driver core: Set fw_devlink.strict=1 by default"). Fixes: 71066545b48e ("driver core: Set fw_devlink.strict=1 by default") Reported-by: Sascha Hauer <sha@pengutronix.de> Reported-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Saravana Kannan <saravanak@google.com> Tested-by: Peng Fan <peng.fan@nxp.com> --- drivers/base/core.c | 3 ++- include/linux/fwnode.h | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 839f64485a55..ccdd5b4295de 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -968,7 +968,8 @@ static void device_links_missing_supplier(struct device *dev) static bool dev_is_best_effort(struct device *dev) { - return fw_devlink_best_effort && dev->can_match; + return (fw_devlink_best_effort && dev->can_match) || + (dev->fwnode && (dev->fwnode->flags & FWNODE_FLAG_BEST_EFFORT)); } /** diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h index 9a81c4410b9f..89b9bdfca925 100644 --- a/include/linux/fwnode.h +++ b/include/linux/fwnode.h @@ -27,11 +27,15 @@ struct device; * driver needs its child devices to be bound with * their respective drivers as soon as they are * added. + * BEST_EFFORT: The fwnode/device needs to probe early and might be missing some + * suppliers. Only enforce ordering with suppliers that have + * drivers. */ #define FWNODE_FLAG_LINKS_ADDED BIT(0) #define FWNODE_FLAG_NOT_DEVICE BIT(1) #define FWNODE_FLAG_INITIALIZED BIT(2) #define FWNODE_FLAG_NEEDS_CHILD_BOUND_ON_ADD BIT(3) +#define FWNODE_FLAG_BEST_EFFORT BIT(4) struct fwnode_handle { struct fwnode_handle *secondary; -- 2.37.0.rc0.161.g10f37bed90-goog _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2022-06-23 8:08 UTC|newest] Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-06-23 8:03 [PATCH v2 0/2] Fix console probe delay due to fw_devlink Saravana Kannan 2022-06-23 8:03 ` Saravana Kannan via iommu 2022-06-23 8:03 ` Saravana Kannan [this message] 2022-06-23 8:03 ` [PATCH v2 1/2] driver core: fw_devlink: Allow firmware to mark devices as best effort Saravana Kannan via iommu 2022-06-23 8:03 ` [PATCH v2 2/2] of: base: Avoid console probe delay when fw_devlink.strict=1 Saravana Kannan 2022-06-23 8:03 ` Saravana Kannan via iommu 2022-06-23 10:04 ` sascha hauer 2022-06-23 10:04 ` sascha hauer 2022-06-23 16:39 ` Andy Shevchenko 2022-06-23 16:39 ` Andy Shevchenko 2022-06-23 17:22 ` Rafael J. Wysocki 2022-06-23 17:22 ` Rafael J. Wysocki 2022-06-23 17:30 ` Saravana Kannan via iommu 2022-06-23 17:30 ` Saravana Kannan 2022-06-23 17:26 ` Saravana Kannan via iommu 2022-06-23 17:26 ` Saravana Kannan 2022-06-23 17:35 ` Ahmad Fatoum 2022-06-23 17:35 ` Ahmad Fatoum 2022-06-23 18:17 ` Saravana Kannan via iommu 2022-06-23 18:17 ` Saravana Kannan 2022-06-23 20:37 ` sascha hauer 2022-06-23 20:37 ` sascha hauer 2022-06-23 23:13 ` Saravana Kannan 2022-06-23 23:13 ` Saravana Kannan via iommu 2022-06-27 17:50 ` Rob Herring 2022-06-27 17:50 ` Rob Herring 2022-06-27 18:20 ` Saravana Kannan 2022-06-27 18:20 ` Saravana Kannan via iommu 2022-06-28 13:41 ` Linus Walleij 2022-06-28 13:41 ` Linus Walleij
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220623080344.783549-2-saravanak@google.com \ --to=saravanak@google.com \ --cc=andrew@lunn.ch \ --cc=andriy.shevchenko@linux.intel.com \ --cc=davem@davemloft.net \ --cc=devicetree@vger.kernel.org \ --cc=djrscally@gmail.com \ --cc=dsahern@kernel.org \ --cc=edumazet@google.com \ --cc=frowand.list@gmail.com \ --cc=gregkh@linuxfoundation.org \ --cc=heikki.krogerus@linux.intel.com \ --cc=hkallweit1@gmail.com \ --cc=iommu@lists.linux-foundation.org \ --cc=joro@8bytes.org \ --cc=kernel-team@android.com \ --cc=kernel@pengutronix.de \ --cc=khilman@kernel.org \ --cc=kuba@kernel.org \ --cc=len.brown@intel.com \ --cc=lenb@kernel.org \ --cc=linus.walleij@linaro.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=netdev@vger.kernel.org \ --cc=pabeni@redhat.com \ --cc=pavel@ucw.cz \ --cc=peng.fan@nxp.com \ --cc=rafael@kernel.org \ --cc=robh+dt@kernel.org \ --cc=sakari.ailus@linux.intel.com \ --cc=sha@pengutronix.de \ --cc=ulf.hansson@linaro.org \ --cc=will@kernel.org \ --cc=yoshfuji@linux-ipv6.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.