dmaengine: idxd: fix setting up priv mode for dwq
authorDave Jiang <dave.jiang@intel.com>
Thu, 19 Aug 2021 16:34:06 +0000 (09:34 -0700)
committerVinod Koul <vkoul@kernel.org>
Sun, 29 Aug 2021 13:44:20 +0000 (19:14 +0530)
commitd8071323c5632bdf0a8ef9b9e5662fac43649f9d
tree4184d8f8eda5c2830302812456daf79d3ba233ba
parentaac6c0f90799d66b8989be1e056408f33fd99fe6
dmaengine: idxd: fix setting up priv mode for dwq

DSA spec says WQ priv bit is 0 if the Privileged Mode Enable field of the
PCI Express PASID capability is 0 and pasid is enabled. Make sure that the
WQCFG priv field is set correctly according to usage type. Reject config if
setting up kernel WQ type and no support. Also add the correct priv setup
for a descriptor.

Fixes: 484f910e93b4 ("dmaengine: idxd: fix wq config registers offset programming")
Cc: Ramesh Thomas <ramesh.thomas@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/162939084657.903168.14160019185148244596.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/Kconfig
drivers/dma/idxd/device.c
drivers/dma/idxd/dma.c
include/uapi/linux/idxd.h