On Fri, Feb 5, 2021 at 2:26 PM Saravana Kannan <saravanak@xxxxxxxxxx> wrote: > > There are a lot of devices/drivers where they never have a struct device > created for them or the driver initializes the hardware without ever > binding to the struct device. > > This series is intended to avoid any boot regressions due to such > devices/drivers when fw_devlink=on and also address the handling of > optional suppliers. > > Patch 1 and 2 addresses the issue of firmware nodes that look like > they'll have struct devices created for them, but will never actually > have struct devices added for them. For example, DT nodes with a > compatible property that don't have devices added for them. > > Patch 3 and 4 allow for handling optional DT bindings. > > Patch 5 sets up a generic API to handle drivers that never bind with > their devices. > > Patch 6 through 8 update different frameworks to use the new API. > > Thanks, > Saravana > Forgot to add version history: v1 -> v2: Patch 1: Added a flag to fwnodes that aren't devices. Patch 3: New patch to ise the flag set in patch 1 to not create bad links. v2 -> v3: - Patch 1: Added Rafael's Ack - New patches 3 and 4 v3 -> v4: - No changes to patches 1-4. - New patches 5-8. -Saravana > Saravana Kannan (8): > driver core: fw_devlink: Detect supplier devices that will never be > added > of: property: Don't add links to absent suppliers > driver core: Add fw_devlink.strict kernel param > of: property: Add fw_devlink support for optional properties > driver core: fw_devlink: Handle suppliers that don't use driver core > irqdomain: Mark fwnodes when their irqdomain is added/removed > PM: domains: Mark fwnodes when their powerdomain is added/removed > clk: Mark fwnodes when their clock provider is added/removed > > .../admin-guide/kernel-parameters.txt | 5 ++ > drivers/base/core.c | 58 ++++++++++++++++++- > drivers/base/power/domain.c | 2 + > drivers/clk/clk.c | 3 + > drivers/of/property.c | 16 +++-- > include/linux/fwnode.h | 20 ++++++- > kernel/irq/irqdomain.c | 2 + > 7 files changed, 98 insertions(+), 8 deletions(-) > > -- > 2.30.0.478.g8a0d178c01-goog >