1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>spi_async_locked</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Device Drivers"><link rel="up" href="spi.html" title="Chapter 9. Serial Peripheral Interface (SPI)"><link rel="prev" href="API-spi-async.html" title="spi_async"><link rel="next" href="API-spi-sync.html" title="spi_sync"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">spi_async_locked</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-spi-async.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Serial Peripheral Interface (SPI)</th><td width="20%" align="right"> <a accesskey="n" href="API-spi-sync.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-spi-async-locked"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>spi_async_locked — 2 version of spi_async with exclusive bus usage 3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">spi_async_locked </b>(</code></td><td>struct spi_device * <var class="pdparam">spi</var>, </td></tr><tr><td> </td><td>struct spi_message * <var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idp1115161468"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>spi</code></em></span></dt><dd><p> 4 device with which data will be exchanged 5 </p></dd><dt><span class="term"><em class="parameter"><code>message</code></em></span></dt><dd><p> 6 describes the data transfers, including completion callback 7 </p></dd></dl></div></div><div class="refsect1"><a name="idp1115164148"></a><h2>Context</h2><p> 8 any (irqs may be blocked, etc) 9</p></div><div class="refsect1"><a name="idp1115164780"></a><h2>Description</h2><p> 10 This call may be used in_irq and other contexts which can't sleep, 11 as well as from task contexts which can sleep. 12 </p><p> 13 14 The completion callback is invoked in a context which can't sleep. 15 Before that invocation, the value of message->status is undefined. 16 When the callback is issued, message->status holds either zero (to 17 indicate complete success) or a negative error code. After that 18 callback returns, the driver which issued the transfer request may 19 deallocate the associated memory; it's no longer in use by any SPI 20 core or controller driver code. 21 </p><p> 22 23 Note that although all messages to a spi_device are handled in 24 FIFO order, messages may go to different devices in other orders. 25 Some device might be higher priority, or have various <span class="quote">“<span class="quote">hard</span>”</span> access 26 time requirements, for example. 27 </p><p> 28 29 On detection of any fault during the transfer, processing of 30 the entire message is aborted, and the device is deselected. 31 Until returning from the associated message completion callback, 32 no other spi_message queued to that device will be processed. 33 (This rule applies equally to all the synchronous transfer calls, 34 which are wrappers around this core asynchronous primitive.) 35</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-spi-async.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spi.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-spi-sync.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">spi_async</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">spi_sync</span></td></tr></table></div></body></html> 36