sfc: Associate primary and secondary functions of controller
authorBen Hutchings <bhutchings@solarflare.com>
Fri, 18 Oct 2013 18:21:45 +0000 (19:21 +0100)
committerBen Hutchings <bhutchings@solarflare.com>
Thu, 12 Dec 2013 22:07:15 +0000 (22:07 +0000)
commit0bcf4a645fc027d05d15e79ce48b5893cff28082
tree48f54ac160df82b66b4d0776a8247d1f8c21c8b1
parentef215e64760ef6bd756c2999e7c8cee95b98e30a
sfc: Associate primary and secondary functions of controller

The primary function of an EF10 controller will share its clock
device with other functions in the same domain (which we call
secondary functions).  To this end, we need to associate functions
on the same controller.

We do not control probe order, so allow primary and secondary
functions to appear in any order.  Maintain global lists of all
primary functions and of unassociated secondary functions,
and a list of secondary functions on each primary function.

Use the VPD serial number to tell whether functions are part of the
same controller.  VPD will not be readable by virtual functions, so
this may need to be revisited later.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
drivers/net/ethernet/sfc/efx.c
drivers/net/ethernet/sfc/falcon.c
drivers/net/ethernet/sfc/mcdi.c
drivers/net/ethernet/sfc/net_driver.h