<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/crypto/async_tx/async_tx.c, branch linux-4.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.1.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.1.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2013-10-25T05:46:18Z</updated>
<entry>
<title>async_tx: use DMA_COMPLETE for dma completion status</title>
<updated>2013-10-25T05:46:18Z</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2013-10-16T15:35:50Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=157efa8cfa783aaceaeafbc75f536ed7d32f5dae'/>
<id>urn:sha1:157efa8cfa783aaceaeafbc75f536ed7d32f5dae</id>
<content type='text'>
Acked-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
</entry>
<entry>
<title>async_tx: fix checking of dma_wait_for_async_tx() return value</title>
<updated>2013-01-08T06:05:12Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>b.zolnierkie@samsung.com</email>
</author>
<published>2012-11-08T10:03:16Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=7d283397ade3c9e51de644676a6593e1f724ac00'/>
<id>urn:sha1:7d283397ade3c9e51de644676a6593e1f724ac00</id>
<content type='text'>
dma_wait_for_async_tx() can also return DMA_PAUSED (which
should be considered as error).

Cc: Vinod Koul &lt;vinod.koul@intel.com&gt;
Cc: Dan Williams &lt;djbw@fb.com&gt;
Cc: Tomasz Figa &lt;t.figa@samsung.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;b.zolnierkie@samsung.com&gt;
Signed-off-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Signed-off-by: Dan Williams &lt;djbw@fb.com&gt;
</content>
</entry>
<entry>
<title>crypto: add module.h to those files that are explicitly using it</title>
<updated>2011-10-31T23:31:11Z</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2011-05-27T18:41:48Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4bb33cc8901898af80d5d4a9917067aa0839922a'/>
<id>urn:sha1:4bb33cc8901898af80d5d4a9917067aa0839922a</id>
<content type='text'>
Part of the include cleanups means that the implicit
inclusion of module.h via device.h is going away.  So
fix things up in advance.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>async_tx: trim dma_async_tx_descriptor in 'no channel switch' case</title>
<updated>2010-05-17T23:24:16Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2010-05-17T23:24:16Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=caa20d974c86af496b419eef70010e63b7fab7ac'/>
<id>urn:sha1:caa20d974c86af496b419eef70010e63b7fab7ac</id>
<content type='text'>
Saves 24 bytes per descriptor (64-bit) when the channel-switching
capabilities of async_tx are not required.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
</entry>
<entry>
<title>dmaengine, async_tx: add a "no channel switch" allocator</title>
<updated>2009-09-09T00:42:51Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2009-09-09T00:42:51Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=138f4c359d23d2ec38d18bd70dd9613ae515fe93'/>
<id>urn:sha1:138f4c359d23d2ec38d18bd70dd9613ae515fe93</id>
<content type='text'>
Channel switching is problematic for some dmaengine drivers as the
architecture precludes separating the -&gt;prep from -&gt;submit.  In these
cases the driver can select ASYNC_TX_DISABLE_CHANNEL_SWITCH to modify
the async_tx allocator to only return channels that support all of the
required asynchronous operations.

For example MD_RAID456=y selects support for asynchronous xor, xor
validate, pq, pq validate, and memcpy.  When
ASYNC_TX_DISABLE_CHANNEL_SWITCH=y any channel with all these
capabilities is marked DMA_ASYNC_TX allowing async_tx_find_channel() to
quickly locate compatible channels with the guarantee that dependency
chains will remain on one channel.  When
ASYNC_TX_DISABLE_CHANNEL_SWITCH=n async_tx_find_channel() may select
channels that lead to operation chains that need to cross channel
boundaries using the async_tx channel switch capability.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
</entry>
<entry>
<title>async_tx: remove walk of tx-&gt;parent chain in dma_wait_for_async_tx</title>
<updated>2009-08-30T02:09:27Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2009-07-14T19:19:02Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=95475e57113c66aac7583925736ed2e2d58c990d'/>
<id>urn:sha1:95475e57113c66aac7583925736ed2e2d58c990d</id>
<content type='text'>
We currently walk the parent chain when waiting for a given tx to
complete however this walk may race with the driver cleanup routine.
The routines in async_raid6_recov.c may fall back to the synchronous
path at any point so we need to be prepared to call async_tx_quiesce()
(which calls  dma_wait_for_async_tx).  To remove the -&gt;parent walk we
guarantee that every time a dependency is attached -&gt;issue_pending() is
invoked, then we can simply poll the initial descriptor until
completion.

This also allows for a lighter weight 'issue pending' implementation as
there is no longer a requirement to iterate through all the channels'
-&gt;issue_pending() routines as long as operations have been submitted in
an ordered chain.  async_tx_issue_pending() is added for this case.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;

</content>
</entry>
<entry>
<title>async_tx: kill needless module_{init|exit}</title>
<updated>2009-08-30T02:09:26Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2009-08-30T02:09:26Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=af1f951eb6ef27b01cbfb3f6c21b770af4368a6d'/>
<id>urn:sha1:af1f951eb6ef27b01cbfb3f6c21b770af4368a6d</id>
<content type='text'>
If module_init and module_exit are nops then neither need to be defined.

[ Impact: pure cleanup ]

Reviewed-by: Andre Noll &lt;maan@systemlinux.org&gt;
Acked-by: Maciej Sosnowski &lt;maciej.sosnowski@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;

</content>
</entry>
<entry>
<title>async_tx: structify submission arguments, add scribble</title>
<updated>2009-06-03T21:07:35Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2009-06-03T18:43:59Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a08abd8ca890a377521d65d493d174bebcaf694b'/>
<id>urn:sha1:a08abd8ca890a377521d65d493d174bebcaf694b</id>
<content type='text'>
Prepare the api for the arrival of a new parameter, 'scribble'.  This
will allow callers to identify scratchpad memory for dma address or page
address conversions.  As this adds yet another parameter, take this
opportunity to convert the common submission parameters (flags,
dependency, callback, and callback argument) into an object that is
passed by reference.

Also, take this opportunity to fix up the kerneldoc and add notes about
the relevant ASYNC_TX_* flags for each routine.

[ Impact: moves api pass-by-value parameters to a pass-by-reference struct ]

Signed-off-by: Andre Noll &lt;maan@systemlinux.org&gt;
Acked-by: Maciej Sosnowski &lt;maciej.sosnowski@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;

</content>
</entry>
<entry>
<title>async_tx: kill ASYNC_TX_DEP_ACK flag</title>
<updated>2009-06-03T21:07:34Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2009-04-09T23:16:18Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=88ba2aa586c874681c072101287e15d40de7e6e2'/>
<id>urn:sha1:88ba2aa586c874681c072101287e15d40de7e6e2</id>
<content type='text'>
In support of inter-channel chaining async_tx utilizes an ack flag to
gate whether a dependent operation can be chained to another.  While the
flag is not set the chain can be considered open for appending.  Setting
the ack flag closes the chain and flags the descriptor for garbage
collection.  The ASYNC_TX_DEP_ACK flag essentially means "close the
chain after adding this dependency".  Since each operation can only have
one child the api now implicitly sets the ack flag at dependency
submission time.  This removes an unnecessary management burden from
clients of the api.

[ Impact: clean up and enforce one dependency per operation ]

Reviewed-by: Andre Noll &lt;maan@systemlinux.org&gt;
Acked-by: Maciej Sosnowski &lt;maciej.sosnowski@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;

</content>
</entry>
<entry>
<title>dmaengine: allow dma support for async_tx to be toggled</title>
<updated>2009-03-25T16:13:25Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2009-03-25T16:13:25Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=729b5d1b8ec72c28e99840b3f300ba67726e3ab9'/>
<id>urn:sha1:729b5d1b8ec72c28e99840b3f300ba67726e3ab9</id>
<content type='text'>
Provide a config option for blocking the allocation of dma channels to
the async_tx api.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
</entry>
</feed>
