Indeed. If you have a multi-function device that shows up as a single PCI
function, just make it have its own "private bus", and make it show up as
a "devices within a device".
Create the fake PCI subdevices that have no "real" counterpart, except as
parts of the stupid device that couldn't be bothered to be seen as
multiple _real_ functions.
That not only solves the infrastructure issues, it's actually The Truth
with capital letters. It is, after all, how the device actually works
internally.
Linus
--