On 08-04-24, 11:06, Lizhi Hou wrote:This is because the hardware is capable to process multiple vdesc at one kick off.
Hmmm, why is the vaddr passed like this, why not use slave_config forThe metadata is the device address the dma request will transfer+static void *qdma_get_metadata_ptr(struct dma_async_tx_descriptor *tx,Can you describe what metadata is being used here for?
+ size_t *payload_len, size_t *max_len)
+{
+ struct qdma_mm_vdesc *vdesc;
+
+ vdesc = container_of(tx, typeof(*vdesc), vdesc.tx);
+ if (payload_len)
+ *payload_len = sizeof(vdesc->dev_addr);
+ if (max_len)
+ *max_len = sizeof(vdesc->dev_addr);
+
+ return &vdesc->dev_addr;
data to / from. Please see the example usage here:
https://github.com/houlz0507/XRT-1/blob/qdma_v1_usage/src/runtime_src/core/pcie/driver/linux/xocl/subdev/qdma.c#L311
Before dmaengine_submit(), it specifies the device address.
this