1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Linux Device Drivers</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Device Drivers"><link rel="next" href="Basics.html" title="Chapter 1. Driver Basics"></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">Linux Device Drivers</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="Basics.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="LinuxDriversAPI"></a>Linux Device Drivers</h1></div><div><div class="legalnotice"><a name="idp1105183116"></a><p> 2 This documentation is free software; you can redistribute 3 it and/or modify it under the terms of the GNU General Public 4 License as published by the Free Software Foundation; either 5 version 2 of the License, or (at your option) any later 6 version. 7 </p><p> 8 This program is distributed in the hope that it will be 9 useful, but WITHOUT ANY WARRANTY; without even the implied 10 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11 See the GNU General Public License for more details. 12 </p><p> 13 You should have received a copy of the GNU General Public 14 License along with this program; if not, write to the Free 15 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 16 MA 02111-1307 USA 17 </p><p> 18 For more details see the file COPYING in the source 19 distribution of Linux. 20 </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="Basics.html">1. Driver Basics</a></span></dt><dd><dl><dt><span class="sect1"><a href="Basics.html#idp1105204404">Driver Entry and Exit points</a></span></dt><dt><span class="sect1"><a href="ch01s02.html">Atomic and pointer manipulation</a></span></dt><dt><span class="sect1"><a href="ch01s03.html">Delaying, scheduling, and timer routines</a></span></dt><dt><span class="sect1"><a href="ch01s04.html">Wait queues and Wake events</a></span></dt><dt><span class="sect1"><a href="ch01s05.html">High-resolution timers</a></span></dt><dt><span class="sect1"><a href="ch01s06.html">Workqueues and Kevents</a></span></dt><dt><span class="sect1"><a href="ch01s07.html">Internal Functions</a></span></dt><dt><span class="sect1"><a href="ch01s08.html">Kernel objects manipulation</a></span></dt><dt><span class="sect1"><a href="ch01s09.html">Kernel utility functions</a></span></dt><dt><span class="sect1"><a href="ch01s10.html">Device Resource Management</a></span></dt></dl></dd><dt><span class="chapter"><a href="devdrivers.html">2. Device drivers infrastructure</a></span></dt><dd><dl><dt><span class="sect1"><a href="devdrivers.html#idp1109043876">The Basic Device Driver-Model Structures </a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Device Drivers Base</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">Device Drivers DMA Management</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">Device Drivers Power Management</a></span></dt><dt><span class="sect1"><a href="ch02s05.html">Device Drivers ACPI Support</a></span></dt><dt><span class="sect1"><a href="ch02s06.html">Device drivers PnP support</a></span></dt><dt><span class="sect1"><a href="ch02s07.html">Userspace IO devices</a></span></dt></dl></dd><dt><span class="chapter"><a href="parportdev.html">3. Parallel Port Devices</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-parport-yield.html"><span class="phrase">parport_yield</span></a></span><span class="refpurpose"> — 21 relinquish a parallel port temporarily 22 </span></dt><dt><span class="refentrytitle"><a href="API-parport-yield-blocking.html"><span class="phrase">parport_yield_blocking</span></a></span><span class="refpurpose"> — 23 relinquish a parallel port temporarily 24 </span></dt><dt><span class="refentrytitle"><a href="API-parport-wait-event.html"><span class="phrase">parport_wait_event</span></a></span><span class="refpurpose"> — 25 wait for an event on a parallel port 26 </span></dt><dt><span class="refentrytitle"><a href="API-parport-wait-peripheral.html"><span class="phrase">parport_wait_peripheral</span></a></span><span class="refpurpose"> — 27 wait for status lines to change in 35ms 28 </span></dt><dt><span class="refentrytitle"><a href="API-parport-negotiate.html"><span class="phrase">parport_negotiate</span></a></span><span class="refpurpose"> — 29 negotiate an IEEE 1284 mode 30 </span></dt><dt><span class="refentrytitle"><a href="API-parport-write.html"><span class="phrase">parport_write</span></a></span><span class="refpurpose"> — 31 write a block of data to a parallel port 32 </span></dt><dt><span class="refentrytitle"><a href="API-parport-read.html"><span class="phrase">parport_read</span></a></span><span class="refpurpose"> — 33 read a block of data from a parallel port 34 </span></dt><dt><span class="refentrytitle"><a href="API-parport-set-timeout.html"><span class="phrase">parport_set_timeout</span></a></span><span class="refpurpose"> — 35 set the inactivity timeout for a device 36 </span></dt><dt><span class="refentrytitle"><a href="API-parport-register-driver.html"><span class="phrase">parport_register_driver</span></a></span><span class="refpurpose"> — 37 register a parallel port device driver 38 </span></dt><dt><span class="refentrytitle"><a href="API-parport-unregister-driver.html"><span class="phrase">parport_unregister_driver</span></a></span><span class="refpurpose"> — 39 deregister a parallel port device driver 40 </span></dt><dt><span class="refentrytitle"><a href="API-parport-get-port.html"><span class="phrase">parport_get_port</span></a></span><span class="refpurpose"> — 41 increment a port's reference count 42 </span></dt><dt><span class="refentrytitle"><a href="API-parport-put-port.html"><span class="phrase">parport_put_port</span></a></span><span class="refpurpose"> — 43 decrement a port's reference count 44 </span></dt><dt><span class="refentrytitle"><a href="API-parport-register-port.html"><span class="phrase">parport_register_port</span></a></span><span class="refpurpose"> — 45 register a parallel port 46 </span></dt><dt><span class="refentrytitle"><a href="API-parport-announce-port.html"><span class="phrase">parport_announce_port</span></a></span><span class="refpurpose"> — 47 tell device drivers about a parallel port 48 </span></dt><dt><span class="refentrytitle"><a href="API-parport-remove-port.html"><span class="phrase">parport_remove_port</span></a></span><span class="refpurpose"> — 49 deregister a parallel port 50 </span></dt><dt><span class="refentrytitle"><a href="API-parport-register-device.html"><span class="phrase">parport_register_device</span></a></span><span class="refpurpose"> — 51 register a device on a parallel port 52 </span></dt><dt><span class="refentrytitle"><a href="API-parport-unregister-device.html"><span class="phrase">parport_unregister_device</span></a></span><span class="refpurpose"> — 53 deregister a device on a parallel port 54 </span></dt><dt><span class="refentrytitle"><a href="API-parport-find-number.html"><span class="phrase">parport_find_number</span></a></span><span class="refpurpose"> — 55 find a parallel port by number 56 </span></dt><dt><span class="refentrytitle"><a href="API-parport-find-base.html"><span class="phrase">parport_find_base</span></a></span><span class="refpurpose"> — 57 find a parallel port by base address 58 </span></dt><dt><span class="refentrytitle"><a href="API-parport-claim.html"><span class="phrase">parport_claim</span></a></span><span class="refpurpose"> — 59 claim access to a parallel port device 60 </span></dt><dt><span class="refentrytitle"><a href="API-parport-claim-or-block.html"><span class="phrase">parport_claim_or_block</span></a></span><span class="refpurpose"> — 61 claim access to a parallel port device 62 </span></dt><dt><span class="refentrytitle"><a href="API-parport-release.html"><span class="phrase">parport_release</span></a></span><span class="refpurpose"> — 63 give up access to a parallel port device 64 </span></dt><dt><span class="refentrytitle"><a href="API-parport-open.html"><span class="phrase">parport_open</span></a></span><span class="refpurpose"> — 65 find a device by canonical device number 66 </span></dt><dt><span class="refentrytitle"><a href="API-parport-close.html"><span class="phrase">parport_close</span></a></span><span class="refpurpose"> — 67 close a device opened with <code class="function">parport_open</code> 68 </span></dt></dl></dd><dt><span class="chapter"><a href="message_devices.html">4. Message-based devices</a></span></dt><dd><dl><dt><span class="sect1"><a href="message_devices.html#idp1111130356">Fusion message devices</a></span></dt></dl></dd><dt><span class="chapter"><a href="snddev.html">5. Sound Devices</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-snd-printk.html"><span class="phrase">snd_printk</span></a></span><span class="refpurpose"> — 69 printk wrapper 70 </span></dt><dt><span class="refentrytitle"><a href="API-snd-printd.html"><span class="phrase">snd_printd</span></a></span><span class="refpurpose"> — 71 debug printk 72 </span></dt><dt><span class="refentrytitle"><a href="API-snd-BUG.html"><span class="phrase">snd_BUG</span></a></span><span class="refpurpose"> — 73 give a BUG warning message and stack trace 74 </span></dt><dt><span class="refentrytitle"><a href="API-snd-printd-ratelimit.html"><span class="phrase">snd_printd_ratelimit</span></a></span><span class="refpurpose"> — 75 </span></dt><dt><span class="refentrytitle"><a href="API-snd-BUG-ON.html"><span class="phrase">snd_BUG_ON</span></a></span><span class="refpurpose"> — 76 debugging check macro 77 </span></dt><dt><span class="refentrytitle"><a href="API-snd-printdd.html"><span class="phrase">snd_printdd</span></a></span><span class="refpurpose"> — 78 debug printk 79 </span></dt><dt><span class="refentrytitle"><a href="API-register-sound-special-device.html"><span class="phrase">register_sound_special_device</span></a></span><span class="refpurpose"> — 80 register a special sound node 81 </span></dt><dt><span class="refentrytitle"><a href="API-register-sound-mixer.html"><span class="phrase">register_sound_mixer</span></a></span><span class="refpurpose"> — 82 register a mixer device 83 </span></dt><dt><span class="refentrytitle"><a href="API-register-sound-midi.html"><span class="phrase">register_sound_midi</span></a></span><span class="refpurpose"> — 84 register a midi device 85 </span></dt><dt><span class="refentrytitle"><a href="API-register-sound-dsp.html"><span class="phrase">register_sound_dsp</span></a></span><span class="refpurpose"> — 86 register a DSP device 87 </span></dt><dt><span class="refentrytitle"><a href="API-unregister-sound-special.html"><span class="phrase">unregister_sound_special</span></a></span><span class="refpurpose"> — 88 unregister a special sound device 89 </span></dt><dt><span class="refentrytitle"><a href="API-unregister-sound-mixer.html"><span class="phrase">unregister_sound_mixer</span></a></span><span class="refpurpose"> — 90 unregister a mixer 91 </span></dt><dt><span class="refentrytitle"><a href="API-unregister-sound-midi.html"><span class="phrase">unregister_sound_midi</span></a></span><span class="refpurpose"> — 92 unregister a midi device 93 </span></dt><dt><span class="refentrytitle"><a href="API-unregister-sound-dsp.html"><span class="phrase">unregister_sound_dsp</span></a></span><span class="refpurpose"> — 94 unregister a DSP device 95 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stream-linked.html"><span class="phrase">snd_pcm_stream_linked</span></a></span><span class="refpurpose"> — 96 Check whether the substream is linked with others 97 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stream-lock-irqsave.html"><span class="phrase">snd_pcm_stream_lock_irqsave</span></a></span><span class="refpurpose"> — 98 Lock the PCM stream 99 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-group-for-each-entry.html"><span class="phrase">snd_pcm_group_for_each_entry</span></a></span><span class="refpurpose"> — 100 iterate over the linked substreams 101 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-running.html"><span class="phrase">snd_pcm_running</span></a></span><span class="refpurpose"> — 102 Check whether the substream is in a running state 103 </span></dt><dt><span class="refentrytitle"><a href="API-bytes-to-samples.html"><span class="phrase">bytes_to_samples</span></a></span><span class="refpurpose"> — 104 Unit conversion of the size from bytes to samples 105 </span></dt><dt><span class="refentrytitle"><a href="API-bytes-to-frames.html"><span class="phrase">bytes_to_frames</span></a></span><span class="refpurpose"> — 106 Unit conversion of the size from bytes to frames 107 </span></dt><dt><span class="refentrytitle"><a href="API-samples-to-bytes.html"><span class="phrase">samples_to_bytes</span></a></span><span class="refpurpose"> — 108 Unit conversion of the size from samples to bytes 109 </span></dt><dt><span class="refentrytitle"><a href="API-frames-to-bytes.html"><span class="phrase">frames_to_bytes</span></a></span><span class="refpurpose"> — 110 Unit conversion of the size from frames to bytes 111 </span></dt><dt><span class="refentrytitle"><a href="API-frame-aligned.html"><span class="phrase">frame_aligned</span></a></span><span class="refpurpose"> — 112 Check whether the byte size is aligned to frames 113 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-buffer-bytes.html"><span class="phrase">snd_pcm_lib_buffer_bytes</span></a></span><span class="refpurpose"> — 114 Get the buffer size of the current PCM in bytes 115 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-period-bytes.html"><span class="phrase">snd_pcm_lib_period_bytes</span></a></span><span class="refpurpose"> — 116 Get the period size of the current PCM in bytes 117 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-playback-avail.html"><span class="phrase">snd_pcm_playback_avail</span></a></span><span class="refpurpose"> — 118 Get the available (writable) space for playback 119 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-capture-avail.html"><span class="phrase">snd_pcm_capture_avail</span></a></span><span class="refpurpose"> — 120 Get the available (readable) space for capture 121 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-playback-hw-avail.html"><span class="phrase">snd_pcm_playback_hw_avail</span></a></span><span class="refpurpose"> — 122 Get the queued space for playback 123 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-capture-hw-avail.html"><span class="phrase">snd_pcm_capture_hw_avail</span></a></span><span class="refpurpose"> — 124 Get the free space for capture 125 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-playback-ready.html"><span class="phrase">snd_pcm_playback_ready</span></a></span><span class="refpurpose"> — 126 check whether the playback buffer is available 127 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-capture-ready.html"><span class="phrase">snd_pcm_capture_ready</span></a></span><span class="refpurpose"> — 128 check whether the capture buffer is available 129 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-playback-data.html"><span class="phrase">snd_pcm_playback_data</span></a></span><span class="refpurpose"> — 130 check whether any data exists on the playback buffer 131 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-playback-empty.html"><span class="phrase">snd_pcm_playback_empty</span></a></span><span class="refpurpose"> — 132 check whether the playback buffer is empty 133 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-capture-empty.html"><span class="phrase">snd_pcm_capture_empty</span></a></span><span class="refpurpose"> — 134 check whether the capture buffer is empty 135 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-trigger-done.html"><span class="phrase">snd_pcm_trigger_done</span></a></span><span class="refpurpose"> — 136 Mark the master substream 137 </span></dt><dt><span class="refentrytitle"><a href="API-params-channels.html"><span class="phrase">params_channels</span></a></span><span class="refpurpose"> — 138 Get the number of channels from the hw params 139 </span></dt><dt><span class="refentrytitle"><a href="API-params-rate.html"><span class="phrase">params_rate</span></a></span><span class="refpurpose"> — 140 Get the sample rate from the hw params 141 </span></dt><dt><span class="refentrytitle"><a href="API-params-period-size.html"><span class="phrase">params_period_size</span></a></span><span class="refpurpose"> — 142 Get the period size (in frames) from the hw params 143 </span></dt><dt><span class="refentrytitle"><a href="API-params-periods.html"><span class="phrase">params_periods</span></a></span><span class="refpurpose"> — 144 Get the number of periods from the hw params 145 </span></dt><dt><span class="refentrytitle"><a href="API-params-buffer-size.html"><span class="phrase">params_buffer_size</span></a></span><span class="refpurpose"> — 146 Get the buffer size (in frames) from the hw params 147 </span></dt><dt><span class="refentrytitle"><a href="API-params-buffer-bytes.html"><span class="phrase">params_buffer_bytes</span></a></span><span class="refpurpose"> — 148 Get the buffer size (in bytes) from the hw params 149 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-format-cpu-endian.html"><span class="phrase">snd_pcm_format_cpu_endian</span></a></span><span class="refpurpose"> — 150 Check the PCM format is CPU-endian 151 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-set-runtime-buffer.html"><span class="phrase">snd_pcm_set_runtime_buffer</span></a></span><span class="refpurpose"> — 152 Set the PCM runtime buffer 153 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-gettime.html"><span class="phrase">snd_pcm_gettime</span></a></span><span class="refpurpose"> — 154 Fill the timespec depending on the timestamp mode 155 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-alloc-vmalloc-buffer.html"><span class="phrase">snd_pcm_lib_alloc_vmalloc_buffer</span></a></span><span class="refpurpose"> — 156 allocate virtual DMA buffer 157 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-alloc-vmalloc-32-buffer.html"><span class="phrase">snd_pcm_lib_alloc_vmalloc_32_buffer</span></a></span><span class="refpurpose"> — 158 allocate 32-bit-addressable buffer 159 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-sgbuf-get-addr.html"><span class="phrase">snd_pcm_sgbuf_get_addr</span></a></span><span class="refpurpose"> — 160 Get the DMA address at the corresponding offset 161 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-sgbuf-get-ptr.html"><span class="phrase">snd_pcm_sgbuf_get_ptr</span></a></span><span class="refpurpose"> — 162 Get the virtual address at the corresponding offset 163 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-sgbuf-get-chunk-size.html"><span class="phrase">snd_pcm_sgbuf_get_chunk_size</span></a></span><span class="refpurpose"> — 164 Compute the max size that fits within the contig. page from the given size 165 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-mmap-data-open.html"><span class="phrase">snd_pcm_mmap_data_open</span></a></span><span class="refpurpose"> — 166 increase the mmap counter 167 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-mmap-data-close.html"><span class="phrase">snd_pcm_mmap_data_close</span></a></span><span class="refpurpose"> — 168 decrease the mmap counter 169 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-limit-isa-dma-size.html"><span class="phrase">snd_pcm_limit_isa_dma_size</span></a></span><span class="refpurpose"> — 170 Get the max size fitting with ISA DMA transfer 171 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stream-str.html"><span class="phrase">snd_pcm_stream_str</span></a></span><span class="refpurpose"> — 172 Get a string naming the direction of a stream 173 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-chmap-substream.html"><span class="phrase">snd_pcm_chmap_substream</span></a></span><span class="refpurpose"> — 174 get the PCM substream assigned to the given chmap info 175 </span></dt><dt><span class="refentrytitle"><a href="API-pcm-format-to-bits.html"><span class="phrase">pcm_format_to_bits</span></a></span><span class="refpurpose"> — 176 Strong-typed conversion of pcm_format to bitwise 177 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-format-name.html"><span class="phrase">snd_pcm_format_name</span></a></span><span class="refpurpose"> — 178 Return a name string for the given PCM format 179 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-new-stream.html"><span class="phrase">snd_pcm_new_stream</span></a></span><span class="refpurpose"> — 180 create a new PCM stream 181 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-new.html"><span class="phrase">snd_pcm_new</span></a></span><span class="refpurpose"> — 182 create a new PCM instance 183 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-new-internal.html"><span class="phrase">snd_pcm_new_internal</span></a></span><span class="refpurpose"> — 184 create a new internal PCM instance 185 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-notify.html"><span class="phrase">snd_pcm_notify</span></a></span><span class="refpurpose"> — 186 Add/remove the notify list 187 </span></dt><dt><span class="refentrytitle"><a href="API-snd-device-new.html"><span class="phrase">snd_device_new</span></a></span><span class="refpurpose"> — 188 create an ALSA device component 189 </span></dt><dt><span class="refentrytitle"><a href="API-snd-device-disconnect.html"><span class="phrase">snd_device_disconnect</span></a></span><span class="refpurpose"> — 190 disconnect the device 191 </span></dt><dt><span class="refentrytitle"><a href="API-snd-device-free.html"><span class="phrase">snd_device_free</span></a></span><span class="refpurpose"> — 192 release the device from the card 193 </span></dt><dt><span class="refentrytitle"><a href="API-snd-device-register.html"><span class="phrase">snd_device_register</span></a></span><span class="refpurpose"> — 194 register the device 195 </span></dt><dt><span class="refentrytitle"><a href="API-snd-iprintf.html"><span class="phrase">snd_iprintf</span></a></span><span class="refpurpose"> — 196 printf on the procfs buffer 197 </span></dt><dt><span class="refentrytitle"><a href="API-snd-info-get-line.html"><span class="phrase">snd_info_get_line</span></a></span><span class="refpurpose"> — 198 read one line from the procfs buffer 199 </span></dt><dt><span class="refentrytitle"><a href="API-snd-info-get-str.html"><span class="phrase">snd_info_get_str</span></a></span><span class="refpurpose"> — 200 parse a string token 201 </span></dt><dt><span class="refentrytitle"><a href="API-snd-info-create-module-entry.html"><span class="phrase">snd_info_create_module_entry</span></a></span><span class="refpurpose"> — 202 create an info entry for the given module 203 </span></dt><dt><span class="refentrytitle"><a href="API-snd-info-create-card-entry.html"><span class="phrase">snd_info_create_card_entry</span></a></span><span class="refpurpose"> — 204 create an info entry for the given card 205 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-proc-new.html"><span class="phrase">snd_card_proc_new</span></a></span><span class="refpurpose"> — 206 create an info entry for the given card 207 </span></dt><dt><span class="refentrytitle"><a href="API-snd-info-free-entry.html"><span class="phrase">snd_info_free_entry</span></a></span><span class="refpurpose"> — 208 release the info entry 209 </span></dt><dt><span class="refentrytitle"><a href="API-snd-info-register.html"><span class="phrase">snd_info_register</span></a></span><span class="refpurpose"> — 210 register the info entry 211 </span></dt><dt><span class="refentrytitle"><a href="API-snd-rawmidi-receive.html"><span class="phrase">snd_rawmidi_receive</span></a></span><span class="refpurpose"> — 212 receive the input data from the device 213 </span></dt><dt><span class="refentrytitle"><a href="API-snd-rawmidi-transmit-empty.html"><span class="phrase">snd_rawmidi_transmit_empty</span></a></span><span class="refpurpose"> — 214 check whether the output buffer is empty 215 </span></dt><dt><span class="refentrytitle"><a href="API---snd-rawmidi-transmit-peek.html"><span class="phrase">__snd_rawmidi_transmit_peek</span></a></span><span class="refpurpose"> — 216 copy data from the internal buffer 217 </span></dt><dt><span class="refentrytitle"><a href="API-snd-rawmidi-transmit-peek.html"><span class="phrase">snd_rawmidi_transmit_peek</span></a></span><span class="refpurpose"> — 218 copy data from the internal buffer 219 </span></dt><dt><span class="refentrytitle"><a href="API---snd-rawmidi-transmit-ack.html"><span class="phrase">__snd_rawmidi_transmit_ack</span></a></span><span class="refpurpose"> — 220 acknowledge the transmission 221 </span></dt><dt><span class="refentrytitle"><a href="API-snd-rawmidi-transmit-ack.html"><span class="phrase">snd_rawmidi_transmit_ack</span></a></span><span class="refpurpose"> — 222 acknowledge the transmission 223 </span></dt><dt><span class="refentrytitle"><a href="API-snd-rawmidi-transmit.html"><span class="phrase">snd_rawmidi_transmit</span></a></span><span class="refpurpose"> — 224 copy from the buffer to the device 225 </span></dt><dt><span class="refentrytitle"><a href="API-snd-rawmidi-new.html"><span class="phrase">snd_rawmidi_new</span></a></span><span class="refpurpose"> — 226 create a rawmidi instance 227 </span></dt><dt><span class="refentrytitle"><a href="API-snd-rawmidi-set-ops.html"><span class="phrase">snd_rawmidi_set_ops</span></a></span><span class="refpurpose"> — 228 set the rawmidi operators 229 </span></dt><dt><span class="refentrytitle"><a href="API-snd-request-card.html"><span class="phrase">snd_request_card</span></a></span><span class="refpurpose"> — 230 try to load the card module 231 </span></dt><dt><span class="refentrytitle"><a href="API-snd-lookup-minor-data.html"><span class="phrase">snd_lookup_minor_data</span></a></span><span class="refpurpose"> — 232 get user data of a registered device 233 </span></dt><dt><span class="refentrytitle"><a href="API-snd-register-device.html"><span class="phrase">snd_register_device</span></a></span><span class="refpurpose"> — 234 Register the ALSA device file for the card 235 </span></dt><dt><span class="refentrytitle"><a href="API-snd-unregister-device.html"><span class="phrase">snd_unregister_device</span></a></span><span class="refpurpose"> — 236 unregister the device on the given card 237 </span></dt><dt><span class="refentrytitle"><a href="API-copy-to-user-fromio.html"><span class="phrase">copy_to_user_fromio</span></a></span><span class="refpurpose"> — 238 copy data from mmio-space to user-space 239 </span></dt><dt><span class="refentrytitle"><a href="API-copy-from-user-toio.html"><span class="phrase">copy_from_user_toio</span></a></span><span class="refpurpose"> — 240 copy data from user-space to mmio-space 241 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-preallocate-free-for-all.html"><span class="phrase">snd_pcm_lib_preallocate_free_for_all</span></a></span><span class="refpurpose"> — 242 release all pre-allocated buffers on the pcm 243 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-preallocate-pages.html"><span class="phrase">snd_pcm_lib_preallocate_pages</span></a></span><span class="refpurpose"> — 244 pre-allocation for the given DMA type 245 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-preallocate-pages-for-all.html"><span class="phrase">snd_pcm_lib_preallocate_pages_for_all</span></a></span><span class="refpurpose"> — 246 pre-allocation for continuous memory type (all substreams) 247 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-sgbuf-ops-page.html"><span class="phrase">snd_pcm_sgbuf_ops_page</span></a></span><span class="refpurpose"> — 248 get the page struct at the given offset 249 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-malloc-pages.html"><span class="phrase">snd_pcm_lib_malloc_pages</span></a></span><span class="refpurpose"> — 250 allocate the DMA buffer 251 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-free-pages.html"><span class="phrase">snd_pcm_lib_free_pages</span></a></span><span class="refpurpose"> — 252 release the allocated DMA buffer. 253 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-free-vmalloc-buffer.html"><span class="phrase">snd_pcm_lib_free_vmalloc_buffer</span></a></span><span class="refpurpose"> — 254 free vmalloc buffer 255 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-get-vmalloc-page.html"><span class="phrase">snd_pcm_lib_get_vmalloc_page</span></a></span><span class="refpurpose"> — 256 map vmalloc buffer offset to page struct 257 </span></dt><dt><span class="refentrytitle"><a href="API-snd-device-initialize.html"><span class="phrase">snd_device_initialize</span></a></span><span class="refpurpose"> — 258 Initialize struct device for sound devices 259 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-new.html"><span class="phrase">snd_card_new</span></a></span><span class="refpurpose"> — 260 create and initialize a soundcard structure 261 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-disconnect.html"><span class="phrase">snd_card_disconnect</span></a></span><span class="refpurpose"> — 262 disconnect all APIs from the file-operations (user space) 263 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-free-when-closed.html"><span class="phrase">snd_card_free_when_closed</span></a></span><span class="refpurpose"> — 264 Disconnect the card, free it later eventually 265 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-free.html"><span class="phrase">snd_card_free</span></a></span><span class="refpurpose"> — 266 frees given soundcard structure 267 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-set-id.html"><span class="phrase">snd_card_set_id</span></a></span><span class="refpurpose"> — 268 set card identification name 269 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-add-dev-attr.html"><span class="phrase">snd_card_add_dev_attr</span></a></span><span class="refpurpose"> — 270 Append a new sysfs attribute group to card 271 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-register.html"><span class="phrase">snd_card_register</span></a></span><span class="refpurpose"> — 272 register the soundcard 273 </span></dt><dt><span class="refentrytitle"><a href="API-snd-component-add.html"><span class="phrase">snd_component_add</span></a></span><span class="refpurpose"> — 274 add a component string 275 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-file-add.html"><span class="phrase">snd_card_file_add</span></a></span><span class="refpurpose"> — 276 add the file to the file list of the card 277 </span></dt><dt><span class="refentrytitle"><a href="API-snd-card-file-remove.html"><span class="phrase">snd_card_file_remove</span></a></span><span class="refpurpose"> — 278 remove the file from the file list 279 </span></dt><dt><span class="refentrytitle"><a href="API-snd-power-wait.html"><span class="phrase">snd_power_wait</span></a></span><span class="refpurpose"> — 280 wait until the power-state is changed. 281 </span></dt><dt><span class="refentrytitle"><a href="API-snd-dma-program.html"><span class="phrase">snd_dma_program</span></a></span><span class="refpurpose"> — 282 program an ISA DMA transfer 283 </span></dt><dt><span class="refentrytitle"><a href="API-snd-dma-disable.html"><span class="phrase">snd_dma_disable</span></a></span><span class="refpurpose"> — 284 stop the ISA DMA transfer 285 </span></dt><dt><span class="refentrytitle"><a href="API-snd-dma-pointer.html"><span class="phrase">snd_dma_pointer</span></a></span><span class="refpurpose"> — 286 return the current pointer to DMA transfer buffer in bytes 287 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-notify.html"><span class="phrase">snd_ctl_notify</span></a></span><span class="refpurpose"> — 288 Send notification to user-space for a control change 289 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-new1.html"><span class="phrase">snd_ctl_new1</span></a></span><span class="refpurpose"> — 290 create a control instance from the template 291 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-free-one.html"><span class="phrase">snd_ctl_free_one</span></a></span><span class="refpurpose"> — 292 release the control instance 293 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-add.html"><span class="phrase">snd_ctl_add</span></a></span><span class="refpurpose"> — 294 add the control instance to the card 295 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-replace.html"><span class="phrase">snd_ctl_replace</span></a></span><span class="refpurpose"> — 296 replace the control instance of the card 297 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-remove.html"><span class="phrase">snd_ctl_remove</span></a></span><span class="refpurpose"> — 298 remove the control from the card and release it 299 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-remove-id.html"><span class="phrase">snd_ctl_remove_id</span></a></span><span class="refpurpose"> — 300 remove the control of the given id and release it 301 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-activate-id.html"><span class="phrase">snd_ctl_activate_id</span></a></span><span class="refpurpose"> — 302 activate/inactivate the control of the given id 303 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-rename-id.html"><span class="phrase">snd_ctl_rename_id</span></a></span><span class="refpurpose"> — 304 replace the id of a control on the card 305 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-find-numid.html"><span class="phrase">snd_ctl_find_numid</span></a></span><span class="refpurpose"> — 306 find the control instance with the given number-id 307 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-find-id.html"><span class="phrase">snd_ctl_find_id</span></a></span><span class="refpurpose"> — 308 find the control instance with the given id 309 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-register-ioctl.html"><span class="phrase">snd_ctl_register_ioctl</span></a></span><span class="refpurpose"> — 310 register the device-specific control-ioctls 311 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-register-ioctl-compat.html"><span class="phrase">snd_ctl_register_ioctl_compat</span></a></span><span class="refpurpose"> — 312 register the device-specific 32bit compat control-ioctls 313 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-unregister-ioctl.html"><span class="phrase">snd_ctl_unregister_ioctl</span></a></span><span class="refpurpose"> — 314 de-register the device-specific control-ioctls 315 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-unregister-ioctl-compat.html"><span class="phrase">snd_ctl_unregister_ioctl_compat</span></a></span><span class="refpurpose"> — 316 de-register the device-specific compat 32bit control-ioctls 317 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-boolean-mono-info.html"><span class="phrase">snd_ctl_boolean_mono_info</span></a></span><span class="refpurpose"> — 318 Helper function for a standard boolean info callback with a mono channel 319 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-boolean-stereo-info.html"><span class="phrase">snd_ctl_boolean_stereo_info</span></a></span><span class="refpurpose"> — 320 Helper function for a standard boolean info callback with stereo two channels 321 </span></dt><dt><span class="refentrytitle"><a href="API-snd-ctl-enum-info.html"><span class="phrase">snd_ctl_enum_info</span></a></span><span class="refpurpose"> — 322 fills the info structure for an enumerated control 323 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-set-ops.html"><span class="phrase">snd_pcm_set_ops</span></a></span><span class="refpurpose"> — 324 set the PCM operators 325 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-set-sync.html"><span class="phrase">snd_pcm_set_sync</span></a></span><span class="refpurpose"> — 326 set the PCM sync id 327 </span></dt><dt><span class="refentrytitle"><a href="API-snd-interval-refine.html"><span class="phrase">snd_interval_refine</span></a></span><span class="refpurpose"> — 328 refine the interval value of configurator 329 </span></dt><dt><span class="refentrytitle"><a href="API-snd-interval-ratnum.html"><span class="phrase">snd_interval_ratnum</span></a></span><span class="refpurpose"> — 330 refine the interval value 331 </span></dt><dt><span class="refentrytitle"><a href="API-snd-interval-list.html"><span class="phrase">snd_interval_list</span></a></span><span class="refpurpose"> — 332 refine the interval value from the list 333 </span></dt><dt><span class="refentrytitle"><a href="API-snd-interval-ranges.html"><span class="phrase">snd_interval_ranges</span></a></span><span class="refpurpose"> — 334 refine the interval value from the list of ranges 335 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-rule-add.html"><span class="phrase">snd_pcm_hw_rule_add</span></a></span><span class="refpurpose"> — 336 add the hw-constraint rule 337 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-mask64.html"><span class="phrase">snd_pcm_hw_constraint_mask64</span></a></span><span class="refpurpose"> — 338 apply the given bitmap mask constraint 339 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-integer.html"><span class="phrase">snd_pcm_hw_constraint_integer</span></a></span><span class="refpurpose"> — 340 apply an integer constraint to an interval 341 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-minmax.html"><span class="phrase">snd_pcm_hw_constraint_minmax</span></a></span><span class="refpurpose"> — 342 apply a min/max range constraint to an interval 343 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-list.html"><span class="phrase">snd_pcm_hw_constraint_list</span></a></span><span class="refpurpose"> — 344 apply a list of constraints to a parameter 345 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-ranges.html"><span class="phrase">snd_pcm_hw_constraint_ranges</span></a></span><span class="refpurpose"> — 346 apply list of range constraints to a parameter 347 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-ratnums.html"><span class="phrase">snd_pcm_hw_constraint_ratnums</span></a></span><span class="refpurpose"> — 348 apply ratnums constraint to a parameter 349 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-ratdens.html"><span class="phrase">snd_pcm_hw_constraint_ratdens</span></a></span><span class="refpurpose"> — 350 apply ratdens constraint to a parameter 351 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-msbits.html"><span class="phrase">snd_pcm_hw_constraint_msbits</span></a></span><span class="refpurpose"> — 352 add a hw constraint msbits rule 353 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-step.html"><span class="phrase">snd_pcm_hw_constraint_step</span></a></span><span class="refpurpose"> — 354 add a hw constraint step rule 355 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-constraint-pow2.html"><span class="phrase">snd_pcm_hw_constraint_pow2</span></a></span><span class="refpurpose"> — 356 add a hw constraint power-of-2 rule 357 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-rule-noresample.html"><span class="phrase">snd_pcm_hw_rule_noresample</span></a></span><span class="refpurpose"> — 358 add a rule to allow disabling hw resampling 359 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-param-value.html"><span class="phrase">snd_pcm_hw_param_value</span></a></span><span class="refpurpose"> — 360 return <em class="parameter"><code>params</code></em> field <em class="parameter"><code>var</code></em> value 361 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-param-first.html"><span class="phrase">snd_pcm_hw_param_first</span></a></span><span class="refpurpose"> — 362 refine config space and return minimum value 363 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-hw-param-last.html"><span class="phrase">snd_pcm_hw_param_last</span></a></span><span class="refpurpose"> — 364 refine config space and return maximum value 365 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-ioctl.html"><span class="phrase">snd_pcm_lib_ioctl</span></a></span><span class="refpurpose"> — 366 a generic PCM ioctl callback 367 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-period-elapsed.html"><span class="phrase">snd_pcm_period_elapsed</span></a></span><span class="refpurpose"> — 368 update the pcm status for the next period 369 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-add-chmap-ctls.html"><span class="phrase">snd_pcm_add_chmap_ctls</span></a></span><span class="refpurpose"> — 370 create channel-mapping control elements 371 </span></dt><dt><span class="refentrytitle"><a href="API-snd-hwdep-new.html"><span class="phrase">snd_hwdep_new</span></a></span><span class="refpurpose"> — 372 create a new hwdep instance 373 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stream-lock.html"><span class="phrase">snd_pcm_stream_lock</span></a></span><span class="refpurpose"> — 374 Lock the PCM stream 375 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stream-unlock.html"><span class="phrase">snd_pcm_stream_unlock</span></a></span><span class="refpurpose"> — 376 Unlock the PCM stream 377 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stream-lock-irq.html"><span class="phrase">snd_pcm_stream_lock_irq</span></a></span><span class="refpurpose"> — 378 Lock the PCM stream 379 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stream-unlock-irq.html"><span class="phrase">snd_pcm_stream_unlock_irq</span></a></span><span class="refpurpose"> — 380 Unlock the PCM stream 381 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stream-unlock-irqrestore.html"><span class="phrase">snd_pcm_stream_unlock_irqrestore</span></a></span><span class="refpurpose"> — 382 Unlock the PCM stream 383 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stop.html"><span class="phrase">snd_pcm_stop</span></a></span><span class="refpurpose"> — 384 try to stop all running streams in the substream group 385 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-stop-xrun.html"><span class="phrase">snd_pcm_stop_xrun</span></a></span><span class="refpurpose"> — 386 stop the running streams as XRUN 387 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-suspend.html"><span class="phrase">snd_pcm_suspend</span></a></span><span class="refpurpose"> — 388 trigger SUSPEND to all linked streams 389 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-suspend-all.html"><span class="phrase">snd_pcm_suspend_all</span></a></span><span class="refpurpose"> — 390 trigger SUSPEND to all substreams in the given pcm 391 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-default-mmap.html"><span class="phrase">snd_pcm_lib_default_mmap</span></a></span><span class="refpurpose"> — 392 Default PCM data mmap function 393 </span></dt><dt><span class="refentrytitle"><a href="API-snd-pcm-lib-mmap-iomem.html"><span class="phrase">snd_pcm_lib_mmap_iomem</span></a></span><span class="refpurpose"> — 394 Default PCM data mmap function for I/O mem 395 </span></dt><dt><span class="refentrytitle"><a href="API-snd-malloc-pages.html"><span class="phrase">snd_malloc_pages</span></a></span><span class="refpurpose"> — 396 allocate pages with the given size 397 </span></dt><dt><span class="refentrytitle"><a href="API-snd-free-pages.html"><span class="phrase">snd_free_pages</span></a></span><span class="refpurpose"> — 398 release the pages 399 </span></dt><dt><span class="refentrytitle"><a href="API-snd-dma-alloc-pages.html"><span class="phrase">snd_dma_alloc_pages</span></a></span><span class="refpurpose"> — 400 allocate the buffer area according to the given type 401 </span></dt><dt><span class="refentrytitle"><a href="API-snd-dma-alloc-pages-fallback.html"><span class="phrase">snd_dma_alloc_pages_fallback</span></a></span><span class="refpurpose"> — 402 allocate the buffer area according to the given type with fallback 403 </span></dt><dt><span class="refentrytitle"><a href="API-snd-dma-free-pages.html"><span class="phrase">snd_dma_free_pages</span></a></span><span class="refpurpose"> — 404 release the allocated buffer 405 </span></dt></dl></dd><dt><span class="chapter"><a href="uart16x50.html">6. 16x50 UART Driver</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-uart-update-timeout.html"><span class="phrase">uart_update_timeout</span></a></span><span class="refpurpose"> — 406 update per-port FIFO timeout. 407 </span></dt><dt><span class="refentrytitle"><a href="API-uart-get-baud-rate.html"><span class="phrase">uart_get_baud_rate</span></a></span><span class="refpurpose"> — 408 return baud rate for a particular port 409 </span></dt><dt><span class="refentrytitle"><a href="API-uart-get-divisor.html"><span class="phrase">uart_get_divisor</span></a></span><span class="refpurpose"> — 410 return uart clock divisor 411 </span></dt><dt><span class="refentrytitle"><a href="API-uart-console-write.html"><span class="phrase">uart_console_write</span></a></span><span class="refpurpose"> — 412 write a console message to a serial port 413 </span></dt><dt><span class="refentrytitle"><a href="API-uart-parse-earlycon.html"><span class="phrase">uart_parse_earlycon</span></a></span><span class="refpurpose"> — 414 Parse earlycon options 415 </span></dt><dt><span class="refentrytitle"><a href="API-uart-parse-options.html"><span class="phrase">uart_parse_options</span></a></span><span class="refpurpose"> — 416 Parse serial port baud/parity/bits/flow control. 417 </span></dt><dt><span class="refentrytitle"><a href="API-uart-set-options.html"><span class="phrase">uart_set_options</span></a></span><span class="refpurpose"> — 418 setup the serial console parameters 419 </span></dt><dt><span class="refentrytitle"><a href="API-uart-register-driver.html"><span class="phrase">uart_register_driver</span></a></span><span class="refpurpose"> — 420 register a driver with the uart core layer 421 </span></dt><dt><span class="refentrytitle"><a href="API-uart-unregister-driver.html"><span class="phrase">uart_unregister_driver</span></a></span><span class="refpurpose"> — 422 remove a driver from the uart core layer 423 </span></dt><dt><span class="refentrytitle"><a href="API-uart-add-one-port.html"><span class="phrase">uart_add_one_port</span></a></span><span class="refpurpose"> — 424 attach a driver-defined port structure 425 </span></dt><dt><span class="refentrytitle"><a href="API-uart-remove-one-port.html"><span class="phrase">uart_remove_one_port</span></a></span><span class="refpurpose"> — 426 detach a driver defined port structure 427 </span></dt><dt><span class="refentrytitle"><a href="API-uart-handle-dcd-change.html"><span class="phrase">uart_handle_dcd_change</span></a></span><span class="refpurpose"> — 428 handle a change of carrier detect state 429 </span></dt><dt><span class="refentrytitle"><a href="API-uart-handle-cts-change.html"><span class="phrase">uart_handle_cts_change</span></a></span><span class="refpurpose"> — 430 handle a change of clear-to-send state 431 </span></dt><dt><span class="refentrytitle"><a href="API-uart-insert-char.html"><span class="phrase">uart_insert_char</span></a></span><span class="refpurpose"> — 432 push a char to the uart layer 433 </span></dt><dt><span class="refentrytitle"><a href="API-serial8250-get-port.html"><span class="phrase">serial8250_get_port</span></a></span><span class="refpurpose"> — 434 retrieve struct uart_8250_port 435 </span></dt><dt><span class="refentrytitle"><a href="API-serial8250-suspend-port.html"><span class="phrase">serial8250_suspend_port</span></a></span><span class="refpurpose"> — 436 suspend one serial port 437 </span></dt><dt><span class="refentrytitle"><a href="API-serial8250-resume-port.html"><span class="phrase">serial8250_resume_port</span></a></span><span class="refpurpose"> — 438 resume one serial port 439 </span></dt><dt><span class="refentrytitle"><a href="API-serial8250-register-8250-port.html"><span class="phrase">serial8250_register_8250_port</span></a></span><span class="refpurpose"> — 440 register a serial port 441 </span></dt><dt><span class="refentrytitle"><a href="API-serial8250-unregister-port.html"><span class="phrase">serial8250_unregister_port</span></a></span><span class="refpurpose"> — 442 remove a 16x50 serial port at runtime 443 </span></dt></dl></dd><dt><span class="chapter"><a href="fbdev.html">7. Frame Buffer Library</a></span></dt><dd><dl><dt><span class="sect1"><a href="fbdev.html#idp1113948452">Frame Buffer Memory</a></span></dt><dt><span class="sect1"><a href="ch07s02.html">Frame Buffer Colormap</a></span></dt><dt><span class="sect1"><a href="ch07s03.html">Frame Buffer Video Mode Database</a></span></dt><dt><span class="sect1"><a href="ch07s04.html">Frame Buffer Macintosh Video Mode Database</a></span></dt><dt><span class="sect1"><a href="ch07s05.html">Frame Buffer Fonts</a></span></dt></dl></dd><dt><span class="chapter"><a href="input_subsystem.html">8. Input Subsystem</a></span></dt><dd><dl><dt><span class="sect1"><a href="input_subsystem.html#idp1114168316">Input core</a></span></dt><dt><span class="sect1"><a href="ch08s02.html">Multitouch Library</a></span></dt><dt><span class="sect1"><a href="ch08s03.html">Polled input devices</a></span></dt><dt><span class="sect1"><a href="ch08s04.html">Matrix keyboars/keypads</a></span></dt><dt><span class="sect1"><a href="ch08s05.html">Sparse keymap support</a></span></dt></dl></dd><dt><span class="chapter"><a href="spi.html">9. Serial Peripheral Interface (SPI)</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-spi-device.html"><span class="phrase">struct spi_device</span></a></span><span class="refpurpose"> — 444 Master side proxy for an SPI slave device 445 </span></dt><dt><span class="refentrytitle"><a href="API-struct-spi-driver.html"><span class="phrase">struct spi_driver</span></a></span><span class="refpurpose"> — 446 Host side <span class="quote">“<span class="quote">protocol</span>”</span> driver 447 </span></dt><dt><span class="refentrytitle"><a href="API-spi-unregister-driver.html"><span class="phrase">spi_unregister_driver</span></a></span><span class="refpurpose"> — 448 reverse effect of spi_register_driver 449 </span></dt><dt><span class="refentrytitle"><a href="API-module-spi-driver.html"><span class="phrase">module_spi_driver</span></a></span><span class="refpurpose"> — 450 Helper macro for registering a SPI driver 451 </span></dt><dt><span class="refentrytitle"><a href="API-struct-spi-master.html"><span class="phrase">struct spi_master</span></a></span><span class="refpurpose"> — 452 interface to SPI master controller 453 </span></dt><dt><span class="refentrytitle"><a href="API-struct-spi-transfer.html"><span class="phrase">struct spi_transfer</span></a></span><span class="refpurpose"> — 454 a read/write buffer pair 455 </span></dt><dt><span class="refentrytitle"><a href="API-struct-spi-message.html"><span class="phrase">struct spi_message</span></a></span><span class="refpurpose"> — 456 one multi-segment SPI transaction 457 </span></dt><dt><span class="refentrytitle"><a href="API-spi-message-init-with-transfers.html"><span class="phrase">spi_message_init_with_transfers</span></a></span><span class="refpurpose"> — 458 Initialize spi_message and append transfers 459 </span></dt><dt><span class="refentrytitle"><a href="API-spi-write.html"><span class="phrase">spi_write</span></a></span><span class="refpurpose"> — 460 SPI synchronous write 461 </span></dt><dt><span class="refentrytitle"><a href="API-spi-read.html"><span class="phrase">spi_read</span></a></span><span class="refpurpose"> — 462 SPI synchronous read 463 </span></dt><dt><span class="refentrytitle"><a href="API-spi-sync-transfer.html"><span class="phrase">spi_sync_transfer</span></a></span><span class="refpurpose"> — 464 synchronous SPI data transfer 465 </span></dt><dt><span class="refentrytitle"><a href="API-spi-w8r8.html"><span class="phrase">spi_w8r8</span></a></span><span class="refpurpose"> — 466 SPI synchronous 8 bit write followed by 8 bit read 467 </span></dt><dt><span class="refentrytitle"><a href="API-spi-w8r16.html"><span class="phrase">spi_w8r16</span></a></span><span class="refpurpose"> — 468 SPI synchronous 8 bit write followed by 16 bit read 469 </span></dt><dt><span class="refentrytitle"><a href="API-spi-w8r16be.html"><span class="phrase">spi_w8r16be</span></a></span><span class="refpurpose"> — 470 SPI synchronous 8 bit write followed by 16 bit big-endian read 471 </span></dt><dt><span class="refentrytitle"><a href="API-struct-spi-board-info.html"><span class="phrase">struct spi_board_info</span></a></span><span class="refpurpose"> — 472 board-specific template for a SPI device 473 </span></dt><dt><span class="refentrytitle"><a href="API-spi-register-board-info.html"><span class="phrase">spi_register_board_info</span></a></span><span class="refpurpose"> — 474 register SPI devices for a given board 475 </span></dt><dt><span class="refentrytitle"><a href="API-spi-register-driver.html"><span class="phrase">spi_register_driver</span></a></span><span class="refpurpose"> — 476 register a SPI driver 477 </span></dt><dt><span class="refentrytitle"><a href="API-spi-alloc-device.html"><span class="phrase">spi_alloc_device</span></a></span><span class="refpurpose"> — 478 Allocate a new SPI device 479 </span></dt><dt><span class="refentrytitle"><a href="API-spi-add-device.html"><span class="phrase">spi_add_device</span></a></span><span class="refpurpose"> — 480 Add spi_device allocated with spi_alloc_device 481 </span></dt><dt><span class="refentrytitle"><a href="API-spi-new-device.html"><span class="phrase">spi_new_device</span></a></span><span class="refpurpose"> — 482 instantiate one new SPI device 483 </span></dt><dt><span class="refentrytitle"><a href="API-spi-finalize-current-transfer.html"><span class="phrase">spi_finalize_current_transfer</span></a></span><span class="refpurpose"> — 484 report completion of a transfer 485 </span></dt><dt><span class="refentrytitle"><a href="API-spi-get-next-queued-message.html"><span class="phrase">spi_get_next_queued_message</span></a></span><span class="refpurpose"> — 486 called by driver to check for queued messages 487 </span></dt><dt><span class="refentrytitle"><a href="API-spi-finalize-current-message.html"><span class="phrase">spi_finalize_current_message</span></a></span><span class="refpurpose"> — 488 the current message is complete 489 </span></dt><dt><span class="refentrytitle"><a href="API-spi-alloc-master.html"><span class="phrase">spi_alloc_master</span></a></span><span class="refpurpose"> — 490 allocate SPI master controller 491 </span></dt><dt><span class="refentrytitle"><a href="API-spi-register-master.html"><span class="phrase">spi_register_master</span></a></span><span class="refpurpose"> — 492 register SPI master controller 493 </span></dt><dt><span class="refentrytitle"><a href="API-devm-spi-register-master.html"><span class="phrase">devm_spi_register_master</span></a></span><span class="refpurpose"> — 494 register managed SPI master controller 495 </span></dt><dt><span class="refentrytitle"><a href="API-spi-unregister-master.html"><span class="phrase">spi_unregister_master</span></a></span><span class="refpurpose"> — 496 unregister SPI master controller 497 </span></dt><dt><span class="refentrytitle"><a href="API-spi-busnum-to-master.html"><span class="phrase">spi_busnum_to_master</span></a></span><span class="refpurpose"> — 498 look up master associated with bus_num 499 </span></dt><dt><span class="refentrytitle"><a href="API-spi-setup.html"><span class="phrase">spi_setup</span></a></span><span class="refpurpose"> — 500 setup SPI mode and clock rate 501 </span></dt><dt><span class="refentrytitle"><a href="API-spi-async.html"><span class="phrase">spi_async</span></a></span><span class="refpurpose"> — 502 asynchronous SPI transfer 503 </span></dt><dt><span class="refentrytitle"><a href="API-spi-async-locked.html"><span class="phrase">spi_async_locked</span></a></span><span class="refpurpose"> — 504 version of spi_async with exclusive bus usage 505 </span></dt><dt><span class="refentrytitle"><a href="API-spi-sync.html"><span class="phrase">spi_sync</span></a></span><span class="refpurpose"> — 506 blocking/synchronous SPI data transfers 507 </span></dt><dt><span class="refentrytitle"><a href="API-spi-sync-locked.html"><span class="phrase">spi_sync_locked</span></a></span><span class="refpurpose"> — 508 version of spi_sync with exclusive bus usage 509 </span></dt><dt><span class="refentrytitle"><a href="API-spi-bus-lock.html"><span class="phrase">spi_bus_lock</span></a></span><span class="refpurpose"> — 510 obtain a lock for exclusive SPI bus usage 511 </span></dt><dt><span class="refentrytitle"><a href="API-spi-bus-unlock.html"><span class="phrase">spi_bus_unlock</span></a></span><span class="refpurpose"> — 512 release the lock for exclusive SPI bus usage 513 </span></dt><dt><span class="refentrytitle"><a href="API-spi-write-then-read.html"><span class="phrase">spi_write_then_read</span></a></span><span class="refpurpose"> — 514 SPI synchronous write followed by read 515 </span></dt></dl></dd><dt><span class="chapter"><a href="i2c.html">10. I<sup>2</sup>C and SMBus Subsystem</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-i2c-driver.html"><span class="phrase">struct i2c_driver</span></a></span><span class="refpurpose"> — 516 represent an I2C device driver 517 </span></dt><dt><span class="refentrytitle"><a href="API-struct-i2c-client.html"><span class="phrase">struct i2c_client</span></a></span><span class="refpurpose"> — 518 represent an I2C slave device 519 </span></dt><dt><span class="refentrytitle"><a href="API-struct-i2c-board-info.html"><span class="phrase">struct i2c_board_info</span></a></span><span class="refpurpose"> — 520 template for device creation 521 </span></dt><dt><span class="refentrytitle"><a href="API-I2C-BOARD-INFO.html"><span class="phrase">I2C_BOARD_INFO</span></a></span><span class="refpurpose"> — 522 macro used to list an i2c device and its address 523 </span></dt><dt><span class="refentrytitle"><a href="API-struct-i2c-algorithm.html"><span class="phrase">struct i2c_algorithm</span></a></span><span class="refpurpose"> — 524 represent I2C transfer method 525 </span></dt><dt><span class="refentrytitle"><a href="API-struct-i2c-bus-recovery-info.html"><span class="phrase">struct i2c_bus_recovery_info</span></a></span><span class="refpurpose"> — 526 I2C bus recovery information 527 </span></dt><dt><span class="refentrytitle"><a href="API-struct-i2c-adapter-quirks.html"><span class="phrase">struct i2c_adapter_quirks</span></a></span><span class="refpurpose"> — 528 describe flaws of an i2c adapter 529 </span></dt><dt><span class="refentrytitle"><a href="API-module-i2c-driver.html"><span class="phrase">module_i2c_driver</span></a></span><span class="refpurpose"> — 530 Helper macro for registering a I2C driver 531 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-register-board-info.html"><span class="phrase">i2c_register_board_info</span></a></span><span class="refpurpose"> — 532 statically declare I2C devices 533 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-verify-client.html"><span class="phrase">i2c_verify_client</span></a></span><span class="refpurpose"> — 534 return parameter as i2c_client, or NULL 535 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-lock-adapter.html"><span class="phrase">i2c_lock_adapter</span></a></span><span class="refpurpose"> — 536 Get exclusive access to an I2C bus segment 537 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-unlock-adapter.html"><span class="phrase">i2c_unlock_adapter</span></a></span><span class="refpurpose"> — 538 Release exclusive access to an I2C bus segment 539 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-new-device.html"><span class="phrase">i2c_new_device</span></a></span><span class="refpurpose"> — 540 instantiate an i2c device 541 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-unregister-device.html"><span class="phrase">i2c_unregister_device</span></a></span><span class="refpurpose"> — 542 reverse effect of <code class="function">i2c_new_device</code> 543 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-new-dummy.html"><span class="phrase">i2c_new_dummy</span></a></span><span class="refpurpose"> — 544 return a new i2c device bound to a dummy driver 545 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-verify-adapter.html"><span class="phrase">i2c_verify_adapter</span></a></span><span class="refpurpose"> — 546 return parameter as i2c_adapter or NULL 547 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-add-adapter.html"><span class="phrase">i2c_add_adapter</span></a></span><span class="refpurpose"> — 548 declare i2c adapter, use dynamic bus number 549 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-add-numbered-adapter.html"><span class="phrase">i2c_add_numbered_adapter</span></a></span><span class="refpurpose"> — 550 declare i2c adapter, use static bus number 551 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-del-adapter.html"><span class="phrase">i2c_del_adapter</span></a></span><span class="refpurpose"> — 552 unregister I2C adapter 553 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-del-driver.html"><span class="phrase">i2c_del_driver</span></a></span><span class="refpurpose"> — 554 unregister I2C driver 555 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-use-client.html"><span class="phrase">i2c_use_client</span></a></span><span class="refpurpose"> — 556 increments the reference count of the i2c client structure 557 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-release-client.html"><span class="phrase">i2c_release_client</span></a></span><span class="refpurpose"> — 558 release a use of the i2c client structure 559 </span></dt><dt><span class="refentrytitle"><a href="API---i2c-transfer.html"><span class="phrase">__i2c_transfer</span></a></span><span class="refpurpose"> — 560 unlocked flavor of i2c_transfer 561 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-transfer.html"><span class="phrase">i2c_transfer</span></a></span><span class="refpurpose"> — 562 execute a single or combined I2C message 563 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-master-send.html"><span class="phrase">i2c_master_send</span></a></span><span class="refpurpose"> — 564 issue a single I2C message in master transmit mode 565 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-master-recv.html"><span class="phrase">i2c_master_recv</span></a></span><span class="refpurpose"> — 566 issue a single I2C message in master receive mode 567 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-smbus-read-byte.html"><span class="phrase">i2c_smbus_read_byte</span></a></span><span class="refpurpose"> — 568 SMBus <span class="quote">“<span class="quote">receive byte</span>”</span> protocol 569 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-smbus-write-byte.html"><span class="phrase">i2c_smbus_write_byte</span></a></span><span class="refpurpose"> — 570 SMBus <span class="quote">“<span class="quote">send byte</span>”</span> protocol 571 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-smbus-read-byte-data.html"><span class="phrase">i2c_smbus_read_byte_data</span></a></span><span class="refpurpose"> — 572 SMBus <span class="quote">“<span class="quote">read byte</span>”</span> protocol 573 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-smbus-write-byte-data.html"><span class="phrase">i2c_smbus_write_byte_data</span></a></span><span class="refpurpose"> — 574 SMBus <span class="quote">“<span class="quote">write byte</span>”</span> protocol 575 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-smbus-read-word-data.html"><span class="phrase">i2c_smbus_read_word_data</span></a></span><span class="refpurpose"> — 576 SMBus <span class="quote">“<span class="quote">read word</span>”</span> protocol 577 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-smbus-write-word-data.html"><span class="phrase">i2c_smbus_write_word_data</span></a></span><span class="refpurpose"> — 578 SMBus <span class="quote">“<span class="quote">write word</span>”</span> protocol 579 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-smbus-read-block-data.html"><span class="phrase">i2c_smbus_read_block_data</span></a></span><span class="refpurpose"> — 580 SMBus <span class="quote">“<span class="quote">block read</span>”</span> protocol 581 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-smbus-write-block-data.html"><span class="phrase">i2c_smbus_write_block_data</span></a></span><span class="refpurpose"> — 582 SMBus <span class="quote">“<span class="quote">block write</span>”</span> protocol 583 </span></dt><dt><span class="refentrytitle"><a href="API-i2c-smbus-xfer.html"><span class="phrase">i2c_smbus_xfer</span></a></span><span class="refpurpose"> — 584 execute SMBus protocol operations 585 </span></dt></dl></dd><dt><span class="chapter"><a href="hsi.html">11. High Speed Synchronous Serial Interface (HSI)</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-hsi-channel.html"><span class="phrase">struct hsi_channel</span></a></span><span class="refpurpose"> — 586 channel resource used by the hsi clients 587 </span></dt><dt><span class="refentrytitle"><a href="API-struct-hsi-config.html"><span class="phrase">struct hsi_config</span></a></span><span class="refpurpose"> — 588 Configuration for RX/TX HSI modules 589 </span></dt><dt><span class="refentrytitle"><a href="API-struct-hsi-board-info.html"><span class="phrase">struct hsi_board_info</span></a></span><span class="refpurpose"> — 590 HSI client board info 591 </span></dt><dt><span class="refentrytitle"><a href="API-struct-hsi-client.html"><span class="phrase">struct hsi_client</span></a></span><span class="refpurpose"> — 592 HSI client attached to an HSI port 593 </span></dt><dt><span class="refentrytitle"><a href="API-struct-hsi-client-driver.html"><span class="phrase">struct hsi_client_driver</span></a></span><span class="refpurpose"> — 594 Driver associated to an HSI client 595 </span></dt><dt><span class="refentrytitle"><a href="API-struct-hsi-msg.html"><span class="phrase">struct hsi_msg</span></a></span><span class="refpurpose"> — 596 HSI message descriptor 597 </span></dt><dt><span class="refentrytitle"><a href="API-struct-hsi-port.html"><span class="phrase">struct hsi_port</span></a></span><span class="refpurpose"> — 598 HSI port device 599 </span></dt><dt><span class="refentrytitle"><a href="API-struct-hsi-controller.html"><span class="phrase">struct hsi_controller</span></a></span><span class="refpurpose"> — 600 HSI controller device 601 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-id.html"><span class="phrase">hsi_id</span></a></span><span class="refpurpose"> — 602 Get HSI controller ID associated to a client 603 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-port-id.html"><span class="phrase">hsi_port_id</span></a></span><span class="refpurpose"> — 604 Gets the port number a client is attached to 605 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-setup.html"><span class="phrase">hsi_setup</span></a></span><span class="refpurpose"> — 606 Configure the client's port 607 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-flush.html"><span class="phrase">hsi_flush</span></a></span><span class="refpurpose"> — 608 Flush all pending transactions on the client's port 609 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-async-read.html"><span class="phrase">hsi_async_read</span></a></span><span class="refpurpose"> — 610 Submit a read transfer 611 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-async-write.html"><span class="phrase">hsi_async_write</span></a></span><span class="refpurpose"> — 612 Submit a write transfer 613 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-start-tx.html"><span class="phrase">hsi_start_tx</span></a></span><span class="refpurpose"> — 614 Signal the port that the client wants to start a TX 615 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-stop-tx.html"><span class="phrase">hsi_stop_tx</span></a></span><span class="refpurpose"> — 616 Signal the port that the client no longer wants to transmit 617 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-port-unregister-clients.html"><span class="phrase">hsi_port_unregister_clients</span></a></span><span class="refpurpose"> — 618 Unregister an HSI port 619 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-unregister-controller.html"><span class="phrase">hsi_unregister_controller</span></a></span><span class="refpurpose"> — 620 Unregister an HSI controller 621 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-register-controller.html"><span class="phrase">hsi_register_controller</span></a></span><span class="refpurpose"> — 622 Register an HSI controller and its ports 623 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-register-client-driver.html"><span class="phrase">hsi_register_client_driver</span></a></span><span class="refpurpose"> — 624 Register an HSI client to the HSI bus 625 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-put-controller.html"><span class="phrase">hsi_put_controller</span></a></span><span class="refpurpose"> — 626 Free an HSI controller 627 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-alloc-controller.html"><span class="phrase">hsi_alloc_controller</span></a></span><span class="refpurpose"> — 628 Allocate an HSI controller and its ports 629 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-free-msg.html"><span class="phrase">hsi_free_msg</span></a></span><span class="refpurpose"> — 630 Free an HSI message 631 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-alloc-msg.html"><span class="phrase">hsi_alloc_msg</span></a></span><span class="refpurpose"> — 632 Allocate an HSI message 633 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-async.html"><span class="phrase">hsi_async</span></a></span><span class="refpurpose"> — 634 Submit an HSI transfer to the controller 635 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-claim-port.html"><span class="phrase">hsi_claim_port</span></a></span><span class="refpurpose"> — 636 Claim the HSI client's port 637 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-release-port.html"><span class="phrase">hsi_release_port</span></a></span><span class="refpurpose"> — 638 Release the HSI client's port 639 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-register-port-event.html"><span class="phrase">hsi_register_port_event</span></a></span><span class="refpurpose"> — 640 Register a client to receive port events 641 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-unregister-port-event.html"><span class="phrase">hsi_unregister_port_event</span></a></span><span class="refpurpose"> — 642 Stop receiving port events for a client 643 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-event.html"><span class="phrase">hsi_event</span></a></span><span class="refpurpose"> — 644 Notifies clients about port events 645 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-get-channel-id-by-name.html"><span class="phrase">hsi_get_channel_id_by_name</span></a></span><span class="refpurpose"> — 646 acquire channel id by channel name 647 </span></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="Basics.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Driver Basics</td></tr></table></div></body></html> 648