Vinod, Please consider this series for the 5.14 merge window. Thank you! The original dsa_bus_type did not use idiomatic mechanisms for attaching dsa-devices to dsa-drivers. Switch to the idiomatic style. Once this cleanup is in place it will ease the addition of the VFIO mdev driver as another dsa-driver. --- Dave Jiang (18): dmaengine: idxd: add driver register helper dmaengine: idxd: add driver name dmaengine: idxd: add 'struct idxd_dev' as wrapper for conf_dev dmaengine: idxd: remove IDXD_DEV_CONF_READY dmaengine: idxd: move wq_enable() to device.c dmaengine: idxd: move wq_disable() to device.c dmaengine: idxd: remove bus shutdown dmaengine: idxd: remove iax_bus_type prototype dmaengine: idxd: fix bus_probe() and bus_remove() for dsa_bus dmaengine: idxd: move probe() bits for idxd 'struct device' to device.c dmaengine: idxd: idxd: move remove() bits for idxd 'struct device' to device.c dmanegine: idxd: open code the dsa_drv registration dmaengine: idxd: add type to driver in order to allow device matching dmaengine: idxd: create idxd_device sub-driver dmaengine: idxd: create dmaengine driver for wq 'device' dmaengine: idxd: create user driver for wq 'device' dmaengine: dsa: move dsa_bus_type out of idxd driver to standalone dmaengine: idxd: move dsa_drv support to compatible mode drivers/dma/Kconfig | 21 ++ drivers/dma/Makefile | 2 +- drivers/dma/idxd/Makefile | 8 + drivers/dma/idxd/bus.c | 92 +++++++ drivers/dma/idxd/cdev.c | 65 ++++- drivers/dma/idxd/compat.c | 114 ++++++++ drivers/dma/idxd/device.c | 207 +++++++++++++- drivers/dma/idxd/dma.c | 82 +++++- drivers/dma/idxd/idxd.h | 129 +++++++-- drivers/dma/idxd/init.c | 132 ++++----- drivers/dma/idxd/irq.c | 2 +- drivers/dma/idxd/sysfs.c | 553 +++++++------------------------------- 12 files changed, 868 insertions(+), 539 deletions(-) create mode 100644 drivers/dma/idxd/bus.c create mode 100644 drivers/dma/idxd/compat.c --