aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2008-07-17 17:59:56 -0700
committerDan Williams <dan.j.williams@intel.com>2008-07-17 17:59:56 -0700
commit5eb907aaaf7a316a0097ff9f8c21bf9fc468a1f1 (patch)
tree33238b492dc0f823e59586ca2a2ec981c3ba9f74 /drivers/dma
parentc7141d005a19d2a0a316b3bf9c170d3bedf07bfd (diff)
downloadkernel_samsung_crespo-5eb907aaaf7a316a0097ff9f8c21bf9fc468a1f1.zip
kernel_samsung_crespo-5eb907aaaf7a316a0097ff9f8c21bf9fc468a1f1.tar.gz
kernel_samsung_crespo-5eb907aaaf7a316a0097ff9f8c21bf9fc468a1f1.tar.bz2
iop_adma: document how to calculate the minimum descriptor pool size
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/iop-adma.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c
index 8acbc3a..85bfeba 100644
--- a/drivers/dma/iop-adma.c
+++ b/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_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,
struct dma_client *client)
{