浏览代码

iop_adma: document how to calculate the minimum descriptor pool size

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Dan Williams 17 年之前
父节点
当前提交
5eb907aaaf
共有 1 个文件被更改,包括 10 次插入1 次删除
  1. 10 1
      drivers/dma/iop-adma.c

+ 10 - 1
drivers/dma/iop-adma.c

@@ -450,7 +450,16 @@ iop_adma_tx_submit(struct dma_async_tx_descriptor *tx)
 static void iop_chan_start_null_memcpy(struct iop_adma_chan *iop_chan);
 static void iop_chan_start_null_memcpy(struct iop_adma_chan *iop_chan);
 static void iop_chan_start_null_xor(struct iop_adma_chan *iop_chan);
 static void iop_chan_start_null_xor(struct iop_adma_chan *iop_chan);
 
 
-/* returns the number of allocated descriptors */
+/**
+ * iop_adma_alloc_chan_resources -  returns the number of allocated descriptors
+ * @chan - allocate descriptor resources for this channel
+ * @client - current client requesting the channel be ready for requests
+ *
+ * Note: We keep the slots for 1 operation on iop_chan->chain at all times.  To
+ * avoid deadlock, via async_xor, num_descs_in_pool must at a minimum be
+ * greater than 2x the number slots needed to satisfy a device->max_xor
+ * request.
+ * */
 static int iop_adma_alloc_chan_resources(struct dma_chan *chan,
 static int iop_adma_alloc_chan_resources(struct dma_chan *chan,
 					 struct dma_client *client)
 					 struct dma_client *client)
 {
 {