1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><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="id-1.1.2"></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#id-1.3.2">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#id-1.4.2">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 parport_open
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#id-1.6.2">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-hw-constraint-single.html"><span class="phrase">snd_pcm_hw_constraint_single</span></a></span><span class="refpurpose"> — 
150     Constrain parameter to a single value
151 </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"> — 
152     Check the PCM format is CPU-endian
153 </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"> — 
154     Set the PCM runtime buffer
155 </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"> — 
156     Fill the timespec depending on the timestamp mode
157 </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"> — 
158     allocate virtual DMA buffer
159 </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"> — 
160     allocate 32-bit-addressable buffer
161 </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"> — 
162     Get the DMA address at the corresponding offset
163 </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"> — 
164     Get the virtual address at the corresponding offset
165 </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"> — 
166     Compute the max size that fits within the contig. page from the given size
167 </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"> — 
168     increase the mmap counter
169 </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"> — 
170     decrease the mmap counter
171 </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"> — 
172     Get the max size fitting with ISA DMA transfer
173 </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"> — 
174     Get a string naming the direction of a stream
175 </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"> — 
176     get the PCM substream assigned to the given chmap info
177 </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"> — 
178     Strong-typed conversion of pcm_format to bitwise
179 </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"> — 
180  Return a name string for the given PCM format
181 </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"> — 
182     create a new PCM stream
183 </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"> — 
184     create a new PCM instance
185 </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"> — 
186     create a new internal PCM instance
187 </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"> — 
188     Add/remove the notify list
189 </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"> — 
190  create an ALSA device component
191 </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"> — 
192     disconnect the device
193 </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"> — 
194     release the device from the card
195 </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"> — 
196     register the device
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-info-free-entry.html"><span class="phrase">snd_info_free_entry</span></a></span><span class="refpurpose"> — 
206     release the info entry
207 </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"> — 
208     register the info entry
209 </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"> — 
210  receive the input data from the device
211 </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"> — 
212     check whether the output buffer is empty
213 </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"> — 
214     copy data from the internal buffer
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-ack.html"><span class="phrase">__snd_rawmidi_transmit_ack</span></a></span><span class="refpurpose"> — 
218     acknowledge the transmission
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.html"><span class="phrase">snd_rawmidi_transmit</span></a></span><span class="refpurpose"> — 
222     copy from the buffer to the device
223 </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"> — 
224     create a rawmidi instance
225 </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"> — 
226     set the rawmidi operators
227 </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"> — 
228  try to load the card module
229 </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"> — 
230     get user data of a registered device
231 </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"> — 
232     Register the ALSA device file for the card
233 </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"> — 
234     unregister the device on the given card
235 </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"> — 
236  copy data from mmio-space to user-space
237 </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"> — 
238     copy data from user-space to mmio-space
239 </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"> — 
240  release all pre-allocated buffers on the pcm
241 </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"> — 
242     pre-allocation for the given DMA type
243 </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"> — 
244     pre-allocation for continuous memory type (all substreams)
245 </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"> — 
246     get the page struct at the given offset
247 </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"> — 
248     allocate the DMA buffer
249 </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"> — 
250     release the allocated DMA buffer.
251 </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"> — 
252     free vmalloc buffer
253 </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"> — 
254     map vmalloc buffer offset to page struct
255 </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"> — 
256  Initialize struct device for sound devices
257 </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"> — 
258     create and initialize a soundcard structure
259 </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"> — 
260     disconnect all APIs from the file-operations (user space)
261 </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"> — 
262     Disconnect the card, free it later eventually
263 </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"> — 
264     frees given soundcard structure
265 </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"> — 
266     set card identification name
267 </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"> — 
268     Append a new sysfs attribute group to card
269 </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"> — 
270     register the soundcard
271 </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"> — 
272     add a component string
273 </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"> — 
274     add the file to the file list of the card
275 </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"> — 
276     remove the file from the file list
277 </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"> — 
278     wait until the power-state is changed.
279 </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"> — 
280  program an ISA DMA transfer
281 </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"> — 
282     stop the ISA DMA transfer
283 </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"> — 
284     return the current pointer to DMA transfer buffer in bytes
285 </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"> — 
286  Send notification to user-space for a control change
287 </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"> — 
288     create a control instance from the template
289 </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"> — 
290     release the control instance
291 </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"> — 
292     add the control instance to the card
293 </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"> — 
294     replace the control instance of the card
295 </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"> — 
296     remove the control from the card and release it
297 </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"> — 
298     remove the control of the given id and release it
299 </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"> — 
300     activate/inactivate the control of the given id
301 </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"> — 
302     replace the id of a control on the card
303 </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"> — 
304     find the control instance with the given number-id
305 </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"> — 
306     find the control instance with the given id
307 </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"> — 
308     register the device-specific control-ioctls
309 </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"> — 
310     register the device-specific 32bit compat control-ioctls
311 </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"> — 
312     de-register the device-specific control-ioctls
313 </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"> — 
314     de-register the device-specific compat 32bit control-ioctls
315 </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"> — 
316     Helper function for a standard boolean info callback with a mono channel
317 </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"> — 
318     Helper function for a standard boolean info callback with stereo two channels
319 </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"> — 
320     fills the info structure for an enumerated control
321 </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"> — 
322  set the PCM operators
323 </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"> — 
324     set the PCM sync id
325 </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"> — 
326     refine the interval value of configurator
327 </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"> — 
328     refine the interval value
329 </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"> — 
330     refine the interval value from the list
331 </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"> — 
332     refine the interval value from the list of ranges
333 </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"> — 
334     add the hw-constraint rule
335 </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"> — 
336     apply the given bitmap mask constraint
337 </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"> — 
338     apply an integer constraint to an interval
339 </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"> — 
340     apply a min/max range constraint to an interval
341 </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"> — 
342     apply a list of constraints to a parameter
343 </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"> — 
344     apply list of range constraints to a parameter
345 </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"> — 
346     apply ratnums constraint to a parameter
347 </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"> — 
348     apply ratdens constraint to a parameter
349 </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"> — 
350     add a hw constraint msbits rule
351 </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"> — 
352     add a hw constraint step rule
353 </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"> — 
354     add a hw constraint power-of-2 rule
355 </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"> — 
356     add a rule to allow disabling hw resampling
357 </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"> — 
358     return <em class="parameter"><code>params</code></em> field <em class="parameter"><code>var</code></em> value
359 </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"> — 
360     refine config space and return minimum value
361 </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"> — 
362     refine config space and return maximum value
363 </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"> — 
364     a generic PCM ioctl callback
365 </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"> — 
366     update the pcm status for the next period
367 </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"> — 
368     create channel-mapping control elements
369 </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"> — 
370  create a new hwdep instance
371 </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"> — 
372  Lock the PCM stream
373 </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"> — 
374     Unlock the PCM stream
375 </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"> — 
376     Lock the PCM stream
377 </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"> — 
378     Unlock the PCM stream
379 </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"> — 
380     Unlock the PCM stream
381 </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"> — 
382     try to stop all running streams in the substream group
383 </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"> — 
384     stop the running streams as XRUN
385 </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"> — 
386     trigger SUSPEND to all linked streams
387 </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"> — 
388     trigger SUSPEND to all substreams in the given pcm
389 </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"> — 
390     Default PCM data mmap function
391 </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"> — 
392     Default PCM data mmap function for I/O mem
393 </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"> — 
394  allocate pages with the given size
395 </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"> — 
396     release the pages
397 </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"> — 
398     allocate the buffer area according to the given type
399 </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"> — 
400     allocate the buffer area according to the given type with fallback
401 </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"> — 
402     release the allocated buffer
403 </span></dt></dl></dd><dt><span class="chapter"><a href="mediadev.html">6. Media Devices</a></span></dt><dd><dl><dt><span class="sect1"><a href="mediadev.html#id-1.8.2">Video2Linux devices</a></span></dt><dt><span class="sect1"><a href="ch06s02.html">Digital TV (DVB) devices</a></span></dt><dt><span class="sect1"><a href="ch06s03.html">Remote Controller devices</a></span></dt><dt><span class="sect1"><a href="ch06s04.html">Media Controller devices</a></span></dt></dl></dd><dt><span class="chapter"><a href="uart16x50.html">7. 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"> — 
404  update per-port FIFO timeout.
405 </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"> — 
406     return baud rate for a particular port
407 </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"> — 
408     return uart clock divisor
409 </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"> — 
410     write a console message to a serial port
411 </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"> — 
412     Parse earlycon options
413 </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"> — 
414     Parse serial port baud/parity/bits/flow control.
415 </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"> — 
416     setup the serial console parameters
417 </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"> — 
418     register a driver with the uart core layer
419 </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"> — 
420     remove a driver from the uart core layer
421 </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"> — 
422     attach a driver-defined port structure
423 </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"> — 
424     detach a driver defined port structure
425 </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"> — 
426     handle a change of carrier detect state
427 </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"> — 
428     handle a change of clear-to-send state
429 </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"> — 
430     push a char to the uart layer
431 </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"> — 
432  retrieve struct uart_8250_port
433 </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"> — 
434     suspend one serial port
435 </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"> — 
436     resume one serial port
437 </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"> — 
438     register a serial port
439 </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"> — 
440     remove a 16x50 serial port at runtime
441 </span></dt></dl></dd><dt><span class="chapter"><a href="fbdev.html">8. Frame Buffer Library</a></span></dt><dd><dl><dt><span class="sect1"><a href="fbdev.html#id-1.10.7">Frame Buffer Memory</a></span></dt><dt><span class="sect1"><a href="ch08s02.html">Frame Buffer Colormap</a></span></dt><dt><span class="sect1"><a href="ch08s03.html">Frame Buffer Video Mode Database</a></span></dt><dt><span class="sect1"><a href="ch08s04.html">Frame Buffer Macintosh Video Mode Database</a></span></dt><dt><span class="sect1"><a href="ch08s05.html">Frame Buffer Fonts</a></span></dt></dl></dd><dt><span class="chapter"><a href="input_subsystem.html">9. Input Subsystem</a></span></dt><dd><dl><dt><span class="sect1"><a href="input_subsystem.html#id-1.11.2">Input core</a></span></dt><dt><span class="sect1"><a href="ch09s02.html">Multitouch Library</a></span></dt><dt><span class="sect1"><a href="ch09s03.html">Polled input devices</a></span></dt><dt><span class="sect1"><a href="ch09s04.html">Matrix keyboars/keypads</a></span></dt><dt><span class="sect1"><a href="ch09s05.html">Sparse keymap support</a></span></dt></dl></dd><dt><span class="chapter"><a href="spi.html">10. Serial Peripheral Interface (SPI)</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-spi-statistics.html"><span class="phrase">struct spi_statistics</span></a></span><span class="refpurpose"> — 
442  statistics for spi transfers
443 </span></dt><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">11. 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 i2c_new_device
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><dt><span class="refentrytitle"><a href="API-i2c-smbus-read-i2c-block-data-or-emulated.html"><span class="phrase">i2c_smbus_read_i2c_block_data_or_emulated</span></a></span><span class="refpurpose"> — 
586     read block or emulate
587 </span></dt></dl></dd><dt><span class="chapter"><a href="hsi.html">12. 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"> — 
588  channel resource used by the hsi clients
589 </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"> — 
590     Configuration for RX/TX HSI modules
591 </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"> — 
592     HSI client board info
593 </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"> — 
594     HSI client attached to an HSI port
595 </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"> — 
596     Driver associated to an HSI client
597 </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"> — 
598     HSI message descriptor
599 </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"> — 
600     HSI port device
601 </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"> — 
602     HSI controller device
603 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-id.html"><span class="phrase">hsi_id</span></a></span><span class="refpurpose"> — 
604     Get HSI controller ID associated to a client
605 </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"> — 
606     Gets the port number a client is attached to
607 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-setup.html"><span class="phrase">hsi_setup</span></a></span><span class="refpurpose"> — 
608     Configure the client's port
609 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-flush.html"><span class="phrase">hsi_flush</span></a></span><span class="refpurpose"> — 
610     Flush all pending transactions on the client's port
611 </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"> — 
612     Submit a read transfer
613 </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"> — 
614     Submit a write transfer
615 </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"> — 
616     Signal the port that the client wants to start a TX
617 </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"> — 
618     Signal the port that the client no longer wants to transmit
619 </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"> — 
620  Unregister an HSI port
621 </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"> — 
622     Unregister an HSI controller
623 </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"> — 
624     Register an HSI controller and its ports
625 </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"> — 
626     Register an HSI client to the HSI bus
627 </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"> — 
628     Free an HSI controller
629 </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"> — 
630     Allocate an HSI controller and its ports
631 </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"> — 
632     Free an HSI message
633 </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"> — 
634     Allocate an HSI message
635 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-async.html"><span class="phrase">hsi_async</span></a></span><span class="refpurpose"> — 
636     Submit an HSI transfer to the controller
637 </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"> — 
638     Claim the HSI client's port
639 </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"> — 
640     Release the HSI client's port
641 </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"> — 
642     Register a client to receive port events
643 </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"> — 
644     Stop receiving port events for a client
645 </span></dt><dt><span class="refentrytitle"><a href="API-hsi-event.html"><span class="phrase">hsi_event</span></a></span><span class="refpurpose"> — 
646     Notifies clients about port events
647 </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"> — 
648     acquire channel id by channel name
649 </span></dt></dl></dd><dt><span class="chapter"><a href="pwm.html">13. Pulse-Width Modulation (PWM)</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-enum-pwm-polarity.html"><span class="phrase">enum pwm_polarity</span></a></span><span class="refpurpose"> — 
650  polarity of a PWM signal
651 </span></dt><dt><span class="refentrytitle"><a href="API-struct-pwm-device.html"><span class="phrase">struct pwm_device</span></a></span><span class="refpurpose"> — 
652     PWM channel object
653 </span></dt><dt><span class="refentrytitle"><a href="API-struct-pwm-ops.html"><span class="phrase">struct pwm_ops</span></a></span><span class="refpurpose"> — 
654     PWM controller operations
655 </span></dt><dt><span class="refentrytitle"><a href="API-struct-pwm-chip.html"><span class="phrase">struct pwm_chip</span></a></span><span class="refpurpose"> — 
656     abstract a PWM controller
657 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-set-chip-data.html"><span class="phrase">pwm_set_chip_data</span></a></span><span class="refpurpose"> — 
658  set private chip data for a PWM
659 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-get-chip-data.html"><span class="phrase">pwm_get_chip_data</span></a></span><span class="refpurpose"> — 
660     get private chip data for a PWM
661 </span></dt><dt><span class="refentrytitle"><a href="API-pwmchip-add-with-polarity.html"><span class="phrase">pwmchip_add_with_polarity</span></a></span><span class="refpurpose"> — 
662     register a new PWM chip
663 </span></dt><dt><span class="refentrytitle"><a href="API-pwmchip-add.html"><span class="phrase">pwmchip_add</span></a></span><span class="refpurpose"> — 
664     register a new PWM chip
665 </span></dt><dt><span class="refentrytitle"><a href="API-pwmchip-remove.html"><span class="phrase">pwmchip_remove</span></a></span><span class="refpurpose"> — 
666     remove a PWM chip
667 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-request.html"><span class="phrase">pwm_request</span></a></span><span class="refpurpose"> — 
668     request a PWM device
669 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-request-from-chip.html"><span class="phrase">pwm_request_from_chip</span></a></span><span class="refpurpose"> — 
670     request a PWM device relative to a PWM chip
671 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-free.html"><span class="phrase">pwm_free</span></a></span><span class="refpurpose"> — 
672     free a PWM device
673 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-config.html"><span class="phrase">pwm_config</span></a></span><span class="refpurpose"> — 
674     change a PWM device configuration
675 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-set-polarity.html"><span class="phrase">pwm_set_polarity</span></a></span><span class="refpurpose"> — 
676     configure the polarity of a PWM signal
677 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-enable.html"><span class="phrase">pwm_enable</span></a></span><span class="refpurpose"> — 
678     start a PWM output toggling
679 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-disable.html"><span class="phrase">pwm_disable</span></a></span><span class="refpurpose"> — 
680     stop a PWM output toggling
681 </span></dt><dt><span class="refentrytitle"><a href="API-of-pwm-get.html"><span class="phrase">of_pwm_get</span></a></span><span class="refpurpose"> — 
682     request a PWM via the PWM framework
683 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-get.html"><span class="phrase">pwm_get</span></a></span><span class="refpurpose"> — 
684     look up and request a PWM device
685 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-put.html"><span class="phrase">pwm_put</span></a></span><span class="refpurpose"> — 
686     release a PWM device
687 </span></dt><dt><span class="refentrytitle"><a href="API-devm-pwm-get.html"><span class="phrase">devm_pwm_get</span></a></span><span class="refpurpose">
688     resource managed pwm_get
689 </span></dt><dt><span class="refentrytitle"><a href="API-devm-of-pwm-get.html"><span class="phrase">devm_of_pwm_get</span></a></span><span class="refpurpose">
690     resource managed of_pwm_get
691 </span></dt><dt><span class="refentrytitle"><a href="API-devm-pwm-put.html"><span class="phrase">devm_pwm_put</span></a></span><span class="refpurpose">
692     resource managed pwm_put
693 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-can-sleep.html"><span class="phrase">pwm_can_sleep</span></a></span><span class="refpurpose"> — 
694     report whether PWM access will sleep
695 </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>
696