• Tom Zanussi's avatar
    dmaengine: idxd: Add support for device/wq defaults · 979f6ded
    Tom Zanussi authored
    Add a load_device_defaults() function pointer to struct
    idxd_driver_data, which if defined, will be called when an idxd device
    is probed and will allow the idxd device to be configured with default
    values.
    
    The load_device_defaults() function is passed an idxd device to work
    with to set specific device attributes.
    
    Also add a load_device_defaults() implementation IAA devices; future
    patches would add default functions for other device types such as
    DSA.
    
    The way idxd device probing works, if the device configuration is
    valid at that point e.g. at least one workqueue and engine is properly
    configured then the device will be enabled and ready to go.
    
    The IAA implementation, idxd_load_iaa_device_defaults(), configures a
    single workqueue (wq0) for each device with the following default
    values:
    
          mode     	        "dedicated"
          threshold		0
          size		Total WQ Size from WQCAP
          priority		10
          type		IDXD_WQT_KERNEL
          group		0
          name              "iaa_crypto"
          driver_name       "crypto"
    
    Note that this now adds another configuration step for any users that
    want to configure their own devices/workqueus with something different
    in that they'll first need to disable (in the case of IAA) wq0 and the
    device itself before they can set their own attributes and re-enable,
    since they've been already been auto-enabled.  Note also that in order
    for the new configuration to be applied to the deflate-iaa crypto
    algorithm the iaa_crypto module needs to unregister the old version,
    which is accomplished by removing the iaa_crypto module, and
    re-registering it with the new configuration by reinserting the
    iaa_crypto module.
    Signed-off-by: default avatarTom Zanussi <tom.zanussi@linux.intel.com>
    Reviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    979f6ded
idxd.h 20.2 KB