This series contains the initial implementation of the Virtual Bus, virtbus_device, virtbus_driver, updates to 'ice' and 'i40e' to use the new Virtual Bus. The primary purpose of the Virtual bus is to put devices on it and hook the devices up to drivers. This will allow drivers, like the RDMA drivers, to hook up to devices via this Virtual bus. The associated irdma driver designed to use this new interface, is still in RFC currently and was sent in a separate series. The latest RFC series follows this series, named "Intel RDMA Driver Updates 2020-05-19". This series currently builds against net-next tree. Revision history: v2: Made changes based on community feedback, like Pierre-Louis's and Jason's comments to update virtual bus interface. v3: Updated the virtual bus interface based on feedback from Jason and Greg KH. Also updated the initial ice driver patch to handle the virtual bus changes and changes requested by Jason and Greg KH. v4: Updated the kernel documentation based on feedback from Greg KH. Also added PM interface updates to satisfy the sound driver requirements. Added the sound driver changes that makes use of the virtual bus. The following are changes since commit 2de499258659823b3c7207c5bda089c822b67d69: Merge branch 's390-next' and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 100GbE Dave Ertman (7): Implementation of Virtual Bus ice: Create and register virtual bus for RDMA ice: Complete RDMA peer registration ice: Support resource allocation requests ice: Enable event notifications ice: Allow reset operations ice: Pass through communications to VF Ranjani Sridharan (3): ASoC: SOF: Introduce descriptors for SOF client ASoC: SOF: Create client driver for IPC test ASoC: SOF: ops: Add new op for client registration Shiraz Saleem (2): i40e: Move client header location i40e: Register a virtbus device to provide RDMA Documentation/driver-api/index.rst | 1 + Documentation/driver-api/virtual_bus.rst | 93 ++ MAINTAINERS | 1 + drivers/bus/Kconfig | 10 + drivers/bus/Makefile | 2 + drivers/bus/virtual_bus.c | 215 +++ drivers/infiniband/hw/i40iw/Makefile | 1 - drivers/infiniband/hw/i40iw/i40iw.h | 2 +- drivers/net/ethernet/intel/Kconfig | 2 + drivers/net/ethernet/intel/i40e/i40e.h | 2 +- drivers/net/ethernet/intel/i40e/i40e_client.c | 133 +- drivers/net/ethernet/intel/ice/Makefile | 1 + drivers/net/ethernet/intel/ice/ice.h | 14 + .../net/ethernet/intel/ice/ice_adminq_cmd.h | 33 + drivers/net/ethernet/intel/ice/ice_common.c | 206 ++- drivers/net/ethernet/intel/ice/ice_common.h | 9 + drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 68 + drivers/net/ethernet/intel/ice/ice_dcb_lib.h | 3 + .../net/ethernet/intel/ice/ice_hw_autogen.h | 1 + drivers/net/ethernet/intel/ice/ice_idc.c | 1344 +++++++++++++++++ drivers/net/ethernet/intel/ice/ice_idc_int.h | 105 ++ drivers/net/ethernet/intel/ice/ice_lib.c | 50 + drivers/net/ethernet/intel/ice/ice_lib.h | 4 + drivers/net/ethernet/intel/ice/ice_main.c | 105 +- drivers/net/ethernet/intel/ice/ice_sched.c | 69 +- drivers/net/ethernet/intel/ice/ice_switch.c | 27 + drivers/net/ethernet/intel/ice/ice_switch.h | 4 + drivers/net/ethernet/intel/ice/ice_type.h | 4 + .../net/ethernet/intel/ice/ice_virtchnl_pf.c | 59 +- include/linux/mod_devicetable.h | 8 + .../linux/net/intel}/i40e_client.h | 15 + include/linux/net/intel/iidc.h | 337 +++++ include/linux/virtual_bus.h | 62 + scripts/mod/devicetable-offsets.c | 3 + scripts/mod/file2alias.c | 7 + sound/soc/sof/Kconfig | 30 + sound/soc/sof/Makefile | 6 +- sound/soc/sof/core.c | 10 + sound/soc/sof/intel/Kconfig | 1 + sound/soc/sof/intel/apl.c | 26 + sound/soc/sof/intel/bdw.c | 25 + sound/soc/sof/intel/byt.c | 28 + sound/soc/sof/intel/cnl.c | 26 + sound/soc/sof/ops.h | 34 + sound/soc/sof/sof-client.c | 91 ++ sound/soc/sof/sof-client.h | 84 ++ sound/soc/sof/sof-ipc-test-client.c | 325 ++++ sound/soc/sof/sof-priv.h | 9 + 48 files changed, 3630 insertions(+), 65 deletions(-) create mode 100644 Documentation/driver-api/virtual_bus.rst create mode 100644 drivers/bus/virtual_bus.c create mode 100644 drivers/net/ethernet/intel/ice/ice_idc.c create mode 100644 drivers/net/ethernet/intel/ice/ice_idc_int.h rename {drivers/net/ethernet/intel/i40e => include/linux/net/intel}/i40e_client.h (94%) create mode 100644 include/linux/net/intel/iidc.h create mode 100644 include/linux/virtual_bus.h create mode 100644 sound/soc/sof/sof-client.c create mode 100644 sound/soc/sof/sof-client.h create mode 100644 sound/soc/sof/sof-ipc-test-client.c -- 2.26.2