On 31-07-23, 16:29, Tom Zanussi wrote: > Create a lightweight callback interface to allow idxd sub-drivers to > be notified when work sent to idxd wqs has completed. > > For a sub-driver to be notified of work completion, it needs to: > > - Set the descriptor's 'Request Completion Interrupt' > (IDXD_OP_FLAG_RCI) > > - Set the sub-driver desc_complete() callback when registering the > sub-driver e.g.: > > struct idxd_device_driver my_drv = { > .probe = my_probe, > .desc_complete = my_complete, > } > > - Set the sub-driver-specific context in the sub-driver's descriptor > e.g: > > idxd_desc->crypto.req = req; > idxd_desc->crypto.tfm = tfm; > idxd_desc->crypto.src_addr = src_addr; > idxd_desc->crypto.dst_addr = dst_addr; > > When the work completes and the completion irq fires, idxd will invoke > the desc_complete() callback with pointers to the descriptor, context, > and completion_type. Acked-by: Vinod Koul <vkoul@xxxxxxxxxx> -- ~Vinod