[PATCH v4 0/8] Make fw_devlink=on more forgiving

From: Saravana Kannan
Date: Fri Feb 05 2021 - 22:42:48 EST


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

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