Linux kernel source tree
Go to file
Saravana Kannan 905cc9076c FROMGIT: driver core: Add support for linking devices during device addition
The firmware corresponding to a device (dev.fwnode) might be able to
provide functional dependency information between a device and its
supplier and consumer devices.  Tracking this functional dependency
allows optimizing device probe order and informing a supplier when all
its consumers have probed (and thereby actively managing their
resources).

The existing device links feature allows tracking and using
supplier-consumer relationships. So, this patch adds the add_links()
fwnode callback to allow firmware to create device links for each
device as the device is added.

However, when consumer devices are added, they might not have a supplier
device to link to despite needing mandatory resources/functionality from
one or more suppliers. A waiting_for_suppliers list is created to track
such consumers and retry linking them when new devices get added.

Signed-off-by: Saravana Kannan <saravanak@google.com>
Link: https://lore.kernel.org/r/20190904211126.47518-3-saravanak@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

(cherry-picked from commit e2ae9bcc4a
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git driver-core-next)

Bug: 141703324
Change-Id: I97ffa57fa71588bf198e78d8b5a313b860b17bf5
2019-10-07 18:43:48 -07:00
arch Linux 5.4-rc2 2019-10-07 07:09:37 +02:00
block block: sed-opal: fix sparse warning: convert __be64 data 2019-10-03 14:21:32 -06:00
certs PKCS#7: Refactor verify_pkcs7_signature() 2019-08-05 18:40:18 -04:00
crypto Merge branch 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2019-09-28 08:14:15 -07:00
Documentation FROMGIT: driver core: Add support for linking devices during device addition 2019-10-07 18:43:48 -07:00
drivers FROMGIT: driver core: Add support for linking devices during device addition 2019-10-07 18:43:48 -07:00
fs Linux 5.4-rc2 2019-10-07 07:09:37 +02:00
include FROMGIT: driver core: Add support for linking devices during device addition 2019-10-07 18:43:48 -07:00
init Linux 5.4-rc1 2019-10-02 19:10:07 +02:00
ipc Merge 5.4-rc1-prelrease into android-mainline 2019-10-02 17:58:47 +02:00
kernel Linux 5.4-rc2 2019-10-07 07:09:37 +02:00
lib Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-10-05 08:50:15 -07:00
LICENSES LICENSES: Rename other to deprecated 2019-05-03 06:34:32 -06:00
mm Linux 5.4-rc1 2019-10-02 19:10:07 +02:00
net Linux 5.4-rc2 2019-10-07 07:09:37 +02:00
samples rpmsg updates for v5.4 2019-09-22 10:58:15 -07:00
scripts Linux 5.4-rc2 2019-10-07 07:09:37 +02:00
security Linux 5.4-rc2 2019-10-07 07:09:37 +02:00
sound sound fixes for 5.4-rc1 2019-09-24 16:46:16 -07:00
tools Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-10-05 08:50:15 -07:00
usr kbuild: update compile-test header list for v5.4-rc2 2019-10-05 15:29:49 +09:00
virt KVM/arm fixes for 5.4, take #1 2019-10-03 12:08:50 +02:00
.clang-format clang-format: Update with the latest for_each macro list 2019-08-31 10:00:51 +02:00
.cocciconfig
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: set git diff driver for C source code files 2016-10-07 18:46:30 -07:00
.gitignore Modules updates for v5.4 2019-09-22 10:34:46 -07:00
.mailmap Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2019-09-18 12:34:53 -07:00
abi_gki_aarch64.xml Update ABI definition after libabigail upgrade 2019-09-22 10:51:50 +01:00
build.config.aarch64 ANDROID: refactor build.config files to remove duplication 2019-08-30 14:55:29 +01:00
build.config.allmodconfig ANDROID: Fix arm64 allmodconfig build 2019-10-02 14:10:09 +01:00
build.config.allmodconfig.aarch64 ANDROID: create build.configs for allmodconfig 2019-09-04 15:49:40 +00:00
build.config.allmodconfig.x86_64 ANDROID: create build.configs for allmodconfig 2019-09-04 15:49:40 +00:00
build.config.common ANDROID: refactor build.config files to remove duplication 2019-08-30 14:55:29 +01:00
build.config.gki ANDROID: refactor build.config files to remove duplication 2019-08-30 14:55:29 +01:00
build.config.gki.aarch64 ANDROID: refactor build.config files to remove duplication 2019-08-30 14:55:29 +01:00
build.config.gki.x86_64 ANDROID: refactor build.config files to remove duplication 2019-08-30 14:55:29 +01:00
build.config.x86_64 ANDROID: refactor build.config files to remove duplication 2019-08-30 14:55:29 +01:00
COPYING COPYING: use the new text with points to the license files 2018-03-23 12:41:45 -06:00
CREDITS CREDITS: Update email address 2019-09-13 17:21:38 +03:00
Kbuild kbuild: do not descend to ./Kbuild when cleaning 2019-08-21 21:03:58 +09:00
Kconfig docs: kbuild: convert docs to ReST and rename to *.rst 2019-06-14 14:21:21 -06:00
MAINTAINERS kgdb patches for 5.4-rc2 2019-10-03 11:17:57 -07:00
Makefile Linux 5.4-rc2 2019-10-07 07:09:37 +02:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.