[$] Managing multifunction devices with the auxiliary bus

Post Syndicated from original https://lwn.net/Articles/840416/rss

Device drivers usually live within a single kernel subsystem. Sometimes,
however, developers need to handle functionalities outside of this model.
Consider, for example, a network interface card (NIC) exposing both Ethernet and
RDMA functionalities. There is one hardware block, but two drivers for the
two functions. Those drivers need to work within their respective
subsystems, but they must also share access to the same hardware. There is
no standard way in current kernels to connect those drivers together, so
developers invent ad-hoc methods to handle the interaction between
them. Recently, Dave Ertman posted
a patch set introducing a new type of a bus, called the “auxiliary bus”, to
address this problem.