diff options
Diffstat (limited to 'Documentation')
249 files changed, 7113 insertions, 3619 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 8afe64fb2009..0f3e8bbab8d7 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX | |||
@@ -2,7 +2,7 @@ | |||
2 | This is a brief list of all the files in ./linux/Documentation and what | 2 | This is a brief list of all the files in ./linux/Documentation and what |
3 | they contain. If you add a documentation file, please list it here in | 3 | they contain. If you add a documentation file, please list it here in |
4 | alphabetical order as well, or risk being hunted down like a rabid dog. | 4 | alphabetical order as well, or risk being hunted down like a rabid dog. |
5 | Please try and keep the descriptions small enough to fit on one line. | 5 | Please keep the descriptions small enough to fit on one line. |
6 | Thanks -- Paul G. | 6 | Thanks -- Paul G. |
7 | 7 | ||
8 | Following translations are available on the WWW: | 8 | Following translations are available on the WWW: |
@@ -20,24 +20,33 @@ BUG-HUNTING | |||
20 | Changes | 20 | Changes |
21 | - list of changes that break older software packages. | 21 | - list of changes that break older software packages. |
22 | CodingStyle | 22 | CodingStyle |
23 | - how the boss likes the C code in the kernel to look. | 23 | - how the maintainers expect the C code in the kernel to look. |
24 | development-process/ | ||
25 | - An extended tutorial on how to work with the kernel development | ||
26 | process. | ||
27 | DMA-API.txt | 24 | DMA-API.txt |
28 | - DMA API, pci_ API & extensions for non-consistent memory machines. | 25 | - DMA API, pci_ API & extensions for non-consistent memory machines. |
26 | DMA-API-HOWTO.txt | ||
27 | - Dynamic DMA mapping Guide | ||
29 | DMA-ISA-LPC.txt | 28 | DMA-ISA-LPC.txt |
30 | - How to do DMA with ISA (and LPC) devices. | 29 | - How to do DMA with ISA (and LPC) devices. |
30 | DMA-attributes.txt | ||
31 | - listing of the various possible attributes a DMA region can have | ||
31 | DocBook/ | 32 | DocBook/ |
32 | - directory with DocBook templates etc. for kernel documentation. | 33 | - directory with DocBook templates etc. for kernel documentation. |
34 | EDID/ | ||
35 | - directory with info on customizing EDID for broken gfx/displays. | ||
33 | HOWTO | 36 | HOWTO |
34 | - the process and procedures of how to do Linux kernel development. | 37 | - the process and procedures of how to do Linux kernel development. |
35 | IPMI.txt | 38 | IPMI.txt |
36 | - info on Linux Intelligent Platform Management Interface (IPMI) Driver. | 39 | - info on Linux Intelligent Platform Management Interface (IPMI) Driver. |
37 | IRQ-affinity.txt | 40 | IRQ-affinity.txt |
38 | - how to select which CPU(s) handle which interrupt events on SMP. | 41 | - how to select which CPU(s) handle which interrupt events on SMP. |
42 | IRQ-domain.txt | ||
43 | - info on inerrupt numbering and setting up IRQ domains. | ||
39 | IRQ.txt | 44 | IRQ.txt |
40 | - description of what an IRQ is. | 45 | - description of what an IRQ is. |
46 | Intel-IOMMU.txt | ||
47 | - basic info on the Intel IOMMU virtualization support. | ||
48 | Makefile | ||
49 | - some files in Documentation dir are actually sample code to build | ||
41 | ManagementStyle | 50 | ManagementStyle |
42 | - how to (attempt to) manage kernel hackers. | 51 | - how to (attempt to) manage kernel hackers. |
43 | RCU/ | 52 | RCU/ |
@@ -66,10 +75,16 @@ applying-patches.txt | |||
66 | - description of various trees and how to apply their patches. | 75 | - description of various trees and how to apply their patches. |
67 | arm/ | 76 | arm/ |
68 | - directory with info about Linux on the ARM architecture. | 77 | - directory with info about Linux on the ARM architecture. |
78 | arm64/ | ||
79 | - directory with info about Linux on the 64 bit ARM architecture. | ||
69 | atomic_ops.txt | 80 | atomic_ops.txt |
70 | - semantics and behavior of atomic and bitmask operations. | 81 | - semantics and behavior of atomic and bitmask operations. |
71 | auxdisplay/ | 82 | auxdisplay/ |
72 | - misc. LCD driver documentation (cfag12864b, ks0108). | 83 | - misc. LCD driver documentation (cfag12864b, ks0108). |
84 | backlight/ | ||
85 | - directory with info on controlling backlights in flat panel displays | ||
86 | bad_memory.txt | ||
87 | - how to use kernel parameters to exclude bad RAM regions. | ||
73 | basic_profiling.txt | 88 | basic_profiling.txt |
74 | - basic instructions for those who wants to profile Linux kernel. | 89 | - basic instructions for those who wants to profile Linux kernel. |
75 | binfmt_misc.txt | 90 | binfmt_misc.txt |
@@ -80,8 +95,14 @@ block/ | |||
80 | - info on the Block I/O (BIO) layer. | 95 | - info on the Block I/O (BIO) layer. |
81 | blockdev/ | 96 | blockdev/ |
82 | - info on block devices & drivers | 97 | - info on block devices & drivers |
98 | braille-console.txt | ||
99 | - info on how to use serial devices for Braille support. | ||
100 | bt8xxgpio.txt | ||
101 | - info on how to modify a bt8xx video card for GPIO usage. | ||
83 | btmrvl.txt | 102 | btmrvl.txt |
84 | - info on Marvell Bluetooth driver usage. | 103 | - info on Marvell Bluetooth driver usage. |
104 | bus-devices/ | ||
105 | - directory with info on TI GPMC (General Purpose Memory Controller) | ||
85 | bus-virt-phys-mapping.txt | 106 | bus-virt-phys-mapping.txt |
86 | - how to access I/O mapped memory from within device drivers. | 107 | - how to access I/O mapped memory from within device drivers. |
87 | cachetlb.txt | 108 | cachetlb.txt |
@@ -90,6 +111,12 @@ cdrom/ | |||
90 | - directory with information on the CD-ROM drivers that Linux has. | 111 | - directory with information on the CD-ROM drivers that Linux has. |
91 | cgroups/ | 112 | cgroups/ |
92 | - cgroups features, including cpusets and memory controller. | 113 | - cgroups features, including cpusets and memory controller. |
114 | circular-buffers.txt | ||
115 | - how to make use of the existing circular buffer infrastructure | ||
116 | clk.txt | ||
117 | - info on the common clock framework | ||
118 | coccinelle.txt | ||
119 | - info on how to get and use the Coccinelle code checking tool. | ||
93 | connector/ | 120 | connector/ |
94 | - docs on the netlink based userspace<->kernel space communication mod. | 121 | - docs on the netlink based userspace<->kernel space communication mod. |
95 | console/ | 122 | console/ |
@@ -114,24 +141,42 @@ dcdbas.txt | |||
114 | - information on the Dell Systems Management Base Driver. | 141 | - information on the Dell Systems Management Base Driver. |
115 | debugging-modules.txt | 142 | debugging-modules.txt |
116 | - some notes on debugging modules after Linux 2.6.3. | 143 | - some notes on debugging modules after Linux 2.6.3. |
144 | debugging-via-ohci1394.txt | ||
145 | - how to use firewire like a hardware debugger memory reader. | ||
117 | dell_rbu.txt | 146 | dell_rbu.txt |
118 | - document demonstrating the use of the Dell Remote BIOS Update driver. | 147 | - document demonstrating the use of the Dell Remote BIOS Update driver. |
148 | development-process/ | ||
149 | - how to work with the mainline kernel development process. | ||
119 | device-mapper/ | 150 | device-mapper/ |
120 | - directory with info on Device Mapper. | 151 | - directory with info on Device Mapper. |
121 | devices.txt | 152 | devices.txt |
122 | - plain ASCII listing of all the nodes in /dev/ with major minor #'s. | 153 | - plain ASCII listing of all the nodes in /dev/ with major minor #'s. |
154 | devicetree/ | ||
155 | - directory with info on device tree files used by OF/PowerPC/ARM | ||
156 | digsig.txt | ||
157 | -info on the Digital Signature Verification API | ||
158 | dma-buf-sharing.txt | ||
159 | - the DMA Buffer Sharing API Guide | ||
160 | dmaengine.txt | ||
161 | -the DMA Engine API Guide | ||
123 | dontdiff | 162 | dontdiff |
124 | - file containing a list of files that should never be diff'ed. | 163 | - file containing a list of files that should never be diff'ed. |
125 | driver-model/ | 164 | driver-model/ |
126 | - directory with info about Linux driver model. | 165 | - directory with info about Linux driver model. |
127 | dvb/ | 166 | dvb/ |
128 | - info on Linux Digital Video Broadcast (DVB) subsystem. | 167 | - info on Linux Digital Video Broadcast (DVB) subsystem. |
168 | dynamic-debug-howto.txt | ||
169 | - how to use the dynamic debug (dyndbg) feature. | ||
129 | early-userspace/ | 170 | early-userspace/ |
130 | - info about initramfs, klibc, and userspace early during boot. | 171 | - info about initramfs, klibc, and userspace early during boot. |
131 | edac.txt | 172 | edac.txt |
132 | - information on EDAC - Error Detection And Correction | 173 | - information on EDAC - Error Detection And Correction |
133 | eisa.txt | 174 | eisa.txt |
134 | - info on EISA bus support. | 175 | - info on EISA bus support. |
176 | email-clients.txt | ||
177 | - info on how to use e-mail to send un-mangled (git) patches. | ||
178 | extcon/ | ||
179 | - directory with porting guide for Android kernel switch driver. | ||
135 | fault-injection/ | 180 | fault-injection/ |
136 | - dir with docs about the fault injection capabilities infrastructure. | 181 | - dir with docs about the fault injection capabilities infrastructure. |
137 | fb/ | 182 | fb/ |
@@ -140,12 +185,22 @@ filesystems/ | |||
140 | - info on the vfs and the various filesystems that Linux supports. | 185 | - info on the vfs and the various filesystems that Linux supports. |
141 | firmware_class/ | 186 | firmware_class/ |
142 | - request_firmware() hotplug interface info. | 187 | - request_firmware() hotplug interface info. |
188 | flexible-arrays.txt | ||
189 | - how to make use of flexible sized arrays in linux | ||
143 | frv/ | 190 | frv/ |
144 | - Fujitsu FR-V Linux documentation. | 191 | - Fujitsu FR-V Linux documentation. |
192 | futex-requeue-pi.txt | ||
193 | - info on requeueing of tasks from a non-PI futex to a PI futex | ||
194 | gcov.txt | ||
195 | - use of GCC's coverage testing tool "gcov" with the Linux kernel | ||
145 | gpio.txt | 196 | gpio.txt |
146 | - overview of GPIO (General Purpose Input/Output) access conventions. | 197 | - overview of GPIO (General Purpose Input/Output) access conventions. |
198 | hid/ | ||
199 | - directory with information on human interface devices | ||
147 | highuid.txt | 200 | highuid.txt |
148 | - notes on the change from 16 bit to 32 bit user/group IDs. | 201 | - notes on the change from 16 bit to 32 bit user/group IDs. |
202 | hwspinlock.txt | ||
203 | - hardware spinlock provides hardware assistance for synchronization | ||
149 | timers/ | 204 | timers/ |
150 | - info on the timer related topics | 205 | - info on the timer related topics |
151 | hw_random.txt | 206 | hw_random.txt |
@@ -162,10 +217,14 @@ ia64/ | |||
162 | - directory with info about Linux on Intel 64 bit architecture. | 217 | - directory with info about Linux on Intel 64 bit architecture. |
163 | infiniband/ | 218 | infiniband/ |
164 | - directory with documents concerning Linux InfiniBand support. | 219 | - directory with documents concerning Linux InfiniBand support. |
220 | init.txt | ||
221 | - what to do when the kernel can't find the 1st process to run. | ||
165 | initrd.txt | 222 | initrd.txt |
166 | - how to use the RAM disk as an initial/temporary root filesystem. | 223 | - how to use the RAM disk as an initial/temporary root filesystem. |
167 | input/ | 224 | input/ |
168 | - info on Linux input device support. | 225 | - info on Linux input device support. |
226 | intel_txt.txt | ||
227 | - info on intel Trusted Execution Technology (intel TXT). | ||
169 | io-mapping.txt | 228 | io-mapping.txt |
170 | - description of io_mapping functions in linux/io-mapping.h | 229 | - description of io_mapping functions in linux/io-mapping.h |
171 | io_ordering.txt | 230 | io_ordering.txt |
@@ -182,6 +241,8 @@ isdn/ | |||
182 | - directory with info on the Linux ISDN support, and supported cards. | 241 | - directory with info on the Linux ISDN support, and supported cards. |
183 | java.txt | 242 | java.txt |
184 | - info on the in-kernel binary support for Java(tm). | 243 | - info on the in-kernel binary support for Java(tm). |
244 | ja_JP/ | ||
245 | - directory with Japanese translations of various documents | ||
185 | kbuild/ | 246 | kbuild/ |
186 | - directory with info about the kernel build process. | 247 | - directory with info about the kernel build process. |
187 | kdump/ | 248 | kdump/ |
@@ -192,6 +253,12 @@ kernel-docs.txt | |||
192 | - listing of various WWW + books that document kernel internals. | 253 | - listing of various WWW + books that document kernel internals. |
193 | kernel-parameters.txt | 254 | kernel-parameters.txt |
194 | - summary listing of command line / boot prompt args for the kernel. | 255 | - summary listing of command line / boot prompt args for the kernel. |
256 | kmemcheck.txt | ||
257 | - info on dynamic checker that detects uses of uninitialized memory. | ||
258 | kmemleak.txt | ||
259 | - info on how to make use of the kernel memory leak detection system | ||
260 | ko_KR/ | ||
261 | - directory with Korean translations of various documents | ||
195 | kobject.txt | 262 | kobject.txt |
196 | - info of the kobject infrastructure of the Linux kernel. | 263 | - info of the kobject infrastructure of the Linux kernel. |
197 | kprobes.txt | 264 | kprobes.txt |
@@ -208,6 +275,8 @@ local_ops.txt | |||
208 | - semantics and behavior of local atomic operations. | 275 | - semantics and behavior of local atomic operations. |
209 | lockdep-design.txt | 276 | lockdep-design.txt |
210 | - documentation on the runtime locking correctness validator. | 277 | - documentation on the runtime locking correctness validator. |
278 | lockstat.txt | ||
279 | - info on collecting statistics on locks (and contention). | ||
211 | lockup-watchdogs.txt | 280 | lockup-watchdogs.txt |
212 | - info on soft and hard lockup detectors (aka nmi_watchdog). | 281 | - info on soft and hard lockup detectors (aka nmi_watchdog). |
213 | logo.gif | 282 | logo.gif |
@@ -220,16 +289,26 @@ magic-number.txt | |||
220 | - list of magic numbers used to mark/protect kernel data structures. | 289 | - list of magic numbers used to mark/protect kernel data structures. |
221 | md.txt | 290 | md.txt |
222 | - info on boot arguments for the multiple devices driver. | 291 | - info on boot arguments for the multiple devices driver. |
292 | media-framework.txt | ||
293 | - info on media framework, its data structures, functions and usage. | ||
223 | memory-barriers.txt | 294 | memory-barriers.txt |
224 | - info on Linux kernel memory barriers. | 295 | - info on Linux kernel memory barriers. |
296 | memory-devices/ | ||
297 | - directory with info on parts like the Texas Instruments EMIF driver | ||
225 | memory-hotplug.txt | 298 | memory-hotplug.txt |
226 | - Hotpluggable memory support, how to use and current status. | 299 | - Hotpluggable memory support, how to use and current status. |
227 | memory.txt | 300 | memory.txt |
228 | - info on typical Linux memory problems. | 301 | - info on typical Linux memory problems. |
229 | mips/ | 302 | mips/ |
230 | - directory with info about Linux on MIPS architecture. | 303 | - directory with info about Linux on MIPS architecture. |
304 | misc-devices/ | ||
305 | - directory with info about devices using the misc dev subsystem | ||
231 | mmc/ | 306 | mmc/ |
232 | - directory with info about the MMC subsystem | 307 | - directory with info about the MMC subsystem |
308 | mn10300/ | ||
309 | - directory with info about the mn10300 architecture port | ||
310 | mtd/ | ||
311 | - directory with info about memory technology devices (flash) | ||
233 | mono.txt | 312 | mono.txt |
234 | - how to execute Mono-based .NET binaries with the help of BINFMT_MISC. | 313 | - how to execute Mono-based .NET binaries with the help of BINFMT_MISC. |
235 | mutex-design.txt | 314 | mutex-design.txt |
@@ -240,6 +319,8 @@ netlabel/ | |||
240 | - directory with information on the NetLabel subsystem. | 319 | - directory with information on the NetLabel subsystem. |
241 | networking/ | 320 | networking/ |
242 | - directory with info on various aspects of networking with Linux. | 321 | - directory with info on various aspects of networking with Linux. |
322 | nfc/ | ||
323 | - directory relating info about Near Field Communications support. | ||
243 | nommu-mmap.txt | 324 | nommu-mmap.txt |
244 | - documentation about no-mmu memory mapping support. | 325 | - documentation about no-mmu memory mapping support. |
245 | numastat.txt | 326 | numastat.txt |
@@ -256,26 +337,46 @@ parport-lowlevel.txt | |||
256 | - description and usage of the low level parallel port functions. | 337 | - description and usage of the low level parallel port functions. |
257 | pcmcia/ | 338 | pcmcia/ |
258 | - info on the Linux PCMCIA driver. | 339 | - info on the Linux PCMCIA driver. |
340 | percpu-rw-semaphore.txt | ||
341 | - RCU based read-write semaphore optimized for locking for reading | ||
259 | pi-futex.txt | 342 | pi-futex.txt |
260 | - documentation on lightweight PI-futexes. | 343 | - documentation on lightweight priority inheritance futexes. |
344 | pinctrl.txt | ||
345 | - info on pinctrl subsystem and the PINMUX/PINCONF and drivers | ||
261 | pnp.txt | 346 | pnp.txt |
262 | - Linux Plug and Play documentation. | 347 | - Linux Plug and Play documentation. |
263 | power/ | 348 | power/ |
264 | - directory with info on Linux PCI power management. | 349 | - directory with info on Linux PCI power management. |
265 | powerpc/ | 350 | powerpc/ |
266 | - directory with info on using Linux with the PowerPC. | 351 | - directory with info on using Linux with the PowerPC. |
352 | prctl/ | ||
353 | - directory with info on the priveledge control subsystem | ||
267 | preempt-locking.txt | 354 | preempt-locking.txt |
268 | - info on locking under a preemptive kernel. | 355 | - info on locking under a preemptive kernel. |
269 | printk-formats.txt | 356 | printk-formats.txt |
270 | - how to get printk format specifiers right | 357 | - how to get printk format specifiers right |
358 | pps/ | ||
359 | - directory with information on the pulse-per-second support | ||
360 | ptp/ | ||
361 | - directory with info on support for IEEE 1588 PTP clocks in Linux. | ||
362 | pwm.txt | ||
363 | - info on the pulse width modulation driver subsystem | ||
271 | ramoops.txt | 364 | ramoops.txt |
272 | - documentation of the ramoops oops/panic logging module. | 365 | - documentation of the ramoops oops/panic logging module. |
366 | rapidio/ | ||
367 | - directory with info on RapidIO packet-based fabric interconnect | ||
273 | rbtree.txt | 368 | rbtree.txt |
274 | - info on what red-black trees are and what they are for. | 369 | - info on what red-black trees are and what they are for. |
370 | remoteproc.txt | ||
371 | - info on how to handle remote processor (e.g. AMP) offloads/usage. | ||
372 | rfkill.txt | ||
373 | - info on the radio frequency kill switch subsystem/support. | ||
275 | robust-futex-ABI.txt | 374 | robust-futex-ABI.txt |
276 | - documentation of the robust futex ABI. | 375 | - documentation of the robust futex ABI. |
277 | robust-futexes.txt | 376 | robust-futexes.txt |
278 | - a description of what robust futexes are. | 377 | - a description of what robust futexes are. |
378 | rpmsg.txt | ||
379 | - info on the Remote Processor Messaging (rpmsg) Framework | ||
279 | rt-mutex-design.txt | 380 | rt-mutex-design.txt |
280 | - description of the RealTime mutex implementation design. | 381 | - description of the RealTime mutex implementation design. |
281 | rt-mutex.txt | 382 | rt-mutex.txt |
@@ -300,10 +401,10 @@ sgi-visws.txt | |||
300 | - short blurb on the SGI Visual Workstations. | 401 | - short blurb on the SGI Visual Workstations. |
301 | sh/ | 402 | sh/ |
302 | - directory with info on porting Linux to a new architecture. | 403 | - directory with info on porting Linux to a new architecture. |
404 | smsc_ece1099.txt | ||
405 | -info on the smsc Keyboard Scan Expansion/GPIO Expansion device. | ||
303 | sound/ | 406 | sound/ |
304 | - directory with info on sound card support. | 407 | - directory with info on sound card support. |
305 | sparc/ | ||
306 | - directory with info on using Linux on Sparc architecture. | ||
307 | sparse.txt | 408 | sparse.txt |
308 | - info on how to obtain and use the sparse tool for typechecking. | 409 | - info on how to obtain and use the sparse tool for typechecking. |
309 | spi/ | 410 | spi/ |
@@ -314,6 +415,8 @@ stable_api_nonsense.txt | |||
314 | - info on why the kernel does not have a stable in-kernel api or abi. | 415 | - info on why the kernel does not have a stable in-kernel api or abi. |
315 | stable_kernel_rules.txt | 416 | stable_kernel_rules.txt |
316 | - rules and procedures for the -stable kernel releases. | 417 | - rules and procedures for the -stable kernel releases. |
418 | static-keys.txt | ||
419 | - info on how static keys allow debug code in hotpaths via patching | ||
317 | svga.txt | 420 | svga.txt |
318 | - short guide on selecting video modes at boot via VGA BIOS. | 421 | - short guide on selecting video modes at boot via VGA BIOS. |
319 | sysfs-rules.txt | 422 | sysfs-rules.txt |
@@ -322,27 +425,53 @@ sysctl/ | |||
322 | - directory with info on the /proc/sys/* files. | 425 | - directory with info on the /proc/sys/* files. |
323 | sysrq.txt | 426 | sysrq.txt |
324 | - info on the magic SysRq key. | 427 | - info on the magic SysRq key. |
325 | telephony/ | 428 | target/ |
326 | - directory with info on telephony (e.g. voice over IP) support. | 429 | - directory with info on generating TCM v4 fabric .ko modules |
430 | thermal/ | ||
431 | - directory with information on managing thermal issues (CPU/temp) | ||
432 | trace/ | ||
433 | - directory with info on tracing technologies within linux | ||
434 | unaligned-memory-access.txt | ||
435 | - info on how to avoid arch breaking unaligned memory access in code. | ||
327 | unicode.txt | 436 | unicode.txt |
328 | - info on the Unicode character/font mapping used in Linux. | 437 | - info on the Unicode character/font mapping used in Linux. |
329 | unshare.txt | 438 | unshare.txt |
330 | - description of the Linux unshare system call. | 439 | - description of the Linux unshare system call. |
331 | usb/ | 440 | usb/ |
332 | - directory with info regarding the Universal Serial Bus. | 441 | - directory with info regarding the Universal Serial Bus. |
442 | vDSO/ | ||
443 | - directory with info regarding virtual dynamic shared objects | ||
444 | vfio.txt | ||
445 | - info on Virtual Function I/O used in guest/hypervisor instances. | ||
446 | vgaarbiter.txt | ||
447 | - info on enable/disable the legacy decoding on different VGA devices | ||
333 | video-output.txt | 448 | video-output.txt |
334 | - sysfs class driver interface to enable/disable a video output device. | 449 | - sysfs class driver interface to enable/disable a video output device. |
335 | video4linux/ | 450 | video4linux/ |
336 | - directory with info regarding video/TV/radio cards and linux. | 451 | - directory with info regarding video/TV/radio cards and linux. |
452 | virtual/ | ||
453 | - directory with information on the various linux virtualizations. | ||
337 | vm/ | 454 | vm/ |
338 | - directory with info on the Linux vm code. | 455 | - directory with info on the Linux vm code. |
456 | vme_api.txt | ||
457 | - file relating info on the VME bus API in linux | ||
339 | volatile-considered-harmful.txt | 458 | volatile-considered-harmful.txt |
340 | - Why the "volatile" type class should not be used | 459 | - Why the "volatile" type class should not be used |
341 | w1/ | 460 | w1/ |
342 | - directory with documents regarding the 1-wire (w1) subsystem. | 461 | - directory with documents regarding the 1-wire (w1) subsystem. |
343 | watchdog/ | 462 | watchdog/ |
344 | - how to auto-reboot Linux if it has "fallen and can't get up". ;-) | 463 | - how to auto-reboot Linux if it has "fallen and can't get up". ;-) |
464 | wimax/ | ||
465 | - directory with info about Intel Wireless Wimax Connections | ||
466 | workqueue.txt | ||
467 | - information on the Concurrency Managed Workqueue implementation | ||
345 | x86/x86_64/ | 468 | x86/x86_64/ |
346 | - directory with info on Linux support for AMD x86-64 (Hammer) machines. | 469 | - directory with info on Linux support for AMD x86-64 (Hammer) machines. |
470 | xtensa/ | ||
471 | - directory with documents relating to arch/xtensa port/implementation | ||
472 | xz.txt | ||
473 | - how to make use of the XZ data compression within linux kernel | ||
474 | zh_CN/ | ||
475 | - directory with Chinese translations of various documents | ||
347 | zorro.txt | 476 | zorro.txt |
348 | - info on writing drivers for Zorro bus devices found on Amigas. | 477 | - info on writing drivers for Zorro bus devices found on Amigas. |
diff --git a/Documentation/ABI/stable/sysfs-class-tpm b/Documentation/ABI/stable/sysfs-class-tpm new file mode 100644 index 000000000000..a60b45e2493b --- /dev/null +++ b/Documentation/ABI/stable/sysfs-class-tpm | |||
@@ -0,0 +1,185 @@ | |||
1 | What: /sys/class/misc/tpmX/device/ | ||
2 | Date: April 2005 | ||
3 | KernelVersion: 2.6.12 | ||
4 | Contact: tpmdd-devel@lists.sf.net | ||
5 | Description: The device/ directory under a specific TPM instance exposes | ||
6 | the properties of that TPM chip | ||
7 | |||
8 | |||
9 | What: /sys/class/misc/tpmX/device/active | ||
10 | Date: April 2006 | ||
11 | KernelVersion: 2.6.17 | ||
12 | Contact: tpmdd-devel@lists.sf.net | ||
13 | Description: The "active" property prints a '1' if the TPM chip is accepting | ||
14 | commands. An inactive TPM chip still contains all the state of | ||
15 | an active chip (Storage Root Key, NVRAM, etc), and can be | ||
16 | visible to the OS, but will only accept a restricted set of | ||
17 | commands. See the TPM Main Specification part 2, Structures, | ||
18 | section 17 for more information on which commands are | ||
19 | available. | ||
20 | |||
21 | What: /sys/class/misc/tpmX/device/cancel | ||
22 | Date: June 2005 | ||
23 | KernelVersion: 2.6.13 | ||
24 | Contact: tpmdd-devel@lists.sf.net | ||
25 | Description: The "cancel" property allows you to cancel the currently | ||
26 | pending TPM command. Writing any value to cancel will call the | ||
27 | TPM vendor specific cancel operation. | ||
28 | |||
29 | What: /sys/class/misc/tpmX/device/caps | ||
30 | Date: April 2005 | ||
31 | KernelVersion: 2.6.12 | ||
32 | Contact: tpmdd-devel@lists.sf.net | ||
33 | Description: The "caps" property contains TPM manufacturer and version info. | ||
34 | |||
35 | Example output: | ||
36 | |||
37 | Manufacturer: 0x53544d20 | ||
38 | TCG version: 1.2 | ||
39 | Firmware version: 8.16 | ||
40 | |||
41 | Manufacturer is a hex dump of the 4 byte manufacturer info | ||
42 | space in a TPM. TCG version shows the TCG TPM spec level that | ||
43 | the chip supports. Firmware version is that of the chip and | ||
44 | is manufacturer specific. | ||
45 | |||
46 | What: /sys/class/misc/tpmX/device/durations | ||
47 | Date: March 2011 | ||
48 | KernelVersion: 3.1 | ||
49 | Contact: tpmdd-devel@lists.sf.net | ||
50 | Description: The "durations" property shows the 3 vendor-specific values | ||
51 | used to wait for a short, medium and long TPM command. All | ||
52 | TPM commands are categorized as short, medium or long in | ||
53 | execution time, so that the driver doesn't have to wait | ||
54 | any longer than necessary before starting to poll for a | ||
55 | result. | ||
56 | |||
57 | Example output: | ||
58 | |||
59 | 3015000 4508000 180995000 [original] | ||
60 | |||
61 | Here the short, medium and long durations are displayed in | ||
62 | usecs. "[original]" indicates that the values are displayed | ||
63 | unmodified from when they were queried from the chip. | ||
64 | Durations can be modified in the case where a buggy chip | ||
65 | reports them in msec instead of usec and they need to be | ||
66 | scaled to be displayed in usecs. In this case "[adjusted]" | ||
67 | will be displayed in place of "[original]". | ||
68 | |||
69 | What: /sys/class/misc/tpmX/device/enabled | ||
70 | Date: April 2006 | ||
71 | KernelVersion: 2.6.17 | ||
72 | Contact: tpmdd-devel@lists.sf.net | ||
73 | Description: The "enabled" property prints a '1' if the TPM chip is enabled, | ||
74 | meaning that it should be visible to the OS. This property | ||
75 | may be visible but produce a '0' after some operation that | ||
76 | disables the TPM. | ||
77 | |||
78 | What: /sys/class/misc/tpmX/device/owned | ||
79 | Date: April 2006 | ||
80 | KernelVersion: 2.6.17 | ||
81 | Contact: tpmdd-devel@lists.sf.net | ||
82 | Description: The "owned" property produces a '1' if the TPM_TakeOwnership | ||
83 | ordinal has been executed successfully in the chip. A '0' | ||
84 | indicates that ownership hasn't been taken. | ||
85 | |||
86 | What: /sys/class/misc/tpmX/device/pcrs | ||
87 | Date: April 2005 | ||
88 | KernelVersion: 2.6.12 | ||
89 | Contact: tpmdd-devel@lists.sf.net | ||
90 | Description: The "pcrs" property will dump the current value of all Platform | ||
91 | Configuration Registers in the TPM. Note that since these | ||
92 | values may be constantly changing, the output is only valid | ||
93 | for a snapshot in time. | ||
94 | |||
95 | Example output: | ||
96 | |||
97 | PCR-00: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 | ||
98 | PCR-01: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 | ||
99 | PCR-02: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 | ||
100 | PCR-03: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 | ||
101 | PCR-04: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75 | ||
102 | ... | ||
103 | |||
104 | The number of PCRs and hex bytes needed to represent a PCR | ||
105 | value will vary depending on TPM chip version. For TPM 1.1 and | ||
106 | 1.2 chips, PCRs represent SHA-1 hashes, which are 20 bytes | ||
107 | long. Use the "caps" property to determine TPM version. | ||
108 | |||
109 | What: /sys/class/misc/tpmX/device/pubek | ||
110 | Date: April 2005 | ||
111 | KernelVersion: 2.6.12 | ||
112 | Contact: tpmdd-devel@lists.sf.net | ||
113 | Description: The "pubek" property will return the TPM's public endorsement | ||
114 | key if possible. If the TPM has had ownership established and | ||
115 | is version 1.2, the pubek will not be available without the | ||
116 | owner's authorization. Since the TPM driver doesn't store any | ||
117 | secrets, it can't authorize its own request for the pubek, | ||
118 | making it unaccessible. The public endorsement key is gener- | ||
119 | ated at TPM menufacture time and exists for the life of the | ||
120 | chip. | ||
121 | |||
122 | Example output: | ||
123 | |||
124 | Algorithm: 00 00 00 01 | ||
125 | Encscheme: 00 03 | ||
126 | Sigscheme: 00 01 | ||
127 | Parameters: 00 00 08 00 00 00 00 02 00 00 00 00 | ||
128 | Modulus length: 256 | ||
129 | Modulus: | ||
130 | B4 76 41 82 C9 20 2C 10 18 40 BC 8B E5 44 4C 6C | ||
131 | 3A B2 92 0C A4 9B 2A 83 EB 5C 12 85 04 48 A0 B6 | ||
132 | 1E E4 81 84 CE B2 F2 45 1C F0 85 99 61 02 4D EB | ||
133 | 86 C4 F7 F3 29 60 52 93 6B B2 E5 AB 8B A9 09 E3 | ||
134 | D7 0E 7D CA 41 BF 43 07 65 86 3C 8C 13 7A D0 8B | ||
135 | 82 5E 96 0B F8 1F 5F 34 06 DA A2 52 C1 A9 D5 26 | ||
136 | 0F F4 04 4B D9 3F 2D F2 AC 2F 74 64 1F 8B CD 3E | ||
137 | 1E 30 38 6C 70 63 69 AB E2 50 DF 49 05 2E E1 8D | ||
138 | 6F 78 44 DA 57 43 69 EE 76 6C 38 8A E9 8E A3 F0 | ||
139 | A7 1F 3C A8 D0 12 15 3E CA 0E BD FA 24 CD 33 C6 | ||
140 | 47 AE A4 18 83 8E 22 39 75 93 86 E6 FD 66 48 B6 | ||
141 | 10 AD 94 14 65 F9 6A 17 78 BD 16 53 84 30 BF 70 | ||
142 | E0 DC 65 FD 3C C6 B0 1E BF B9 C1 B5 6C EF B1 3A | ||
143 | F8 28 05 83 62 26 11 DC B4 6B 5A 97 FF 32 26 B6 | ||
144 | F7 02 71 CF 15 AE 16 DD D1 C1 8E A8 CF 9B 50 7B | ||
145 | C3 91 FF 44 1E CF 7C 39 FE 17 77 21 20 BD CE 9B | ||
146 | |||
147 | Possible values: | ||
148 | |||
149 | Algorithm: TPM_ALG_RSA (1) | ||
150 | Encscheme: TPM_ES_RSAESPKCSv15 (2) | ||
151 | TPM_ES_RSAESOAEP_SHA1_MGF1 (3) | ||
152 | Sigscheme: TPM_SS_NONE (1) | ||
153 | Parameters, a byte string of 3 u32 values: | ||
154 | Key Length (bits): 00 00 08 00 (2048) | ||
155 | Num primes: 00 00 00 02 (2) | ||
156 | Exponent Size: 00 00 00 00 (0 means the | ||
157 | default exp) | ||
158 | Modulus Length: 256 (bytes) | ||
159 | Modulus: The 256 byte Endorsement Key modulus | ||
160 | |||
161 | What: /sys/class/misc/tpmX/device/temp_deactivated | ||
162 | Date: April 2006 | ||
163 | KernelVersion: 2.6.17 | ||
164 | Contact: tpmdd-devel@lists.sf.net | ||
165 | Description: The "temp_deactivated" property returns a '1' if the chip has | ||
166 | been temporarily dectivated, usually until the next power | ||
167 | cycle. Whether a warm boot (reboot) will clear a TPM chip | ||
168 | from a temp_deactivated state is platform specific. | ||
169 | |||
170 | What: /sys/class/misc/tpmX/device/timeouts | ||
171 | Date: March 2011 | ||
172 | KernelVersion: 3.1 | ||
173 | Contact: tpmdd-devel@lists.sf.net | ||
174 | Description: The "timeouts" property shows the 4 vendor-specific values | ||
175 | for the TPM's interface spec timeouts. The use of these | ||
176 | timeouts is defined by the TPM interface spec that the chip | ||
177 | conforms to. | ||
178 | |||
179 | Example output: | ||
180 | |||
181 | 750000 750000 750000 750000 [original] | ||
182 | |||
183 | The four timeout values are shown in usecs, with a trailing | ||
184 | "[original]" or "[adjusted]" depending on whether the values | ||
185 | were scaled by the driver to be reported in usec from msecs. | ||
diff --git a/Documentation/ABI/testing/ima_policy b/Documentation/ABI/testing/ima_policy index ec0a38ef3145..f1c5cc9d17a8 100644 --- a/Documentation/ABI/testing/ima_policy +++ b/Documentation/ABI/testing/ima_policy | |||
@@ -18,17 +18,21 @@ Description: | |||
18 | rule format: action [condition ...] | 18 | rule format: action [condition ...] |
19 | 19 | ||
20 | action: measure | dont_measure | appraise | dont_appraise | audit | 20 | action: measure | dont_measure | appraise | dont_appraise | audit |
21 | condition:= base | lsm | 21 | condition:= base | lsm [option] |
22 | base: [[func=] [mask=] [fsmagic=] [uid=] [fowner]] | 22 | base: [[func=] [mask=] [fsmagic=] [fsuuid=] [uid=] |
23 | [fowner]] | ||
23 | lsm: [[subj_user=] [subj_role=] [subj_type=] | 24 | lsm: [[subj_user=] [subj_role=] [subj_type=] |
24 | [obj_user=] [obj_role=] [obj_type=]] | 25 | [obj_user=] [obj_role=] [obj_type=]] |
26 | option: [[appraise_type=]] | ||
25 | 27 | ||
26 | base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK][MODULE_CHECK] | 28 | base: func:= [BPRM_CHECK][MMAP_CHECK][FILE_CHECK][MODULE_CHECK] |
27 | mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC] | 29 | mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC] |
28 | fsmagic:= hex value | 30 | fsmagic:= hex value |
31 | fsuuid:= file system UUID (e.g 8bcbe394-4f13-4144-be8e-5aa9ea2ce2f6) | ||
29 | uid:= decimal value | 32 | uid:= decimal value |
30 | fowner:=decimal value | 33 | fowner:=decimal value |
31 | lsm: are LSM specific | 34 | lsm: are LSM specific |
35 | option: appraise_type:= [imasig] | ||
32 | 36 | ||
33 | default policy: | 37 | default policy: |
34 | # PROC_SUPER_MAGIC | 38 | # PROC_SUPER_MAGIC |
diff --git a/Documentation/ABI/testing/pstore b/Documentation/ABI/testing/pstore index ff1df4e3b059..5fca9f5e10a3 100644 --- a/Documentation/ABI/testing/pstore +++ b/Documentation/ABI/testing/pstore | |||
@@ -1,4 +1,4 @@ | |||
1 | Where: /dev/pstore/... | 1 | Where: /sys/fs/pstore/... (or /dev/pstore/...) |
2 | Date: March 2011 | 2 | Date: March 2011 |
3 | Kernel Version: 2.6.39 | 3 | Kernel Version: 2.6.39 |
4 | Contact: tony.luck@intel.com | 4 | Contact: tony.luck@intel.com |
@@ -11,9 +11,9 @@ Description: Generic interface to platform dependent persistent storage. | |||
11 | of the console log is captured, but other interesting | 11 | of the console log is captured, but other interesting |
12 | data can also be saved. | 12 | data can also be saved. |
13 | 13 | ||
14 | # mount -t pstore -o kmsg_bytes=8000 - /dev/pstore | 14 | # mount -t pstore -o kmsg_bytes=8000 - /sys/fs/pstore |
15 | 15 | ||
16 | $ ls -l /dev/pstore | 16 | $ ls -l /sys/fs/pstore/ |
17 | total 0 | 17 | total 0 |
18 | -r--r--r-- 1 root root 7896 Nov 30 15:38 dmesg-erst-1 | 18 | -r--r--r-- 1 root root 7896 Nov 30 15:38 dmesg-erst-1 |
19 | 19 | ||
@@ -27,9 +27,9 @@ Description: Generic interface to platform dependent persistent storage. | |||
27 | the file will signal to the underlying persistent storage | 27 | the file will signal to the underlying persistent storage |
28 | device that it can reclaim the space for later re-use. | 28 | device that it can reclaim the space for later re-use. |
29 | 29 | ||
30 | $ rm /dev/pstore/dmesg-erst-1 | 30 | $ rm /sys/fs/pstore/dmesg-erst-1 |
31 | 31 | ||
32 | The expectation is that all files in /dev/pstore | 32 | The expectation is that all files in /sys/fs/pstore/ |
33 | will be saved elsewhere and erased from persistent store | 33 | will be saved elsewhere and erased from persistent store |
34 | soon after boot to free up space ready for the next | 34 | soon after boot to free up space ready for the next |
35 | catastrophe. | 35 | catastrophe. |
diff --git a/Documentation/ABI/testing/sysfs-bus-event_source-devices-events b/Documentation/ABI/testing/sysfs-bus-event_source-devices-events new file mode 100644 index 000000000000..0adeb524c0d4 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-event_source-devices-events | |||
@@ -0,0 +1,62 @@ | |||
1 | What: /sys/devices/cpu/events/ | ||
2 | /sys/devices/cpu/events/branch-misses | ||
3 | /sys/devices/cpu/events/cache-references | ||
4 | /sys/devices/cpu/events/cache-misses | ||
5 | /sys/devices/cpu/events/stalled-cycles-frontend | ||
6 | /sys/devices/cpu/events/branch-instructions | ||
7 | /sys/devices/cpu/events/stalled-cycles-backend | ||
8 | /sys/devices/cpu/events/instructions | ||
9 | /sys/devices/cpu/events/cpu-cycles | ||
10 | |||
11 | Date: 2013/01/08 | ||
12 | |||
13 | Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> | ||
14 | |||
15 | Description: Generic performance monitoring events | ||
16 | |||
17 | A collection of performance monitoring events that may be | ||
18 | supported by many/most CPUs. These events can be monitored | ||
19 | using the 'perf(1)' tool. | ||
20 | |||
21 | The contents of each file would look like: | ||
22 | |||
23 | event=0xNNNN | ||
24 | |||
25 | where 'N' is a hex digit and the number '0xNNNN' shows the | ||
26 | "raw code" for the perf event identified by the file's | ||
27 | "basename". | ||
28 | |||
29 | |||
30 | What: /sys/devices/cpu/events/PM_LD_MISS_L1 | ||
31 | /sys/devices/cpu/events/PM_LD_REF_L1 | ||
32 | /sys/devices/cpu/events/PM_CYC | ||
33 | /sys/devices/cpu/events/PM_BRU_FIN | ||
34 | /sys/devices/cpu/events/PM_GCT_NOSLOT_CYC | ||
35 | /sys/devices/cpu/events/PM_BRU_MPRED | ||
36 | /sys/devices/cpu/events/PM_INST_CMPL | ||
37 | /sys/devices/cpu/events/PM_CMPLU_STALL | ||
38 | |||
39 | Date: 2013/01/08 | ||
40 | |||
41 | Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> | ||
42 | Linux Powerpc mailing list <linuxppc-dev@ozlabs.org> | ||
43 | |||
44 | Description: POWER-systems specific performance monitoring events | ||
45 | |||
46 | A collection of performance monitoring events that may be | ||
47 | supported by the POWER CPU. These events can be monitored | ||
48 | using the 'perf(1)' tool. | ||
49 | |||
50 | These events may not be supported by other CPUs. | ||
51 | |||
52 | The contents of each file would look like: | ||
53 | |||
54 | event=0xNNNN | ||
55 | |||
56 | where 'N' is a hex digit and the number '0xNNNN' shows the | ||
57 | "raw code" for the perf event identified by the file's | ||
58 | "basename". | ||
59 | |||
60 | Further, multiple terms like 'event=0xNNNN' can be specified | ||
61 | and separated with comma. All available terms are defined in | ||
62 | the /sys/bus/event_source/devices/<dev>/format file. | ||
diff --git a/Documentation/ABI/testing/sysfs-bus-iio-mpu6050 b/Documentation/ABI/testing/sysfs-bus-iio-mpu6050 new file mode 100644 index 000000000000..cb53737aacbf --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-iio-mpu6050 | |||
@@ -0,0 +1,13 @@ | |||
1 | What: /sys/bus/iio/devices/iio:deviceX/in_gyro_matrix | ||
2 | What: /sys/bus/iio/devices/iio:deviceX/in_accel_matrix | ||
3 | What: /sys/bus/iio/devices/iio:deviceX/in_magn_matrix | ||
4 | KernelVersion: 3.4.0 | ||
5 | Contact: linux-iio@vger.kernel.org | ||
6 | Description: | ||
7 | This is mounting matrix for motion sensors. Mounting matrix | ||
8 | is a 3x3 unitary matrix. A typical mounting matrix would look like | ||
9 | [0, 1, 0; 1, 0, 0; 0, 0, -1]. Using this information, it would be | ||
10 | easy to tell the relative positions among sensors as well as their | ||
11 | positions relative to the board that holds these sensors. Identity matrix | ||
12 | [1, 0, 0; 0, 1, 0; 0, 0, 1] means sensor chip and device are perfectly | ||
13 | aligned with each other. All axes are exactly the same. | ||
diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb index b6fbe514a869..c8baaf53594a 100644 --- a/Documentation/ABI/testing/sysfs-bus-usb +++ b/Documentation/ABI/testing/sysfs-bus-usb | |||
@@ -227,3 +227,12 @@ Contact: Lan Tianyu <tianyu.lan@intel.com> | |||
227 | Description: | 227 | Description: |
228 | The /sys/bus/usb/devices/.../(hub interface)/portX | 228 | The /sys/bus/usb/devices/.../(hub interface)/portX |
229 | is usb port device's sysfs directory. | 229 | is usb port device's sysfs directory. |
230 | |||
231 | What: /sys/bus/usb/devices/.../(hub interface)/portX/connect_type | ||
232 | Date: January 2013 | ||
233 | Contact: Lan Tianyu <tianyu.lan@intel.com> | ||
234 | Description: | ||
235 | Some platforms provide usb port connect types through ACPI. | ||
236 | This attribute is to expose these information to user space. | ||
237 | The file will read "hotplug", "wired" and "not used" if the | ||
238 | information is available, and "unknown" otherwise. | ||
diff --git a/Documentation/ABI/testing/sysfs-class-bdi b/Documentation/ABI/testing/sysfs-class-bdi index 5f500977b42f..d773d5697cf5 100644 --- a/Documentation/ABI/testing/sysfs-class-bdi +++ b/Documentation/ABI/testing/sysfs-class-bdi | |||
@@ -48,3 +48,8 @@ max_ratio (read-write) | |||
48 | most of the write-back cache. For example in case of an NFS | 48 | most of the write-back cache. For example in case of an NFS |
49 | mount that is prone to get stuck, or a FUSE mount which cannot | 49 | mount that is prone to get stuck, or a FUSE mount which cannot |
50 | be trusted to play fair. | 50 | be trusted to play fair. |
51 | |||
52 | stable_pages_required (read-only) | ||
53 | |||
54 | If set, the backing device requires that all pages comprising a write | ||
55 | request must not be changed until writeout is complete. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_resources_D0 b/Documentation/ABI/testing/sysfs-devices-power_resources_D0 new file mode 100644 index 000000000000..73b77a6be196 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_resources_D0 | |||
@@ -0,0 +1,13 @@ | |||
1 | What: /sys/devices/.../power_resources_D0/ | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_resources_D0/ directory is only | ||
6 | present for device objects representing ACPI device nodes that | ||
7 | use ACPI power resources for power management. | ||
8 | |||
9 | If present, it contains symbolic links to device directories | ||
10 | representing ACPI power resources that need to be turned on for | ||
11 | the given device node to be in ACPI power state D0. The names | ||
12 | of the links are the same as the names of the directories they | ||
13 | point to. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_resources_D1 b/Documentation/ABI/testing/sysfs-devices-power_resources_D1 new file mode 100644 index 000000000000..30c20703fb8c --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_resources_D1 | |||
@@ -0,0 +1,14 @@ | |||
1 | What: /sys/devices/.../power_resources_D1/ | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_resources_D1/ directory is only | ||
6 | present for device objects representing ACPI device nodes that | ||
7 | use ACPI power resources for power management and support ACPI | ||
8 | power state D1. | ||
9 | |||
10 | If present, it contains symbolic links to device directories | ||
11 | representing ACPI power resources that need to be turned on for | ||
12 | the given device node to be in ACPI power state D1. The names | ||
13 | of the links are the same as the names of the directories they | ||
14 | point to. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_resources_D2 b/Documentation/ABI/testing/sysfs-devices-power_resources_D2 new file mode 100644 index 000000000000..fd9d84b421e1 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_resources_D2 | |||
@@ -0,0 +1,14 @@ | |||
1 | What: /sys/devices/.../power_resources_D2/ | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_resources_D2/ directory is only | ||
6 | present for device objects representing ACPI device nodes that | ||
7 | use ACPI power resources for power management and support ACPI | ||
8 | power state D2. | ||
9 | |||
10 | If present, it contains symbolic links to device directories | ||
11 | representing ACPI power resources that need to be turned on for | ||
12 | the given device node to be in ACPI power state D2. The names | ||
13 | of the links are the same as the names of the directories they | ||
14 | point to. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_resources_D3hot b/Documentation/ABI/testing/sysfs-devices-power_resources_D3hot new file mode 100644 index 000000000000..3df32c20addf --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_resources_D3hot | |||
@@ -0,0 +1,14 @@ | |||
1 | What: /sys/devices/.../power_resources_D3hot/ | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_resources_D3hot/ directory is only | ||
6 | present for device objects representing ACPI device nodes that | ||
7 | use ACPI power resources for power management and support ACPI | ||
8 | power state D3hot. | ||
9 | |||
10 | If present, it contains symbolic links to device directories | ||
11 | representing ACPI power resources that need to be turned on for | ||
12 | the given device node to be in ACPI power state D3hot. The | ||
13 | names of the links are the same as the names of the directories | ||
14 | they point to. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-power_state b/Documentation/ABI/testing/sysfs-devices-power_state new file mode 100644 index 000000000000..7ad9546748f0 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-power_state | |||
@@ -0,0 +1,20 @@ | |||
1 | What: /sys/devices/.../power_state | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../power_state attribute is only present for | ||
6 | device objects representing ACPI device nodes that provide power | ||
7 | management methods. | ||
8 | |||
9 | If present, it contains a string representing the current ACPI | ||
10 | power state of the given device node. Its possible values, | ||
11 | "D0", "D1", "D2", "D3hot", and "D3cold", reflect the power state | ||
12 | names defined by the ACPI specification (ACPI 4 and above). | ||
13 | |||
14 | If the device node uses shared ACPI power resources, this state | ||
15 | determines a list of power resources required not to be turned | ||
16 | off. However, some power resources needed by the device node in | ||
17 | higher-power (lower-number) states may also be ON because of | ||
18 | some other devices using them at the moment. | ||
19 | |||
20 | This attribute is read-only. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-real_power_state b/Documentation/ABI/testing/sysfs-devices-real_power_state new file mode 100644 index 000000000000..8b3527c82a7d --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-real_power_state | |||
@@ -0,0 +1,23 @@ | |||
1 | What: /sys/devices/.../real_power_state | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../real_power_state attribute is only present | ||
6 | for device objects representing ACPI device nodes that provide | ||
7 | power management methods and use ACPI power resources for power | ||
8 | management. | ||
9 | |||
10 | If present, it contains a string representing the real ACPI | ||
11 | power state of the given device node as returned by the _PSC | ||
12 | control method or inferred from the configuration of power | ||
13 | resources. Its possible values, "D0", "D1", "D2", "D3hot", and | ||
14 | "D3cold", reflect the power state names defined by the ACPI | ||
15 | specification (ACPI 4 and above). | ||
16 | |||
17 | In some situations the value of this attribute may be different | ||
18 | from the value of the /sys/devices/.../power_state attribute for | ||
19 | the same device object. If that happens, some shared power | ||
20 | resources used by the device node are only ON because of some | ||
21 | other devices using them at the moment. | ||
22 | |||
23 | This attribute is read-only. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-resource_in_use b/Documentation/ABI/testing/sysfs-devices-resource_in_use new file mode 100644 index 000000000000..b4a3bc5922a3 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-devices-resource_in_use | |||
@@ -0,0 +1,12 @@ | |||
1 | What: /sys/devices/.../resource_in_use | ||
2 | Date: January 2013 | ||
3 | Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
4 | Description: | ||
5 | The /sys/devices/.../resource_in_use attribute is only present | ||
6 | for device objects representing ACPI power resources. | ||
7 | |||
8 | If present, it contains a number (0 or 1) representing the | ||
9 | current status of the given power resource (0 means that the | ||
10 | resource is not in use and therefore it has been turned off). | ||
11 | |||
12 | This attribute is read-only. | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu index 6943133afcb8..9c978dcae07d 100644 --- a/Documentation/ABI/testing/sysfs-devices-system-cpu +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu | |||
@@ -67,20 +67,6 @@ Description: Discover NUMA node a CPU belongs to | |||
67 | /sys/devices/system/cpu/cpu42/node2 -> ../../node/node2 | 67 | /sys/devices/system/cpu/cpu42/node2 -> ../../node/node2 |
68 | 68 | ||
69 | 69 | ||
70 | What: /sys/devices/system/cpu/cpu#/node | ||
71 | Date: October 2009 | ||
72 | Contact: Linux memory management mailing list <linux-mm@kvack.org> | ||
73 | Description: Discover NUMA node a CPU belongs to | ||
74 | |||
75 | When CONFIG_NUMA is enabled, a symbolic link that points | ||
76 | to the corresponding NUMA node directory. | ||
77 | |||
78 | For example, the following symlink is created for cpu42 | ||
79 | in NUMA node 2: | ||
80 | |||
81 | /sys/devices/system/cpu/cpu42/node2 -> ../../node/node2 | ||
82 | |||
83 | |||
84 | What: /sys/devices/system/cpu/cpu#/topology/core_id | 70 | What: /sys/devices/system/cpu/cpu#/topology/core_id |
85 | /sys/devices/system/cpu/cpu#/topology/core_siblings | 71 | /sys/devices/system/cpu/cpu#/topology/core_siblings |
86 | /sys/devices/system/cpu/cpu#/topology/core_siblings_list | 72 | /sys/devices/system/cpu/cpu#/topology/core_siblings_list |
diff --git a/Documentation/ABI/testing/sysfs-driver-hid-srws1 b/Documentation/ABI/testing/sysfs-driver-hid-srws1 new file mode 100644 index 000000000000..d0eba70c7d40 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-driver-hid-srws1 | |||
@@ -0,0 +1,21 @@ | |||
1 | What: /sys/class/leds/SRWS1::<serial>::RPM1 | ||
2 | What: /sys/class/leds/SRWS1::<serial>::RPM2 | ||
3 | What: /sys/class/leds/SRWS1::<serial>::RPM3 | ||
4 | What: /sys/class/leds/SRWS1::<serial>::RPM4 | ||
5 | What: /sys/class/leds/SRWS1::<serial>::RPM5 | ||
6 | What: /sys/class/leds/SRWS1::<serial>::RPM6 | ||
7 | What: /sys/class/leds/SRWS1::<serial>::RPM7 | ||
8 | What: /sys/class/leds/SRWS1::<serial>::RPM8 | ||
9 | What: /sys/class/leds/SRWS1::<serial>::RPM9 | ||
10 | What: /sys/class/leds/SRWS1::<serial>::RPM10 | ||
11 | What: /sys/class/leds/SRWS1::<serial>::RPM11 | ||
12 | What: /sys/class/leds/SRWS1::<serial>::RPM12 | ||
13 | What: /sys/class/leds/SRWS1::<serial>::RPM13 | ||
14 | What: /sys/class/leds/SRWS1::<serial>::RPM14 | ||
15 | What: /sys/class/leds/SRWS1::<serial>::RPM15 | ||
16 | What: /sys/class/leds/SRWS1::<serial>::RPMALL | ||
17 | Date: Jan 2013 | ||
18 | KernelVersion: 3.9 | ||
19 | Contact: Simon Wood <simon@mungewell.org> | ||
20 | Description: Provides a control for turning on/off the LEDs which form | ||
21 | an RPM meter on the front of the controller | ||
diff --git a/Documentation/ABI/testing/sysfs-driver-hid-thingm b/Documentation/ABI/testing/sysfs-driver-hid-thingm new file mode 100644 index 000000000000..abcffeedd20a --- /dev/null +++ b/Documentation/ABI/testing/sysfs-driver-hid-thingm | |||
@@ -0,0 +1,23 @@ | |||
1 | What: /sys/class/leds/blink1::<serial>/rgb | ||
2 | Date: January 2013 | ||
3 | Contact: Vivien Didelot <vivien.didelot@savoirfairelinux.com> | ||
4 | Description: The ThingM blink1 is an USB RGB LED. The color notation is | ||
5 | 3-byte hexadecimal. Read this attribute to get the last set | ||
6 | color. Write the 24-bit hexadecimal color to change the current | ||
7 | LED color. The default color is full white (0xFFFFFF). | ||
8 | For instance, set the color to green with: echo 00FF00 > rgb | ||
9 | |||
10 | What: /sys/class/leds/blink1::<serial>/fade | ||
11 | Date: January 2013 | ||
12 | Contact: Vivien Didelot <vivien.didelot@savoirfairelinux.com> | ||
13 | Description: This attribute allows to set a fade time in milliseconds for | ||
14 | the next color change. Read the attribute to know the current | ||
15 | fade time. The default value is set to 0 (no fade time). For | ||
16 | instance, set a fade time of 2 seconds with: echo 2000 > fade | ||
17 | |||
18 | What: /sys/class/leds/blink1::<serial>/play | ||
19 | Date: January 2013 | ||
20 | Contact: Vivien Didelot <vivien.didelot@savoirfairelinux.com> | ||
21 | Description: This attribute is used to play/pause the light patterns. Write 1 | ||
22 | to start playing, 0 to stop. Reading this attribute returns the | ||
23 | current playing status. | ||
diff --git a/Documentation/ABI/testing/sysfs-kernel-mm-ksm b/Documentation/ABI/testing/sysfs-kernel-mm-ksm new file mode 100644 index 000000000000..73e653ee2481 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-kernel-mm-ksm | |||
@@ -0,0 +1,52 @@ | |||
1 | What: /sys/kernel/mm/ksm | ||
2 | Date: September 2009 | ||
3 | KernelVersion: 2.6.32 | ||
4 | Contact: Linux memory management mailing list <linux-mm@kvack.org> | ||
5 | Description: Interface for Kernel Samepage Merging (KSM) | ||
6 | |||
7 | What: /sys/kernel/mm/ksm/full_scans | ||
8 | What: /sys/kernel/mm/ksm/pages_shared | ||
9 | What: /sys/kernel/mm/ksm/pages_sharing | ||
10 | What: /sys/kernel/mm/ksm/pages_to_scan | ||
11 | What: /sys/kernel/mm/ksm/pages_unshared | ||
12 | What: /sys/kernel/mm/ksm/pages_volatile | ||
13 | What: /sys/kernel/mm/ksm/run | ||
14 | What: /sys/kernel/mm/ksm/sleep_millisecs | ||
15 | Date: September 2009 | ||
16 | Contact: Linux memory management mailing list <linux-mm@kvack.org> | ||
17 | Description: Kernel Samepage Merging daemon sysfs interface | ||
18 | |||
19 | full_scans: how many times all mergeable areas have been | ||
20 | scanned. | ||
21 | |||
22 | pages_shared: how many shared pages are being used. | ||
23 | |||
24 | pages_sharing: how many more sites are sharing them i.e. how | ||
25 | much saved. | ||
26 | |||
27 | pages_to_scan: how many present pages to scan before ksmd goes | ||
28 | to sleep. | ||
29 | |||
30 | pages_unshared: how many pages unique but repeatedly checked | ||
31 | for merging. | ||
32 | |||
33 | pages_volatile: how many pages changing too fast to be placed | ||
34 | in a tree. | ||
35 | |||
36 | run: write 0 to disable ksm, read 0 while ksm is disabled. | ||
37 | write 1 to run ksm, read 1 while ksm is running. | ||
38 | write 2 to disable ksm and unmerge all its pages. | ||
39 | |||
40 | sleep_millisecs: how many milliseconds ksm should sleep between | ||
41 | scans. | ||
42 | |||
43 | See Documentation/vm/ksm.txt for more information. | ||
44 | |||
45 | What: /sys/kernel/mm/ksm/merge_across_nodes | ||
46 | Date: January 2013 | ||
47 | KernelVersion: 3.9 | ||
48 | Contact: Linux memory management mailing list <linux-mm@kvack.org> | ||
49 | Description: Control merging pages across different NUMA nodes. | ||
50 | |||
51 | When it is set to 0 only pages from the same node are merged, | ||
52 | otherwise pages from all nodes can be merged together (default). | ||
diff --git a/Documentation/ABI/testing/sysfs-platform-ts5500 b/Documentation/ABI/testing/sysfs-platform-ts5500 new file mode 100644 index 000000000000..c88375a537a1 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-platform-ts5500 | |||
@@ -0,0 +1,47 @@ | |||
1 | What: /sys/devices/platform/ts5500/adc | ||
2 | Date: January 2013 | ||
3 | KernelVersion: 3.7 | ||
4 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
5 | Description: | ||
6 | Indicates the presence of an A/D Converter. If it is present, | ||
7 | it will display "1", otherwise "0". | ||
8 | |||
9 | What: /sys/devices/platform/ts5500/ereset | ||
10 | Date: January 2013 | ||
11 | KernelVersion: 3.7 | ||
12 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
13 | Description: | ||
14 | Indicates the presence of an external reset. If it is present, | ||
15 | it will display "1", otherwise "0". | ||
16 | |||
17 | What: /sys/devices/platform/ts5500/id | ||
18 | Date: January 2013 | ||
19 | KernelVersion: 3.7 | ||
20 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
21 | Description: | ||
22 | Product ID of the TS board. TS-5500 ID is 0x60. | ||
23 | |||
24 | What: /sys/devices/platform/ts5500/jumpers | ||
25 | Date: January 2013 | ||
26 | KernelVersion: 3.7 | ||
27 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
28 | Description: | ||
29 | Bitfield showing the jumpers' state. If a jumper is present, | ||
30 | the corresponding bit is set. For instance, 0x0e means jumpers | ||
31 | 2, 3 and 4 are set. | ||
32 | |||
33 | What: /sys/devices/platform/ts5500/rs485 | ||
34 | Date: January 2013 | ||
35 | KernelVersion: 3.7 | ||
36 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
37 | Description: | ||
38 | Indicates the presence of the RS485 option. If it is present, | ||
39 | it will display "1", otherwise "0". | ||
40 | |||
41 | What: /sys/devices/platform/ts5500/sram | ||
42 | Date: January 2013 | ||
43 | KernelVersion: 3.7 | ||
44 | Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com> | ||
45 | Description: | ||
46 | Indicates the presence of the SRAM option. If it is present, | ||
47 | it will display "1", otherwise "0". | ||
diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle index 495e5ba1634c..e00b8f0dde52 100644 --- a/Documentation/CodingStyle +++ b/Documentation/CodingStyle | |||
@@ -546,15 +546,7 @@ config AUDIT | |||
546 | logging of avc messages output). Does not do system-call | 546 | logging of avc messages output). Does not do system-call |
547 | auditing without CONFIG_AUDITSYSCALL. | 547 | auditing without CONFIG_AUDITSYSCALL. |
548 | 548 | ||
549 | Features that might still be considered unstable should be defined as | 549 | Seriously dangerous features (such as write support for certain |
550 | dependent on "EXPERIMENTAL": | ||
551 | |||
552 | config SLUB | ||
553 | depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT | ||
554 | bool "SLUB (Unqueued Allocator)" | ||
555 | ... | ||
556 | |||
557 | while seriously dangerous features (such as write support for certain | ||
558 | filesystems) should advertise this prominently in their prompt string: | 550 | filesystems) should advertise this prominently in their prompt string: |
559 | 551 | ||
560 | config ADFS_FS_RW | 552 | config ADFS_FS_RW |
diff --git a/Documentation/DocBook/80211.tmpl b/Documentation/DocBook/80211.tmpl index 42e7f030cb16..284ced7a228f 100644 --- a/Documentation/DocBook/80211.tmpl +++ b/Documentation/DocBook/80211.tmpl | |||
@@ -107,8 +107,8 @@ | |||
107 | !Finclude/net/cfg80211.h key_params | 107 | !Finclude/net/cfg80211.h key_params |
108 | !Finclude/net/cfg80211.h survey_info_flags | 108 | !Finclude/net/cfg80211.h survey_info_flags |
109 | !Finclude/net/cfg80211.h survey_info | 109 | !Finclude/net/cfg80211.h survey_info |
110 | !Finclude/net/cfg80211.h beacon_parameters | 110 | !Finclude/net/cfg80211.h cfg80211_beacon_data |
111 | !Finclude/net/cfg80211.h plink_actions | 111 | !Finclude/net/cfg80211.h cfg80211_ap_settings |
112 | !Finclude/net/cfg80211.h station_parameters | 112 | !Finclude/net/cfg80211.h station_parameters |
113 | !Finclude/net/cfg80211.h station_info_flags | 113 | !Finclude/net/cfg80211.h station_info_flags |
114 | !Finclude/net/cfg80211.h rate_info_flags | 114 | !Finclude/net/cfg80211.h rate_info_flags |
diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl index 4ee2304f82f9..f9df3b872c16 100644 --- a/Documentation/DocBook/drm.tmpl +++ b/Documentation/DocBook/drm.tmpl | |||
@@ -743,6 +743,10 @@ char *date;</synopsis> | |||
743 | These two operations are mandatory for GEM drivers that support DRM | 743 | These two operations are mandatory for GEM drivers that support DRM |
744 | PRIME. | 744 | PRIME. |
745 | </para> | 745 | </para> |
746 | <sect4> | ||
747 | <title>DRM PRIME Helper Functions Reference</title> | ||
748 | !Pdrivers/gpu/drm/drm_prime.c PRIME Helpers | ||
749 | </sect4> | ||
746 | </sect3> | 750 | </sect3> |
747 | <sect3 id="drm-gem-objects-mapping"> | 751 | <sect3 id="drm-gem-objects-mapping"> |
748 | <title>GEM Objects Mapping</title> | 752 | <title>GEM Objects Mapping</title> |
@@ -978,10 +982,25 @@ int max_width, max_height;</synopsis> | |||
978 | If the parameters are deemed valid, drivers then create, initialize and | 982 | If the parameters are deemed valid, drivers then create, initialize and |
979 | return an instance of struct <structname>drm_framebuffer</structname>. | 983 | return an instance of struct <structname>drm_framebuffer</structname>. |
980 | If desired the instance can be embedded in a larger driver-specific | 984 | If desired the instance can be embedded in a larger driver-specific |
981 | structure. The new instance is initialized with a call to | 985 | structure. Drivers must fill its <structfield>width</structfield>, |
982 | <function>drm_framebuffer_init</function> which takes a pointer to DRM | 986 | <structfield>height</structfield>, <structfield>pitches</structfield>, |
983 | frame buffer operations (struct | 987 | <structfield>offsets</structfield>, <structfield>depth</structfield>, |
984 | <structname>drm_framebuffer_funcs</structname>). Frame buffer operations are | 988 | <structfield>bits_per_pixel</structfield> and |
989 | <structfield>pixel_format</structfield> fields from the values passed | ||
990 | through the <parameter>drm_mode_fb_cmd2</parameter> argument. They | ||
991 | should call the <function>drm_helper_mode_fill_fb_struct</function> | ||
992 | helper function to do so. | ||
993 | </para> | ||
994 | |||
995 | <para> | ||
996 | The initailization of the new framebuffer instance is finalized with a | ||
997 | call to <function>drm_framebuffer_init</function> which takes a pointer | ||
998 | to DRM frame buffer operations (struct | ||
999 | <structname>drm_framebuffer_funcs</structname>). Note that this function | ||
1000 | publishes the framebuffer and so from this point on it can be accessed | ||
1001 | concurrently from other threads. Hence it must be the last step in the | ||
1002 | driver's framebuffer initialization sequence. Frame buffer operations | ||
1003 | are | ||
985 | <itemizedlist> | 1004 | <itemizedlist> |
986 | <listitem> | 1005 | <listitem> |
987 | <synopsis>int (*create_handle)(struct drm_framebuffer *fb, | 1006 | <synopsis>int (*create_handle)(struct drm_framebuffer *fb, |
@@ -1022,16 +1041,16 @@ int max_width, max_height;</synopsis> | |||
1022 | </itemizedlist> | 1041 | </itemizedlist> |
1023 | </para> | 1042 | </para> |
1024 | <para> | 1043 | <para> |
1025 | After initializing the <structname>drm_framebuffer</structname> | 1044 | The lifetime of a drm framebuffer is controlled with a reference count, |
1026 | instance drivers must fill its <structfield>width</structfield>, | 1045 | drivers can grab additional references with |
1027 | <structfield>height</structfield>, <structfield>pitches</structfield>, | 1046 | <function>drm_framebuffer_reference</function> </para> and drop them |
1028 | <structfield>offsets</structfield>, <structfield>depth</structfield>, | 1047 | again with <function>drm_framebuffer_unreference</function>. For |
1029 | <structfield>bits_per_pixel</structfield> and | 1048 | driver-private framebuffers for which the last reference is never |
1030 | <structfield>pixel_format</structfield> fields from the values passed | 1049 | dropped (e.g. for the fbdev framebuffer when the struct |
1031 | through the <parameter>drm_mode_fb_cmd2</parameter> argument. They | 1050 | <structname>drm_framebuffer</structname> is embedded into the fbdev |
1032 | should call the <function>drm_helper_mode_fill_fb_struct</function> | 1051 | helper struct) drivers can manually clean up a framebuffer at module |
1033 | helper function to do so. | 1052 | unload time with |
1034 | </para> | 1053 | <function>drm_framebuffer_unregister_private</function>. |
1035 | </sect2> | 1054 | </sect2> |
1036 | <sect2> | 1055 | <sect2> |
1037 | <title>Output Polling</title> | 1056 | <title>Output Polling</title> |
@@ -1043,6 +1062,22 @@ int max_width, max_height;</synopsis> | |||
1043 | operation. | 1062 | operation. |
1044 | </para> | 1063 | </para> |
1045 | </sect2> | 1064 | </sect2> |
1065 | <sect2> | ||
1066 | <title>Locking</title> | ||
1067 | <para> | ||
1068 | Beside some lookup structures with their own locking (which is hidden | ||
1069 | behind the interface functions) most of the modeset state is protected | ||
1070 | by the <code>dev-<mode_config.lock</code> mutex and additionally | ||
1071 | per-crtc locks to allow cursor updates, pageflips and similar operations | ||
1072 | to occur concurrently with background tasks like output detection. | ||
1073 | Operations which cross domains like a full modeset always grab all | ||
1074 | locks. Drivers there need to protect resources shared between crtcs with | ||
1075 | additional locking. They also need to be careful to always grab the | ||
1076 | relevant crtc locks if a modset functions touches crtc state, e.g. for | ||
1077 | load detection (which does only grab the <code>mode_config.lock</code> | ||
1078 | to allow concurrent screen updates on live crtcs). | ||
1079 | </para> | ||
1080 | </sect2> | ||
1046 | </sect1> | 1081 | </sect1> |
1047 | 1082 | ||
1048 | <!-- Internals: kms initialization and cleanup --> | 1083 | <!-- Internals: kms initialization and cleanup --> |
@@ -1126,6 +1161,12 @@ int max_width, max_height;</synopsis> | |||
1126 | any new rendering to the frame buffer until the page flip completes. | 1161 | any new rendering to the frame buffer until the page flip completes. |
1127 | </para> | 1162 | </para> |
1128 | <para> | 1163 | <para> |
1164 | If a page flip can be successfully scheduled the driver must set the | ||
1165 | <code>drm_crtc-<fb</code> field to the new framebuffer pointed to | ||
1166 | by <code>fb</code>. This is important so that the reference counting | ||
1167 | on framebuffers stays balanced. | ||
1168 | </para> | ||
1169 | <para> | ||
1129 | If a page flip is already pending, the | 1170 | If a page flip is already pending, the |
1130 | <methodname>page_flip</methodname> operation must return | 1171 | <methodname>page_flip</methodname> operation must return |
1131 | -<errorname>EBUSY</errorname>. | 1172 | -<errorname>EBUSY</errorname>. |
@@ -1609,6 +1650,10 @@ void intel_crt_init(struct drm_device *dev) | |||
1609 | make its properties available to applications. | 1650 | make its properties available to applications. |
1610 | </para> | 1651 | </para> |
1611 | </sect2> | 1652 | </sect2> |
1653 | <sect2> | ||
1654 | <title>KMS API Functions</title> | ||
1655 | !Edrivers/gpu/drm/drm_crtc.c | ||
1656 | </sect2> | ||
1612 | </sect1> | 1657 | </sect1> |
1613 | 1658 | ||
1614 | <!-- Internals: kms helper functions --> | 1659 | <!-- Internals: kms helper functions --> |
@@ -2104,6 +2149,7 @@ void intel_crt_init(struct drm_device *dev) | |||
2104 | <title>fbdev Helper Functions Reference</title> | 2149 | <title>fbdev Helper Functions Reference</title> |
2105 | !Pdrivers/gpu/drm/drm_fb_helper.c fbdev helpers | 2150 | !Pdrivers/gpu/drm/drm_fb_helper.c fbdev helpers |
2106 | !Edrivers/gpu/drm/drm_fb_helper.c | 2151 | !Edrivers/gpu/drm/drm_fb_helper.c |
2152 | !Iinclude/drm/drm_fb_helper.h | ||
2107 | </sect2> | 2153 | </sect2> |
2108 | <sect2> | 2154 | <sect2> |
2109 | <title>Display Port Helper Functions Reference</title> | 2155 | <title>Display Port Helper Functions Reference</title> |
@@ -2111,6 +2157,10 @@ void intel_crt_init(struct drm_device *dev) | |||
2111 | !Iinclude/drm/drm_dp_helper.h | 2157 | !Iinclude/drm/drm_dp_helper.h |
2112 | !Edrivers/gpu/drm/drm_dp_helper.c | 2158 | !Edrivers/gpu/drm/drm_dp_helper.c |
2113 | </sect2> | 2159 | </sect2> |
2160 | <sect2> | ||
2161 | <title>EDID Helper Functions Reference</title> | ||
2162 | !Edrivers/gpu/drm/drm_edid.c | ||
2163 | </sect2> | ||
2114 | </sect1> | 2164 | </sect1> |
2115 | 2165 | ||
2116 | <!-- Internals: vertical blanking --> | 2166 | <!-- Internals: vertical blanking --> |
diff --git a/Documentation/DocBook/kernel-hacking.tmpl b/Documentation/DocBook/kernel-hacking.tmpl index eee71426ecb8..d0758b241b23 100644 --- a/Documentation/DocBook/kernel-hacking.tmpl +++ b/Documentation/DocBook/kernel-hacking.tmpl | |||
@@ -945,7 +945,7 @@ printk(KERN_INFO "my ip: %pI4\n", &ipaddress); | |||
945 | 945 | ||
946 | <sect1 id="sym-exportsymbols"> | 946 | <sect1 id="sym-exportsymbols"> |
947 | <title><function>EXPORT_SYMBOL()</function> | 947 | <title><function>EXPORT_SYMBOL()</function> |
948 | <filename class="headerfile">include/linux/module.h</filename></title> | 948 | <filename class="headerfile">include/linux/export.h</filename></title> |
949 | 949 | ||
950 | <para> | 950 | <para> |
951 | This is the classic method of exporting a symbol: dynamically | 951 | This is the classic method of exporting a symbol: dynamically |
@@ -955,7 +955,7 @@ printk(KERN_INFO "my ip: %pI4\n", &ipaddress); | |||
955 | 955 | ||
956 | <sect1 id="sym-exportsymbols-gpl"> | 956 | <sect1 id="sym-exportsymbols-gpl"> |
957 | <title><function>EXPORT_SYMBOL_GPL()</function> | 957 | <title><function>EXPORT_SYMBOL_GPL()</function> |
958 | <filename class="headerfile">include/linux/module.h</filename></title> | 958 | <filename class="headerfile">include/linux/export.h</filename></title> |
959 | 959 | ||
960 | <para> | 960 | <para> |
961 | Similar to <function>EXPORT_SYMBOL()</function> except that the | 961 | Similar to <function>EXPORT_SYMBOL()</function> except that the |
@@ -1185,13 +1185,6 @@ static struct block_device_operations opt_fops = { | |||
1185 | </para> | 1185 | </para> |
1186 | 1186 | ||
1187 | <para> | 1187 | <para> |
1188 | You may well want to make your CONFIG option only visible if | ||
1189 | <symbol>CONFIG_EXPERIMENTAL</symbol> is enabled: this serves as a | ||
1190 | warning to users. There many other fancy things you can do: see | ||
1191 | the various <filename>Kconfig</filename> files for ideas. | ||
1192 | </para> | ||
1193 | |||
1194 | <para> | ||
1195 | In your description of the option, make sure you address both the | 1188 | In your description of the option, make sure you address both the |
1196 | expert user and the user who knows nothing about your feature. Mention | 1189 | expert user and the user who knows nothing about your feature. Mention |
1197 | incompatibilities and issues here. <emphasis> Definitely | 1190 | incompatibilities and issues here. <emphasis> Definitely |
diff --git a/Documentation/DocBook/kgdb.tmpl b/Documentation/DocBook/kgdb.tmpl index 4ee4ba3509fc..f77358f96930 100644 --- a/Documentation/DocBook/kgdb.tmpl +++ b/Documentation/DocBook/kgdb.tmpl | |||
@@ -94,10 +94,8 @@ | |||
94 | <sect1 id="CompileKGDB"> | 94 | <sect1 id="CompileKGDB"> |
95 | <title>Kernel config options for kgdb</title> | 95 | <title>Kernel config options for kgdb</title> |
96 | <para> | 96 | <para> |
97 | To enable <symbol>CONFIG_KGDB</symbol> you should first turn on | 97 | To enable <symbol>CONFIG_KGDB</symbol> you should look under |
98 | "Prompt for development and/or incomplete code/drivers" | 98 | "Kernel debugging" and select "KGDB: kernel debugger". |
99 | (CONFIG_EXPERIMENTAL) in "General setup", then under the | ||
100 | "Kernel debugging" select "KGDB: kernel debugger". | ||
101 | </para> | 99 | </para> |
102 | <para> | 100 | <para> |
103 | While it is not a hard requirement that you have symbols in your | 101 | While it is not a hard requirement that you have symbols in your |
diff --git a/Documentation/DocBook/media/dvb/dvbapi.xml b/Documentation/DocBook/media/dvb/dvbapi.xml index 757488b24f4f..0197bcc7842d 100644 --- a/Documentation/DocBook/media/dvb/dvbapi.xml +++ b/Documentation/DocBook/media/dvb/dvbapi.xml | |||
@@ -84,7 +84,7 @@ Added ISDB-T test originally written by Patrick Boettcher | |||
84 | 84 | ||
85 | 85 | ||
86 | <title>LINUX DVB API</title> | 86 | <title>LINUX DVB API</title> |
87 | <subtitle>Version 5.8</subtitle> | 87 | <subtitle>Version 5.10</subtitle> |
88 | <!-- ADD THE CHAPTERS HERE --> | 88 | <!-- ADD THE CHAPTERS HERE --> |
89 | <chapter id="dvb_introdution"> | 89 | <chapter id="dvb_introdution"> |
90 | &sub-intro; | 90 | &sub-intro; |
diff --git a/Documentation/DocBook/media/dvb/dvbproperty.xml b/Documentation/DocBook/media/dvb/dvbproperty.xml index 957e3acaae8e..4a5eaeed0b9e 100644 --- a/Documentation/DocBook/media/dvb/dvbproperty.xml +++ b/Documentation/DocBook/media/dvb/dvbproperty.xml | |||
@@ -7,14 +7,41 @@ the capability ioctls weren't implemented yet via the new way.</para> | |||
7 | <para>The typical usage for the <constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant> | 7 | <para>The typical usage for the <constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant> |
8 | API is to replace the ioctl's were the <link linkend="dvb-frontend-parameters"> | 8 | API is to replace the ioctl's were the <link linkend="dvb-frontend-parameters"> |
9 | struct <constant>dvb_frontend_parameters</constant></link> were used.</para> | 9 | struct <constant>dvb_frontend_parameters</constant></link> were used.</para> |
10 | <section id="dtv-stats"> | ||
11 | <title>DTV stats type</title> | ||
12 | <programlisting> | ||
13 | struct dtv_stats { | ||
14 | __u8 scale; /* enum fecap_scale_params type */ | ||
15 | union { | ||
16 | __u64 uvalue; /* for counters and relative scales */ | ||
17 | __s64 svalue; /* for 1/1000 dB measures */ | ||
18 | }; | ||
19 | } __packed; | ||
20 | </programlisting> | ||
21 | </section> | ||
22 | <section id="dtv-fe-stats"> | ||
23 | <title>DTV stats type</title> | ||
24 | <programlisting> | ||
25 | #define MAX_DTV_STATS 4 | ||
26 | |||
27 | struct dtv_fe_stats { | ||
28 | __u8 len; | ||
29 | struct dtv_stats stat[MAX_DTV_STATS]; | ||
30 | } __packed; | ||
31 | </programlisting> | ||
32 | </section> | ||
33 | |||
10 | <section id="dtv-property"> | 34 | <section id="dtv-property"> |
11 | <title>DTV property type</title> | 35 | <title>DTV property type</title> |
12 | <programlisting> | 36 | <programlisting> |
13 | /* Reserved fields should be set to 0 */ | 37 | /* Reserved fields should be set to 0 */ |
38 | |||
14 | struct dtv_property { | 39 | struct dtv_property { |
15 | __u32 cmd; | 40 | __u32 cmd; |
41 | __u32 reserved[3]; | ||
16 | union { | 42 | union { |
17 | __u32 data; | 43 | __u32 data; |
44 | struct dtv_fe_stats st; | ||
18 | struct { | 45 | struct { |
19 | __u8 data[32]; | 46 | __u8 data[32]; |
20 | __u32 len; | 47 | __u32 len; |
@@ -440,7 +467,7 @@ typedef enum fe_delivery_system { | |||
440 | <title><constant>DTV-ISDBT-LAYER*</constant> parameters</title> | 467 | <title><constant>DTV-ISDBT-LAYER*</constant> parameters</title> |
441 | <para>ISDB-T channels can be coded hierarchically. As opposed to DVB-T in | 468 | <para>ISDB-T channels can be coded hierarchically. As opposed to DVB-T in |
442 | ISDB-T hierarchical layers can be decoded simultaneously. For that | 469 | ISDB-T hierarchical layers can be decoded simultaneously. For that |
443 | reason a ISDB-T demodulator has 3 viterbi and 3 reed-solomon-decoders.</para> | 470 | reason a ISDB-T demodulator has 3 Viterbi and 3 Reed-Solomon decoders.</para> |
444 | <para>ISDB-T has 3 hierarchical layers which each can use a part of the | 471 | <para>ISDB-T has 3 hierarchical layers which each can use a part of the |
445 | available segments. The total number of segments over all layers has | 472 | available segments. The total number of segments over all layers has |
446 | to 13 in ISDB-T.</para> | 473 | to 13 in ISDB-T.</para> |
@@ -850,6 +877,147 @@ enum fe_interleaving { | |||
850 | <para>use the special macro LNA_AUTO to set LNA auto</para> | 877 | <para>use the special macro LNA_AUTO to set LNA auto</para> |
851 | </section> | 878 | </section> |
852 | </section> | 879 | </section> |
880 | |||
881 | <section id="frontend-stat-properties"> | ||
882 | <title>Frontend statistics indicators</title> | ||
883 | <para>The values are returned via <constant>dtv_property.stat</constant>. | ||
884 | If the property is supported, <constant>dtv_property.stat.len</constant> is bigger than zero.</para> | ||
885 | <para>For most delivery systems, <constant>dtv_property.stat.len</constant> | ||
886 | will be 1 if the stats is supported, and the properties will | ||
887 | return a single value for each parameter.</para> | ||
888 | <para>It should be noticed, however, that new OFDM delivery systems | ||
889 | like ISDB can use different modulation types for each group of | ||
890 | carriers. On such standards, up to 3 groups of statistics can be | ||
891 | provided, and <constant>dtv_property.stat.len</constant> is updated | ||
892 | to reflect the "global" metrics, plus one metric per each carrier | ||
893 | group (called "layer" on ISDB).</para> | ||
894 | <para>So, in order to be consistent with other delivery systems, the first | ||
895 | value at <link linkend="dtv-stats"><constant>dtv_property.stat.dtv_stats</constant></link> | ||
896 | array refers to the global metric. The other elements of the array | ||
897 | represent each layer, starting from layer A(index 1), | ||
898 | layer B (index 2) and so on.</para> | ||
899 | <para>The number of filled elements are stored at <constant>dtv_property.stat.len</constant>.</para> | ||
900 | <para>Each element of the <constant>dtv_property.stat.dtv_stats</constant> array consists on two elements:</para> | ||
901 | <itemizedlist mark='opencircle'> | ||
902 | <listitem><para><constant>svalue</constant> or <constant>uvalue</constant>, where | ||
903 | <constant>svalue</constant> is for signed values of the measure (dB measures) | ||
904 | and <constant>uvalue</constant> is for unsigned values (counters, relative scale)</para></listitem> | ||
905 | <listitem><para><constant>scale</constant> - Scale for the value. It can be:</para> | ||
906 | <section id = "fecap-scale-params"> | ||
907 | <itemizedlist mark='bullet'> | ||
908 | <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - The parameter is supported by the frontend, but it was not possible to collect it (could be a transitory or permanent condition)</para></listitem> | ||
909 | <listitem><para><constant>FE_SCALE_DECIBEL</constant> - parameter is a signed value, measured in 1/1000 dB</para></listitem> | ||
910 | <listitem><para><constant>FE_SCALE_RELATIVE</constant> - parameter is a unsigned value, where 0 means 0% and 65535 means 100%.</para></listitem> | ||
911 | <listitem><para><constant>FE_SCALE_COUNTER</constant> - parameter is a unsigned value that counts the occurrence of an event, like bit error, block error, or lapsed time.</para></listitem> | ||
912 | </itemizedlist> | ||
913 | </section> | ||
914 | </listitem> | ||
915 | </itemizedlist> | ||
916 | <section id="DTV-STAT-SIGNAL-STRENGTH"> | ||
917 | <title><constant>DTV_STAT_SIGNAL_STRENGTH</constant></title> | ||
918 | <para>Indicates the signal strength level at the analog part of the tuner or of the demod.</para> | ||
919 | <para>Possible scales for this metric are:</para> | ||
920 | <itemizedlist mark='bullet'> | ||
921 | <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> | ||
922 | <listitem><constant>FE_SCALE_DECIBEL</constant> - signal strength is in 0.0001 dBm units, power measured in miliwatts. This value is generally negative.</listitem> | ||
923 | <listitem><constant>FE_SCALE_RELATIVE</constant> - The frontend provides a 0% to 100% measurement for power (actually, 0 to 65535).</listitem> | ||
924 | </itemizedlist> | ||
925 | </section> | ||
926 | <section id="DTV-STAT-CNR"> | ||
927 | <title><constant>DTV_STAT_CNR</constant></title> | ||
928 | <para>Indicates the Signal to Noise ratio for the main carrier.</para> | ||
929 | <para>Possible scales for this metric are:</para> | ||
930 | <itemizedlist mark='bullet'> | ||
931 | <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> | ||
932 | <listitem><constant>FE_SCALE_DECIBEL</constant> - Signal/Noise ratio is in 0.0001 dB units.</listitem> | ||
933 | <listitem><constant>FE_SCALE_RELATIVE</constant> - The frontend provides a 0% to 100% measurement for Signal/Noise (actually, 0 to 65535).</listitem> | ||
934 | </itemizedlist> | ||
935 | </section> | ||
936 | <section id="DTV-STAT-PRE-ERROR-BIT-COUNT"> | ||
937 | <title><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></title> | ||
938 | <para>Measures the number of bit errors before the forward error correction (FEC) on the inner coding block (before Viterbi, LDPC or other inner code).</para> | ||
939 | <para>This measure is taken during the same interval as <constant>DTV_STAT_PRE_TOTAL_BIT_COUNT</constant>.</para> | ||
940 | <para>In order to get the BER (Bit Error Rate) measurement, it should be divided by | ||
941 | <link linkend="DTV-STAT-PRE-TOTAL-BIT-COUNT"><constant>DTV_STAT_PRE_TOTAL_BIT_COUNT</constant></link>.</para> | ||
942 | <para>This measurement is monotonically increased, as the frontend gets more bit count measurements. | ||
943 | The frontend may reset it when a channel/transponder is tuned.</para> | ||
944 | <para>Possible scales for this metric are:</para> | ||
945 | <itemizedlist mark='bullet'> | ||
946 | <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> | ||
947 | <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted before the inner coding.</listitem> | ||
948 | </itemizedlist> | ||
949 | </section> | ||
950 | <section id="DTV-STAT-PRE-TOTAL-BIT-COUNT"> | ||
951 | <title><constant>DTV_STAT_PRE_TOTAL_BIT_COUNT</constant></title> | ||
952 | <para>Measures the amount of bits received before the inner code block, during the same period as | ||
953 | <link linkend="DTV-STAT-PRE-ERROR-BIT-COUNT"><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></link> measurement was taken.</para> | ||
954 | <para>It should be noticed that this measurement can be smaller than the total amount of bits on the transport stream, | ||
955 | as the frontend may need to manually restart the measurement, loosing some data between each measurement interval.</para> | ||
956 | <para>This measurement is monotonically increased, as the frontend gets more bit count measurements. | ||
957 | The frontend may reset it when a channel/transponder is tuned.</para> | ||
958 | <para>Possible scales for this metric are:</para> | ||
959 | <itemizedlist mark='bullet'> | ||
960 | <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> | ||
961 | <listitem><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring | ||
962 | <link linkend="DTV-STAT-PRE-ERROR-BIT-COUNT"><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></link>.</listitem> | ||
963 | </itemizedlist> | ||
964 | </section> | ||
965 | <section id="DTV-STAT-POST-ERROR-BIT-COUNT"> | ||
966 | <title><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></title> | ||
967 | <para>Measures the number of bit errors after the forward error correction (FEC) done by inner code block (after Viterbi, LDPC or other inner code).</para> | ||
968 | <para>This measure is taken during the same interval as <constant>DTV_STAT_POST_TOTAL_BIT_COUNT</constant>.</para> | ||
969 | <para>In order to get the BER (Bit Error Rate) measurement, it should be divided by | ||
970 | <link linkend="DTV-STAT-POST-TOTAL-BIT-COUNT"><constant>DTV_STAT_POST_TOTAL_BIT_COUNT</constant></link>.</para> | ||
971 | <para>This measurement is monotonically increased, as the frontend gets more bit count measurements. | ||
972 | The frontend may reset it when a channel/transponder is tuned.</para> | ||
973 | <para>Possible scales for this metric are:</para> | ||
974 | <itemizedlist mark='bullet'> | ||
975 | <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> | ||
976 | <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted after the inner coding.</listitem> | ||
977 | </itemizedlist> | ||
978 | </section> | ||
979 | <section id="DTV-STAT-POST-TOTAL-BIT-COUNT"> | ||
980 | <title><constant>DTV_STAT_POST_TOTAL_BIT_COUNT</constant></title> | ||
981 | <para>Measures the amount of bits received after the inner coding, during the same period as | ||
982 | <link linkend="DTV-STAT-POST-ERROR-BIT-COUNT"><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></link> measurement was taken.</para> | ||
983 | <para>It should be noticed that this measurement can be smaller than the total amount of bits on the transport stream, | ||
984 | as the frontend may need to manually restart the measurement, loosing some data between each measurement interval.</para> | ||
985 | <para>This measurement is monotonically increased, as the frontend gets more bit count measurements. | ||
986 | The frontend may reset it when a channel/transponder is tuned.</para> | ||
987 | <para>Possible scales for this metric are:</para> | ||
988 | <itemizedlist mark='bullet'> | ||
989 | <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> | ||
990 | <listitem><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring | ||
991 | <link linkend="DTV-STAT-POST-ERROR-BIT-COUNT"><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></link>.</listitem> | ||
992 | </itemizedlist> | ||
993 | </section> | ||
994 | <section id="DTV-STAT-ERROR-BLOCK-COUNT"> | ||
995 | <title><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></title> | ||
996 | <para>Measures the number of block errors after the outer forward error correction coding (after Reed-Solomon or other outer code).</para> | ||
997 | <para>This measurement is monotonically increased, as the frontend gets more bit count measurements. | ||
998 | The frontend may reset it when a channel/transponder is tuned.</para> | ||
999 | <para>Possible scales for this metric are:</para> | ||
1000 | <itemizedlist mark='bullet'> | ||
1001 | <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> | ||
1002 | <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error blocks counted after the outer coding.</listitem> | ||
1003 | </itemizedlist> | ||
1004 | </section> | ||
1005 | <section id="DTV-STAT-TOTAL-BLOCK-COUNT"> | ||
1006 | <title><constant>DTV-STAT_TOTAL_BLOCK_COUNT</constant></title> | ||
1007 | <para>Measures the total number of blocks received during the same period as | ||
1008 | <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link> measurement was taken.</para> | ||
1009 | <para>It can be used to calculate the PER indicator, by dividing | ||
1010 | <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link> | ||
1011 | by <link linkend="DTV-STAT-TOTAL-BLOCK-COUNT"><constant>DTV-STAT-TOTAL-BLOCK-COUNT</constant></link>.</para> | ||
1012 | <para>Possible scales for this metric are:</para> | ||
1013 | <itemizedlist mark='bullet'> | ||
1014 | <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem> | ||
1015 | <listitem><constant>FE_SCALE_COUNTER</constant> - Number of blocks counted while measuring | ||
1016 | <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link>.</listitem> | ||
1017 | </itemizedlist> | ||
1018 | </section> | ||
1019 | </section> | ||
1020 | |||
853 | <section id="frontend-property-terrestrial-systems"> | 1021 | <section id="frontend-property-terrestrial-systems"> |
854 | <title>Properties used on terrestrial delivery systems</title> | 1022 | <title>Properties used on terrestrial delivery systems</title> |
855 | <section id="dvbt-params"> | 1023 | <section id="dvbt-params"> |
@@ -871,6 +1039,7 @@ enum fe_interleaving { | |||
871 | <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem> | 1039 | <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem> |
872 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> | 1040 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> |
873 | </itemizedlist> | 1041 | </itemizedlist> |
1042 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
874 | </section> | 1043 | </section> |
875 | <section id="dvbt2-params"> | 1044 | <section id="dvbt2-params"> |
876 | <title>DVB-T2 delivery system</title> | 1045 | <title>DVB-T2 delivery system</title> |
@@ -895,6 +1064,7 @@ enum fe_interleaving { | |||
895 | <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem> | 1064 | <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem> |
896 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> | 1065 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> |
897 | </itemizedlist> | 1066 | </itemizedlist> |
1067 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
898 | </section> | 1068 | </section> |
899 | <section id="isdbt"> | 1069 | <section id="isdbt"> |
900 | <title>ISDB-T delivery system</title> | 1070 | <title>ISDB-T delivery system</title> |
@@ -948,6 +1118,7 @@ enum fe_interleaving { | |||
948 | <listitem><para><link linkend="DTV-ISDBT-LAYER-SEGMENT-COUNT"><constant>DTV_ISDBT_LAYERC_SEGMENT_COUNT</constant></link></para></listitem> | 1118 | <listitem><para><link linkend="DTV-ISDBT-LAYER-SEGMENT-COUNT"><constant>DTV_ISDBT_LAYERC_SEGMENT_COUNT</constant></link></para></listitem> |
949 | <listitem><para><link linkend="DTV-ISDBT-LAYER-TIME-INTERLEAVING"><constant>DTV_ISDBT_LAYERC_TIME_INTERLEAVING</constant></link></para></listitem> | 1119 | <listitem><para><link linkend="DTV-ISDBT-LAYER-TIME-INTERLEAVING"><constant>DTV_ISDBT_LAYERC_TIME_INTERLEAVING</constant></link></para></listitem> |
950 | </itemizedlist> | 1120 | </itemizedlist> |
1121 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
951 | </section> | 1122 | </section> |
952 | <section id="atsc-params"> | 1123 | <section id="atsc-params"> |
953 | <title>ATSC delivery system</title> | 1124 | <title>ATSC delivery system</title> |
@@ -961,6 +1132,7 @@ enum fe_interleaving { | |||
961 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> | 1132 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> |
962 | <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem> | 1133 | <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem> |
963 | </itemizedlist> | 1134 | </itemizedlist> |
1135 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
964 | </section> | 1136 | </section> |
965 | <section id="atscmh-params"> | 1137 | <section id="atscmh-params"> |
966 | <title>ATSC-MH delivery system</title> | 1138 | <title>ATSC-MH delivery system</title> |
@@ -988,6 +1160,7 @@ enum fe_interleaving { | |||
988 | <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-C"><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></link></para></listitem> | 1160 | <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-C"><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></link></para></listitem> |
989 | <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-D"><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></link></para></listitem> | 1161 | <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-D"><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></link></para></listitem> |
990 | </itemizedlist> | 1162 | </itemizedlist> |
1163 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
991 | </section> | 1164 | </section> |
992 | <section id="dtmb-params"> | 1165 | <section id="dtmb-params"> |
993 | <title>DTMB delivery system</title> | 1166 | <title>DTMB delivery system</title> |
@@ -1007,6 +1180,7 @@ enum fe_interleaving { | |||
1007 | <listitem><para><link linkend="DTV-INTERLEAVING"><constant>DTV_INTERLEAVING</constant></link></para></listitem> | 1180 | <listitem><para><link linkend="DTV-INTERLEAVING"><constant>DTV_INTERLEAVING</constant></link></para></listitem> |
1008 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> | 1181 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> |
1009 | </itemizedlist> | 1182 | </itemizedlist> |
1183 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
1010 | </section> | 1184 | </section> |
1011 | </section> | 1185 | </section> |
1012 | <section id="frontend-property-cable-systems"> | 1186 | <section id="frontend-property-cable-systems"> |
@@ -1028,6 +1202,7 @@ enum fe_interleaving { | |||
1028 | <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> | 1202 | <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> |
1029 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> | 1203 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> |
1030 | </itemizedlist> | 1204 | </itemizedlist> |
1205 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
1031 | </section> | 1206 | </section> |
1032 | <section id="dvbc-annex-b-params"> | 1207 | <section id="dvbc-annex-b-params"> |
1033 | <title>DVB-C Annex B delivery system</title> | 1208 | <title>DVB-C Annex B delivery system</title> |
@@ -1043,6 +1218,7 @@ enum fe_interleaving { | |||
1043 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | 1218 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> |
1044 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> | 1219 | <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem> |
1045 | </itemizedlist> | 1220 | </itemizedlist> |
1221 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
1046 | </section> | 1222 | </section> |
1047 | </section> | 1223 | </section> |
1048 | <section id="frontend-property-satellital-systems"> | 1224 | <section id="frontend-property-satellital-systems"> |
@@ -1062,6 +1238,7 @@ enum fe_interleaving { | |||
1062 | <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem> | 1238 | <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem> |
1063 | <listitem><para><link linkend="DTV-TONE"><constant>DTV_TONE</constant></link></para></listitem> | 1239 | <listitem><para><link linkend="DTV-TONE"><constant>DTV_TONE</constant></link></para></listitem> |
1064 | </itemizedlist> | 1240 | </itemizedlist> |
1241 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
1065 | <para>Future implementations might add those two missing parameters:</para> | 1242 | <para>Future implementations might add those two missing parameters:</para> |
1066 | <itemizedlist mark='opencircle'> | 1243 | <itemizedlist mark='opencircle'> |
1067 | <listitem><para><link linkend="DTV-DISEQC-MASTER"><constant>DTV_DISEQC_MASTER</constant></link></para></listitem> | 1244 | <listitem><para><link linkend="DTV-DISEQC-MASTER"><constant>DTV_DISEQC_MASTER</constant></link></para></listitem> |
@@ -1077,6 +1254,7 @@ enum fe_interleaving { | |||
1077 | <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem> | 1254 | <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem> |
1078 | <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem> | 1255 | <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem> |
1079 | </itemizedlist> | 1256 | </itemizedlist> |
1257 | <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para> | ||
1080 | </section> | 1258 | </section> |
1081 | <section id="turbo-params"> | 1259 | <section id="turbo-params"> |
1082 | <title>Turbo code delivery system</title> | 1260 | <title>Turbo code delivery system</title> |
diff --git a/Documentation/DocBook/media/dvb/frontend.xml b/Documentation/DocBook/media/dvb/frontend.xml index 426c2526a454..df39ba395df0 100644 --- a/Documentation/DocBook/media/dvb/frontend.xml +++ b/Documentation/DocBook/media/dvb/frontend.xml | |||
@@ -230,7 +230,7 @@ typedef enum fe_status { | |||
230 | <entry align="char">The frontend has found a DVB signal</entry> | 230 | <entry align="char">The frontend has found a DVB signal</entry> |
231 | </row><row> | 231 | </row><row> |
232 | <entry align="char">FE_HAS_VITERBI</entry> | 232 | <entry align="char">FE_HAS_VITERBI</entry> |
233 | <entry align="char">The frontend FEC code is stable</entry> | 233 | <entry align="char">The frontend FEC inner coding (Viterbi, LDPC or other inner code) is stable</entry> |
234 | </row><row> | 234 | </row><row> |
235 | <entry align="char">FE_HAS_SYNC</entry> | 235 | <entry align="char">FE_HAS_SYNC</entry> |
236 | <entry align="char">Syncronization bytes was found</entry> | 236 | <entry align="char">Syncronization bytes was found</entry> |
diff --git a/Documentation/DocBook/media/v4l/common.xml b/Documentation/DocBook/media/v4l/common.xml index 73c6847436c9..ae06afbbb3a9 100644 --- a/Documentation/DocBook/media/v4l/common.xml +++ b/Documentation/DocBook/media/v4l/common.xml | |||
@@ -609,7 +609,7 @@ to zero and the <constant>VIDIOC_G_STD</constant>, | |||
609 | <para>Applications can make use of the <xref linkend="input-capabilities" /> and | 609 | <para>Applications can make use of the <xref linkend="input-capabilities" /> and |
610 | <xref linkend="output-capabilities"/> flags to determine whether the video standard ioctls | 610 | <xref linkend="output-capabilities"/> flags to determine whether the video standard ioctls |
611 | are available for the device.</para> | 611 | are available for the device.</para> |
612 | &ENOTTY;. | 612 | |
613 | <para>See <xref linkend="buffer" /> for a rationale. Probably | 613 | <para>See <xref linkend="buffer" /> for a rationale. Probably |
614 | even USB cameras follow some well known video standard. It might have | 614 | even USB cameras follow some well known video standard. It might have |
615 | been better to explicitly indicate elsewhere if a device cannot live | 615 | been better to explicitly indicate elsewhere if a device cannot live |
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml index 3dd9e78815d1..104a1a2b8849 100644 --- a/Documentation/DocBook/media/v4l/compat.xml +++ b/Documentation/DocBook/media/v4l/compat.xml | |||
@@ -2477,6 +2477,22 @@ that used it. It was originally scheduled for removal in 2.6.35. | |||
2477 | </orderedlist> | 2477 | </orderedlist> |
2478 | </section> | 2478 | </section> |
2479 | 2479 | ||
2480 | <section> | ||
2481 | <title>V4L2 in Linux 3.9</title> | ||
2482 | <orderedlist> | ||
2483 | <listitem> | ||
2484 | <para>Added timestamp types to | ||
2485 | <structfield>flags</structfield> field in | ||
2486 | <structname>v4l2_buffer</structname>. See <xref | ||
2487 | linkend="buffer-flags" />.</para> | ||
2488 | </listitem> | ||
2489 | <listitem> | ||
2490 | <para>Added <constant>V4L2_EVENT_CTRL_CH_RANGE</constant> control event | ||
2491 | changes flag. See <xref linkend="changes-flags"/>.</para> | ||
2492 | </listitem> | ||
2493 | </orderedlist> | ||
2494 | </section> | ||
2495 | |||
2480 | <section id="other"> | 2496 | <section id="other"> |
2481 | <title>Relation of V4L2 to other Linux multimedia APIs</title> | 2497 | <title>Relation of V4L2 to other Linux multimedia APIs</title> |
2482 | 2498 | ||
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index 7fe5be1d3bbb..9e8f85498678 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml | |||
@@ -203,29 +203,6 @@ and should not be used in new drivers and applications.</entry> | |||
203 | <entry>boolean</entry> | 203 | <entry>boolean</entry> |
204 | <entry>Mirror the picture vertically.</entry> | 204 | <entry>Mirror the picture vertically.</entry> |
205 | </row> | 205 | </row> |
206 | <row> | ||
207 | <entry><constant>V4L2_CID_HCENTER_DEPRECATED</constant> (formerly <constant>V4L2_CID_HCENTER</constant>)</entry> | ||
208 | <entry>integer</entry> | ||
209 | <entry>Horizontal image centering. This control is | ||
210 | deprecated. New drivers and applications should use the <link | ||
211 | linkend="camera-controls">Camera class controls</link> | ||
212 | <constant>V4L2_CID_PAN_ABSOLUTE</constant>, | ||
213 | <constant>V4L2_CID_PAN_RELATIVE</constant> and | ||
214 | <constant>V4L2_CID_PAN_RESET</constant> instead.</entry> | ||
215 | </row> | ||
216 | <row> | ||
217 | <entry><constant>V4L2_CID_VCENTER_DEPRECATED</constant> | ||
218 | (formerly <constant>V4L2_CID_VCENTER</constant>)</entry> | ||
219 | <entry>integer</entry> | ||
220 | <entry>Vertical image centering. Centering is intended to | ||
221 | <emphasis>physically</emphasis> adjust cameras. For image cropping see | ||
222 | <xref linkend="crop" />, for clipping <xref linkend="overlay" />. This | ||
223 | control is deprecated. New drivers and applications should use the | ||
224 | <link linkend="camera-controls">Camera class controls</link> | ||
225 | <constant>V4L2_CID_TILT_ABSOLUTE</constant>, | ||
226 | <constant>V4L2_CID_TILT_RELATIVE</constant> and | ||
227 | <constant>V4L2_CID_TILT_RESET</constant> instead.</entry> | ||
228 | </row> | ||
229 | <row id="v4l2-power-line-frequency"> | 206 | <row id="v4l2-power-line-frequency"> |
230 | <entry><constant>V4L2_CID_POWER_LINE_FREQUENCY</constant></entry> | 207 | <entry><constant>V4L2_CID_POWER_LINE_FREQUENCY</constant></entry> |
231 | <entry>enum</entry> | 208 | <entry>enum</entry> |
diff --git a/Documentation/DocBook/media/v4l/io.xml b/Documentation/DocBook/media/v4l/io.xml index 388a34032653..e6c58559ca6b 100644 --- a/Documentation/DocBook/media/v4l/io.xml +++ b/Documentation/DocBook/media/v4l/io.xml | |||
@@ -477,7 +477,7 @@ rest should be evident.</para> | |||
477 | 477 | ||
478 | <note> | 478 | <note> |
479 | <title>Experimental</title> | 479 | <title>Experimental</title> |
480 | <para>This is an <link linkend="experimental"> experimental </link> | 480 | <para>This is an <link linkend="experimental">experimental</link> |
481 | interface and may change in the future.</para> | 481 | interface and may change in the future.</para> |
482 | </note> | 482 | </note> |
483 | 483 | ||
@@ -488,7 +488,7 @@ DMA buffer from userspace using a file descriptor previously exported for a | |||
488 | different or the same device (known as the importer role), or both. This | 488 | different or the same device (known as the importer role), or both. This |
489 | section describes the DMABUF importer role API in V4L2.</para> | 489 | section describes the DMABUF importer role API in V4L2.</para> |
490 | 490 | ||
491 | <para>Refer to <link linked="vidioc-expbuf"> DMABUF exporting </link> for | 491 | <para>Refer to <link linkend="vidioc-expbuf">DMABUF exporting</link> for |
492 | details about exporting V4L2 buffers as DMABUF file descriptors.</para> | 492 | details about exporting V4L2 buffers as DMABUF file descriptors.</para> |
493 | 493 | ||
494 | <para>Input and output devices support the streaming I/O method when the | 494 | <para>Input and output devices support the streaming I/O method when the |
@@ -741,17 +741,19 @@ applications when an output stream.</entry> | |||
741 | <entry>struct timeval</entry> | 741 | <entry>struct timeval</entry> |
742 | <entry><structfield>timestamp</structfield></entry> | 742 | <entry><structfield>timestamp</structfield></entry> |
743 | <entry></entry> | 743 | <entry></entry> |
744 | <entry><para>For input streams this is the | 744 | <entry><para>For input streams this is time when the first data |
745 | system time (as returned by the <function>gettimeofday()</function> | 745 | byte was captured, as returned by the |
746 | function) when the first data byte was captured. For output streams | 746 | <function>clock_gettime()</function> function for the relevant |
747 | the data will not be displayed before this time, secondary to the | 747 | clock id; see <constant>V4L2_BUF_FLAG_TIMESTAMP_*</constant> in |
748 | nominal frame rate determined by the current video standard in | 748 | <xref linkend="buffer-flags" />. For output streams the data |
749 | enqueued order. Applications can for example zero this field to | 749 | will not be displayed before this time, secondary to the nominal |
750 | display frames as soon as possible. The driver stores the time at | 750 | frame rate determined by the current video standard in enqueued |
751 | which the first data byte was actually sent out in the | 751 | order. Applications can for example zero this field to display |
752 | <structfield>timestamp</structfield> field. This permits | 752 | frames as soon as possible. The driver stores the time at which |
753 | applications to monitor the drift between the video and system | 753 | the first data byte was actually sent out in the |
754 | clock.</para></entry> | 754 | <structfield>timestamp</structfield> field. This permits |
755 | applications to monitor the drift between the video and system | ||
756 | clock.</para></entry> | ||
755 | </row> | 757 | </row> |
756 | <row> | 758 | <row> |
757 | <entry>&v4l2-timecode;</entry> | 759 | <entry>&v4l2-timecode;</entry> |
@@ -903,7 +905,7 @@ should set this to 0.</entry> | |||
903 | </row> | 905 | </row> |
904 | <row> | 906 | <row> |
905 | <entry></entry> | 907 | <entry></entry> |
906 | <entry>__unsigned long</entry> | 908 | <entry>unsigned long</entry> |
907 | <entry><structfield>userptr</structfield></entry> | 909 | <entry><structfield>userptr</structfield></entry> |
908 | <entry>When the memory type in the containing &v4l2-buffer; is | 910 | <entry>When the memory type in the containing &v4l2-buffer; is |
909 | <constant>V4L2_MEMORY_USERPTR</constant>, this is a userspace | 911 | <constant>V4L2_MEMORY_USERPTR</constant>, this is a userspace |
@@ -1114,6 +1116,35 @@ Typically applications shall use this flag for output buffers if the data | |||
1114 | in this buffer has not been created by the CPU but by some DMA-capable unit, | 1116 | in this buffer has not been created by the CPU but by some DMA-capable unit, |
1115 | in which case caches have not been used.</entry> | 1117 | in which case caches have not been used.</entry> |
1116 | </row> | 1118 | </row> |
1119 | <row> | ||
1120 | <entry><constant>V4L2_BUF_FLAG_TIMESTAMP_MASK</constant></entry> | ||
1121 | <entry>0xe000</entry> | ||
1122 | <entry>Mask for timestamp types below. To test the | ||
1123 | timestamp type, mask out bits not belonging to timestamp | ||
1124 | type by performing a logical and operation with buffer | ||
1125 | flags and timestamp mask.</entry> | ||
1126 | </row> | ||
1127 | <row> | ||
1128 | <entry><constant>V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN</constant></entry> | ||
1129 | <entry>0x0000</entry> | ||
1130 | <entry>Unknown timestamp type. This type is used by | ||
1131 | drivers before Linux 3.9 and may be either monotonic (see | ||
1132 | below) or realtime (wall clock). Monotonic clock has been | ||
1133 | favoured in embedded systems whereas most of the drivers | ||
1134 | use the realtime clock. Either kinds of timestamps are | ||
1135 | available in user space via | ||
1136 | <function>clock_gettime(2)</function> using clock IDs | ||
1137 | <constant>CLOCK_MONOTONIC</constant> and | ||
1138 | <constant>CLOCK_REALTIME</constant>, respectively.</entry> | ||
1139 | </row> | ||
1140 | <row> | ||
1141 | <entry><constant>V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC</constant></entry> | ||
1142 | <entry>0x2000</entry> | ||
1143 | <entry>The buffer timestamp has been taken from the | ||
1144 | <constant>CLOCK_MONOTONIC</constant> clock. To access the | ||
1145 | same clock outside V4L2, use | ||
1146 | <function>clock_gettime(2)</function> .</entry> | ||
1147 | </row> | ||
1117 | </tbody> | 1148 | </tbody> |
1118 | </tgroup> | 1149 | </tgroup> |
1119 | </table> | 1150 | </table> |
diff --git a/Documentation/DocBook/media/v4l/pixfmt-nv12m.xml b/Documentation/DocBook/media/v4l/pixfmt-nv12m.xml index a990b34d911a..f3a3d459fcdf 100644 --- a/Documentation/DocBook/media/v4l/pixfmt-nv12m.xml +++ b/Documentation/DocBook/media/v4l/pixfmt-nv12m.xml | |||
@@ -6,7 +6,7 @@ | |||
6 | <refnamediv> | 6 | <refnamediv> |
7 | <refname id="V4L2-PIX-FMT-NV12M"><constant>V4L2_PIX_FMT_NV12M</constant></refname> | 7 | <refname id="V4L2-PIX-FMT-NV12M"><constant>V4L2_PIX_FMT_NV12M</constant></refname> |
8 | <refname id="V4L2-PIX-FMT-NV21M"><constant>V4L2_PIX_FMT_NV21M</constant></refname> | 8 | <refname id="V4L2-PIX-FMT-NV21M"><constant>V4L2_PIX_FMT_NV21M</constant></refname> |
9 | <refname id="V4L2-PIX-FMT-NV12MT_16X16"><constant>V4L2_PIX_FMT_NV12MT_16X16</constant></refname> | 9 | <refname id="V4L2-PIX-FMT-NV12MT-16X16"><constant>V4L2_PIX_FMT_NV12MT_16X16</constant></refname> |
10 | <refpurpose>Variation of <constant>V4L2_PIX_FMT_NV12</constant> and <constant>V4L2_PIX_FMT_NV21</constant> with planes | 10 | <refpurpose>Variation of <constant>V4L2_PIX_FMT_NV12</constant> and <constant>V4L2_PIX_FMT_NV21</constant> with planes |
11 | non contiguous in memory. </refpurpose> | 11 | non contiguous in memory. </refpurpose> |
12 | </refnamediv> | 12 | </refnamediv> |
diff --git a/Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml b/Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml new file mode 100644 index 000000000000..29acc2098cc2 --- /dev/null +++ b/Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml | |||
@@ -0,0 +1,34 @@ | |||
1 | <refentry> | ||
2 | <refmeta> | ||
3 | <refentrytitle> | ||
4 | V4L2_PIX_FMT_SBGGR10ALAW8 ('aBA8'), | ||
5 | V4L2_PIX_FMT_SGBRG10ALAW8 ('aGA8'), | ||
6 | V4L2_PIX_FMT_SGRBG10ALAW8 ('agA8'), | ||
7 | V4L2_PIX_FMT_SRGGB10ALAW8 ('aRA8'), | ||
8 | </refentrytitle> | ||
9 | &manvol; | ||
10 | </refmeta> | ||
11 | <refnamediv> | ||
12 | <refname id="V4L2-PIX-FMT-SBGGR10ALAW8"> | ||
13 | <constant>V4L2_PIX_FMT_SBGGR10ALAW8</constant> | ||
14 | </refname> | ||
15 | <refname id="V4L2-PIX-FMT-SGBRG10ALAW8"> | ||
16 | <constant>V4L2_PIX_FMT_SGBRG10ALAW8</constant> | ||
17 | </refname> | ||
18 | <refname id="V4L2-PIX-FMT-SGRBG10ALAW8"> | ||
19 | <constant>V4L2_PIX_FMT_SGRBG10ALAW8</constant> | ||
20 | </refname> | ||
21 | <refname id="V4L2-PIX-FMT-SRGGB10ALAW8"> | ||
22 | <constant>V4L2_PIX_FMT_SRGGB10ALAW8</constant> | ||
23 | </refname> | ||
24 | <refpurpose>10-bit Bayer formats compressed to 8 bits</refpurpose> | ||
25 | </refnamediv> | ||
26 | <refsect1> | ||
27 | <title>Description</title> | ||
28 | <para>The following four pixel formats are raw sRGB / Bayer | ||
29 | formats with 10 bits per color compressed to 8 bits each, | ||
30 | using the A-LAW algorithm. Each color component consumes 8 | ||
31 | bits of memory. In other respects this format is similar to | ||
32 | <xref linkend="V4L2-PIX-FMT-SRGGB8"></xref>.</para> | ||
33 | </refsect1> | ||
34 | </refentry> | ||
diff --git a/Documentation/DocBook/media/v4l/pixfmt-uv8.xml b/Documentation/DocBook/media/v4l/pixfmt-uv8.xml new file mode 100644 index 000000000000..c507c1f73cd0 --- /dev/null +++ b/Documentation/DocBook/media/v4l/pixfmt-uv8.xml | |||
@@ -0,0 +1,62 @@ | |||
1 | <refentry id="V4L2-PIX-FMT-UV8"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>V4L2_PIX_FMT_UV8 ('UV8')</refentrytitle> | ||
4 | &manvol; | ||
5 | </refmeta> | ||
6 | <refnamediv> | ||
7 | <refname><constant>V4L2_PIX_FMT_UV8</constant></refname> | ||
8 | <refpurpose>UV plane interleaved</refpurpose> | ||
9 | </refnamediv> | ||
10 | <refsect1> | ||
11 | <title>Description</title> | ||
12 | <para>In this format there is no Y plane, Only CbCr plane. ie | ||
13 | (UV interleaved)</para> | ||
14 | <example> | ||
15 | <title> | ||
16 | <constant>V4L2_PIX_FMT_UV8</constant> | ||
17 | pixel image | ||
18 | </title> | ||
19 | |||
20 | <formalpara> | ||
21 | <title>Byte Order.</title> | ||
22 | <para>Each cell is one byte. | ||
23 | <informaltable frame="none"> | ||
24 | <tgroup cols="5" align="center"> | ||
25 | <colspec align="left" colwidth="2*" /> | ||
26 | <tbody valign="top"> | ||
27 | <row> | ||
28 | <entry>start + 0:</entry> | ||
29 | <entry>Cb<subscript>00</subscript></entry> | ||
30 | <entry>Cr<subscript>00</subscript></entry> | ||
31 | <entry>Cb<subscript>01</subscript></entry> | ||
32 | <entry>Cr<subscript>01</subscript></entry> | ||
33 | </row> | ||
34 | <row> | ||
35 | <entry>start + 4:</entry> | ||
36 | <entry>Cb<subscript>10</subscript></entry> | ||
37 | <entry>Cr<subscript>10</subscript></entry> | ||
38 | <entry>Cb<subscript>11</subscript></entry> | ||
39 | <entry>Cr<subscript>11</subscript></entry> | ||
40 | </row> | ||
41 | <row> | ||
42 | <entry>start + 8:</entry> | ||
43 | <entry>Cb<subscript>20</subscript></entry> | ||
44 | <entry>Cr<subscript>20</subscript></entry> | ||
45 | <entry>Cb<subscript>21</subscript></entry> | ||
46 | <entry>Cr<subscript>21</subscript></entry> | ||
47 | </row> | ||
48 | <row> | ||
49 | <entry>start + 12:</entry> | ||
50 | <entry>Cb<subscript>30</subscript></entry> | ||
51 | <entry>Cr<subscript>30</subscript></entry> | ||
52 | <entry>Cb<subscript>31</subscript></entry> | ||
53 | <entry>Cr<subscript>31</subscript></entry> | ||
54 | </row> | ||
55 | </tbody> | ||
56 | </tgroup> | ||
57 | </informaltable> | ||
58 | </para> | ||
59 | </formalpara> | ||
60 | </example> | ||
61 | </refsect1> | ||
62 | </refentry> | ||
diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml index bf94f417592c..99b8d2ad6e4f 100644 --- a/Documentation/DocBook/media/v4l/pixfmt.xml +++ b/Documentation/DocBook/media/v4l/pixfmt.xml | |||
@@ -673,6 +673,7 @@ access the palette, this must be done with ioctls of the Linux framebuffer API.< | |||
673 | &sub-srggb8; | 673 | &sub-srggb8; |
674 | &sub-sbggr16; | 674 | &sub-sbggr16; |
675 | &sub-srggb10; | 675 | &sub-srggb10; |
676 | &sub-srggb10alaw8; | ||
676 | &sub-srggb10dpcm8; | 677 | &sub-srggb10dpcm8; |
677 | &sub-srggb12; | 678 | &sub-srggb12; |
678 | </section> | 679 | </section> |
@@ -701,6 +702,7 @@ information.</para> | |||
701 | &sub-y12; | 702 | &sub-y12; |
702 | &sub-y10b; | 703 | &sub-y10b; |
703 | &sub-y16; | 704 | &sub-y16; |
705 | &sub-uv8; | ||
704 | &sub-yuyv; | 706 | &sub-yuyv; |
705 | &sub-uyvy; | 707 | &sub-uyvy; |
706 | &sub-yvyu; | 708 | &sub-yvyu; |
diff --git a/Documentation/DocBook/media/v4l/subdev-formats.xml b/Documentation/DocBook/media/v4l/subdev-formats.xml index a0a936455fae..cc51372ed5e0 100644 --- a/Documentation/DocBook/media/v4l/subdev-formats.xml +++ b/Documentation/DocBook/media/v4l/subdev-formats.xml | |||
@@ -353,9 +353,9 @@ | |||
353 | <listitem><para>The number of bits per pixel component. All components are | 353 | <listitem><para>The number of bits per pixel component. All components are |
354 | transferred on the same number of bits. Common values are 8, 10 and 12.</para> | 354 | transferred on the same number of bits. Common values are 8, 10 and 12.</para> |
355 | </listitem> | 355 | </listitem> |
356 | <listitem><para>If the pixel components are DPCM-compressed, a mention of the | 356 | <listitem><para>The compression (optional). If the pixel components are |
357 | DPCM compression and the number of bits per compressed pixel component.</para> | 357 | ALAW- or DPCM-compressed, a mention of the compression scheme and the |
358 | </listitem> | 358 | number of bits per compressed pixel component.</para></listitem> |
359 | <listitem><para>The number of bus samples per pixel. Pixels that are wider than | 359 | <listitem><para>The number of bus samples per pixel. Pixels that are wider than |
360 | the bus width must be transferred in multiple samples. Common values are | 360 | the bus width must be transferred in multiple samples. Common values are |
361 | 1 and 2.</para></listitem> | 361 | 1 and 2.</para></listitem> |
@@ -504,6 +504,74 @@ | |||
504 | <entry>r<subscript>1</subscript></entry> | 504 | <entry>r<subscript>1</subscript></entry> |
505 | <entry>r<subscript>0</subscript></entry> | 505 | <entry>r<subscript>0</subscript></entry> |
506 | </row> | 506 | </row> |
507 | <row id="V4L2-MBUS-FMT-SBGGR10-ALAW8-1X8"> | ||
508 | <entry>V4L2_MBUS_FMT_SBGGR10_ALAW8_1X8</entry> | ||
509 | <entry>0x3015</entry> | ||
510 | <entry></entry> | ||
511 | <entry>-</entry> | ||
512 | <entry>-</entry> | ||
513 | <entry>-</entry> | ||
514 | <entry>-</entry> | ||
515 | <entry>b<subscript>7</subscript></entry> | ||
516 | <entry>b<subscript>6</subscript></entry> | ||
517 | <entry>b<subscript>5</subscript></entry> | ||
518 | <entry>b<subscript>4</subscript></entry> | ||
519 | <entry>b<subscript>3</subscript></entry> | ||
520 | <entry>b<subscript>2</subscript></entry> | ||
521 | <entry>b<subscript>1</subscript></entry> | ||
522 | <entry>b<subscript>0</subscript></entry> | ||
523 | </row> | ||
524 | <row id="V4L2-MBUS-FMT-SGBRG10-ALAW8-1X8"> | ||
525 | <entry>V4L2_MBUS_FMT_SGBRG10_ALAW8_1X8</entry> | ||
526 | <entry>0x3016</entry> | ||
527 | <entry></entry> | ||
528 | <entry>-</entry> | ||
529 | <entry>-</entry> | ||
530 | <entry>-</entry> | ||
531 | <entry>-</entry> | ||
532 | <entry>g<subscript>7</subscript></entry> | ||
533 | <entry>g<subscript>6</subscript></entry> | ||
534 | <entry>g<subscript>5</subscript></entry> | ||
535 | <entry>g<subscript>4</subscript></entry> | ||
536 | <entry>g<subscript>3</subscript></entry> | ||
537 | <entry>g<subscript>2</subscript></entry> | ||
538 | <entry>g<subscript>1</subscript></entry> | ||
539 | <entry>g<subscript>0</subscript></entry> | ||
540 | </row> | ||
541 | <row id="V4L2-MBUS-FMT-SGRBG10-ALAW8-1X8"> | ||
542 | <entry>V4L2_MBUS_FMT_SGRBG10_ALAW8_1X8</entry> | ||
543 | <entry>0x3017</entry> | ||
544 | <entry></entry> | ||
545 | <entry>-</entry> | ||
546 | <entry>-</entry> | ||
547 | <entry>-</entry> | ||
548 | <entry>-</entry> | ||
549 | <entry>g<subscript>7</subscript></entry> | ||
550 | <entry>g<subscript>6</subscript></entry> | ||
551 | <entry>g<subscript>5</subscript></entry> | ||
552 | <entry>g<subscript>4</subscript></entry> | ||
553 | <entry>g<subscript>3</subscript></entry> | ||
554 | <entry>g<subscript>2</subscript></entry> | ||
555 | <entry>g<subscript>1</subscript></entry> | ||
556 | <entry>g<subscript>0</subscript></entry> | ||
557 | </row> | ||
558 | <row id="V4L2-MBUS-FMT-SRGGB10-ALAW8-1X8"> | ||
559 | <entry>V4L2_MBUS_FMT_SRGGB10_ALAW8_1X8</entry> | ||
560 | <entry>0x3018</entry> | ||
561 | <entry></entry> | ||
562 | <entry>-</entry> | ||
563 | <entry>-</entry> | ||
564 | <entry>-</entry> | ||
565 | <entry>-</entry> | ||
566 | <entry>r<subscript>7</subscript></entry> | ||
567 | <entry>r<subscript>6</subscript></entry> | ||
568 | <entry>r<subscript>5</subscript></entry> | ||
569 | <entry>r<subscript>4</subscript></entry> | ||
570 | <entry>r<subscript>3</subscript></entry> | ||
571 | <entry>r<subscript>2</subscript></entry> | ||
572 | <entry>r<subscript>1</subscript></entry> | ||
573 | <entry>r<subscript>0</subscript></entry> | ||
574 | </row> | ||
507 | <row id="V4L2-MBUS-FMT-SBGGR10-DPCM8-1X8"> | 575 | <row id="V4L2-MBUS-FMT-SBGGR10-DPCM8-1X8"> |
508 | <entry>V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8</entry> | 576 | <entry>V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8</entry> |
509 | <entry>0x300b</entry> | 577 | <entry>0x300b</entry> |
@@ -853,10 +921,16 @@ | |||
853 | <title>Packed YUV Formats</title> | 921 | <title>Packed YUV Formats</title> |
854 | 922 | ||
855 | <para>Those data formats transfer pixel data as (possibly downsampled) Y, U | 923 | <para>Those data formats transfer pixel data as (possibly downsampled) Y, U |
856 | and V components. The format code is made of the following information. | 924 | and V components. Some formats include dummy bits in some of their samples |
925 | and are collectively referred to as "YDYC" (Y-Dummy-Y-Chroma) formats. | ||
926 | One cannot rely on the values of these dummy bits as those are undefined. | ||
927 | </para> | ||
928 | <para>The format code is made of the following information. | ||
857 | <itemizedlist> | 929 | <itemizedlist> |
858 | <listitem><para>The Y, U and V components order code, as transferred on the | 930 | <listitem><para>The Y, U and V components order code, as transferred on the |
859 | bus. Possible values are YUYV, UYVY, YVYU and VYUY.</para></listitem> | 931 | bus. Possible values are YUYV, UYVY, YVYU and VYUY for formats with no |
932 | dummy bit, and YDYUYDYV, YDYVYDYU, YUYDYVYD and YVYDYUYD for YDYC formats. | ||
933 | </para></listitem> | ||
860 | <listitem><para>The number of bits per pixel component. All components are | 934 | <listitem><para>The number of bits per pixel component. All components are |
861 | transferred on the same number of bits. Common values are 8, 10 and 12.</para> | 935 | transferred on the same number of bits. Common values are 8, 10 and 12.</para> |
862 | </listitem> | 936 | </listitem> |
@@ -877,7 +951,21 @@ | |||
877 | U, Y, V, Y order will be named <constant>V4L2_MBUS_FMT_UYVY8_2X8</constant>. | 951 | U, Y, V, Y order will be named <constant>V4L2_MBUS_FMT_UYVY8_2X8</constant>. |
878 | </para> | 952 | </para> |
879 | 953 | ||
880 | <para>The following table lisst existing packet YUV formats.</para> | 954 | <para><xref linkend="v4l2-mbus-pixelcode-yuv8"/> list existing packet YUV |
955 | formats and describes the organization of each pixel data in each sample. | ||
956 | When a format pattern is split across multiple samples each of the samples | ||
957 | in the pattern is described.</para> | ||
958 | |||
959 | <para>The role of each bit transferred over the bus is identified by one | ||
960 | of the following codes.</para> | ||
961 | |||
962 | <itemizedlist> | ||
963 | <listitem><para>y<subscript>x</subscript> for luma component bit number x</para></listitem> | ||
964 | <listitem><para>u<subscript>x</subscript> for blue chroma component bit number x</para></listitem> | ||
965 | <listitem><para>v<subscript>x</subscript> for red chroma component bit number x</para></listitem> | ||
966 | <listitem><para>- for non-available bits (for positions higher than the bus width)</para></listitem> | ||
967 | <listitem><para>d for dummy bits</para></listitem> | ||
968 | </itemizedlist> | ||
881 | 969 | ||
882 | <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-yuv8"> | 970 | <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-yuv8"> |
883 | <title>YUV Formats</title> | 971 | <title>YUV Formats</title> |
@@ -885,27 +973,37 @@ | |||
885 | <colspec colname="id" align="left" /> | 973 | <colspec colname="id" align="left" /> |
886 | <colspec colname="code" align="center"/> | 974 | <colspec colname="code" align="center"/> |
887 | <colspec colname="bit" /> | 975 | <colspec colname="bit" /> |
888 | <colspec colnum="4" colname="b19" align="center" /> | 976 | <colspec colnum="4" colname="b29" align="center" /> |
889 | <colspec colnum="5" colname="b18" align="center" /> | 977 | <colspec colnum="5" colname="b28" align="center" /> |
890 | <colspec colnum="6" colname="b17" align="center" /> | 978 | <colspec colnum="6" colname="b27" align="center" /> |
891 | <colspec colnum="7" colname="b16" align="center" /> | 979 | <colspec colnum="7" colname="b26" align="center" /> |
892 | <colspec colnum="8" colname="b15" align="center" /> | 980 | <colspec colnum="8" colname="b25" align="center" /> |
893 | <colspec colnum="9" colname="b14" align="center" /> | 981 | <colspec colnum="9" colname="b24" align="center" /> |
894 | <colspec colnum="10" colname="b13" align="center" /> | 982 | <colspec colnum="10" colname="b23" align="center" /> |
895 | <colspec colnum="11" colname="b12" align="center" /> | 983 | <colspec colnum="11" colname="b22" align="center" /> |
896 | <colspec colnum="12" colname="b11" align="center" /> | 984 | <colspec colnum="12" colname="b21" align="center" /> |
897 | <colspec colnum="13" colname="b10" align="center" /> | 985 | <colspec colnum="13" colname="b20" align="center" /> |
898 | <colspec colnum="14" colname="b09" align="center" /> | 986 | <colspec colnum="14" colname="b19" align="center" /> |
899 | <colspec colnum="15" colname="b08" align="center" /> | 987 | <colspec colnum="15" colname="b18" align="center" /> |
900 | <colspec colnum="16" colname="b07" align="center" /> | 988 | <colspec colnum="16" colname="b17" align="center" /> |
901 | <colspec colnum="17" colname="b06" align="center" /> | 989 | <colspec colnum="17" colname="b16" align="center" /> |
902 | <colspec colnum="18" colname="b05" align="center" /> | 990 | <colspec colnum="18" colname="b15" align="center" /> |
903 | <colspec colnum="19" colname="b04" align="center" /> | 991 | <colspec colnum="19" colname="b14" align="center" /> |
904 | <colspec colnum="20" colname="b03" align="center" /> | 992 | <colspec colnum="20" colname="b13" align="center" /> |
905 | <colspec colnum="21" colname="b02" align="center" /> | 993 | <colspec colnum="21" colname="b12" align="center" /> |
906 | <colspec colnum="22" colname="b01" align="center" /> | 994 | <colspec colnum="22" colname="b11" align="center" /> |
907 | <colspec colnum="23" colname="b00" align="center" /> | 995 | <colspec colnum="23" colname="b10" align="center" /> |
908 | <spanspec namest="b19" nameend="b00" spanname="b0" /> | 996 | <colspec colnum="24" colname="b09" align="center" /> |
997 | <colspec colnum="25" colname="b08" align="center" /> | ||
998 | <colspec colnum="26" colname="b07" align="center" /> | ||
999 | <colspec colnum="27" colname="b06" align="center" /> | ||
1000 | <colspec colnum="28" colname="b05" align="center" /> | ||
1001 | <colspec colnum="29" colname="b04" align="center" /> | ||
1002 | <colspec colnum="30" colname="b03" align="center" /> | ||
1003 | <colspec colnum="31" colname="b02" align="center" /> | ||
1004 | <colspec colnum="32" colname="b01" align="center" /> | ||
1005 | <colspec colnum="33" colname="b00" align="center" /> | ||
1006 | <spanspec namest="b29" nameend="b00" spanname="b0" /> | ||
909 | <thead> | 1007 | <thead> |
910 | <row> | 1008 | <row> |
911 | <entry>Identifier</entry> | 1009 | <entry>Identifier</entry> |
@@ -917,6 +1015,16 @@ | |||
917 | <entry></entry> | 1015 | <entry></entry> |
918 | <entry></entry> | 1016 | <entry></entry> |
919 | <entry>Bit</entry> | 1017 | <entry>Bit</entry> |
1018 | <entry>29</entry> | ||
1019 | <entry>28</entry> | ||
1020 | <entry>27</entry> | ||
1021 | <entry>26</entry> | ||
1022 | <entry>25</entry> | ||
1023 | <entry>24</entry> | ||
1024 | <entry>23</entry> | ||
1025 | <entry>22</entry> | ||
1026 | <entry>21</entry> | ||
1027 | <entry>10</entry> | ||
920 | <entry>19</entry> | 1028 | <entry>19</entry> |
921 | <entry>18</entry> | 1029 | <entry>18</entry> |
922 | <entry>17</entry> | 1030 | <entry>17</entry> |
@@ -944,16 +1052,8 @@ | |||
944 | <entry>V4L2_MBUS_FMT_Y8_1X8</entry> | 1052 | <entry>V4L2_MBUS_FMT_Y8_1X8</entry> |
945 | <entry>0x2001</entry> | 1053 | <entry>0x2001</entry> |
946 | <entry></entry> | 1054 | <entry></entry> |
947 | <entry>-</entry> | 1055 | &dash-ent-10; |
948 | <entry>-</entry> | 1056 | &dash-ent-10; |
949 | <entry>-</entry> | ||
950 | <entry>-</entry> | ||
951 | <entry>-</entry> | ||
952 | <entry>-</entry> | ||
953 | <entry>-</entry> | ||
954 | <entry>-</entry> | ||
955 | <entry>-</entry> | ||
956 | <entry>-</entry> | ||
957 | <entry>-</entry> | 1057 | <entry>-</entry> |
958 | <entry>-</entry> | 1058 | <entry>-</entry> |
959 | <entry>y<subscript>7</subscript></entry> | 1059 | <entry>y<subscript>7</subscript></entry> |
@@ -965,9 +1065,9 @@ | |||
965 | <entry>y<subscript>1</subscript></entry> | 1065 | <entry>y<subscript>1</subscript></entry> |
966 | <entry>y<subscript>0</subscript></entry> | 1066 | <entry>y<subscript>0</subscript></entry> |
967 | </row> | 1067 | </row> |
968 | <row id="V4L2-MBUS-FMT-UYVY8-1_5X8"> | 1068 | <row id="V4L2-MBUS-FMT-UV8-1X8"> |
969 | <entry>V4L2_MBUS_FMT_UYVY8_1_5X8</entry> | 1069 | <entry>V4L2_MBUS_FMT_UV8_1X8</entry> |
970 | <entry>0x2002</entry> | 1070 | <entry>0x2015</entry> |
971 | <entry></entry> | 1071 | <entry></entry> |
972 | <entry>-</entry> | 1072 | <entry>-</entry> |
973 | <entry>-</entry> | 1073 | <entry>-</entry> |
@@ -1006,6 +1106,40 @@ | |||
1006 | <entry>-</entry> | 1106 | <entry>-</entry> |
1007 | <entry>-</entry> | 1107 | <entry>-</entry> |
1008 | <entry>-</entry> | 1108 | <entry>-</entry> |
1109 | <entry>v<subscript>7</subscript></entry> | ||
1110 | <entry>v<subscript>6</subscript></entry> | ||
1111 | <entry>v<subscript>5</subscript></entry> | ||
1112 | <entry>v<subscript>4</subscript></entry> | ||
1113 | <entry>v<subscript>3</subscript></entry> | ||
1114 | <entry>v<subscript>2</subscript></entry> | ||
1115 | <entry>v<subscript>1</subscript></entry> | ||
1116 | <entry>v<subscript>0</subscript></entry> | ||
1117 | </row> | ||
1118 | <row id="V4L2-MBUS-FMT-UYVY8-1_5X8"> | ||
1119 | <entry>V4L2_MBUS_FMT_UYVY8_1_5X8</entry> | ||
1120 | <entry>0x2002</entry> | ||
1121 | <entry></entry> | ||
1122 | &dash-ent-10; | ||
1123 | &dash-ent-10; | ||
1124 | <entry>-</entry> | ||
1125 | <entry>-</entry> | ||
1126 | <entry>u<subscript>7</subscript></entry> | ||
1127 | <entry>u<subscript>6</subscript></entry> | ||
1128 | <entry>u<subscript>5</subscript></entry> | ||
1129 | <entry>u<subscript>4</subscript></entry> | ||
1130 | <entry>u<subscript>3</subscript></entry> | ||
1131 | <entry>u<subscript>2</subscript></entry> | ||
1132 | <entry>u<subscript>1</subscript></entry> | ||
1133 | <entry>u<subscript>0</subscript></entry> | ||
1134 | </row> | ||
1135 | <row> | ||
1136 | <entry></entry> | ||
1137 | <entry></entry> | ||
1138 | <entry></entry> | ||
1139 | &dash-ent-10; | ||
1140 | &dash-ent-10; | ||
1141 | <entry>-</entry> | ||
1142 | <entry>-</entry> | ||
1009 | <entry>y<subscript>7</subscript></entry> | 1143 | <entry>y<subscript>7</subscript></entry> |
1010 | <entry>y<subscript>6</subscript></entry> | 1144 | <entry>y<subscript>6</subscript></entry> |
1011 | <entry>y<subscript>5</subscript></entry> | 1145 | <entry>y<subscript>5</subscript></entry> |
@@ -1019,16 +1153,8 @@ | |||
1019 | <entry></entry> | 1153 | <entry></entry> |
1020 | <entry></entry> | 1154 | <entry></entry> |
1021 | <entry></entry> | 1155 | <entry></entry> |
1022 | <entry>-</entry> | 1156 | &dash-ent-10; |
1023 | <entry>-</entry> | 1157 | &dash-ent-10; |
1024 | <entry>-</entry> | ||
1025 | <entry>-</entry> | ||
1026 | <entry>-</entry> | ||
1027 | <entry>-</entry> | ||
1028 | <entry>-</entry> | ||
1029 | <entry>-</entry> | ||
1030 | <entry>-</entry> | ||
1031 | <entry>-</entry> | ||
1032 | <entry>-</entry> | 1158 | <entry>-</entry> |
1033 | <entry>-</entry> | 1159 | <entry>-</entry> |
1034 | <entry>y<subscript>7</subscript></entry> | 1160 | <entry>y<subscript>7</subscript></entry> |
@@ -1044,16 +1170,8 @@ | |||
1044 | <entry></entry> | 1170 | <entry></entry> |
1045 | <entry></entry> | 1171 | <entry></entry> |
1046 | <entry></entry> | 1172 | <entry></entry> |
1047 | <entry>-</entry> | 1173 | &dash-ent-10; |
1048 | <entry>-</entry> | 1174 | &dash-ent-10; |
1049 | <entry>-</entry> | ||
1050 | <entry>-</entry> | ||
1051 | <entry>-</entry> | ||
1052 | <entry>-</entry> | ||
1053 | <entry>-</entry> | ||
1054 | <entry>-</entry> | ||
1055 | <entry>-</entry> | ||
1056 | <entry>-</entry> | ||
1057 | <entry>-</entry> | 1175 | <entry>-</entry> |
1058 | <entry>-</entry> | 1176 | <entry>-</entry> |
1059 | <entry>v<subscript>7</subscript></entry> | 1177 | <entry>v<subscript>7</subscript></entry> |
@@ -1069,16 +1187,8 @@ | |||
1069 | <entry></entry> | 1187 | <entry></entry> |
1070 | <entry></entry> | 1188 | <entry></entry> |
1071 | <entry></entry> | 1189 | <entry></entry> |
1072 | <entry>-</entry> | 1190 | &dash-ent-10; |
1073 | <entry>-</entry> | 1191 | &dash-ent-10; |
1074 | <entry>-</entry> | ||
1075 | <entry>-</entry> | ||
1076 | <entry>-</entry> | ||
1077 | <entry>-</entry> | ||
1078 | <entry>-</entry> | ||
1079 | <entry>-</entry> | ||
1080 | <entry>-</entry> | ||
1081 | <entry>-</entry> | ||
1082 | <entry>-</entry> | 1192 | <entry>-</entry> |
1083 | <entry>-</entry> | 1193 | <entry>-</entry> |
1084 | <entry>y<subscript>7</subscript></entry> | 1194 | <entry>y<subscript>7</subscript></entry> |
@@ -1094,16 +1204,8 @@ | |||
1094 | <entry></entry> | 1204 | <entry></entry> |
1095 | <entry></entry> | 1205 | <entry></entry> |
1096 | <entry></entry> | 1206 | <entry></entry> |
1097 | <entry>-</entry> | 1207 | &dash-ent-10; |
1098 | <entry>-</entry> | 1208 | &dash-ent-10; |
1099 | <entry>-</entry> | ||
1100 | <entry>-</entry> | ||
1101 | <entry>-</entry> | ||
1102 | <entry>-</entry> | ||
1103 | <entry>-</entry> | ||
1104 | <entry>-</entry> | ||
1105 | <entry>-</entry> | ||
1106 | <entry>-</entry> | ||
1107 | <entry>-</entry> | 1209 | <entry>-</entry> |
1108 | <entry>-</entry> | 1210 | <entry>-</entry> |
1109 | <entry>y<subscript>7</subscript></entry> | 1211 | <entry>y<subscript>7</subscript></entry> |
@@ -1119,16 +1221,8 @@ | |||
1119 | <entry>V4L2_MBUS_FMT_VYUY8_1_5X8</entry> | 1221 | <entry>V4L2_MBUS_FMT_VYUY8_1_5X8</entry> |
1120 | <entry>0x2003</entry> | 1222 | <entry>0x2003</entry> |
1121 | <entry></entry> | 1223 | <entry></entry> |
1122 | <entry>-</entry> | 1224 | &dash-ent-10; |
1123 | <entry>-</entry> | 1225 | &dash-ent-10; |
1124 | <entry>-</entry> | ||
1125 | <entry>-</entry> | ||
1126 | <entry>-</entry> | ||
1127 | <entry>-</entry> | ||
1128 | <entry>-</entry> | ||
1129 | <entry>-</entry> | ||
1130 | <entry>-</entry> | ||
1131 | <entry>-</entry> | ||
1132 | <entry>-</entry> | 1226 | <entry>-</entry> |
1133 | <entry>-</entry> | 1227 | <entry>-</entry> |
1134 | <entry>v<subscript>7</subscript></entry> | 1228 | <entry>v<subscript>7</subscript></entry> |
@@ -1144,16 +1238,8 @@ | |||
1144 | <entry></entry> | 1238 | <entry></entry> |
1145 | <entry></entry> | 1239 | <entry></entry> |
1146 | <entry></entry> | 1240 | <entry></entry> |
1147 | <entry>-</entry> | 1241 | &dash-ent-10; |
1148 | <entry>-</entry> | 1242 | &dash-ent-10; |
1149 | <entry>-</entry> | ||
1150 | <entry>-</entry> | ||
1151 | <entry>-</entry> | ||
1152 | <entry>-</entry> | ||
1153 | <entry>-</entry> | ||
1154 | <entry>-</entry> | ||
1155 | <entry>-</entry> | ||
1156 | <entry>-</entry> | ||
1157 | <entry>-</entry> | 1243 | <entry>-</entry> |
1158 | <entry>-</entry> | 1244 | <entry>-</entry> |
1159 | <entry>y<subscript>7</subscript></entry> | 1245 | <entry>y<subscript>7</subscript></entry> |
@@ -1169,16 +1255,8 @@ | |||
1169 | <entry></entry> | 1255 | <entry></entry> |
1170 | <entry></entry> | 1256 | <entry></entry> |
1171 | <entry></entry> | 1257 | <entry></entry> |
1172 | <entry>-</entry> | 1258 | &dash-ent-10; |
1173 | <entry>-</entry> | 1259 | &dash-ent-10; |
1174 | <entry>-</entry> | ||
1175 | <entry>-</entry> | ||
1176 | <entry>-</entry> | ||
1177 | <entry>-</entry> | ||
1178 | <entry>-</entry> | ||
1179 | <entry>-</entry> | ||
1180 | <entry>-</entry> | ||
1181 | <entry>-</entry> | ||
1182 | <entry>-</entry> | 1260 | <entry>-</entry> |
1183 | <entry>-</entry> | 1261 | <entry>-</entry> |
1184 | <entry>y<subscript>7</subscript></entry> | 1262 | <entry>y<subscript>7</subscript></entry> |
@@ -1194,16 +1272,8 @@ | |||
1194 | <entry></entry> | 1272 | <entry></entry> |
1195 | <entry></entry> | 1273 | <entry></entry> |
1196 | <entry></entry> | 1274 | <entry></entry> |
1197 | <entry>-</entry> | 1275 | &dash-ent-10; |
1198 | <entry>-</entry> | 1276 | &dash-ent-10; |
1199 | <entry>-</entry> | ||
1200 | <entry>-</entry> | ||
1201 | <entry>-</entry> | ||
1202 | <entry>-</entry> | ||
1203 | <entry>-</entry> | ||
1204 | <entry>-</entry> | ||
1205 | <entry>-</entry> | ||
1206 | <entry>-</entry> | ||
1207 | <entry>-</entry> | 1277 | <entry>-</entry> |
1208 | <entry>-</entry> | 1278 | <entry>-</entry> |
1209 | <entry>u<subscript>7</subscript></entry> | 1279 | <entry>u<subscript>7</subscript></entry> |
@@ -1219,16 +1289,8 @@ | |||
1219 | <entry></entry> | 1289 | <entry></entry> |
1220 | <entry></entry> | 1290 | <entry></entry> |
1221 | <entry></entry> | 1291 | <entry></entry> |
1222 | <entry>-</entry> | 1292 | &dash-ent-10; |
1223 | <entry>-</entry> | 1293 | &dash-ent-10; |
1224 | <entry>-</entry> | ||
1225 | <entry>-</entry> | ||
1226 | <entry>-</entry> | ||
1227 | <entry>-</entry> | ||
1228 | <entry>-</entry> | ||
1229 | <entry>-</entry> | ||
1230 | <entry>-</entry> | ||
1231 | <entry>-</entry> | ||
1232 | <entry>-</entry> | 1294 | <entry>-</entry> |
1233 | <entry>-</entry> | 1295 | <entry>-</entry> |
1234 | <entry>y<subscript>7</subscript></entry> | 1296 | <entry>y<subscript>7</subscript></entry> |
@@ -1244,16 +1306,8 @@ | |||
1244 | <entry></entry> | 1306 | <entry></entry> |
1245 | <entry></entry> | 1307 | <entry></entry> |
1246 | <entry></entry> | 1308 | <entry></entry> |
1247 | <entry>-</entry> | 1309 | &dash-ent-10; |
1248 | <entry>-</entry> | 1310 | &dash-ent-10; |
1249 | <entry>-</entry> | ||
1250 | <entry>-</entry> | ||
1251 | <entry>-</entry> | ||
1252 | <entry>-</entry> | ||
1253 | <entry>-</entry> | ||
1254 | <entry>-</entry> | ||
1255 | <entry>-</entry> | ||
1256 | <entry>-</entry> | ||
1257 | <entry>-</entry> | 1311 | <entry>-</entry> |
1258 | <entry>-</entry> | 1312 | <entry>-</entry> |
1259 | <entry>y<subscript>7</subscript></entry> | 1313 | <entry>y<subscript>7</subscript></entry> |
@@ -1269,16 +1323,8 @@ | |||
1269 | <entry>V4L2_MBUS_FMT_YUYV8_1_5X8</entry> | 1323 | <entry>V4L2_MBUS_FMT_YUYV8_1_5X8</entry> |
1270 | <entry>0x2004</entry> | 1324 | <entry>0x2004</entry> |
1271 | <entry></entry> | 1325 | <entry></entry> |
1272 | <entry>-</entry> | 1326 | &dash-ent-10; |
1273 | <entry>-</entry> | 1327 | &dash-ent-10; |
1274 | <entry>-</entry> | ||
1275 | <entry>-</entry> | ||
1276 | <entry>-</entry> | ||
1277 | <entry>-</entry> | ||
1278 | <entry>-</entry> | ||
1279 | <entry>-</entry> | ||
1280 | <entry>-</entry> | ||
1281 | <entry>-</entry> | ||
1282 | <entry>-</entry> | 1328 | <entry>-</entry> |
1283 | <entry>-</entry> | 1329 | <entry>-</entry> |
1284 | <entry>y<subscript>7</subscript></entry> | 1330 | <entry>y<subscript>7</subscript></entry> |
@@ -1294,16 +1340,8 @@ | |||
1294 | <entry></entry> | 1340 | <entry></entry> |
1295 | <entry></entry> | 1341 | <entry></entry> |
1296 | <entry></entry> | 1342 | <entry></entry> |
1297 | <entry>-</entry> | 1343 | &dash-ent-10; |
1298 | <entry>-</entry> | 1344 | &dash-ent-10; |
1299 | <entry>-</entry> | ||
1300 | <entry>-</entry> | ||
1301 | <entry>-</entry> | ||
1302 | <entry>-</entry> | ||
1303 | <entry>-</entry> | ||
1304 | <entry>-</entry> | ||
1305 | <entry>-</entry> | ||
1306 | <entry>-</entry> | ||
1307 | <entry>-</entry> | 1345 | <entry>-</entry> |
1308 | <entry>-</entry> | 1346 | <entry>-</entry> |
1309 | <entry>y<subscript>7</subscript></entry> | 1347 | <entry>y<subscript>7</subscript></entry> |
@@ -1319,16 +1357,8 @@ | |||
1319 | <entry></entry> | 1357 | <entry></entry> |
1320 | <entry></entry> | 1358 | <entry></entry> |
1321 | <entry></entry> | 1359 | <entry></entry> |
1322 | <entry>-</entry> | 1360 | &dash-ent-10; |
1323 | <entry>-</entry> | 1361 | &dash-ent-10; |
1324 | <entry>-</entry> | ||
1325 | <entry>-</entry> | ||
1326 | <entry>-</entry> | ||
1327 | <entry>-</entry> | ||
1328 | <entry>-</entry> | ||
1329 | <entry>-</entry> | ||
1330 | <entry>-</entry> | ||
1331 | <entry>-</entry> | ||
1332 | <entry>-</entry> | 1362 | <entry>-</entry> |
1333 | <entry>-</entry> | 1363 | <entry>-</entry> |
1334 | <entry>u<subscript>7</subscript></entry> | 1364 | <entry>u<subscript>7</subscript></entry> |
@@ -1344,16 +1374,8 @@ | |||
1344 | <entry></entry> | 1374 | <entry></entry> |
1345 | <entry></entry> | 1375 | <entry></entry> |
1346 | <entry></entry> | 1376 | <entry></entry> |
1347 | <entry>-</entry> | 1377 | &dash-ent-10; |
1348 | <entry>-</entry> | 1378 | &dash-ent-10; |
1349 | <entry>-</entry> | ||
1350 | <entry>-</entry> | ||
1351 | <entry>-</entry> | ||
1352 | <entry>-</entry> | ||
1353 | <entry>-</entry> | ||
1354 | <entry>-</entry> | ||
1355 | <entry>-</entry> | ||
1356 | <entry>-</entry> | ||
1357 | <entry>-</entry> | 1379 | <entry>-</entry> |
1358 | <entry>-</entry> | 1380 | <entry>-</entry> |
1359 | <entry>y<subscript>7</subscript></entry> | 1381 | <entry>y<subscript>7</subscript></entry> |
@@ -1369,16 +1391,8 @@ | |||
1369 | <entry></entry> | 1391 | <entry></entry> |
1370 | <entry></entry> | 1392 | <entry></entry> |
1371 | <entry></entry> | 1393 | <entry></entry> |
1372 | <entry>-</entry> | 1394 | &dash-ent-10; |
1373 | <entry>-</entry> | 1395 | &dash-ent-10; |
1374 | <entry>-</entry> | ||
1375 | <entry>-</entry> | ||
1376 | <entry>-</entry> | ||
1377 | <entry>-</entry> | ||
1378 | <entry>-</entry> | ||
1379 | <entry>-</entry> | ||
1380 | <entry>-</entry> | ||
1381 | <entry>-</entry> | ||
1382 | <entry>-</entry> | 1396 | <entry>-</entry> |
1383 | <entry>-</entry> | 1397 | <entry>-</entry> |
1384 | <entry>y<subscript>7</subscript></entry> | 1398 | <entry>y<subscript>7</subscript></entry> |
@@ -1394,16 +1408,8 @@ | |||
1394 | <entry></entry> | 1408 | <entry></entry> |
1395 | <entry></entry> | 1409 | <entry></entry> |
1396 | <entry></entry> | 1410 | <entry></entry> |
1397 | <entry>-</entry> | 1411 | &dash-ent-10; |
1398 | <entry>-</entry> | 1412 | &dash-ent-10; |
1399 | <entry>-</entry> | ||
1400 | <entry>-</entry> | ||
1401 | <entry>-</entry> | ||
1402 | <entry>-</entry> | ||
1403 | <entry>-</entry> | ||
1404 | <entry>-</entry> | ||
1405 | <entry>-</entry> | ||
1406 | <entry>-</entry> | ||
1407 | <entry>-</entry> | 1413 | <entry>-</entry> |
1408 | <entry>-</entry> | 1414 | <entry>-</entry> |
1409 | <entry>v<subscript>7</subscript></entry> | 1415 | <entry>v<subscript>7</subscript></entry> |
@@ -1419,16 +1425,8 @@ | |||
1419 | <entry>V4L2_MBUS_FMT_YVYU8_1_5X8</entry> | 1425 | <entry>V4L2_MBUS_FMT_YVYU8_1_5X8</entry> |
1420 | <entry>0x2005</entry> | 1426 | <entry>0x2005</entry> |
1421 | <entry></entry> | 1427 | <entry></entry> |
1422 | <entry>-</entry> | 1428 | &dash-ent-10; |
1423 | <entry>-</entry> | 1429 | &dash-ent-10; |
1424 | <entry>-</entry> | ||
1425 | <entry>-</entry> | ||
1426 | <entry>-</entry> | ||
1427 | <entry>-</entry> | ||
1428 | <entry>-</entry> | ||
1429 | <entry>-</entry> | ||
1430 | <entry>-</entry> | ||
1431 | <entry>-</entry> | ||
1432 | <entry>-</entry> | 1430 | <entry>-</entry> |
1433 | <entry>-</entry> | 1431 | <entry>-</entry> |
1434 | <entry>y<subscript>7</subscript></entry> | 1432 | <entry>y<subscript>7</subscript></entry> |
@@ -1444,16 +1442,8 @@ | |||
1444 | <entry></entry> | 1442 | <entry></entry> |
1445 | <entry></entry> | 1443 | <entry></entry> |
1446 | <entry></entry> | 1444 | <entry></entry> |
1447 | <entry>-</entry> | 1445 | &dash-ent-10; |
1448 | <entry>-</entry> | 1446 | &dash-ent-10; |
1449 | <entry>-</entry> | ||
1450 | <entry>-</entry> | ||
1451 | <entry>-</entry> | ||
1452 | <entry>-</entry> | ||
1453 | <entry>-</entry> | ||
1454 | <entry>-</entry> | ||
1455 | <entry>-</entry> | ||
1456 | <entry>-</entry> | ||
1457 | <entry>-</entry> | 1447 | <entry>-</entry> |
1458 | <entry>-</entry> | 1448 | <entry>-</entry> |
1459 | <entry>y<subscript>7</subscript></entry> | 1449 | <entry>y<subscript>7</subscript></entry> |
@@ -1469,16 +1459,8 @@ | |||
1469 | <entry></entry> | 1459 | <entry></entry> |
1470 | <entry></entry> | 1460 | <entry></entry> |
1471 | <entry></entry> | 1461 | <entry></entry> |
1472 | <entry>-</entry> | 1462 | &dash-ent-10; |
1473 | <entry>-</entry> | 1463 | &dash-ent-10; |
1474 | <entry>-</entry> | ||
1475 | <entry>-</entry> | ||
1476 | <entry>-</entry> | ||
1477 | <entry>-</entry> | ||
1478 | <entry>-</entry> | ||
1479 | <entry>-</entry> | ||
1480 | <entry>-</entry> | ||
1481 | <entry>-</entry> | ||
1482 | <entry>-</entry> | 1464 | <entry>-</entry> |
1483 | <entry>-</entry> | 1465 | <entry>-</entry> |
1484 | <entry>v<subscript>7</subscript></entry> | 1466 | <entry>v<subscript>7</subscript></entry> |
@@ -1494,16 +1476,8 @@ | |||
1494 | <entry></entry> | 1476 | <entry></entry> |
1495 | <entry></entry> | 1477 | <entry></entry> |
1496 | <entry></entry> | 1478 | <entry></entry> |
1497 | <entry>-</entry> | 1479 | &dash-ent-10; |
1498 | <entry>-</entry> | 1480 | &dash-ent-10; |
1499 | <entry>-</entry> | ||
1500 | <entry>-</entry> | ||
1501 | <entry>-</entry> | ||
1502 | <entry>-</entry> | ||
1503 | <entry>-</entry> | ||
1504 | <entry>-</entry> | ||
1505 | <entry>-</entry> | ||
1506 | <entry>-</entry> | ||
1507 | <entry>-</entry> | 1481 | <entry>-</entry> |
1508 | <entry>-</entry> | 1482 | <entry>-</entry> |
1509 | <entry>y<subscript>7</subscript></entry> | 1483 | <entry>y<subscript>7</subscript></entry> |
@@ -1519,16 +1493,8 @@ | |||
1519 | <entry></entry> | 1493 | <entry></entry> |
1520 | <entry></entry> | 1494 | <entry></entry> |
1521 | <entry></entry> | 1495 | <entry></entry> |
1522 | <entry>-</entry> | 1496 | &dash-ent-10; |
1523 | <entry>-</entry> | 1497 | &dash-ent-10; |
1524 | <entry>-</entry> | ||
1525 | <entry>-</entry> | ||
1526 | <entry>-</entry> | ||
1527 | <entry>-</entry> | ||
1528 | <entry>-</entry> | ||
1529 | <entry>-</entry> | ||
1530 | <entry>-</entry> | ||
1531 | <entry>-</entry> | ||
1532 | <entry>-</entry> | 1498 | <entry>-</entry> |
1533 | <entry>-</entry> | 1499 | <entry>-</entry> |
1534 | <entry>y<subscript>7</subscript></entry> | 1500 | <entry>y<subscript>7</subscript></entry> |
@@ -1544,16 +1510,8 @@ | |||
1544 | <entry></entry> | 1510 | <entry></entry> |
1545 | <entry></entry> | 1511 | <entry></entry> |
1546 | <entry></entry> | 1512 | <entry></entry> |
1547 | <entry>-</entry> | 1513 | &dash-ent-10; |
1548 | <entry>-</entry> | 1514 | &dash-ent-10; |
1549 | <entry>-</entry> | ||
1550 | <entry>-</entry> | ||
1551 | <entry>-</entry> | ||
1552 | <entry>-</entry> | ||
1553 | <entry>-</entry> | ||
1554 | <entry>-</entry> | ||
1555 | <entry>-</entry> | ||
1556 | <entry>-</entry> | ||
1557 | <entry>-</entry> | 1515 | <entry>-</entry> |
1558 | <entry>-</entry> | 1516 | <entry>-</entry> |
1559 | <entry>u<subscript>7</subscript></entry> | 1517 | <entry>u<subscript>7</subscript></entry> |
@@ -1569,16 +1527,8 @@ | |||
1569 | <entry>V4L2_MBUS_FMT_UYVY8_2X8</entry> | 1527 | <entry>V4L2_MBUS_FMT_UYVY8_2X8</entry> |
1570 | <entry>0x2006</entry> | 1528 | <entry>0x2006</entry> |
1571 | <entry></entry> | 1529 | <entry></entry> |
1572 | <entry>-</entry> | 1530 | &dash-ent-10; |
1573 | <entry>-</entry> | 1531 | &dash-ent-10; |
1574 | <entry>-</entry> | ||
1575 | <entry>-</entry> | ||
1576 | <entry>-</entry> | ||
1577 | <entry>-</entry> | ||
1578 | <entry>-</entry> | ||
1579 | <entry>-</entry> | ||
1580 | <entry>-</entry> | ||
1581 | <entry>-</entry> | ||
1582 | <entry>-</entry> | 1532 | <entry>-</entry> |
1583 | <entry>-</entry> | 1533 | <entry>-</entry> |
1584 | <entry>u<subscript>7</subscript></entry> | 1534 | <entry>u<subscript>7</subscript></entry> |
@@ -1594,16 +1544,8 @@ | |||
1594 | <entry></entry> | 1544 | <entry></entry> |
1595 | <entry></entry> | 1545 | <entry></entry> |
1596 | <entry></entry> | 1546 | <entry></entry> |
1597 | <entry>-</entry> | 1547 | &dash-ent-10; |
1598 | <entry>-</entry> | 1548 | &dash-ent-10; |
1599 | <entry>-</entry> | ||
1600 | <entry>-</entry> | ||
1601 | <entry>-</entry> | ||
1602 | <entry>-</entry> | ||
1603 | <entry>-</entry> | ||
1604 | <entry>-</entry> | ||
1605 | <entry>-</entry> | ||
1606 | <entry>-</entry> | ||
1607 | <entry>-</entry> | 1549 | <entry>-</entry> |
1608 | <entry>-</entry> | 1550 | <entry>-</entry> |
1609 | <entry>y<subscript>7</subscript></entry> | 1551 | <entry>y<subscript>7</subscript></entry> |
@@ -1619,16 +1561,8 @@ | |||
1619 | <entry></entry> | 1561 | <entry></entry> |
1620 | <entry></entry> | 1562 | <entry></entry> |
1621 | <entry></entry> | 1563 | <entry></entry> |
1622 | <entry>-</entry> | 1564 | &dash-ent-10; |
1623 | <entry>-</entry> | 1565 | &dash-ent-10; |
1624 | <entry>-</entry> | ||
1625 | <entry>-</entry> | ||
1626 | <entry>-</entry> | ||
1627 | <entry>-</entry> | ||
1628 | <entry>-</entry> | ||
1629 | <entry>-</entry> | ||
1630 | <entry>-</entry> | ||
1631 | <entry>-</entry> | ||
1632 | <entry>-</entry> | 1566 | <entry>-</entry> |
1633 | <entry>-</entry> | 1567 | <entry>-</entry> |
1634 | <entry>v<subscript>7</subscript></entry> | 1568 | <entry>v<subscript>7</subscript></entry> |
@@ -1644,16 +1578,8 @@ | |||
1644 | <entry></entry> | 1578 | <entry></entry> |
1645 | <entry></entry> | 1579 | <entry></entry> |
1646 | <entry></entry> | 1580 | <entry></entry> |
1647 | <entry>-</entry> | 1581 | &dash-ent-10; |
1648 | <entry>-</entry> | 1582 | &dash-ent-10; |
1649 | <entry>-</entry> | ||
1650 | <entry>-</entry> | ||
1651 | <entry>-</entry> | ||
1652 | <entry>-</entry> | ||
1653 | <entry>-</entry> | ||
1654 | <entry>-</entry> | ||
1655 | <entry>-</entry> | ||
1656 | <entry>-</entry> | ||
1657 | <entry>-</entry> | 1583 | <entry>-</entry> |
1658 | <entry>-</entry> | 1584 | <entry>-</entry> |
1659 | <entry>y<subscript>7</subscript></entry> | 1585 | <entry>y<subscript>7</subscript></entry> |
@@ -1669,16 +1595,8 @@ | |||
1669 | <entry>V4L2_MBUS_FMT_VYUY8_2X8</entry> | 1595 | <entry>V4L2_MBUS_FMT_VYUY8_2X8</entry> |
1670 | <entry>0x2007</entry> | 1596 | <entry>0x2007</entry> |
1671 | <entry></entry> | 1597 | <entry></entry> |
1672 | <entry>-</entry> | 1598 | &dash-ent-10; |
1673 | <entry>-</entry> | 1599 | &dash-ent-10; |
1674 | <entry>-</entry> | ||
1675 | <entry>-</entry> | ||
1676 | <entry>-</entry> | ||
1677 | <entry>-</entry> | ||
1678 | <entry>-</entry> | ||
1679 | <entry>-</entry> | ||
1680 | <entry>-</entry> | ||
1681 | <entry>-</entry> | ||
1682 | <entry>-</entry> | 1600 | <entry>-</entry> |
1683 | <entry>-</entry> | 1601 | <entry>-</entry> |
1684 | <entry>v<subscript>7</subscript></entry> | 1602 | <entry>v<subscript>7</subscript></entry> |
@@ -1694,16 +1612,8 @@ | |||
1694 | <entry></entry> | 1612 | <entry></entry> |
1695 | <entry></entry> | 1613 | <entry></entry> |
1696 | <entry></entry> | 1614 | <entry></entry> |
1697 | <entry>-</entry> | 1615 | &dash-ent-10; |
1698 | <entry>-</entry> | 1616 | &dash-ent-10; |
1699 | <entry>-</entry> | ||
1700 | <entry>-</entry> | ||
1701 | <entry>-</entry> | ||
1702 | <entry>-</entry> | ||
1703 | <entry>-</entry> | ||
1704 | <entry>-</entry> | ||
1705 | <entry>-</entry> | ||
1706 | <entry>-</entry> | ||
1707 | <entry>-</entry> | 1617 | <entry>-</entry> |
1708 | <entry>-</entry> | 1618 | <entry>-</entry> |
1709 | <entry>y<subscript>7</subscript></entry> | 1619 | <entry>y<subscript>7</subscript></entry> |
@@ -1719,16 +1629,8 @@ | |||
1719 | <entry></entry> | 1629 | <entry></entry> |
1720 | <entry></entry> | 1630 | <entry></entry> |
1721 | <entry></entry> | 1631 | <entry></entry> |
1722 | <entry>-</entry> | 1632 | &dash-ent-10; |
1723 | <entry>-</entry> | 1633 | &dash-ent-10; |
1724 | <entry>-</entry> | ||
1725 | <entry>-</entry> | ||
1726 | <entry>-</entry> | ||
1727 | <entry>-</entry> | ||
1728 | <entry>-</entry> | ||
1729 | <entry>-</entry> | ||
1730 | <entry>-</entry> | ||
1731 | <entry>-</entry> | ||
1732 | <entry>-</entry> | 1634 | <entry>-</entry> |
1733 | <entry>-</entry> | 1635 | <entry>-</entry> |
1734 | <entry>u<subscript>7</subscript></entry> | 1636 | <entry>u<subscript>7</subscript></entry> |
@@ -1744,16 +1646,8 @@ | |||
1744 | <entry></entry> | 1646 | <entry></entry> |
1745 | <entry></entry> | 1647 | <entry></entry> |
1746 | <entry></entry> | 1648 | <entry></entry> |
1747 | <entry>-</entry> | 1649 | &dash-ent-10; |
1748 | <entry>-</entry> | 1650 | &dash-ent-10; |
1749 | <entry>-</entry> | ||
1750 | <entry>-</entry> | ||
1751 | <entry>-</entry> | ||
1752 | <entry>-</entry> | ||
1753 | <entry>-</entry> | ||
1754 | <entry>-</entry> | ||
1755 | <entry>-</entry> | ||
1756 | <entry>-</entry> | ||
1757 | <entry>-</entry> | 1651 | <entry>-</entry> |
1758 | <entry>-</entry> | 1652 | <entry>-</entry> |
1759 | <entry>y<subscript>7</subscript></entry> | 1653 | <entry>y<subscript>7</subscript></entry> |
@@ -1769,16 +1663,8 @@ | |||
1769 | <entry>V4L2_MBUS_FMT_YUYV8_2X8</entry> | 1663 | <entry>V4L2_MBUS_FMT_YUYV8_2X8</entry> |
1770 | <entry>0x2008</entry> | 1664 | <entry>0x2008</entry> |
1771 | <entry></entry> | 1665 | <entry></entry> |
1772 | <entry>-</entry> | 1666 | &dash-ent-10; |
1773 | <entry>-</entry> | 1667 | &dash-ent-10; |
1774 | <entry>-</entry> | ||
1775 | <entry>-</entry> | ||
1776 | <entry>-</entry> | ||
1777 | <entry>-</entry> | ||
1778 | <entry>-</entry> | ||
1779 | <entry>-</entry> | ||
1780 | <entry>-</entry> | ||
1781 | <entry>-</entry> | ||
1782 | <entry>-</entry> | 1668 | <entry>-</entry> |
1783 | <entry>-</entry> | 1669 | <entry>-</entry> |
1784 | <entry>y<subscript>7</subscript></entry> | 1670 | <entry>y<subscript>7</subscript></entry> |
@@ -1794,16 +1680,8 @@ | |||
1794 | <entry></entry> | 1680 | <entry></entry> |
1795 | <entry></entry> | 1681 | <entry></entry> |
1796 | <entry></entry> | 1682 | <entry></entry> |
1797 | <entry>-</entry> | 1683 | &dash-ent-10; |
1798 | <entry>-</entry> | 1684 | &dash-ent-10; |
1799 | <entry>-</entry> | ||
1800 | <entry>-</entry> | ||
1801 | <entry>-</entry> | ||
1802 | <entry>-</entry> | ||
1803 | <entry>-</entry> | ||
1804 | <entry>-</entry> | ||
1805 | <entry>-</entry> | ||
1806 | <entry>-</entry> | ||
1807 | <entry>-</entry> | 1685 | <entry>-</entry> |
1808 | <entry>-</entry> | 1686 | <entry>-</entry> |
1809 | <entry>u<subscript>7</subscript></entry> | 1687 | <entry>u<subscript>7</subscript></entry> |
@@ -1819,16 +1697,8 @@ | |||
1819 | <entry></entry> | 1697 | <entry></entry> |
1820 | <entry></entry> | 1698 | <entry></entry> |
1821 | <entry></entry> | 1699 | <entry></entry> |
1822 | <entry>-</entry> | 1700 | &dash-ent-10; |
1823 | <entry>-</entry> | 1701 | &dash-ent-10; |
1824 | <entry>-</entry> | ||
1825 | <entry>-</entry> | ||
1826 | <entry>-</entry> | ||
1827 | <entry>-</entry> | ||
1828 | <entry>-</entry> | ||
1829 | <entry>-</entry> | ||
1830 | <entry>-</entry> | ||
1831 | <entry>-</entry> | ||
1832 | <entry>-</entry> | 1702 | <entry>-</entry> |
1833 | <entry>-</entry> | 1703 | <entry>-</entry> |
1834 | <entry>y<subscript>7</subscript></entry> | 1704 | <entry>y<subscript>7</subscript></entry> |
@@ -1844,16 +1714,8 @@ | |||
1844 | <entry></entry> | 1714 | <entry></entry> |
1845 | <entry></entry> | 1715 | <entry></entry> |
1846 | <entry></entry> | 1716 | <entry></entry> |
1847 | <entry>-</entry> | 1717 | &dash-ent-10; |
1848 | <entry>-</entry> | 1718 | &dash-ent-10; |
1849 | <entry>-</entry> | ||
1850 | <entry>-</entry> | ||
1851 | <entry>-</entry> | ||
1852 | <entry>-</entry> | ||
1853 | <entry>-</entry> | ||
1854 | <entry>-</entry> | ||
1855 | <entry>-</entry> | ||
1856 | <entry>-</entry> | ||
1857 | <entry>-</entry> | 1719 | <entry>-</entry> |
1858 | <entry>-</entry> | 1720 | <entry>-</entry> |
1859 | <entry>v<subscript>7</subscript></entry> | 1721 | <entry>v<subscript>7</subscript></entry> |
@@ -1869,16 +1731,8 @@ | |||
1869 | <entry>V4L2_MBUS_FMT_YVYU8_2X8</entry> | 1731 | <entry>V4L2_MBUS_FMT_YVYU8_2X8</entry> |
1870 | <entry>0x2009</entry> | 1732 | <entry>0x2009</entry> |
1871 | <entry></entry> | 1733 | <entry></entry> |
1872 | <entry>-</entry> | 1734 | &dash-ent-10; |
1873 | <entry>-</entry> | 1735 | &dash-ent-10; |
1874 | <entry>-</entry> | ||
1875 | <entry>-</entry> | ||
1876 | <entry>-</entry> | ||
1877 | <entry>-</entry> | ||
1878 | <entry>-</entry> | ||
1879 | <entry>-</entry> | ||
1880 | <entry>-</entry> | ||
1881 | <entry>-</entry> | ||
1882 | <entry>-</entry> | 1736 | <entry>-</entry> |
1883 | <entry>-</entry> | 1737 | <entry>-</entry> |
1884 | <entry>y<subscript>7</subscript></entry> | 1738 | <entry>y<subscript>7</subscript></entry> |
@@ -1894,16 +1748,8 @@ | |||
1894 | <entry></entry> | 1748 | <entry></entry> |
1895 | <entry></entry> | 1749 | <entry></entry> |
1896 | <entry></entry> | 1750 | <entry></entry> |
1897 | <entry>-</entry> | 1751 | &dash-ent-10; |
1898 | <entry>-</entry> | 1752 | &dash-ent-10; |
1899 | <entry>-</entry> | ||
1900 | <entry>-</entry> | ||
1901 | <entry>-</entry> | ||
1902 | <entry>-</entry> | ||
1903 | <entry>-</entry> | ||
1904 | <entry>-</entry> | ||
1905 | <entry>-</entry> | ||
1906 | <entry>-</entry> | ||
1907 | <entry>-</entry> | 1753 | <entry>-</entry> |
1908 | <entry>-</entry> | 1754 | <entry>-</entry> |
1909 | <entry>v<subscript>7</subscript></entry> | 1755 | <entry>v<subscript>7</subscript></entry> |
@@ -1919,16 +1765,8 @@ | |||
1919 | <entry></entry> | 1765 | <entry></entry> |
1920 | <entry></entry> | 1766 | <entry></entry> |
1921 | <entry></entry> | 1767 | <entry></entry> |
1922 | <entry>-</entry> | 1768 | &dash-ent-10; |
1923 | <entry>-</entry> | 1769 | &dash-ent-10; |
1924 | <entry>-</entry> | ||
1925 | <entry>-</entry> | ||
1926 | <entry>-</entry> | ||
1927 | <entry>-</entry> | ||
1928 | <entry>-</entry> | ||
1929 | <entry>-</entry> | ||
1930 | <entry>-</entry> | ||
1931 | <entry>-</entry> | ||
1932 | <entry>-</entry> | 1770 | <entry>-</entry> |
1933 | <entry>-</entry> | 1771 | <entry>-</entry> |
1934 | <entry>y<subscript>7</subscript></entry> | 1772 | <entry>y<subscript>7</subscript></entry> |
@@ -1944,16 +1782,8 @@ | |||
1944 | <entry></entry> | 1782 | <entry></entry> |
1945 | <entry></entry> | 1783 | <entry></entry> |
1946 | <entry></entry> | 1784 | <entry></entry> |
1947 | <entry>-</entry> | 1785 | &dash-ent-10; |
1948 | <entry>-</entry> | 1786 | &dash-ent-10; |
1949 | <entry>-</entry> | ||
1950 | <entry>-</entry> | ||
1951 | <entry>-</entry> | ||
1952 | <entry>-</entry> | ||
1953 | <entry>-</entry> | ||
1954 | <entry>-</entry> | ||
1955 | <entry>-</entry> | ||
1956 | <entry>-</entry> | ||
1957 | <entry>-</entry> | 1787 | <entry>-</entry> |
1958 | <entry>-</entry> | 1788 | <entry>-</entry> |
1959 | <entry>u<subscript>7</subscript></entry> | 1789 | <entry>u<subscript>7</subscript></entry> |
@@ -1969,16 +1799,8 @@ | |||
1969 | <entry>V4L2_MBUS_FMT_Y10_1X10</entry> | 1799 | <entry>V4L2_MBUS_FMT_Y10_1X10</entry> |
1970 | <entry>0x200a</entry> | 1800 | <entry>0x200a</entry> |
1971 | <entry></entry> | 1801 | <entry></entry> |
1972 | <entry>-</entry> | 1802 | &dash-ent-10; |
1973 | <entry>-</entry> | 1803 | &dash-ent-10; |
1974 | <entry>-</entry> | ||
1975 | <entry>-</entry> | ||
1976 | <entry>-</entry> | ||
1977 | <entry>-</entry> | ||
1978 | <entry>-</entry> | ||
1979 | <entry>-</entry> | ||
1980 | <entry>-</entry> | ||
1981 | <entry>-</entry> | ||
1982 | <entry>y<subscript>9</subscript></entry> | 1804 | <entry>y<subscript>9</subscript></entry> |
1983 | <entry>y<subscript>8</subscript></entry> | 1805 | <entry>y<subscript>8</subscript></entry> |
1984 | <entry>y<subscript>7</subscript></entry> | 1806 | <entry>y<subscript>7</subscript></entry> |
@@ -1994,16 +1816,8 @@ | |||
1994 | <entry>V4L2_MBUS_FMT_YUYV10_2X10</entry> | 1816 | <entry>V4L2_MBUS_FMT_YUYV10_2X10</entry> |
1995 | <entry>0x200b</entry> | 1817 | <entry>0x200b</entry> |
1996 | <entry></entry> | 1818 | <entry></entry> |
1997 | <entry>-</entry> | 1819 | &dash-ent-10; |
1998 | <entry>-</entry> | 1820 | &dash-ent-10; |
1999 | <entry>-</entry> | ||
2000 | <entry>-</entry> | ||
2001 | <entry>-</entry> | ||
2002 | <entry>-</entry> | ||
2003 | <entry>-</entry> | ||
2004 | <entry>-</entry> | ||
2005 | <entry>-</entry> | ||
2006 | <entry>-</entry> | ||
2007 | <entry>y<subscript>9</subscript></entry> | 1821 | <entry>y<subscript>9</subscript></entry> |
2008 | <entry>y<subscript>8</subscript></entry> | 1822 | <entry>y<subscript>8</subscript></entry> |
2009 | <entry>y<subscript>7</subscript></entry> | 1823 | <entry>y<subscript>7</subscript></entry> |
@@ -2019,16 +1833,8 @@ | |||
2019 | <entry></entry> | 1833 | <entry></entry> |
2020 | <entry></entry> | 1834 | <entry></entry> |
2021 | <entry></entry> | 1835 | <entry></entry> |
2022 | <entry>-</entry> | 1836 | &dash-ent-10; |
2023 | <entry>-</entry> | 1837 | &dash-ent-10; |
2024 | <entry>-</entry> | ||
2025 | <entry>-</entry> | ||
2026 | <entry>-</entry> | ||
2027 | <entry>-</entry> | ||
2028 | <entry>-</entry> | ||
2029 | <entry>-</entry> | ||
2030 | <entry>-</entry> | ||
2031 | <entry>-</entry> | ||
2032 | <entry>u<subscript>9</subscript></entry> | 1838 | <entry>u<subscript>9</subscript></entry> |
2033 | <entry>u<subscript>8</subscript></entry> | 1839 | <entry>u<subscript>8</subscript></entry> |
2034 | <entry>u<subscript>7</subscript></entry> | 1840 | <entry>u<subscript>7</subscript></entry> |
@@ -2044,16 +1850,8 @@ | |||
2044 | <entry></entry> | 1850 | <entry></entry> |
2045 | <entry></entry> | 1851 | <entry></entry> |
2046 | <entry></entry> | 1852 | <entry></entry> |
2047 | <entry>-</entry> | 1853 | &dash-ent-10; |
2048 | <entry>-</entry> | 1854 | &dash-ent-10; |
2049 | <entry>-</entry> | ||
2050 | <entry>-</entry> | ||
2051 | <entry>-</entry> | ||
2052 | <entry>-</entry> | ||
2053 | <entry>-</entry> | ||
2054 | <entry>-</entry> | ||
2055 | <entry>-</entry> | ||
2056 | <entry>-</entry> | ||
2057 | <entry>y<subscript>9</subscript></entry> | 1855 | <entry>y<subscript>9</subscript></entry> |
2058 | <entry>y<subscript>8</subscript></entry> | 1856 | <entry>y<subscript>8</subscript></entry> |
2059 | <entry>y<subscript>7</subscript></entry> | 1857 | <entry>y<subscript>7</subscript></entry> |
@@ -2069,16 +1867,8 @@ | |||
2069 | <entry></entry> | 1867 | <entry></entry> |
2070 | <entry></entry> | 1868 | <entry></entry> |
2071 | <entry></entry> | 1869 | <entry></entry> |
2072 | <entry>-</entry> | 1870 | &dash-ent-10; |
2073 | <entry>-</entry> | 1871 | &dash-ent-10; |
2074 | <entry>-</entry> | ||
2075 | <entry>-</entry> | ||
2076 | <entry>-</entry> | ||
2077 | <entry>-</entry> | ||
2078 | <entry>-</entry> | ||
2079 | <entry>-</entry> | ||
2080 | <entry>-</entry> | ||
2081 | <entry>-</entry> | ||
2082 | <entry>v<subscript>9</subscript></entry> | 1872 | <entry>v<subscript>9</subscript></entry> |
2083 | <entry>v<subscript>8</subscript></entry> | 1873 | <entry>v<subscript>8</subscript></entry> |
2084 | <entry>v<subscript>7</subscript></entry> | 1874 | <entry>v<subscript>7</subscript></entry> |
@@ -2094,16 +1884,8 @@ | |||
2094 | <entry>V4L2_MBUS_FMT_YVYU10_2X10</entry> | 1884 | <entry>V4L2_MBUS_FMT_YVYU10_2X10</entry> |
2095 | <entry>0x200c</entry> | 1885 | <entry>0x200c</entry> |
2096 | <entry></entry> | 1886 | <entry></entry> |
2097 | <entry>-</entry> | 1887 | &dash-ent-10; |
2098 | <entry>-</entry> | 1888 | &dash-ent-10; |
2099 | <entry>-</entry> | ||
2100 | <entry>-</entry> | ||
2101 | <entry>-</entry> | ||
2102 | <entry>-</entry> | ||
2103 | <entry>-</entry> | ||
2104 | <entry>-</entry> | ||
2105 | <entry>-</entry> | ||
2106 | <entry>-</entry> | ||
2107 | <entry>y<subscript>9</subscript></entry> | 1889 | <entry>y<subscript>9</subscript></entry> |
2108 | <entry>y<subscript>8</subscript></entry> | 1890 | <entry>y<subscript>8</subscript></entry> |
2109 | <entry>y<subscript>7</subscript></entry> | 1891 | <entry>y<subscript>7</subscript></entry> |
@@ -2119,16 +1901,8 @@ | |||
2119 | <entry></entry> | 1901 | <entry></entry> |
2120 | <entry></entry> | 1902 | <entry></entry> |
2121 | <entry></entry> | 1903 | <entry></entry> |
2122 | <entry>-</entry> | 1904 | &dash-ent-10; |
2123 | <entry>-</entry> | 1905 | &dash-ent-10; |
2124 | <entry>-</entry> | ||
2125 | <entry>-</entry> | ||
2126 | <entry>-</entry> | ||
2127 | <entry>-</entry> | ||
2128 | <entry>-</entry> | ||
2129 | <entry>-</entry> | ||
2130 | <entry>-</entry> | ||
2131 | <entry>-</entry> | ||
2132 | <entry>v<subscript>9</subscript></entry> | 1906 | <entry>v<subscript>9</subscript></entry> |
2133 | <entry>v<subscript>8</subscript></entry> | 1907 | <entry>v<subscript>8</subscript></entry> |
2134 | <entry>v<subscript>7</subscript></entry> | 1908 | <entry>v<subscript>7</subscript></entry> |
@@ -2144,16 +1918,8 @@ | |||
2144 | <entry></entry> | 1918 | <entry></entry> |
2145 | <entry></entry> | 1919 | <entry></entry> |
2146 | <entry></entry> | 1920 | <entry></entry> |
2147 | <entry>-</entry> | 1921 | &dash-ent-10; |
2148 | <entry>-</entry> | 1922 | &dash-ent-10; |
2149 | <entry>-</entry> | ||
2150 | <entry>-</entry> | ||
2151 | <entry>-</entry> | ||
2152 | <entry>-</entry> | ||
2153 | <entry>-</entry> | ||
2154 | <entry>-</entry> | ||
2155 | <entry>-</entry> | ||
2156 | <entry>-</entry> | ||
2157 | <entry>y<subscript>9</subscript></entry> | 1923 | <entry>y<subscript>9</subscript></entry> |
2158 | <entry>y<subscript>8</subscript></entry> | 1924 | <entry>y<subscript>8</subscript></entry> |
2159 | <entry>y<subscript>7</subscript></entry> | 1925 | <entry>y<subscript>7</subscript></entry> |
@@ -2169,16 +1935,8 @@ | |||
2169 | <entry></entry> | 1935 | <entry></entry> |
2170 | <entry></entry> | 1936 | <entry></entry> |
2171 | <entry></entry> | 1937 | <entry></entry> |
2172 | <entry>-</entry> | 1938 | &dash-ent-10; |
2173 | <entry>-</entry> | 1939 | &dash-ent-10; |
2174 | <entry>-</entry> | ||
2175 | <entry>-</entry> | ||
2176 | <entry>-</entry> | ||
2177 | <entry>-</entry> | ||
2178 | <entry>-</entry> | ||
2179 | <entry>-</entry> | ||
2180 | <entry>-</entry> | ||
2181 | <entry>-</entry> | ||
2182 | <entry>u<subscript>9</subscript></entry> | 1940 | <entry>u<subscript>9</subscript></entry> |
2183 | <entry>u<subscript>8</subscript></entry> | 1941 | <entry>u<subscript>8</subscript></entry> |
2184 | <entry>u<subscript>7</subscript></entry> | 1942 | <entry>u<subscript>7</subscript></entry> |
@@ -2194,6 +1952,7 @@ | |||
2194 | <entry>V4L2_MBUS_FMT_Y12_1X12</entry> | 1952 | <entry>V4L2_MBUS_FMT_Y12_1X12</entry> |
2195 | <entry>0x2013</entry> | 1953 | <entry>0x2013</entry> |
2196 | <entry></entry> | 1954 | <entry></entry> |
1955 | &dash-ent-10; | ||
2197 | <entry>-</entry> | 1956 | <entry>-</entry> |
2198 | <entry>-</entry> | 1957 | <entry>-</entry> |
2199 | <entry>-</entry> | 1958 | <entry>-</entry> |
@@ -2219,6 +1978,7 @@ | |||
2219 | <entry>V4L2_MBUS_FMT_UYVY8_1X16</entry> | 1978 | <entry>V4L2_MBUS_FMT_UYVY8_1X16</entry> |
2220 | <entry>0x200f</entry> | 1979 | <entry>0x200f</entry> |
2221 | <entry></entry> | 1980 | <entry></entry> |
1981 | &dash-ent-10; | ||
2222 | <entry>-</entry> | 1982 | <entry>-</entry> |
2223 | <entry>-</entry> | 1983 | <entry>-</entry> |
2224 | <entry>-</entry> | 1984 | <entry>-</entry> |
@@ -2244,6 +2004,7 @@ | |||
2244 | <entry></entry> | 2004 | <entry></entry> |
2245 | <entry></entry> | 2005 | <entry></entry> |
2246 | <entry></entry> | 2006 | <entry></entry> |
2007 | &dash-ent-10; | ||
2247 | <entry>-</entry> | 2008 | <entry>-</entry> |
2248 | <entry>-</entry> | 2009 | <entry>-</entry> |
2249 | <entry>-</entry> | 2010 | <entry>-</entry> |
@@ -2269,6 +2030,7 @@ | |||
2269 | <entry>V4L2_MBUS_FMT_VYUY8_1X16</entry> | 2030 | <entry>V4L2_MBUS_FMT_VYUY8_1X16</entry> |
2270 | <entry>0x2010</entry> | 2031 | <entry>0x2010</entry> |
2271 | <entry></entry> | 2032 | <entry></entry> |
2033 | &dash-ent-10; | ||
2272 | <entry>-</entry> | 2034 | <entry>-</entry> |
2273 | <entry>-</entry> | 2035 | <entry>-</entry> |
2274 | <entry>-</entry> | 2036 | <entry>-</entry> |
@@ -2294,6 +2056,7 @@ | |||
2294 | <entry></entry> | 2056 | <entry></entry> |
2295 | <entry></entry> | 2057 | <entry></entry> |
2296 | <entry></entry> | 2058 | <entry></entry> |
2059 | &dash-ent-10; | ||
2297 | <entry>-</entry> | 2060 | <entry>-</entry> |
2298 | <entry>-</entry> | 2061 | <entry>-</entry> |
2299 | <entry>-</entry> | 2062 | <entry>-</entry> |
@@ -2319,6 +2082,7 @@ | |||
2319 | <entry>V4L2_MBUS_FMT_YUYV8_1X16</entry> | 2082 | <entry>V4L2_MBUS_FMT_YUYV8_1X16</entry> |
2320 | <entry>0x2011</entry> | 2083 | <entry>0x2011</entry> |
2321 | <entry></entry> | 2084 | <entry></entry> |
2085 | &dash-ent-10; | ||
2322 | <entry>-</entry> | 2086 | <entry>-</entry> |
2323 | <entry>-</entry> | 2087 | <entry>-</entry> |
2324 | <entry>-</entry> | 2088 | <entry>-</entry> |
@@ -2344,6 +2108,7 @@ | |||
2344 | <entry></entry> | 2108 | <entry></entry> |
2345 | <entry></entry> | 2109 | <entry></entry> |
2346 | <entry></entry> | 2110 | <entry></entry> |
2111 | &dash-ent-10; | ||
2347 | <entry>-</entry> | 2112 | <entry>-</entry> |
2348 | <entry>-</entry> | 2113 | <entry>-</entry> |
2349 | <entry>-</entry> | 2114 | <entry>-</entry> |
@@ -2369,6 +2134,7 @@ | |||
2369 | <entry>V4L2_MBUS_FMT_YVYU8_1X16</entry> | 2134 | <entry>V4L2_MBUS_FMT_YVYU8_1X16</entry> |
2370 | <entry>0x2012</entry> | 2135 | <entry>0x2012</entry> |
2371 | <entry></entry> | 2136 | <entry></entry> |
2137 | &dash-ent-10; | ||
2372 | <entry>-</entry> | 2138 | <entry>-</entry> |
2373 | <entry>-</entry> | 2139 | <entry>-</entry> |
2374 | <entry>-</entry> | 2140 | <entry>-</entry> |
@@ -2394,6 +2160,57 @@ | |||
2394 | <entry></entry> | 2160 | <entry></entry> |
2395 | <entry></entry> | 2161 | <entry></entry> |
2396 | <entry></entry> | 2162 | <entry></entry> |
2163 | &dash-ent-10; | ||
2164 | <entry>-</entry> | ||
2165 | <entry>-</entry> | ||
2166 | <entry>-</entry> | ||
2167 | <entry>-</entry> | ||
2168 | <entry>y<subscript>7</subscript></entry> | ||
2169 | <entry>y<subscript>6</subscript></entry> | ||
2170 | <entry>y<subscript>5</subscript></entry> | ||
2171 | <entry>y<subscript>4</subscript></entry> | ||
2172 | <entry>y<subscript>3</subscript></entry> | ||
2173 | <entry>y<subscript>2</subscript></entry> | ||
2174 | <entry>y<subscript>1</subscript></entry> | ||
2175 | <entry>y<subscript>0</subscript></entry> | ||
2176 | <entry>u<subscript>7</subscript></entry> | ||
2177 | <entry>u<subscript>6</subscript></entry> | ||
2178 | <entry>u<subscript>5</subscript></entry> | ||
2179 | <entry>u<subscript>4</subscript></entry> | ||
2180 | <entry>u<subscript>3</subscript></entry> | ||
2181 | <entry>u<subscript>2</subscript></entry> | ||
2182 | <entry>u<subscript>1</subscript></entry> | ||
2183 | <entry>u<subscript>0</subscript></entry> | ||
2184 | </row> | ||
2185 | <row id="V4L2-MBUS-FMT-YDYUYDYV8-1X16"> | ||
2186 | <entry>V4L2_MBUS_FMT_YDYUYDYV8_1X16</entry> | ||
2187 | <entry>0x2014</entry> | ||
2188 | <entry></entry> | ||
2189 | <entry>-</entry> | ||
2190 | <entry>-</entry> | ||
2191 | <entry>-</entry> | ||
2192 | <entry>-</entry> | ||
2193 | <entry>y<subscript>7</subscript></entry> | ||
2194 | <entry>y<subscript>6</subscript></entry> | ||
2195 | <entry>y<subscript>5</subscript></entry> | ||
2196 | <entry>y<subscript>4</subscript></entry> | ||
2197 | <entry>y<subscript>3</subscript></entry> | ||
2198 | <entry>y<subscript>2</subscript></entry> | ||
2199 | <entry>y<subscript>1</subscript></entry> | ||
2200 | <entry>y<subscript>0</subscript></entry> | ||
2201 | <entry>d</entry> | ||
2202 | <entry>d</entry> | ||
2203 | <entry>d</entry> | ||
2204 | <entry>d</entry> | ||
2205 | <entry>d</entry> | ||
2206 | <entry>d</entry> | ||
2207 | <entry>d</entry> | ||
2208 | <entry>d</entry> | ||
2209 | </row> | ||
2210 | <row> | ||
2211 | <entry></entry> | ||
2212 | <entry></entry> | ||
2213 | <entry></entry> | ||
2397 | <entry>-</entry> | 2214 | <entry>-</entry> |
2398 | <entry>-</entry> | 2215 | <entry>-</entry> |
2399 | <entry>-</entry> | 2216 | <entry>-</entry> |
@@ -2415,10 +2232,61 @@ | |||
2415 | <entry>u<subscript>1</subscript></entry> | 2232 | <entry>u<subscript>1</subscript></entry> |
2416 | <entry>u<subscript>0</subscript></entry> | 2233 | <entry>u<subscript>0</subscript></entry> |
2417 | </row> | 2234 | </row> |
2235 | <row> | ||
2236 | <entry></entry> | ||
2237 | <entry></entry> | ||
2238 | <entry></entry> | ||
2239 | <entry>-</entry> | ||
2240 | <entry>-</entry> | ||
2241 | <entry>-</entry> | ||
2242 | <entry>-</entry> | ||
2243 | <entry>y<subscript>7</subscript></entry> | ||
2244 | <entry>y<subscript>6</subscript></entry> | ||
2245 | <entry>y<subscript>5</subscript></entry> | ||
2246 | <entry>y<subscript>4</subscript></entry> | ||
2247 | <entry>y<subscript>3</subscript></entry> | ||
2248 | <entry>y<subscript>2</subscript></entry> | ||
2249 | <entry>y<subscript>1</subscript></entry> | ||
2250 | <entry>y<subscript>0</subscript></entry> | ||
2251 | <entry>d</entry> | ||
2252 | <entry>d</entry> | ||
2253 | <entry>d</entry> | ||
2254 | <entry>d</entry> | ||
2255 | <entry>d</entry> | ||
2256 | <entry>d</entry> | ||
2257 | <entry>d</entry> | ||
2258 | <entry>d</entry> | ||
2259 | </row> | ||
2260 | <row> | ||
2261 | <entry></entry> | ||
2262 | <entry></entry> | ||
2263 | <entry></entry> | ||
2264 | <entry>-</entry> | ||
2265 | <entry>-</entry> | ||
2266 | <entry>-</entry> | ||
2267 | <entry>-</entry> | ||
2268 | <entry>y<subscript>7</subscript></entry> | ||
2269 | <entry>y<subscript>6</subscript></entry> | ||
2270 | <entry>y<subscript>5</subscript></entry> | ||
2271 | <entry>y<subscript>4</subscript></entry> | ||
2272 | <entry>y<subscript>3</subscript></entry> | ||
2273 | <entry>y<subscript>2</subscript></entry> | ||
2274 | <entry>y<subscript>1</subscript></entry> | ||
2275 | <entry>y<subscript>0</subscript></entry> | ||
2276 | <entry>v<subscript>7</subscript></entry> | ||
2277 | <entry>v<subscript>6</subscript></entry> | ||
2278 | <entry>v<subscript>5</subscript></entry> | ||
2279 | <entry>v<subscript>4</subscript></entry> | ||
2280 | <entry>v<subscript>3</subscript></entry> | ||
2281 | <entry>v<subscript>2</subscript></entry> | ||
2282 | <entry>v<subscript>1</subscript></entry> | ||
2283 | <entry>v<subscript>0</subscript></entry> | ||
2284 | </row> | ||
2418 | <row id="V4L2-MBUS-FMT-YUYV10-1X20"> | 2285 | <row id="V4L2-MBUS-FMT-YUYV10-1X20"> |
2419 | <entry>V4L2_MBUS_FMT_YUYV10_1X20</entry> | 2286 | <entry>V4L2_MBUS_FMT_YUYV10_1X20</entry> |
2420 | <entry>0x200d</entry> | 2287 | <entry>0x200d</entry> |
2421 | <entry></entry> | 2288 | <entry></entry> |
2289 | &dash-ent-10; | ||
2422 | <entry>y<subscript>9</subscript></entry> | 2290 | <entry>y<subscript>9</subscript></entry> |
2423 | <entry>y<subscript>8</subscript></entry> | 2291 | <entry>y<subscript>8</subscript></entry> |
2424 | <entry>y<subscript>7</subscript></entry> | 2292 | <entry>y<subscript>7</subscript></entry> |
@@ -2444,6 +2312,7 @@ | |||
2444 | <entry></entry> | 2312 | <entry></entry> |
2445 | <entry></entry> | 2313 | <entry></entry> |
2446 | <entry></entry> | 2314 | <entry></entry> |
2315 | &dash-ent-10; | ||
2447 | <entry>y<subscript>9</subscript></entry> | 2316 | <entry>y<subscript>9</subscript></entry> |
2448 | <entry>y<subscript>8</subscript></entry> | 2317 | <entry>y<subscript>8</subscript></entry> |
2449 | <entry>y<subscript>7</subscript></entry> | 2318 | <entry>y<subscript>7</subscript></entry> |
@@ -2469,6 +2338,7 @@ | |||
2469 | <entry>V4L2_MBUS_FMT_YVYU10_1X20</entry> | 2338 | <entry>V4L2_MBUS_FMT_YVYU10_1X20</entry> |
2470 | <entry>0x200e</entry> | 2339 | <entry>0x200e</entry> |
2471 | <entry></entry> | 2340 | <entry></entry> |
2341 | &dash-ent-10; | ||
2472 | <entry>y<subscript>9</subscript></entry> | 2342 | <entry>y<subscript>9</subscript></entry> |
2473 | <entry>y<subscript>8</subscript></entry> | 2343 | <entry>y<subscript>8</subscript></entry> |
2474 | <entry>y<subscript>7</subscript></entry> | 2344 | <entry>y<subscript>7</subscript></entry> |
@@ -2494,6 +2364,7 @@ | |||
2494 | <entry></entry> | 2364 | <entry></entry> |
2495 | <entry></entry> | 2365 | <entry></entry> |
2496 | <entry></entry> | 2366 | <entry></entry> |
2367 | &dash-ent-10; | ||
2497 | <entry>y<subscript>9</subscript></entry> | 2368 | <entry>y<subscript>9</subscript></entry> |
2498 | <entry>y<subscript>8</subscript></entry> | 2369 | <entry>y<subscript>8</subscript></entry> |
2499 | <entry>y<subscript>7</subscript></entry> | 2370 | <entry>y<subscript>7</subscript></entry> |
@@ -2515,6 +2386,41 @@ | |||
2515 | <entry>u<subscript>1</subscript></entry> | 2386 | <entry>u<subscript>1</subscript></entry> |
2516 | <entry>u<subscript>0</subscript></entry> | 2387 | <entry>u<subscript>0</subscript></entry> |
2517 | </row> | 2388 | </row> |
2389 | <row id="V4L2-MBUS-FMT-YUV10-1X30"> | ||
2390 | <entry>V4L2_MBUS_FMT_YUV10_1X30</entry> | ||
2391 | <entry>0x2014</entry> | ||
2392 | <entry></entry> | ||
2393 | <entry>y<subscript>9</subscript></entry> | ||
2394 | <entry>y<subscript>8</subscript></entry> | ||
2395 | <entry>y<subscript>7</subscript></entry> | ||
2396 | <entry>y<subscript>6</subscript></entry> | ||
2397 | <entry>y<subscript>5</subscript></entry> | ||
2398 | <entry>y<subscript>4</subscript></entry> | ||
2399 | <entry>y<subscript>3</subscript></entry> | ||
2400 | <entry>y<subscript>2</subscript></entry> | ||
2401 | <entry>y<subscript>1</subscript></entry> | ||
2402 | <entry>y<subscript>0</subscript></entry> | ||
2403 | <entry>u<subscript>9</subscript></entry> | ||
2404 | <entry>u<subscript>8</subscript></entry> | ||
2405 | <entry>u<subscript>7</subscript></entry> | ||
2406 | <entry>u<subscript>6</subscript></entry> | ||
2407 | <entry>u<subscript>5</subscript></entry> | ||
2408 | <entry>u<subscript>4</subscript></entry> | ||
2409 | <entry>u<subscript>3</subscript></entry> | ||
2410 | <entry>u<subscript>2</subscript></entry> | ||
2411 | <entry>u<subscript>1</subscript></entry> | ||
2412 | <entry>u<subscript>0</subscript></entry> | ||
2413 | <entry>v<subscript>9</subscript></entry> | ||
2414 | <entry>v<subscript>8</subscript></entry> | ||
2415 | <entry>v<subscript>7</subscript></entry> | ||
2416 | <entry>v<subscript>6</subscript></entry> | ||
2417 | <entry>v<subscript>5</subscript></entry> | ||
2418 | <entry>v<subscript>4</subscript></entry> | ||
2419 | <entry>v<subscript>3</subscript></entry> | ||
2420 | <entry>v<subscript>2</subscript></entry> | ||
2421 | <entry>v<subscript>1</subscript></entry> | ||
2422 | <entry>v<subscript>0</subscript></entry> | ||
2423 | </row> | ||
2518 | </tbody> | 2424 | </tbody> |
2519 | </tgroup> | 2425 | </tgroup> |
2520 | </table> | 2426 | </table> |
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml index 4d110b1ad3e9..a3cce18384e9 100644 --- a/Documentation/DocBook/media/v4l/v4l2.xml +++ b/Documentation/DocBook/media/v4l/v4l2.xml | |||
@@ -140,6 +140,16 @@ structs, ioctls) must be noted in more detail in the history chapter | |||
140 | applications. --> | 140 | applications. --> |
141 | 141 | ||
142 | <revision> | 142 | <revision> |
143 | <revnumber>3.9</revnumber> | ||
144 | <date>2012-12-03</date> | ||
145 | <authorinitials>sa, sn</authorinitials> | ||
146 | <revremark>Added timestamp types to v4l2_buffer. | ||
147 | Added <constant>V4L2_EVENT_CTRL_CH_RANGE</constant> control | ||
148 | event changes flag, see <xref linkend="changes-flags"/>. | ||
149 | </revremark> | ||
150 | </revision> | ||
151 | |||
152 | <revision> | ||
143 | <revnumber>3.6</revnumber> | 153 | <revnumber>3.6</revnumber> |
144 | <date>2012-07-02</date> | 154 | <date>2012-07-02</date> |
145 | <authorinitials>hv</authorinitials> | 155 | <authorinitials>hv</authorinitials> |
@@ -472,7 +482,7 @@ and discussions on the V4L mailing list.</revremark> | |||
472 | </partinfo> | 482 | </partinfo> |
473 | 483 | ||
474 | <title>Video for Linux Two API Specification</title> | 484 | <title>Video for Linux Two API Specification</title> |
475 | <subtitle>Revision 3.6</subtitle> | 485 | <subtitle>Revision 3.9</subtitle> |
476 | 486 | ||
477 | <chapter id="common"> | 487 | <chapter id="common"> |
478 | &sub-common; | 488 | &sub-common; |
diff --git a/Documentation/DocBook/media/v4l/vidioc-dqevent.xml b/Documentation/DocBook/media/v4l/vidioc-dqevent.xml index 98a856f9ec30..89891adb928a 100644 --- a/Documentation/DocBook/media/v4l/vidioc-dqevent.xml +++ b/Documentation/DocBook/media/v4l/vidioc-dqevent.xml | |||
@@ -261,6 +261,12 @@ | |||
261 | <entry>This control event was triggered because the control flags | 261 | <entry>This control event was triggered because the control flags |
262 | changed.</entry> | 262 | changed.</entry> |
263 | </row> | 263 | </row> |
264 | <row> | ||
265 | <entry><constant>V4L2_EVENT_CTRL_CH_RANGE</constant></entry> | ||
266 | <entry>0x0004</entry> | ||
267 | <entry>This control event was triggered because the minimum, | ||
268 | maximum, step or the default value of the control changed.</entry> | ||
269 | </row> | ||
264 | </tbody> | 270 | </tbody> |
265 | </tgroup> | 271 | </tgroup> |
266 | </table> | 272 | </table> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-expbuf.xml b/Documentation/DocBook/media/v4l/vidioc-expbuf.xml index 72dfbd20a802..e287c8fc803b 100644 --- a/Documentation/DocBook/media/v4l/vidioc-expbuf.xml +++ b/Documentation/DocBook/media/v4l/vidioc-expbuf.xml | |||
@@ -83,15 +83,14 @@ descriptor. The application may pass it to other DMABUF-aware devices. Refer to | |||
83 | <link linkend="dmabuf">DMABUF importing</link> for details about importing | 83 | <link linkend="dmabuf">DMABUF importing</link> for details about importing |
84 | DMABUF files into V4L2 nodes. It is recommended to close a DMABUF file when it | 84 | DMABUF files into V4L2 nodes. It is recommended to close a DMABUF file when it |
85 | is no longer used to allow the associated memory to be reclaimed. </para> | 85 | is no longer used to allow the associated memory to be reclaimed. </para> |
86 | |||
87 | </refsect1> | 86 | </refsect1> |
87 | |||
88 | <refsect1> | 88 | <refsect1> |
89 | <section> | 89 | <title>Examples</title> |
90 | <title>Examples</title> | ||
91 | 90 | ||
92 | <example> | 91 | <example> |
93 | <title>Exporting a buffer.</title> | 92 | <title>Exporting a buffer.</title> |
94 | <programlisting> | 93 | <programlisting> |
95 | int buffer_export(int v4lfd, &v4l2-buf-type; bt, int index, int *dmafd) | 94 | int buffer_export(int v4lfd, &v4l2-buf-type; bt, int index, int *dmafd) |
96 | { | 95 | { |
97 | &v4l2-exportbuffer; expbuf; | 96 | &v4l2-exportbuffer; expbuf; |
@@ -108,12 +107,12 @@ int buffer_export(int v4lfd, &v4l2-buf-type; bt, int index, int *dmafd) | |||
108 | 107 | ||
109 | return 0; | 108 | return 0; |
110 | } | 109 | } |
111 | </programlisting> | 110 | </programlisting> |
112 | </example> | 111 | </example> |
113 | 112 | ||
114 | <example> | 113 | <example> |
115 | <title>Exporting a buffer using the multi-planar API.</title> | 114 | <title>Exporting a buffer using the multi-planar API.</title> |
116 | <programlisting> | 115 | <programlisting> |
117 | int buffer_export_mp(int v4lfd, &v4l2-buf-type; bt, int index, | 116 | int buffer_export_mp(int v4lfd, &v4l2-buf-type; bt, int index, |
118 | int dmafd[], int n_planes) | 117 | int dmafd[], int n_planes) |
119 | { | 118 | { |
@@ -137,12 +136,9 @@ int buffer_export_mp(int v4lfd, &v4l2-buf-type; bt, int index, | |||
137 | 136 | ||
138 | return 0; | 137 | return 0; |
139 | } | 138 | } |
140 | </programlisting> | 139 | </programlisting> |
141 | </example> | 140 | </example> |
142 | </section> | ||
143 | </refsect1> | ||
144 | 141 | ||
145 | <refsect1> | ||
146 | <table pgwide="1" frame="none" id="v4l2-exportbuffer"> | 142 | <table pgwide="1" frame="none" id="v4l2-exportbuffer"> |
147 | <title>struct <structname>v4l2_exportbuffer</structname></title> | 143 | <title>struct <structname>v4l2_exportbuffer</structname></title> |
148 | <tgroup cols="3"> | 144 | <tgroup cols="3"> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-ctrl.xml b/Documentation/DocBook/media/v4l/vidioc-g-ctrl.xml index 12b1d0503e26..ee2820d6ca66 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-ctrl.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-ctrl.xml | |||
@@ -64,7 +64,9 @@ return an &EINVAL;. When the <structfield>value</structfield> is out | |||
64 | of bounds drivers can choose to take the closest valid value or return | 64 | of bounds drivers can choose to take the closest valid value or return |
65 | an &ERANGE;, whatever seems more appropriate. However, | 65 | an &ERANGE;, whatever seems more appropriate. However, |
66 | <constant>VIDIOC_S_CTRL</constant> is a write-only ioctl, it does not | 66 | <constant>VIDIOC_S_CTRL</constant> is a write-only ioctl, it does not |
67 | return the actual new value.</para> | 67 | return the actual new value. If the <structfield>value</structfield> |
68 | is inappropriate for the control (e.g. if it refers to an unsupported | ||
69 | menu index of a menu control), then &EINVAL; is returned as well.</para> | ||
68 | 70 | ||
69 | <para>These ioctls work only with user controls. For other | 71 | <para>These ioctls work only with user controls. For other |
70 | control classes the &VIDIOC-G-EXT-CTRLS;, &VIDIOC-S-EXT-CTRLS; or | 72 | control classes the &VIDIOC-G-EXT-CTRLS;, &VIDIOC-S-EXT-CTRLS; or |
@@ -99,7 +101,9 @@ application.</entry> | |||
99 | <term><errorcode>EINVAL</errorcode></term> | 101 | <term><errorcode>EINVAL</errorcode></term> |
100 | <listitem> | 102 | <listitem> |
101 | <para>The &v4l2-control; <structfield>id</structfield> is | 103 | <para>The &v4l2-control; <structfield>id</structfield> is |
102 | invalid.</para> | 104 | invalid or the <structfield>value</structfield> is inappropriate for |
105 | the given control (i.e. if a menu item is selected that is not supported | ||
106 | by the driver according to &VIDIOC-QUERYMENU;).</para> | ||
103 | </listitem> | 107 | </listitem> |
104 | </varlistentry> | 108 | </varlistentry> |
105 | <varlistentry> | 109 | <varlistentry> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml index 0a4b90fcf2da..4e16112df992 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml | |||
@@ -106,7 +106,9 @@ value or if an error is returned.</para> | |||
106 | &EINVAL;. When the value is out of bounds drivers can choose to take | 106 | &EINVAL;. When the value is out of bounds drivers can choose to take |
107 | the closest valid value or return an &ERANGE;, whatever seems more | 107 | the closest valid value or return an &ERANGE;, whatever seems more |
108 | appropriate. In the first case the new value is set in | 108 | appropriate. In the first case the new value is set in |
109 | &v4l2-ext-control;.</para> | 109 | &v4l2-ext-control;. If the new control value is inappropriate (e.g. the |
110 | given menu index is not supported by the menu control), then this will | ||
111 | also result in an &EINVAL; error.</para> | ||
110 | 112 | ||
111 | <para>The driver will only set/get these controls if all control | 113 | <para>The driver will only set/get these controls if all control |
112 | values are correct. This prevents the situation where only some of the | 114 | values are correct. This prevents the situation where only some of the |
@@ -199,13 +201,46 @@ also be zero.</entry> | |||
199 | <row> | 201 | <row> |
200 | <entry>__u32</entry> | 202 | <entry>__u32</entry> |
201 | <entry><structfield>error_idx</structfield></entry> | 203 | <entry><structfield>error_idx</structfield></entry> |
202 | <entry>Set by the driver in case of an error. If it is equal | 204 | <entry><para>Set by the driver in case of an error. If the error is |
203 | to <structfield>count</structfield>, then no actual changes were made to | 205 | associated with a particular control, then <structfield>error_idx</structfield> |
204 | controls. In other words, the error was not associated with setting a particular | 206 | is set to the index of that control. If the error is not related to a specific |
205 | control. If it is another value, then only the controls up to <structfield>error_idx-1</structfield> | 207 | control, or the validation step failed (see below), then |
206 | were modified and control <structfield>error_idx</structfield> is the one that | 208 | <structfield>error_idx</structfield> is set to <structfield>count</structfield>. |
207 | caused the error. The <structfield>error_idx</structfield> value is undefined | 209 | The value is undefined if the ioctl returned 0 (success).</para> |
208 | if the ioctl returned 0 (success).</entry> | 210 | |
211 | <para>Before controls are read from/written to hardware a validation step | ||
212 | takes place: this checks if all controls in the list are valid controls, | ||
213 | if no attempt is made to write to a read-only control or read from a write-only | ||
214 | control, and any other up-front checks that can be done without accessing the | ||
215 | hardware. The exact validations done during this step are driver dependent | ||
216 | since some checks might require hardware access for some devices, thus making | ||
217 | it impossible to do those checks up-front. However, drivers should make a | ||
218 | best-effort to do as many up-front checks as possible.</para> | ||
219 | |||
220 | <para>This check is done to avoid leaving the hardware in an inconsistent state due | ||
221 | to easy-to-avoid problems. But it leads to another problem: the application needs to | ||
222 | know whether an error came from the validation step (meaning that the hardware | ||
223 | was not touched) or from an error during the actual reading from/writing to hardware.</para> | ||
224 | |||
225 | <para>The, in hindsight quite poor, solution for that is to set <structfield>error_idx</structfield> | ||
226 | to <structfield>count</structfield> if the validation failed. This has the | ||
227 | unfortunate side-effect that it is not possible to see which control failed the | ||
228 | validation. If the validation was successful and the error happened while | ||
229 | accessing the hardware, then <structfield>error_idx</structfield> is less than | ||
230 | <structfield>count</structfield> and only the controls up to | ||
231 | <structfield>error_idx-1</structfield> were read or written correctly, and the | ||
232 | state of the remaining controls is undefined.</para> | ||
233 | |||
234 | <para>Since <constant>VIDIOC_TRY_EXT_CTRLS</constant> does not access hardware | ||
235 | there is also no need to handle the validation step in this special way, | ||
236 | so <structfield>error_idx</structfield> will just be set to the control that | ||
237 | failed the validation step instead of to <structfield>count</structfield>. | ||
238 | This means that if <constant>VIDIOC_S_EXT_CTRLS</constant> fails with | ||
239 | <structfield>error_idx</structfield> set to <structfield>count</structfield>, | ||
240 | then you can call <constant>VIDIOC_TRY_EXT_CTRLS</constant> to try to discover | ||
241 | the actual control that failed the validation step. Unfortunately, there | ||
242 | is no <constant>TRY</constant> equivalent for <constant>VIDIOC_G_EXT_CTRLS</constant>. | ||
243 | </para></entry> | ||
209 | </row> | 244 | </row> |
210 | <row> | 245 | <row> |
211 | <entry>__u32</entry> | 246 | <entry>__u32</entry> |
@@ -298,8 +333,10 @@ These controls are described in <xref | |||
298 | <term><errorcode>EINVAL</errorcode></term> | 333 | <term><errorcode>EINVAL</errorcode></term> |
299 | <listitem> | 334 | <listitem> |
300 | <para>The &v4l2-ext-control; <structfield>id</structfield> | 335 | <para>The &v4l2-ext-control; <structfield>id</structfield> |
301 | is invalid or the &v4l2-ext-controls; | 336 | is invalid, the &v4l2-ext-controls; |
302 | <structfield>ctrl_class</structfield> is invalid. This error code is | 337 | <structfield>ctrl_class</structfield> is invalid, or the &v4l2-ext-control; |
338 | <structfield>value</structfield> was inappropriate (e.g. the given menu | ||
339 | index is not supported by the driver). This error code is | ||
303 | also returned by the <constant>VIDIOC_S_EXT_CTRLS</constant> and | 340 | also returned by the <constant>VIDIOC_S_EXT_CTRLS</constant> and |
304 | <constant>VIDIOC_TRY_EXT_CTRLS</constant> ioctls if two or more | 341 | <constant>VIDIOC_TRY_EXT_CTRLS</constant> ioctls if two or more |
305 | control values are in conflict.</para> | 342 | control values are in conflict.</para> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-querycap.xml b/Documentation/DocBook/media/v4l/vidioc-querycap.xml index 4c70215ae03f..d5a3c97b206a 100644 --- a/Documentation/DocBook/media/v4l/vidioc-querycap.xml +++ b/Documentation/DocBook/media/v4l/vidioc-querycap.xml | |||
@@ -76,7 +76,7 @@ make sure the strings are properly NUL-terminated.</para></entry> | |||
76 | <row> | 76 | <row> |
77 | <entry>__u8</entry> | 77 | <entry>__u8</entry> |
78 | <entry><structfield>card</structfield>[32]</entry> | 78 | <entry><structfield>card</structfield>[32]</entry> |
79 | <entry>Name of the device, a NUL-terminated ASCII string. | 79 | <entry>Name of the device, a NUL-terminated UTF-8 string. |
80 | For example: "Yoyodyne TV/FM". One driver may support different brands | 80 | For example: "Yoyodyne TV/FM". One driver may support different brands |
81 | or models of video hardware. This information is intended for users, | 81 | or models of video hardware. This information is intended for users, |
82 | for example in a menu of available devices. Since multiple TV cards of | 82 | for example in a menu of available devices. Since multiple TV cards of |
diff --git a/Documentation/DocBook/media_api.tmpl b/Documentation/DocBook/media_api.tmpl index f2413acfe241..1f6593deb995 100644 --- a/Documentation/DocBook/media_api.tmpl +++ b/Documentation/DocBook/media_api.tmpl | |||
@@ -22,6 +22,7 @@ | |||
22 | 22 | ||
23 | <!-- LinuxTV v4l-dvb repository. --> | 23 | <!-- LinuxTV v4l-dvb repository. --> |
24 | <!ENTITY v4l-dvb "<ulink url='http://linuxtv.org/repo/'>http://linuxtv.org/repo/</ulink>"> | 24 | <!ENTITY v4l-dvb "<ulink url='http://linuxtv.org/repo/'>http://linuxtv.org/repo/</ulink>"> |
25 | <!ENTITY dash-ent-10 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | ||
25 | ]> | 26 | ]> |
26 | 27 | ||
27 | <book id="media_api"> | 28 | <book id="media_api"> |
diff --git a/Documentation/DocBook/uio-howto.tmpl b/Documentation/DocBook/uio-howto.tmpl index ddb05e98af0d..95618159e29b 100644 --- a/Documentation/DocBook/uio-howto.tmpl +++ b/Documentation/DocBook/uio-howto.tmpl | |||
@@ -984,7 +984,7 @@ int main() | |||
984 | return errno; | 984 | return errno; |
985 | } | 985 | } |
986 | configfd = open("/sys/class/uio/uio0/device/config", O_RDWR); | 986 | configfd = open("/sys/class/uio/uio0/device/config", O_RDWR); |
987 | if (uiofd < 0) { | 987 | if (configfd < 0) { |
988 | perror("config open:"); | 988 | perror("config open:"); |
989 | return errno; | 989 | return errno; |
990 | } | 990 | } |
diff --git a/Documentation/DocBook/writing-an-alsa-driver.tmpl b/Documentation/DocBook/writing-an-alsa-driver.tmpl index fb32aead5a0b..bd6fee22c4dd 100644 --- a/Documentation/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/DocBook/writing-an-alsa-driver.tmpl | |||
@@ -871,9 +871,8 @@ | |||
871 | <para> | 871 | <para> |
872 | This function itself doesn't allocate the data space. The data | 872 | This function itself doesn't allocate the data space. The data |
873 | must be allocated manually beforehand, and its pointer is passed | 873 | must be allocated manually beforehand, and its pointer is passed |
874 | as the argument. This pointer is used as the | 874 | as the argument. This pointer (<parameter>chip</parameter> in the |
875 | (<parameter>chip</parameter> identifier in the above example) | 875 | above example) is used as the identifier for the instance. |
876 | for the instance. | ||
877 | </para> | 876 | </para> |
878 | 877 | ||
879 | <para> | 878 | <para> |
@@ -2304,7 +2303,7 @@ struct _snd_pcm_runtime { | |||
2304 | <constant>SNDRV_PCM_INFO_XXX</constant>. Here, at least, you | 2303 | <constant>SNDRV_PCM_INFO_XXX</constant>. Here, at least, you |
2305 | have to specify whether the mmap is supported and which | 2304 | have to specify whether the mmap is supported and which |
2306 | interleaved format is supported. | 2305 | interleaved format is supported. |
2307 | When the is supported, add the | 2306 | When the hardware supports mmap, add the |
2308 | <constant>SNDRV_PCM_INFO_MMAP</constant> flag here. When the | 2307 | <constant>SNDRV_PCM_INFO_MMAP</constant> flag here. When the |
2309 | hardware supports the interleaved or the non-interleaved | 2308 | hardware supports the interleaved or the non-interleaved |
2310 | formats, <constant>SNDRV_PCM_INFO_INTERLEAVED</constant> or | 2309 | formats, <constant>SNDRV_PCM_INFO_INTERLEAVED</constant> or |
@@ -2898,7 +2897,7 @@ struct _snd_pcm_runtime { | |||
2898 | 2897 | ||
2899 | <para> | 2898 | <para> |
2900 | When the pcm supports the pause operation (given in the info | 2899 | When the pcm supports the pause operation (given in the info |
2901 | field of the hardware table), the <constant>PAUSE_PUSE</constant> | 2900 | field of the hardware table), the <constant>PAUSE_PUSH</constant> |
2902 | and <constant>PAUSE_RELEASE</constant> commands must be | 2901 | and <constant>PAUSE_RELEASE</constant> commands must be |
2903 | handled here, too. The former is the command to pause the pcm, | 2902 | handled here, too. The former is the command to pause the pcm, |
2904 | and the latter to restart the pcm again. | 2903 | and the latter to restart the pcm again. |
@@ -3085,7 +3084,7 @@ struct _snd_pcm_runtime { | |||
3085 | <section id="pcm-interface-interrupt-handler-timer"> | 3084 | <section id="pcm-interface-interrupt-handler-timer"> |
3086 | <title>High frequency timer interrupts</title> | 3085 | <title>High frequency timer interrupts</title> |
3087 | <para> | 3086 | <para> |
3088 | This happense when the hardware doesn't generate interrupts | 3087 | This happens when the hardware doesn't generate interrupts |
3089 | at the period boundary but issues timer interrupts at a fixed | 3088 | at the period boundary but issues timer interrupts at a fixed |
3090 | timer rate (e.g. es1968 or ymfpci drivers). | 3089 | timer rate (e.g. es1968 or ymfpci drivers). |
3091 | In this case, you need to check the current hardware | 3090 | In this case, you need to check the current hardware |
@@ -3251,18 +3250,19 @@ struct _snd_pcm_runtime { | |||
3251 | <title>Example of Hardware Constraints for Channels</title> | 3250 | <title>Example of Hardware Constraints for Channels</title> |
3252 | <programlisting> | 3251 | <programlisting> |
3253 | <![CDATA[ | 3252 | <![CDATA[ |
3254 | static int hw_rule_format_by_channels(struct snd_pcm_hw_params *params, | 3253 | static int hw_rule_channels_by_format(struct snd_pcm_hw_params *params, |
3255 | struct snd_pcm_hw_rule *rule) | 3254 | struct snd_pcm_hw_rule *rule) |
3256 | { | 3255 | { |
3257 | struct snd_interval *c = hw_param_interval(params, | 3256 | struct snd_interval *c = hw_param_interval(params, |
3258 | SNDRV_PCM_HW_PARAM_CHANNELS); | 3257 | SNDRV_PCM_HW_PARAM_CHANNELS); |
3259 | struct snd_mask *f = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); | 3258 | struct snd_mask *f = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); |
3260 | struct snd_mask fmt; | 3259 | struct snd_interval ch; |
3261 | 3260 | ||
3262 | snd_mask_any(&fmt); /* Init the struct */ | 3261 | snd_interval_any(&ch); |
3263 | if (c->min < 2) { | 3262 | if (f->bits[0] == SNDRV_PCM_FMTBIT_S16_LE) { |
3264 | fmt.bits[0] &= SNDRV_PCM_FMTBIT_S16_LE; | 3263 | ch.min = ch.max = 1; |
3265 | return snd_mask_refine(f, &fmt); | 3264 | ch.integer = 1; |
3265 | return snd_interval_refine(c, &ch); | ||
3266 | } | 3266 | } |
3267 | return 0; | 3267 | return 0; |
3268 | } | 3268 | } |
@@ -3278,35 +3278,35 @@ struct _snd_pcm_runtime { | |||
3278 | <programlisting> | 3278 | <programlisting> |
3279 | <![CDATA[ | 3279 | <![CDATA[ |
3280 | snd_pcm_hw_rule_add(substream->runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, | 3280 | snd_pcm_hw_rule_add(substream->runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, |
3281 | hw_rule_channels_by_format, 0, SNDRV_PCM_HW_PARAM_FORMAT, | 3281 | hw_rule_channels_by_format, NULL, |
3282 | -1); | 3282 | SNDRV_PCM_HW_PARAM_FORMAT, -1); |
3283 | ]]> | 3283 | ]]> |
3284 | </programlisting> | 3284 | </programlisting> |
3285 | </informalexample> | 3285 | </informalexample> |
3286 | </para> | 3286 | </para> |
3287 | 3287 | ||
3288 | <para> | 3288 | <para> |
3289 | The rule function is called when an application sets the number of | 3289 | The rule function is called when an application sets the PCM |
3290 | channels. But an application can set the format before the number of | 3290 | format, and it refines the number of channels accordingly. |
3291 | channels. Thus you also need to define the inverse rule: | 3291 | But an application may set the number of channels before |
3292 | setting the format. Thus you also need to define the inverse rule: | ||
3292 | 3293 | ||
3293 | <example> | 3294 | <example> |
3294 | <title>Example of Hardware Constraints for Channels</title> | 3295 | <title>Example of Hardware Constraints for Formats</title> |
3295 | <programlisting> | 3296 | <programlisting> |
3296 | <![CDATA[ | 3297 | <![CDATA[ |
3297 | static int hw_rule_channels_by_format(struct snd_pcm_hw_params *params, | 3298 | static int hw_rule_format_by_channels(struct snd_pcm_hw_params *params, |
3298 | struct snd_pcm_hw_rule *rule) | 3299 | struct snd_pcm_hw_rule *rule) |
3299 | { | 3300 | { |
3300 | struct snd_interval *c = hw_param_interval(params, | 3301 | struct snd_interval *c = hw_param_interval(params, |
3301 | SNDRV_PCM_HW_PARAM_CHANNELS); | 3302 | SNDRV_PCM_HW_PARAM_CHANNELS); |
3302 | struct snd_mask *f = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); | 3303 | struct snd_mask *f = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); |
3303 | struct snd_interval ch; | 3304 | struct snd_mask fmt; |
3304 | 3305 | ||
3305 | snd_interval_any(&ch); | 3306 | snd_mask_any(&fmt); /* Init the struct */ |
3306 | if (f->bits[0] == SNDRV_PCM_FMTBIT_S16_LE) { | 3307 | if (c->min < 2) { |
3307 | ch.min = ch.max = 1; | 3308 | fmt.bits[0] &= SNDRV_PCM_FMTBIT_S16_LE; |
3308 | ch.integer = 1; | 3309 | return snd_mask_refine(f, &fmt); |
3309 | return snd_interval_refine(c, &ch); | ||
3310 | } | 3310 | } |
3311 | return 0; | 3311 | return 0; |
3312 | } | 3312 | } |
@@ -3321,8 +3321,8 @@ struct _snd_pcm_runtime { | |||
3321 | <programlisting> | 3321 | <programlisting> |
3322 | <![CDATA[ | 3322 | <![CDATA[ |
3323 | snd_pcm_hw_rule_add(substream->runtime, 0, SNDRV_PCM_HW_PARAM_FORMAT, | 3323 | snd_pcm_hw_rule_add(substream->runtime, 0, SNDRV_PCM_HW_PARAM_FORMAT, |
3324 | hw_rule_format_by_channels, 0, SNDRV_PCM_HW_PARAM_CHANNELS, | 3324 | hw_rule_format_by_channels, NULL, |
3325 | -1); | 3325 | SNDRV_PCM_HW_PARAM_CHANNELS, -1); |
3326 | ]]> | 3326 | ]]> |
3327 | </programlisting> | 3327 | </programlisting> |
3328 | </informalexample> | 3328 | </informalexample> |
diff --git a/Documentation/EDID/HOWTO.txt b/Documentation/EDID/HOWTO.txt index 75a9f2a0c43d..2d0a8f09475d 100644 --- a/Documentation/EDID/HOWTO.txt +++ b/Documentation/EDID/HOWTO.txt | |||
@@ -28,11 +28,30 @@ Makefile environment are given here. | |||
28 | To create binary EDID and C source code files from the existing data | 28 | To create binary EDID and C source code files from the existing data |
29 | material, simply type "make". | 29 | material, simply type "make". |
30 | 30 | ||
31 | If you want to create your own EDID file, copy the file 1024x768.S and | 31 | If you want to create your own EDID file, copy the file 1024x768.S, |
32 | replace the settings with your own data. The CRC value in the last line | 32 | replace the settings with your own data and add a new target to the |
33 | Makefile. Please note that the EDID data structure expects the timing | ||
34 | values in a different way as compared to the standard X11 format. | ||
35 | |||
36 | X11: | ||
37 | HTimings: hdisp hsyncstart hsyncend htotal | ||
38 | VTimings: vdisp vsyncstart vsyncend vtotal | ||
39 | |||
40 | EDID: | ||
41 | #define XPIX hdisp | ||
42 | #define XBLANK htotal-hdisp | ||
43 | #define XOFFSET hsyncstart-hdisp | ||
44 | #define XPULSE hsyncend-hsyncstart | ||
45 | |||
46 | #define YPIX vdisp | ||
47 | #define YBLANK vtotal-vdisp | ||
48 | #define YOFFSET (63+(vsyncstart-vdisp)) | ||
49 | #define YPULSE (63+(vsyncend-vsyncstart)) | ||
50 | |||
51 | The CRC value in the last line | ||
33 | #define CRC 0x55 | 52 | #define CRC 0x55 |
34 | is a bit tricky. After a first version of the binary data set is | 53 | also is a bit tricky. After a first version of the binary data set is |
35 | created, it must be be checked with the "edid-decode" utility which will | 54 | created, it must be checked with the "edid-decode" utility which will |
36 | most probably complain about a wrong CRC. Fortunately, the utility also | 55 | most probably complain about a wrong CRC. Fortunately, the utility also |
37 | displays the correct CRC which must then be inserted into the source | 56 | displays the correct CRC which must then be inserted into the source |
38 | file. After the make procedure is repeated, the EDID data set is ready | 57 | file. After the make procedure is repeated, the EDID data set is ready |
diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt index 53e6fca146d7..a09178086c30 100644 --- a/Documentation/PCI/MSI-HOWTO.txt +++ b/Documentation/PCI/MSI-HOWTO.txt | |||
@@ -127,15 +127,42 @@ on the number of vectors that can be allocated; pci_enable_msi_block() | |||
127 | returns as soon as it finds any constraint that doesn't allow the | 127 | returns as soon as it finds any constraint that doesn't allow the |
128 | call to succeed. | 128 | call to succeed. |
129 | 129 | ||
130 | 4.2.3 pci_disable_msi | 130 | 4.2.3 pci_enable_msi_block_auto |
131 | |||
132 | int pci_enable_msi_block_auto(struct pci_dev *dev, unsigned int *count) | ||
133 | |||
134 | This variation on pci_enable_msi() call allows a device driver to request | ||
135 | the maximum possible number of MSIs. The MSI specification only allows | ||
136 | interrupts to be allocated in powers of two, up to a maximum of 2^5 (32). | ||
137 | |||
138 | If this function returns a positive number, it indicates that it has | ||
139 | succeeded and the returned value is the number of allocated interrupts. In | ||
140 | this case, the function enables MSI on this device and updates dev->irq to | ||
141 | be the lowest of the new interrupts assigned to it. The other interrupts | ||
142 | assigned to the device are in the range dev->irq to dev->irq + returned | ||
143 | value - 1. | ||
144 | |||
145 | If this function returns a negative number, it indicates an error and | ||
146 | the driver should not attempt to request any more MSI interrupts for | ||
147 | this device. | ||
148 | |||
149 | If the device driver needs to know the number of interrupts the device | ||
150 | supports it can pass the pointer count where that number is stored. The | ||
151 | device driver must decide what action to take if pci_enable_msi_block_auto() | ||
152 | succeeds, but returns a value less than the number of interrupts supported. | ||
153 | If the device driver does not need to know the number of interrupts | ||
154 | supported, it can set the pointer count to NULL. | ||
155 | |||
156 | 4.2.4 pci_disable_msi | ||
131 | 157 | ||
132 | void pci_disable_msi(struct pci_dev *dev) | 158 | void pci_disable_msi(struct pci_dev *dev) |
133 | 159 | ||
134 | This function should be used to undo the effect of pci_enable_msi() or | 160 | This function should be used to undo the effect of pci_enable_msi() or |
135 | pci_enable_msi_block(). Calling it restores dev->irq to the pin-based | 161 | pci_enable_msi_block() or pci_enable_msi_block_auto(). Calling it restores |
136 | interrupt number and frees the previously allocated message signaled | 162 | dev->irq to the pin-based interrupt number and frees the previously |
137 | interrupt(s). The interrupt may subsequently be assigned to another | 163 | allocated message signaled interrupt(s). The interrupt may subsequently be |
138 | device, so drivers should not cache the value of dev->irq. | 164 | assigned to another device, so drivers should not cache the value of |
165 | dev->irq. | ||
139 | 166 | ||
140 | Before calling this function, a device driver must always call free_irq() | 167 | Before calling this function, a device driver must always call free_irq() |
141 | on any interrupt for which it previously called request_irq(). | 168 | on any interrupt for which it previously called request_irq(). |
diff --git a/Documentation/acpi/enumeration.txt b/Documentation/acpi/enumeration.txt index 54469bc81b1c..94a656131885 100644 --- a/Documentation/acpi/enumeration.txt +++ b/Documentation/acpi/enumeration.txt | |||
@@ -63,8 +63,8 @@ from ACPI tables. | |||
63 | Currently the kernel is not able to automatically determine from which ACPI | 63 | Currently the kernel is not able to automatically determine from which ACPI |
64 | device it should make the corresponding platform device so we need to add | 64 | device it should make the corresponding platform device so we need to add |
65 | the ACPI device explicitly to acpi_platform_device_ids list defined in | 65 | the ACPI device explicitly to acpi_platform_device_ids list defined in |
66 | drivers/acpi/scan.c. This limitation is only for the platform devices, SPI | 66 | drivers/acpi/acpi_platform.c. This limitation is only for the platform |
67 | and I2C devices are created automatically as described below. | 67 | devices, SPI and I2C devices are created automatically as described below. |
68 | 68 | ||
69 | SPI serial bus support | 69 | SPI serial bus support |
70 | ~~~~~~~~~~~~~~~~~~~~~~ | 70 | ~~~~~~~~~~~~~~~~~~~~~~ |
diff --git a/Documentation/acpi/scan_handlers.txt b/Documentation/acpi/scan_handlers.txt new file mode 100644 index 000000000000..3246ccf15992 --- /dev/null +++ b/Documentation/acpi/scan_handlers.txt | |||
@@ -0,0 +1,77 @@ | |||
1 | ACPI Scan Handlers | ||
2 | |||
3 | Copyright (C) 2012, Intel Corporation | ||
4 | Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | ||
5 | |||
6 | During system initialization and ACPI-based device hot-add, the ACPI namespace | ||
7 | is scanned in search of device objects that generally represent various pieces | ||
8 | of hardware. This causes a struct acpi_device object to be created and | ||
9 | registered with the driver core for every device object in the ACPI namespace | ||
10 | and the hierarchy of those struct acpi_device objects reflects the namespace | ||
11 | layout (i.e. parent device objects in the namespace are represented by parent | ||
12 | struct acpi_device objects and analogously for their children). Those struct | ||
13 | acpi_device objects are referred to as "device nodes" in what follows, but they | ||
14 | should not be confused with struct device_node objects used by the Device Trees | ||
15 | parsing code (although their role is analogous to the role of those objects). | ||
16 | |||
17 | During ACPI-based device hot-remove device nodes representing pieces of hardware | ||
18 | being removed are unregistered and deleted. | ||
19 | |||
20 | The core ACPI namespace scanning code in drivers/acpi/scan.c carries out basic | ||
21 | initialization of device nodes, such as retrieving common configuration | ||
22 | information from the device objects represented by them and populating them with | ||
23 | appropriate data, but some of them require additional handling after they have | ||
24 | been registered. For example, if the given device node represents a PCI host | ||
25 | bridge, its registration should cause the PCI bus under that bridge to be | ||
26 | enumerated and PCI devices on that bus to be registered with the driver core. | ||
27 | Similarly, if the device node represents a PCI interrupt link, it is necessary | ||
28 | to configure that link so that the kernel can use it. | ||
29 | |||
30 | Those additional configuration tasks usually depend on the type of the hardware | ||
31 | component represented by the given device node which can be determined on the | ||
32 | basis of the device node's hardware ID (HID). They are performed by objects | ||
33 | called ACPI scan handlers represented by the following structure: | ||
34 | |||
35 | struct acpi_scan_handler { | ||
36 | const struct acpi_device_id *ids; | ||
37 | struct list_head list_node; | ||
38 | int (*attach)(struct acpi_device *dev, const struct acpi_device_id *id); | ||
39 | void (*detach)(struct acpi_device *dev); | ||
40 | }; | ||
41 | |||
42 | where ids is the list of IDs of device nodes the given handler is supposed to | ||
43 | take care of, list_node is the hook to the global list of ACPI scan handlers | ||
44 | maintained by the ACPI core and the .attach() and .detach() callbacks are | ||
45 | executed, respectively, after registration of new device nodes and before | ||
46 | unregistration of device nodes the handler attached to previously. | ||
47 | |||
48 | The namespace scanning function, acpi_bus_scan(), first registers all of the | ||
49 | device nodes in the given namespace scope with the driver core. Then, it tries | ||
50 | to match a scan handler against each of them using the ids arrays of the | ||
51 | available scan handlers. If a matching scan handler is found, its .attach() | ||
52 | callback is executed for the given device node. If that callback returns 1, | ||
53 | that means that the handler has claimed the device node and is now responsible | ||
54 | for carrying out any additional configuration tasks related to it. It also will | ||
55 | be responsible for preparing the device node for unregistration in that case. | ||
56 | The device node's handler field is then populated with the address of the scan | ||
57 | handler that has claimed it. | ||
58 | |||
59 | If the .attach() callback returns 0, it means that the device node is not | ||
60 | interesting to the given scan handler and may be matched against the next scan | ||
61 | handler in the list. If it returns a (negative) error code, that means that | ||
62 | the namespace scan should be terminated due to a serious error. The error code | ||
63 | returned should then reflect the type of the error. | ||
64 | |||
65 | The namespace trimming function, acpi_bus_trim(), first executes .detach() | ||
66 | callbacks from the scan handlers of all device nodes in the given namespace | ||
67 | scope (if they have scan handlers). Next, it unregisters all of the device | ||
68 | nodes in that scope. | ||
69 | |||
70 | ACPI scan handlers can be added to the list maintained by the ACPI core with the | ||
71 | help of the acpi_scan_add_handler() function taking a pointer to the new scan | ||
72 | handler as an argument. The order in which scan handlers are added to the list | ||
73 | is the order in which they are matched against device nodes during namespace | ||
74 | scans. | ||
75 | |||
76 | All scan handles must be added to the list before acpi_bus_scan() is run for the | ||
77 | first time and they cannot be removed from it. | ||
diff --git a/Documentation/arm64/memory.txt b/Documentation/arm64/memory.txt index d758702fc03c..5f583af0a6e1 100644 --- a/Documentation/arm64/memory.txt +++ b/Documentation/arm64/memory.txt | |||
@@ -35,6 +35,8 @@ ffffffbc00000000 ffffffbdffffffff 8GB vmemmap | |||
35 | 35 | ||
36 | ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap] | 36 | ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap] |
37 | 37 | ||
38 | ffffffbffbc00000 ffffffbffbdfffff 2MB earlyprintk device | ||
39 | |||
38 | ffffffbffbe00000 ffffffbffbe0ffff 64KB PCI I/O space | 40 | ffffffbffbe00000 ffffffbffbe0ffff 64KB PCI I/O space |
39 | 41 | ||
40 | ffffffbbffff0000 ffffffbcffffffff ~2MB [guard] | 42 | ffffffbbffff0000 ffffffbcffffffff ~2MB [guard] |
diff --git a/Documentation/atomic_ops.txt b/Documentation/atomic_ops.txt index 27f2b21a9d5c..d9ca5be9b471 100644 --- a/Documentation/atomic_ops.txt +++ b/Documentation/atomic_ops.txt | |||
@@ -253,6 +253,8 @@ This performs an atomic exchange operation on the atomic variable v, setting | |||
253 | the given new value. It returns the old value that the atomic variable v had | 253 | the given new value. It returns the old value that the atomic variable v had |
254 | just before the operation. | 254 | just before the operation. |
255 | 255 | ||
256 | atomic_xchg requires explicit memory barriers around the operation. | ||
257 | |||
256 | int atomic_cmpxchg(atomic_t *v, int old, int new); | 258 | int atomic_cmpxchg(atomic_t *v, int old, int new); |
257 | 259 | ||
258 | This performs an atomic compare exchange operation on the atomic value v, | 260 | This performs an atomic compare exchange operation on the atomic value v, |
diff --git a/Documentation/backlight/lp855x-driver.txt b/Documentation/backlight/lp855x-driver.txt index 1529394cfe8b..18b06ca038ea 100644 --- a/Documentation/backlight/lp855x-driver.txt +++ b/Documentation/backlight/lp855x-driver.txt | |||
@@ -4,7 +4,7 @@ Kernel driver lp855x | |||
4 | Backlight driver for LP855x ICs | 4 | Backlight driver for LP855x ICs |
5 | 5 | ||
6 | Supported chips: | 6 | Supported chips: |
7 | Texas Instruments LP8550, LP8551, LP8552, LP8553 and LP8556 | 7 | Texas Instruments LP8550, LP8551, LP8552, LP8553, LP8556 and LP8557 |
8 | 8 | ||
9 | Author: Milo(Woogyom) Kim <milo.kim@ti.com> | 9 | Author: Milo(Woogyom) Kim <milo.kim@ti.com> |
10 | 10 | ||
@@ -24,7 +24,7 @@ Value : pwm based or register based | |||
24 | 24 | ||
25 | 2) chip_id | 25 | 2) chip_id |
26 | The lp855x chip id. | 26 | The lp855x chip id. |
27 | Value : lp8550/lp8551/lp8552/lp8553/lp8556 | 27 | Value : lp8550/lp8551/lp8552/lp8553/lp8556/lp8557 |
28 | 28 | ||
29 | Platform data for lp855x | 29 | Platform data for lp855x |
30 | ------------------------ | 30 | ------------------------ |
diff --git a/Documentation/cgroups/00-INDEX b/Documentation/cgroups/00-INDEX index f78b90a35ad0..f5635a09c3f6 100644 --- a/Documentation/cgroups/00-INDEX +++ b/Documentation/cgroups/00-INDEX | |||
@@ -4,8 +4,6 @@ blkio-controller.txt | |||
4 | - Description for Block IO Controller, implementation and usage details. | 4 | - Description for Block IO Controller, implementation and usage details. |
5 | cgroups.txt | 5 | cgroups.txt |
6 | - Control Groups definition, implementation details, examples and API. | 6 | - Control Groups definition, implementation details, examples and API. |
7 | cgroup_event_listener.c | ||
8 | - A user program for cgroup listener. | ||
9 | cpuacct.txt | 7 | cpuacct.txt |
10 | - CPU Accounting Controller; account CPU usage for groups of tasks. | 8 | - CPU Accounting Controller; account CPU usage for groups of tasks. |
11 | cpusets.txt | 9 | cpusets.txt |
diff --git a/Documentation/cgroups/cgroup_event_listener.c b/Documentation/cgroups/cgroup_event_listener.c deleted file mode 100644 index 3e082f96dc12..000000000000 --- a/Documentation/cgroups/cgroup_event_listener.c +++ /dev/null | |||
@@ -1,110 +0,0 @@ | |||
1 | /* | ||
2 | * cgroup_event_listener.c - Simple listener of cgroup events | ||
3 | * | ||
4 | * Copyright (C) Kirill A. Shutemov <kirill@shutemov.name> | ||
5 | */ | ||
6 | |||
7 | #include <assert.h> | ||
8 | #include <errno.h> | ||
9 | #include <fcntl.h> | ||
10 | #include <libgen.h> | ||
11 | #include <limits.h> | ||
12 | #include <stdio.h> | ||
13 | #include <string.h> | ||
14 | #include <unistd.h> | ||
15 | |||
16 | #include <sys/eventfd.h> | ||
17 | |||
18 | #define USAGE_STR "Usage: cgroup_event_listener <path-to-control-file> <args>\n" | ||
19 | |||
20 | int main(int argc, char **argv) | ||
21 | { | ||
22 | int efd = -1; | ||
23 | int cfd = -1; | ||
24 | int event_control = -1; | ||
25 | char event_control_path[PATH_MAX]; | ||
26 | char line[LINE_MAX]; | ||
27 | int ret; | ||
28 | |||
29 | if (argc != 3) { | ||
30 | fputs(USAGE_STR, stderr); | ||
31 | return 1; | ||
32 | } | ||
33 | |||
34 | cfd = open(argv[1], O_RDONLY); | ||
35 | if (cfd == -1) { | ||
36 | fprintf(stderr, "Cannot open %s: %s\n", argv[1], | ||
37 | strerror(errno)); | ||
38 | goto out; | ||
39 | } | ||
40 | |||
41 | ret = snprintf(event_control_path, PATH_MAX, "%s/cgroup.event_control", | ||
42 | dirname(argv[1])); | ||
43 | if (ret >= PATH_MAX) { | ||
44 | fputs("Path to cgroup.event_control is too long\n", stderr); | ||
45 | goto out; | ||
46 | } | ||
47 | |||
48 | event_control = open(event_control_path, O_WRONLY); | ||
49 | if (event_control == -1) { | ||
50 | fprintf(stderr, "Cannot open %s: %s\n", event_control_path, | ||
51 | strerror(errno)); | ||
52 | goto out; | ||
53 | } | ||
54 | |||
55 | efd = eventfd(0, 0); | ||
56 | if (efd == -1) { | ||
57 | perror("eventfd() failed"); | ||
58 | goto out; | ||
59 | } | ||
60 | |||
61 | ret = snprintf(line, LINE_MAX, "%d %d %s", efd, cfd, argv[2]); | ||
62 | if (ret >= LINE_MAX) { | ||
63 | fputs("Arguments string is too long\n", stderr); | ||
64 | goto out; | ||
65 | } | ||
66 | |||
67 | ret = write(event_control, line, strlen(line) + 1); | ||
68 | if (ret == -1) { | ||
69 | perror("Cannot write to cgroup.event_control"); | ||
70 | goto out; | ||
71 | } | ||
72 | |||
73 | while (1) { | ||
74 | uint64_t result; | ||
75 | |||
76 | ret = read(efd, &result, sizeof(result)); | ||
77 | if (ret == -1) { | ||
78 | if (errno == EINTR) | ||
79 | continue; | ||
80 | perror("Cannot read from eventfd"); | ||
81 | break; | ||
82 | } | ||
83 | assert(ret == sizeof(result)); | ||
84 | |||
85 | ret = access(event_control_path, W_OK); | ||
86 | if ((ret == -1) && (errno == ENOENT)) { | ||
87 | puts("The cgroup seems to have removed."); | ||
88 | ret = 0; | ||
89 | break; | ||
90 | } | ||
91 | |||
92 | if (ret == -1) { | ||
93 | perror("cgroup.event_control " | ||
94 | "is not accessible any more"); | ||
95 | break; | ||
96 | } | ||
97 | |||
98 | printf("%s %s: crossed\n", argv[1], argv[2]); | ||
99 | } | ||
100 | |||
101 | out: | ||
102 | if (efd >= 0) | ||
103 | close(efd); | ||
104 | if (event_control >= 0) | ||
105 | close(event_control); | ||
106 | if (cfd >= 0) | ||
107 | close(cfd); | ||
108 | |||
109 | return (ret != 0); | ||
110 | } | ||
diff --git a/Documentation/cgroups/memcg_test.txt b/Documentation/cgroups/memcg_test.txt index fc8fa97a09ac..ce94a83a7d9a 100644 --- a/Documentation/cgroups/memcg_test.txt +++ b/Documentation/cgroups/memcg_test.txt | |||
@@ -399,8 +399,7 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y. | |||
399 | 399 | ||
400 | 9.10 Memory thresholds | 400 | 9.10 Memory thresholds |
401 | Memory controller implements memory thresholds using cgroups notification | 401 | Memory controller implements memory thresholds using cgroups notification |
402 | API. You can use Documentation/cgroups/cgroup_event_listener.c to test | 402 | API. You can use tools/cgroup/cgroup_event_listener.c to test it. |
403 | it. | ||
404 | 403 | ||
405 | (Shell-A) Create cgroup and run event listener | 404 | (Shell-A) Create cgroup and run event listener |
406 | # mkdir /cgroup/A | 405 | # mkdir /cgroup/A |
diff --git a/Documentation/cpu-freq/cpu-drivers.txt b/Documentation/cpu-freq/cpu-drivers.txt index c436096351f8..72f70b16d299 100644 --- a/Documentation/cpu-freq/cpu-drivers.txt +++ b/Documentation/cpu-freq/cpu-drivers.txt | |||
@@ -111,6 +111,12 @@ policy->governor must contain the "default policy" for | |||
111 | For setting some of these values, the frequency table helpers might be | 111 | For setting some of these values, the frequency table helpers might be |
112 | helpful. See the section 2 for more information on them. | 112 | helpful. See the section 2 for more information on them. |
113 | 113 | ||
114 | SMP systems normally have same clock source for a group of cpus. For these the | ||
115 | .init() would be called only once for the first online cpu. Here the .init() | ||
116 | routine must initialize policy->cpus with mask of all possible cpus (Online + | ||
117 | Offline) that share the clock. Then the core would copy this mask onto | ||
118 | policy->related_cpus and will reset policy->cpus to carry only online cpus. | ||
119 | |||
114 | 120 | ||
115 | 1.3 verify | 121 | 1.3 verify |
116 | ------------ | 122 | ------------ |
diff --git a/Documentation/cpu-freq/user-guide.txt b/Documentation/cpu-freq/user-guide.txt index 04f6b32993e6..ff2f28332cc4 100644 --- a/Documentation/cpu-freq/user-guide.txt +++ b/Documentation/cpu-freq/user-guide.txt | |||
@@ -190,11 +190,11 @@ scaling_max_freq show the current "policy limits" (in | |||
190 | first set scaling_max_freq, then | 190 | first set scaling_max_freq, then |
191 | scaling_min_freq. | 191 | scaling_min_freq. |
192 | 192 | ||
193 | affected_cpus : List of CPUs that require software coordination | 193 | affected_cpus : List of Online CPUs that require software |
194 | of frequency. | 194 | coordination of frequency. |
195 | 195 | ||
196 | related_cpus : List of CPUs that need some sort of frequency | 196 | related_cpus : List of Online + Offline CPUs that need software |
197 | coordination, whether software or hardware. | 197 | coordination of frequency. |
198 | 198 | ||
199 | scaling_driver : Hardware driver for cpufreq. | 199 | scaling_driver : Hardware driver for cpufreq. |
200 | 200 | ||
diff --git a/Documentation/device-mapper/dm-raid.txt b/Documentation/device-mapper/dm-raid.txt index 728c38c242d6..56fb62b09fc5 100644 --- a/Documentation/device-mapper/dm-raid.txt +++ b/Documentation/device-mapper/dm-raid.txt | |||
@@ -141,3 +141,4 @@ Version History | |||
141 | 1.2.0 Handle creation of arrays that contain failed devices. | 141 | 1.2.0 Handle creation of arrays that contain failed devices. |
142 | 1.3.0 Added support for RAID 10 | 142 | 1.3.0 Added support for RAID 10 |
143 | 1.3.1 Allow device replacement/rebuild for RAID 10 | 143 | 1.3.1 Allow device replacement/rebuild for RAID 10 |
144 | 1.3.2 Fix/improve redundancy checking for RAID10 | ||
diff --git a/Documentation/devicetree/bindings/arm/altera/socfpga-system.txt b/Documentation/devicetree/bindings/arm/altera/socfpga-system.txt index 07c65e3cdcbe..f4d04a067282 100644 --- a/Documentation/devicetree/bindings/arm/altera/socfpga-system.txt +++ b/Documentation/devicetree/bindings/arm/altera/socfpga-system.txt | |||
@@ -3,9 +3,11 @@ Altera SOCFPGA System Manager | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : "altr,sys-mgr" | 4 | - compatible : "altr,sys-mgr" |
5 | - reg : Should contain 1 register ranges(address and length) | 5 | - reg : Should contain 1 register ranges(address and length) |
6 | - cpu1-start-addr : CPU1 start address in hex. | ||
6 | 7 | ||
7 | Example: | 8 | Example: |
8 | sysmgr@ffd08000 { | 9 | sysmgr@ffd08000 { |
9 | compatible = "altr,sys-mgr"; | 10 | compatible = "altr,sys-mgr"; |
10 | reg = <0xffd08000 0x1000>; | 11 | reg = <0xffd08000 0x1000>; |
12 | cpu1-start-addr = <0xffd080c4>; | ||
11 | }; | 13 | }; |
diff --git a/Documentation/devicetree/bindings/arm/arch_timer.txt b/Documentation/devicetree/bindings/arm/arch_timer.txt index 52478c83d0cc..20746e5abe6f 100644 --- a/Documentation/devicetree/bindings/arm/arch_timer.txt +++ b/Documentation/devicetree/bindings/arm/arch_timer.txt | |||
@@ -1,13 +1,14 @@ | |||
1 | * ARM architected timer | 1 | * ARM architected timer |
2 | 2 | ||
3 | ARM Cortex-A7 and Cortex-A15 have a per-core architected timer, which | 3 | ARM cores may have a per-core architected timer, which provides per-cpu timers. |
4 | provides per-cpu timers. | ||
5 | 4 | ||
6 | The timer is attached to a GIC to deliver its per-processor interrupts. | 5 | The timer is attached to a GIC to deliver its per-processor interrupts. |
7 | 6 | ||
8 | ** Timer node properties: | 7 | ** Timer node properties: |
9 | 8 | ||
10 | - compatible : Should at least contain "arm,armv7-timer". | 9 | - compatible : Should at least contain one of |
10 | "arm,armv7-timer" | ||
11 | "arm,armv8-timer" | ||
11 | 12 | ||
12 | - interrupts : Interrupt list for secure, non-secure, virtual and | 13 | - interrupts : Interrupt list for secure, non-secure, virtual and |
13 | hypervisor timers, in that order. | 14 | hypervisor timers, in that order. |
diff --git a/Documentation/devicetree/bindings/arm/atmel-aic.txt b/Documentation/devicetree/bindings/arm/atmel-aic.txt index 19078bf5cca8..ad031211b5b8 100644 --- a/Documentation/devicetree/bindings/arm/atmel-aic.txt +++ b/Documentation/devicetree/bindings/arm/atmel-aic.txt | |||
@@ -4,7 +4,7 @@ Required properties: | |||
4 | - compatible: Should be "atmel,<chip>-aic" | 4 | - compatible: Should be "atmel,<chip>-aic" |
5 | - interrupt-controller: Identifies the node as an interrupt controller. | 5 | - interrupt-controller: Identifies the node as an interrupt controller. |
6 | - interrupt-parent: For single AIC system, it is an empty property. | 6 | - interrupt-parent: For single AIC system, it is an empty property. |
7 | - #interrupt-cells: The number of cells to define the interrupts. It sould be 3. | 7 | - #interrupt-cells: The number of cells to define the interrupts. It should be 3. |
8 | The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet). | 8 | The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet). |
9 | The second cell is used to specify flags: | 9 | The second cell is used to specify flags: |
10 | bits[3:0] trigger type and level flags: | 10 | bits[3:0] trigger type and level flags: |
diff --git a/Documentation/devicetree/bindings/arm/gic.txt b/Documentation/devicetree/bindings/arm/gic.txt index 62eb8df1e08d..3dfb0c0384f5 100644 --- a/Documentation/devicetree/bindings/arm/gic.txt +++ b/Documentation/devicetree/bindings/arm/gic.txt | |||
@@ -42,7 +42,7 @@ Main node required properties: | |||
42 | 42 | ||
43 | Optional | 43 | Optional |
44 | - interrupts : Interrupt source of the parent interrupt controller on | 44 | - interrupts : Interrupt source of the parent interrupt controller on |
45 | secondary GICs, or VGIC maintainance interrupt on primary GIC (see | 45 | secondary GICs, or VGIC maintenance interrupt on primary GIC (see |
46 | below). | 46 | below). |
47 | 47 | ||
48 | - cpu-offset : per-cpu offset within the distributor and cpu interface | 48 | - cpu-offset : per-cpu offset within the distributor and cpu interface |
@@ -74,7 +74,7 @@ Required properties: | |||
74 | virtual interface control register base and size. The 2nd additional | 74 | virtual interface control register base and size. The 2nd additional |
75 | region is the GIC virtual cpu interface register base and size. | 75 | region is the GIC virtual cpu interface register base and size. |
76 | 76 | ||
77 | - interrupts : VGIC maintainance interrupt. | 77 | - interrupts : VGIC maintenance interrupt. |
78 | 78 | ||
79 | Example: | 79 | Example: |
80 | 80 | ||
diff --git a/Documentation/devicetree/bindings/arm/kirkwood.txt b/Documentation/devicetree/bindings/arm/kirkwood.txt new file mode 100644 index 000000000000..98cce9a653eb --- /dev/null +++ b/Documentation/devicetree/bindings/arm/kirkwood.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | Marvell Kirkwood Platforms Device Tree Bindings | ||
2 | ----------------------------------------------- | ||
3 | |||
4 | Boards with a SoC of the Marvell Kirkwood | ||
5 | shall have the following property: | ||
6 | |||
7 | Required root node property: | ||
8 | |||
9 | compatible: must contain "marvell,kirkwood"; | ||
10 | |||
11 | In order to support the kirkwood cpufreq driver, there must be a node | ||
12 | cpus/cpu@0 with three clocks, "cpu_clk", "ddrclk" and "powersave", | ||
13 | where the "powersave" clock is a gating clock used to switch the CPU | ||
14 | between the "cpu_clk" and the "ddrclk". | ||
15 | |||
16 | Example: | ||
17 | |||
18 | cpus { | ||
19 | #address-cells = <1>; | ||
20 | #size-cells = <0>; | ||
21 | |||
22 | cpu@0 { | ||
23 | device_type = "cpu"; | ||
24 | compatible = "marvell,sheeva-88SV131"; | ||
25 | clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>; | ||
26 | clock-names = "cpu_clk", "ddrclk", "powersave"; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index d0051a750587..f8288ea1b530 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt | |||
@@ -39,16 +39,16 @@ Boards: | |||
39 | - OMAP3 Tobi with Overo : Commercial expansion board with daughter board | 39 | - OMAP3 Tobi with Overo : Commercial expansion board with daughter board |
40 | compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3" | 40 | compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3" |
41 | 41 | ||
42 | - OMAP4 SDP : Software Developement Board | 42 | - OMAP4 SDP : Software Development Board |
43 | compatible = "ti,omap4-sdp", "ti,omap4430" | 43 | compatible = "ti,omap4-sdp", "ti,omap4430" |
44 | 44 | ||
45 | - OMAP4 PandaBoard : Low cost community board | 45 | - OMAP4 PandaBoard : Low cost community board |
46 | compatible = "ti,omap4-panda", "ti,omap4430" | 46 | compatible = "ti,omap4-panda", "ti,omap4430" |
47 | 47 | ||
48 | - OMAP3 EVM : Software Developement Board for OMAP35x, AM/DM37x | 48 | - OMAP3 EVM : Software Development Board for OMAP35x, AM/DM37x |
49 | compatible = "ti,omap3-evm", "ti,omap3" | 49 | compatible = "ti,omap3-evm", "ti,omap3" |
50 | 50 | ||
51 | - AM335X EVM : Software Developement Board for AM335x | 51 | - AM335X EVM : Software Development Board for AM335x |
52 | compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3" | 52 | compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3" |
53 | 53 | ||
54 | - AM335X Bone : Low cost community board | 54 | - AM335X Bone : Low cost community board |
diff --git a/Documentation/devicetree/bindings/arm/psci.txt b/Documentation/devicetree/bindings/arm/psci.txt new file mode 100644 index 000000000000..433afe9cb590 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/psci.txt | |||
@@ -0,0 +1,55 @@ | |||
1 | * Power State Coordination Interface (PSCI) | ||
2 | |||
3 | Firmware implementing the PSCI functions described in ARM document number | ||
4 | ARM DEN 0022A ("Power State Coordination Interface System Software on ARM | ||
5 | processors") can be used by Linux to initiate various CPU-centric power | ||
6 | operations. | ||
7 | |||
8 | Issue A of the specification describes functions for CPU suspend, hotplug | ||
9 | and migration of secure software. | ||
10 | |||
11 | Functions are invoked by trapping to the privilege level of the PSCI | ||
12 | firmware (specified as part of the binding below) and passing arguments | ||
13 | in a manner similar to that specified by AAPCS: | ||
14 | |||
15 | r0 => 32-bit Function ID / return value | ||
16 | {r1 - r3} => Parameters | ||
17 | |||
18 | Note that the immediate field of the trapping instruction must be set | ||
19 | to #0. | ||
20 | |||
21 | |||
22 | Main node required properties: | ||
23 | |||
24 | - compatible : Must be "arm,psci" | ||
25 | |||
26 | - method : The method of calling the PSCI firmware. Permitted | ||
27 | values are: | ||
28 | |||
29 | "smc" : SMC #0, with the register assignments specified | ||
30 | in this binding. | ||
31 | |||
32 | "hvc" : HVC #0, with the register assignments specified | ||
33 | in this binding. | ||
34 | |||
35 | Main node optional properties: | ||
36 | |||
37 | - cpu_suspend : Function ID for CPU_SUSPEND operation | ||
38 | |||
39 | - cpu_off : Function ID for CPU_OFF operation | ||
40 | |||
41 | - cpu_on : Function ID for CPU_ON operation | ||
42 | |||
43 | - migrate : Function ID for MIGRATE operation | ||
44 | |||
45 | |||
46 | Example: | ||
47 | |||
48 | psci { | ||
49 | compatible = "arm,psci"; | ||
50 | method = "smc"; | ||
51 | cpu_suspend = <0x95c10000>; | ||
52 | cpu_off = <0x95c10001>; | ||
53 | cpu_on = <0x95c10002>; | ||
54 | migrate = <0x95c10003>; | ||
55 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/sirf.txt b/Documentation/devicetree/bindings/arm/sirf.txt index 1881e1c6dda5..c6ba6d3c747f 100644 --- a/Documentation/devicetree/bindings/arm/sirf.txt +++ b/Documentation/devicetree/bindings/arm/sirf.txt | |||
@@ -1,3 +1,9 @@ | |||
1 | prima2 "cb" evaluation board | 1 | CSR SiRFprimaII and SiRFmarco device tree bindings. |
2 | ======================================== | ||
3 | |||
2 | Required root node properties: | 4 | Required root node properties: |
3 | - compatible = "sirf,prima2-cb", "sirf,prima2"; | 5 | - compatible: |
6 | - "sirf,prima2-cb" : prima2 "cb" evaluation board | ||
7 | - "sirf,marco-cb" : marco "cb" evaluation board | ||
8 | - "sirf,prima2" : prima2 device based board | ||
9 | - "sirf,marco" : marco device based board | ||
diff --git a/Documentation/devicetree/bindings/arm/ste-nomadik.txt b/Documentation/devicetree/bindings/arm/ste-nomadik.txt new file mode 100644 index 000000000000..19bca04b81c9 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/ste-nomadik.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | ST-Ericsson Nomadik Device Tree Bindings | ||
2 | |||
3 | For various board the "board" node may contain specific properties | ||
4 | that pertain to this particular board, such as board-specific GPIOs. | ||
5 | |||
6 | Boards with the Nomadik SoC include: | ||
7 | |||
8 | S8815 "MiniKit" manufactured by Calao Systems: | ||
9 | |||
10 | Required root node property: | ||
11 | |||
12 | compatible="calaosystems,usb-s8815"; | ||
13 | |||
14 | Required node: usb-s8815 | ||
15 | |||
16 | Example: | ||
17 | |||
18 | usb-s8815 { | ||
19 | ethernet-gpio { | ||
20 | gpios = <&gpio3 19 0x1>; | ||
21 | interrupts = <19 0x1>; | ||
22 | interrupt-parent = <&gpio3>; | ||
23 | }; | ||
24 | mmcsd-gpio { | ||
25 | gpios = <&gpio3 16 0x1>; | ||
26 | }; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/tegra.txt b/Documentation/devicetree/bindings/arm/tegra.txt index 6e69d2e5e766..ed9c85334436 100644 --- a/Documentation/devicetree/bindings/arm/tegra.txt +++ b/Documentation/devicetree/bindings/arm/tegra.txt | |||
@@ -1,14 +1,34 @@ | |||
1 | NVIDIA Tegra device tree bindings | 1 | NVIDIA Tegra device tree bindings |
2 | ------------------------------------------- | 2 | ------------------------------------------- |
3 | 3 | ||
4 | Boards with the tegra20 SoC shall have the following properties: | 4 | SoCs |
5 | ------------------------------------------- | ||
5 | 6 | ||
6 | Required root node property: | 7 | Each device tree must specify which Tegra SoC it uses, using one of the |
8 | following compatible values: | ||
7 | 9 | ||
8 | compatible = "nvidia,tegra20"; | 10 | nvidia,tegra20 |
11 | nvidia,tegra30 | ||
9 | 12 | ||
10 | Boards with the tegra30 SoC shall have the following properties: | 13 | Boards |
14 | ------------------------------------------- | ||
11 | 15 | ||
12 | Required root node property: | 16 | Each device tree must specify which one or more of the following |
17 | board-specific compatible values: | ||
13 | 18 | ||
14 | compatible = "nvidia,tegra30"; | 19 | ad,medcom-wide |
20 | ad,plutux | ||
21 | ad,tamonten | ||
22 | ad,tec | ||
23 | compal,paz00 | ||
24 | compulab,trimslice | ||
25 | nvidia,beaver | ||
26 | nvidia,cardhu | ||
27 | nvidia,cardhu-a02 | ||
28 | nvidia,cardhu-a04 | ||
29 | nvidia,harmony | ||
30 | nvidia,seaboard | ||
31 | nvidia,ventana | ||
32 | nvidia,whistler | ||
33 | toradex,colibri_t20-512 | ||
34 | toradex,iris | ||
diff --git a/Documentation/devicetree/bindings/arm/vt8500.txt b/Documentation/devicetree/bindings/arm/vt8500.txt index d657832c6819..87dc1ddf4770 100644 --- a/Documentation/devicetree/bindings/arm/vt8500.txt +++ b/Documentation/devicetree/bindings/arm/vt8500.txt | |||
@@ -12,3 +12,11 @@ compatible = "wm,wm8505"; | |||
12 | Boards with the Wondermedia WM8650 SoC shall have the following properties: | 12 | Boards with the Wondermedia WM8650 SoC shall have the following properties: |
13 | Required root node property: | 13 | Required root node property: |
14 | compatible = "wm,wm8650"; | 14 | compatible = "wm,wm8650"; |
15 | |||
16 | Boards with the Wondermedia WM8750 SoC shall have the following properties: | ||
17 | Required root node property: | ||
18 | compatible = "wm,wm8750"; | ||
19 | |||
20 | Boards with the Wondermedia WM8850 SoC shall have the following properties: | ||
21 | Required root node property: | ||
22 | compatible = "wm,wm8850"; | ||
diff --git a/Documentation/devicetree/bindings/bus/ti-gpmc.txt b/Documentation/devicetree/bindings/bus/ti-gpmc.txt new file mode 100644 index 000000000000..5ddb2e9efaaa --- /dev/null +++ b/Documentation/devicetree/bindings/bus/ti-gpmc.txt | |||
@@ -0,0 +1,84 @@ | |||
1 | Device tree bindings for OMAP general purpose memory controllers (GPMC) | ||
2 | |||
3 | The actual devices are instantiated from the child nodes of a GPMC node. | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible: Should be set to one of the following: | ||
8 | |||
9 | ti,omap2420-gpmc (omap2420) | ||
10 | ti,omap2430-gpmc (omap2430) | ||
11 | ti,omap3430-gpmc (omap3430 & omap3630) | ||
12 | ti,omap4430-gpmc (omap4430 & omap4460 & omap543x) | ||
13 | ti,am3352-gpmc (am335x devices) | ||
14 | |||
15 | - reg: A resource specifier for the register space | ||
16 | (see the example below) | ||
17 | - ti,hwmods: Should be set to "ti,gpmc" until the DT transition is | ||
18 | completed. | ||
19 | - #address-cells: Must be set to 2 to allow memory address translation | ||
20 | - #size-cells: Must be set to 1 to allow CS address passing | ||
21 | - gpmc,num-cs: The maximum number of chip-select lines that controller | ||
22 | can support. | ||
23 | - gpmc,num-waitpins: The maximum number of wait pins that controller can | ||
24 | support. | ||
25 | - ranges: Must be set up to reflect the memory layout with four | ||
26 | integer values for each chip-select line in use: | ||
27 | |||
28 | <cs-number> 0 <physical address of mapping> <size> | ||
29 | |||
30 | Currently, calculated values derived from the contents | ||
31 | of the per-CS register GPMC_CONFIG7 (as set up by the | ||
32 | bootloader) are used for the physical address decoding. | ||
33 | As this will change in the future, filling correct | ||
34 | values here is a requirement. | ||
35 | |||
36 | Timing properties for child nodes. All are optional and default to 0. | ||
37 | |||
38 | - gpmc,sync-clk: Minimum clock period for synchronous mode, in picoseconds | ||
39 | |||
40 | Chip-select signal timings corresponding to GPMC_CONFIG2: | ||
41 | - gpmc,cs-on: Assertion time | ||
42 | - gpmc,cs-rd-off: Read deassertion time | ||
43 | - gpmc,cs-wr-off: Write deassertion time | ||
44 | |||
45 | ADV signal timings corresponding to GPMC_CONFIG3: | ||
46 | - gpmc,adv-on: Assertion time | ||
47 | - gpmc,adv-rd-off: Read deassertion time | ||
48 | - gpmc,adv-wr-off: Write deassertion time | ||
49 | |||
50 | WE signals timings corresponding to GPMC_CONFIG4: | ||
51 | - gpmc,we-on: Assertion time | ||
52 | - gpmc,we-off: Deassertion time | ||
53 | |||
54 | OE signals timings corresponding to GPMC_CONFIG4: | ||
55 | - gpmc,oe-on: Assertion time | ||
56 | - gpmc,oe-off: Deassertion time | ||
57 | |||
58 | Access time and cycle time timings corresponding to GPMC_CONFIG5: | ||
59 | - gpmc,page-burst-access: Multiple access word delay | ||
60 | - gpmc,access: Start-cycle to first data valid delay | ||
61 | - gpmc,rd-cycle: Total read cycle time | ||
62 | - gpmc,wr-cycle: Total write cycle time | ||
63 | |||
64 | The following are only applicable to OMAP3+ and AM335x: | ||
65 | - gpmc,wr-access | ||
66 | - gpmc,wr-data-mux-bus | ||
67 | |||
68 | |||
69 | Example for an AM33xx board: | ||
70 | |||
71 | gpmc: gpmc@50000000 { | ||
72 | compatible = "ti,am3352-gpmc"; | ||
73 | ti,hwmods = "gpmc"; | ||
74 | reg = <0x50000000 0x2000>; | ||
75 | interrupts = <100>; | ||
76 | |||
77 | gpmc,num-cs = <8>; | ||
78 | gpmc,num-waitpins = <2>; | ||
79 | #address-cells = <2>; | ||
80 | #size-cells = <1>; | ||
81 | ranges = <0 0 0x08000000 0x10000000>; /* CS0 @addr 0x8000000, size 0x10000000 */ | ||
82 | |||
83 | /* child nodes go here */ | ||
84 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/imx31-clock.txt b/Documentation/devicetree/bindings/clock/imx31-clock.txt new file mode 100644 index 000000000000..19df842c694f --- /dev/null +++ b/Documentation/devicetree/bindings/clock/imx31-clock.txt | |||
@@ -0,0 +1,91 @@ | |||
1 | * Clock bindings for Freescale i.MX31 | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "fsl,imx31-ccm" | ||
5 | - reg: Address and length of the register set | ||
6 | - interrupts: Should contain CCM interrupt | ||
7 | - #clock-cells: Should be <1> | ||
8 | |||
9 | The clock consumer should specify the desired clock by having the clock | ||
10 | ID in its "clocks" phandle cell. The following is a full list of i.MX31 | ||
11 | clocks and IDs. | ||
12 | |||
13 | Clock ID | ||
14 | ----------------------- | ||
15 | dummy 0 | ||
16 | ckih 1 | ||
17 | ckil 2 | ||
18 | mpll 3 | ||
19 | spll 4 | ||
20 | upll 5 | ||
21 | mcu_main 6 | ||
22 | hsp 7 | ||
23 | ahb 8 | ||
24 | nfc 9 | ||
25 | ipg 10 | ||
26 | per_div 11 | ||
27 | per 12 | ||
28 | csi_sel 13 | ||
29 | fir_sel 14 | ||
30 | csi_div 15 | ||
31 | usb_div_pre 16 | ||
32 | usb_div_post 17 | ||
33 | fir_div_pre 18 | ||
34 | fir_div_post 19 | ||
35 | sdhc1_gate 20 | ||
36 | sdhc2_gate 21 | ||
37 | gpt_gate 22 | ||
38 | epit1_gate 23 | ||
39 | epit2_gate 24 | ||
40 | iim_gate 25 | ||
41 | ata_gate 26 | ||
42 | sdma_gate 27 | ||
43 | cspi3_gate 28 | ||
44 | rng_gate 29 | ||
45 | uart1_gate 30 | ||
46 | uart2_gate 31 | ||
47 | ssi1_gate 32 | ||
48 | i2c1_gate 33 | ||
49 | i2c2_gate 34 | ||
50 | i2c3_gate 35 | ||
51 | hantro_gate 36 | ||
52 | mstick1_gate 37 | ||
53 | mstick2_gate 38 | ||
54 | csi_gate 39 | ||
55 | rtc_gate 40 | ||
56 | wdog_gate 41 | ||
57 | pwm_gate 42 | ||
58 | sim_gate 43 | ||
59 | ect_gate 44 | ||
60 | usb_gate 45 | ||
61 | kpp_gate 46 | ||
62 | ipu_gate 47 | ||
63 | uart3_gate 48 | ||
64 | uart4_gate 49 | ||
65 | uart5_gate 50 | ||
66 | owire_gate 51 | ||
67 | ssi2_gate 52 | ||
68 | cspi1_gate 53 | ||
69 | cspi2_gate 54 | ||
70 | gacc_gate 55 | ||
71 | emi_gate 56 | ||
72 | rtic_gate 57 | ||
73 | firi_gate 58 | ||
74 | |||
75 | Examples: | ||
76 | |||
77 | clks: ccm@53f80000{ | ||
78 | compatible = "fsl,imx31-ccm"; | ||
79 | reg = <0x53f80000 0x4000>; | ||
80 | interrupts = <0 31 0x04 0 53 0x04>; | ||
81 | #clock-cells = <1>; | ||
82 | }; | ||
83 | |||
84 | uart1: serial@43f90000 { | ||
85 | compatible = "fsl,imx31-uart", "fsl,imx21-uart"; | ||
86 | reg = <0x43f90000 0x4000>; | ||
87 | interrupts = <45>; | ||
88 | clocks = <&clks 10>, <&clks 30>; | ||
89 | clock-names = "ipg", "per"; | ||
90 | status = "disabled"; | ||
91 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt b/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt index 7337005ef5e1..cffc93d97f54 100644 --- a/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt +++ b/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt | |||
@@ -89,7 +89,7 @@ ID Clock Peripheral | |||
89 | 16 xor1 XOR DMA 1 | 89 | 16 xor1 XOR DMA 1 |
90 | 17 crypto CESA engine | 90 | 17 crypto CESA engine |
91 | 18 pex1 PCIe Cntrl 1 | 91 | 18 pex1 PCIe Cntrl 1 |
92 | 19 ge1 Gigabit Ethernet 0 | 92 | 19 ge1 Gigabit Ethernet 1 |
93 | 20 tdm Time Division Mplx | 93 | 20 tdm Time Division Mplx |
94 | 94 | ||
95 | Required properties: | 95 | Required properties: |
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt new file mode 100644 index 000000000000..0921fac73528 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt | |||
@@ -0,0 +1,205 @@ | |||
1 | NVIDIA Tegra20 Clock And Reset Controller | ||
2 | |||
3 | This binding uses the common clock binding: | ||
4 | Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
5 | |||
6 | The CAR (Clock And Reset) Controller on Tegra is the HW module responsible | ||
7 | for muxing and gating Tegra's clocks, and setting their rates. | ||
8 | |||
9 | Required properties : | ||
10 | - compatible : Should be "nvidia,tegra20-car" | ||
11 | - reg : Should contain CAR registers location and length | ||
12 | - clocks : Should contain phandle and clock specifiers for two clocks: | ||
13 | the 32 KHz "32k_in", and the board-specific oscillator "osc". | ||
14 | - #clock-cells : Should be 1. | ||
15 | In clock consumers, this cell represents the clock ID exposed by the CAR. | ||
16 | |||
17 | The first 96 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB | ||
18 | registers. These IDs often match those in the CAR's RST_DEVICES registers, | ||
19 | but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In | ||
20 | this case, those clocks are assigned IDs above 95 in order to highlight | ||
21 | this issue. Implementations that interpret these clock IDs as bit values | ||
22 | within the CLK_OUT_ENB or RST_DEVICES registers should be careful to | ||
23 | explicitly handle these special cases. | ||
24 | |||
25 | The balance of the clocks controlled by the CAR are assigned IDs of 96 and | ||
26 | above. | ||
27 | |||
28 | 0 cpu | ||
29 | 1 unassigned | ||
30 | 2 unassigned | ||
31 | 3 ac97 | ||
32 | 4 rtc | ||
33 | 5 tmr | ||
34 | 6 uart1 | ||
35 | 7 unassigned (register bit affects uart2 and vfir) | ||
36 | 8 gpio | ||
37 | 9 sdmmc2 | ||
38 | 10 unassigned (register bit affects spdif_in and spdif_out) | ||
39 | 11 i2s1 | ||
40 | 12 i2c1 | ||
41 | 13 ndflash | ||
42 | 14 sdmmc1 | ||
43 | 15 sdmmc4 | ||
44 | 16 twc | ||
45 | 17 pwm | ||
46 | 18 i2s2 | ||
47 | 19 epp | ||
48 | 20 unassigned (register bit affects vi and vi_sensor) | ||
49 | 21 2d | ||
50 | 22 usbd | ||
51 | 23 isp | ||
52 | 24 3d | ||
53 | 25 ide | ||
54 | 26 disp2 | ||
55 | 27 disp1 | ||
56 | 28 host1x | ||
57 | 29 vcp | ||
58 | 30 unassigned | ||
59 | 31 cache2 | ||
60 | |||
61 | 32 mem | ||
62 | 33 ahbdma | ||
63 | 34 apbdma | ||
64 | 35 unassigned | ||
65 | 36 kbc | ||
66 | 37 stat_mon | ||
67 | 38 pmc | ||
68 | 39 fuse | ||
69 | 40 kfuse | ||
70 | 41 sbc1 | ||
71 | 42 snor | ||
72 | 43 spi1 | ||
73 | 44 sbc2 | ||
74 | 45 xio | ||
75 | 46 sbc3 | ||
76 | 47 dvc | ||
77 | 48 dsi | ||
78 | 49 unassigned (register bit affects tvo and cve) | ||
79 | 50 mipi | ||
80 | 51 hdmi | ||
81 | 52 csi | ||
82 | 53 tvdac | ||
83 | 54 i2c2 | ||
84 | 55 uart3 | ||
85 | 56 unassigned | ||
86 | 57 emc | ||
87 | 58 usb2 | ||
88 | 59 usb3 | ||
89 | 60 mpe | ||
90 | 61 vde | ||
91 | 62 bsea | ||
92 | 63 bsev | ||
93 | |||
94 | 64 speedo | ||
95 | 65 uart4 | ||
96 | 66 uart5 | ||
97 | 67 i2c3 | ||
98 | 68 sbc4 | ||
99 | 69 sdmmc3 | ||
100 | 70 pcie | ||
101 | 71 owr | ||
102 | 72 afi | ||
103 | 73 csite | ||
104 | 74 unassigned | ||
105 | 75 avpucq | ||
106 | 76 la | ||
107 | 77 unassigned | ||
108 | 78 unassigned | ||
109 | 79 unassigned | ||
110 | 80 unassigned | ||
111 | 81 unassigned | ||
112 | 82 unassigned | ||
113 | 83 unassigned | ||
114 | 84 irama | ||
115 | 85 iramb | ||
116 | 86 iramc | ||
117 | 87 iramd | ||
118 | 88 cram2 | ||
119 | 89 audio_2x a/k/a audio_2x_sync_clk | ||
120 | 90 clk_d | ||
121 | 91 unassigned | ||
122 | 92 sus | ||
123 | 93 cdev1 | ||
124 | 94 cdev2 | ||
125 | 95 unassigned | ||
126 | |||
127 | 96 uart2 | ||
128 | 97 vfir | ||
129 | 98 spdif_in | ||
130 | 99 spdif_out | ||
131 | 100 vi | ||
132 | 101 vi_sensor | ||
133 | 102 tvo | ||
134 | 103 cve | ||
135 | 104 osc | ||
136 | 105 clk_32k a/k/a clk_s | ||
137 | 106 clk_m | ||
138 | 107 sclk | ||
139 | 108 cclk | ||
140 | 109 hclk | ||
141 | 110 pclk | ||
142 | 111 blink | ||
143 | 112 pll_a | ||
144 | 113 pll_a_out0 | ||
145 | 114 pll_c | ||
146 | 115 pll_c_out1 | ||
147 | 116 pll_d | ||
148 | 117 pll_d_out0 | ||
149 | 118 pll_e | ||
150 | 119 pll_m | ||
151 | 120 pll_m_out1 | ||
152 | 121 pll_p | ||
153 | 122 pll_p_out1 | ||
154 | 123 pll_p_out2 | ||
155 | 124 pll_p_out3 | ||
156 | 125 pll_p_out4 | ||
157 | 126 pll_s | ||
158 | 127 pll_u | ||
159 | 128 pll_x | ||
160 | 129 cop a/k/a avp | ||
161 | 130 audio a/k/a audio_sync_clk | ||
162 | 131 pll_ref | ||
163 | 132 twd | ||
164 | |||
165 | Example SoC include file: | ||
166 | |||
167 | / { | ||
168 | tegra_car: clock { | ||
169 | compatible = "nvidia,tegra20-car"; | ||
170 | reg = <0x60006000 0x1000>; | ||
171 | #clock-cells = <1>; | ||
172 | }; | ||
173 | |||
174 | usb@c5004000 { | ||
175 | clocks = <&tegra_car 58>; /* usb2 */ | ||
176 | }; | ||
177 | }; | ||
178 | |||
179 | Example board file: | ||
180 | |||
181 | / { | ||
182 | clocks { | ||
183 | compatible = "simple-bus"; | ||
184 | #address-cells = <1>; | ||
185 | #size-cells = <0>; | ||
186 | |||
187 | osc: clock@0 { | ||
188 | compatible = "fixed-clock"; | ||
189 | reg = <0>; | ||
190 | #clock-cells = <0>; | ||
191 | clock-frequency = <12000000>; | ||
192 | }; | ||
193 | |||
194 | clk_32k: clock@1 { | ||
195 | compatible = "fixed-clock"; | ||
196 | reg = <1>; | ||
197 | #clock-cells = <0>; | ||
198 | clock-frequency = <32768>; | ||
199 | }; | ||
200 | }; | ||
201 | |||
202 | &tegra_car { | ||
203 | clocks = <&clk_32k> <&osc>; | ||
204 | }; | ||
205 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt b/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt new file mode 100644 index 000000000000..f3da3be5fcad --- /dev/null +++ b/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt | |||
@@ -0,0 +1,262 @@ | |||
1 | NVIDIA Tegra30 Clock And Reset Controller | ||
2 | |||
3 | This binding uses the common clock binding: | ||
4 | Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
5 | |||
6 | The CAR (Clock And Reset) Controller on Tegra is the HW module responsible | ||
7 | for muxing and gating Tegra's clocks, and setting their rates. | ||
8 | |||
9 | Required properties : | ||
10 | - compatible : Should be "nvidia,tegra30-car" | ||
11 | - reg : Should contain CAR registers location and length | ||
12 | - clocks : Should contain phandle and clock specifiers for two clocks: | ||
13 | the 32 KHz "32k_in", and the board-specific oscillator "osc". | ||
14 | - #clock-cells : Should be 1. | ||
15 | In clock consumers, this cell represents the clock ID exposed by the CAR. | ||
16 | |||
17 | The first 130 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB | ||
18 | registers. These IDs often match those in the CAR's RST_DEVICES registers, | ||
19 | but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In | ||
20 | this case, those clocks are assigned IDs above 160 in order to highlight | ||
21 | this issue. Implementations that interpret these clock IDs as bit values | ||
22 | within the CLK_OUT_ENB or RST_DEVICES registers should be careful to | ||
23 | explicitly handle these special cases. | ||
24 | |||
25 | The balance of the clocks controlled by the CAR are assigned IDs of 160 and | ||
26 | above. | ||
27 | |||
28 | 0 cpu | ||
29 | 1 unassigned | ||
30 | 2 unassigned | ||
31 | 3 unassigned | ||
32 | 4 rtc | ||
33 | 5 timer | ||
34 | 6 uarta | ||
35 | 7 unassigned (register bit affects uartb and vfir) | ||
36 | 8 gpio | ||
37 | 9 sdmmc2 | ||
38 | 10 unassigned (register bit affects spdif_in and spdif_out) | ||
39 | 11 i2s1 | ||
40 | 12 i2c1 | ||
41 | 13 ndflash | ||
42 | 14 sdmmc1 | ||
43 | 15 sdmmc4 | ||
44 | 16 unassigned | ||
45 | 17 pwm | ||
46 | 18 i2s2 | ||
47 | 19 epp | ||
48 | 20 unassigned (register bit affects vi and vi_sensor) | ||
49 | 21 2d | ||
50 | 22 usbd | ||
51 | 23 isp | ||
52 | 24 3d | ||
53 | 25 unassigned | ||
54 | 26 disp2 | ||
55 | 27 disp1 | ||
56 | 28 host1x | ||
57 | 29 vcp | ||
58 | 30 i2s0 | ||
59 | 31 cop_cache | ||
60 | |||
61 | 32 mc | ||
62 | 33 ahbdma | ||
63 | 34 apbdma | ||
64 | 35 unassigned | ||
65 | 36 kbc | ||
66 | 37 statmon | ||
67 | 38 pmc | ||
68 | 39 unassigned (register bit affects fuse and fuse_burn) | ||
69 | 40 kfuse | ||
70 | 41 sbc1 | ||
71 | 42 nor | ||
72 | 43 unassigned | ||
73 | 44 sbc2 | ||
74 | 45 unassigned | ||
75 | 46 sbc3 | ||
76 | 47 i2c5 | ||
77 | 48 dsia | ||
78 | 49 unassigned (register bit affects cve and tvo) | ||
79 | 50 mipi | ||
80 | 51 hdmi | ||
81 | 52 csi | ||
82 | 53 tvdac | ||
83 | 54 i2c2 | ||
84 | 55 uartc | ||
85 | 56 unassigned | ||
86 | 57 emc | ||
87 | 58 usb2 | ||
88 | 59 usb3 | ||
89 | 60 mpe | ||
90 | 61 vde | ||
91 | 62 bsea | ||
92 | 63 bsev | ||
93 | |||
94 | 64 speedo | ||
95 | 65 uartd | ||
96 | 66 uarte | ||
97 | 67 i2c3 | ||
98 | 68 sbc4 | ||
99 | 69 sdmmc3 | ||
100 | 70 pcie | ||
101 | 71 owr | ||
102 | 72 afi | ||
103 | 73 csite | ||
104 | 74 pciex | ||
105 | 75 avpucq | ||
106 | 76 la | ||
107 | 77 unassigned | ||
108 | 78 unassigned | ||
109 | 79 dtv | ||
110 | 80 ndspeed | ||
111 | 81 i2cslow | ||
112 | 82 dsib | ||
113 | 83 unassigned | ||
114 | 84 irama | ||
115 | 85 iramb | ||
116 | 86 iramc | ||
117 | 87 iramd | ||
118 | 88 cram2 | ||
119 | 89 unassigned | ||
120 | 90 audio_2x a/k/a audio_2x_sync_clk | ||
121 | 91 unassigned | ||
122 | 92 csus | ||
123 | 93 cdev2 | ||
124 | 94 cdev1 | ||
125 | 95 unassigned | ||
126 | |||
127 | 96 cpu_g | ||
128 | 97 cpu_lp | ||
129 | 98 3d2 | ||
130 | 99 mselect | ||
131 | 100 tsensor | ||
132 | 101 i2s3 | ||
133 | 102 i2s4 | ||
134 | 103 i2c4 | ||
135 | 104 sbc5 | ||
136 | 105 sbc6 | ||
137 | 106 d_audio | ||
138 | 107 apbif | ||
139 | 108 dam0 | ||
140 | 109 dam1 | ||
141 | 110 dam2 | ||
142 | 111 hda2codec_2x | ||
143 | 112 atomics | ||
144 | 113 audio0_2x | ||
145 | 114 audio1_2x | ||
146 | 115 audio2_2x | ||
147 | 116 audio3_2x | ||
148 | 117 audio4_2x | ||
149 | 118 audio5_2x | ||
150 | 119 actmon | ||
151 | 120 extern1 | ||
152 | 121 extern2 | ||
153 | 122 extern3 | ||
154 | 123 sata_oob | ||
155 | 124 sata | ||
156 | 125 hda | ||
157 | 127 se | ||
158 | 128 hda2hdmi | ||
159 | 129 sata_cold | ||
160 | |||
161 | 160 uartb | ||
162 | 161 vfir | ||
163 | 162 spdif_in | ||
164 | 163 spdif_out | ||
165 | 164 vi | ||
166 | 165 vi_sensor | ||
167 | 166 fuse | ||
168 | 167 fuse_burn | ||
169 | 168 cve | ||
170 | 169 tvo | ||
171 | |||
172 | 170 clk_32k | ||
173 | 171 clk_m | ||
174 | 172 clk_m_div2 | ||
175 | 173 clk_m_div4 | ||
176 | 174 pll_ref | ||
177 | 175 pll_c | ||
178 | 176 pll_c_out1 | ||
179 | 177 pll_m | ||
180 | 178 pll_m_out1 | ||
181 | 179 pll_p | ||
182 | 180 pll_p_out1 | ||
183 | 181 pll_p_out2 | ||
184 | 182 pll_p_out3 | ||
185 | 183 pll_p_out4 | ||
186 | 184 pll_a | ||
187 | 185 pll_a_out0 | ||
188 | 186 pll_d | ||
189 | 187 pll_d_out0 | ||
190 | 188 pll_d2 | ||
191 | 189 pll_d2_out0 | ||
192 | 190 pll_u | ||
193 | 191 pll_x | ||
194 | 192 pll_x_out0 | ||
195 | 193 pll_e | ||
196 | 194 spdif_in_sync | ||
197 | 195 i2s0_sync | ||
198 | 196 i2s1_sync | ||
199 | 197 i2s2_sync | ||
200 | 198 i2s3_sync | ||
201 | 199 i2s4_sync | ||
202 | 200 vimclk | ||
203 | 201 audio0 | ||
204 | 202 audio1 | ||
205 | 203 audio2 | ||
206 | 204 audio3 | ||
207 | 205 audio4 | ||
208 | 206 audio5 | ||
209 | 207 clk_out_1 (extern1) | ||
210 | 208 clk_out_2 (extern2) | ||
211 | 209 clk_out_3 (extern3) | ||
212 | 210 sclk | ||
213 | 211 blink | ||
214 | 212 cclk_g | ||
215 | 213 cclk_lp | ||
216 | 214 twd | ||
217 | 215 cml0 | ||
218 | 216 cml1 | ||
219 | 217 hclk | ||
220 | 218 pclk | ||
221 | |||
222 | Example SoC include file: | ||
223 | |||
224 | / { | ||
225 | tegra_car: clock { | ||
226 | compatible = "nvidia,tegra30-car"; | ||
227 | reg = <0x60006000 0x1000>; | ||
228 | #clock-cells = <1>; | ||
229 | }; | ||
230 | |||
231 | usb@c5004000 { | ||
232 | clocks = <&tegra_car 58>; /* usb2 */ | ||
233 | }; | ||
234 | }; | ||
235 | |||
236 | Example board file: | ||
237 | |||
238 | / { | ||
239 | clocks { | ||
240 | compatible = "simple-bus"; | ||
241 | #address-cells = <1>; | ||
242 | #size-cells = <0>; | ||
243 | |||
244 | osc: clock@0 { | ||
245 | compatible = "fixed-clock"; | ||
246 | reg = <0>; | ||
247 | #clock-cells = <0>; | ||
248 | clock-frequency = <12000000>; | ||
249 | }; | ||
250 | |||
251 | clk_32k: clock@1 { | ||
252 | compatible = "fixed-clock"; | ||
253 | reg = <1>; | ||
254 | #clock-cells = <0>; | ||
255 | clock-frequency = <32768>; | ||
256 | }; | ||
257 | }; | ||
258 | |||
259 | &tegra_car { | ||
260 | clocks = <&clk_32k> <&osc>; | ||
261 | }; | ||
262 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/prima2-clock.txt b/Documentation/devicetree/bindings/clock/prima2-clock.txt new file mode 100644 index 000000000000..5016979c0f78 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/prima2-clock.txt | |||
@@ -0,0 +1,73 @@ | |||
1 | * Clock bindings for CSR SiRFprimaII | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "sirf,prima2-clkc" | ||
5 | - reg: Address and length of the register set | ||
6 | - interrupts: Should contain clock controller interrupt | ||
7 | - #clock-cells: Should be <1> | ||
8 | |||
9 | The clock consumer should specify the desired clock by having the clock | ||
10 | ID in its "clocks" phandle cell. The following is a full list of prima2 | ||
11 | clocks and IDs. | ||
12 | |||
13 | Clock ID | ||
14 | --------------------------- | ||
15 | rtc 0 | ||
16 | osc 1 | ||
17 | pll1 2 | ||
18 | pll2 3 | ||
19 | pll3 4 | ||
20 | mem 5 | ||
21 | sys 6 | ||
22 | security 7 | ||
23 | dsp 8 | ||
24 | gps 9 | ||
25 | mf 10 | ||
26 | io 11 | ||
27 | cpu 12 | ||
28 | uart0 13 | ||
29 | uart1 14 | ||
30 | uart2 15 | ||
31 | tsc 16 | ||
32 | i2c0 17 | ||
33 | i2c1 18 | ||
34 | spi0 19 | ||
35 | spi1 20 | ||
36 | pwmc 21 | ||
37 | efuse 22 | ||
38 | pulse 23 | ||
39 | dmac0 24 | ||
40 | dmac1 25 | ||
41 | nand 26 | ||
42 | audio 27 | ||
43 | usp0 28 | ||
44 | usp1 29 | ||
45 | usp2 30 | ||
46 | vip 31 | ||
47 | gfx 32 | ||
48 | mm 33 | ||
49 | lcd 34 | ||
50 | vpp 35 | ||
51 | mmc01 36 | ||
52 | mmc23 37 | ||
53 | mmc45 38 | ||
54 | usbpll 39 | ||
55 | usb0 40 | ||
56 | usb1 41 | ||
57 | |||
58 | Examples: | ||
59 | |||
60 | clks: clock-controller@88000000 { | ||
61 | compatible = "sirf,prima2-clkc"; | ||
62 | reg = <0x88000000 0x1000>; | ||
63 | interrupts = <3>; | ||
64 | #clock-cells = <1>; | ||
65 | }; | ||
66 | |||
67 | i2c0: i2c@b00e0000 { | ||
68 | cell-index = <0>; | ||
69 | compatible = "sirf,prima2-i2c"; | ||
70 | reg = <0xb00e0000 0x10000>; | ||
71 | interrupts = <24>; | ||
72 | clocks = <&clks 17>; | ||
73 | }; | ||
diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec4.txt b/Documentation/devicetree/bindings/crypto/fsl-sec4.txt index fc9ce6f1688c..e4022776ac6e 100644 --- a/Documentation/devicetree/bindings/crypto/fsl-sec4.txt +++ b/Documentation/devicetree/bindings/crypto/fsl-sec4.txt | |||
@@ -54,8 +54,13 @@ PROPERTIES | |||
54 | - compatible | 54 | - compatible |
55 | Usage: required | 55 | Usage: required |
56 | Value type: <string> | 56 | Value type: <string> |
57 | Definition: Must include "fsl,sec-v4.0". Also includes SEC | 57 | Definition: Must include "fsl,sec-v4.0" |
58 | ERA versions (optional) with which the device is compatible. | 58 | |
59 | - fsl,sec-era | ||
60 | Usage: optional | ||
61 | Value type: <u32> | ||
62 | Definition: A standard property. Define the 'ERA' of the SEC | ||
63 | device. | ||
59 | 64 | ||
60 | - #address-cells | 65 | - #address-cells |
61 | Usage: required | 66 | Usage: required |
@@ -107,7 +112,8 @@ PROPERTIES | |||
107 | 112 | ||
108 | EXAMPLE | 113 | EXAMPLE |
109 | crypto@300000 { | 114 | crypto@300000 { |
110 | compatible = "fsl,sec-v4.0", "fsl,sec-era-v2.0"; | 115 | compatible = "fsl,sec-v4.0"; |
116 | fsl,sec-era = <2>; | ||
111 | #address-cells = <1>; | 117 | #address-cells = <1>; |
112 | #size-cells = <1>; | 118 | #size-cells = <1>; |
113 | reg = <0x300000 0x10000>; | 119 | reg = <0x300000 0x10000>; |
diff --git a/Documentation/devicetree/bindings/dma/arm-pl330.txt b/Documentation/devicetree/bindings/dma/arm-pl330.txt index 36e27d54260b..267565894db9 100644 --- a/Documentation/devicetree/bindings/dma/arm-pl330.txt +++ b/Documentation/devicetree/bindings/dma/arm-pl330.txt | |||
@@ -10,7 +10,11 @@ Required properties: | |||
10 | - interrupts: interrupt number to the cpu. | 10 | - interrupts: interrupt number to the cpu. |
11 | 11 | ||
12 | Optional properties: | 12 | Optional properties: |
13 | - dma-coherent : Present if dma operations are coherent | 13 | - dma-coherent : Present if dma operations are coherent |
14 | - #dma-cells: must be <1>. used to represent the number of integer | ||
15 | cells in the dmas property of client device. | ||
16 | - dma-channels: contains the total number of DMA channels supported by the DMAC | ||
17 | - dma-requests: contains the total number of DMA requests supported by the DMAC | ||
14 | 18 | ||
15 | Example: | 19 | Example: |
16 | 20 | ||
@@ -18,16 +22,23 @@ Example: | |||
18 | compatible = "arm,pl330", "arm,primecell"; | 22 | compatible = "arm,pl330", "arm,primecell"; |
19 | reg = <0x12680000 0x1000>; | 23 | reg = <0x12680000 0x1000>; |
20 | interrupts = <99>; | 24 | interrupts = <99>; |
25 | #dma-cells = <1>; | ||
26 | #dma-channels = <8>; | ||
27 | #dma-requests = <32>; | ||
21 | }; | 28 | }; |
22 | 29 | ||
23 | Client drivers (device nodes requiring dma transfers from dev-to-mem or | 30 | Client drivers (device nodes requiring dma transfers from dev-to-mem or |
24 | mem-to-dev) should specify the DMA channel numbers using a two-value pair | 31 | mem-to-dev) should specify the DMA channel numbers and dma channel names |
25 | as shown below. | 32 | as shown below. |
26 | 33 | ||
27 | [property name] = <[phandle of the dma controller] [dma request id]>; | 34 | [property name] = <[phandle of the dma controller] [dma request id]>; |
35 | [property name] = <[dma channel name]> | ||
28 | 36 | ||
29 | where 'dma request id' is the dma request number which is connected | 37 | where 'dma request id' is the dma request number which is connected |
30 | to the client controller. The 'property name' is recommended to be | 38 | to the client controller. The 'property name' 'dmas' and 'dma-names' |
31 | of the form <name>-dma-channel. | 39 | as required by the generic dma device tree binding helpers. The dma |
40 | names correspond 1:1 with the dma request ids in the dmas property. | ||
32 | 41 | ||
33 | Example: tx-dma-channel = <&pdma0 12>; | 42 | Example: dmas = <&pdma0 12 |
43 | &pdma1 11>; | ||
44 | dma-names = "tx", "rx"; | ||
diff --git a/Documentation/devicetree/bindings/dma/dma.txt b/Documentation/devicetree/bindings/dma/dma.txt new file mode 100644 index 000000000000..8f504e6bae14 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/dma.txt | |||
@@ -0,0 +1,81 @@ | |||
1 | * Generic DMA Controller and DMA request bindings | ||
2 | |||
3 | Generic binding to provide a way for a driver using DMA Engine to retrieve the | ||
4 | DMA request or channel information that goes from a hardware device to a DMA | ||
5 | controller. | ||
6 | |||
7 | |||
8 | * DMA controller | ||
9 | |||
10 | Required property: | ||
11 | - #dma-cells: Must be at least 1. Used to provide DMA controller | ||
12 | specific information. See DMA client binding below for | ||
13 | more details. | ||
14 | |||
15 | Optional properties: | ||
16 | - dma-channels: Number of DMA channels supported by the controller. | ||
17 | - dma-requests: Number of DMA requests signals supported by the | ||
18 | controller. | ||
19 | |||
20 | Example: | ||
21 | |||
22 | dma: dma@48000000 { | ||
23 | compatible = "ti,omap-sdma"; | ||
24 | reg = <0x48000000 0x1000>; | ||
25 | interrupts = <0 12 0x4 | ||
26 | 0 13 0x4 | ||
27 | 0 14 0x4 | ||
28 | 0 15 0x4>; | ||
29 | #dma-cells = <1>; | ||
30 | dma-channels = <32>; | ||
31 | dma-requests = <127>; | ||
32 | }; | ||
33 | |||
34 | |||
35 | * DMA client | ||
36 | |||
37 | Client drivers should specify the DMA property using a phandle to the controller | ||
38 | followed by DMA controller specific data. | ||
39 | |||
40 | Required property: | ||
41 | - dmas: List of one or more DMA specifiers, each consisting of | ||
42 | - A phandle pointing to DMA controller node | ||
43 | - A number of integer cells, as determined by the | ||
44 | #dma-cells property in the node referenced by phandle | ||
45 | containing DMA controller specific information. This | ||
46 | typically contains a DMA request line number or a | ||
47 | channel number, but can contain any data that is used | ||
48 | required for configuring a channel. | ||
49 | - dma-names: Contains one identifier string for each DMA specifier in | ||
50 | the dmas property. The specific strings that can be used | ||
51 | are defined in the binding of the DMA client device. | ||
52 | Multiple DMA specifiers can be used to represent | ||
53 | alternatives and in this case the dma-names for those | ||
54 | DMA specifiers must be identical (see examples). | ||
55 | |||
56 | Examples: | ||
57 | |||
58 | 1. A device with one DMA read channel, one DMA write channel: | ||
59 | |||
60 | i2c1: i2c@1 { | ||
61 | ... | ||
62 | dmas = <&dma 2 /* read channel */ | ||
63 | &dma 3>; /* write channel */ | ||
64 | dma-names = "rx", "tx"; | ||
65 | ... | ||
66 | }; | ||
67 | |||
68 | 2. A single read-write channel with three alternative DMA controllers: | ||
69 | |||
70 | dmas = <&dma1 5 | ||
71 | &dma2 7 | ||
72 | &dma3 2>; | ||
73 | dma-names = "rx-tx", "rx-tx", "rx-tx"; | ||
74 | |||
75 | 3. A device with three channels, one of which has two alternatives: | ||
76 | |||
77 | dmas = <&dma1 2 /* read channel */ | ||
78 | &dma1 3 /* write channel */ | ||
79 | &dma2 0 /* error read */ | ||
80 | &dma3 0>; /* alternative error read */ | ||
81 | dma-names = "rx", "tx", "error", "error"; | ||
diff --git a/Documentation/devicetree/bindings/dma/snps-dma.txt b/Documentation/devicetree/bindings/dma/snps-dma.txt index c0d85dbcada5..5bb3dfb6f1d8 100644 --- a/Documentation/devicetree/bindings/dma/snps-dma.txt +++ b/Documentation/devicetree/bindings/dma/snps-dma.txt | |||
@@ -6,6 +6,26 @@ Required properties: | |||
6 | - interrupt-parent: Should be the phandle for the interrupt controller | 6 | - interrupt-parent: Should be the phandle for the interrupt controller |
7 | that services interrupts for this device | 7 | that services interrupts for this device |
8 | - interrupt: Should contain the DMAC interrupt number | 8 | - interrupt: Should contain the DMAC interrupt number |
9 | - nr_channels: Number of channels supported by hardware | ||
10 | - is_private: The device channels should be marked as private and not for by the | ||
11 | general purpose DMA channel allocator. False if not passed. | ||
12 | - chan_allocation_order: order of allocation of channel, 0 (default): ascending, | ||
13 | 1: descending | ||
14 | - chan_priority: priority of channels. 0 (default): increase from chan 0->n, 1: | ||
15 | increase from chan n->0 | ||
16 | - block_size: Maximum block size supported by the controller | ||
17 | - nr_masters: Number of AHB masters supported by the controller | ||
18 | - data_width: Maximum data width supported by hardware per AHB master | ||
19 | (0 - 8bits, 1 - 16bits, ..., 5 - 256bits) | ||
20 | - slave_info: | ||
21 | - bus_id: name of this device channel, not just a device name since | ||
22 | devices may have more than one channel e.g. "foo_tx". For using the | ||
23 | dw_generic_filter(), slave drivers must pass exactly this string as | ||
24 | param to filter function. | ||
25 | - cfg_hi: Platform-specific initializer for the CFG_HI register | ||
26 | - cfg_lo: Platform-specific initializer for the CFG_LO register | ||
27 | - src_master: src master for transfers on allocated channel. | ||
28 | - dst_master: dest master for transfers on allocated channel. | ||
9 | 29 | ||
10 | Example: | 30 | Example: |
11 | 31 | ||
@@ -14,4 +34,28 @@ Example: | |||
14 | reg = <0xfc000000 0x1000>; | 34 | reg = <0xfc000000 0x1000>; |
15 | interrupt-parent = <&vic1>; | 35 | interrupt-parent = <&vic1>; |
16 | interrupts = <12>; | 36 | interrupts = <12>; |
37 | |||
38 | nr_channels = <8>; | ||
39 | chan_allocation_order = <1>; | ||
40 | chan_priority = <1>; | ||
41 | block_size = <0xfff>; | ||
42 | nr_masters = <2>; | ||
43 | data_width = <3 3 0 0>; | ||
44 | |||
45 | slave_info { | ||
46 | uart0-tx { | ||
47 | bus_id = "uart0-tx"; | ||
48 | cfg_hi = <0x4000>; /* 0x8 << 11 */ | ||
49 | cfg_lo = <0>; | ||
50 | src_master = <0>; | ||
51 | dst_master = <1>; | ||
52 | }; | ||
53 | spi0-tx { | ||
54 | bus_id = "spi0-tx"; | ||
55 | cfg_hi = <0x2000>; /* 0x4 << 11 */ | ||
56 | cfg_lo = <0>; | ||
57 | src_master = <0>; | ||
58 | dst_master = <0>; | ||
59 | }; | ||
60 | }; | ||
17 | }; | 61 | }; |
diff --git a/Documentation/devicetree/bindings/drm/exynos/g2d.txt b/Documentation/devicetree/bindings/drm/exynos/g2d.txt new file mode 100644 index 000000000000..1eb124d35a99 --- /dev/null +++ b/Documentation/devicetree/bindings/drm/exynos/g2d.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | Samsung 2D Graphic Accelerator using DRM frame work | ||
2 | |||
3 | Samsung FIMG2D is a graphics 2D accelerator which supports Bit Block Transfer. | ||
4 | We set the drawing-context registers for configuring rendering parameters and | ||
5 | then start rendering. | ||
6 | This driver is for SOCs which contain G2D IPs with version 4.1. | ||
7 | |||
8 | Required properties: | ||
9 | -compatible: | ||
10 | should be "samsung,exynos-g2d-41". | ||
11 | -reg: | ||
12 | physical base address of the controller and length | ||
13 | of memory mapped region. | ||
14 | -interrupts: | ||
15 | interrupt combiner values. | ||
16 | |||
17 | Example: | ||
18 | g2d { | ||
19 | compatible = "samsung,exynos-g2d-41"; | ||
20 | reg = <0x10850000 0x1000>; | ||
21 | interrupts = <0 91 0>; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/drm/tilcdc/panel.txt b/Documentation/devicetree/bindings/drm/tilcdc/panel.txt new file mode 100644 index 000000000000..9301c330d1a6 --- /dev/null +++ b/Documentation/devicetree/bindings/drm/tilcdc/panel.txt | |||
@@ -0,0 +1,59 @@ | |||
1 | Device-Tree bindings for tilcdc DRM generic panel output driver | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: value should be "ti,tilcdc,panel". | ||
5 | - panel-info: configuration info to configure LCDC correctly for the panel | ||
6 | - ac-bias: AC Bias Pin Frequency | ||
7 | - ac-bias-intrpt: AC Bias Pin Transitions per Interrupt | ||
8 | - dma-burst-sz: DMA burst size | ||
9 | - bpp: Bits per pixel | ||
10 | - fdd: FIFO DMA Request Delay | ||
11 | - sync-edge: Horizontal and Vertical Sync Edge: 0=rising 1=falling | ||
12 | - sync-ctrl: Horizontal and Vertical Sync: Control: 0=ignore | ||
13 | - raster-order: Raster Data Order Select: 1=Most-to-least 0=Least-to-most | ||
14 | - fifo-th: DMA FIFO threshold | ||
15 | - display-timings: typical videomode of lcd panel. Multiple video modes | ||
16 | can be listed if the panel supports multiple timings, but the 'native-mode' | ||
17 | should be the preferred/default resolution. Refer to | ||
18 | Documentation/devicetree/bindings/video/display-timing.txt for display | ||
19 | timing binding details. | ||
20 | |||
21 | Recommended properties: | ||
22 | - pinctrl-names, pinctrl-0: the pincontrol settings to configure | ||
23 | muxing properly for pins that connect to TFP410 device | ||
24 | |||
25 | Example: | ||
26 | |||
27 | /* Settings for CDTech_S035Q01 / LCD3 cape: */ | ||
28 | lcd3 { | ||
29 | compatible = "ti,tilcdc,panel"; | ||
30 | pinctrl-names = "default"; | ||
31 | pinctrl-0 = <&bone_lcd3_cape_lcd_pins>; | ||
32 | panel-info { | ||
33 | ac-bias = <255>; | ||
34 | ac-bias-intrpt = <0>; | ||
35 | dma-burst-sz = <16>; | ||
36 | bpp = <16>; | ||
37 | fdd = <0x80>; | ||
38 | sync-edge = <0>; | ||
39 | sync-ctrl = <1>; | ||
40 | raster-order = <0>; | ||
41 | fifo-th = <0>; | ||
42 | }; | ||
43 | display-timings { | ||
44 | native-mode = <&timing0>; | ||
45 | timing0: 320x240 { | ||
46 | hactive = <320>; | ||
47 | vactive = <240>; | ||
48 | hback-porch = <21>; | ||
49 | hfront-porch = <58>; | ||
50 | hsync-len = <47>; | ||
51 | vback-porch = <11>; | ||
52 | vfront-porch = <23>; | ||
53 | vsync-len = <2>; | ||
54 | clock-frequency = <8000000>; | ||
55 | hsync-active = <0>; | ||
56 | vsync-active = <0>; | ||
57 | }; | ||
58 | }; | ||
59 | }; | ||
diff --git a/Documentation/devicetree/bindings/drm/tilcdc/slave.txt b/Documentation/devicetree/bindings/drm/tilcdc/slave.txt new file mode 100644 index 000000000000..3d2c52460dca --- /dev/null +++ b/Documentation/devicetree/bindings/drm/tilcdc/slave.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | Device-Tree bindings for tilcdc DRM encoder slave output driver | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: value should be "ti,tilcdc,slave". | ||
5 | - i2c: the phandle for the i2c device the encoder slave is connected to | ||
6 | |||
7 | Recommended properties: | ||
8 | - pinctrl-names, pinctrl-0: the pincontrol settings to configure | ||
9 | muxing properly for pins that connect to TFP410 device | ||
10 | |||
11 | Example: | ||
12 | |||
13 | hdmi { | ||
14 | compatible = "ti,tilcdc,slave"; | ||
15 | i2c = <&i2c0>; | ||
16 | pinctrl-names = "default"; | ||
17 | pinctrl-0 = <&nxp_hdmi_bonelt_pins>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/drm/tilcdc/tfp410.txt b/Documentation/devicetree/bindings/drm/tilcdc/tfp410.txt new file mode 100644 index 000000000000..a58ae7756fc6 --- /dev/null +++ b/Documentation/devicetree/bindings/drm/tilcdc/tfp410.txt | |||
@@ -0,0 +1,21 @@ | |||
1 | Device-Tree bindings for tilcdc DRM TFP410 output driver | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: value should be "ti,tilcdc,tfp410". | ||
5 | - i2c: the phandle for the i2c device to use for DDC | ||
6 | |||
7 | Recommended properties: | ||
8 | - pinctrl-names, pinctrl-0: the pincontrol settings to configure | ||
9 | muxing properly for pins that connect to TFP410 device | ||
10 | - powerdn-gpio: the powerdown GPIO, pulled low to power down the | ||
11 | TFP410 device (for DPMS_OFF) | ||
12 | |||
13 | Example: | ||
14 | |||
15 | dvicape { | ||
16 | compatible = "ti,tilcdc,tfp410"; | ||
17 | i2c = <&i2c2>; | ||
18 | pinctrl-names = "default"; | ||
19 | pinctrl-0 = <&bone_dvi_cape_dvi_00A1_pins>; | ||
20 | powerdn-gpio = <&gpio2 31 0>; | ||
21 | }; | ||
diff --git a/Documentation/devicetree/bindings/drm/tilcdc/tilcdc.txt b/Documentation/devicetree/bindings/drm/tilcdc/tilcdc.txt new file mode 100644 index 000000000000..e5f130159ae1 --- /dev/null +++ b/Documentation/devicetree/bindings/drm/tilcdc/tilcdc.txt | |||
@@ -0,0 +1,21 @@ | |||
1 | Device-Tree bindings for tilcdc DRM driver | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: value should be "ti,am33xx-tilcdc". | ||
5 | - interrupts: the interrupt number | ||
6 | - reg: base address and size of the LCDC device | ||
7 | |||
8 | Recommended properties: | ||
9 | - interrupt-parent: the phandle for the interrupt controller that | ||
10 | services interrupts for this device. | ||
11 | - ti,hwmods: Name of the hwmod associated to the LCDC | ||
12 | |||
13 | Example: | ||
14 | |||
15 | fb: fb@4830e000 { | ||
16 | compatible = "ti,am33xx-tilcdc"; | ||
17 | reg = <0x4830e000 0x1000>; | ||
18 | interrupt-parent = <&intc>; | ||
19 | interrupts = <36>; | ||
20 | ti,hwmods = "lcdc"; | ||
21 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt b/Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt new file mode 100644 index 000000000000..e9de3756752b --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt | |||
@@ -0,0 +1,20 @@ | |||
1 | Broadcom BCM2835 I2C controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "brcm,bcm2835-i2c". | ||
5 | - reg: Should contain register location and length. | ||
6 | - interrupts: Should contain interrupt. | ||
7 | - clocks : The clock feeding the I2C controller. | ||
8 | |||
9 | Recommended properties: | ||
10 | - clock-frequency : desired I2C bus clock frequency in Hz. | ||
11 | |||
12 | Example: | ||
13 | |||
14 | i2c@20205000 { | ||
15 | compatible = "brcm,bcm2835-i2c"; | ||
16 | reg = <0x7e205000 0x1000>; | ||
17 | interrupts = <2 21>; | ||
18 | clocks = <&clk_i2c>; | ||
19 | clock-frequency = <100000>; | ||
20 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt b/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt index e9611ace8792..f98d4c5b5cca 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt | |||
@@ -8,6 +8,8 @@ Required properties: | |||
8 | (b) "samsung, s3c2440-i2c", for i2c compatible with s3c2440 i2c. | 8 | (b) "samsung, s3c2440-i2c", for i2c compatible with s3c2440 i2c. |
9 | (c) "samsung, s3c2440-hdmiphy-i2c", for s3c2440-like i2c used | 9 | (c) "samsung, s3c2440-hdmiphy-i2c", for s3c2440-like i2c used |
10 | inside HDMIPHY block found on several samsung SoCs | 10 | inside HDMIPHY block found on several samsung SoCs |
11 | (d) "samsung, exynos5440-i2c", for s3c2440-like i2c used | ||
12 | on EXYNOS5440 which does not need GPIO configuration. | ||
11 | - reg: physical base address of the controller and length of memory mapped | 13 | - reg: physical base address of the controller and length of memory mapped |
12 | region. | 14 | region. |
13 | - interrupts: interrupt number to the cpu. | 15 | - interrupts: interrupt number to the cpu. |
diff --git a/Documentation/devicetree/bindings/i2c/ina209.txt b/Documentation/devicetree/bindings/i2c/ina209.txt new file mode 100644 index 000000000000..9dd2bee80840 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/ina209.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | ina209 properties | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Must be "ti,ina209" | ||
5 | - reg: I2C address | ||
6 | |||
7 | Optional properties: | ||
8 | |||
9 | - shunt-resistor | ||
10 | Shunt resistor value in micro-Ohm | ||
11 | |||
12 | Example: | ||
13 | |||
14 | temp-sensor@4c { | ||
15 | compatible = "ti,ina209"; | ||
16 | reg = <0x4c>; | ||
17 | shunt-resistor = <5000>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/max6697.txt b/Documentation/devicetree/bindings/i2c/max6697.txt new file mode 100644 index 000000000000..5f793998e4a4 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/max6697.txt | |||
@@ -0,0 +1,64 @@ | |||
1 | max6697 properties | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: | ||
5 | Should be one of | ||
6 | maxim,max6581 | ||
7 | maxim,max6602 | ||
8 | maxim,max6622 | ||
9 | maxim,max6636 | ||
10 | maxim,max6689 | ||
11 | maxim,max6693 | ||
12 | maxim,max6694 | ||
13 | maxim,max6697 | ||
14 | maxim,max6698 | ||
15 | maxim,max6699 | ||
16 | - reg: I2C address | ||
17 | |||
18 | Optional properties: | ||
19 | |||
20 | - smbus-timeout-disable | ||
21 | Set to disable SMBus timeout. If not specified, SMBus timeout will be | ||
22 | enabled. | ||
23 | - extended-range-enable | ||
24 | Only valid for MAX6581. Set to enable extended temperature range. | ||
25 | Extended temperature will be disabled if not specified. | ||
26 | - beta-compensation-enable | ||
27 | Only valid for MAX6693 and MX6694. Set to enable beta compensation on | ||
28 | remote temperature channel 1. | ||
29 | Beta compensation will be disabled if not specified. | ||
30 | - alert-mask | ||
31 | Alert bit mask. Alert disabled for bits set. | ||
32 | Select bit 0 for local temperature, bit 1..7 for remote temperatures. | ||
33 | If not specified, alert will be enabled for all channels. | ||
34 | - over-temperature-mask | ||
35 | Over-temperature bit mask. Over-temperature reporting disabled for | ||
36 | bits set. | ||
37 | Select bit 0 for local temperature, bit 1..7 for remote temperatures. | ||
38 | If not specified, over-temperature reporting will be enabled for all | ||
39 | channels. | ||
40 | - resistance-cancellation | ||
41 | Boolean for all chips other than MAX6581. Set to enable resistance | ||
42 | cancellation on remote temperature channel 1. | ||
43 | For MAX6581, resistance cancellation enabled for all channels if | ||
44 | specified as boolean, otherwise as per bit mask specified. | ||
45 | Only supported for remote temperatures (bit 1..7). | ||
46 | If not specified, resistance cancellation will be disabled for all | ||
47 | channels. | ||
48 | - transistor-ideality | ||
49 | For MAX6581 only. Two values; first is bit mask, second is ideality | ||
50 | select value as per MAX6581 data sheet. Select bit 1..7 for remote | ||
51 | channels. | ||
52 | Transistor ideality will be initialized to default (1.008) if not | ||
53 | specified. | ||
54 | |||
55 | Example: | ||
56 | |||
57 | temp-sensor@1a { | ||
58 | compatible = "maxim,max6697"; | ||
59 | reg = <0x1a>; | ||
60 | smbus-timeout-disable; | ||
61 | resistance-cancellation; | ||
62 | alert-mask = <0x72>; | ||
63 | over-temperature-mask = <0x7f>; | ||
64 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/imx-keypad.txt b/Documentation/devicetree/bindings/input/imx-keypad.txt new file mode 100644 index 000000000000..2ebaf7d26843 --- /dev/null +++ b/Documentation/devicetree/bindings/input/imx-keypad.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | * Freescale i.MX Keypad Port(KPP) device tree bindings | ||
2 | |||
3 | The KPP is designed to interface with a keypad matrix with 2-point contact | ||
4 | or 3-point contact keys. The KPP is designed to simplify the software task | ||
5 | of scanning a keypad matrix. The KPP is capable of detecting, debouncing, | ||
6 | and decoding one or multiple keys pressed simultaneously on a keypad. | ||
7 | |||
8 | Required SoC Specific Properties: | ||
9 | - compatible: Should be "fsl,<soc>-kpp". | ||
10 | |||
11 | - reg: Physical base address of the KPP and length of memory mapped | ||
12 | region. | ||
13 | |||
14 | - interrupts: The KPP interrupt number to the CPU(s). | ||
15 | |||
16 | - clocks: The clock provided by the SoC to the KPP. Some SoCs use dummy | ||
17 | clock(The clock for the KPP is provided by the SoCs automatically). | ||
18 | |||
19 | Required Board Specific Properties: | ||
20 | - pinctrl-names: The definition can be found at | ||
21 | pinctrl/pinctrl-bindings.txt. | ||
22 | |||
23 | - pinctrl-0: The definition can be found at | ||
24 | pinctrl/pinctrl-bindings.txt. | ||
25 | |||
26 | - linux,keymap: The definition can be found at | ||
27 | bindings/input/matrix-keymap.txt. | ||
28 | |||
29 | Example: | ||
30 | kpp: kpp@73f94000 { | ||
31 | compatible = "fsl,imx51-kpp", "fsl,imx21-kpp"; | ||
32 | reg = <0x73f94000 0x4000>; | ||
33 | interrupts = <60>; | ||
34 | clocks = <&clks 0>; | ||
35 | pinctrl-names = "default"; | ||
36 | pinctrl-0 = <&pinctrl_kpp_1>; | ||
37 | linux,keymap = <0x00000067 /* KEY_UP */ | ||
38 | 0x0001006c /* KEY_DOWN */ | ||
39 | 0x00020072 /* KEY_VOLUMEDOWN */ | ||
40 | 0x00030066 /* KEY_HOME */ | ||
41 | 0x0100006a /* KEY_RIGHT */ | ||
42 | 0x01010069 /* KEY_LEFT */ | ||
43 | 0x0102001c /* KEY_ENTER */ | ||
44 | 0x01030073 /* KEY_VOLUMEUP */ | ||
45 | 0x02000040 /* KEY_F6 */ | ||
46 | 0x02010042 /* KEY_F8 */ | ||
47 | 0x02020043 /* KEY_F9 */ | ||
48 | 0x02030044 /* KEY_F10 */ | ||
49 | 0x0300003b /* KEY_F1 */ | ||
50 | 0x0301003c /* KEY_F2 */ | ||
51 | 0x0302003d /* KEY_F3 */ | ||
52 | 0x03030074>; /* KEY_POWER */ | ||
53 | }; | ||
diff --git a/Documentation/devicetree/bindings/input/lpc32xx-key.txt b/Documentation/devicetree/bindings/input/lpc32xx-key.txt index 31afd5014c48..bcf62f856358 100644 --- a/Documentation/devicetree/bindings/input/lpc32xx-key.txt +++ b/Documentation/devicetree/bindings/input/lpc32xx-key.txt | |||
@@ -1,19 +1,22 @@ | |||
1 | NXP LPC32xx Key Scan Interface | 1 | NXP LPC32xx Key Scan Interface |
2 | 2 | ||
3 | This binding is based on the matrix-keymap binding with the following | ||
4 | changes: | ||
5 | |||
3 | Required Properties: | 6 | Required Properties: |
4 | - compatible: Should be "nxp,lpc3220-key" | 7 | - compatible: Should be "nxp,lpc3220-key" |
5 | - reg: Physical base address of the controller and length of memory mapped | 8 | - reg: Physical base address of the controller and length of memory mapped |
6 | region. | 9 | region. |
7 | - interrupts: The interrupt number to the cpu. | 10 | - interrupts: The interrupt number to the cpu. |
8 | - keypad,num-rows: Number of rows and columns, e.g. 1: 1x1, 6: 6x6 | ||
9 | - keypad,num-columns: Must be equal to keypad,num-rows since LPC32xx only | ||
10 | supports square matrices | ||
11 | - nxp,debounce-delay-ms: Debounce delay in ms | 11 | - nxp,debounce-delay-ms: Debounce delay in ms |
12 | - nxp,scan-delay-ms: Repeated scan period in ms | 12 | - nxp,scan-delay-ms: Repeated scan period in ms |
13 | - linux,keymap: the key-code to be reported when the key is pressed | 13 | - linux,keymap: the key-code to be reported when the key is pressed |
14 | and released, see also | 14 | and released, see also |
15 | Documentation/devicetree/bindings/input/matrix-keymap.txt | 15 | Documentation/devicetree/bindings/input/matrix-keymap.txt |
16 | 16 | ||
17 | Note: keypad,num-rows and keypad,num-columns are required, and must be equal | ||
18 | since LPC32xx only supports square matrices | ||
19 | |||
17 | Example: | 20 | Example: |
18 | 21 | ||
19 | key@40050000 { | 22 | key@40050000 { |
diff --git a/Documentation/devicetree/bindings/input/matrix-keymap.txt b/Documentation/devicetree/bindings/input/matrix-keymap.txt index 3cd8b98ccd2d..c54919fad17e 100644 --- a/Documentation/devicetree/bindings/input/matrix-keymap.txt +++ b/Documentation/devicetree/bindings/input/matrix-keymap.txt | |||
@@ -9,6 +9,12 @@ Required properties: | |||
9 | row << 24 | column << 16 | key-code | 9 | row << 24 | column << 16 | key-code |
10 | 10 | ||
11 | Optional properties: | 11 | Optional properties: |
12 | Properties for the number of rows and columns are optional because some | ||
13 | drivers will use fixed values for these. | ||
14 | - keypad,num-rows: Number of row lines connected to the keypad controller. | ||
15 | - keypad,num-columns: Number of column lines connected to the keypad | ||
16 | controller. | ||
17 | |||
12 | Some users of this binding might choose to specify secondary keymaps for | 18 | Some users of this binding might choose to specify secondary keymaps for |
13 | cases where there is a modifier key such as a Fn key. Proposed names | 19 | cases where there is a modifier key such as a Fn key. Proposed names |
14 | for said properties are "linux,fn-keymap" or with another descriptive | 20 | for said properties are "linux,fn-keymap" or with another descriptive |
@@ -17,3 +23,5 @@ word for the modifier other from "Fn". | |||
17 | Example: | 23 | Example: |
18 | linux,keymap = < 0x00030012 | 24 | linux,keymap = < 0x00030012 |
19 | 0x0102003a >; | 25 | 0x0102003a >; |
26 | keypad,num-rows = <2>; | ||
27 | keypad,num-columns = <8>; | ||
diff --git a/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt b/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt index 72683be6de35..2995fae7ee47 100644 --- a/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt +++ b/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt | |||
@@ -1,7 +1,18 @@ | |||
1 | * Tegra keyboard controller | 1 | * Tegra keyboard controller |
2 | The key controller has maximum 24 pins to make matrix keypad. Any pin | ||
3 | can be configured as row or column. The maximum column pin can be 8 | ||
4 | and maximum row pins can be 16 for Tegra20/Tegra30. | ||
2 | 5 | ||
3 | Required properties: | 6 | Required properties: |
4 | - compatible: "nvidia,tegra20-kbc" | 7 | - compatible: "nvidia,tegra20-kbc" |
8 | - reg: Register base address of KBC. | ||
9 | - interrupts: Interrupt number for the KBC. | ||
10 | - nvidia,kbc-row-pins: The KBC pins which are configured as row. This is an | ||
11 | array of pin numbers which is used as rows. | ||
12 | - nvidia,kbc-col-pins: The KBC pins which are configured as column. This is an | ||
13 | array of pin numbers which is used as column. | ||
14 | - linux,keymap: The keymap for keys as described in the binding document | ||
15 | devicetree/bindings/input/matrix-keymap.txt. | ||
5 | 16 | ||
6 | Optional properties, in addition to those specified by the shared | 17 | Optional properties, in addition to those specified by the shared |
7 | matrix-keyboard bindings: | 18 | matrix-keyboard bindings: |
@@ -19,5 +30,16 @@ Example: | |||
19 | keyboard: keyboard { | 30 | keyboard: keyboard { |
20 | compatible = "nvidia,tegra20-kbc"; | 31 | compatible = "nvidia,tegra20-kbc"; |
21 | reg = <0x7000e200 0x100>; | 32 | reg = <0x7000e200 0x100>; |
33 | interrupts = <0 85 0x04>; | ||
22 | nvidia,ghost-filter; | 34 | nvidia,ghost-filter; |
35 | nvidia,debounce-delay-ms = <640>; | ||
36 | nvidia,kbc-row-pins = <0 1 2>; /* pin 0, 1, 2 as rows */ | ||
37 | nvidia,kbc-col-pins = <11 12 13>; /* pin 11, 12, 13 as columns */ | ||
38 | linux,keymap = <0x00000074 | ||
39 | 0x00010067 | ||
40 | 0x00020066 | ||
41 | 0x01010068 | ||
42 | 0x02000069 | ||
43 | 0x02010070 | ||
44 | 0x02020071>; | ||
23 | }; | 45 | }; |
diff --git a/Documentation/devicetree/bindings/input/omap-keypad.txt b/Documentation/devicetree/bindings/input/omap-keypad.txt index f2fa5e10493d..34ed1c60ff95 100644 --- a/Documentation/devicetree/bindings/input/omap-keypad.txt +++ b/Documentation/devicetree/bindings/input/omap-keypad.txt | |||
@@ -6,19 +6,16 @@ A key can be placed at each intersection of a unique row and a unique column. | |||
6 | The keypad controller can sense a key-press and key-release and report the | 6 | The keypad controller can sense a key-press and key-release and report the |
7 | event using a interrupt to the cpu. | 7 | event using a interrupt to the cpu. |
8 | 8 | ||
9 | This binding is based on the matrix-keymap binding with the following | ||
10 | changes: | ||
11 | |||
12 | keypad,num-rows and keypad,num-columns are required. | ||
13 | |||
9 | Required SoC Specific Properties: | 14 | Required SoC Specific Properties: |
10 | - compatible: should be one of the following | 15 | - compatible: should be one of the following |
11 | - "ti,omap4-keypad": For controllers compatible with omap4 keypad | 16 | - "ti,omap4-keypad": For controllers compatible with omap4 keypad |
12 | controller. | 17 | controller. |
13 | 18 | ||
14 | Required Board Specific Properties, in addition to those specified by | ||
15 | the shared matrix-keyboard bindings: | ||
16 | - keypad,num-rows: Number of row lines connected to the keypad | ||
17 | controller. | ||
18 | |||
19 | - keypad,num-columns: Number of column lines connected to the | ||
20 | keypad controller. | ||
21 | |||
22 | Optional Properties specific to linux: | 19 | Optional Properties specific to linux: |
23 | - linux,keypad-no-autorepeat: do no enable autorepeat feature. | 20 | - linux,keypad-no-autorepeat: do no enable autorepeat feature. |
24 | 21 | ||
diff --git a/Documentation/devicetree/bindings/input/tca8418_keypad.txt b/Documentation/devicetree/bindings/input/tca8418_keypad.txt index 2a1538f0053f..255185009167 100644 --- a/Documentation/devicetree/bindings/input/tca8418_keypad.txt +++ b/Documentation/devicetree/bindings/input/tca8418_keypad.txt | |||
@@ -1,8 +1,10 @@ | |||
1 | This binding is based on the matrix-keymap binding with the following | ||
2 | changes: | ||
3 | |||
4 | keypad,num-rows and keypad,num-columns are required. | ||
1 | 5 | ||
2 | Required properties: | 6 | Required properties: |
3 | - compatible: "ti,tca8418" | 7 | - compatible: "ti,tca8418" |
4 | - reg: the I2C address | 8 | - reg: the I2C address |
5 | - interrupts: IRQ line number, should trigger on falling edge | 9 | - interrupts: IRQ line number, should trigger on falling edge |
6 | - keypad,num-rows: The number of rows | ||
7 | - keypad,num-columns: The number of columns | ||
8 | - linux,keymap: Keys definitions, see keypad-matrix. | 10 | - linux,keymap: Keys definitions, see keypad-matrix. |
diff --git a/Documentation/devicetree/bindings/gpio/leds-ns2.txt b/Documentation/devicetree/bindings/leds/leds-ns2.txt index aef3aca34d2d..aef3aca34d2d 100644 --- a/Documentation/devicetree/bindings/gpio/leds-ns2.txt +++ b/Documentation/devicetree/bindings/leds/leds-ns2.txt | |||
diff --git a/Documentation/devicetree/bindings/leds/leds-pwm.txt b/Documentation/devicetree/bindings/leds/leds-pwm.txt new file mode 100644 index 000000000000..7297107cf832 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/leds-pwm.txt | |||
@@ -0,0 +1,48 @@ | |||
1 | LED connected to PWM | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : should be "pwm-leds". | ||
5 | |||
6 | Each LED is represented as a sub-node of the pwm-leds device. Each | ||
7 | node's name represents the name of the corresponding LED. | ||
8 | |||
9 | LED sub-node properties: | ||
10 | - pwms : PWM property to point to the PWM device (phandle)/port (id) and to | ||
11 | specify the period time to be used: <&phandle id period_ns>; | ||
12 | - pwm-names : (optional) Name to be used by the PWM subsystem for the PWM device | ||
13 | For the pwms and pwm-names property please refer to: | ||
14 | Documentation/devicetree/bindings/pwm/pwm.txt | ||
15 | - max-brightness : Maximum brightness possible for the LED | ||
16 | - label : (optional) | ||
17 | see Documentation/devicetree/bindings/leds/common.txt | ||
18 | - linux,default-trigger : (optional) | ||
19 | see Documentation/devicetree/bindings/leds/common.txt | ||
20 | |||
21 | Example: | ||
22 | |||
23 | twl_pwm: pwm { | ||
24 | /* provides two PWMs (id 0, 1 for PWM1 and PWM2) */ | ||
25 | compatible = "ti,twl6030-pwm"; | ||
26 | #pwm-cells = <2>; | ||
27 | }; | ||
28 | |||
29 | twl_pwmled: pwmled { | ||
30 | /* provides one PWM (id 0 for Charing indicator LED) */ | ||
31 | compatible = "ti,twl6030-pwmled"; | ||
32 | #pwm-cells = <2>; | ||
33 | }; | ||
34 | |||
35 | pwmleds { | ||
36 | compatible = "pwm-leds"; | ||
37 | kpad { | ||
38 | label = "omap4::keypad"; | ||
39 | pwms = <&twl_pwm 0 7812500>; | ||
40 | max-brightness = <127>; | ||
41 | }; | ||
42 | |||
43 | charging { | ||
44 | label = "omap4:green:chrg"; | ||
45 | pwms = <&twl_pwmled 0 7812500>; | ||
46 | max-brightness = <255>; | ||
47 | }; | ||
48 | }; | ||
diff --git a/Documentation/devicetree/bindings/leds/tca6507.txt b/Documentation/devicetree/bindings/leds/tca6507.txt new file mode 100644 index 000000000000..2b6693b972fb --- /dev/null +++ b/Documentation/devicetree/bindings/leds/tca6507.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | LEDs conected to tca6507 | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : should be : "ti,tca6507". | ||
5 | |||
6 | Each led is represented as a sub-node of the ti,tca6507 device. | ||
7 | |||
8 | LED sub-node properties: | ||
9 | - label : (optional) see Documentation/devicetree/bindings/leds/common.txt | ||
10 | - reg : number of LED line (could be from 0 to 6) | ||
11 | - linux,default-trigger : (optional) | ||
12 | see Documentation/devicetree/bindings/leds/common.txt | ||
13 | |||
14 | Examples: | ||
15 | |||
16 | tca6507@45 { | ||
17 | compatible = "ti,tca6507"; | ||
18 | #address-cells = <1>; | ||
19 | #size-cells = <0>; | ||
20 | reg = <0x45>; | ||
21 | |||
22 | led0: red-aux@0 { | ||
23 | label = "red:aux"; | ||
24 | reg = <0x0>; | ||
25 | }; | ||
26 | |||
27 | led1: green-aux@1 { | ||
28 | label = "green:aux"; | ||
29 | reg = <0x5>; | ||
30 | linux,default-trigger = "default-on"; | ||
31 | }; | ||
32 | }; | ||
33 | |||
diff --git a/Documentation/devicetree/bindings/media/gpio-ir-receiver.txt b/Documentation/devicetree/bindings/media/gpio-ir-receiver.txt new file mode 100644 index 000000000000..56e726ef4bf2 --- /dev/null +++ b/Documentation/devicetree/bindings/media/gpio-ir-receiver.txt | |||
@@ -0,0 +1,16 @@ | |||
1 | Device-Tree bindings for GPIO IR receiver | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should be "gpio-ir-receiver". | ||
5 | - gpios: specifies GPIO used for IR signal reception. | ||
6 | |||
7 | Optional properties: | ||
8 | - linux,rc-map-name: Linux specific remote control map name. | ||
9 | |||
10 | Example node: | ||
11 | |||
12 | ir: ir-receiver { | ||
13 | compatible = "gpio-ir-receiver"; | ||
14 | gpios = <&gpio0 19 1>; | ||
15 | linux,rc-map-name = "rc-rc6-mce"; | ||
16 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/max8925.txt b/Documentation/devicetree/bindings/mfd/max8925.txt new file mode 100644 index 000000000000..4f0dc6638e5e --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/max8925.txt | |||
@@ -0,0 +1,64 @@ | |||
1 | * Maxim max8925 Power Management IC | ||
2 | |||
3 | Required parent device properties: | ||
4 | - compatible : "maxim,max8925" | ||
5 | - reg : the I2C slave address for the max8925 chip | ||
6 | - interrupts : IRQ line for the max8925 chip | ||
7 | - interrupt-controller: describes the max8925 as an interrupt | ||
8 | controller (has its own domain) | ||
9 | - #interrupt-cells : should be 1. | ||
10 | - The cell is the max8925 local IRQ number | ||
11 | |||
12 | Optional parent device properties: | ||
13 | - maxim,tsc-irq: there are 2 IRQ lines for max8925, one is indicated in | ||
14 | interrupts property, the other is indicated here. | ||
15 | |||
16 | max8925 consists of a large and varied group of sub-devices: | ||
17 | |||
18 | Device Supply Names Description | ||
19 | ------ ------------ ----------- | ||
20 | max8925-onkey : : On key | ||
21 | max8925-rtc : : RTC | ||
22 | max8925-regulator : : Regulators | ||
23 | max8925-backlight : : Backlight | ||
24 | max8925-touch : : Touchscreen | ||
25 | max8925-power : : Charger | ||
26 | |||
27 | Example: | ||
28 | |||
29 | pmic: max8925@3c { | ||
30 | compatible = "maxim,max8925"; | ||
31 | reg = <0x3c>; | ||
32 | interrupts = <1>; | ||
33 | interrupt-parent = <&intcmux4>; | ||
34 | interrupt-controller; | ||
35 | #interrupt-cells = <1>; | ||
36 | maxim,tsc-irq = <0>; | ||
37 | |||
38 | regulators { | ||
39 | SDV1 { | ||
40 | regulator-min-microvolt = <637500>; | ||
41 | regulator-max-microvolt = <1425000>; | ||
42 | regulator-boot-on; | ||
43 | regulator-always-on; | ||
44 | }; | ||
45 | |||
46 | LDO1 { | ||
47 | regulator-min-microvolt = <750000>; | ||
48 | regulator-max-microvolt = <3900000>; | ||
49 | regulator-boot-on; | ||
50 | regulator-always-on; | ||
51 | }; | ||
52 | |||
53 | }; | ||
54 | backlight { | ||
55 | maxim,max8925-dual-string = <0>; | ||
56 | }; | ||
57 | charger { | ||
58 | batt-detect = <0>; | ||
59 | topoff-threshold = <1>; | ||
60 | fast-charge = <7>; | ||
61 | no-temp-support = <0>; | ||
62 | no-insert-detect = <0>; | ||
63 | }; | ||
64 | }; | ||
diff --git a/Documentation/devicetree/bindings/mfd/tps6507x.txt b/Documentation/devicetree/bindings/mfd/tps6507x.txt new file mode 100755 index 000000000000..8fffa3c5ed40 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/tps6507x.txt | |||
@@ -0,0 +1,91 @@ | |||
1 | TPS6507x Power Management Integrated Circuit | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "ti,tps6507x" | ||
5 | - reg: I2C slave address | ||
6 | - regulators: This is the list of child nodes that specify the regulator | ||
7 | initialization data for defined regulators. Not all regulators for the | ||
8 | given device need to be present. The definition for each of these nodes | ||
9 | is defined using the standard binding for regulators found at | ||
10 | Documentation/devicetree/bindings/regulator/regulator.txt. | ||
11 | The regulator is matched with the regulator-compatible. | ||
12 | |||
13 | The valid regulator-compatible values are: | ||
14 | tps6507x: vdcdc1, vdcdc2, vdcdc3, vldo1, vldo2 | ||
15 | - xxx-supply: Input voltage supply regulator. | ||
16 | These entries are required if regulators are enabled for a device. | ||
17 | Missing of these properties can cause the regulator registration | ||
18 | fails. | ||
19 | If some of input supply is powered through battery or always-on | ||
20 | supply then also it is require to have these parameters with proper | ||
21 | node handle of always on power supply. | ||
22 | tps6507x: | ||
23 | vindcdc1_2-supply: VDCDC1 and VDCDC2 input. | ||
24 | vindcdc3-supply : VDCDC3 input. | ||
25 | vldo1_2-supply : VLDO1 and VLDO2 input. | ||
26 | |||
27 | Regulator Optional properties: | ||
28 | - defdcdc_default: It's property of DCDC2 and DCDC3 regulators. | ||
29 | 0: If defdcdc pin of DCDC2/DCDC3 is pulled to GND. | ||
30 | 1: If defdcdc pin of DCDC2/DCDC3 is driven HIGH. | ||
31 | If this property is not defined, it defaults to 0 (not enabled). | ||
32 | |||
33 | Example: | ||
34 | |||
35 | pmu: tps6507x@48 { | ||
36 | compatible = "ti,tps6507x"; | ||
37 | reg = <0x48>; | ||
38 | |||
39 | vindcdc1_2-supply = <&vbat>; | ||
40 | vindcdc3-supply = <...>; | ||
41 | vinldo1_2-supply = <...>; | ||
42 | |||
43 | regulators { | ||
44 | #address-cells = <1>; | ||
45 | #size-cells = <0>; | ||
46 | |||
47 | vdcdc1_reg: regulator@0 { | ||
48 | regulator-compatible = "VDCDC1"; | ||
49 | reg = <0>; | ||
50 | regulator-min-microvolt = <3150000>; | ||
51 | regulator-max-microvolt = <3450000>; | ||
52 | regulator-always-on; | ||
53 | regulator-boot-on; | ||
54 | }; | ||
55 | vdcdc2_reg: regulator@1 { | ||
56 | regulator-compatible = "VDCDC2"; | ||
57 | reg = <1>; | ||
58 | regulator-min-microvolt = <1710000>; | ||
59 | regulator-max-microvolt = <3450000>; | ||
60 | regulator-always-on; | ||
61 | regulator-boot-on; | ||
62 | defdcdc_default = <1>; | ||
63 | }; | ||
64 | vdcdc3_reg: regulator@2 { | ||
65 | regulator-compatible = "VDCDC3"; | ||
66 | reg = <2>; | ||
67 | regulator-min-microvolt = <950000> | ||
68 | regulator-max-microvolt = <1350000>; | ||
69 | regulator-always-on; | ||
70 | regulator-boot-on; | ||
71 | defdcdc_default = <1>; | ||
72 | }; | ||
73 | ldo1_reg: regulator@3 { | ||
74 | regulator-compatible = "LDO1"; | ||
75 | reg = <3>; | ||
76 | regulator-min-microvolt = <1710000>; | ||
77 | regulator-max-microvolt = <1890000>; | ||
78 | regulator-always-on; | ||
79 | regulator-boot-on; | ||
80 | }; | ||
81 | ldo2_reg: regulator@4 { | ||
82 | regulator-compatible = "LDO2"; | ||
83 | reg = <4>; | ||
84 | regulator-min-microvolt = <1140000>; | ||
85 | regulator-max-microvolt = <1320000>; | ||
86 | regulator-always-on; | ||
87 | regulator-boot-on; | ||
88 | }; | ||
89 | }; | ||
90 | |||
91 | }; | ||
diff --git a/Documentation/devicetree/bindings/mips/cavium/dma-engine.txt b/Documentation/devicetree/bindings/mips/cavium/dma-engine.txt index cb4291e3b1d1..a5bdff400002 100644 --- a/Documentation/devicetree/bindings/mips/cavium/dma-engine.txt +++ b/Documentation/devicetree/bindings/mips/cavium/dma-engine.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | * DMA Engine. | 1 | * DMA Engine. |
2 | 2 | ||
3 | The Octeon DMA Engine transfers between the Boot Bus and main memory. | 3 | The Octeon DMA Engine transfers between the Boot Bus and main memory. |
4 | The DMA Engine will be refered to by phandle by any device that is | 4 | The DMA Engine will be referred to by phandle by any device that is |
5 | connected to it. | 5 | connected to it. |
6 | 6 | ||
7 | Properties: | 7 | Properties: |
diff --git a/Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhci.txt b/Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhci.txt new file mode 100644 index 000000000000..59476fbdbfa1 --- /dev/null +++ b/Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhci.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | Broadcom BCM2835 SDHCI controller | ||
2 | |||
3 | This file documents differences between the core properties described | ||
4 | by mmc.txt and the properties that represent the BCM2835 controller. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible : Should be "brcm,bcm2835-sdhci". | ||
8 | - clocks : The clock feeding the SDHCI controller. | ||
9 | |||
10 | Example: | ||
11 | |||
12 | sdhci: sdhci { | ||
13 | compatible = "brcm,bcm2835-sdhci"; | ||
14 | reg = <0x7e300000 0x100>; | ||
15 | interrupts = <2 30>; | ||
16 | clocks = <&clk_mmc>; | ||
17 | bus-width = <4>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt index 792768953330..6d1c0988cfc7 100644 --- a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt +++ b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt | |||
@@ -4,18 +4,18 @@ | |||
4 | The Synopsis designware mobile storage host controller is used to interface | 4 | The Synopsis designware mobile storage host controller is used to interface |
5 | a SoC with storage medium such as eMMC or SD/MMC cards. This file documents | 5 | a SoC with storage medium such as eMMC or SD/MMC cards. This file documents |
6 | differences between the core Synopsis dw mshc controller properties described | 6 | differences between the core Synopsis dw mshc controller properties described |
7 | by synposis-dw-mshc.txt and the properties used by the Samsung Exynos specific | 7 | by synopsis-dw-mshc.txt and the properties used by the Samsung Exynos specific |
8 | extensions to the Synopsis Designware Mobile Storage Host Controller. | 8 | extensions to the Synopsis Designware Mobile Storage Host Controller. |
9 | 9 | ||
10 | Required Properties: | 10 | Required Properties: |
11 | 11 | ||
12 | * compatible: should be | 12 | * compatible: should be |
13 | - "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 | 13 | - "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 |
14 | specific extentions. | 14 | specific extensions. |
15 | - "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 | 15 | - "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 |
16 | specific extentions. | 16 | specific extensions. |
17 | - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 | 17 | - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 |
18 | specific extentions. | 18 | specific extensions. |
19 | 19 | ||
20 | * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface | 20 | * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface |
21 | unit (ciu) clock. This property is applicable only for Exynos5 SoC's and | 21 | unit (ciu) clock. This property is applicable only for Exynos5 SoC's and |
diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt b/Documentation/devicetree/bindings/mmc/mmc.txt index a591c6741d75..85aada2263d5 100644 --- a/Documentation/devicetree/bindings/mmc/mmc.txt +++ b/Documentation/devicetree/bindings/mmc/mmc.txt | |||
@@ -6,23 +6,45 @@ Interpreted by the OF core: | |||
6 | - reg: Registers location and length. | 6 | - reg: Registers location and length. |
7 | - interrupts: Interrupts used by the MMC controller. | 7 | - interrupts: Interrupts used by the MMC controller. |
8 | 8 | ||
9 | Required properties: | ||
10 | - bus-width: Number of data lines, can be <1>, <4>, or <8> | ||
11 | |||
12 | Card detection: | 9 | Card detection: |
13 | If no property below is supplied, standard SDHCI card detect is used. | 10 | If no property below is supplied, host native card detect is used. |
14 | Only one of the properties in this section should be supplied: | 11 | Only one of the properties in this section should be supplied: |
15 | - broken-cd: There is no card detection available; polling must be used. | 12 | - broken-cd: There is no card detection available; polling must be used. |
16 | - cd-gpios: Specify GPIOs for card detection, see gpio binding | 13 | - cd-gpios: Specify GPIOs for card detection, see gpio binding |
17 | - non-removable: non-removable slot (like eMMC); assume always present. | 14 | - non-removable: non-removable slot (like eMMC); assume always present. |
18 | 15 | ||
19 | Optional properties: | 16 | Optional properties: |
17 | - bus-width: Number of data lines, can be <1>, <4>, or <8>. The default | ||
18 | will be <1> if the property is absent. | ||
20 | - wp-gpios: Specify GPIOs for write protection, see gpio binding | 19 | - wp-gpios: Specify GPIOs for write protection, see gpio binding |
21 | - cd-inverted: when present, polarity on the cd gpio line is inverted | 20 | - cd-inverted: when present, polarity on the CD line is inverted. See the note |
22 | - wp-inverted: when present, polarity on the wp gpio line is inverted | 21 | below for the case, when a GPIO is used for the CD line |
22 | - wp-inverted: when present, polarity on the WP line is inverted. See the note | ||
23 | below for the case, when a GPIO is used for the WP line | ||
23 | - max-frequency: maximum operating clock frequency | 24 | - max-frequency: maximum operating clock frequency |
24 | - no-1-8-v: when present, denotes that 1.8v card voltage is not supported on | 25 | - no-1-8-v: when present, denotes that 1.8v card voltage is not supported on |
25 | this system, even if the controller claims it is. | 26 | this system, even if the controller claims it is. |
27 | - cap-sd-highspeed: SD high-speed timing is supported | ||
28 | - cap-mmc-highspeed: MMC high-speed timing is supported | ||
29 | - cap-power-off-card: powering off the card is safe | ||
30 | - cap-sdio-irq: enable SDIO IRQ signalling on this interface | ||
31 | |||
32 | *NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line | ||
33 | polarity properties, we have to fix the meaning of the "normal" and "inverted" | ||
34 | line levels. We choose to follow the SDHCI standard, which specifies both those | ||
35 | lines as "active low." Therefore, using the "cd-inverted" property means, that | ||
36 | the CD line is active high, i.e. it is high, when a card is inserted. Similar | ||
37 | logic applies to the "wp-inverted" property. | ||
38 | |||
39 | CD and WP lines can be implemented on the hardware in one of two ways: as GPIOs, | ||
40 | specified in cd-gpios and wp-gpios properties, or as dedicated pins. Polarity of | ||
41 | dedicated pins can be specified, using *-inverted properties. GPIO polarity can | ||
42 | also be specified using the OF_GPIO_ACTIVE_LOW flag. This creates an ambiguity | ||
43 | in the latter case. We choose to use the XOR logic for GPIO CD and WP lines. | ||
44 | This means, the two properties are "superimposed," for example leaving the | ||
45 | OF_GPIO_ACTIVE_LOW flag clear and specifying the respective *-inverted | ||
46 | property results in a double-inversion and actually means the "normal" line | ||
47 | polarity is in effect. | ||
26 | 48 | ||
27 | Optional SDIO properties: | 49 | Optional SDIO properties: |
28 | - keep-power-in-suspend: Preserves card power during a suspend/resume cycle | 50 | - keep-power-in-suspend: Preserves card power during a suspend/resume cycle |
diff --git a/Documentation/devicetree/bindings/mmc/orion-sdio.txt b/Documentation/devicetree/bindings/mmc/orion-sdio.txt new file mode 100644 index 000000000000..84f0ebd67a13 --- /dev/null +++ b/Documentation/devicetree/bindings/mmc/orion-sdio.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | * Marvell orion-sdio controller | ||
2 | |||
3 | This file documents differences between the core properties in mmc.txt | ||
4 | and the properties used by the orion-sdio driver. | ||
5 | |||
6 | - compatible: Should be "marvell,orion-sdio" | ||
7 | - clocks: reference to the clock of the SDIO interface | ||
8 | |||
9 | Example: | ||
10 | |||
11 | mvsdio@d00d4000 { | ||
12 | compatible = "marvell,orion-sdio"; | ||
13 | reg = <0xd00d4000 0x200>; | ||
14 | interrupts = <54>; | ||
15 | clocks = <&gateclk 17>; | ||
16 | status = "disabled"; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt b/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt index 97e9e315400d..3b3a1ee055ff 100644 --- a/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt +++ b/Documentation/devicetree/bindings/mmc/samsung-sdhci.txt | |||
@@ -55,5 +55,5 @@ Example: | |||
55 | }; | 55 | }; |
56 | 56 | ||
57 | Note: This example shows both SoC specific and board specific properties | 57 | Note: This example shows both SoC specific and board specific properties |
58 | in a single device node. The properties can be actually be seperated | 58 | in a single device node. The properties can be actually be separated |
59 | into SoC specific node and board specific node. | 59 | into SoC specific node and board specific node. |
diff --git a/Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt index 06cd32d08052..726fd2122a13 100644 --- a/Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt +++ b/Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt | |||
@@ -26,8 +26,16 @@ Required Properties: | |||
26 | * bus-width: as documented in mmc core bindings. | 26 | * bus-width: as documented in mmc core bindings. |
27 | 27 | ||
28 | * wp-gpios: specifies the write protect gpio line. The format of the | 28 | * wp-gpios: specifies the write protect gpio line. The format of the |
29 | gpio specifier depends on the gpio controller. If the write-protect | 29 | gpio specifier depends on the gpio controller. If a GPIO is not used |
30 | line is not available, this property is optional. | 30 | for write-protect, this property is optional. |
31 | |||
32 | * disable-wp: If the wp-gpios property isn't present then (by default) | ||
33 | we'd assume that the write protect is hooked up directly to the | ||
34 | controller's special purpose write protect line (accessible via | ||
35 | the WRTPRT register). However, it's possible that we simply don't | ||
36 | want write protect. In that case specify 'disable-wp'. | ||
37 | NOTE: This property is not required for slots known to always | ||
38 | connect to eMMC or SDIO cards. | ||
31 | 39 | ||
32 | Optional properties: | 40 | Optional properties: |
33 | 41 | ||
diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt new file mode 100644 index 000000000000..df204e18e030 --- /dev/null +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt | |||
@@ -0,0 +1,20 @@ | |||
1 | * Toshiba Mobile IO SD/MMC controller | ||
2 | |||
3 | The tmio-mmc driver doesn't probe its devices actively, instead its binding to | ||
4 | devices is managed by either MFD drivers or by the sh_mobile_sdhi platform | ||
5 | driver. Those drivers supply the tmio-mmc driver with platform data, that either | ||
6 | describe hardware capabilities, known to them, or are obtained by them from | ||
7 | their own platform data or from their DT information. In the latter case all | ||
8 | compulsory and any optional properties, common to all SD/MMC drivers, as | ||
9 | described in mmc.txt, can be used. Additionally the following tmio_mmc-specific | ||
10 | optional bindings can be used. | ||
11 | |||
12 | Optional properties: | ||
13 | - toshiba,mmc-wrprotect-disable: write-protect detection is unavailable | ||
14 | |||
15 | When used with Renesas SDHI hardware, the following compatibility strings | ||
16 | configure various model-specific properties: | ||
17 | |||
18 | "renesas,sh7372-sdhi": (default) compatible with SH7372 | ||
19 | "renesas,r8a7740-sdhi": compatible with R8A7740: certain MMC/SD commands have to | ||
20 | wait for the interface to become idle. | ||
diff --git a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt index e3ea32e7de3e..2240ac09f6ba 100644 --- a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt +++ b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | * FSMC NAND | 1 | * FSMC NAND |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : "st,spear600-fsmc-nand" | 4 | - compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand" |
5 | - reg : Address range of the mtd chip | 5 | - reg : Address range of the mtd chip |
6 | - reg-names: Should contain the reg names "fsmc_regs", "nand_data", "nand_addr" and "nand_cmd" | 6 | - reg-names: Should contain the reg names "fsmc_regs", "nand_data", "nand_addr" and "nand_cmd" |
7 | 7 | ||
diff --git a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt new file mode 100644 index 000000000000..e7f8d7ed47eb --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt | |||
@@ -0,0 +1,80 @@ | |||
1 | Device tree bindings for GPMC connected NANDs | ||
2 | |||
3 | GPMC connected NAND (found on OMAP boards) are represented as child nodes of | ||
4 | the GPMC controller with a name of "nand". | ||
5 | |||
6 | All timing relevant properties as well as generic gpmc child properties are | ||
7 | explained in a separate documents - please refer to | ||
8 | Documentation/devicetree/bindings/bus/ti-gpmc.txt | ||
9 | |||
10 | For NAND specific properties such as ECC modes or bus width, please refer to | ||
11 | Documentation/devicetree/bindings/mtd/nand.txt | ||
12 | |||
13 | |||
14 | Required properties: | ||
15 | |||
16 | - reg: The CS line the peripheral is connected to | ||
17 | |||
18 | Optional properties: | ||
19 | |||
20 | - nand-bus-width: Set this numeric value to 16 if the hardware | ||
21 | is wired that way. If not specified, a bus | ||
22 | width of 8 is assumed. | ||
23 | |||
24 | - ti,nand-ecc-opt: A string setting the ECC layout to use. One of: | ||
25 | |||
26 | "sw" Software method (default) | ||
27 | "hw" Hardware method | ||
28 | "hw-romcode" gpmc hamming mode method & romcode layout | ||
29 | "bch4" 4-bit BCH ecc code | ||
30 | "bch8" 8-bit BCH ecc code | ||
31 | |||
32 | - elm_id: Specifies elm device node. This is required to support BCH | ||
33 | error correction using ELM module. | ||
34 | |||
35 | For inline partiton table parsing (optional): | ||
36 | |||
37 | - #address-cells: should be set to 1 | ||
38 | - #size-cells: should be set to 1 | ||
39 | |||
40 | Example for an AM33xx board: | ||
41 | |||
42 | gpmc: gpmc@50000000 { | ||
43 | compatible = "ti,am3352-gpmc"; | ||
44 | ti,hwmods = "gpmc"; | ||
45 | reg = <0x50000000 0x1000000>; | ||
46 | interrupts = <100>; | ||
47 | gpmc,num-cs = <8>; | ||
48 | gpmc,num-waitpins = <2>; | ||
49 | #address-cells = <2>; | ||
50 | #size-cells = <1>; | ||
51 | ranges = <0 0 0x08000000 0x2000>; /* CS0: NAND */ | ||
52 | elm_id = <&elm>; | ||
53 | |||
54 | nand@0,0 { | ||
55 | reg = <0 0 0>; /* CS0, offset 0 */ | ||
56 | nand-bus-width = <16>; | ||
57 | ti,nand-ecc-opt = "bch8"; | ||
58 | |||
59 | gpmc,sync-clk = <0>; | ||
60 | gpmc,cs-on = <0>; | ||
61 | gpmc,cs-rd-off = <44>; | ||
62 | gpmc,cs-wr-off = <44>; | ||
63 | gpmc,adv-on = <6>; | ||
64 | gpmc,adv-rd-off = <34>; | ||
65 | gpmc,adv-wr-off = <44>; | ||
66 | gpmc,we-off = <40>; | ||
67 | gpmc,oe-off = <54>; | ||
68 | gpmc,access = <64>; | ||
69 | gpmc,rd-cycle = <82>; | ||
70 | gpmc,wr-cycle = <82>; | ||
71 | gpmc,wr-access = <40>; | ||
72 | gpmc,wr-data-mux-bus = <0>; | ||
73 | |||
74 | #address-cells = <1>; | ||
75 | #size-cells = <1>; | ||
76 | |||
77 | /* partitions go here */ | ||
78 | }; | ||
79 | }; | ||
80 | |||
diff --git a/Documentation/devicetree/bindings/mtd/gpmc-onenand.txt b/Documentation/devicetree/bindings/mtd/gpmc-onenand.txt new file mode 100644 index 000000000000..deec9da224a2 --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/gpmc-onenand.txt | |||
@@ -0,0 +1,43 @@ | |||
1 | Device tree bindings for GPMC connected OneNANDs | ||
2 | |||
3 | GPMC connected OneNAND (found on OMAP boards) are represented as child nodes of | ||
4 | the GPMC controller with a name of "onenand". | ||
5 | |||
6 | All timing relevant properties as well as generic gpmc child properties are | ||
7 | explained in a separate documents - please refer to | ||
8 | Documentation/devicetree/bindings/bus/ti-gpmc.txt | ||
9 | |||
10 | Required properties: | ||
11 | |||
12 | - reg: The CS line the peripheral is connected to | ||
13 | |||
14 | Optional properties: | ||
15 | |||
16 | - dma-channel: DMA Channel index | ||
17 | |||
18 | For inline partiton table parsing (optional): | ||
19 | |||
20 | - #address-cells: should be set to 1 | ||
21 | - #size-cells: should be set to 1 | ||
22 | |||
23 | Example for an OMAP3430 board: | ||
24 | |||
25 | gpmc: gpmc@6e000000 { | ||
26 | compatible = "ti,omap3430-gpmc"; | ||
27 | ti,hwmods = "gpmc"; | ||
28 | reg = <0x6e000000 0x1000000>; | ||
29 | interrupts = <20>; | ||
30 | gpmc,num-cs = <8>; | ||
31 | gpmc,num-waitpins = <4>; | ||
32 | #address-cells = <2>; | ||
33 | #size-cells = <1>; | ||
34 | |||
35 | onenand@0 { | ||
36 | reg = <0 0 0>; /* CS0, offset 0 */ | ||
37 | |||
38 | #address-cells = <1>; | ||
39 | #size-cells = <1>; | ||
40 | |||
41 | /* partitions go here */ | ||
42 | }; | ||
43 | }; | ||
diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt index 6ddd0286a9b7..ecfdf756d10f 100644 --- a/Documentation/devicetree/bindings/net/cpsw.txt +++ b/Documentation/devicetree/bindings/net/cpsw.txt | |||
@@ -24,6 +24,8 @@ Required properties: | |||
24 | Optional properties: | 24 | Optional properties: |
25 | - ti,hwmods : Must be "cpgmac0" | 25 | - ti,hwmods : Must be "cpgmac0" |
26 | - no_bd_ram : Must be 0 or 1 | 26 | - no_bd_ram : Must be 0 or 1 |
27 | - dual_emac : Specifies Switch to act as Dual EMAC | ||
28 | - dual_emac_res_vlan : Specifies VID to be used to segregate the ports | ||
27 | 29 | ||
28 | Note: "ti,hwmods" field is used to fetch the base address and irq | 30 | Note: "ti,hwmods" field is used to fetch the base address and irq |
29 | resources from TI, omap hwmod data base during device registration. | 31 | resources from TI, omap hwmod data base during device registration. |
diff --git a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt new file mode 100644 index 000000000000..dff0e5f995e2 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt | |||
@@ -0,0 +1,60 @@ | |||
1 | * Allwinner A1X Pin Controller | ||
2 | |||
3 | The pins controlled by sunXi pin controller are organized in banks, | ||
4 | each bank has 32 pins. Each pin has 7 multiplexing functions, with | ||
5 | the first two functions being GPIO in and out. The configuration on | ||
6 | the pins includes drive strength and pull-up. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: "allwinner,<soc>-pinctrl". Supported SoCs for now are: | ||
10 | sun5i-a13. | ||
11 | - reg: Should contain the register physical address and length for the | ||
12 | pin controller. | ||
13 | |||
14 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
15 | common pinctrl bindings used by client devices. | ||
16 | |||
17 | A pinctrl node should contain at least one subnodes representing the | ||
18 | pinctrl groups available on the machine. Each subnode will list the | ||
19 | pins it needs, and how they should be configured, with regard to muxer | ||
20 | configuration, drive strength and pullups. If one of these options is | ||
21 | not set, its actual value will be unspecified. | ||
22 | |||
23 | Required subnode-properties: | ||
24 | |||
25 | - allwinner,pins: List of strings containing the pin name. | ||
26 | - allwinner,function: Function to mux the pins listed above to. | ||
27 | |||
28 | Optional subnode-properties: | ||
29 | - allwinner,drive: Integer. Represents the current sent to the pin | ||
30 | 0: 10 mA | ||
31 | 1: 20 mA | ||
32 | 2: 30 mA | ||
33 | 3: 40 mA | ||
34 | - allwinner,pull: Integer. | ||
35 | 0: No resistor | ||
36 | 1: Pull-up resistor | ||
37 | 2: Pull-down resistor | ||
38 | |||
39 | Examples: | ||
40 | |||
41 | pinctrl@01c20800 { | ||
42 | compatible = "allwinner,sun5i-a13-pinctrl"; | ||
43 | reg = <0x01c20800 0x400>; | ||
44 | #address-cells = <1>; | ||
45 | #size-cells = <0>; | ||
46 | |||
47 | uart1_pins_a: uart1@0 { | ||
48 | allwinner,pins = "PE10", "PE11"; | ||
49 | allwinner,function = "uart1"; | ||
50 | allwinner,drive = <0>; | ||
51 | allwinner,pull = <0>; | ||
52 | }; | ||
53 | |||
54 | uart1_pins_b: uart1@1 { | ||
55 | allwinner,pins = "PG3", "PG4"; | ||
56 | allwinner,function = "uart1"; | ||
57 | allwinner,drive = <0>; | ||
58 | allwinner,pull = <0>; | ||
59 | }; | ||
60 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt index 3a268127b054..bc50899e0c81 100644 --- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt | |||
@@ -81,7 +81,8 @@ PA31 TXD4 | |||
81 | Required properties for pin configuration node: | 81 | Required properties for pin configuration node: |
82 | - atmel,pins: 4 integers array, represents a group of pins mux and config | 82 | - atmel,pins: 4 integers array, represents a group of pins mux and config |
83 | setting. The format is atmel,pins = <PIN_BANK PIN_BANK_NUM PERIPH CONFIG>. | 83 | setting. The format is atmel,pins = <PIN_BANK PIN_BANK_NUM PERIPH CONFIG>. |
84 | The PERIPH 0 means gpio. | 84 | The PERIPH 0 means gpio, PERIPH 1 is periph A, PERIPH 2 is periph B... |
85 | PIN_BANK 0 is pioA, PIN_BANK 1 is pioB... | ||
85 | 86 | ||
86 | Bits used for CONFIG: | 87 | Bits used for CONFIG: |
87 | PULL_UP (1 << 0): indicate this pin need a pull up. | 88 | PULL_UP (1 << 0): indicate this pin need a pull up. |
@@ -126,7 +127,7 @@ pinctrl@fffff400 { | |||
126 | pinctrl_dbgu: dbgu-0 { | 127 | pinctrl_dbgu: dbgu-0 { |
127 | atmel,pins = | 128 | atmel,pins = |
128 | <1 14 0x1 0x0 /* PB14 periph A */ | 129 | <1 14 0x1 0x0 /* PB14 periph A */ |
129 | 1 15 0x1 0x1>; /* PB15 periph with pullup */ | 130 | 1 15 0x1 0x1>; /* PB15 periph A with pullup */ |
130 | }; | 131 | }; |
131 | }; | 132 | }; |
132 | }; | 133 | }; |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt new file mode 100644 index 000000000000..e204d009f16c --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt | |||
@@ -0,0 +1,120 @@ | |||
1 | NVIDIA Tegra114 pinmux controller | ||
2 | |||
3 | The Tegra114 pinctrl binding is very similar to the Tegra20 and Tegra30 | ||
4 | pinctrl binding, as described in nvidia,tegra20-pinmux.txt and | ||
5 | nvidia,tegra30-pinmux.txt. In fact, this document assumes that binding as | ||
6 | a baseline, and only documents the differences between the two bindings. | ||
7 | |||
8 | Required properties: | ||
9 | - compatible: "nvidia,tegra114-pinmux" | ||
10 | - reg: Should contain the register physical address and length for each of | ||
11 | the pad control and mux registers. The first bank of address must be the | ||
12 | driver strength pad control register address and second bank address must | ||
13 | be pinmux register address. | ||
14 | |||
15 | Tegra114 adds the following optional properties for pin configuration subnodes: | ||
16 | - nvidia,enable-input: Integer. Enable the pin's input path. 0: no, 1: yes. | ||
17 | - nvidia,open-drain: Integer. Enable open drain mode. 0: no, 1: yes. | ||
18 | - nvidia,lock: Integer. Lock the pin configuration against further changes | ||
19 | until reset. 0: no, 1: yes. | ||
20 | - nvidia,io-reset: Integer. Reset the IO path. 0: no, 1: yes. | ||
21 | - nvidia,rcv-sel: Integer. Select VIL/VIH receivers. 0: normal, 1: high. | ||
22 | - nvidia,drive-type: Integer. Valid range 0...3. | ||
23 | |||
24 | As with Tegra20 and Terga30, see the Tegra TRM for complete details regarding | ||
25 | which groups support which functionality. | ||
26 | |||
27 | Valid values for pin and group names are: | ||
28 | |||
29 | per-pin mux groups: | ||
30 | |||
31 | These all support nvidia,function, nvidia,tristate, nvidia,pull, | ||
32 | nvidia,enable-input, nvidia,lock. Some support nvidia,open-drain, | ||
33 | nvidia,io-reset and nvidia,rcv-sel. | ||
34 | |||
35 | ulpi_data0_po1, ulpi_data1_po2, ulpi_data2_po3, ulpi_data3_po4, | ||
36 | ulpi_data4_po5, ulpi_data5_po6, ulpi_data6_po7, ulpi_data7_po0, | ||
37 | ulpi_clk_py0, ulpi_dir_py1, ulpi_nxt_py2, ulpi_stp_py3, dap3_fs_pp0, | ||
38 | dap3_din_pp1, dap3_dout_pp2, dap3_sclk_pp3, pv0, pv1, sdmmc1_clk_pz0, | ||
39 | sdmmc1_cmd_pz1, sdmmc1_dat3_py4, sdmmc1_dat2_py5, sdmmc1_dat1_py6, | ||
40 | sdmmc1_dat0_py7, clk2_out_pw5, clk2_req_pcc5, hdmi_int_pn7, ddc_scl_pv4, | ||
41 | ddc_sda_pv5, uart2_rxd_pc3, uart2_txd_pc2, uart2_rts_n_pj6, | ||
42 | uart2_cts_n_pj5, uart3_txd_pw6, uart3_rxd_pw7, uart3_cts_n_pa1, | ||
43 | uart3_rts_n_pc0, pu0, pu1, pu2, pu3, pu4, pu5, pu6, gen1_i2c_sda_pc5, | ||
44 | gen1_i2c_scl_pc4, dap4_fs_pp4, dap4_din_pp5, dap4_dout_pp6, dap4_sclk_pp7, | ||
45 | clk3_out_pee0, clk3_req_pee1, gmi_wp_n_pc7, gmi_iordy_pi5, gmi_wait_pi7, | ||
46 | gmi_adv_n_pk0, gmi_clk_pk1, gmi_cs0_n_pj0, gmi_cs1_n_pj2, gmi_cs2_n_pk3, | ||
47 | gmi_cs3_n_pk4, gmi_cs4_n_pk2, gmi_cs6_n_pi3, gmi_cs7_n_pi6, gmi_ad0_pg0, | ||
48 | gmi_ad1_pg1, gmi_ad2_pg2, gmi_ad3_pg3, gmi_ad4_pg4, gmi_ad5_pg5, | ||
49 | gmi_ad6_pg6, gmi_ad7_pg7, gmi_ad8_ph0, gmi_ad9_ph1, gmi_ad10_ph2, | ||
50 | gmi_ad11_ph3, gmi_ad12_ph4, gmi_ad13_ph5, gmi_ad14_ph6, gmi_ad15_ph7, | ||
51 | gmi_a16_pj7, gmi_a17_pb0, gmi_a18_pb1, gmi_a19_pk7, gmi_wr_n_pi0, | ||
52 | gmi_oe_n_pi1, gmi_dqs_p_pj3, gmi_rst_n_pi4, gen2_i2c_scl_pt5, | ||
53 | gen2_i2c_sda_pt6, sdmmc4_clk_pcc4, sdmmc4_cmd_pt7, sdmmc4_dat0_paa0, | ||
54 | sdmmc4_dat1_paa1, sdmmc4_dat2_paa2, sdmmc4_dat3_paa3, sdmmc4_dat4_paa4, | ||
55 | sdmmc4_dat5_paa5, sdmmc4_dat6_paa6, sdmmc4_dat7_paa7, cam_mclk_pcc0, | ||
56 | pcc1, pbb0, cam_i2c_scl_pbb1, cam_i2c_sda_pbb2, pbb3, pbb4, pbb5, pbb6, | ||
57 | pbb7, pcc2, pwr_i2c_scl_pz6, pwr_i2c_sda_pz7, kb_row0_pr0, kb_row1_pr1, | ||
58 | kb_row2_pr2, kb_row3_pr3, kb_row4_pr4, kb_row5_pr5, kb_row6_pr6, | ||
59 | kb_row7_pr7, kb_row8_ps0, kb_row9_ps1, kb_row10_ps2, kb_col0_pq0, | ||
60 | kb_col1_pq1, kb_col2_pq2, kb_col3_pq3, kb_col4_pq4, kb_col5_pq5, | ||
61 | kb_col6_pq6, kb_col7_pq7, clk_32k_out_pa0, sys_clk_req_pz5, core_pwr_req, | ||
62 | cpu_pwr_req, pwr_int_n, owr, dap1_fs_pn0, dap1_din_pn1, dap1_dout_pn2, | ||
63 | dap1_sclk_pn3, clk1_req_pee2, clk1_out_pw4, spdif_in_pk6, spdif_out_pk5, | ||
64 | dap2_fs_pa2, dap2_din_pa4, dap2_dout_pa5, dap2_sclk_pa3, dvfs_pwm_px0, | ||
65 | gpio_x1_aud_px1, gpio_x3_aud_px3, dvfs_clk_px2, gpio_x4_aud_px4, | ||
66 | gpio_x5_aud_px5, gpio_x6_aud_px6, gpio_x7_aud_px7, sdmmc3_clk_pa6, | ||
67 | sdmmc3_cmd_pa7, sdmmc3_dat0_pb7, sdmmc3_dat1_pb6, sdmmc3_dat2_pb5, | ||
68 | sdmmc3_dat3_pb4, hdmi_cec_pee3, sdmmc1_wp_n_pv3, sdmmc3_cd_n_pv2, | ||
69 | gpio_w2_aud_pw2, gpio_w3_aud_pw3, usb_vbus_en0_pn4, usb_vbus_en1_pn5, | ||
70 | sdmmc3_clk_lb_in_pee5, sdmmc3_clk_lb_out_pee4, reset_out_n. | ||
71 | |||
72 | drive groups: | ||
73 | |||
74 | These all support nvidia,pull-down-strength, nvidia,pull-up-strength, | ||
75 | nvidia,slew-rate-rising, nvidia,slew-rate-falling. Most but not all | ||
76 | support nvidia,high-speed-mode, nvidia,schmitt, nvidia,low-power-mode | ||
77 | and nvidia,drive-type. | ||
78 | |||
79 | ao1, ao2, at1, at2, at3, at4, at5, cdev1, cdev2, dap1, dap2, dap3, dap4, | ||
80 | dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, | ||
81 | gmh, owr, uda. | ||
82 | |||
83 | Example: | ||
84 | |||
85 | pinmux: pinmux { | ||
86 | compatible = "nvidia,tegra114-pinmux"; | ||
87 | reg = <0x70000868 0x148 /* Pad control registers */ | ||
88 | 0x70003000 0x40c>; /* PinMux registers */ | ||
89 | }; | ||
90 | |||
91 | Example board file extract: | ||
92 | |||
93 | pinctrl { | ||
94 | sdmmc4_default: pinmux { | ||
95 | sdmmc4_clk_pcc4 { | ||
96 | nvidia,pins = "sdmmc4_clk_pcc4", | ||
97 | nvidia,function = "sdmmc4"; | ||
98 | nvidia,pull = <0>; | ||
99 | nvidia,tristate = <0>; | ||
100 | }; | ||
101 | sdmmc4_dat0_paa0 { | ||
102 | nvidia,pins = "sdmmc4_dat0_paa0", | ||
103 | "sdmmc4_dat1_paa1", | ||
104 | "sdmmc4_dat2_paa2", | ||
105 | "sdmmc4_dat3_paa3", | ||
106 | "sdmmc4_dat4_paa4", | ||
107 | "sdmmc4_dat5_paa5", | ||
108 | "sdmmc4_dat6_paa6", | ||
109 | "sdmmc4_dat7_paa7"; | ||
110 | nvidia,function = "sdmmc4"; | ||
111 | nvidia,pull = <2>; | ||
112 | nvidia,tristate = <0>; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
116 | |||
117 | sdhci@78000400 { | ||
118 | pinctrl-names = "default"; | ||
119 | pinctrl-0 = <&sdmmc4_default>; | ||
120 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt index e97a27856b21..4598a47aa0cd 100644 --- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt | |||
@@ -7,9 +7,9 @@ on-chip controllers onto these pads. | |||
7 | 7 | ||
8 | Required Properties: | 8 | Required Properties: |
9 | - compatible: should be one of the following. | 9 | - compatible: should be one of the following. |
10 | - "samsung,pinctrl-exynos4210": for Exynos4210 compatible pin-controller. | 10 | - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. |
11 | - "samsung,pinctrl-exynos4x12": for Exynos4x12 compatible pin-controller. | 11 | - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. |
12 | - "samsung,pinctrl-exynos5250": for Exynos5250 compatible pin-controller. | 12 | - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. |
13 | 13 | ||
14 | - reg: Base address of the pin controller hardware module and length of | 14 | - reg: Base address of the pin controller hardware module and length of |
15 | the address space it occupies. | 15 | the address space it occupies. |
@@ -142,7 +142,7 @@ the following format 'pinctrl{n}' where n is a unique number for the alias. | |||
142 | Example: A pin-controller node with pin banks: | 142 | Example: A pin-controller node with pin banks: |
143 | 143 | ||
144 | pinctrl_0: pinctrl@11400000 { | 144 | pinctrl_0: pinctrl@11400000 { |
145 | compatible = "samsung,pinctrl-exynos4210"; | 145 | compatible = "samsung,exynos4210-pinctrl"; |
146 | reg = <0x11400000 0x1000>; | 146 | reg = <0x11400000 0x1000>; |
147 | interrupts = <0 47 0>; | 147 | interrupts = <0 47 0>; |
148 | 148 | ||
@@ -185,7 +185,7 @@ Example: A pin-controller node with pin banks: | |||
185 | Example 1: A pin-controller node with pin groups. | 185 | Example 1: A pin-controller node with pin groups. |
186 | 186 | ||
187 | pinctrl_0: pinctrl@11400000 { | 187 | pinctrl_0: pinctrl@11400000 { |
188 | compatible = "samsung,pinctrl-exynos4210"; | 188 | compatible = "samsung,exynos4210-pinctrl"; |
189 | reg = <0x11400000 0x1000>; | 189 | reg = <0x11400000 0x1000>; |
190 | interrupts = <0 47 0>; | 190 | interrupts = <0 47 0>; |
191 | 191 | ||
@@ -230,7 +230,7 @@ Example 1: A pin-controller node with pin groups. | |||
230 | Example 2: A pin-controller node with external wakeup interrupt controller node. | 230 | Example 2: A pin-controller node with external wakeup interrupt controller node. |
231 | 231 | ||
232 | pinctrl_1: pinctrl@11000000 { | 232 | pinctrl_1: pinctrl@11000000 { |
233 | compatible = "samsung,pinctrl-exynos4210"; | 233 | compatible = "samsung,exynos4210-pinctrl"; |
234 | reg = <0x11000000 0x1000>; | 234 | reg = <0x11000000 0x1000>; |
235 | interrupts = <0 46 0> | 235 | interrupts = <0 46 0> |
236 | 236 | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt new file mode 100644 index 000000000000..9a2f3f420526 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt | |||
@@ -0,0 +1,140 @@ | |||
1 | ST Ericsson Nomadik pinmux controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "stericsson,nmk-pinctrl", "stericsson,nmk-pinctrl-db8540", | ||
5 | "stericsson,nmk-pinctrl-stn8815" | ||
6 | - reg: Should contain the register physical address and length of the PRCMU. | ||
7 | |||
8 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
9 | common pinctrl bindings used by client devices, including the meaning of the | ||
10 | phrase "pin configuration node". | ||
11 | |||
12 | ST Ericsson's pin configuration nodes act as a container for an arbitrary number of | ||
13 | subnodes. Each of these subnodes represents some desired configuration for a | ||
14 | pin, a group, or a list of pins or groups. This configuration can include the | ||
15 | mux function to select on those pin(s)/group(s), and various pin configuration | ||
16 | parameters, such as input, output, pull up, pull down... | ||
17 | |||
18 | The name of each subnode is not important; all subnodes should be enumerated | ||
19 | and processed purely based on their content. | ||
20 | |||
21 | Required subnode-properties: | ||
22 | - ste,pins : An array of strings. Each string contains the name of a pin or | ||
23 | group. | ||
24 | |||
25 | Optional subnode-properties: | ||
26 | - ste,function: A string containing the name of the function to mux to the | ||
27 | pin or group. | ||
28 | |||
29 | - ste,config: Handle of pin configuration node (e.g. ste,config = <&slpm_in_wkup_pdis>) | ||
30 | |||
31 | - ste,input : <0/1/2> | ||
32 | 0: input with no pull | ||
33 | 1: input with pull up, | ||
34 | 2: input with pull down, | ||
35 | |||
36 | - ste,output: <0/1/2> | ||
37 | 0: output low, | ||
38 | 1: output high, | ||
39 | 2: output (value is not specified). | ||
40 | |||
41 | - ste,sleep: <0/1> | ||
42 | 0: sleep mode disable, | ||
43 | 1: sleep mode enable. | ||
44 | |||
45 | - ste,sleep-input: <0/1/2/3> | ||
46 | 0: sleep input with no pull, | ||
47 | 1: sleep input with pull up, | ||
48 | 2: sleep input with pull down. | ||
49 | 3: sleep input and keep last input configuration (no pull, pull up or pull down). | ||
50 | |||
51 | - ste,sleep-output: <0/1/2> | ||
52 | 0: sleep output low, | ||
53 | 1: sleep output high, | ||
54 | 2: sleep output (value is not specified). | ||
55 | |||
56 | - ste,sleep-gpio: <0/1> | ||
57 | 0: disable sleep gpio mode, | ||
58 | 1: enable sleep gpio mode. | ||
59 | |||
60 | - ste,sleep-wakeup: <0/1> | ||
61 | 0: wake-up detection enabled, | ||
62 | 1: wake-up detection disabled. | ||
63 | |||
64 | - ste,sleep-pull-disable: <0/1> | ||
65 | 0: GPIO pull-up or pull-down resistor is enabled, when pin is an input, | ||
66 | 1: GPIO pull-up and pull-down resistor are disabled. | ||
67 | |||
68 | Example board file extract: | ||
69 | |||
70 | pinctrl@80157000 { | ||
71 | compatible = "stericsson,nmk-pinctrl"; | ||
72 | reg = <0x80157000 0x2000>; | ||
73 | |||
74 | pinctrl-names = "default"; | ||
75 | |||
76 | slpm_in_wkup_pdis: slpm_in_wkup_pdis { | ||
77 | ste,sleep = <1>; | ||
78 | ste,sleep-input = <3>; | ||
79 | ste,sleep-wakeup = <1>; | ||
80 | ste,sleep-pull-disable = <0>; | ||
81 | }; | ||
82 | |||
83 | slpm_out_hi_wkup_pdis: slpm_out_hi_wkup_pdis { | ||
84 | ste,sleep = <1>; | ||
85 | ste,sleep-output = <1>; | ||
86 | ste,sleep-wakeup = <1>; | ||
87 | ste,sleep-pull-disable = <0>; | ||
88 | }; | ||
89 | |||
90 | slpm_out_wkup_pdis: slpm_out_wkup_pdis { | ||
91 | ste,sleep = <1>; | ||
92 | ste,sleep-output = <2>; | ||
93 | ste,sleep-wakeup = <1>; | ||
94 | ste,sleep-pull-disable = <0>; | ||
95 | }; | ||
96 | |||
97 | uart0 { | ||
98 | uart0_default_mux: uart0_mux { | ||
99 | u0_default_mux { | ||
100 | ste,function = "u0"; | ||
101 | ste,pins = "u0_a_1"; | ||
102 | }; | ||
103 | }; | ||
104 | uart0_default_mode: uart0_default { | ||
105 | uart0_default_cfg1 { | ||
106 | ste,pins = "GPIO0", "GPIO2"; | ||
107 | ste,input = <1>; | ||
108 | }; | ||
109 | |||
110 | uart0_default_cfg2 { | ||
111 | ste,pins = "GPIO1", "GPIO3"; | ||
112 | ste,output = <1>; | ||
113 | }; | ||
114 | }; | ||
115 | uart0_sleep_mode: uart0_sleep { | ||
116 | uart0_sleep_cfg1 { | ||
117 | ste,pins = "GPIO0", "GPIO2"; | ||
118 | ste,config = <&slpm_in_wkup_pdis>; | ||
119 | }; | ||
120 | uart0_sleep_cfg2 { | ||
121 | ste,pins = "GPIO1"; | ||
122 | ste,config = <&slpm_out_hi_wkup_pdis>; | ||
123 | }; | ||
124 | uart0_sleep_cfg3 { | ||
125 | ste,pins = "GPIO3"; | ||
126 | ste,config = <&slpm_out_wkup_pdis>; | ||
127 | }; | ||
128 | }; | ||
129 | }; | ||
130 | }; | ||
131 | |||
132 | uart@80120000 { | ||
133 | compatible = "arm,pl011", "arm,primecell"; | ||
134 | reg = <0x80120000 0x1000>; | ||
135 | interrupts = <0 11 0x4>; | ||
136 | |||
137 | pinctrl-names = "default","sleep"; | ||
138 | pinctrl-0 = <&uart0_default_mux>, <&uart0_default_mode>; | ||
139 | pinctrl-1 = <&uart0_sleep_mode>; | ||
140 | }; | ||
diff --git a/Documentation/devicetree/bindings/power_supply/max8925_batter.txt b/Documentation/devicetree/bindings/power_supply/max8925_batter.txt new file mode 100644 index 000000000000..d7e3e0c0f71d --- /dev/null +++ b/Documentation/devicetree/bindings/power_supply/max8925_batter.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | max8925-battery bindings | ||
2 | ~~~~~~~~~~~~~~~~ | ||
3 | |||
4 | Optional properties : | ||
5 | - batt-detect: whether support battery detect | ||
6 | - topoff-threshold: set charging current in topoff mode | ||
7 | - fast-charge: set charging current in fast mode | ||
8 | - no-temp-support: whether support temperature protection detect | ||
9 | - no-insert-detect: whether support insert detect | ||
10 | |||
11 | Example: | ||
12 | charger { | ||
13 | batt-detect = <0>; | ||
14 | topoff-threshold = <1>; | ||
15 | fast-charge = <7>; | ||
16 | no-temp-support = <0>; | ||
17 | no-insert-detect = <0>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/power_supply/qnap-poweroff.txt b/Documentation/devicetree/bindings/power_supply/qnap-poweroff.txt new file mode 100644 index 000000000000..9a599d27bd75 --- /dev/null +++ b/Documentation/devicetree/bindings/power_supply/qnap-poweroff.txt | |||
@@ -0,0 +1,13 @@ | |||
1 | * QNAP Power Off | ||
2 | |||
3 | QNAP NAS devices have a microcontroller controlling the main power | ||
4 | supply. This microcontroller is connected to UART1 of the Kirkwood and | ||
5 | Orion5x SoCs. Sending the charactor 'A', at 19200 baud, tells the | ||
6 | microcontroller to turn the power off. This driver adds a handler to | ||
7 | pm_power_off which is called to turn the power off. | ||
8 | |||
9 | Required Properties: | ||
10 | - compatible: Should be "qnap,power-off" | ||
11 | |||
12 | - reg: Address and length of the register set for UART1 | ||
13 | - clocks: tclk clock | ||
diff --git a/Documentation/devicetree/bindings/power_supply/restart-poweroff.txt b/Documentation/devicetree/bindings/power_supply/restart-poweroff.txt new file mode 100644 index 000000000000..5776e684afda --- /dev/null +++ b/Documentation/devicetree/bindings/power_supply/restart-poweroff.txt | |||
@@ -0,0 +1,8 @@ | |||
1 | * Restart Power Off | ||
2 | |||
3 | Buffalo Linkstation LS-XHL and LS-CHLv2, and other devices power off | ||
4 | by restarting and letting u-boot keep hold of the machine until the | ||
5 | user presses a button. | ||
6 | |||
7 | Required Properties: | ||
8 | - compatible: Should be "restart-poweroff" | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/guts.txt b/Documentation/devicetree/bindings/powerpc/fsl/guts.txt index 9e7a2417dac5..7f150b5012cc 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/guts.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/guts.txt | |||
@@ -17,9 +17,20 @@ Recommended properties: | |||
17 | contains a functioning "reset control register" (i.e. the board | 17 | contains a functioning "reset control register" (i.e. the board |
18 | is wired to reset upon setting the HRESET_REQ bit in this register). | 18 | is wired to reset upon setting the HRESET_REQ bit in this register). |
19 | 19 | ||
20 | Example: | 20 | - fsl,liodn-bits : Indicates the number of defined bits in the LIODN |
21 | registers, for those SOCs that have a PAMU device. | ||
22 | |||
23 | Examples: | ||
21 | global-utilities@e0000 { /* global utilities block */ | 24 | global-utilities@e0000 { /* global utilities block */ |
22 | compatible = "fsl,mpc8548-guts"; | 25 | compatible = "fsl,mpc8548-guts"; |
23 | reg = <e0000 1000>; | 26 | reg = <e0000 1000>; |
24 | fsl,has-rstcr; | 27 | fsl,has-rstcr; |
25 | }; | 28 | }; |
29 | |||
30 | guts: global-utilities@e0000 { | ||
31 | compatible = "fsl,qoriq-device-config-1.0"; | ||
32 | reg = <0xe0000 0xe00>; | ||
33 | fsl,has-rstcr; | ||
34 | #sleep-cells = <1>; | ||
35 | fsl,liodn-bits = <12>; | ||
36 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/pamu.txt b/Documentation/devicetree/bindings/powerpc/fsl/pamu.txt new file mode 100644 index 000000000000..1f5e329f756c --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/pamu.txt | |||
@@ -0,0 +1,140 @@ | |||
1 | Freescale Peripheral Management Access Unit (PAMU) Device Tree Binding | ||
2 | |||
3 | DESCRIPTION | ||
4 | |||
5 | The PAMU is an I/O MMU that provides device-to-memory access control and | ||
6 | address translation capabilities. | ||
7 | |||
8 | Required properties: | ||
9 | |||
10 | - compatible : <string> | ||
11 | First entry is a version-specific string, such as | ||
12 | "fsl,pamu-v1.0". The second is "fsl,pamu". | ||
13 | - ranges : <prop-encoded-array> | ||
14 | A standard property. Utilized to describe the memory mapped | ||
15 | I/O space utilized by the controller. The size should | ||
16 | be set to the total size of the register space of all | ||
17 | physically present PAMU controllers. For example, for | ||
18 | PAMU v1.0, on an SOC that has five PAMU devices, the size | ||
19 | is 0x5000. | ||
20 | - interrupts : <prop-encoded-array> | ||
21 | Interrupt mappings. The first tuple is the normal PAMU | ||
22 | interrupt, used for reporting access violations. The second | ||
23 | is for PAMU hardware errors, such as PAMU operation errors | ||
24 | and ECC errors. | ||
25 | - #address-cells: <u32> | ||
26 | A standard property. | ||
27 | - #size-cells : <u32> | ||
28 | A standard property. | ||
29 | |||
30 | Optional properties: | ||
31 | - reg : <prop-encoded-array> | ||
32 | A standard property. It represents the CCSR registers of | ||
33 | all child PAMUs combined. Include it to provide support | ||
34 | for legacy drivers. | ||
35 | - interrupt-parent : <phandle> | ||
36 | Phandle to interrupt controller | ||
37 | |||
38 | Child nodes: | ||
39 | |||
40 | Each child node represents one PAMU controller. Each SOC device that is | ||
41 | connected to a specific PAMU device should have a "fsl,pamu-phandle" property | ||
42 | that links to the corresponding specific child PAMU controller. | ||
43 | |||
44 | - reg : <prop-encoded-array> | ||
45 | A standard property. Specifies the physical address and | ||
46 | length (relative to the parent 'ranges' property) of this | ||
47 | PAMU controller's configuration registers. The size should | ||
48 | be set to the size of this PAMU controllers's register space. | ||
49 | For PAMU v1.0, this size is 0x1000. | ||
50 | - fsl,primary-cache-geometry | ||
51 | : <prop-encoded-array> | ||
52 | Two cells that specify the geometry of the primary PAMU | ||
53 | cache. The first is the number of cache lines, and the | ||
54 | second is the number of "ways". For direct-mapped caches, | ||
55 | specify a value of 1. | ||
56 | - fsl,secondary-cache-geometry | ||
57 | : <prop-encoded-array> | ||
58 | Two cells that specify the geometry of the secondary PAMU | ||
59 | cache. The first is the number of cache lines, and the | ||
60 | second is the number of "ways". For direct-mapped caches, | ||
61 | specify a value of 1. | ||
62 | |||
63 | Device nodes: | ||
64 | |||
65 | Devices that have LIODNs need to specify links to the parent PAMU controller | ||
66 | (the actual PAMU controller that this device is connected to) and a pointer to | ||
67 | the LIODN register, if applicable. | ||
68 | |||
69 | - fsl,iommu-parent | ||
70 | : <phandle> | ||
71 | Phandle to the single, specific PAMU controller node to which | ||
72 | this device is connect. The PAMU topology is represented in | ||
73 | the device tree to assist code that dynamically determines the | ||
74 | best LIODN values to minimize PAMU cache thrashing. | ||
75 | |||
76 | - fsl,liodn-reg : <prop-encoded-array> | ||
77 | Two cells that specify the location of the LIODN register | ||
78 | for this device. Required for devices that have a single | ||
79 | LIODN. The first cell is a phandle to a node that contains | ||
80 | the registers where the LIODN is to be set. The second is | ||
81 | the offset from the first "reg" resource of the node where | ||
82 | the specific LIODN register is located. | ||
83 | |||
84 | |||
85 | Example: | ||
86 | |||
87 | iommu@20000 { | ||
88 | compatible = "fsl,pamu-v1.0", "fsl,pamu"; | ||
89 | reg = <0x20000 0x5000>; | ||
90 | ranges = <0 0x20000 0x5000>; | ||
91 | #address-cells = <1>; | ||
92 | #size-cells = <1>; | ||
93 | interrupts = < | ||
94 | 24 2 0 0 | ||
95 | 16 2 1 30>; | ||
96 | |||
97 | pamu0: pamu@0 { | ||
98 | reg = <0 0x1000>; | ||
99 | fsl,primary-cache-geometry = <32 1>; | ||
100 | fsl,secondary-cache-geometry = <128 2>; | ||
101 | }; | ||
102 | |||
103 | pamu1: pamu@1000 { | ||
104 | reg = <0x1000 0x1000>; | ||
105 | fsl,primary-cache-geometry = <32 1>; | ||
106 | fsl,secondary-cache-geometry = <128 2>; | ||
107 | }; | ||
108 | |||
109 | pamu2: pamu@2000 { | ||
110 | reg = <0x2000 0x1000>; | ||
111 | fsl,primary-cache-geometry = <32 1>; | ||
112 | fsl,secondary-cache-geometry = <128 2>; | ||
113 | }; | ||
114 | |||
115 | pamu3: pamu@3000 { | ||
116 | reg = <0x3000 0x1000>; | ||
117 | fsl,primary-cache-geometry = <32 1>; | ||
118 | fsl,secondary-cache-geometry = <128 2>; | ||
119 | }; | ||
120 | |||
121 | pamu4: pamu@4000 { | ||
122 | reg = <0x4000 0x1000>; | ||
123 | fsl,primary-cache-geometry = <32 1>; | ||
124 | fsl,secondary-cache-geometry = <128 2>; | ||
125 | }; | ||
126 | }; | ||
127 | |||
128 | guts: global-utilities@e0000 { | ||
129 | compatible = "fsl,qoriq-device-config-1.0"; | ||
130 | reg = <0xe0000 0xe00>; | ||
131 | fsl,has-rstcr; | ||
132 | #sleep-cells = <1>; | ||
133 | fsl,liodn-bits = <12>; | ||
134 | }; | ||
135 | |||
136 | /include/ "qoriq-dma-0.dtsi" | ||
137 | dma@100300 { | ||
138 | fsl,iommu-parent = <&pamu0>; | ||
139 | fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */ | ||
140 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/srio.txt b/Documentation/devicetree/bindings/powerpc/fsl/srio.txt index b039bcbee134..07abf0f2f440 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/srio.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/srio.txt | |||
@@ -8,9 +8,9 @@ Properties: | |||
8 | Definition: Must include "fsl,srio" for IP blocks with IP Block | 8 | Definition: Must include "fsl,srio" for IP blocks with IP Block |
9 | Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0. | 9 | Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0. |
10 | 10 | ||
11 | Optionally, a compatiable string of "fsl,srio-vX.Y" where X is Major | 11 | Optionally, a compatible string of "fsl,srio-vX.Y" where X is Major |
12 | version in IP Block Revision Register and Y is Minor version. If this | 12 | version in IP Block Revision Register and Y is Minor version. If this |
13 | compatiable is provided it should be ordered before "fsl,srio". | 13 | compatible is provided it should be ordered before "fsl,srio". |
14 | 14 | ||
15 | - reg | 15 | - reg |
16 | Usage: required | 16 | Usage: required |
diff --git a/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt b/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt new file mode 100644 index 000000000000..de0eaed86651 --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | Atmel TCB PWM controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should be "atmel,tcb-pwm" | ||
5 | - #pwm-cells: Should be 3. The first cell specifies the per-chip index | ||
6 | of the PWM to use, the second cell is the period in nanoseconds and | ||
7 | bit 0 in the third cell is used to encode the polarity of PWM output. | ||
8 | Set bit 0 of the third cell in PWM specifier to 1 for inverse polarity & | ||
9 | set to 0 for normal polarity. | ||
10 | - tc-block: The Timer Counter block to use as a PWM chip. | ||
11 | |||
12 | Example: | ||
13 | |||
14 | pwm { | ||
15 | compatible = "atmel,tcb-pwm"; | ||
16 | #pwm-cells = <3>; | ||
17 | tc-block = <1>; | ||
18 | }; | ||
diff --git a/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt index bcc63678a9a5..d21d82d29855 100644 --- a/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt +++ b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt | |||
@@ -3,14 +3,17 @@ VIA/Wondermedia VT8500/WM8xxx series SoC PWM controller | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be "via,vt8500-pwm" | 4 | - compatible: should be "via,vt8500-pwm" |
5 | - reg: physical base address and length of the controller's registers | 5 | - reg: physical base address and length of the controller's registers |
6 | - #pwm-cells: should be 2. The first cell specifies the per-chip index | 6 | - #pwm-cells: Should be 3. Number of cells being used to specify PWM property. |
7 | of the PWM to use and the second cell is the period in nanoseconds. | 7 | First cell specifies the per-chip index of the PWM to use, the second |
8 | cell is the period in nanoseconds and bit 0 in the third cell is used to | ||
9 | encode the polarity of PWM output. Set bit 0 of the third in PWM specifier | ||
10 | to 1 for inverse polarity & set to 0 for normal polarity. | ||
8 | - clocks: phandle to the PWM source clock | 11 | - clocks: phandle to the PWM source clock |
9 | 12 | ||
10 | Example: | 13 | Example: |
11 | 14 | ||
12 | pwm1: pwm@d8220000 { | 15 | pwm1: pwm@d8220000 { |
13 | #pwm-cells = <2>; | 16 | #pwm-cells = <3>; |
14 | compatible = "via,vt8500-pwm"; | 17 | compatible = "via,vt8500-pwm"; |
15 | reg = <0xd8220000 0x1000>; | 18 | reg = <0xd8220000 0x1000>; |
16 | clocks = <&clkpwm>; | 19 | clocks = <&clkpwm>; |
diff --git a/Documentation/devicetree/bindings/regulator/anatop-regulator.txt b/Documentation/devicetree/bindings/regulator/anatop-regulator.txt index 357758cb6e92..758eae24082a 100644 --- a/Documentation/devicetree/bindings/regulator/anatop-regulator.txt +++ b/Documentation/devicetree/bindings/regulator/anatop-regulator.txt | |||
@@ -9,6 +9,11 @@ Required properties: | |||
9 | - anatop-min-voltage: Minimum voltage of this regulator | 9 | - anatop-min-voltage: Minimum voltage of this regulator |
10 | - anatop-max-voltage: Maximum voltage of this regulator | 10 | - anatop-max-voltage: Maximum voltage of this regulator |
11 | 11 | ||
12 | Optional properties: | ||
13 | - anatop-delay-reg-offset: Anatop MFD step time register offset | ||
14 | - anatop-delay-bit-shift: Bit shift for the step time register | ||
15 | - anatop-delay-bit-width: Number of bits used in the step time register | ||
16 | |||
12 | Any property defined as part of the core regulator | 17 | Any property defined as part of the core regulator |
13 | binding, defined in regulator.txt, can also be used. | 18 | binding, defined in regulator.txt, can also be used. |
14 | 19 | ||
@@ -23,6 +28,9 @@ Example: | |||
23 | anatop-reg-offset = <0x140>; | 28 | anatop-reg-offset = <0x140>; |
24 | anatop-vol-bit-shift = <9>; | 29 | anatop-vol-bit-shift = <9>; |
25 | anatop-vol-bit-width = <5>; | 30 | anatop-vol-bit-width = <5>; |
31 | anatop-delay-reg-offset = <0x170>; | ||
32 | anatop-delay-bit-shift = <24>; | ||
33 | anatop-delay-bit-width = <2>; | ||
26 | anatop-min-bit-val = <1>; | 34 | anatop-min-bit-val = <1>; |
27 | anatop-min-voltage = <725000>; | 35 | anatop-min-voltage = <725000>; |
28 | anatop-max-voltage = <1300000>; | 36 | anatop-max-voltage = <1300000>; |
diff --git a/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt new file mode 100644 index 000000000000..a35ff99003a5 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt | |||
@@ -0,0 +1,152 @@ | |||
1 | * Samsung S5M8767 Voltage and Current Regulator | ||
2 | |||
3 | The Samsung S5M8767 is a multi-function device which includes volatage and | ||
4 | current regulators, rtc, charger controller and other sub-blocks. It is | ||
5 | interfaced to the host controller using a i2c interface. Each sub-block is | ||
6 | addressed by the host system using different i2c slave address. This document | ||
7 | describes the bindings for 'pmic' sub-block of s5m8767. | ||
8 | |||
9 | Required properties: | ||
10 | - compatible: Should be "samsung,s5m8767-pmic". | ||
11 | - reg: Specifies the i2c slave address of the pmic block. It should be 0x66. | ||
12 | |||
13 | - s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV) | ||
14 | units for buck2 when changing voltage using gpio dvs. Refer to [1] below | ||
15 | for additional information. | ||
16 | |||
17 | - s5m8767,pmic-buck3-dvs-voltage: A set of 8 voltage values in micro-volt (uV) | ||
18 | units for buck3 when changing voltage using gpio dvs. Refer to [1] below | ||
19 | for additional information. | ||
20 | |||
21 | - s5m8767,pmic-buck4-dvs-voltage: A set of 8 voltage values in micro-volt (uV) | ||
22 | units for buck4 when changing voltage using gpio dvs. Refer to [1] below | ||
23 | for additional information. | ||
24 | |||
25 | - s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used | ||
26 | for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines. | ||
27 | |||
28 | [1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional | ||
29 | property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage' | ||
30 | property should specify atleast one voltage level (which would be a | ||
31 | safe operating voltage). | ||
32 | |||
33 | If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional | ||
34 | property is specified, then all the eight voltage values for the | ||
35 | 's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified. | ||
36 | |||
37 | Optional properties: | ||
38 | - interrupt-parent: Specifies the phandle of the interrupt controller to which | ||
39 | the interrupts from s5m8767 are delivered to. | ||
40 | - interrupts: Interrupt specifiers for two interrupt sources. | ||
41 | - First interrupt specifier is for 'irq1' interrupt. | ||
42 | - Second interrupt specifier is for 'alert' interrupt. | ||
43 | - s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs. | ||
44 | - s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs. | ||
45 | - s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs. | ||
46 | |||
47 | Additional properties required if either of the optional properties are used: | ||
48 | |||
49 | - s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from | ||
50 | the possible 8 options selectable by the dvs gpios. The value of this | ||
51 | property should be between 0 and 7. If not specified or if out of range, the | ||
52 | default value of this property is set to 0. | ||
53 | |||
54 | - s5m8767,pmic-buck-dvs-gpios: GPIO specifiers for three host gpio's used | ||
55 | for dvs. The format of the gpio specifier depends in the gpio controller. | ||
56 | |||
57 | Regulators: The regulators of s5m8767 that have to be instantiated should be | ||
58 | included in a sub-node named 'regulators'. Regulator nodes included in this | ||
59 | sub-node should be of the format as listed below. | ||
60 | |||
61 | regulator_name { | ||
62 | ldo1_reg: LDO1 { | ||
63 | regulator-name = "VDD_ALIVE_1.0V"; | ||
64 | regulator-min-microvolt = <1100000>; | ||
65 | regulator-max-microvolt = <1100000>; | ||
66 | regulator-always-on; | ||
67 | regulator-boot-on; | ||
68 | op_mode = <1>; /* Normal Mode */ | ||
69 | }; | ||
70 | }; | ||
71 | The above regulator entries are defined in regulator bindings documentation | ||
72 | except op_mode description. | ||
73 | - op_mode: describes the different operating modes of the LDO's with | ||
74 | power mode change in SOC. The different possible values are, | ||
75 | 0 - always off mode | ||
76 | 1 - on in normal mode | ||
77 | 2 - low power mode | ||
78 | 3 - suspend mode | ||
79 | |||
80 | The following are the names of the regulators that the s5m8767 pmic block | ||
81 | supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number | ||
82 | as per the datasheet of s5m8767. | ||
83 | |||
84 | - LDOn | ||
85 | - valid values for n are 1 to 28 | ||
86 | - Example: LDO0, LD01, LDO28 | ||
87 | - BUCKn | ||
88 | - valid values for n are 1 to 9. | ||
89 | - Example: BUCK1, BUCK2, BUCK9 | ||
90 | |||
91 | The bindings inside the regulator nodes use the standard regulator bindings | ||
92 | which are documented elsewhere. | ||
93 | |||
94 | Example: | ||
95 | |||
96 | s5m8767_pmic@66 { | ||
97 | compatible = "samsung,s5m8767-pmic"; | ||
98 | reg = <0x66>; | ||
99 | |||
100 | s5m8767,pmic-buck2-uses-gpio-dvs; | ||
101 | s5m8767,pmic-buck3-uses-gpio-dvs; | ||
102 | s5m8767,pmic-buck4-uses-gpio-dvs; | ||
103 | |||
104 | s5m8767,pmic-buck-default-dvs-idx = <0>; | ||
105 | |||
106 | s5m8767,pmic-buck-dvs-gpios = <&gpx0 0 1 0 0>, /* DVS1 */ | ||
107 | <&gpx0 1 1 0 0>, /* DVS2 */ | ||
108 | <&gpx0 2 1 0 0>; /* DVS3 */ | ||
109 | |||
110 | s5m8767,pmic-buck-ds-gpios = <&gpx2 3 1 0 0>, /* SET1 */ | ||
111 | <&gpx2 4 1 0 0>, /* SET2 */ | ||
112 | <&gpx2 5 1 0 0>; /* SET3 */ | ||
113 | |||
114 | s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>, | ||
115 | <1250000>, <1200000>, | ||
116 | <1150000>, <1100000>, | ||
117 | <1000000>, <950000>; | ||
118 | |||
119 | s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>, | ||
120 | <1100000>, <1100000>, | ||
121 | <1000000>, <1000000>, | ||
122 | <1000000>, <1000000>; | ||
123 | |||
124 | s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>, | ||
125 | <1200000>, <1200000>, | ||
126 | <1200000>, <1200000>, | ||
127 | <1200000>, <1200000>; | ||
128 | |||
129 | regulators { | ||
130 | ldo1_reg: LDO1 { | ||
131 | regulator-name = "VDD_ABB_3.3V"; | ||
132 | regulator-min-microvolt = <3300000>; | ||
133 | regulator-max-microvolt = <3300000>; | ||
134 | op_mode = <1>; /* Normal Mode */ | ||
135 | }; | ||
136 | |||
137 | ldo2_reg: LDO2 { | ||
138 | regulator-name = "VDD_ALIVE_1.1V"; | ||
139 | regulator-min-microvolt = <1100000>; | ||
140 | regulator-max-microvolt = <1100000>; | ||
141 | regulator-always-on; | ||
142 | }; | ||
143 | |||
144 | buck1_reg: BUCK1 { | ||
145 | regulator-name = "VDD_MIF_1.2V"; | ||
146 | regulator-min-microvolt = <950000>; | ||
147 | regulator-max-microvolt = <1350000>; | ||
148 | regulator-always-on; | ||
149 | regulator-boot-on; | ||
150 | }; | ||
151 | }; | ||
152 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/tps51632-regulator.txt b/Documentation/devicetree/bindings/regulator/tps51632-regulator.txt new file mode 100644 index 000000000000..2f7e44a96414 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/tps51632-regulator.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | TPS51632 Voltage regulators | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Must be "ti,tps51632" | ||
5 | - reg: I2C slave address | ||
6 | |||
7 | Optional properties: | ||
8 | - ti,enable-pwm-dvfs: Enable the DVFS voltage control through the PWM interface. | ||
9 | - ti,dvfs-step-20mV: The 20mV step voltage when PWM DVFS enabled. Missing this | ||
10 | will set 10mV step voltage in PWM DVFS mode. In normal mode, the voltage | ||
11 | step is 10mV as per datasheet. | ||
12 | |||
13 | Any property defined as part of the core regulator binding, defined in | ||
14 | regulator.txt, can also be used. | ||
15 | |||
16 | Example: | ||
17 | |||
18 | tps51632 { | ||
19 | compatible = "ti,tps51632"; | ||
20 | reg = <0x43>; | ||
21 | regulator-name = "tps51632-vout"; | ||
22 | regulator-min-microvolt = <500000>; | ||
23 | regulator-max-microvolt = <1500000>; | ||
24 | regulator-boot-on; | ||
25 | ti,enable-pwm-dvfs; | ||
26 | ti,dvfs-step-20mV; | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/regulator/tps62360-regulator.txt b/Documentation/devicetree/bindings/regulator/tps62360-regulator.txt index c8ca6b8f6582..1b20c3dbcdb8 100644 --- a/Documentation/devicetree/bindings/regulator/tps62360-regulator.txt +++ b/Documentation/devicetree/bindings/regulator/tps62360-regulator.txt | |||
@@ -17,9 +17,9 @@ Optional properties: | |||
17 | - ti,vsel1-gpio: Gpio for controlling VSEL1 line. | 17 | - ti,vsel1-gpio: Gpio for controlling VSEL1 line. |
18 | If this property is missing, then assume that there is no GPIO | 18 | If this property is missing, then assume that there is no GPIO |
19 | for vsel1 control. | 19 | for vsel1 control. |
20 | - ti,vsel0-state-high: Inital state of vsel0 input is high. | 20 | - ti,vsel0-state-high: Initial state of vsel0 input is high. |
21 | If this property is missing, then assume the state as low (0). | 21 | If this property is missing, then assume the state as low (0). |
22 | - ti,vsel1-state-high: Inital state of vsel1 input is high. | 22 | - ti,vsel1-state-high: Initial state of vsel1 input is high. |
23 | If this property is missing, then assume the state as low (0). | 23 | If this property is missing, then assume the state as low (0). |
24 | 24 | ||
25 | Any property defined as part of the core regulator binding, defined in | 25 | Any property defined as part of the core regulator binding, defined in |
diff --git a/Documentation/devicetree/bindings/regulator/tps65090.txt b/Documentation/devicetree/bindings/regulator/tps65090.txt new file mode 100644 index 000000000000..313a60ba61d8 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/tps65090.txt | |||
@@ -0,0 +1,122 @@ | |||
1 | TPS65090 regulators | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "ti,tps65090" | ||
5 | - reg: I2C slave address | ||
6 | - interrupts: the interrupt outputs of the controller | ||
7 | - regulators: A node that houses a sub-node for each regulator within the | ||
8 | device. Each sub-node is identified using the node's name, with valid | ||
9 | values listed below. The content of each sub-node is defined by the | ||
10 | standard binding for regulators; see regulator.txt. | ||
11 | dcdc[1-3], fet[1-7] and ldo[1-2] respectively. | ||
12 | - vsys[1-3]-supply: The input supply for DCDC[1-3] respectively. | ||
13 | - infet[1-7]-supply: The input supply for FET[1-7] respectively. | ||
14 | - vsys-l[1-2]-supply: The input supply for LDO[1-2] respectively. | ||
15 | |||
16 | Optional properties: | ||
17 | - ti,enable-ext-control: This is applicable for DCDC1, DCDC2 and DCDC3. | ||
18 | If DCDCs are externally controlled then this property should be there. | ||
19 | - "dcdc-ext-control-gpios: This is applicable for DCDC1, DCDC2 and DCDC3. | ||
20 | If DCDCs are externally controlled and if it is from GPIO then GPIO | ||
21 | number should be provided. If it is externally controlled and no GPIO | ||
22 | entry then driver will just configure this rails as external control | ||
23 | and will not provide any enable/disable APIs. | ||
24 | |||
25 | Each regulator is defined using the standard binding for regulators. | ||
26 | |||
27 | Example: | ||
28 | |||
29 | tps65090@48 { | ||
30 | compatible = "ti,tps65090"; | ||
31 | reg = <0x48>; | ||
32 | interrupts = <0 88 0x4>; | ||
33 | |||
34 | vsys1-supply = <&some_reg>; | ||
35 | vsys2-supply = <&some_reg>; | ||
36 | vsys3-supply = <&some_reg>; | ||
37 | infet1-supply = <&some_reg>; | ||
38 | infet2-supply = <&some_reg>; | ||
39 | infet3-supply = <&some_reg>; | ||
40 | infet4-supply = <&some_reg>; | ||
41 | infet5-supply = <&some_reg>; | ||
42 | infet6-supply = <&some_reg>; | ||
43 | infet7-supply = <&some_reg>; | ||
44 | vsys_l1-supply = <&some_reg>; | ||
45 | vsys_l2-supply = <&some_reg>; | ||
46 | |||
47 | regulators { | ||
48 | dcdc1 { | ||
49 | regulator-name = "dcdc1"; | ||
50 | regulator-boot-on; | ||
51 | regulator-always-on; | ||
52 | ti,enable-ext-control; | ||
53 | dcdc-ext-control-gpios = <&gpio 10 0>; | ||
54 | }; | ||
55 | |||
56 | dcdc2 { | ||
57 | regulator-name = "dcdc2"; | ||
58 | regulator-boot-on; | ||
59 | regulator-always-on; | ||
60 | }; | ||
61 | |||
62 | dcdc3 { | ||
63 | regulator-name = "dcdc3"; | ||
64 | regulator-boot-on; | ||
65 | regulator-always-on; | ||
66 | }; | ||
67 | |||
68 | fet1 { | ||
69 | regulator-name = "fet1"; | ||
70 | regulator-boot-on; | ||
71 | regulator-always-on; | ||
72 | }; | ||
73 | |||
74 | fet2 { | ||
75 | regulator-name = "fet2"; | ||
76 | regulator-boot-on; | ||
77 | regulator-always-on; | ||
78 | }; | ||
79 | |||
80 | fet3 { | ||
81 | regulator-name = "fet3"; | ||
82 | regulator-boot-on; | ||
83 | regulator-always-on; | ||
84 | }; | ||
85 | |||
86 | fet4 { | ||
87 | regulator-name = "fet4"; | ||
88 | regulator-boot-on; | ||
89 | regulator-always-on; | ||
90 | }; | ||
91 | |||
92 | fet5 { | ||
93 | regulator-name = "fet5"; | ||
94 | regulator-boot-on; | ||
95 | regulator-always-on; | ||
96 | }; | ||
97 | |||
98 | fet6 { | ||
99 | regulator-name = "fet6"; | ||
100 | regulator-boot-on; | ||
101 | regulator-always-on; | ||
102 | }; | ||
103 | |||
104 | fet7 { | ||
105 | regulator-name = "fet7"; | ||
106 | regulator-boot-on; | ||
107 | regulator-always-on; | ||
108 | }; | ||
109 | |||
110 | ldo1 { | ||
111 | regulator-name = "ldo1"; | ||
112 | regulator-boot-on; | ||
113 | regulator-always-on; | ||
114 | }; | ||
115 | |||
116 | ldo2 { | ||
117 | regulator-name = "ldo2"; | ||
118 | regulator-boot-on; | ||
119 | regulator-always-on; | ||
120 | }; | ||
121 | }; | ||
122 | }; | ||
diff --git a/Documentation/devicetree/bindings/rtc/s3c-rtc.txt b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt index 90ec45fd33ec..7ac7259fe9ea 100644 --- a/Documentation/devicetree/bindings/rtc/s3c-rtc.txt +++ b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt | |||
@@ -7,7 +7,7 @@ Required properties: | |||
7 | - reg: physical base address of the controller and length of memory mapped | 7 | - reg: physical base address of the controller and length of memory mapped |
8 | region. | 8 | region. |
9 | - interrupts: Two interrupt numbers to the cpu should be specified. First | 9 | - interrupts: Two interrupt numbers to the cpu should be specified. First |
10 | interrupt number is the rtc alarm interupt and second interrupt number | 10 | interrupt number is the rtc alarm interrupt and second interrupt number |
11 | is the rtc tick interrupt. The number of cells representing a interrupt | 11 | is the rtc tick interrupt. The number of cells representing a interrupt |
12 | depends on the parent interrupt controller. | 12 | depends on the parent interrupt controller. |
13 | 13 | ||
diff --git a/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt b/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt new file mode 100644 index 000000000000..392a4493eebd --- /dev/null +++ b/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt | |||
@@ -0,0 +1,24 @@ | |||
1 | NVIDIA Tegra20/Tegra30 high speed (DMA based) UART controller driver. | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : should be "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart". | ||
5 | - reg: Should contain UART controller registers location and length. | ||
6 | - interrupts: Should contain UART controller interrupts. | ||
7 | - nvidia,dma-request-selector : The Tegra DMA controller's phandle and | ||
8 | request selector for this UART controller. | ||
9 | |||
10 | Optional properties: | ||
11 | - nvidia,enable-modem-interrupt: Enable modem interrupts. Should be enable | ||
12 | only if all 8 lines of UART controller are pinmuxed. | ||
13 | |||
14 | Example: | ||
15 | |||
16 | serial@70006000 { | ||
17 | compatible = "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart"; | ||
18 | reg = <0x70006000 0x40>; | ||
19 | reg-shift = <2>; | ||
20 | interrupts = <0 36 0x04>; | ||
21 | nvidia,dma-request-selector = <&apbdma 8>; | ||
22 | nvidia,enable-modem-interrupt; | ||
23 | status = "disabled"; | ||
24 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/ak4642.txt b/Documentation/devicetree/bindings/sound/ak4642.txt new file mode 100644 index 000000000000..623d4e70ae11 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/ak4642.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | AK4642 I2C transmitter | ||
2 | |||
3 | This device supports I2C mode only. | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible : "asahi-kasei,ak4642" or "asahi-kasei,ak4643" or "asahi-kasei,ak4648" | ||
8 | - reg : The chip select number on the I2C bus | ||
9 | |||
10 | Example: | ||
11 | |||
12 | &i2c { | ||
13 | ak4648: ak4648@0x12 { | ||
14 | compatible = "asahi-kasei,ak4642"; | ||
15 | reg = <0x12>; | ||
16 | }; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/cs4271.txt b/Documentation/devicetree/bindings/sound/cs4271.txt index a850fb9c88ea..e2cd1d7539e5 100644 --- a/Documentation/devicetree/bindings/sound/cs4271.txt +++ b/Documentation/devicetree/bindings/sound/cs4271.txt | |||
@@ -20,6 +20,18 @@ Optional properties: | |||
20 | !RESET pin | 20 | !RESET pin |
21 | - cirrus,amuteb-eq-bmutec: When given, the Codec's AMUTEB=BMUTEC flag | 21 | - cirrus,amuteb-eq-bmutec: When given, the Codec's AMUTEB=BMUTEC flag |
22 | is enabled. | 22 | is enabled. |
23 | - cirrus,enable-soft-reset: | ||
24 | The CS4271 requires its LRCLK and MCLK to be stable before its RESET | ||
25 | line is de-asserted. That also means that clocks cannot be changed | ||
26 | without putting the chip back into hardware reset, which also requires | ||
27 | a complete re-initialization of all registers. | ||
28 | |||
29 | One (undocumented) workaround is to assert and de-assert the PDN bit | ||
30 | in the MODE2 register. This workaround can be enabled with this DT | ||
31 | property. | ||
32 | |||
33 | Note that this is not needed in case the clocks are stable | ||
34 | throughout the entire runtime of the codec. | ||
23 | 35 | ||
24 | Examples: | 36 | Examples: |
25 | 37 | ||
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt new file mode 100644 index 000000000000..be35d34e8b26 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt | |||
@@ -0,0 +1,51 @@ | |||
1 | NVIDIA Tegra audio complex | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "nvidia,tegra-audio-wm9712" | ||
5 | - nvidia,model : The user-visible name of this sound complex. | ||
6 | - nvidia,audio-routing : A list of the connections between audio components. | ||
7 | Each entry is a pair of strings, the first being the connection's sink, | ||
8 | the second being the connection's source. Valid names for sources and | ||
9 | sinks are the WM9712's pins, and the jacks on the board: | ||
10 | |||
11 | WM9712 pins: | ||
12 | |||
13 | * MONOOUT | ||
14 | * HPOUTL | ||
15 | * HPOUTR | ||
16 | * LOUT2 | ||
17 | * ROUT2 | ||
18 | * OUT3 | ||
19 | * LINEINL | ||
20 | * LINEINR | ||
21 | * PHONE | ||
22 | * PCBEEP | ||
23 | * MIC1 | ||
24 | * MIC2 | ||
25 | * Mic Bias | ||
26 | |||
27 | Board connectors: | ||
28 | |||
29 | * Headphone | ||
30 | * LineIn | ||
31 | * Mic | ||
32 | |||
33 | - nvidia,ac97-controller : The phandle of the Tegra AC97 controller | ||
34 | |||
35 | |||
36 | Example: | ||
37 | |||
38 | sound { | ||
39 | compatible = "nvidia,tegra-audio-wm9712-colibri_t20", | ||
40 | "nvidia,tegra-audio-wm9712"; | ||
41 | nvidia,model = "Toradex Colibri T20"; | ||
42 | |||
43 | nvidia,audio-routing = | ||
44 | "Headphone", "HPOUTL", | ||
45 | "Headphone", "HPOUTR", | ||
46 | "LineIn", "LINEINL", | ||
47 | "LineIn", "LINEINR", | ||
48 | "Mic", "MIC1"; | ||
49 | |||
50 | nvidia,ac97-controller = <&ac97>; | ||
51 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra20-ac97.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra20-ac97.txt new file mode 100644 index 000000000000..c1454979c1ef --- /dev/null +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra20-ac97.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | NVIDIA Tegra 20 AC97 controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "nvidia,tegra20-ac97" | ||
5 | - reg : Should contain AC97 controller registers location and length | ||
6 | - interrupts : Should contain AC97 interrupt | ||
7 | - nvidia,dma-request-selector : The Tegra DMA controller's phandle and | ||
8 | request selector for the AC97 controller | ||
9 | - nvidia,codec-reset-gpio : The Tegra GPIO controller's phandle and the number | ||
10 | of the GPIO used to reset the external AC97 codec | ||
11 | - nvidia,codec-sync-gpio : The Tegra GPIO controller's phandle and the number | ||
12 | of the GPIO corresponding with the AC97 DAP _FS line | ||
13 | Example: | ||
14 | |||
15 | ac97@70002000 { | ||
16 | compatible = "nvidia,tegra20-ac97"; | ||
17 | reg = <0x70002000 0x200>; | ||
18 | interrupts = <0 81 0x04>; | ||
19 | nvidia,dma-request-selector = <&apbdma 12>; | ||
20 | nvidia,codec-reset-gpio = <&gpio 170 0>; | ||
21 | nvidia,codec-sync-gpio = <&gpio 120 0>; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/omap-twl4030.txt b/Documentation/devicetree/bindings/sound/omap-twl4030.txt index 6fae51c7f766..1ab6bc8404d5 100644 --- a/Documentation/devicetree/bindings/sound/omap-twl4030.txt +++ b/Documentation/devicetree/bindings/sound/omap-twl4030.txt | |||
@@ -6,6 +6,52 @@ Required properties: | |||
6 | - ti,mcbsp: phandle for the McBSP node | 6 | - ti,mcbsp: phandle for the McBSP node |
7 | - ti,codec: phandle for the twl4030 audio node | 7 | - ti,codec: phandle for the twl4030 audio node |
8 | 8 | ||
9 | Optional properties: | ||
10 | - ti,mcbsp-voice: phandle for the McBSP node connected to the voice port of twl | ||
11 | - ti, jack-det-gpio: Jack detect GPIO | ||
12 | - ti,audio-routing: List of connections between audio components. | ||
13 | Each entry is a pair of strings, the first being the connection's sink, | ||
14 | the second being the connection's source. | ||
15 | If the routing is not provided all possible connection will be available | ||
16 | |||
17 | Available audio endpoints for the audio-routing table: | ||
18 | |||
19 | Board connectors: | ||
20 | * Headset Stereophone | ||
21 | * Earpiece Spk | ||
22 | * Handsfree Spk | ||
23 | * Ext Spk | ||
24 | * Main Mic | ||
25 | * Sub Mic | ||
26 | * Headset Mic | ||
27 | * Carkit Mic | ||
28 | * Digital0 Mic | ||
29 | * Digital1 Mic | ||
30 | * Line In | ||
31 | |||
32 | twl4030 pins: | ||
33 | * HSOL | ||
34 | * HSOR | ||
35 | * EARPIECE | ||
36 | * HFL | ||
37 | * HFR | ||
38 | * PREDRIVEL | ||
39 | * PREDRIVER | ||
40 | * CARKITL | ||
41 | * CARKITR | ||
42 | * MAINMIC | ||
43 | * SUBMIC | ||
44 | * HSMIC | ||
45 | * DIGIMIC0 | ||
46 | * DIGIMIC1 | ||
47 | * CARKITMIC | ||
48 | * AUXL | ||
49 | * AUXR | ||
50 | |||
51 | * Headset Mic Bias | ||
52 | * Mic Bias 1 /* Used for Main Mic or Digimic0 */ | ||
53 | * Mic Bias 2 /* Used for Sub Mic or Digimic1 */ | ||
54 | |||
9 | Example: | 55 | Example: |
10 | 56 | ||
11 | sound { | 57 | sound { |
diff --git a/Documentation/devicetree/bindings/sound/renesas,fsi.txt b/Documentation/devicetree/bindings/sound/renesas,fsi.txt new file mode 100644 index 000000000000..c5be003f413e --- /dev/null +++ b/Documentation/devicetree/bindings/sound/renesas,fsi.txt | |||
@@ -0,0 +1,26 @@ | |||
1 | Renesas FSI | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "renesas,sh_fsi2" or "renesas,sh_fsi" | ||
5 | - reg : Should contain the register physical address and length | ||
6 | - interrupts : Should contain FSI interrupt | ||
7 | |||
8 | - fsia,spdif-connection : FSI is connected by S/PDFI | ||
9 | - fsia,stream-mode-support : FSI supports 16bit stream mode. | ||
10 | - fsia,use-internal-clock : FSI uses internal clock when master mode. | ||
11 | |||
12 | - fsib,spdif-connection : same as fsia | ||
13 | - fsib,stream-mode-support : same as fsia | ||
14 | - fsib,use-internal-clock : same as fsia | ||
15 | |||
16 | Example: | ||
17 | |||
18 | sh_fsi2: sh_fsi2@0xec230000 { | ||
19 | compatible = "renesas,sh_fsi2"; | ||
20 | reg = <0xec230000 0x400>; | ||
21 | interrupts = <0 146 0x4>; | ||
22 | |||
23 | fsia,spdif-connection; | ||
24 | fsia,stream-mode-support; | ||
25 | fsia,use-internal-clock; | ||
26 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/samsung,smdk-wm8994.txt b/Documentation/devicetree/bindings/sound/samsung,smdk-wm8994.txt new file mode 100644 index 000000000000..4686646fb122 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/samsung,smdk-wm8994.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | Samsung SMDK audio complex | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "samsung,smdk-wm8994" | ||
5 | - samsung,i2s-controller: The phandle of the Samsung I2S0 controller | ||
6 | - samsung,audio-codec: The phandle of the WM8994 audio codec | ||
7 | Example: | ||
8 | |||
9 | sound { | ||
10 | compatible = "samsung,smdk-wm8994"; | ||
11 | |||
12 | samsung,i2s-controller = <&i2s0>; | ||
13 | samsung,audio-codec = <&wm8994>; | ||
14 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/samsung-i2s.txt b/Documentation/devicetree/bindings/sound/samsung-i2s.txt new file mode 100644 index 000000000000..3070046da2e5 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/samsung-i2s.txt | |||
@@ -0,0 +1,63 @@ | |||
1 | * Samsung I2S controller | ||
2 | |||
3 | Required SoC Specific Properties: | ||
4 | |||
5 | - compatible : "samsung,i2s-v5" | ||
6 | - reg: physical base address of the controller and length of memory mapped | ||
7 | region. | ||
8 | - dmas: list of DMA controller phandle and DMA request line ordered pairs. | ||
9 | - dma-names: identifier string for each DMA request line in the dmas property. | ||
10 | These strings correspond 1:1 with the ordered pairs in dmas. | ||
11 | |||
12 | Optional SoC Specific Properties: | ||
13 | |||
14 | - samsung,supports-6ch: If the I2S Primary sound source has 5.1 Channel | ||
15 | support, this flag is enabled. | ||
16 | - samsung,supports-rstclr: This flag should be set if I2S software reset bit | ||
17 | control is required. When this flag is set I2S software reset bit will be | ||
18 | enabled or disabled based on need. | ||
19 | - samsung,supports-secdai:If I2S block has a secondary FIFO and internal DMA, | ||
20 | then this flag is enabled. | ||
21 | - samsung,idma-addr: Internal DMA register base address of the audio | ||
22 | sub system(used in secondary sound source). | ||
23 | |||
24 | Required Board Specific Properties: | ||
25 | |||
26 | - gpios: The gpio specifier for data out,data in, LRCLK, CDCLK and SCLK | ||
27 | interface lines. The format of the gpio specifier depends on the gpio | ||
28 | controller. | ||
29 | The syntax of samsung gpio specifier is | ||
30 | <[phandle of the gpio controller node] | ||
31 | [pin number within the gpio controller] | ||
32 | [mux function] | ||
33 | [flags and pull up/down] | ||
34 | [drive strength]> | ||
35 | |||
36 | Example: | ||
37 | |||
38 | - SoC Specific Portion: | ||
39 | |||
40 | i2s@03830000 { | ||
41 | compatible = "samsung,i2s-v5"; | ||
42 | reg = <0x03830000 0x100>; | ||
43 | dmas = <&pdma0 10 | ||
44 | &pdma0 9 | ||
45 | &pdma0 8>; | ||
46 | dma-names = "tx", "rx", "tx-sec"; | ||
47 | samsung,supports-6ch; | ||
48 | samsung,supports-rstclr; | ||
49 | samsung,supports-secdai; | ||
50 | samsung,idma-addr = <0x03000000>; | ||
51 | }; | ||
52 | |||
53 | - Board Specific Portion: | ||
54 | |||
55 | i2s@03830000 { | ||
56 | gpios = <&gpz 0 2 0 0>, /* I2S_0_SCLK */ | ||
57 | <&gpz 1 2 0 0>, /* I2S_0_CDCLK */ | ||
58 | <&gpz 2 2 0 0>, /* I2S_0_LRCK */ | ||
59 | <&gpz 3 2 0 0>, /* I2S_0_SDI */ | ||
60 | <&gpz 4 2 0 0>, /* I2S_0_SDO[1] */ | ||
61 | <&gpz 5 2 0 0>, /* I2S_0_SDO[2] */ | ||
62 | <&gpz 6 2 0 0>; /* I2S_0_SDO[3] */ | ||
63 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt index e7b98f41fa5f..f47c3f589fd0 100644 --- a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt +++ b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt | |||
@@ -11,6 +11,12 @@ Optional properties: | |||
11 | 11 | ||
12 | - gpio-reset - gpio pin number used for codec reset | 12 | - gpio-reset - gpio pin number used for codec reset |
13 | - ai3x-gpio-func - <array of 2 int> - AIC3X_GPIO1 & AIC3X_GPIO2 Functionality | 13 | - ai3x-gpio-func - <array of 2 int> - AIC3X_GPIO1 & AIC3X_GPIO2 Functionality |
14 | - ai3x-micbias-vg - MicBias Voltage required. | ||
15 | 1 - MICBIAS output is powered to 2.0V, | ||
16 | 2 - MICBIAS output is powered to 2.5V, | ||
17 | 3 - MICBIAS output is connected to AVDD, | ||
18 | If this node is not mentioned or if the value is incorrect, then MicBias | ||
19 | is powered down. | ||
14 | 20 | ||
15 | Example: | 21 | Example: |
16 | 22 | ||
diff --git a/Documentation/devicetree/bindings/sound/wm8962.txt b/Documentation/devicetree/bindings/sound/wm8962.txt new file mode 100644 index 000000000000..dceb3b1c2bb7 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/wm8962.txt | |||
@@ -0,0 +1,16 @@ | |||
1 | WM8962 audio CODEC | ||
2 | |||
3 | This device supports I2C only. | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible : "wlf,wm8962" | ||
8 | |||
9 | - reg : the I2C address of the device. | ||
10 | |||
11 | Example: | ||
12 | |||
13 | codec: wm8962@1a { | ||
14 | compatible = "wlf,wm8962"; | ||
15 | reg = <0x1a>; | ||
16 | }; | ||
diff --git a/Documentation/devicetree/bindings/spi/sh-msiof.txt b/Documentation/devicetree/bindings/spi/sh-msiof.txt new file mode 100644 index 000000000000..e6222106ca36 --- /dev/null +++ b/Documentation/devicetree/bindings/spi/sh-msiof.txt | |||
@@ -0,0 +1,12 @@ | |||
1 | Renesas MSIOF spi controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "renesas,sh-msiof" for SuperH or | ||
5 | "renesas,sh-mobile-msiof" for SH Mobile series | ||
6 | - reg : Offset and length of the register set for the device | ||
7 | - interrupts : interrupt line used by MSIOF | ||
8 | |||
9 | Optional properties: | ||
10 | - num-cs : total number of chip-selects | ||
11 | - renesas,tx-fifo-size : Overrides the default tx fifo size given in words | ||
12 | - renesas,rx-fifo-size : Overrides the default rx fifo size given in words | ||
diff --git a/Documentation/devicetree/bindings/staging/iio/adc/mxs-lradc.txt b/Documentation/devicetree/bindings/staging/iio/adc/mxs-lradc.txt index 801d58cb6d4d..46882058b59b 100644 --- a/Documentation/devicetree/bindings/staging/iio/adc/mxs-lradc.txt +++ b/Documentation/devicetree/bindings/staging/iio/adc/mxs-lradc.txt | |||
@@ -5,6 +5,12 @@ Required properties: | |||
5 | - reg: Address and length of the register set for the device | 5 | - reg: Address and length of the register set for the device |
6 | - interrupts: Should contain the LRADC interrupts | 6 | - interrupts: Should contain the LRADC interrupts |
7 | 7 | ||
8 | Optional properties: | ||
9 | - fsl,lradc-touchscreen-wires: Number of wires used to connect the touchscreen | ||
10 | to LRADC. Valid value is either 4 or 5. If this | ||
11 | property is not present, then the touchscreen is | ||
12 | disabled. | ||
13 | |||
8 | Examples: | 14 | Examples: |
9 | 15 | ||
10 | lradc@80050000 { | 16 | lradc@80050000 { |
diff --git a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt b/Documentation/devicetree/bindings/tty/serial/arc-uart.txt new file mode 100644 index 000000000000..5cae2eb686f8 --- /dev/null +++ b/Documentation/devicetree/bindings/tty/serial/arc-uart.txt | |||
@@ -0,0 +1,26 @@ | |||
1 | * Synopsys ARC UART : Non standard UART used in some of the ARC FPGA boards | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "snps,arc-uart" | ||
5 | - reg : offset and length of the register set for the device. | ||
6 | - interrupts : device interrupt | ||
7 | - clock-frequency : the input clock frequency for the UART | ||
8 | - current-speed : baud rate for UART | ||
9 | |||
10 | e.g. | ||
11 | |||
12 | arcuart0: serial@c0fc1000 { | ||
13 | compatible = "snps,arc-uart"; | ||
14 | reg = <0xc0fc1000 0x100>; | ||
15 | interrupts = <5>; | ||
16 | clock-frequency = <80000000>; | ||
17 | current-speed = <115200>; | ||
18 | status = "okay"; | ||
19 | }; | ||
20 | |||
21 | Note: Each port should have an alias correctly numbered in "aliases" node. | ||
22 | |||
23 | e.g. | ||
24 | aliases { | ||
25 | serial0 = &arcuart0; | ||
26 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt b/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt index 6588b6950a7f..8e080b893b49 100644 --- a/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt +++ b/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt | |||
@@ -5,10 +5,16 @@ Required properties: | |||
5 | - reg : Address and length of the register set | 5 | - reg : Address and length of the register set |
6 | - interrupts : Should contain uart interrupt | 6 | - interrupts : Should contain uart interrupt |
7 | 7 | ||
8 | Optional properties: | ||
9 | - location : Decides the location of the USART I/O pins. | ||
10 | Allowed range : [0 .. 5] | ||
11 | Default: 0 | ||
12 | |||
8 | Example: | 13 | Example: |
9 | 14 | ||
10 | uart@0x4000c400 { | 15 | uart@0x4000c400 { |
11 | compatible = "efm32,uart"; | 16 | compatible = "efm32,uart"; |
12 | reg = <0x4000c400 0x400>; | 17 | reg = <0x4000c400 0x400>; |
13 | interrupts = <15>; | 18 | interrupts = <15>; |
19 | location = <0>; | ||
14 | }; | 20 | }; |
diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt new file mode 100644 index 000000000000..7a95c651ceb3 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/dwc3.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | synopsys DWC3 CORE | ||
2 | |||
3 | DWC3- USB3 CONTROLLER | ||
4 | |||
5 | Required properties: | ||
6 | - compatible: must be "synopsys,dwc3" | ||
7 | - reg : Address and length of the register set for the device | ||
8 | - interrupts: Interrupts used by the dwc3 controller. | ||
9 | - usb-phy : array of phandle for the PHY device | ||
10 | |||
11 | Optional properties: | ||
12 | - tx-fifo-resize: determines if the FIFO *has* to be reallocated. | ||
13 | |||
14 | This is usually a subnode to DWC3 glue to which it is connected. | ||
15 | |||
16 | dwc3@4a030000 { | ||
17 | compatible = "synopsys,dwc3"; | ||
18 | reg = <0x4a030000 0xcfff>; | ||
19 | interrupts = <0 92 4> | ||
20 | usb-phy = <&usb2_phy>, <&usb3,phy>; | ||
21 | tx-fifo-resize; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt index e9b005dc7625..34c952883276 100644 --- a/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt +++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt | |||
@@ -11,6 +11,7 @@ Required properties : | |||
11 | - phy_type : Should be one of "ulpi" or "utmi". | 11 | - phy_type : Should be one of "ulpi" or "utmi". |
12 | - nvidia,vbus-gpio : If present, specifies a gpio that needs to be | 12 | - nvidia,vbus-gpio : If present, specifies a gpio that needs to be |
13 | activated for the bus to be powered. | 13 | activated for the bus to be powered. |
14 | - nvidia,phy : phandle of the PHY instance, the controller is connected to. | ||
14 | 15 | ||
15 | Required properties for phy_type == ulpi: | 16 | Required properties for phy_type == ulpi: |
16 | - nvidia,phy-reset-gpio : The GPIO used to reset the PHY. | 17 | - nvidia,phy-reset-gpio : The GPIO used to reset the PHY. |
@@ -27,3 +28,5 @@ Optional properties: | |||
27 | registers are accessed through the APB_MISC base address instead of | 28 | registers are accessed through the APB_MISC base address instead of |
28 | the USB controller. Since this is a legacy issue it probably does not | 29 | the USB controller. Since this is a legacy issue it probably does not |
29 | warrant a compatible string of its own. | 30 | warrant a compatible string of its own. |
31 | - nvidia,needs-double-reset : boolean is to be set for some of the Tegra2 | ||
32 | USB ports, which need reset twice due to hardware issues. | ||
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt new file mode 100644 index 000000000000..6bdaba2f0aa1 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | Tegra SOC USB PHY | ||
2 | |||
3 | The device node for Tegra SOC USB PHY: | ||
4 | |||
5 | Required properties : | ||
6 | - compatible : Should be "nvidia,tegra20-usb-phy". | ||
7 | - reg : Address and length of the register set for the USB PHY interface. | ||
8 | - phy_type : Should be one of "ulpi" or "utmi". | ||
9 | |||
10 | Required properties for phy_type == ulpi: | ||
11 | - nvidia,phy-reset-gpio : The GPIO used to reset the PHY. | ||
12 | |||
13 | Optional properties: | ||
14 | - nvidia,has-legacy-mode : boolean indicates whether this controller can | ||
15 | operate in legacy mode (as APX 2500 / 2600). In legacy mode some | ||
16 | registers are accessed through the APB_MISC base address instead of | ||
17 | the USB controller. \ No newline at end of file | ||
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt index 29a043ecda52..1ef0ce71f8fa 100644 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ b/Documentation/devicetree/bindings/usb/omap-usb.txt | |||
@@ -1,8 +1,11 @@ | |||
1 | OMAP GLUE | 1 | OMAP GLUE AND OTHER OMAP SPECIFIC COMPONENTS |
2 | 2 | ||
3 | OMAP MUSB GLUE | 3 | OMAP MUSB GLUE |
4 | - compatible : Should be "ti,omap4-musb" or "ti,omap3-musb" | 4 | - compatible : Should be "ti,omap4-musb" or "ti,omap3-musb" |
5 | - ti,hwmods : must be "usb_otg_hs" | 5 | - ti,hwmods : must be "usb_otg_hs" |
6 | - ti,has-mailbox : to specify that omap uses an external mailbox | ||
7 | (in control module) to communicate with the musb core during device connect | ||
8 | and disconnect. | ||
6 | - multipoint : Should be "1" indicating the musb controller supports | 9 | - multipoint : Should be "1" indicating the musb controller supports |
7 | multipoint. This is a MUSB configuration-specific setting. | 10 | multipoint. This is a MUSB configuration-specific setting. |
8 | - num_eps : Specifies the number of endpoints. This is also a | 11 | - num_eps : Specifies the number of endpoints. This is also a |
@@ -16,13 +19,19 @@ OMAP MUSB GLUE | |||
16 | - power : Should be "50". This signifies the controller can supply upto | 19 | - power : Should be "50". This signifies the controller can supply upto |
17 | 100mA when operating in host mode. | 20 | 100mA when operating in host mode. |
18 | 21 | ||
22 | Optional properties: | ||
23 | - ctrl-module : phandle of the control module this glue uses to write to | ||
24 | mailbox | ||
25 | |||
19 | SOC specific device node entry | 26 | SOC specific device node entry |
20 | usb_otg_hs: usb_otg_hs@4a0ab000 { | 27 | usb_otg_hs: usb_otg_hs@4a0ab000 { |
21 | compatible = "ti,omap4-musb"; | 28 | compatible = "ti,omap4-musb"; |
22 | ti,hwmods = "usb_otg_hs"; | 29 | ti,hwmods = "usb_otg_hs"; |
30 | ti,has-mailbox; | ||
23 | multipoint = <1>; | 31 | multipoint = <1>; |
24 | num_eps = <16>; | 32 | num_eps = <16>; |
25 | ram_bits = <12>; | 33 | ram_bits = <12>; |
34 | ctrl-module = <&omap_control_usb>; | ||
26 | }; | 35 | }; |
27 | 36 | ||
28 | Board specific device node entry | 37 | Board specific device node entry |
@@ -31,3 +40,26 @@ Board specific device node entry | |||
31 | mode = <3>; | 40 | mode = <3>; |
32 | power = <50>; | 41 | power = <50>; |
33 | }; | 42 | }; |
43 | |||
44 | OMAP CONTROL USB | ||
45 | |||
46 | Required properties: | ||
47 | - compatible: Should be "ti,omap-control-usb" | ||
48 | - reg : Address and length of the register set for the device. It contains | ||
49 | the address of "control_dev_conf" and "otghs_control" or "phy_power_usb" | ||
50 | depending upon omap4 or omap5. | ||
51 | - reg-names: The names of the register addresses corresponding to the registers | ||
52 | filled in "reg". | ||
53 | - ti,type: This is used to differentiate whether the control module has | ||
54 | usb mailbox or usb3 phy power. omap4 has usb mailbox in control module to | ||
55 | notify events to the musb core and omap5 has usb3 phy power register to | ||
56 | power on usb3 phy. Should be "1" if it has mailbox and "2" if it has usb3 | ||
57 | phy power. | ||
58 | |||
59 | omap_control_usb: omap-control-usb@4a002300 { | ||
60 | compatible = "ti,omap-control-usb"; | ||
61 | reg = <0x4a002300 0x4>, | ||
62 | <0x4a00233c 0x4>; | ||
63 | reg-names = "control_dev_conf", "otghs_control"; | ||
64 | ti,type = <1>; | ||
65 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/samsung-usbphy.txt b/Documentation/devicetree/bindings/usb/samsung-usbphy.txt new file mode 100644 index 000000000000..033194934f64 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/samsung-usbphy.txt | |||
@@ -0,0 +1,55 @@ | |||
1 | * Samsung's usb phy transceiver | ||
2 | |||
3 | The Samsung's phy transceiver is used for controlling usb phy for | ||
4 | s3c-hsotg as well as ehci-s5p and ohci-exynos usb controllers | ||
5 | across Samsung SOCs. | ||
6 | TODO: Adding the PHY binding with controller(s) according to the under | ||
7 | developement generic PHY driver. | ||
8 | |||
9 | Required properties: | ||
10 | |||
11 | Exynos4210: | ||
12 | - compatible : should be "samsung,exynos4210-usbphy" | ||
13 | - reg : base physical address of the phy registers and length of memory mapped | ||
14 | region. | ||
15 | |||
16 | Exynos5250: | ||
17 | - compatible : should be "samsung,exynos5250-usbphy" | ||
18 | - reg : base physical address of the phy registers and length of memory mapped | ||
19 | region. | ||
20 | |||
21 | Optional properties: | ||
22 | - #address-cells: should be '1' when usbphy node has a child node with 'reg' | ||
23 | property. | ||
24 | - #size-cells: should be '1' when usbphy node has a child node with 'reg' | ||
25 | property. | ||
26 | - ranges: allows valid translation between child's address space and parent's | ||
27 | address space. | ||
28 | |||
29 | - The child node 'usbphy-sys' to the node 'usbphy' is for the system controller | ||
30 | interface for usb-phy. It should provide the following information required by | ||
31 | usb-phy controller to control phy. | ||
32 | - reg : base physical address of PHY_CONTROL registers. | ||
33 | The size of this register is the total sum of size of all PHY_CONTROL | ||
34 | registers that the SoC has. For example, the size will be | ||
35 | '0x4' in case we have only one PHY_CONTROL register (e.g. | ||
36 | OTHERS register in S3C64XX or USB_PHY_CONTROL register in S5PV210) | ||
37 | and, '0x8' in case we have two PHY_CONTROL registers (e.g. | ||
38 | USBDEVICE_PHY_CONTROL and USBHOST_PHY_CONTROL registers in exynos4x). | ||
39 | and so on. | ||
40 | |||
41 | Example: | ||
42 | - Exynos4210 | ||
43 | |||
44 | usbphy@125B0000 { | ||
45 | #address-cells = <1>; | ||
46 | #size-cells = <1>; | ||
47 | compatible = "samsung,exynos4210-usbphy"; | ||
48 | reg = <0x125B0000 0x100>; | ||
49 | ranges; | ||
50 | |||
51 | usbphy-sys { | ||
52 | /* USB device and host PHY_CONTROL registers */ | ||
53 | reg = <0x10020704 0x8>; | ||
54 | }; | ||
55 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/usb-phy.txt b/Documentation/devicetree/bindings/usb/usb-phy.txt index 80d4148cb661..61496f5cb095 100644 --- a/Documentation/devicetree/bindings/usb/usb-phy.txt +++ b/Documentation/devicetree/bindings/usb/usb-phy.txt | |||
@@ -4,14 +4,39 @@ OMAP USB2 PHY | |||
4 | 4 | ||
5 | Required properties: | 5 | Required properties: |
6 | - compatible: Should be "ti,omap-usb2" | 6 | - compatible: Should be "ti,omap-usb2" |
7 | - reg : Address and length of the register set for the device. Also | 7 | - reg : Address and length of the register set for the device. |
8 | add the address of control module dev conf register until a driver for | 8 | |
9 | control module is added | 9 | Optional properties: |
10 | - ctrl-module : phandle of the control module used by PHY driver to power on | ||
11 | the PHY. | ||
10 | 12 | ||
11 | This is usually a subnode of ocp2scp to which it is connected. | 13 | This is usually a subnode of ocp2scp to which it is connected. |
12 | 14 | ||
13 | usb2phy@4a0ad080 { | 15 | usb2phy@4a0ad080 { |
14 | compatible = "ti,omap-usb2"; | 16 | compatible = "ti,omap-usb2"; |
15 | reg = <0x4a0ad080 0x58>, | 17 | reg = <0x4a0ad080 0x58>; |
16 | <0x4a002300 0x4>; | 18 | ctrl-module = <&omap_control_usb>; |
19 | }; | ||
20 | |||
21 | OMAP USB3 PHY | ||
22 | |||
23 | Required properties: | ||
24 | - compatible: Should be "ti,omap-usb3" | ||
25 | - reg : Address and length of the register set for the device. | ||
26 | - reg-names: The names of the register addresses corresponding to the registers | ||
27 | filled in "reg". | ||
28 | |||
29 | Optional properties: | ||
30 | - ctrl-module : phandle of the control module used by PHY driver to power on | ||
31 | the PHY. | ||
32 | |||
33 | This is usually a subnode of ocp2scp to which it is connected. | ||
34 | |||
35 | usb3phy@4a084400 { | ||
36 | compatible = "ti,omap-usb3"; | ||
37 | reg = <0x4a084400 0x80>, | ||
38 | <0x4a084800 0x64>, | ||
39 | <0x4a084c00 0x40>; | ||
40 | reg-names = "phy_rx", "phy_tx", "pll_ctrl"; | ||
41 | ctrl-module = <&omap_control_usb>; | ||
17 | }; | 42 | }; |
diff --git a/Documentation/devicetree/bindings/usb/usb3503.txt b/Documentation/devicetree/bindings/usb/usb3503.txt new file mode 100644 index 000000000000..6813a715fc7d --- /dev/null +++ b/Documentation/devicetree/bindings/usb/usb3503.txt | |||
@@ -0,0 +1,20 @@ | |||
1 | SMSC USB3503 High-Speed Hub Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Should be "smsc,usb3503". | ||
5 | - reg: Specifies the i2c slave address, it should be 0x08. | ||
6 | - connect-gpios: Should specify GPIO for connect. | ||
7 | - intn-gpios: Should specify GPIO for interrupt. | ||
8 | - reset-gpios: Should specify GPIO for reset. | ||
9 | - initial-mode: Should specify initial mode. | ||
10 | (1 for HUB mode, 2 for STANDBY mode) | ||
11 | |||
12 | Examples: | ||
13 | usb3503@08 { | ||
14 | compatible = "smsc,usb3503"; | ||
15 | reg = <0x08>; | ||
16 | connect-gpios = <&gpx3 0 1>; | ||
17 | intn-gpios = <&gpx3 4 1>; | ||
18 | reset-gpios = <&gpx3 5 1>; | ||
19 | initial-mode = <1>; | ||
20 | }; | ||
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 902b1b1f568e..19e1ef73ab0d 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -14,6 +14,7 @@ bosch Bosch Sensortec GmbH | |||
14 | brcm Broadcom Corporation | 14 | brcm Broadcom Corporation |
15 | cavium Cavium, Inc. | 15 | cavium Cavium, Inc. |
16 | chrp Common Hardware Reference Platform | 16 | chrp Common Hardware Reference Platform |
17 | cirrus Cirrus Logic, Inc. | ||
17 | cortina Cortina Systems, Inc. | 18 | cortina Cortina Systems, Inc. |
18 | dallas Maxim Integrated Products (formerly Dallas Semiconductor) | 19 | dallas Maxim Integrated Products (formerly Dallas Semiconductor) |
19 | denx Denx Software Engineering | 20 | denx Denx Software Engineering |
@@ -42,6 +43,7 @@ powervr PowerVR (deprecated, use img) | |||
42 | qcom Qualcomm, Inc. | 43 | qcom Qualcomm, Inc. |
43 | ramtron Ramtron International | 44 | ramtron Ramtron International |
44 | realtek Realtek Semiconductor Corp. | 45 | realtek Realtek Semiconductor Corp. |
46 | renesas Renesas Electronics Corporation | ||
45 | samsung Samsung Semiconductor | 47 | samsung Samsung Semiconductor |
46 | sbs Smart Battery System | 48 | sbs Smart Battery System |
47 | schindler Schindler | 49 | schindler Schindler |
@@ -50,8 +52,10 @@ simtek | |||
50 | sirf SiRF Technology, Inc. | 52 | sirf SiRF Technology, Inc. |
51 | snps Synopsys, Inc. | 53 | snps Synopsys, Inc. |
52 | st STMicroelectronics | 54 | st STMicroelectronics |
55 | ste ST-Ericsson | ||
53 | stericsson ST-Ericsson | 56 | stericsson ST-Ericsson |
54 | ti Texas Instruments | 57 | ti Texas Instruments |
58 | toshiba Toshiba Corporation | ||
55 | via VIA Technologies, Inc. | 59 | via VIA Technologies, Inc. |
56 | wlf Wolfson Microelectronics | 60 | wlf Wolfson Microelectronics |
57 | wm Wondermedia Technologies, Inc. | 61 | wm Wondermedia Technologies, Inc. |
diff --git a/Documentation/devicetree/bindings/video/backlight/max8925-backlight.txt b/Documentation/devicetree/bindings/video/backlight/max8925-backlight.txt new file mode 100644 index 000000000000..b4cffdaa4137 --- /dev/null +++ b/Documentation/devicetree/bindings/video/backlight/max8925-backlight.txt | |||
@@ -0,0 +1,10 @@ | |||
1 | 88pm860x-backlight bindings | ||
2 | |||
3 | Optional properties: | ||
4 | - maxim,max8925-dual-string: whether support dual string | ||
5 | |||
6 | Example: | ||
7 | |||
8 | backlights { | ||
9 | maxim,max8925-dual-string = <0>; | ||
10 | }; | ||
diff --git a/Documentation/devicetree/bindings/video/display-timing.txt b/Documentation/devicetree/bindings/video/display-timing.txt new file mode 100644 index 000000000000..150038552bc3 --- /dev/null +++ b/Documentation/devicetree/bindings/video/display-timing.txt | |||
@@ -0,0 +1,109 @@ | |||
1 | display-timing bindings | ||
2 | ======================= | ||
3 | |||
4 | display-timings node | ||
5 | -------------------- | ||
6 | |||
7 | required properties: | ||
8 | - none | ||
9 | |||
10 | optional properties: | ||
11 | - native-mode: The native mode for the display, in case multiple modes are | ||
12 | provided. When omitted, assume the first node is the native. | ||
13 | |||
14 | timing subnode | ||
15 | -------------- | ||
16 | |||
17 | required properties: | ||
18 | - hactive, vactive: display resolution | ||
19 | - hfront-porch, hback-porch, hsync-len: horizontal display timing parameters | ||
20 | in pixels | ||
21 | vfront-porch, vback-porch, vsync-len: vertical display timing parameters in | ||
22 | lines | ||
23 | - clock-frequency: display clock in Hz | ||
24 | |||
25 | optional properties: | ||
26 | - hsync-active: hsync pulse is active low/high/ignored | ||
27 | - vsync-active: vsync pulse is active low/high/ignored | ||
28 | - de-active: data-enable pulse is active low/high/ignored | ||
29 | - pixelclk-active: with | ||
30 | - active high = drive pixel data on rising edge/ | ||
31 | sample data on falling edge | ||
32 | - active low = drive pixel data on falling edge/ | ||
33 | sample data on rising edge | ||
34 | - ignored = ignored | ||
35 | - interlaced (bool): boolean to enable interlaced mode | ||
36 | - doublescan (bool): boolean to enable doublescan mode | ||
37 | |||
38 | All the optional properties that are not bool follow the following logic: | ||
39 | <1>: high active | ||
40 | <0>: low active | ||
41 | omitted: not used on hardware | ||
42 | |||
43 | There are different ways of describing the capabilities of a display. The | ||
44 | devicetree representation corresponds to the one commonly found in datasheets | ||
45 | for displays. If a display supports multiple signal timings, the native-mode | ||
46 | can be specified. | ||
47 | |||
48 | The parameters are defined as: | ||
49 | |||
50 | +----------+-------------------------------------+----------+-------+ | ||
51 | | | ↑ | | | | ||
52 | | | |vback_porch | | | | ||
53 | | | ↓ | | | | ||
54 | +----------#######################################----------+-------+ | ||
55 | | # ↑ # | | | ||
56 | | # | # | | | ||
57 | | hback # | # hfront | hsync | | ||
58 | | porch # | hactive # porch | len | | ||
59 | |<-------->#<-------+--------------------------->#<-------->|<----->| | ||
60 | | # | # | | | ||
61 | | # |vactive # | | | ||
62 | | # | # | | | ||
63 | | # ↓ # | | | ||
64 | +----------#######################################----------+-------+ | ||
65 | | | ↑ | | | | ||
66 | | | |vfront_porch | | | | ||
67 | | | ↓ | | | | ||
68 | +----------+-------------------------------------+----------+-------+ | ||
69 | | | ↑ | | | | ||
70 | | | |vsync_len | | | | ||
71 | | | ↓ | | | | ||
72 | +----------+-------------------------------------+----------+-------+ | ||
73 | |||
74 | Example: | ||
75 | |||
76 | display-timings { | ||
77 | native-mode = <&timing0>; | ||
78 | timing0: 1080p24 { | ||
79 | /* 1920x1080p24 */ | ||
80 | clock-frequency = <52000000>; | ||
81 | hactive = <1920>; | ||
82 | vactive = <1080>; | ||
83 | hfront-porch = <25>; | ||
84 | hback-porch = <25>; | ||
85 | hsync-len = <25>; | ||
86 | vback-porch = <2>; | ||
87 | vfront-porch = <2>; | ||
88 | vsync-len = <2>; | ||
89 | hsync-active = <1>; | ||
90 | }; | ||
91 | }; | ||
92 | |||
93 | Every required property also supports the use of ranges, so the commonly used | ||
94 | datasheet description with minimum, typical and maximum values can be used. | ||
95 | |||
96 | Example: | ||
97 | |||
98 | timing1: timing { | ||
99 | /* 1920x1080p24 */ | ||
100 | clock-frequency = <148500000>; | ||
101 | hactive = <1920>; | ||
102 | vactive = <1080>; | ||
103 | hsync-len = <0 44 60>; | ||
104 | hfront-porch = <80 88 95>; | ||
105 | hback-porch = <100 148 160>; | ||
106 | vfront-porch = <0 4 6>; | ||
107 | vback-porch = <0 36 50>; | ||
108 | vsync-len = <0 5 6>; | ||
109 | }; | ||
diff --git a/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt b/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt index 79ead8263ae4..ce0d8e78ed8f 100644 --- a/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | The Samsung's Watchdog controller is used for resuming system operation | 3 | The Samsung's Watchdog controller is used for resuming system operation |
4 | after a preset amount of time during which the WDT reset event has not | 4 | after a preset amount of time during which the WDT reset event has not |
5 | occured. | 5 | occurred. |
6 | 6 | ||
7 | Required properties: | 7 | Required properties: |
8 | - compatible : should be "samsung,s3c2410-wdt" | 8 | - compatible : should be "samsung,s3c2410-wdt" |
diff --git a/Documentation/devicetree/booting-without-of.txt b/Documentation/devicetree/booting-without-of.txt index d4d66757354e..b2fb2f5e1922 100644 --- a/Documentation/devicetree/booting-without-of.txt +++ b/Documentation/devicetree/booting-without-of.txt | |||
@@ -1228,7 +1228,7 @@ hierarchy and routing of interrupts in the hardware. | |||
1228 | The interrupt tree model is fully described in the | 1228 | The interrupt tree model is fully described in the |
1229 | document "Open Firmware Recommended Practice: Interrupt | 1229 | document "Open Firmware Recommended Practice: Interrupt |
1230 | Mapping Version 0.9". The document is available at: | 1230 | Mapping Version 0.9". The document is available at: |
1231 | <http://playground.sun.com/1275/practice>. | 1231 | <http://www.openfirmware.org/ofwg/practice/> |
1232 | 1232 | ||
1233 | 1) interrupts property | 1233 | 1) interrupts property |
1234 | ---------------------- | 1234 | ---------------------- |
diff --git a/Documentation/driver-model/devres.txt b/Documentation/driver-model/devres.txt index 43cff70465ab..b4671459857f 100644 --- a/Documentation/driver-model/devres.txt +++ b/Documentation/driver-model/devres.txt | |||
@@ -266,7 +266,8 @@ IOMAP | |||
266 | devm_ioremap() | 266 | devm_ioremap() |
267 | devm_ioremap_nocache() | 267 | devm_ioremap_nocache() |
268 | devm_iounmap() | 268 | devm_iounmap() |
269 | devm_request_and_ioremap() : checks resource, requests region, ioremaps | 269 | devm_ioremap_resource() : checks resource, requests memory region, ioremaps |
270 | devm_request_and_ioremap() : obsoleted by devm_ioremap_resource() | ||
270 | pcim_iomap() | 271 | pcim_iomap() |
271 | pcim_iounmap() | 272 | pcim_iounmap() |
272 | pcim_iomap_table() : array of mapped addresses indexed by BAR | 273 | pcim_iomap_table() : array of mapped addresses indexed by BAR |
@@ -288,3 +289,7 @@ PINCTRL | |||
288 | PWM | 289 | PWM |
289 | devm_pwm_get() | 290 | devm_pwm_get() |
290 | devm_pwm_put() | 291 | devm_pwm_put() |
292 | |||
293 | PHY | ||
294 | devm_usb_get_phy() | ||
295 | devm_usb_put_phy() | ||
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware index 32bc56b13b1c..5d5ee4c13fa6 100755 --- a/Documentation/dvb/get_dvb_firmware +++ b/Documentation/dvb/get_dvb_firmware | |||
@@ -23,7 +23,7 @@ use IO::Handle; | |||
23 | 23 | ||
24 | @components = ( "sp8870", "sp887x", "tda10045", "tda10046", | 24 | @components = ( "sp8870", "sp887x", "tda10045", "tda10046", |
25 | "tda10046lifeview", "av7110", "dec2000t", "dec2540t", | 25 | "tda10046lifeview", "av7110", "dec2000t", "dec2540t", |
26 | "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", | 26 | "dec3000s", "vp7041", "vp7049", "dibusb", "nxt2002", "nxt2004", |
27 | "or51211", "or51132_qam", "or51132_vsb", "bluebird", | 27 | "or51211", "or51132_qam", "or51132_vsb", "bluebird", |
28 | "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718", | 28 | "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718", |
29 | "af9015", "ngene", "az6027", "lme2510_lg", "lme2510c_s7395", | 29 | "af9015", "ngene", "az6027", "lme2510_lg", "lme2510c_s7395", |
@@ -289,6 +289,19 @@ sub vp7041 { | |||
289 | $outfile; | 289 | $outfile; |
290 | } | 290 | } |
291 | 291 | ||
292 | sub vp7049 { | ||
293 | my $fwfile = "dvb-usb-vp7049-0.95.fw"; | ||
294 | my $url = "http://ao2.it/sites/default/files/blog/2012/11/06/linux-support-digicom-digitune-s-vp7049-udtt7049/$fwfile"; | ||
295 | my $hash = "5609fd295168aea88b25ff43a6f79c36"; | ||
296 | |||
297 | checkstandard(); | ||
298 | |||
299 | wgetfile($fwfile, $url); | ||
300 | verify($fwfile, $hash); | ||
301 | |||
302 | $fwfile; | ||
303 | } | ||
304 | |||
292 | sub dibusb { | 305 | sub dibusb { |
293 | my $url = "http://www.linuxtv.org/downloads/firmware/dvb-usb-dibusb-5.0.0.11.fw"; | 306 | my $url = "http://www.linuxtv.org/downloads/firmware/dvb-usb-dibusb-5.0.0.11.fw"; |
294 | my $outfile = "dvb-dibusb-5.0.0.11.fw"; | 307 | my $outfile = "dvb-dibusb-5.0.0.11.fw"; |
@@ -677,7 +690,7 @@ sub drxk_terratec_h5 { | |||
677 | } | 690 | } |
678 | 691 | ||
679 | sub drxk_terratec_htc_stick { | 692 | sub drxk_terratec_htc_stick { |
680 | my $url = "http://ftp.terratec.de/Receiver/Cinergy_HTC_Stick/Updates/"; | 693 | my $url = "http://ftp.terratec.de/Receiver/Cinergy_HTC_Stick/Updates/History/"; |
681 | my $zipfile = "Cinergy_HTC_Stick_Drv_5.09.1202.00_XP_Vista_7.exe"; | 694 | my $zipfile = "Cinergy_HTC_Stick_Drv_5.09.1202.00_XP_Vista_7.exe"; |
682 | my $hash = "6722a2442a05423b781721fbc069ed5e"; | 695 | my $hash = "6722a2442a05423b781721fbc069ed5e"; |
683 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 0); | 696 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 0); |
diff --git a/Documentation/dynamic-debug-howto.txt b/Documentation/dynamic-debug-howto.txt index 6e1684981da2..72322c6d7352 100644 --- a/Documentation/dynamic-debug-howto.txt +++ b/Documentation/dynamic-debug-howto.txt | |||
@@ -6,8 +6,16 @@ This document describes how to use the dynamic debug (dyndbg) feature. | |||
6 | 6 | ||
7 | Dynamic debug is designed to allow you to dynamically enable/disable | 7 | Dynamic debug is designed to allow you to dynamically enable/disable |
8 | kernel code to obtain additional kernel information. Currently, if | 8 | kernel code to obtain additional kernel information. Currently, if |
9 | CONFIG_DYNAMIC_DEBUG is set, then all pr_debug()/dev_dbg() calls can | 9 | CONFIG_DYNAMIC_DEBUG is set, then all pr_debug()/dev_dbg() and |
10 | be dynamically enabled per-callsite. | 10 | print_hex_dump_debug()/print_hex_dump_bytes() calls can be dynamically |
11 | enabled per-callsite. | ||
12 | |||
13 | If CONFIG_DYNAMIC_DEBUG is not set, print_hex_dump_debug() is just | ||
14 | shortcut for print_hex_dump(KERN_DEBUG). | ||
15 | |||
16 | For print_hex_dump_debug()/print_hex_dump_bytes(), format string is | ||
17 | its 'prefix_str' argument, if it is constant string; or "hexdump" | ||
18 | in case 'prefix_str' is build dynamically. | ||
11 | 19 | ||
12 | Dynamic debug has even more useful features: | 20 | Dynamic debug has even more useful features: |
13 | 21 | ||
@@ -202,6 +210,9 @@ The flags are: | |||
202 | t Include thread ID in messages not generated from interrupt context | 210 | t Include thread ID in messages not generated from interrupt context |
203 | _ No flags are set. (Or'd with others on input) | 211 | _ No flags are set. (Or'd with others on input) |
204 | 212 | ||
213 | For print_hex_dump_debug() and print_hex_dump_bytes(), only 'p' flag | ||
214 | have meaning, other flags ignored. | ||
215 | |||
205 | For display, the flags are preceded by '=' | 216 | For display, the flags are preceded by '=' |
206 | (mnemonic: what the flags are currently equal to). | 217 | (mnemonic: what the flags are currently equal to). |
207 | 218 | ||
diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt index 8fbd8b46ee34..dcf338e62b71 100644 --- a/Documentation/filesystems/f2fs.txt +++ b/Documentation/filesystems/f2fs.txt | |||
@@ -175,9 +175,9 @@ consists of multiple segments as described below. | |||
175 | align with the zone size <-| | 175 | align with the zone size <-| |
176 | |-> align with the segment size | 176 | |-> align with the segment size |
177 | _________________________________________________________________________ | 177 | _________________________________________________________________________ |
178 | | | | Node | Segment | Segment | | | 178 | | | | Segment | Node | Segment | | |
179 | | Superblock | Checkpoint | Address | Info. | Summary | Main | | 179 | | Superblock | Checkpoint | Info. | Address | Summary | Main | |
180 | | (SB) | (CP) | Table (NAT) | Table (SIT) | Area (SSA) | | | 180 | | (SB) | (CP) | Table (SIT) | Table (NAT) | Area (SSA) | | |
181 | |____________|_____2______|______N______|______N______|______N_____|__N___| | 181 | |____________|_____2______|______N______|______N______|______N_____|__N___| |
182 | . . | 182 | . . |
183 | . . | 183 | . . |
@@ -200,14 +200,14 @@ consists of multiple segments as described below. | |||
200 | : It contains file system information, bitmaps for valid NAT/SIT sets, orphan | 200 | : It contains file system information, bitmaps for valid NAT/SIT sets, orphan |
201 | inode lists, and summary entries of current active segments. | 201 | inode lists, and summary entries of current active segments. |
202 | 202 | ||
203 | - Node Address Table (NAT) | ||
204 | : It is composed of a block address table for all the node blocks stored in | ||
205 | Main area. | ||
206 | |||
207 | - Segment Information Table (SIT) | 203 | - Segment Information Table (SIT) |
208 | : It contains segment information such as valid block count and bitmap for the | 204 | : It contains segment information such as valid block count and bitmap for the |
209 | validity of all the blocks. | 205 | validity of all the blocks. |
210 | 206 | ||
207 | - Node Address Table (NAT) | ||
208 | : It is composed of a block address table for all the node blocks stored in | ||
209 | Main area. | ||
210 | |||
211 | - Segment Summary Area (SSA) | 211 | - Segment Summary Area (SSA) |
212 | : It contains summary entries which contains the owner information of all the | 212 | : It contains summary entries which contains the owner information of all the |
213 | data and node blocks stored in Main area. | 213 | data and node blocks stored in Main area. |
@@ -236,13 +236,13 @@ For file system consistency, each CP points to which NAT and SIT copies are | |||
236 | valid, as shown as below. | 236 | valid, as shown as below. |
237 | 237 | ||
238 | +--------+----------+---------+ | 238 | +--------+----------+---------+ |
239 | | CP | NAT | SIT | | 239 | | CP | SIT | NAT | |
240 | +--------+----------+---------+ | 240 | +--------+----------+---------+ |
241 | . . . . | 241 | . . . . |
242 | . . . . | 242 | . . . . |
243 | . . . . | 243 | . . . . |
244 | +-------+-------+--------+--------+--------+--------+ | 244 | +-------+-------+--------+--------+--------+--------+ |
245 | | CP #0 | CP #1 | NAT #0 | NAT #1 | SIT #0 | SIT #1 | | 245 | | CP #0 | CP #1 | SIT #0 | SIT #1 | NAT #0 | NAT #1 | |
246 | +-------+-------+--------+--------+--------+--------+ | 246 | +-------+-------+--------+--------+--------+--------+ |
247 | | ^ ^ | 247 | | ^ ^ |
248 | | | | | 248 | | | | |
diff --git a/Documentation/hid/hid-sensor.txt b/Documentation/hid/hid-sensor.txt index 948b0989c433..948b0989c433 100755..100644 --- a/Documentation/hid/hid-sensor.txt +++ b/Documentation/hid/hid-sensor.txt | |||
diff --git a/Documentation/hwmon/coretemp b/Documentation/hwmon/coretemp index 3374c085678d..fec5a9bf755f 100644 --- a/Documentation/hwmon/coretemp +++ b/Documentation/hwmon/coretemp | |||
@@ -66,6 +66,7 @@ Process Processor TjMax(C) | |||
66 | i5 3470T 91 | 66 | i5 3470T 91 |
67 | 67 | ||
68 | 32nm Core i3/i5/i7 Processors | 68 | 32nm Core i3/i5/i7 Processors |
69 | i7 2600 98 | ||
69 | i7 660UM/640/620, 640LM/620, 620M, 610E 105 | 70 | i7 660UM/640/620, 640LM/620, 620M, 610E 105 |
70 | i5 540UM/520/430, 540M/520/450/430 105 | 71 | i5 540UM/520/430, 540M/520/450/430 105 |
71 | i3 330E, 370M/350/330 90 rPGA, 105 BGA | 72 | i3 330E, 370M/350/330 90 rPGA, 105 BGA |
@@ -79,7 +80,10 @@ Process Processor TjMax(C) | |||
79 | P4505/P4500 90 | 80 | P4505/P4500 90 |
80 | 81 | ||
81 | 32nm Atom Processors | 82 | 32nm Atom Processors |
83 | S1260/1220 95 | ||
84 | S1240 102 | ||
82 | Z2460 90 | 85 | Z2460 90 |
86 | Z2760 90 | ||
83 | D2700/2550/2500 100 | 87 | D2700/2550/2500 100 |
84 | N2850/2800/2650/2600 100 | 88 | N2850/2800/2650/2600 100 |
85 | 89 | ||
@@ -98,6 +102,7 @@ Process Processor TjMax(C) | |||
98 | 102 | ||
99 | 45nm Atom Processors | 103 | 45nm Atom Processors |
100 | D525/510/425/410 100 | 104 | D525/510/425/410 100 |
105 | K525/510/425/410 100 | ||
101 | Z670/650 90 | 106 | Z670/650 90 |
102 | Z560/550/540/530P/530/520PT/520/515/510PT/510P 90 | 107 | Z560/550/540/530P/530/520PT/520/515/510PT/510P 90 |
103 | Z510/500 90 | 108 | Z510/500 90 |
@@ -107,7 +112,11 @@ Process Processor TjMax(C) | |||
107 | 330/230 125 | 112 | 330/230 125 |
108 | E680/660/640/620 90 | 113 | E680/660/640/620 90 |
109 | E680T/660T/640T/620T 110 | 114 | E680T/660T/640T/620T 110 |
115 | E665C/645C 90 | ||
116 | E665CT/645CT 110 | ||
110 | CE4170/4150/4110 110 | 117 | CE4170/4150/4110 110 |
118 | CE4200 series unknown | ||
119 | CE5300 series unknown | ||
111 | 120 | ||
112 | 45nm Core2 Processors | 121 | 45nm Core2 Processors |
113 | Solo ULV SU3500/3300 100 | 122 | Solo ULV SU3500/3300 100 |
diff --git a/Documentation/hwmon/ina209 b/Documentation/hwmon/ina209 new file mode 100644 index 000000000000..672501de4509 --- /dev/null +++ b/Documentation/hwmon/ina209 | |||
@@ -0,0 +1,93 @@ | |||
1 | Kernel driver ina209 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Burr-Brown / Texas Instruments INA209 | ||
6 | Prefix: 'ina209' | ||
7 | Addresses scanned: - | ||
8 | Datasheet: | ||
9 | http://www.ti.com/lit/gpn/ina209 | ||
10 | |||
11 | Author: Paul Hays <Paul.Hays@cattail.ca> | ||
12 | Author: Ira W. Snyder <iws@ovro.caltech.edu> | ||
13 | Author: Guenter Roeck <linux@roeck-us.net> | ||
14 | |||
15 | |||
16 | Description | ||
17 | ----------- | ||
18 | |||
19 | The TI / Burr-Brown INA209 monitors voltage, current, and power on the high side | ||
20 | of a D.C. power supply. It can perform measurements and calculations in the | ||
21 | background to supply readings at any time. It includes a programmable | ||
22 | calibration multiplier to scale the displayed current and power values. | ||
23 | |||
24 | |||
25 | Sysfs entries | ||
26 | ------------- | ||
27 | |||
28 | The INA209 chip is highly configurable both via hardwiring and via | ||
29 | the I2C bus. See the datasheet for details. | ||
30 | |||
31 | This tries to expose most monitoring features of the hardware via | ||
32 | sysfs. It does not support every feature of this chip. | ||
33 | |||
34 | |||
35 | in0_input shunt voltage (mV) | ||
36 | in0_input_highest shunt voltage historical maximum reading (mV) | ||
37 | in0_input_lowest shunt voltage historical minimum reading (mV) | ||
38 | in0_reset_history reset shunt voltage history | ||
39 | in0_max shunt voltage max alarm limit (mV) | ||
40 | in0_min shunt voltage min alarm limit (mV) | ||
41 | in0_crit_max shunt voltage crit max alarm limit (mV) | ||
42 | in0_crit_min shunt voltage crit min alarm limit (mV) | ||
43 | in0_max_alarm shunt voltage max alarm limit exceeded | ||
44 | in0_min_alarm shunt voltage min alarm limit exceeded | ||
45 | in0_crit_max_alarm shunt voltage crit max alarm limit exceeded | ||
46 | in0_crit_min_alarm shunt voltage crit min alarm limit exceeded | ||
47 | |||
48 | in1_input bus voltage (mV) | ||
49 | in1_input_highest bus voltage historical maximum reading (mV) | ||
50 | in1_input_lowest bus voltage historical minimum reading (mV) | ||
51 | in1_reset_history reset bus voltage history | ||
52 | in1_max bus voltage max alarm limit (mV) | ||
53 | in1_min bus voltage min alarm limit (mV) | ||
54 | in1_crit_max bus voltage crit max alarm limit (mV) | ||
55 | in1_crit_min bus voltage crit min alarm limit (mV) | ||
56 | in1_max_alarm bus voltage max alarm limit exceeded | ||
57 | in1_min_alarm bus voltage min alarm limit exceeded | ||
58 | in1_crit_max_alarm bus voltage crit max alarm limit exceeded | ||
59 | in1_crit_min_alarm bus voltage crit min alarm limit exceeded | ||
60 | |||
61 | power1_input power measurement (uW) | ||
62 | power1_input_highest power historical maximum reading (uW) | ||
63 | power1_reset_history reset power history | ||
64 | power1_max power max alarm limit (uW) | ||
65 | power1_crit power crit alarm limit (uW) | ||
66 | power1_max_alarm power max alarm limit exceeded | ||
67 | power1_crit_alarm power crit alarm limit exceeded | ||
68 | |||
69 | curr1_input current measurement (mA) | ||
70 | |||
71 | update_interval data conversion time; affects number of samples used | ||
72 | to average results for shunt and bus voltages. | ||
73 | |||
74 | General Remarks | ||
75 | --------------- | ||
76 | |||
77 | The power and current registers in this chip require that the calibration | ||
78 | register is programmed correctly before they are used. Normally this is expected | ||
79 | to be done in the BIOS. In the absence of BIOS programming, the shunt resistor | ||
80 | voltage can be provided using platform data. The driver uses platform data from | ||
81 | the ina2xx driver for this purpose. If calibration register data is not provided | ||
82 | via platform data, the driver checks if the calibration register has been | ||
83 | programmed (ie has a value not equal to zero). If so, this value is retained. | ||
84 | Otherwise, a default value reflecting a shunt resistor value of 10 mOhm is | ||
85 | programmed into the calibration register. | ||
86 | |||
87 | |||
88 | Output Pins | ||
89 | ----------- | ||
90 | |||
91 | Output pin programming is a board feature which depends on the BIOS. It is | ||
92 | outside the scope of a hardware monitoring driver to enable or disable output | ||
93 | pins. | ||
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87 index 8386aadc0a82..c263740f0cba 100644 --- a/Documentation/hwmon/it87 +++ b/Documentation/hwmon/it87 | |||
@@ -30,6 +30,14 @@ Supported chips: | |||
30 | Prefix: 'it8728' | 30 | Prefix: 'it8728' |
31 | Addresses scanned: from Super I/O config space (8 I/O ports) | 31 | Addresses scanned: from Super I/O config space (8 I/O ports) |
32 | Datasheet: Not publicly available | 32 | Datasheet: Not publicly available |
33 | * IT8771E | ||
34 | Prefix: 'it8771' | ||
35 | Addresses scanned: from Super I/O config space (8 I/O ports) | ||
36 | Datasheet: Not publicly available | ||
37 | * IT8772E | ||
38 | Prefix: 'it8772' | ||
39 | Addresses scanned: from Super I/O config space (8 I/O ports) | ||
40 | Datasheet: Not publicly available | ||
33 | * IT8782F | 41 | * IT8782F |
34 | Prefix: 'it8782' | 42 | Prefix: 'it8782' |
35 | Addresses scanned: from Super I/O config space (8 I/O ports) | 43 | Addresses scanned: from Super I/O config space (8 I/O ports) |
@@ -83,8 +91,8 @@ Description | |||
83 | ----------- | 91 | ----------- |
84 | 92 | ||
85 | This driver implements support for the IT8705F, IT8712F, IT8716F, | 93 | This driver implements support for the IT8705F, IT8712F, IT8716F, |
86 | IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8781F, IT8782F, | 94 | IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8771E, IT8772E, |
87 | IT8783E/F, and SiS950 chips. | 95 | IT8782F, IT8783E/F, and SiS950 chips. |
88 | 96 | ||
89 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, | 97 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, |
90 | joysticks and other miscellaneous stuff. For hardware monitoring, they | 98 | joysticks and other miscellaneous stuff. For hardware monitoring, they |
@@ -118,8 +126,8 @@ The IT8726F is just bit enhanced IT8716F with additional hardware | |||
118 | for AMD power sequencing. Therefore the chip will appear as IT8716F | 126 | for AMD power sequencing. Therefore the chip will appear as IT8716F |
119 | to userspace applications. | 127 | to userspace applications. |
120 | 128 | ||
121 | The IT8728F is considered compatible with the IT8721F, until a datasheet | 129 | The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F, |
122 | becomes available (hopefully.) | 130 | until a datasheet becomes available (hopefully.) |
123 | 131 | ||
124 | Temperatures are measured in degrees Celsius. An alarm is triggered once | 132 | Temperatures are measured in degrees Celsius. An alarm is triggered once |
125 | when the Overtemperature Shutdown limit is crossed. | 133 | when the Overtemperature Shutdown limit is crossed. |
diff --git a/Documentation/hwmon/jc42 b/Documentation/hwmon/jc42 index 66ecb9fc8246..165077121238 100644 --- a/Documentation/hwmon/jc42 +++ b/Documentation/hwmon/jc42 | |||
@@ -17,12 +17,13 @@ Supported chips: | |||
17 | * Maxim MAX6604 | 17 | * Maxim MAX6604 |
18 | Datasheets: | 18 | Datasheets: |
19 | http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf | 19 | http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf |
20 | * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP9843 | 20 | * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP98244, MCP9843 |
21 | Datasheets: | 21 | Datasheets: |
22 | http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf | 22 | http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf |
23 | http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf | 23 | http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf |
24 | http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf | 24 | http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf |
25 | http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf | 25 | http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf |
26 | http://ww1.microchip.com/downloads/en/DeviceDoc/22327A.pdf | ||
26 | * NXP Semiconductors SE97, SE97B, SE98, SE98A | 27 | * NXP Semiconductors SE97, SE97B, SE98, SE98A |
27 | Datasheets: | 28 | Datasheets: |
28 | http://www.nxp.com/documents/data_sheet/SE97.pdf | 29 | http://www.nxp.com/documents/data_sheet/SE97.pdf |
diff --git a/Documentation/hwmon/lm73 b/Documentation/hwmon/lm73 new file mode 100644 index 000000000000..8af059dcb642 --- /dev/null +++ b/Documentation/hwmon/lm73 | |||
@@ -0,0 +1,90 @@ | |||
1 | Kernel driver lm73 | ||
2 | ================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Texas Instruments LM73 | ||
6 | Prefix: 'lm73' | ||
7 | Addresses scanned: I2C 0x48, 0x49, 0x4a, 0x4c, 0x4d, and 0x4e | ||
8 | Datasheet: Publicly available at the Texas Instruments website | ||
9 | http://www.ti.com/product/lm73 | ||
10 | |||
11 | Author: Guillaume Ligneul <guillaume.ligneul@gmail.com> | ||
12 | Documentation: Chris Verges <kg4ysn@gmail.com> | ||
13 | |||
14 | |||
15 | Description | ||
16 | ----------- | ||
17 | |||
18 | The LM73 is a digital temperature sensor. All temperature values are | ||
19 | given in degrees Celsius. | ||
20 | |||
21 | Measurement Resolution Support | ||
22 | ------------------------------ | ||
23 | |||
24 | The LM73 supports four resolutions, defined in terms of degrees C per | ||
25 | LSB: 0.25, 0.125, 0.0625, and 0.3125. Changing the resolution mode | ||
26 | affects the conversion time of the LM73's analog-to-digital converter. | ||
27 | From userspace, the desired resolution can be specified as a function of | ||
28 | conversion time via the 'update_interval' sysfs attribute for the | ||
29 | device. This attribute will normalize ranges of input values to the | ||
30 | maximum times defined for the resolution in the datasheet. | ||
31 | |||
32 | Resolution Conv. Time Input Range | ||
33 | (C/LSB) (msec) (msec) | ||
34 | -------------------------------------- | ||
35 | 0.25 14 0..14 | ||
36 | 0.125 28 15..28 | ||
37 | 0.0625 56 29..56 | ||
38 | 0.03125 112 57..infinity | ||
39 | -------------------------------------- | ||
40 | |||
41 | The following examples show how the 'update_interval' attribute can be | ||
42 | used to change the conversion time: | ||
43 | |||
44 | $ echo 0 > update_interval | ||
45 | $ cat update_interval | ||
46 | 14 | ||
47 | $ cat temp1_input | ||
48 | 24250 | ||
49 | |||
50 | $ echo 22 > update_interval | ||
51 | $ cat update_interval | ||
52 | 28 | ||
53 | $ cat temp1_input | ||
54 | 24125 | ||
55 | |||
56 | $ echo 56 > update_interval | ||
57 | $ cat update_interval | ||
58 | 56 | ||
59 | $ cat temp1_input | ||
60 | 24062 | ||
61 | |||
62 | $ echo 85 > update_interval | ||
63 | $ cat update_interval | ||
64 | 112 | ||
65 | $ cat temp1_input | ||
66 | 24031 | ||
67 | |||
68 | As shown here, the lm73 driver automatically adjusts any user input for | ||
69 | 'update_interval' via a step function. Reading back the | ||
70 | 'update_interval' value after a write operation will confirm the | ||
71 | conversion time actively in use. | ||
72 | |||
73 | Mathematically, the resolution can be derived from the conversion time | ||
74 | via the following function: | ||
75 | |||
76 | g(x) = 0.250 * [log(x/14) / log(2)] | ||
77 | |||
78 | where 'x' is the output from 'update_interval' and 'g(x)' is the | ||
79 | resolution in degrees C per LSB. | ||
80 | |||
81 | Alarm Support | ||
82 | ------------- | ||
83 | |||
84 | The LM73 features a simple over-temperature alarm mechanism. This | ||
85 | feature is exposed via the sysfs attributes. | ||
86 | |||
87 | The attributes 'temp1_max_alarm' and 'temp1_min_alarm' are flags | ||
88 | provided by the LM73 that indicate whether the measured temperature has | ||
89 | passed the 'temp1_max' and 'temp1_min' thresholds, respectively. These | ||
90 | values _must_ be read to clear the registers on the LM73. | ||
diff --git a/Documentation/hwmon/max34440 b/Documentation/hwmon/max34440 index 04482226db20..47651ff341ae 100644 --- a/Documentation/hwmon/max34440 +++ b/Documentation/hwmon/max34440 | |||
@@ -16,6 +16,16 @@ Supported chips: | |||
16 | Prefixes: 'max34446' | 16 | Prefixes: 'max34446' |
17 | Addresses scanned: - | 17 | Addresses scanned: - |
18 | Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34446.pdf | 18 | Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34446.pdf |
19 | * Maxim MAX34460 | ||
20 | PMBus 12-Channel Voltage Monitor & Sequencer | ||
21 | Prefix: 'max34460' | ||
22 | Addresses scanned: - | ||
23 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX34460.pdf | ||
24 | * Maxim MAX34461 | ||
25 | PMBus 16-Channel Voltage Monitor & Sequencer | ||
26 | Prefix: 'max34461' | ||
27 | Addresses scanned: - | ||
28 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX34461.pdf | ||
19 | 29 | ||
20 | Author: Guenter Roeck <guenter.roeck@ericsson.com> | 30 | Author: Guenter Roeck <guenter.roeck@ericsson.com> |
21 | 31 | ||
@@ -26,6 +36,9 @@ Description | |||
26 | This driver supports hardware montoring for Maxim MAX34440 PMBus 6-Channel | 36 | This driver supports hardware montoring for Maxim MAX34440 PMBus 6-Channel |
27 | Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager | 37 | Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager |
28 | and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger. | 38 | and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger. |
39 | It also supports the MAX34460 and MAX34461 PMBus Voltage Monitor & Sequencers. | ||
40 | The MAX34460 supports 12 voltage channels, and the MAX34461 supports 16 voltage | ||
41 | channels. | ||
29 | 42 | ||
30 | The driver is a client driver to the core PMBus driver. Please see | 43 | The driver is a client driver to the core PMBus driver. Please see |
31 | Documentation/hwmon/pmbus for details on PMBus client drivers. | 44 | Documentation/hwmon/pmbus for details on PMBus client drivers. |
@@ -109,3 +122,6 @@ temp[1-8]_reset_history Write any value to reset history. | |||
109 | 122 | ||
110 | temp7 and temp8 attributes only exist for MAX34440. | 123 | temp7 and temp8 attributes only exist for MAX34440. |
111 | MAX34446 only supports temp[1-3]. | 124 | MAX34446 only supports temp[1-3]. |
125 | |||
126 | MAX34460 supports attribute groups in[1-12] and temp[1-5]. | ||
127 | MAX34461 supports attribute groups in[1-16] and temp[1-5]. | ||
diff --git a/Documentation/hwmon/max6697 b/Documentation/hwmon/max6697 new file mode 100644 index 000000000000..6594177ededa --- /dev/null +++ b/Documentation/hwmon/max6697 | |||
@@ -0,0 +1,58 @@ | |||
1 | Kernel driver max6697 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Maxim MAX6581 | ||
6 | Prefix: 'max6581' | ||
7 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6581.pdf | ||
8 | * Maxim MAX6602 | ||
9 | Prefix: 'max6602' | ||
10 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6602.pdf | ||
11 | * Maxim MAX6622 | ||
12 | Prefix: 'max6622' | ||
13 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6622.pdf | ||
14 | * Maxim MAX6636 | ||
15 | Prefix: 'max6636' | ||
16 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6636.pdf | ||
17 | * Maxim MAX6689 | ||
18 | Prefix: 'max6689' | ||
19 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6689.pdf | ||
20 | * Maxim MAX6693 | ||
21 | Prefix: 'max6693' | ||
22 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6693.pdf | ||
23 | * Maxim MAX6694 | ||
24 | Prefix: 'max6694' | ||
25 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6694.pdf | ||
26 | * Maxim MAX6697 | ||
27 | Prefix: 'max6697' | ||
28 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6697.pdf | ||
29 | * Maxim MAX6698 | ||
30 | Prefix: 'max6698' | ||
31 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6698.pdf | ||
32 | * Maxim MAX6699 | ||
33 | Prefix: 'max6699' | ||
34 | Datasheet: http://datasheets.maximintegrated.com/en/ds/MAX6699.pdf | ||
35 | |||
36 | Author: | ||
37 | Guenter Roeck <linux@roeck-us.net> | ||
38 | |||
39 | Description | ||
40 | ----------- | ||
41 | |||
42 | This driver implements support for several MAX6697 compatible temperature sensor | ||
43 | chips. The chips support one local temperature sensor plus four, six, or seven | ||
44 | remote temperature sensors. Remote temperature sensors are diode-connected | ||
45 | thermal transitors, except for MAX6698 which supports three diode-connected | ||
46 | thermal transistors plus three thermistors in addition to the local temperature | ||
47 | sensor. | ||
48 | |||
49 | The driver provides the following sysfs attributes. temp1 is the local (chip) | ||
50 | temperature, temp[2..n] are remote temperatures. The actually supported | ||
51 | per-channel attributes are chip type and channel dependent. | ||
52 | |||
53 | tempX_input RO temperature | ||
54 | tempX_max RW temperature maximum threshold | ||
55 | tempX_max_alarm RO temperature maximum threshold alarm | ||
56 | tempX_crit RW temperature critical threshold | ||
57 | tempX_crit_alarm RO temperature critical threshold alarm | ||
58 | tempX_fault RO temperature diode fault (remote sensors only) | ||
diff --git a/Documentation/hwmon/sysfs-interface b/Documentation/hwmon/sysfs-interface index 1f4dd855a299..79f8257dd790 100644 --- a/Documentation/hwmon/sysfs-interface +++ b/Documentation/hwmon/sysfs-interface | |||
@@ -722,14 +722,14 @@ add/subtract if it has been divided before the add/subtract. | |||
722 | What to do if a value is found to be invalid, depends on the type of the | 722 | What to do if a value is found to be invalid, depends on the type of the |
723 | sysfs attribute that is being set. If it is a continuous setting like a | 723 | sysfs attribute that is being set. If it is a continuous setting like a |
724 | tempX_max or inX_max attribute, then the value should be clamped to its | 724 | tempX_max or inX_max attribute, then the value should be clamped to its |
725 | limits using SENSORS_LIMIT(value, min_limit, max_limit). If it is not | 725 | limits using clamp_val(value, min_limit, max_limit). If it is not continuous |
726 | continuous like for example a tempX_type, then when an invalid value is | 726 | like for example a tempX_type, then when an invalid value is written, |
727 | written, -EINVAL should be returned. | 727 | -EINVAL should be returned. |
728 | 728 | ||
729 | Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees): | 729 | Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees): |
730 | 730 | ||
731 | long v = simple_strtol(buf, NULL, 10) / 1000; | 731 | long v = simple_strtol(buf, NULL, 10) / 1000; |
732 | v = SENSORS_LIMIT(v, -128, 127); | 732 | v = clamp_val(v, -128, 127); |
733 | /* write v to register */ | 733 | /* write v to register */ |
734 | 734 | ||
735 | Example2, fan divider setting, valid values 2, 4 and 8: | 735 | Example2, fan divider setting, valid values 2, 4 and 8: |
diff --git a/Documentation/hwmon/zl6100 b/Documentation/hwmon/zl6100 index a995b41724fd..3d924b6b59e9 100644 --- a/Documentation/hwmon/zl6100 +++ b/Documentation/hwmon/zl6100 | |||
@@ -121,12 +121,26 @@ in1_max_alarm Input voltage high alarm. | |||
121 | in1_lcrit_alarm Input voltage critical low alarm. | 121 | in1_lcrit_alarm Input voltage critical low alarm. |
122 | in1_crit_alarm Input voltage critical high alarm. | 122 | in1_crit_alarm Input voltage critical high alarm. |
123 | 123 | ||
124 | in2_label "vout1" | 124 | in2_label "vmon" |
125 | in2_input Measured output voltage. | 125 | in2_input Measured voltage on VMON (ZL2004) or VDRV (ZL9101M, |
126 | in2_lcrit Critical minimum output Voltage. | 126 | ZL9117M) pin. Reported voltage is 16x the voltage on the |
127 | in2_crit Critical maximum output voltage. | 127 | pin (adjusted internally by the chip). |
128 | in2_lcrit_alarm Critical output voltage critical low alarm. | 128 | in2_lcrit Critical minumum VMON/VDRV Voltage. |
129 | in2_crit_alarm Critical output voltage critical high alarm. | 129 | in2_crit Critical maximum VMON/VDRV voltage. |
130 | in2_lcrit_alarm VMON/VDRV voltage critical low alarm. | ||
131 | in2_crit_alarm VMON/VDRV voltage critical high alarm. | ||
132 | |||
133 | vmon attributes are supported on ZL2004, ZL9101M, | ||
134 | and ZL9117M only. | ||
135 | |||
136 | inX_label "vout1" | ||
137 | inX_input Measured output voltage. | ||
138 | inX_lcrit Critical minimum output Voltage. | ||
139 | inX_crit Critical maximum output voltage. | ||
140 | inX_lcrit_alarm Critical output voltage critical low alarm. | ||
141 | inX_crit_alarm Critical output voltage critical high alarm. | ||
142 | |||
143 | X is 3 for ZL2004, ZL9101M, and ZL9117M, 2 otherwise. | ||
130 | 144 | ||
131 | curr1_label "iout1" | 145 | curr1_label "iout1" |
132 | curr1_input Measured output current. | 146 | curr1_input Measured output current. |
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801 index 157416e78cc4..d55b8ab2d10f 100644 --- a/Documentation/i2c/busses/i2c-i801 +++ b/Documentation/i2c/busses/i2c-i801 | |||
@@ -22,6 +22,8 @@ Supported adapters: | |||
22 | * Intel Panther Point (PCH) | 22 | * Intel Panther Point (PCH) |
23 | * Intel Lynx Point (PCH) | 23 | * Intel Lynx Point (PCH) |
24 | * Intel Lynx Point-LP (PCH) | 24 | * Intel Lynx Point-LP (PCH) |
25 | * Intel Avoton (SOC) | ||
26 | * Intel Wellsburg (PCH) | ||
25 | Datasheets: Publicly available at the Intel website | 27 | Datasheets: Publicly available at the Intel website |
26 | 28 | ||
27 | On Intel Patsburg and later chipsets, both the normal host SMBus controller | 29 | On Intel Patsburg and later chipsets, both the normal host SMBus controller |
diff --git a/Documentation/i2c/busses/i2c-ismt b/Documentation/i2c/busses/i2c-ismt new file mode 100644 index 000000000000..737355822c0b --- /dev/null +++ b/Documentation/i2c/busses/i2c-ismt | |||
@@ -0,0 +1,36 @@ | |||
1 | Kernel driver i2c-ismt | ||
2 | |||
3 | Supported adapters: | ||
4 | * Intel S12xx series SOCs | ||
5 | |||
6 | Authors: | ||
7 | Bill Brown <bill.e.brown@intel.com> | ||
8 | |||
9 | |||
10 | Module Parameters | ||
11 | ----------------- | ||
12 | |||
13 | * bus_speed (unsigned int) | ||
14 | Allows changing of the bus speed. Normally, the bus speed is set by the BIOS | ||
15 | and never needs to be changed. However, some SMBus analyzers are too slow for | ||
16 | monitoring the bus during debug, thus the need for this module parameter. | ||
17 | Specify the bus speed in kHz. | ||
18 | Available bus frequency settings: | ||
19 | 0 no change | ||
20 | 80 kHz | ||
21 | 100 kHz | ||
22 | 400 kHz | ||
23 | 1000 kHz | ||
24 | |||
25 | |||
26 | Description | ||
27 | ----------- | ||
28 | |||
29 | The S12xx series of SOCs have a pair of integrated SMBus 2.0 controllers | ||
30 | targeted primarily at the microserver and storage markets. | ||
31 | |||
32 | The S12xx series contain a pair of PCI functions. An output of lspci will show | ||
33 | something similar to the following: | ||
34 | |||
35 | 00:13.0 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 0 | ||
36 | 00:13.1 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 1 | ||
diff --git a/Documentation/i2c/busses/i2c-sis630 b/Documentation/i2c/busses/i2c-sis630 index 0b9697366930..ee7943631074 100644 --- a/Documentation/i2c/busses/i2c-sis630 +++ b/Documentation/i2c/busses/i2c-sis630 | |||
@@ -4,9 +4,11 @@ Supported adapters: | |||
4 | * Silicon Integrated Systems Corp (SiS) | 4 | * Silicon Integrated Systems Corp (SiS) |
5 | 630 chipset (Datasheet: available at http://www.sfr-fresh.com/linux) | 5 | 630 chipset (Datasheet: available at http://www.sfr-fresh.com/linux) |
6 | 730 chipset | 6 | 730 chipset |
7 | 964 chipset | ||
7 | * Possible other SiS chipsets ? | 8 | * Possible other SiS chipsets ? |
8 | 9 | ||
9 | Author: Alexander Malysh <amalysh@web.de> | 10 | Author: Alexander Malysh <amalysh@web.de> |
11 | Amaury Decrême <amaury.decreme@gmail.com> - SiS964 support | ||
10 | 12 | ||
11 | Module Parameters | 13 | Module Parameters |
12 | ----------------- | 14 | ----------------- |
@@ -18,6 +20,7 @@ Module Parameters | |||
18 | * high_clock = [1|0] Forcibly set Host Master Clock to 56KHz (default, | 20 | * high_clock = [1|0] Forcibly set Host Master Clock to 56KHz (default, |
19 | what your BIOS use). DANGEROUS! This should be a bit | 21 | what your BIOS use). DANGEROUS! This should be a bit |
20 | faster, but freeze some systems (i.e. my Laptop). | 22 | faster, but freeze some systems (i.e. my Laptop). |
23 | SIS630/730 chip only. | ||
21 | 24 | ||
22 | 25 | ||
23 | Description | 26 | Description |
@@ -36,6 +39,12 @@ or like this: | |||
36 | 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02) | 39 | 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02) |
37 | 00:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513 | 40 | 00:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513 |
38 | 41 | ||
42 | or like this: | ||
43 | |||
44 | 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 760/M760 Host (rev 02) | ||
45 | 00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS964 [MuTIOL Media IO] | ||
46 | LPC Controller (rev 36) | ||
47 | |||
39 | in your 'lspci' output , then this driver is for your chipset. | 48 | in your 'lspci' output , then this driver is for your chipset. |
40 | 49 | ||
41 | Thank You | 50 | Thank You |
diff --git a/Documentation/i2c/smbus-protocol b/Documentation/i2c/smbus-protocol index d1f22618e14b..6012b12b3510 100644 --- a/Documentation/i2c/smbus-protocol +++ b/Documentation/i2c/smbus-protocol | |||
@@ -137,8 +137,8 @@ available for writes where the two data bytes are the other way | |||
137 | around (not SMBus compliant, but very popular.) | 137 | around (not SMBus compliant, but very popular.) |
138 | 138 | ||
139 | 139 | ||
140 | SMBus Process Call: i2c_smbus_process_call() | 140 | SMBus Process Call: |
141 | ============================================= | 141 | =================== |
142 | 142 | ||
143 | This command selects a device register (through the Comm byte), sends | 143 | This command selects a device register (through the Comm byte), sends |
144 | 16 bits of data to it, and reads 16 bits of data in return. | 144 | 16 bits of data to it, and reads 16 bits of data in return. |
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients index 3a94b0e6f601..6b344b516bff 100644 --- a/Documentation/i2c/writing-clients +++ b/Documentation/i2c/writing-clients | |||
@@ -365,8 +365,6 @@ in terms of it. Never use this function directly! | |||
365 | s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command); | 365 | s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command); |
366 | s32 i2c_smbus_write_word_data(struct i2c_client *client, | 366 | s32 i2c_smbus_write_word_data(struct i2c_client *client, |
367 | u8 command, u16 value); | 367 | u8 command, u16 value); |
368 | s32 i2c_smbus_process_call(struct i2c_client *client, | ||
369 | u8 command, u16 value); | ||
370 | s32 i2c_smbus_read_block_data(struct i2c_client *client, | 368 | s32 i2c_smbus_read_block_data(struct i2c_client *client, |
371 | u8 command, u8 *values); | 369 | u8 command, u8 *values); |
372 | s32 i2c_smbus_write_block_data(struct i2c_client *client, | 370 | s32 i2c_smbus_write_block_data(struct i2c_client *client, |
@@ -381,6 +379,8 @@ These ones were removed from i2c-core because they had no users, but could | |||
381 | be added back later if needed: | 379 | be added back later if needed: |
382 | 380 | ||
383 | s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value); | 381 | s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value); |
382 | s32 i2c_smbus_process_call(struct i2c_client *client, | ||
383 | u8 command, u16 value); | ||
384 | s32 i2c_smbus_block_process_call(struct i2c_client *client, | 384 | s32 i2c_smbus_block_process_call(struct i2c_client *client, |
385 | u8 command, u8 length, u8 *values); | 385 | u8 command, u8 length, u8 *values); |
386 | 386 | ||
diff --git a/Documentation/intel_txt.txt b/Documentation/intel_txt.txt index 849de1a78e77..91d89c540709 100644 --- a/Documentation/intel_txt.txt +++ b/Documentation/intel_txt.txt | |||
@@ -192,7 +192,7 @@ grub.conf needs to be modified as follows: | |||
192 | 192 | ||
193 | The kernel option for enabling Intel TXT support is found under the | 193 | The kernel option for enabling Intel TXT support is found under the |
194 | Security top-level menu and is called "Enable Intel(R) Trusted | 194 | Security top-level menu and is called "Enable Intel(R) Trusted |
195 | Execution Technology (TXT)". It is marked as EXPERIMENTAL and | 195 | Execution Technology (TXT)". It is considered EXPERIMENTAL and |
196 | depends on the generic x86 support (to allow maximum flexibility in | 196 | depends on the generic x86 support (to allow maximum flexibility in |
197 | kernel build options), since the tboot code will detect whether the | 197 | kernel build options), since the tboot code will detect whether the |
198 | platform actually supports Intel TXT and thus whether any of the | 198 | platform actually supports Intel TXT and thus whether any of the |
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt index 2152b0e7237d..3210540f8bd3 100644 --- a/Documentation/ioctl/ioctl-number.txt +++ b/Documentation/ioctl/ioctl-number.txt | |||
@@ -179,7 +179,7 @@ Code Seq#(hex) Include File Comments | |||
179 | 'V' C0 media/davinci/vpfe_capture.h conflict! | 179 | 'V' C0 media/davinci/vpfe_capture.h conflict! |
180 | 'V' C0 media/si4713.h conflict! | 180 | 'V' C0 media/si4713.h conflict! |
181 | 'W' 00-1F linux/watchdog.h conflict! | 181 | 'W' 00-1F linux/watchdog.h conflict! |
182 | 'W' 00-1F linux/wanrouter.h conflict! | 182 | 'W' 00-1F linux/wanrouter.h conflict! (pre 3.9) |
183 | 'W' 00-3F sound/asound.h conflict! | 183 | 'W' 00-3F sound/asound.h conflict! |
184 | 'X' all fs/xfs/xfs_fs.h conflict! | 184 | 'X' all fs/xfs/xfs_fs.h conflict! |
185 | and fs/xfs/linux-2.6/xfs_ioctl32.h | 185 | and fs/xfs/linux-2.6/xfs_ioctl32.h |
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index 14c3f4f1b617..5198b742fde1 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt | |||
@@ -1186,6 +1186,29 @@ When kbuild executes, the following steps are followed (roughly): | |||
1186 | clean-files += *.dtb | 1186 | clean-files += *.dtb |
1187 | DTC_FLAGS ?= -p 1024 | 1187 | DTC_FLAGS ?= -p 1024 |
1188 | 1188 | ||
1189 | dtc_cpp | ||
1190 | This is just like dtc as describe above, except that the C pre- | ||
1191 | processor is invoked upon the .dtsp file before compiling the result | ||
1192 | with dtc. | ||
1193 | |||
1194 | In order for build dependencies to work, all files compiled using | ||
1195 | dtc_cpp must use the C pre-processor's #include functionality and not | ||
1196 | dtc's /include/ functionality. | ||
1197 | |||
1198 | Using the C pre-processor allows use of #define to create named | ||
1199 | constants. In turn, the #defines will typically appear in a header | ||
1200 | file, which may be shared with regular C code. Since the dtc language | ||
1201 | represents a data structure rather than code in C syntax, similar | ||
1202 | restrictions are placed on a header file included by a device tree | ||
1203 | file as for a header file included by an assembly language file. | ||
1204 | In particular, the C pre-processor is passed -x assembler-with-cpp, | ||
1205 | which sets macro __ASSEMBLY__. __DTS__ is also set. These allow header | ||
1206 | files to restrict their content to that compatible with device tree | ||
1207 | source. | ||
1208 | |||
1209 | A central rule exists to create $(obj)/%.dtb from $(src)/%.dtsp; | ||
1210 | architecture Makefiles do no need to explicitly write out that rule. | ||
1211 | |||
1189 | --- 6.8 Custom kbuild commands | 1212 | --- 6.8 Custom kbuild commands |
1190 | 1213 | ||
1191 | When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand | 1214 | When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 363e348bff9b..1da946548772 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -594,6 +594,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
594 | is selected automatically. Check | 594 | is selected automatically. Check |
595 | Documentation/kdump/kdump.txt for further details. | 595 | Documentation/kdump/kdump.txt for further details. |
596 | 596 | ||
597 | crashkernel_low=size[KMG] | ||
598 | [KNL, x86] parts under 4G. | ||
599 | |||
597 | crashkernel=range1:size1[,range2:size2,...][@offset] | 600 | crashkernel=range1:size1[,range2:size2,...][@offset] |
598 | [KNL] Same as above, but depends on the memory | 601 | [KNL] Same as above, but depends on the memory |
599 | in the running system. The syntax of range is | 602 | in the running system. The syntax of range is |
@@ -1039,16 +1042,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1039 | Claim all unknown PCI IDE storage controllers. | 1042 | Claim all unknown PCI IDE storage controllers. |
1040 | 1043 | ||
1041 | idle= [X86] | 1044 | idle= [X86] |
1042 | Format: idle=poll, idle=mwait, idle=halt, idle=nomwait | 1045 | Format: idle=poll, idle=halt, idle=nomwait |
1043 | Poll forces a polling idle loop that can slightly | 1046 | Poll forces a polling idle loop that can slightly |
1044 | improve the performance of waking up a idle CPU, but | 1047 | improve the performance of waking up a idle CPU, but |
1045 | will use a lot of power and make the system run hot. | 1048 | will use a lot of power and make the system run hot. |
1046 | Not recommended. | 1049 | Not recommended. |
1047 | idle=mwait: On systems which support MONITOR/MWAIT but | ||
1048 | the kernel chose to not use it because it doesn't save | ||
1049 | as much power as a normal idle loop, use the | ||
1050 | MONITOR/MWAIT idle loop anyways. Performance should be | ||
1051 | the same as idle=poll. | ||
1052 | idle=halt: Halt is forced to be used for CPU idle. | 1050 | idle=halt: Halt is forced to be used for CPU idle. |
1053 | In such case C2/C3 won't be used again. | 1051 | In such case C2/C3 won't be used again. |
1054 | idle=nomwait: Disable mwait for CPU C-states | 1052 | idle=nomwait: Disable mwait for CPU C-states |
@@ -1131,6 +1129,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1131 | 0 disables intel_idle and fall back on acpi_idle. | 1129 | 0 disables intel_idle and fall back on acpi_idle. |
1132 | 1 to 6 specify maximum depth of C-state. | 1130 | 1 to 6 specify maximum depth of C-state. |
1133 | 1131 | ||
1132 | intel_pstate= [X86] | ||
1133 | disable | ||
1134 | Do not enable intel_pstate as the default | ||
1135 | scaling driver for the supported processors | ||
1136 | |||
1134 | intremap= [X86-64, Intel-IOMMU] | 1137 | intremap= [X86-64, Intel-IOMMU] |
1135 | on enable Interrupt Remapping (default) | 1138 | on enable Interrupt Remapping (default) |
1136 | off disable Interrupt Remapping | 1139 | off disable Interrupt Remapping |
@@ -1637,6 +1640,42 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1637 | that the amount of memory usable for all allocations | 1640 | that the amount of memory usable for all allocations |
1638 | is not too small. | 1641 | is not too small. |
1639 | 1642 | ||
1643 | movablemem_map=acpi | ||
1644 | [KNL,X86,IA-64,PPC] This parameter is similar to | ||
1645 | memmap except it specifies the memory map of | ||
1646 | ZONE_MOVABLE. | ||
1647 | This option inform the kernel to use Hot Pluggable bit | ||
1648 | in flags from SRAT from ACPI BIOS to determine which | ||
1649 | memory devices could be hotplugged. The corresponding | ||
1650 | memory ranges will be set as ZONE_MOVABLE. | ||
1651 | NOTE: Whatever node the kernel resides in will always | ||
1652 | be un-hotpluggable. | ||
1653 | |||
1654 | movablemem_map=nn[KMG]@ss[KMG] | ||
1655 | [KNL,X86,IA-64,PPC] This parameter is similar to | ||
1656 | memmap except it specifies the memory map of | ||
1657 | ZONE_MOVABLE. | ||
1658 | If user specifies memory ranges, the info in SRAT will | ||
1659 | be ingored. And it works like the following: | ||
1660 | - If more ranges are all within one node, then from | ||
1661 | lowest ss to the end of the node will be ZONE_MOVABLE. | ||
1662 | - If a range is within a node, then from ss to the end | ||
1663 | of the node will be ZONE_MOVABLE. | ||
1664 | - If a range covers two or more nodes, then from ss to | ||
1665 | the end of the 1st node will be ZONE_MOVABLE, and all | ||
1666 | the rest nodes will only have ZONE_MOVABLE. | ||
1667 | If memmap is specified at the same time, the | ||
1668 | movablemem_map will be limited within the memmap | ||
1669 | areas. If kernelcore or movablecore is also specified, | ||
1670 | movablemem_map will have higher priority to be | ||
1671 | satisfied. So the administrator should be careful that | ||
1672 | the amount of movablemem_map areas are not too large. | ||
1673 | Otherwise kernel won't have enough memory to start. | ||
1674 | NOTE: We don't stop users specifying the node the | ||
1675 | kernel resides in as hotpluggable so that this | ||
1676 | option can be used as a workaround of firmware | ||
1677 | bugs. | ||
1678 | |||
1640 | MTD_Partition= [MTD] | 1679 | MTD_Partition= [MTD] |
1641 | Format: <name>,<region-number>,<size>,<offset> | 1680 | Format: <name>,<region-number>,<size>,<offset> |
1642 | 1681 | ||
@@ -1886,10 +1925,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1886 | wfi(ARM) instruction doesn't work correctly and not to | 1925 | wfi(ARM) instruction doesn't work correctly and not to |
1887 | use it. This is also useful when using JTAG debugger. | 1926 | use it. This is also useful when using JTAG debugger. |
1888 | 1927 | ||
1889 | no-hlt [BUGS=X86-32] Tells the kernel that the hlt | ||
1890 | instruction doesn't work correctly and not to | ||
1891 | use it. | ||
1892 | |||
1893 | no_file_caps Tells the kernel not to honor file capabilities. The | 1928 | no_file_caps Tells the kernel not to honor file capabilities. The |
1894 | only way then for a file to be executed with privilege | 1929 | only way then for a file to be executed with privilege |
1895 | is to be setuid root or executed by root. | 1930 | is to be setuid root or executed by root. |
@@ -2227,6 +2262,21 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
2227 | This sorting is done to get a device | 2262 | This sorting is done to get a device |
2228 | order compatible with older (<= 2.4) kernels. | 2263 | order compatible with older (<= 2.4) kernels. |
2229 | nobfsort Don't sort PCI devices into breadth-first order. | 2264 | nobfsort Don't sort PCI devices into breadth-first order. |
2265 | pcie_bus_tune_off Disable PCIe MPS (Max Payload Size) | ||
2266 | tuning and use the BIOS-configured MPS defaults. | ||
2267 | pcie_bus_safe Set every device's MPS to the largest value | ||
2268 | supported by all devices below the root complex. | ||
2269 | pcie_bus_perf Set device MPS to the largest allowable MPS | ||
2270 | based on its parent bus. Also set MRRS (Max | ||
2271 | Read Request Size) to the largest supported | ||
2272 | value (no larger than the MPS that the device | ||
2273 | or bus can support) for best performance. | ||
2274 | pcie_bus_peer2peer Set every device's MPS to 128B, which | ||
2275 | every device is guaranteed to support. This | ||
2276 | configuration allows peer-to-peer DMA between | ||
2277 | any pair of devices, possibly at the cost of | ||
2278 | reduced performance. This also guarantees | ||
2279 | that hot-added devices will work. | ||
2230 | cbiosize=nn[KMG] The fixed amount of bus space which is | 2280 | cbiosize=nn[KMG] The fixed amount of bus space which is |
2231 | reserved for the CardBus bridge's IO window. | 2281 | reserved for the CardBus bridge's IO window. |
2232 | The default value is 256 bytes. | 2282 | The default value is 256 bytes. |
@@ -2248,6 +2298,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
2248 | the default. | 2298 | the default. |
2249 | off: Turn ECRC off | 2299 | off: Turn ECRC off |
2250 | on: Turn ECRC on. | 2300 | on: Turn ECRC on. |
2301 | hpiosize=nn[KMG] The fixed amount of bus space which is | ||
2302 | reserved for hotplug bridge's IO window. | ||
2303 | Default size is 256 bytes. | ||
2304 | hpmemsize=nn[KMG] The fixed amount of bus space which is | ||
2305 | reserved for hotplug bridge's memory window. | ||
2306 | Default size is 2 megabytes. | ||
2251 | realloc= Enable/disable reallocating PCI bridge resources | 2307 | realloc= Enable/disable reallocating PCI bridge resources |
2252 | if allocations done by BIOS are too small to | 2308 | if allocations done by BIOS are too small to |
2253 | accommodate resources required by all child | 2309 | accommodate resources required by all child |
@@ -2438,7 +2494,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
2438 | real-time workloads. It can also improve energy | 2494 | real-time workloads. It can also improve energy |
2439 | efficiency for asymmetric multiprocessors. | 2495 | efficiency for asymmetric multiprocessors. |
2440 | 2496 | ||
2441 | rcu_nocbs_poll [KNL,BOOT] | 2497 | rcu_nocb_poll [KNL,BOOT] |
2442 | Rather than requiring that offloaded CPUs | 2498 | Rather than requiring that offloaded CPUs |
2443 | (specified by rcu_nocbs= above) explicitly | 2499 | (specified by rcu_nocbs= above) explicitly |
2444 | awaken the corresponding "rcuoN" kthreads, | 2500 | awaken the corresponding "rcuoN" kthreads, |
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index 9d666828915a..cf7bc6cb9719 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -1398,7 +1398,7 @@ Sysfs notes: | |||
1398 | EXPERIMENTAL: UWB | 1398 | EXPERIMENTAL: UWB |
1399 | ----------------- | 1399 | ----------------- |
1400 | 1400 | ||
1401 | This feature is marked EXPERIMENTAL because it has not been extensively | 1401 | This feature is considered EXPERIMENTAL because it has not been extensively |
1402 | tested and validated in various ThinkPad models yet. The feature may not | 1402 | tested and validated in various ThinkPad models yet. The feature may not |
1403 | work as expected. USE WITH CAUTION! To use this feature, you need to supply | 1403 | work as expected. USE WITH CAUTION! To use this feature, you need to supply |
1404 | the experimental=1 parameter when loading the module. | 1404 | the experimental=1 parameter when loading the module. |
diff --git a/Documentation/leds/00-INDEX b/Documentation/leds/00-INDEX index 5fefe374892f..5246090ef15c 100644 --- a/Documentation/leds/00-INDEX +++ b/Documentation/leds/00-INDEX | |||
@@ -6,5 +6,7 @@ leds-lp5521.txt | |||
6 | - notes on how to use the leds-lp5521 driver. | 6 | - notes on how to use the leds-lp5521 driver. |
7 | leds-lp5523.txt | 7 | leds-lp5523.txt |
8 | - notes on how to use the leds-lp5523 driver. | 8 | - notes on how to use the leds-lp5523 driver. |
9 | leds-lp55xx.txt | ||
10 | - description about lp55xx common driver. | ||
9 | leds-lm3556.txt | 11 | leds-lm3556.txt |
10 | - notes on how to use the leds-lm3556 driver. | 12 | - notes on how to use the leds-lm3556 driver. |
diff --git a/Documentation/leds/leds-lp5521.txt b/Documentation/leds/leds-lp5521.txt index 0e542ab3d4a0..270f57196339 100644 --- a/Documentation/leds/leds-lp5521.txt +++ b/Documentation/leds/leds-lp5521.txt | |||
@@ -17,19 +17,8 @@ lp5521:channelx, where x is 0 .. 2 | |||
17 | All three channels can be also controlled using the engine micro programs. | 17 | All three channels can be also controlled using the engine micro programs. |
18 | More details of the instructions can be found from the public data sheet. | 18 | More details of the instructions can be found from the public data sheet. |
19 | 19 | ||
20 | Control interface for the engines: | 20 | LP5521 has the internal program memory for running various LED patterns. |
21 | x is 1 .. 3 | 21 | For the details, please refer to 'firmware' section in leds-lp55xx.txt |
22 | enginex_mode : disabled, load, run | ||
23 | enginex_load : store program (visible only in engine load mode) | ||
24 | |||
25 | Example (start to blink the channel 2 led): | ||
26 | cd /sys/class/leds/lp5521:channel2/device | ||
27 | echo "load" > engine3_mode | ||
28 | echo "037f4d0003ff6000" > engine3_load | ||
29 | echo "run" > engine3_mode | ||
30 | |||
31 | stop the engine: | ||
32 | echo "disabled" > engine3_mode | ||
33 | 22 | ||
34 | sysfs contains a selftest entry. | 23 | sysfs contains a selftest entry. |
35 | The test communicates with the chip and checks that | 24 | The test communicates with the chip and checks that |
@@ -47,7 +36,7 @@ The name of each channel can be configurable. | |||
47 | If the name field is not defined, the default name will be set to 'xxxx:channelN' | 36 | If the name field is not defined, the default name will be set to 'xxxx:channelN' |
48 | (XXXX : pdata->label or i2c client name, N : channel number) | 37 | (XXXX : pdata->label or i2c client name, N : channel number) |
49 | 38 | ||
50 | static struct lp5521_led_config lp5521_led_config[] = { | 39 | static struct lp55xx_led_config lp5521_led_config[] = { |
51 | { | 40 | { |
52 | .name = "red", | 41 | .name = "red", |
53 | .chan_nr = 0, | 42 | .chan_nr = 0, |
@@ -81,10 +70,10 @@ static void lp5521_enable(bool state) | |||
81 | /* Control of chip enable signal */ | 70 | /* Control of chip enable signal */ |
82 | } | 71 | } |
83 | 72 | ||
84 | static struct lp5521_platform_data lp5521_platform_data = { | 73 | static struct lp55xx_platform_data lp5521_platform_data = { |
85 | .led_config = lp5521_led_config, | 74 | .led_config = lp5521_led_config, |
86 | .num_channels = ARRAY_SIZE(lp5521_led_config), | 75 | .num_channels = ARRAY_SIZE(lp5521_led_config), |
87 | .clock_mode = LP5521_CLOCK_EXT, | 76 | .clock_mode = LP55XX_CLOCK_EXT, |
88 | .setup_resources = lp5521_setup, | 77 | .setup_resources = lp5521_setup, |
89 | .release_resources = lp5521_release, | 78 | .release_resources = lp5521_release, |
90 | .enable = lp5521_enable, | 79 | .enable = lp5521_enable, |
@@ -105,47 +94,9 @@ example of update_config : | |||
105 | LP5521_CP_MODE_AUTO | LP5521_R_TO_BATT | \ | 94 | LP5521_CP_MODE_AUTO | LP5521_R_TO_BATT | \ |
106 | LP5521_CLK_INT) | 95 | LP5521_CLK_INT) |
107 | 96 | ||
108 | static struct lp5521_platform_data lp5521_pdata = { | 97 | static struct lp55xx_platform_data lp5521_pdata = { |
109 | .led_config = lp5521_led_config, | 98 | .led_config = lp5521_led_config, |
110 | .num_channels = ARRAY_SIZE(lp5521_led_config), | 99 | .num_channels = ARRAY_SIZE(lp5521_led_config), |
111 | .clock_mode = LP5521_CLOCK_INT, | 100 | .clock_mode = LP55XX_CLOCK_INT, |
112 | .update_config = LP5521_CONFIGS, | 101 | .update_config = LP5521_CONFIGS, |
113 | }; | 102 | }; |
114 | |||
115 | LED patterns : LP5521 has autonomous operation without external control. | ||
116 | Pattern data can be defined in the platform data. | ||
117 | |||
118 | example of led pattern data : | ||
119 | |||
120 | /* RGB(50,5,0) 500ms on, 500ms off, infinite loop */ | ||
121 | static u8 pattern_red[] = { | ||
122 | 0x40, 0x32, 0x60, 0x00, 0x40, 0x00, 0x60, 0x00, | ||
123 | }; | ||
124 | |||
125 | static u8 pattern_green[] = { | ||
126 | 0x40, 0x05, 0x60, 0x00, 0x40, 0x00, 0x60, 0x00, | ||
127 | }; | ||
128 | |||
129 | static struct lp5521_led_pattern board_led_patterns[] = { | ||
130 | { | ||
131 | .r = pattern_red, | ||
132 | .g = pattern_green, | ||
133 | .size_r = ARRAY_SIZE(pattern_red), | ||
134 | .size_g = ARRAY_SIZE(pattern_green), | ||
135 | }, | ||
136 | }; | ||
137 | |||
138 | static struct lp5521_platform_data lp5521_platform_data = { | ||
139 | .led_config = lp5521_led_config, | ||
140 | .num_channels = ARRAY_SIZE(lp5521_led_config), | ||
141 | .clock_mode = LP5521_CLOCK_EXT, | ||
142 | .patterns = board_led_patterns, | ||
143 | .num_patterns = ARRAY_SIZE(board_led_patterns), | ||
144 | }; | ||
145 | |||
146 | Then predefined led pattern(s) can be executed via the sysfs. | ||
147 | To start the pattern #1, | ||
148 | # echo 1 > /sys/bus/i2c/devices/xxxx/led_pattern | ||
149 | (xxxx : i2c bus & slave address) | ||
150 | To end the pattern, | ||
151 | # echo 0 > /sys/bus/i2c/devices/xxxx/led_pattern | ||
diff --git a/Documentation/leds/leds-lp5523.txt b/Documentation/leds/leds-lp5523.txt index c2743f59f9ac..899fdad509fe 100644 --- a/Documentation/leds/leds-lp5523.txt +++ b/Documentation/leds/leds-lp5523.txt | |||
@@ -27,25 +27,8 @@ c) Default | |||
27 | If both fields are NULL, 'lp5523' is used by default. | 27 | If both fields are NULL, 'lp5523' is used by default. |
28 | /sys/class/leds/lp5523:channelN (N: 0 ~ 8) | 28 | /sys/class/leds/lp5523:channelN (N: 0 ~ 8) |
29 | 29 | ||
30 | The chip provides 3 engines. Each engine can control channels without | 30 | LP5523 has the internal program memory for running various LED patterns. |
31 | interaction from the main CPU. Details of the micro engine code can be found | 31 | For the details, please refer to 'firmware' section in leds-lp55xx.txt |
32 | from the public data sheet. Leds can be muxed to different channels. | ||
33 | |||
34 | Control interface for the engines: | ||
35 | x is 1 .. 3 | ||
36 | enginex_mode : disabled, load, run | ||
37 | enginex_load : microcode load (visible only in load mode) | ||
38 | enginex_leds : led mux control (visible only in load mode) | ||
39 | |||
40 | cd /sys/class/leds/lp5523:channel2/device | ||
41 | echo "load" > engine3_mode | ||
42 | echo "9d80400004ff05ff437f0000" > engine3_load | ||
43 | echo "111111111" > engine3_leds | ||
44 | echo "run" > engine3_mode | ||
45 | |||
46 | sysfs contains a selftest entry. It measures each channel | ||
47 | voltage level and checks if it looks reasonable. If the level is too high, | ||
48 | the led is missing; if the level is too low, there is a short circuit. | ||
49 | 32 | ||
50 | Selftest uses always the current from the platform data. | 33 | Selftest uses always the current from the platform data. |
51 | 34 | ||
@@ -58,7 +41,7 @@ Example platform data: | |||
58 | 41 | ||
59 | Note - chan_nr can have values between 0 and 8. | 42 | Note - chan_nr can have values between 0 and 8. |
60 | 43 | ||
61 | static struct lp5523_led_config lp5523_led_config[] = { | 44 | static struct lp55xx_led_config lp5523_led_config[] = { |
62 | { | 45 | { |
63 | .name = "D1", | 46 | .name = "D1", |
64 | .chan_nr = 0, | 47 | .chan_nr = 0, |
@@ -88,10 +71,10 @@ static void lp5523_enable(bool state) | |||
88 | /* Control chip enable signal */ | 71 | /* Control chip enable signal */ |
89 | } | 72 | } |
90 | 73 | ||
91 | static struct lp5523_platform_data lp5523_platform_data = { | 74 | static struct lp55xx_platform_data lp5523_platform_data = { |
92 | .led_config = lp5523_led_config, | 75 | .led_config = lp5523_led_config, |
93 | .num_channels = ARRAY_SIZE(lp5523_led_config), | 76 | .num_channels = ARRAY_SIZE(lp5523_led_config), |
94 | .clock_mode = LP5523_CLOCK_EXT, | 77 | .clock_mode = LP55XX_CLOCK_EXT, |
95 | .setup_resources = lp5523_setup, | 78 | .setup_resources = lp5523_setup, |
96 | .release_resources = lp5523_release, | 79 | .release_resources = lp5523_release, |
97 | .enable = lp5523_enable, | 80 | .enable = lp5523_enable, |
diff --git a/Documentation/leds/leds-lp55xx.txt b/Documentation/leds/leds-lp55xx.txt new file mode 100644 index 000000000000..ced41868d2d1 --- /dev/null +++ b/Documentation/leds/leds-lp55xx.txt | |||
@@ -0,0 +1,118 @@ | |||
1 | LP5521/LP5523/LP55231 Common Driver | ||
2 | =================================== | ||
3 | |||
4 | Authors: Milo(Woogyom) Kim <milo.kim@ti.com> | ||
5 | |||
6 | Description | ||
7 | ----------- | ||
8 | LP5521, LP5523/55231 have common features as below. | ||
9 | |||
10 | Register access via the I2C | ||
11 | Device initialization/deinitialization | ||
12 | Create LED class devices for multiple output channels | ||
13 | Device attributes for user-space interface | ||
14 | Program memory for running LED patterns | ||
15 | |||
16 | The LP55xx common driver provides these features using exported functions. | ||
17 | lp55xx_init_device() / lp55xx_deinit_device() | ||
18 | lp55xx_register_leds() / lp55xx_unregister_leds() | ||
19 | lp55xx_regsister_sysfs() / lp55xx_unregister_sysfs() | ||
20 | |||
21 | ( Driver Structure Data ) | ||
22 | |||
23 | In lp55xx common driver, two different data structure is used. | ||
24 | |||
25 | o lp55xx_led | ||
26 | control multi output LED channels such as led current, channel index. | ||
27 | o lp55xx_chip | ||
28 | general chip control such like the I2C and platform data. | ||
29 | |||
30 | For example, LP5521 has maximum 3 LED channels. | ||
31 | LP5523/55231 has 9 output channels. | ||
32 | |||
33 | lp55xx_chip for LP5521 ... lp55xx_led #1 | ||
34 | lp55xx_led #2 | ||
35 | lp55xx_led #3 | ||
36 | |||
37 | lp55xx_chip for LP5523 ... lp55xx_led #1 | ||
38 | lp55xx_led #2 | ||
39 | . | ||
40 | . | ||
41 | lp55xx_led #9 | ||
42 | |||
43 | ( Chip Dependent Code ) | ||
44 | |||
45 | To support device specific configurations, special structure | ||
46 | 'lpxx_device_config' is used. | ||
47 | |||
48 | Maximum number of channels | ||
49 | Reset command, chip enable command | ||
50 | Chip specific initialization | ||
51 | Brightness control register access | ||
52 | Setting LED output current | ||
53 | Program memory address access for running patterns | ||
54 | Additional device specific attributes | ||
55 | |||
56 | ( Firmware Interface ) | ||
57 | |||
58 | LP55xx family devices have the internal program memory for running | ||
59 | various LED patterns. | ||
60 | This pattern data is saved as a file in the user-land or | ||
61 | hex byte string is written into the memory through the I2C. | ||
62 | LP55xx common driver supports the firmware interface. | ||
63 | |||
64 | LP55xx chips have three program engines. | ||
65 | To load and run the pattern, the programming sequence is following. | ||
66 | (1) Select an engine number (1/2/3) | ||
67 | (2) Mode change to load | ||
68 | (3) Write pattern data into selected area | ||
69 | (4) Mode change to run | ||
70 | |||
71 | The LP55xx common driver provides simple interfaces as below. | ||
72 | select_engine : Select which engine is used for running program | ||
73 | run_engine : Start program which is loaded via the firmware interface | ||
74 | firmware : Load program data | ||
75 | |||
76 | For example, run blinking pattern in engine #1 of LP5521 | ||
77 | echo 1 > /sys/bus/i2c/devices/xxxx/select_engine | ||
78 | echo 1 > /sys/class/firmware/lp5521/loading | ||
79 | echo "4000600040FF6000" > /sys/class/firmware/lp5521/data | ||
80 | echo 0 > /sys/class/firmware/lp5521/loading | ||
81 | echo 1 > /sys/bus/i2c/devices/xxxx/run_engine | ||
82 | |||
83 | For example, run blinking pattern in engine #3 of LP55231 | ||
84 | echo 3 > /sys/bus/i2c/devices/xxxx/select_engine | ||
85 | echo 1 > /sys/class/firmware/lp55231/loading | ||
86 | echo "9d0740ff7e0040007e00a0010000" > /sys/class/firmware/lp55231/data | ||
87 | echo 0 > /sys/class/firmware/lp55231/loading | ||
88 | echo 1 > /sys/bus/i2c/devices/xxxx/run_engine | ||
89 | |||
90 | To start blinking patterns in engine #2 and #3 simultaneously, | ||
91 | for idx in 2 3 | ||
92 | do | ||
93 | echo $idx > /sys/class/leds/red/device/select_engine | ||
94 | sleep 0.1 | ||
95 | echo 1 > /sys/class/firmware/lp5521/loading | ||
96 | echo "4000600040FF6000" > /sys/class/firmware/lp5521/data | ||
97 | echo 0 > /sys/class/firmware/lp5521/loading | ||
98 | done | ||
99 | echo 1 > /sys/class/leds/red/device/run_engine | ||
100 | |||
101 | Here is another example for LP5523. | ||
102 | echo 2 > /sys/bus/i2c/devices/xxxx/select_engine | ||
103 | echo 1 > /sys/class/firmware/lp5523/loading | ||
104 | echo "9d80400004ff05ff437f0000" > /sys/class/firmware/lp5523/data | ||
105 | echo 0 > /sys/class/firmware/lp5523/loading | ||
106 | echo 1 > /sys/bus/i2c/devices/xxxx/run_engine | ||
107 | |||
108 | As soon as 'loading' is set to 0, registered callback is called. | ||
109 | Inside the callback, the selected engine is loaded and memory is updated. | ||
110 | To run programmed pattern, 'run_engine' attribute should be enabled. | ||
111 | |||
112 | ( 'run_engine' and 'firmware_cb' ) | ||
113 | The sequence of running the program data is common. | ||
114 | But each device has own specific register addresses for commands. | ||
115 | To support this, 'run_engine' and 'firmware_cb' are configurable in each driver. | ||
116 | run_engine : Control the selected engine | ||
117 | firmware_cb : The callback function after loading the firmware is done. | ||
118 | Chip specific commands for loading and updating program memory. | ||
diff --git a/Documentation/lockstat.txt b/Documentation/lockstat.txt index cef00d42ed5b..dd2f7b26ca30 100644 --- a/Documentation/lockstat.txt +++ b/Documentation/lockstat.txt | |||
@@ -65,7 +65,7 @@ that had to wait on lock acquisition. | |||
65 | 65 | ||
66 | - CONFIGURATION | 66 | - CONFIGURATION |
67 | 67 | ||
68 | Lock statistics are enabled via CONFIG_LOCK_STATS. | 68 | Lock statistics are enabled via CONFIG_LOCK_STAT. |
69 | 69 | ||
70 | - USAGE | 70 | - USAGE |
71 | 71 | ||
diff --git a/Documentation/magic-number.txt b/Documentation/magic-number.txt index 82761a31d64d..76d80a64bbe1 100644 --- a/Documentation/magic-number.txt +++ b/Documentation/magic-number.txt | |||
@@ -122,7 +122,7 @@ SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c | |||
122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c | 122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c |
123 | I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c | 123 | I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c |
124 | TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c | 124 | TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c |
125 | ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h | 125 | ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9] |
126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h | 126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h |
127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c | 127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c |
128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h | 128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h |
diff --git a/Documentation/media-framework.txt b/Documentation/media-framework.txt index 802875413873..77bd0a42f19d 100644 --- a/Documentation/media-framework.txt +++ b/Documentation/media-framework.txt | |||
@@ -336,7 +336,7 @@ Calls to media_entity_pipeline_start() can be nested. The pipeline pointer must | |||
336 | be identical for all nested calls to the function. | 336 | be identical for all nested calls to the function. |
337 | 337 | ||
338 | media_entity_pipeline_start() may return an error. In that case, it will | 338 | media_entity_pipeline_start() may return an error. In that case, it will |
339 | clean up any the changes it did by itself. | 339 | clean up any of the changes it did by itself. |
340 | 340 | ||
341 | When stopping the stream, drivers must notify the entities with | 341 | When stopping the stream, drivers must notify the entities with |
342 | 342 | ||
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index 3c4e1b3b80a1..fa5d8a9ae205 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt | |||
@@ -1685,6 +1685,7 @@ explicit lock operations, described later). These include: | |||
1685 | 1685 | ||
1686 | xchg(); | 1686 | xchg(); |
1687 | cmpxchg(); | 1687 | cmpxchg(); |
1688 | atomic_xchg(); | ||
1688 | atomic_cmpxchg(); | 1689 | atomic_cmpxchg(); |
1689 | atomic_inc_return(); | 1690 | atomic_inc_return(); |
1690 | atomic_dec_return(); | 1691 | atomic_dec_return(); |
diff --git a/Documentation/namespaces/resource-control.txt b/Documentation/namespaces/resource-control.txt new file mode 100644 index 000000000000..abc13c394738 --- /dev/null +++ b/Documentation/namespaces/resource-control.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | There are a lot of kinds of objects in the kernel that don't have | ||
2 | individual limits or that have limits that are ineffective when a set | ||
3 | of processes is allowed to switch user ids. With user namespaces | ||
4 | enabled in a kernel for people who don't trust their users or their | ||
5 | users programs to play nice this problems becomes more acute. | ||
6 | |||
7 | Therefore it is recommended that memory control groups be enabled in | ||
8 | kernels that enable user namespaces, and it is further recommended | ||
9 | that userspace configure memory control groups to limit how much | ||
10 | memory user's they don't trust to play nice can use. | ||
11 | |||
12 | Memory control groups can be configured by installing the libcgroup | ||
13 | package present on most distros editing /etc/cgrules.conf, | ||
14 | /etc/cgconfig.conf and setting up libpam-cgroup. | ||
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index 2cc3c7733a2f..258d9b92c36f 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX | |||
@@ -52,8 +52,6 @@ de4x5.txt | |||
52 | - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver | 52 | - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver |
53 | decnet.txt | 53 | decnet.txt |
54 | - info on using the DECnet networking layer in Linux. | 54 | - info on using the DECnet networking layer in Linux. |
55 | depca.txt | ||
56 | - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver | ||
57 | dl2k.txt | 55 | dl2k.txt |
58 | - README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko). | 56 | - README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko). |
59 | dm9000.txt | 57 | dm9000.txt |
@@ -72,8 +70,6 @@ e1000e.txt | |||
72 | - README for the Intel Gigabit Ethernet Driver (e1000e). | 70 | - README for the Intel Gigabit Ethernet Driver (e1000e). |
73 | eql.txt | 71 | eql.txt |
74 | - serial IP load balancing | 72 | - serial IP load balancing |
75 | ewrk3.txt | ||
76 | - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver | ||
77 | fib_trie.txt | 73 | fib_trie.txt |
78 | - Level Compressed Trie (LC-trie) notes: a structure for routing. | 74 | - Level Compressed Trie (LC-trie) notes: a structure for routing. |
79 | filter.txt | 75 | filter.txt |
@@ -126,8 +122,6 @@ ltpc.txt | |||
126 | - the Apple or Farallon LocalTalk PC card driver | 122 | - the Apple or Farallon LocalTalk PC card driver |
127 | mac80211-injection.txt | 123 | mac80211-injection.txt |
128 | - HOWTO use packet injection with mac80211 | 124 | - HOWTO use packet injection with mac80211 |
129 | multicast.txt | ||
130 | - Behaviour of cards under Multicast | ||
131 | multiqueue.txt | 125 | multiqueue.txt |
132 | - HOWTO for multiqueue network device support. | 126 | - HOWTO for multiqueue network device support. |
133 | netconsole.txt | 127 | netconsole.txt |
diff --git a/Documentation/networking/DLINK.txt b/Documentation/networking/DLINK.txt deleted file mode 100644 index 55d24433d151..000000000000 --- a/Documentation/networking/DLINK.txt +++ /dev/null | |||
@@ -1,203 +0,0 @@ | |||
1 | Released 1994-06-13 | ||
2 | |||
3 | |||
4 | CONTENTS: | ||
5 | |||
6 | 1. Introduction. | ||
7 | 2. License. | ||
8 | 3. Files in this release. | ||
9 | 4. Installation. | ||
10 | 5. Problems and tuning. | ||
11 | 6. Using the drivers with earlier releases. | ||
12 | 7. Acknowledgments. | ||
13 | |||
14 | |||
15 | 1. INTRODUCTION. | ||
16 | |||
17 | This is a set of Ethernet drivers for the D-Link DE-600/DE-620 | ||
18 | pocket adapters, for the parallel port on a Linux based machine. | ||
19 | Some adapter "clones" will also work. Xircom is _not_ a clone... | ||
20 | These drivers _can_ be used as loadable modules, | ||
21 | and were developed for use on Linux 1.1.13 and above. | ||
22 | For use on Linux 1.0.X, or earlier releases, see below. | ||
23 | |||
24 | I have used these drivers for NFS, ftp, telnet and X-clients on | ||
25 | remote machines. Transmissions with ftp seems to work as | ||
26 | good as can be expected (i.e. > 80k bytes/sec) from a | ||
27 | parallel port...:-) Receive speeds will be about 60-80% of this. | ||
28 | Depending on your machine, somewhat higher speeds can be achieved. | ||
29 | |||
30 | All comments/fixes to Bjorn Ekwall (bj0rn@blox.se). | ||
31 | |||
32 | |||
33 | 2. LICENSE. | ||
34 | |||
35 | This program is free software; you can redistribute it | ||
36 | and/or modify it under the terms of the GNU General Public | ||
37 | License as published by the Free Software Foundation; either | ||
38 | version 2, or (at your option) any later version. | ||
39 | |||
40 | This program is distributed in the hope that it will be | ||
41 | useful, but WITHOUT ANY WARRANTY; without even the implied | ||
42 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
43 | PURPOSE. See the GNU General Public License for more | ||
44 | details. | ||
45 | |||
46 | You should have received a copy of the GNU General Public | ||
47 | License along with this program; if not, write to the Free | ||
48 | Software Foundation, Inc., 675 Mass Ave, Cambridge, MA | ||
49 | 02139, USA. | ||
50 | |||
51 | |||
52 | 3. FILES IN THIS RELEASE. | ||
53 | |||
54 | README.DLINK This file. | ||
55 | de600.c The Source (may it be with You :-) for the DE-600 | ||
56 | de620.c ditto for the DE-620 | ||
57 | de620.h Macros for de620.c | ||
58 | |||
59 | If you are upgrading from the d-link tar release, there will | ||
60 | also be a "dlink-patches" file that will patch Linux 1.1.18: | ||
61 | linux/drivers/net/Makefile | ||
62 | linux/drivers/net/CONFIG | ||
63 | linux/drivers/net/MODULES | ||
64 | linux/drivers/net/Space.c | ||
65 | linux/config.in | ||
66 | Apply the patch by: | ||
67 | "cd /usr/src; patch -p0 < linux/drivers/net/dlink-patches" | ||
68 | The old source, "linux/drivers/net/d_link.c", can be removed. | ||
69 | |||
70 | |||
71 | 4. INSTALLATION. | ||
72 | |||
73 | o Get the latest net binaries, according to current net.wisdom. | ||
74 | |||
75 | o Read the NET-2 and Ethernet HOWTOs and modify your setup. | ||
76 | |||
77 | o If your parallel port has a strange address or irq, | ||
78 | modify "linux/drivers/net/CONFIG" accordingly, or adjust | ||
79 | the parameters in the "tuning" section in the sources. | ||
80 | |||
81 | If you are going to use the drivers as loadable modules, do _not_ | ||
82 | enable them while doing "make config", but instead make sure that | ||
83 | the drivers are included in "linux/drivers/net/MODULES". | ||
84 | |||
85 | If you are _not_ going to use the driver(s) as loadable modules, | ||
86 | but instead have them included in the kernel, remember to enable | ||
87 | the drivers while doing "make config". | ||
88 | |||
89 | o To include networking and DE600/DE620 support in your kernel: | ||
90 | # cd /linux | ||
91 | (as modules:) | ||
92 | # make config (answer yes on CONFIG_NET and CONFIG_INET) | ||
93 | (else included in the kernel:) | ||
94 | # make config (answer yes on CONFIG _NET, _INET and _DE600 or _DE620) | ||
95 | # make clean | ||
96 | # make zImage (or whatever magic you usually do) | ||
97 | |||
98 | o I use lilo to boot multiple kernels, so that I at least | ||
99 | can have one working kernel :-). If you do too, append | ||
100 | these lines to /etc/lilo/config: | ||
101 | |||
102 | image = /linux/zImage | ||
103 | label = newlinux | ||
104 | root = /dev/hda2 (or whatever YOU have...) | ||
105 | |||
106 | # /etc/lilo/install | ||
107 | |||
108 | o Do "sync" and reboot the new kernel with a D-Link | ||
109 | DE-600/DE-620 pocket adapter connected. | ||
110 | |||
111 | o The adapter can be configured with ifconfig eth? | ||
112 | where the actual number is decided by the kernel | ||
113 | when the drivers are initialized. | ||
114 | |||
115 | |||
116 | 5. "PROBLEMS" AND TUNING, | ||
117 | |||
118 | o If you see error messages from the driver, and if the traffic | ||
119 | stops on the adapter, try to do "ifconfig" and "route" once | ||
120 | more, just as in "rc.inet1". This should take care of most | ||
121 | problems, including effects from power loss, or adapters that | ||
122 | aren't connected to the printer port in some way or another. | ||
123 | You can somewhat change the behaviour by enabling/disabling | ||
124 | the macro SHUTDOWN_WHEN_LOST in the "tuning" section. | ||
125 | For the DE-600 there is another macro, CHECK_LOST_DE600, | ||
126 | that you might want to read about in the "tuning" section. | ||
127 | |||
128 | o Some machines have trouble handling the parallel port and | ||
129 | the adapter at high speed. If you experience problems: | ||
130 | |||
131 | DE-600: | ||
132 | - The adapter is not recognized at boot, i.e. an Ethernet | ||
133 | address of 00:80:c8:... is not shown, try to add another | ||
134 | "; SLOW_DOWN_IO" | ||
135 | at DE600_SLOW_DOWN in the "tuning" section. As a last resort, | ||
136 | uncomment: "#define REALLY_SLOW_IO" (see <asm/io.h> for hints). | ||
137 | |||
138 | - You experience "timeout" messages: first try to add another | ||
139 | "; SLOW_DOWN_IO" | ||
140 | at DE600_SLOW_DOWN in the "tuning" section, _then_ try to | ||
141 | increase the value (original value: 5) at | ||
142 | "if (tickssofar < 5)" near line 422. | ||
143 | |||
144 | DE-620: | ||
145 | - Your parallel port might be "sluggish". To cater for | ||
146 | this, there are the macros LOWSPEED and READ_DELAY/WRITE_DELAY | ||
147 | in the "tuning" section. Your first step should be to enable | ||
148 | LOWSPEED, and after that you can "tune" the XXX_DELAY values. | ||
149 | |||
150 | o If the adapter _is_ recognized at boot but you get messages | ||
151 | about "Network Unreachable", then the problem is probably | ||
152 | _not_ with the driver. Check your net configuration instead | ||
153 | (ifconfig and route) in "rc.inet1". | ||
154 | |||
155 | o There is some rudimentary support for debugging, look at | ||
156 | the source. Use "-DDE600_DEBUG=3" or "-DDE620_DEBUG=3" | ||
157 | when compiling, or include it in "linux/drivers/net/CONFIG". | ||
158 | IF YOU HAVE PROBLEMS YOU CAN'T SOLVE: PLEASE COMPILE THE DRIVER | ||
159 | WITH DEBUGGING ENABLED, AND SEND ME THE RESULTING OUTPUT! | ||
160 | |||
161 | |||
162 | 6. USING THE DRIVERS WITH EARLIER RELEASES. | ||
163 | |||
164 | The later 1.1.X releases of the Linux kernel include some | ||
165 | changes in the networking layer (a.k.a. NET3). This affects | ||
166 | these drivers in a few places. The hints that follow are | ||
167 | _not_ tested by me, since I don't have the disk space to keep | ||
168 | all releases on-line. | ||
169 | Known needed changes to date: | ||
170 | - release patchfile: some patches will fail, but they should | ||
171 | be easy to apply "by hand", since they are trivial. | ||
172 | (Space.c: d_link_init() is now called de600_probe()) | ||
173 | - de600.c: change "mark_bh(NET_BH)" to "mark_bh(INET_BH)". | ||
174 | - de620.c: (maybe) change the code around "netif_rx(skb);" to be | ||
175 | similar to the code around "dev_rint(...)" in de600.c | ||
176 | |||
177 | |||
178 | 7. ACKNOWLEDGMENTS. | ||
179 | |||
180 | These drivers wouldn't have been done without the base | ||
181 | (and support) from Ross Biro, and D-Link Systems Inc. | ||
182 | The driver relies upon GPL-ed source from D-Link Systems Inc. | ||
183 | and from Russel Nelson at Crynwr Software <nelson@crynwr.com>. | ||
184 | |||
185 | Additional input also from: | ||
186 | Donald Becker <becker@super.org>, Alan Cox <A.Cox@swansea.ac.uk> | ||
187 | and Fred N. van Kempen <waltje@uWalt.NL.Mugnet.ORG> | ||
188 | |||
189 | DE-600 alpha release primary victim^H^H^H^H^H^Htester: | ||
190 | - Erik Proper <erikp@cs.kun.nl>. | ||
191 | Good input also from several users, most notably | ||
192 | - Mark Burton <markb@ordern.demon.co.uk>. | ||
193 | |||
194 | DE-620 alpha release victims^H^H^H^H^H^H^Htesters: | ||
195 | - J. Joshua Kopper <kopper@rtsg.mot.com> | ||
196 | - Olav Kvittem <Olav.Kvittem@uninett.no> | ||
197 | - Germano Caronni <caronni@nessie.cs.id.ethz.ch> | ||
198 | - Jeremy Fitzhardinge <jeremy@suite.sw.oz.au> | ||
199 | |||
200 | |||
201 | Happy hacking! | ||
202 | |||
203 | Bjorn Ekwall == bj0rn@blox.se | ||
diff --git a/Documentation/networking/LICENSE.qlcnic b/Documentation/networking/LICENSE.qlcnic index e7fb2c6023bc..2ae3b64983ab 100644 --- a/Documentation/networking/LICENSE.qlcnic +++ b/Documentation/networking/LICENSE.qlcnic | |||
@@ -1,4 +1,4 @@ | |||
1 | Copyright (c) 2009-2011 QLogic Corporation | 1 | Copyright (c) 2009-2013 QLogic Corporation |
2 | QLogic Linux qlcnic NIC Driver | 2 | QLogic Linux qlcnic NIC Driver |
3 | 3 | ||
4 | You may modify and redistribute the device driver code under the | 4 | You may modify and redistribute the device driver code under the |
diff --git a/Documentation/networking/cs89x0.txt b/Documentation/networking/cs89x0.txt index c725d33b316f..0e190180eec8 100644 --- a/Documentation/networking/cs89x0.txt +++ b/Documentation/networking/cs89x0.txt | |||
@@ -36,7 +36,6 @@ TABLE OF CONTENTS | |||
36 | 4.1 Compiling the Driver as a Loadable Module | 36 | 4.1 Compiling the Driver as a Loadable Module |
37 | 4.2 Compiling the driver to support memory mode | 37 | 4.2 Compiling the driver to support memory mode |
38 | 4.3 Compiling the driver to support Rx DMA | 38 | 4.3 Compiling the driver to support Rx DMA |
39 | 4.4 Compiling the Driver into the Kernel | ||
40 | 39 | ||
41 | 5.0 TESTING AND TROUBLESHOOTING | 40 | 5.0 TESTING AND TROUBLESHOOTING |
42 | 5.1 Known Defects and Limitations | 41 | 5.1 Known Defects and Limitations |
@@ -364,84 +363,6 @@ The compile-time optionality for DMA was removed in the 2.3 kernel | |||
364 | series. DMA support is now unconditionally part of the driver. It is | 363 | series. DMA support is now unconditionally part of the driver. It is |
365 | enabled by the 'use_dma=1' module option. | 364 | enabled by the 'use_dma=1' module option. |
366 | 365 | ||
367 | 4.4 COMPILING THE DRIVER INTO THE KERNEL | ||
368 | |||
369 | If your Linux distribution already has support for the cs89x0 driver | ||
370 | then simply copy the source file to the /usr/src/linux/drivers/net | ||
371 | directory to replace the original ones and run the make utility to | ||
372 | rebuild the kernel. See Step 3 for rebuilding the kernel. | ||
373 | |||
374 | If your Linux does not include the cs89x0 driver, you need to edit three | ||
375 | configuration files, copy the source file to the /usr/src/linux/drivers/net | ||
376 | directory, and then run the make utility to rebuild the kernel. | ||
377 | |||
378 | 1. Edit the following configuration files by adding the statements as | ||
379 | indicated. (When possible, try to locate the added text to the section of the | ||
380 | file containing similar statements). | ||
381 | |||
382 | |||
383 | a.) In /usr/src/linux/drivers/net/Config.in, add: | ||
384 | |||
385 | tristate 'CS89x0 support' CONFIG_CS89x0 | ||
386 | |||
387 | Example: | ||
388 | |||
389 | if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then | ||
390 | tristate 'ICL EtherTeam 16i/32 support' CONFIG_ETH16I | ||
391 | fi | ||
392 | |||
393 | tristate 'CS89x0 support' CONFIG_CS89x0 | ||
394 | |||
395 | tristate 'NE2000/NE1000 support' CONFIG_NE2000 | ||
396 | if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then | ||
397 | tristate 'NI5210 support' CONFIG_NI52 | ||
398 | |||
399 | |||
400 | b.) In /usr/src/linux/drivers/net/Makefile, add the following lines: | ||
401 | |||
402 | ifeq ($(CONFIG_CS89x0),y) | ||
403 | L_OBJS += cs89x0.o | ||
404 | else | ||
405 | ifeq ($(CONFIG_CS89x0),m) | ||
406 | M_OBJS += cs89x0.o | ||
407 | endif | ||
408 | endif | ||
409 | |||
410 | |||
411 | c.) In /linux/drivers/net/Space.c file, add the line: | ||
412 | |||
413 | extern int cs89x0_probe(struct device *dev); | ||
414 | |||
415 | |||
416 | Example: | ||
417 | |||
418 | extern int ultra_probe(struct device *dev); | ||
419 | extern int wd_probe(struct device *dev); | ||
420 | extern int el2_probe(struct device *dev); | ||
421 | |||
422 | extern int cs89x0_probe(struct device *dev); | ||
423 | |||
424 | extern int ne_probe(struct device *dev); | ||
425 | extern int hp_probe(struct device *dev); | ||
426 | extern int hp_plus_probe(struct device *dev); | ||
427 | |||
428 | |||
429 | Also add: | ||
430 | |||
431 | #ifdef CONFIG_CS89x0 | ||
432 | { cs89x0_probe,0 }, | ||
433 | #endif | ||
434 | |||
435 | |||
436 | 2.) Copy the driver source files (cs89x0.c and cs89x0.h) | ||
437 | into the /usr/src/linux/drivers/net directory. | ||
438 | |||
439 | |||
440 | 3.) Go to /usr/src/linux directory and run 'make config' followed by 'make' | ||
441 | (or make bzImage) to rebuild the kernel. | ||
442 | |||
443 | 4.) Use the DOS 'setup' utility to disable plug and play on the NIC. | ||
444 | |||
445 | 366 | ||
446 | 5.0 TESTING AND TROUBLESHOOTING | 367 | 5.0 TESTING AND TROUBLESHOOTING |
447 | =============================================================================== | 368 | =============================================================================== |
diff --git a/Documentation/networking/depca.txt b/Documentation/networking/depca.txt deleted file mode 100644 index 24c6b26e5658..000000000000 --- a/Documentation/networking/depca.txt +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | |||
2 | DE10x | ||
3 | ===== | ||
4 | |||
5 | Memory Addresses: | ||
6 | |||
7 | SW1 SW2 SW3 SW4 | ||
8 | 64K on on on on d0000 dbfff | ||
9 | off on on on c0000 cbfff | ||
10 | off off on on e0000 ebfff | ||
11 | |||
12 | 32K on on off on d8000 dbfff | ||
13 | off on off on c8000 cbfff | ||
14 | off off off on e8000 ebfff | ||
15 | |||
16 | DBR ROM on on dc000 dffff | ||
17 | off on cc000 cffff | ||
18 | off off ec000 effff | ||
19 | |||
20 | Note that the 2K mode is set by SW3/SW4 on/off or off/off. Address | ||
21 | assignment is through the RBSA register. | ||
22 | |||
23 | I/O Address: | ||
24 | SW5 | ||
25 | 0x300 on | ||
26 | 0x200 off | ||
27 | |||
28 | Remote Boot: | ||
29 | SW6 | ||
30 | Disable on | ||
31 | Enable off | ||
32 | |||
33 | Remote Boot Timeout: | ||
34 | SW7 | ||
35 | 2.5min on | ||
36 | 30s off | ||
37 | |||
38 | IRQ: | ||
39 | SW8 SW9 SW10 SW11 SW12 | ||
40 | 2 on off off off off | ||
41 | 3 off on off off off | ||
42 | 4 off off on off off | ||
43 | 5 off off off on off | ||
44 | 7 off off off off on | ||
45 | |||
46 | DE20x | ||
47 | ===== | ||
48 | |||
49 | Memory Size: | ||
50 | |||
51 | SW3 SW4 | ||
52 | 64K on on | ||
53 | 32K off on | ||
54 | 2K on off | ||
55 | 2K off off | ||
56 | |||
57 | Start Addresses: | ||
58 | |||
59 | SW1 SW2 SW3 SW4 | ||
60 | 64K on on on on c0000 cffff | ||
61 | on off on on d0000 dffff | ||
62 | off on on on e0000 effff | ||
63 | |||
64 | 32K on on off off c8000 cffff | ||
65 | on off off off d8000 dffff | ||
66 | off on off off e8000 effff | ||
67 | |||
68 | Illegal off off - - - - | ||
69 | |||
70 | I/O Address: | ||
71 | SW5 | ||
72 | 0x300 on | ||
73 | 0x200 off | ||
74 | |||
75 | Remote Boot: | ||
76 | SW6 | ||
77 | Disable on | ||
78 | Enable off | ||
79 | |||
80 | Remote Boot Timeout: | ||
81 | SW7 | ||
82 | 2.5min on | ||
83 | 30s off | ||
84 | |||
85 | IRQ: | ||
86 | SW8 SW9 SW10 SW11 SW12 | ||
87 | 5 on off off off off | ||
88 | 9 off on off off off | ||
89 | 10 off off on off off | ||
90 | 11 off off off on off | ||
91 | 15 off off off off on | ||
92 | |||
diff --git a/Documentation/networking/ewrk3.txt b/Documentation/networking/ewrk3.txt deleted file mode 100644 index 90e9e5f16e6b..000000000000 --- a/Documentation/networking/ewrk3.txt +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | The EtherWORKS 3 driver in this distribution is designed to work with all | ||
2 | kernels > 1.1.33 (approx) and includes tools in the 'ewrk3tools' | ||
3 | subdirectory to allow set up of the card, similar to the MSDOS | ||
4 | 'NICSETUP.EXE' tools provided on the DOS drivers disk (type 'make' in that | ||
5 | subdirectory to make the tools). | ||
6 | |||
7 | The supported cards are DE203, DE204 and DE205. All other cards are NOT | ||
8 | supported - refer to 'depca.c' for running the LANCE based network cards and | ||
9 | 'de4x5.c' for the DIGITAL Semiconductor PCI chip based adapters from | ||
10 | Digital. | ||
11 | |||
12 | The ability to load this driver as a loadable module has been included and | ||
13 | used extensively during the driver development (to save those long reboot | ||
14 | sequences). To utilise this ability, you have to do 8 things: | ||
15 | |||
16 | 0) have a copy of the loadable modules code installed on your system. | ||
17 | 1) copy ewrk3.c from the /linux/drivers/net directory to your favourite | ||
18 | temporary directory. | ||
19 | 2) edit the source code near line 1898 to reflect the I/O address and | ||
20 | IRQ you're using. | ||
21 | 3) compile ewrk3.c, but include -DMODULE in the command line to ensure | ||
22 | that the correct bits are compiled (see end of source code). | ||
23 | 4) if you are wanting to add a new card, goto 5. Otherwise, recompile a | ||
24 | kernel with the ewrk3 configuration turned off and reboot. | ||
25 | 5) insmod ewrk3.o | ||
26 | [Alan Cox: Changed this so you can insmod ewrk3.o irq=x io=y] | ||
27 | [Adam Kropelin: Multiple cards now supported by irq=x1,x2 io=y1,y2] | ||
28 | 6) run the net startup bits for your new eth?? interface manually | ||
29 | (usually /etc/rc.inet[12] at boot time). | ||
30 | 7) enjoy! | ||
31 | |||
32 | Note that autoprobing is not allowed in loadable modules - the system is | ||
33 | already up and running and you're messing with interrupts. | ||
34 | |||
35 | To unload a module, turn off the associated interface | ||
36 | 'ifconfig eth?? down' then 'rmmod ewrk3'. | ||
37 | |||
38 | The performance we've achieved so far has been measured through the 'ttcp' | ||
39 | tool at 975kB/s. This measures the total TCP stack performance which | ||
40 | includes the card, so don't expect to get much nearer the 1.25MB/s | ||
41 | theoretical Ethernet rate. | ||
42 | |||
43 | |||
44 | Enjoy! | ||
45 | |||
46 | Dave | ||
diff --git a/Documentation/networking/filter.txt b/Documentation/networking/filter.txt index bbf2005270b5..cdb3e40b9d14 100644 --- a/Documentation/networking/filter.txt +++ b/Documentation/networking/filter.txt | |||
@@ -17,12 +17,12 @@ creating filters. | |||
17 | 17 | ||
18 | LSF is much simpler than BPF. One does not have to worry about | 18 | LSF is much simpler than BPF. One does not have to worry about |
19 | devices or anything like that. You simply create your filter | 19 | devices or anything like that. You simply create your filter |
20 | code, send it to the kernel via the SO_ATTACH_FILTER ioctl and | 20 | code, send it to the kernel via the SO_ATTACH_FILTER option and |
21 | if your filter code passes the kernel check on it, you then | 21 | if your filter code passes the kernel check on it, you then |
22 | immediately begin filtering data on that socket. | 22 | immediately begin filtering data on that socket. |
23 | 23 | ||
24 | You can also detach filters from your socket via the | 24 | You can also detach filters from your socket via the |
25 | SO_DETACH_FILTER ioctl. This will probably not be used much | 25 | SO_DETACH_FILTER option. This will probably not be used much |
26 | since when you close a socket that has a filter on it the | 26 | since when you close a socket that has a filter on it the |
27 | filter is automagically removed. The other less common case | 27 | filter is automagically removed. The other less common case |
28 | may be adding a different filter on the same socket where you had another | 28 | may be adding a different filter on the same socket where you had another |
@@ -31,12 +31,19 @@ the old one and placing your new one in its place, assuming your | |||
31 | filter has passed the checks, otherwise if it fails the old filter | 31 | filter has passed the checks, otherwise if it fails the old filter |
32 | will remain on that socket. | 32 | will remain on that socket. |
33 | 33 | ||
34 | SO_LOCK_FILTER option allows to lock the filter attached to a | ||
35 | socket. Once set, a filter cannot be removed or changed. This allows | ||
36 | one process to setup a socket, attach a filter, lock it then drop | ||
37 | privileges and be assured that the filter will be kept until the | ||
38 | socket is closed. | ||
39 | |||
34 | Examples | 40 | Examples |
35 | ======== | 41 | ======== |
36 | 42 | ||
37 | Ioctls- | 43 | Ioctls- |
38 | setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter)); | 44 | setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter)); |
39 | setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value)); | 45 | setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value)); |
46 | setsockopt(sockfd, SOL_SOCKET, SO_LOCK_FILTER, &value, sizeof(value)); | ||
40 | 47 | ||
41 | See the BSD bpf.4 manpage and the BSD Packet Filter paper written by | 48 | See the BSD bpf.4 manpage and the BSD Packet Filter paper written by |
42 | Steven McCanne and Van Jacobson of Lawrence Berkeley Laboratory. | 49 | Steven McCanne and Van Jacobson of Lawrence Berkeley Laboratory. |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index dbca66182089..dc2dc87d2557 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
@@ -26,6 +26,11 @@ route/max_size - INTEGER | |||
26 | Maximum number of routes allowed in the kernel. Increase | 26 | Maximum number of routes allowed in the kernel. Increase |
27 | this when using large numbers of interfaces and/or routes. | 27 | this when using large numbers of interfaces and/or routes. |
28 | 28 | ||
29 | neigh/default/gc_thresh1 - INTEGER | ||
30 | Minimum number of entries to keep. Garbage collector will not | ||
31 | purge entries if there are fewer than this number. | ||
32 | Default: 256 | ||
33 | |||
29 | neigh/default/gc_thresh3 - INTEGER | 34 | neigh/default/gc_thresh3 - INTEGER |
30 | Maximum number of neighbor entries allowed. Increase this | 35 | Maximum number of neighbor entries allowed. Increase this |
31 | when using large numbers of interfaces and when communicating | 36 | when using large numbers of interfaces and when communicating |
@@ -125,17 +130,6 @@ somaxconn - INTEGER | |||
125 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning | 130 | Defaults to 128. See also tcp_max_syn_backlog for additional tuning |
126 | for TCP sockets. | 131 | for TCP sockets. |
127 | 132 | ||
128 | tcp_abc - INTEGER | ||
129 | Controls Appropriate Byte Count (ABC) defined in RFC3465. | ||
130 | ABC is a way of increasing congestion window (cwnd) more slowly | ||
131 | in response to partial acknowledgments. | ||
132 | Possible values are: | ||
133 | 0 increase cwnd once per acknowledgment (no ABC) | ||
134 | 1 increase cwnd once per acknowledgment of full sized segment | ||
135 | 2 allow increase cwnd by two if acknowledgment is | ||
136 | of two segments to compensate for delayed acknowledgments. | ||
137 | Default: 0 (off) | ||
138 | |||
139 | tcp_abort_on_overflow - BOOLEAN | 133 | tcp_abort_on_overflow - BOOLEAN |
140 | If listening service is too slow to accept new connections, | 134 | If listening service is too slow to accept new connections, |
141 | reset them. Default state is FALSE. It means that if overflow | 135 | reset them. Default state is FALSE. It means that if overflow |
@@ -214,7 +208,8 @@ tcp_ecn - INTEGER | |||
214 | congestion before having to drop packets. | 208 | congestion before having to drop packets. |
215 | Possible values are: | 209 | Possible values are: |
216 | 0 Disable ECN. Neither initiate nor accept ECN. | 210 | 0 Disable ECN. Neither initiate nor accept ECN. |
217 | 1 Always request ECN on outgoing connection attempts. | 211 | 1 Enable ECN when requested by incoming connections and |
212 | also request ECN on outgoing connection attempts. | ||
218 | 2 Enable ECN when requested by incoming connections | 213 | 2 Enable ECN when requested by incoming connections |
219 | but do not request ECN on outgoing connections. | 214 | but do not request ECN on outgoing connections. |
220 | Default: 2 | 215 | Default: 2 |
diff --git a/Documentation/networking/multicast.txt b/Documentation/networking/multicast.txt deleted file mode 100644 index b06c8c69266f..000000000000 --- a/Documentation/networking/multicast.txt +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
1 | Behaviour of Cards Under Multicast | ||
2 | ================================== | ||
3 | |||
4 | This is how they currently behave, not what the hardware can do--for example, | ||
5 | the Lance driver doesn't use its filter, even though the code for loading | ||
6 | it is in the DEC Lance-based driver. | ||
7 | |||
8 | The following are requirements for multicasting | ||
9 | ----------------------------------------------- | ||
10 | AppleTalk Multicast hardware filtering not important but | ||
11 | avoid cards only doing promisc | ||
12 | IP-Multicast Multicast hardware filters really help | ||
13 | IP-MRoute AllMulti hardware filters are of no help | ||
14 | |||
15 | |||
16 | Board Multicast AllMulti Promisc Filter | ||
17 | ------------------------------------------------------------------------ | ||
18 | 3c501 YES YES YES Software | ||
19 | 3c503 YES YES YES Hardware | ||
20 | 3c505 YES NO YES Hardware | ||
21 | 3c507 NO NO NO N/A | ||
22 | 3c509 YES YES YES Software | ||
23 | 3c59x YES YES YES Software | ||
24 | ac3200 YES YES YES Hardware | ||
25 | apricot YES PROMISC YES Hardware | ||
26 | arcnet NO NO NO N/A | ||
27 | at1700 PROMISC PROMISC YES Software | ||
28 | atp PROMISC PROMISC YES Software | ||
29 | cs89x0 YES YES YES Software | ||
30 | de4x5 YES YES YES Hardware | ||
31 | de600 NO NO NO N/A | ||
32 | de620 PROMISC PROMISC YES Software | ||
33 | depca YES PROMISC YES Hardware | ||
34 | dmfe YES YES YES Software(*) | ||
35 | e2100 YES YES YES Hardware | ||
36 | eepro YES PROMISC YES Hardware | ||
37 | eexpress NO NO NO N/A | ||
38 | ewrk3 YES PROMISC YES Hardware | ||
39 | hp-plus YES YES YES Hardware | ||
40 | hp YES YES YES Hardware | ||
41 | hp100 YES YES YES Hardware | ||
42 | ibmtr NO NO NO N/A | ||
43 | ioc3-eth YES YES YES Hardware | ||
44 | lance YES YES YES Software(#) | ||
45 | ne YES YES YES Hardware | ||
46 | ni52 <------------------ Buggy ------------------> | ||
47 | ni65 YES YES YES Software(#) | ||
48 | seeq NO NO NO N/A | ||
49 | sgiseek <------------------ Buggy ------------------> | ||
50 | smc-ultra YES YES YES Hardware | ||
51 | sunlance YES YES YES Hardware | ||
52 | tulip YES YES YES Hardware | ||
53 | wavelan YES PROMISC YES Hardware | ||
54 | wd YES YES YES Hardware | ||
55 | xirc2ps_cs YES YES YES Hardware | ||
56 | znet YES YES YES Software | ||
57 | |||
58 | |||
59 | PROMISC = This multicast mode is in fact promiscuous mode. Avoid using | ||
60 | cards who go PROMISC on any multicast in a multicast kernel. | ||
61 | |||
62 | (#) = Hardware multicast support is not used yet. | ||
63 | (*) = Hardware support for Davicom 9132 chipset only. | ||
diff --git a/Documentation/networking/netconsole.txt b/Documentation/networking/netconsole.txt index 2e9e0ae2cd45..a5d574a9ae09 100644 --- a/Documentation/networking/netconsole.txt +++ b/Documentation/networking/netconsole.txt | |||
@@ -1,9 +1,10 @@ | |||
1 | 1 | ||
2 | started by Ingo Molnar <mingo@redhat.com>, 2001.09.17 | 2 | started by Ingo Molnar <mingo@redhat.com>, 2001.09.17 |
3 | 2.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003 | 3 | 2.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003 |
4 | IPv6 support by Cong Wang <xiyou.wangcong@gmail.com>, Jan 1 2013 | ||
4 | 5 | ||
5 | Please send bug reports to Matt Mackall <mpm@selenic.com> | 6 | Please send bug reports to Matt Mackall <mpm@selenic.com> |
6 | and Satyam Sharma <satyam.sharma@gmail.com> | 7 | Satyam Sharma <satyam.sharma@gmail.com>, and Cong Wang <xiyou.wangcong@gmail.com> |
7 | 8 | ||
8 | Introduction: | 9 | Introduction: |
9 | ============= | 10 | ============= |
@@ -41,6 +42,10 @@ Examples: | |||
41 | 42 | ||
42 | insmod netconsole netconsole=@/,@10.0.0.2/ | 43 | insmod netconsole netconsole=@/,@10.0.0.2/ |
43 | 44 | ||
45 | or using IPv6 | ||
46 | |||
47 | insmod netconsole netconsole=@/,@fd00:1:2:3::1/ | ||
48 | |||
44 | It also supports logging to multiple remote agents by specifying | 49 | It also supports logging to multiple remote agents by specifying |
45 | parameters for the multiple agents separated by semicolons and the | 50 | parameters for the multiple agents separated by semicolons and the |
46 | complete string enclosed in "quotes", thusly: | 51 | complete string enclosed in "quotes", thusly: |
diff --git a/Documentation/networking/nf_conntrack-sysctl.txt b/Documentation/networking/nf_conntrack-sysctl.txt new file mode 100644 index 000000000000..70da5086153d --- /dev/null +++ b/Documentation/networking/nf_conntrack-sysctl.txt | |||
@@ -0,0 +1,176 @@ | |||
1 | /proc/sys/net/netfilter/nf_conntrack_* Variables: | ||
2 | |||
3 | nf_conntrack_acct - BOOLEAN | ||
4 | 0 - disabled (default) | ||
5 | not 0 - enabled | ||
6 | |||
7 | Enable connection tracking flow accounting. 64-bit byte and packet | ||
8 | counters per flow are added. | ||
9 | |||
10 | nf_conntrack_buckets - INTEGER (read-only) | ||
11 | Size of hash table. If not specified as parameter during module | ||
12 | loading, the default size is calculated by dividing total memory | ||
13 | by 16384 to determine the number of buckets but the hash table will | ||
14 | never have fewer than 32 or more than 16384 buckets. | ||
15 | |||
16 | nf_conntrack_checksum - BOOLEAN | ||
17 | 0 - disabled | ||
18 | not 0 - enabled (default) | ||
19 | |||
20 | Verify checksum of incoming packets. Packets with bad checksums are | ||
21 | in INVALID state. If this is enabled, such packets will not be | ||
22 | considered for connection tracking. | ||
23 | |||
24 | nf_conntrack_count - INTEGER (read-only) | ||
25 | Number of currently allocated flow entries. | ||
26 | |||
27 | nf_conntrack_events - BOOLEAN | ||
28 | 0 - disabled | ||
29 | not 0 - enabled (default) | ||
30 | |||
31 | If this option is enabled, the connection tracking code will | ||
32 | provide userspace with connection tracking events via ctnetlink. | ||
33 | |||
34 | nf_conntrack_events_retry_timeout - INTEGER (seconds) | ||
35 | default 15 | ||
36 | |||
37 | This option is only relevant when "reliable connection tracking | ||
38 | events" are used. Normally, ctnetlink is "lossy", that is, | ||
39 | events are normally dropped when userspace listeners can't keep up. | ||
40 | |||
41 | Userspace can request "reliable event mode". When this mode is | ||
42 | active, the conntrack will only be destroyed after the event was | ||
43 | delivered. If event delivery fails, the kernel periodically | ||
44 | re-tries to send the event to userspace. | ||
45 | |||
46 | This is the maximum interval the kernel should use when re-trying | ||
47 | to deliver the destroy event. | ||
48 | |||
49 | A higher number means there will be fewer delivery retries and it | ||
50 | will take longer for a backlog to be processed. | ||
51 | |||
52 | nf_conntrack_expect_max - INTEGER | ||
53 | Maximum size of expectation table. Default value is | ||
54 | nf_conntrack_buckets / 256. Minimum is 1. | ||
55 | |||
56 | nf_conntrack_frag6_high_thresh - INTEGER | ||
57 | default 262144 | ||
58 | |||
59 | Maximum memory used to reassemble IPv6 fragments. When | ||
60 | nf_conntrack_frag6_high_thresh bytes of memory is allocated for this | ||
61 | purpose, the fragment handler will toss packets until | ||
62 | nf_conntrack_frag6_low_thresh is reached. | ||
63 | |||
64 | nf_conntrack_frag6_low_thresh - INTEGER | ||
65 | default 196608 | ||
66 | |||
67 | See nf_conntrack_frag6_low_thresh | ||
68 | |||
69 | nf_conntrack_frag6_timeout - INTEGER (seconds) | ||
70 | default 60 | ||
71 | |||
72 | Time to keep an IPv6 fragment in memory. | ||
73 | |||
74 | nf_conntrack_generic_timeout - INTEGER (seconds) | ||
75 | default 600 | ||
76 | |||
77 | Default for generic timeout. This refers to layer 4 unknown/unsupported | ||
78 | protocols. | ||
79 | |||
80 | nf_conntrack_helper - BOOLEAN | ||
81 | 0 - disabled | ||
82 | not 0 - enabled (default) | ||
83 | |||
84 | Enable automatic conntrack helper assignment. | ||
85 | |||
86 | nf_conntrack_icmp_timeout - INTEGER (seconds) | ||
87 | default 30 | ||
88 | |||
89 | Default for ICMP timeout. | ||
90 | |||
91 | nf_conntrack_icmpv6_timeout - INTEGER (seconds) | ||
92 | default 30 | ||
93 | |||
94 | Default for ICMP6 timeout. | ||
95 | |||
96 | nf_conntrack_log_invalid - INTEGER | ||
97 | 0 - disable (default) | ||
98 | 1 - log ICMP packets | ||
99 | 6 - log TCP packets | ||
100 | 17 - log UDP packets | ||
101 | 33 - log DCCP packets | ||
102 | 41 - log ICMPv6 packets | ||
103 | 136 - log UDPLITE packets | ||
104 | 255 - log packets of any protocol | ||
105 | |||
106 | Log invalid packets of a type specified by value. | ||
107 | |||
108 | nf_conntrack_max - INTEGER | ||
109 | Size of connection tracking table. Default value is | ||
110 | nf_conntrack_buckets value * 4. | ||
111 | |||
112 | nf_conntrack_tcp_be_liberal - BOOLEAN | ||
113 | 0 - disabled (default) | ||
114 | not 0 - enabled | ||
115 | |||
116 | Be conservative in what you do, be liberal in what you accept from others. | ||
117 | If it's non-zero, we mark only out of window RST segments as INVALID. | ||
118 | |||
119 | nf_conntrack_tcp_loose - BOOLEAN | ||
120 | 0 - disabled | ||
121 | not 0 - enabled (default) | ||
122 | |||
123 | If it is set to zero, we disable picking up already established | ||
124 | connections. | ||
125 | |||
126 | nf_conntrack_tcp_max_retrans - INTEGER | ||
127 | default 3 | ||
128 | |||
129 | Maximum number of packets that can be retransmitted without | ||
130 | received an (acceptable) ACK from the destination. If this number | ||
131 | is reached, a shorter timer will be started. | ||
132 | |||
133 | nf_conntrack_tcp_timeout_close - INTEGER (seconds) | ||
134 | default 10 | ||
135 | |||
136 | nf_conntrack_tcp_timeout_close_wait - INTEGER (seconds) | ||
137 | default 60 | ||
138 | |||
139 | nf_conntrack_tcp_timeout_established - INTEGER (seconds) | ||
140 | default 432000 (5 days) | ||
141 | |||
142 | nf_conntrack_tcp_timeout_fin_wait - INTEGER (seconds) | ||
143 | default 120 | ||
144 | |||
145 | nf_conntrack_tcp_timeout_last_ack - INTEGER (seconds) | ||
146 | default 30 | ||
147 | |||
148 | nf_conntrack_tcp_timeout_max_retrans - INTEGER (seconds) | ||
149 | default 300 | ||
150 | |||
151 | nf_conntrack_tcp_timeout_syn_recv - INTEGER (seconds) | ||
152 | default 60 | ||
153 | |||
154 | nf_conntrack_tcp_timeout_syn_sent - INTEGER (seconds) | ||
155 | default 120 | ||
156 | |||
157 | nf_conntrack_tcp_timeout_time_wait - INTEGER (seconds) | ||
158 | default 120 | ||
159 | |||
160 | nf_conntrack_tcp_timeout_unacknowledged - INTEGER (seconds) | ||
161 | default 300 | ||
162 | |||
163 | nf_conntrack_timestamp - BOOLEAN | ||
164 | 0 - disabled (default) | ||
165 | not 0 - enabled | ||
166 | |||
167 | Enable connection tracking flow timestamping. | ||
168 | |||
169 | nf_conntrack_udp_timeout - INTEGER (seconds) | ||
170 | default 30 | ||
171 | |||
172 | nf_conntrack_udp_timeout_stream2 - INTEGER (seconds) | ||
173 | default 180 | ||
174 | |||
175 | This extended timeout will be used in case there is an UDP stream | ||
176 | detected. | ||
diff --git a/Documentation/networking/operstates.txt b/Documentation/networking/operstates.txt index 1a77a3cfae54..97694572338b 100644 --- a/Documentation/networking/operstates.txt +++ b/Documentation/networking/operstates.txt | |||
@@ -88,6 +88,10 @@ set this flag. On netif_carrier_off(), the scheduler stops sending | |||
88 | packets. The name 'carrier' and the inversion are historical, think of | 88 | packets. The name 'carrier' and the inversion are historical, think of |
89 | it as lower layer. | 89 | it as lower layer. |
90 | 90 | ||
91 | Note that for certain kind of soft-devices, which are not managing any | ||
92 | real hardware, there is possible to set this bit from userpsace. | ||
93 | One should use TVL IFLA_CARRIER to do so. | ||
94 | |||
91 | netif_carrier_ok() can be used to query that bit. | 95 | netif_carrier_ok() can be used to query that bit. |
92 | 96 | ||
93 | __LINK_STATE_DORMANT, maps to IFF_DORMANT: | 97 | __LINK_STATE_DORMANT, maps to IFF_DORMANT: |
diff --git a/Documentation/networking/phy.txt b/Documentation/networking/phy.txt index 95e5f5985a2a..d5b1a3935245 100644 --- a/Documentation/networking/phy.txt +++ b/Documentation/networking/phy.txt | |||
@@ -103,7 +103,7 @@ Letting the PHY Abstraction Layer do Everything | |||
103 | 103 | ||
104 | Now, to connect, just call this function: | 104 | Now, to connect, just call this function: |
105 | 105 | ||
106 | phydev = phy_connect(dev, phy_name, &adjust_link, flags, interface); | 106 | phydev = phy_connect(dev, phy_name, &adjust_link, interface); |
107 | 107 | ||
108 | phydev is a pointer to the phy_device structure which represents the PHY. If | 108 | phydev is a pointer to the phy_device structure which represents the PHY. If |
109 | phy_connect is successful, it will return the pointer. dev, here, is the | 109 | phy_connect is successful, it will return the pointer. dev, here, is the |
@@ -113,7 +113,9 @@ Letting the PHY Abstraction Layer do Everything | |||
113 | current state, though the PHY will not yet be truly operational at this | 113 | current state, though the PHY will not yet be truly operational at this |
114 | point. | 114 | point. |
115 | 115 | ||
116 | flags is a u32 which can optionally contain phy-specific flags. | 116 | PHY-specific flags should be set in phydev->dev_flags prior to the call |
117 | to phy_connect() such that the underlying PHY driver can check for flags | ||
118 | and perform specific operations based on them. | ||
117 | This is useful if the system has put hardware restrictions on | 119 | This is useful if the system has put hardware restrictions on |
118 | the PHY/controller, of which the PHY needs to be aware. | 120 | the PHY/controller, of which the PHY needs to be aware. |
119 | 121 | ||
@@ -185,11 +187,10 @@ Doing it all yourself | |||
185 | start, or disables then frees them for stop. | 187 | start, or disables then frees them for stop. |
186 | 188 | ||
187 | struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, | 189 | struct phy_device * phy_attach(struct net_device *dev, const char *phy_id, |
188 | u32 flags, phy_interface_t interface); | 190 | phy_interface_t interface); |
189 | 191 | ||
190 | Attaches a network device to a particular PHY, binding the PHY to a generic | 192 | Attaches a network device to a particular PHY, binding the PHY to a generic |
191 | driver if none was found during bus initialization. Passes in | 193 | driver if none was found during bus initialization. |
192 | any phy-specific flags as needed. | ||
193 | 194 | ||
194 | int phy_start_aneg(struct phy_device *phydev); | 195 | int phy_start_aneg(struct phy_device *phydev); |
195 | 196 | ||
diff --git a/Documentation/nfc/nfc-hci.txt b/Documentation/nfc/nfc-hci.txt index 89a339c9b079..0686c9e211c2 100644 --- a/Documentation/nfc/nfc-hci.txt +++ b/Documentation/nfc/nfc-hci.txt | |||
@@ -17,10 +17,12 @@ HCI | |||
17 | HCI registers as an nfc device with NFC Core. Requests coming from userspace are | 17 | HCI registers as an nfc device with NFC Core. Requests coming from userspace are |
18 | routed through netlink sockets to NFC Core and then to HCI. From this point, | 18 | routed through netlink sockets to NFC Core and then to HCI. From this point, |
19 | they are translated in a sequence of HCI commands sent to the HCI layer in the | 19 | they are translated in a sequence of HCI commands sent to the HCI layer in the |
20 | host controller (the chip). The sending context blocks while waiting for the | 20 | host controller (the chip). Commands can be executed synchronously (the sending |
21 | response to arrive. | 21 | context blocks waiting for response) or asynchronously (the response is returned |
22 | from HCI Rx context). | ||
22 | HCI events can also be received from the host controller. They will be handled | 23 | HCI events can also be received from the host controller. They will be handled |
23 | and a translation will be forwarded to NFC Core as needed. | 24 | and a translation will be forwarded to NFC Core as needed. There are hooks to |
25 | let the HCI driver handle proprietary events or override standard behavior. | ||
24 | HCI uses 2 execution contexts: | 26 | HCI uses 2 execution contexts: |
25 | - one for executing commands : nfc_hci_msg_tx_work(). Only one command | 27 | - one for executing commands : nfc_hci_msg_tx_work(). Only one command |
26 | can be executing at any given moment. | 28 | can be executing at any given moment. |
@@ -33,6 +35,8 @@ The Session initialization is an HCI standard which must unfortunately | |||
33 | support proprietary gates. This is the reason why the driver will pass a list | 35 | support proprietary gates. This is the reason why the driver will pass a list |
34 | of proprietary gates that must be part of the session. HCI will ensure all | 36 | of proprietary gates that must be part of the session. HCI will ensure all |
35 | those gates have pipes connected when the hci device is set up. | 37 | those gates have pipes connected when the hci device is set up. |
38 | In case the chip supports pre-opened gates and pseudo-static pipes, the driver | ||
39 | can pass that information to HCI core. | ||
36 | 40 | ||
37 | HCI Gates and Pipes | 41 | HCI Gates and Pipes |
38 | ------------------- | 42 | ------------------- |
@@ -46,6 +50,13 @@ without knowing the pipe connected to it. | |||
46 | Driver interface | 50 | Driver interface |
47 | ---------------- | 51 | ---------------- |
48 | 52 | ||
53 | A driver is generally written in two parts : the physical link management and | ||
54 | the HCI management. This makes it easier to maintain a driver for a chip that | ||
55 | can be connected using various phy (i2c, spi, ...) | ||
56 | |||
57 | HCI Management | ||
58 | -------------- | ||
59 | |||
49 | A driver would normally register itself with HCI and provide the following | 60 | A driver would normally register itself with HCI and provide the following |
50 | entry points: | 61 | entry points: |
51 | 62 | ||
@@ -53,58 +64,113 @@ struct nfc_hci_ops { | |||
53 | int (*open)(struct nfc_hci_dev *hdev); | 64 | int (*open)(struct nfc_hci_dev *hdev); |
54 | void (*close)(struct nfc_hci_dev *hdev); | 65 | void (*close)(struct nfc_hci_dev *hdev); |
55 | int (*hci_ready) (struct nfc_hci_dev *hdev); | 66 | int (*hci_ready) (struct nfc_hci_dev *hdev); |
56 | int (*xmit)(struct nfc_hci_dev *hdev, struct sk_buff *skb); | 67 | int (*xmit) (struct nfc_hci_dev *hdev, struct sk_buff *skb); |
57 | int (*start_poll)(struct nfc_hci_dev *hdev, u32 protocols); | 68 | int (*start_poll) (struct nfc_hci_dev *hdev, |
58 | int (*target_from_gate)(struct nfc_hci_dev *hdev, u8 gate, | 69 | u32 im_protocols, u32 tm_protocols); |
59 | struct nfc_target *target); | 70 | int (*dep_link_up)(struct nfc_hci_dev *hdev, struct nfc_target *target, |
71 | u8 comm_mode, u8 *gb, size_t gb_len); | ||
72 | int (*dep_link_down)(struct nfc_hci_dev *hdev); | ||
73 | int (*target_from_gate) (struct nfc_hci_dev *hdev, u8 gate, | ||
74 | struct nfc_target *target); | ||
60 | int (*complete_target_discovered) (struct nfc_hci_dev *hdev, u8 gate, | 75 | int (*complete_target_discovered) (struct nfc_hci_dev *hdev, u8 gate, |
61 | struct nfc_target *target); | 76 | struct nfc_target *target); |
62 | int (*data_exchange) (struct nfc_hci_dev *hdev, | 77 | int (*im_transceive) (struct nfc_hci_dev *hdev, |
63 | struct nfc_target *target, | 78 | struct nfc_target *target, struct sk_buff *skb, |
64 | struct sk_buff *skb, struct sk_buff **res_skb); | 79 | data_exchange_cb_t cb, void *cb_context); |
80 | int (*tm_send)(struct nfc_hci_dev *hdev, struct sk_buff *skb); | ||
65 | int (*check_presence)(struct nfc_hci_dev *hdev, | 81 | int (*check_presence)(struct nfc_hci_dev *hdev, |
66 | struct nfc_target *target); | 82 | struct nfc_target *target); |
83 | int (*event_received)(struct nfc_hci_dev *hdev, u8 gate, u8 event, | ||
84 | struct sk_buff *skb); | ||
67 | }; | 85 | }; |
68 | 86 | ||
69 | - open() and close() shall turn the hardware on and off. | 87 | - open() and close() shall turn the hardware on and off. |
70 | - hci_ready() is an optional entry point that is called right after the hci | 88 | - hci_ready() is an optional entry point that is called right after the hci |
71 | session has been set up. The driver can use it to do additional initialization | 89 | session has been set up. The driver can use it to do additional initialization |
72 | that must be performed using HCI commands. | 90 | that must be performed using HCI commands. |
73 | - xmit() shall simply write a frame to the chip. | 91 | - xmit() shall simply write a frame to the physical link. |
74 | - start_poll() is an optional entrypoint that shall set the hardware in polling | 92 | - start_poll() is an optional entrypoint that shall set the hardware in polling |
75 | mode. This must be implemented only if the hardware uses proprietary gates or a | 93 | mode. This must be implemented only if the hardware uses proprietary gates or a |
76 | mechanism slightly different from the HCI standard. | 94 | mechanism slightly different from the HCI standard. |
95 | - dep_link_up() is called after a p2p target has been detected, to finish | ||
96 | the p2p connection setup with hardware parameters that need to be passed back | ||
97 | to nfc core. | ||
98 | - dep_link_down() is called to bring the p2p link down. | ||
77 | - target_from_gate() is an optional entrypoint to return the nfc protocols | 99 | - target_from_gate() is an optional entrypoint to return the nfc protocols |
78 | corresponding to a proprietary gate. | 100 | corresponding to a proprietary gate. |
79 | - complete_target_discovered() is an optional entry point to let the driver | 101 | - complete_target_discovered() is an optional entry point to let the driver |
80 | perform additional proprietary processing necessary to auto activate the | 102 | perform additional proprietary processing necessary to auto activate the |
81 | discovered target. | 103 | discovered target. |
82 | - data_exchange() must be implemented by the driver if proprietary HCI commands | 104 | - im_transceive() must be implemented by the driver if proprietary HCI commands |
83 | are required to send data to the tag. Some tag types will require custom | 105 | are required to send data to the tag. Some tag types will require custom |
84 | commands, others can be written to using the standard HCI commands. The driver | 106 | commands, others can be written to using the standard HCI commands. The driver |
85 | can check the tag type and either do proprietary processing, or return 1 to ask | 107 | can check the tag type and either do proprietary processing, or return 1 to ask |
86 | for standard processing. | 108 | for standard processing. The data exchange command itself must be sent |
109 | asynchronously. | ||
110 | - tm_send() is called to send data in the case of a p2p connection | ||
87 | - check_presence() is an optional entry point that will be called regularly | 111 | - check_presence() is an optional entry point that will be called regularly |
88 | by the core to check that an activated tag is still in the field. If this is | 112 | by the core to check that an activated tag is still in the field. If this is |
89 | not implemented, the core will not be able to push tag_lost events to the user | 113 | not implemented, the core will not be able to push tag_lost events to the user |
90 | space | 114 | space |
115 | - event_received() is called to handle an event coming from the chip. Driver | ||
116 | can handle the event or return 1 to let HCI attempt standard processing. | ||
91 | 117 | ||
92 | On the rx path, the driver is responsible to push incoming HCP frames to HCI | 118 | On the rx path, the driver is responsible to push incoming HCP frames to HCI |
93 | using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling | 119 | using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling |
94 | This must be done from a context that can sleep. | 120 | This must be done from a context that can sleep. |
95 | 121 | ||
96 | SHDLC | 122 | PHY Management |
97 | ----- | 123 | -------------- |
124 | |||
125 | The physical link (i2c, ...) management is defined by the following struture: | ||
126 | |||
127 | struct nfc_phy_ops { | ||
128 | int (*write)(void *dev_id, struct sk_buff *skb); | ||
129 | int (*enable)(void *dev_id); | ||
130 | void (*disable)(void *dev_id); | ||
131 | }; | ||
132 | |||
133 | enable(): turn the phy on (power on), make it ready to transfer data | ||
134 | disable(): turn the phy off | ||
135 | write(): Send a data frame to the chip. Note that to enable higher | ||
136 | layers such as an llc to store the frame for re-emission, this function must | ||
137 | not alter the skb. It must also not return a positive result (return 0 for | ||
138 | success, negative for failure). | ||
139 | |||
140 | Data coming from the chip shall be sent directly to nfc_hci_recv_frame(). | ||
141 | |||
142 | LLC | ||
143 | --- | ||
144 | |||
145 | Communication between the CPU and the chip often requires some link layer | ||
146 | protocol. Those are isolated as modules managed by the HCI layer. There are | ||
147 | currently two modules : nop (raw transfert) and shdlc. | ||
148 | A new llc must implement the following functions: | ||
149 | |||
150 | struct nfc_llc_ops { | ||
151 | void *(*init) (struct nfc_hci_dev *hdev, xmit_to_drv_t xmit_to_drv, | ||
152 | rcv_to_hci_t rcv_to_hci, int tx_headroom, | ||
153 | int tx_tailroom, int *rx_headroom, int *rx_tailroom, | ||
154 | llc_failure_t llc_failure); | ||
155 | void (*deinit) (struct nfc_llc *llc); | ||
156 | int (*start) (struct nfc_llc *llc); | ||
157 | int (*stop) (struct nfc_llc *llc); | ||
158 | void (*rcv_from_drv) (struct nfc_llc *llc, struct sk_buff *skb); | ||
159 | int (*xmit_from_hci) (struct nfc_llc *llc, struct sk_buff *skb); | ||
160 | }; | ||
161 | |||
162 | - init() : allocate and init your private storage | ||
163 | - deinit() : cleanup | ||
164 | - start() : establish the logical connection | ||
165 | - stop () : terminate the logical connection | ||
166 | - rcv_from_drv() : handle data coming from the chip, going to HCI | ||
167 | - xmit_from_hci() : handle data sent by HCI, going to the chip | ||
98 | 168 | ||
99 | Most chips use shdlc to ensure integrity and delivery ordering of the HCP | 169 | The llc must be registered with nfc before it can be used. Do that by |
100 | frames between the host controller (the chip) and hosts (entities connected | 170 | calling nfc_llc_register(const char *name, struct nfc_llc_ops *ops); |
101 | to the chip, like the cpu). In order to simplify writing the driver, an shdlc | 171 | |
102 | layer is available for use by the driver. | 172 | Again, note that the llc does not handle the physical link. It is thus very |
103 | When used, the driver actually registers with shdlc, and shdlc will register | 173 | easy to mix any physical link with any llc for a given chip driver. |
104 | with HCI. HCI sees shdlc as the driver and thus send its HCP frames | ||
105 | through shdlc->xmit. | ||
106 | SHDLC adds a new execution context (nfc_shdlc_sm_work()) to run its state | ||
107 | machine and handle both its rx and tx path. | ||
108 | 174 | ||
109 | Included Drivers | 175 | Included Drivers |
110 | ---------------- | 176 | ---------------- |
@@ -117,10 +183,12 @@ Execution Contexts | |||
117 | 183 | ||
118 | The execution contexts are the following: | 184 | The execution contexts are the following: |
119 | - IRQ handler (IRQH): | 185 | - IRQ handler (IRQH): |
120 | fast, cannot sleep. stores incoming frames into an shdlc rx queue | 186 | fast, cannot sleep. sends incoming frames to HCI where they are passed to |
187 | the current llc. In case of shdlc, the frame is queued in shdlc rx queue. | ||
121 | 188 | ||
122 | - SHDLC State Machine worker (SMW) | 189 | - SHDLC State Machine worker (SMW) |
123 | handles shdlc rx & tx queues. Dispatches HCI cmd responses. | 190 | Only when llc_shdlc is used: handles shdlc rx & tx queues. |
191 | Dispatches HCI cmd responses. | ||
124 | 192 | ||
125 | - HCI Tx Cmd worker (MSGTXWQ) | 193 | - HCI Tx Cmd worker (MSGTXWQ) |
126 | Serializes execution of HCI commands. Completes execution in case of response | 194 | Serializes execution of HCI commands. Completes execution in case of response |
@@ -166,6 +234,15 @@ waiting command execution. Response processing involves invoking the completion | |||
166 | callback that was provided by nfc_hci_msg_tx_work() when it sent the command. | 234 | callback that was provided by nfc_hci_msg_tx_work() when it sent the command. |
167 | The completion callback will then wake the syscall context. | 235 | The completion callback will then wake the syscall context. |
168 | 236 | ||
237 | It is also possible to execute the command asynchronously using this API: | ||
238 | |||
239 | static int nfc_hci_execute_cmd_async(struct nfc_hci_dev *hdev, u8 pipe, u8 cmd, | ||
240 | const u8 *param, size_t param_len, | ||
241 | data_exchange_cb_t cb, void *cb_context) | ||
242 | |||
243 | The workflow is the same, except that the API call returns immediately, and | ||
244 | the callback will be called with the result from the SMW context. | ||
245 | |||
169 | Workflow receiving an HCI event or command | 246 | Workflow receiving an HCI event or command |
170 | ------------------------------------------ | 247 | ------------------------------------------ |
171 | 248 | ||
diff --git a/Documentation/nfc/nfc-pn544.txt b/Documentation/nfc/nfc-pn544.txt index 2fcac9f5996e..b36ca14ca2d6 100644 --- a/Documentation/nfc/nfc-pn544.txt +++ b/Documentation/nfc/nfc-pn544.txt | |||
@@ -1,32 +1,15 @@ | |||
1 | Kernel driver for the NXP Semiconductors PN544 Near Field | 1 | Kernel driver for the NXP Semiconductors PN544 Near Field |
2 | Communication chip | 2 | Communication chip |
3 | 3 | ||
4 | Author: Jari Vanhala | ||
5 | Contact: Matti Aaltonen (matti.j.aaltonen at nokia.com) | ||
6 | |||
7 | General | 4 | General |
8 | ------- | 5 | ------- |
9 | 6 | ||
10 | The PN544 is an integrated transmission module for contactless | 7 | The PN544 is an integrated transmission module for contactless |
11 | communication. The driver goes under drives/nfc/ and is compiled as a | 8 | communication. The driver goes under drives/nfc/ and is compiled as a |
12 | module named "pn544". It registers a misc device and creates a device | 9 | module named "pn544". |
13 | file named "/dev/pn544". | ||
14 | 10 | ||
15 | Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C. | 11 | Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C. |
16 | 12 | ||
17 | The Interface | ||
18 | ------------- | ||
19 | |||
20 | The driver offers a sysfs interface for a hardware test and an IOCTL | ||
21 | interface for selecting between two operating modes. There are read, | ||
22 | write and poll functions for transferring messages. The two operating | ||
23 | modes are the normal (HCI) mode and the firmware update mode. | ||
24 | |||
25 | PN544 is controlled by sending messages from the userspace to the | ||
26 | chip. The main function of the driver is just to pass those messages | ||
27 | without caring about the message content. | ||
28 | |||
29 | |||
30 | Protocols | 13 | Protocols |
31 | --------- | 14 | --------- |
32 | 15 | ||
@@ -47,68 +30,3 @@ and third (LSB) bytes of the message. The maximum FW message length is | |||
47 | 30 | ||
48 | For the ETSI HCI specification see | 31 | For the ETSI HCI specification see |
49 | http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx | 32 | http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx |
50 | |||
51 | The Hardware Test | ||
52 | ----------------- | ||
53 | |||
54 | The idea of the test is that it can performed by reading from the | ||
55 | corresponding sysfs file. The test is implemented in the board file | ||
56 | and it should test that PN544 can be put into the firmware update | ||
57 | mode. If the test is not implemented the sysfs file does not get | ||
58 | created. | ||
59 | |||
60 | Example: | ||
61 | > cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test | ||
62 | 1 | ||
63 | |||
64 | Normal Operation | ||
65 | ---------------- | ||
66 | |||
67 | PN544 is powered up when the device file is opened, otherwise it's | ||
68 | turned off. Only one instance can use the device at a time. | ||
69 | |||
70 | Userspace applications control PN544 with HCI messages. The hardware | ||
71 | sends an interrupt when data is available for reading. Data is | ||
72 | physically read when the read function is called by a userspace | ||
73 | application. Poll() checks the read interrupt state. Configuration and | ||
74 | self testing are also done from the userspace using read and write. | ||
75 | |||
76 | Example platform data: | ||
77 | |||
78 | static int rx71_pn544_nfc_request_resources(struct i2c_client *client) | ||
79 | { | ||
80 | /* Get and setup the HW resources for the device */ | ||
81 | } | ||
82 | |||
83 | static void rx71_pn544_nfc_free_resources(void) | ||
84 | { | ||
85 | /* Release the HW resources */ | ||
86 | } | ||
87 | |||
88 | static void rx71_pn544_nfc_enable(int fw) | ||
89 | { | ||
90 | /* Turn the device on */ | ||
91 | } | ||
92 | |||
93 | static int rx71_pn544_nfc_test(void) | ||
94 | { | ||
95 | /* | ||
96 | * Put the device into the FW update mode | ||
97 | * and then back to the normal mode. | ||
98 | * Check the behavior and return one on success, | ||
99 | * zero on failure. | ||
100 | */ | ||
101 | } | ||
102 | |||
103 | static void rx71_pn544_nfc_disable(void) | ||
104 | { | ||
105 | /* turn the power off */ | ||
106 | } | ||
107 | |||
108 | static struct pn544_nfc_platform_data rx71_nfc_data = { | ||
109 | .request_resources = rx71_pn544_nfc_request_resources, | ||
110 | .free_resources = rx71_pn544_nfc_free_resources, | ||
111 | .enable = rx71_pn544_nfc_enable, | ||
112 | .test = rx71_pn544_nfc_test, | ||
113 | .disable = rx71_pn544_nfc_disable, | ||
114 | }; | ||
diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt index da40efbef6ec..a2b57e0a1db0 100644 --- a/Documentation/pinctrl.txt +++ b/Documentation/pinctrl.txt | |||
@@ -972,6 +972,18 @@ pinmux core. | |||
972 | Pin control requests from drivers | 972 | Pin control requests from drivers |
973 | ================================= | 973 | ================================= |
974 | 974 | ||
975 | When a device driver is about to probe the device core will automatically | ||
976 | attempt to issue pinctrl_get_select_default() on these devices. | ||
977 | This way driver writers do not need to add any of the boilerplate code | ||
978 | of the type found below. However when doing fine-grained state selection | ||
979 | and not using the "default" state, you may have to do some device driver | ||
980 | handling of the pinctrl handles and states. | ||
981 | |||
982 | So if you just want to put the pins for a certain device into the default | ||
983 | state and be done with it, there is nothing you need to do besides | ||
984 | providing the proper mapping table. The device core will take care of | ||
985 | the rest. | ||
986 | |||
975 | Generally it is discouraged to let individual drivers get and enable pin | 987 | Generally it is discouraged to let individual drivers get and enable pin |
976 | control. So if possible, handle the pin control in platform code or some other | 988 | control. So if possible, handle the pin control in platform code or some other |
977 | place where you have access to all the affected struct device * pointers. In | 989 | place where you have access to all the affected struct device * pointers. In |
@@ -1097,9 +1109,9 @@ situations that can be electrically unpleasant, you will certainly want to | |||
1097 | mux in and bias pins in a certain way before the GPIO subsystems starts to | 1109 | mux in and bias pins in a certain way before the GPIO subsystems starts to |
1098 | deal with them. | 1110 | deal with them. |
1099 | 1111 | ||
1100 | The above can be hidden: using pinctrl hogs, the pin control driver may be | 1112 | The above can be hidden: using the device core, the pinctrl core may be |
1101 | setting up the config and muxing for the pins when it is probing, | 1113 | setting up the config and muxing for the pins right before the device is |
1102 | nevertheless orthogonal to the GPIO subsystem. | 1114 | probing, nevertheless orthogonal to the GPIO subsystem. |
1103 | 1115 | ||
1104 | But there are also situations where it makes sense for the GPIO subsystem | 1116 | But there are also situations where it makes sense for the GPIO subsystem |
1105 | to communicate directly with with the pinctrl subsystem, using the latter | 1117 | to communicate directly with with the pinctrl subsystem, using the latter |
diff --git a/Documentation/power/freezing-of-tasks.txt b/Documentation/power/freezing-of-tasks.txt index 6ec291ea1c78..85894d83b352 100644 --- a/Documentation/power/freezing-of-tasks.txt +++ b/Documentation/power/freezing-of-tasks.txt | |||
@@ -223,3 +223,8 @@ since they ask the freezer to skip freezing this task, since it is anyway | |||
223 | only after the entire suspend/hibernation sequence is complete. | 223 | only after the entire suspend/hibernation sequence is complete. |
224 | So, to summarize, use [un]lock_system_sleep() instead of directly using | 224 | So, to summarize, use [un]lock_system_sleep() instead of directly using |
225 | mutex_[un]lock(&pm_mutex). That would prevent freezing failures. | 225 | mutex_[un]lock(&pm_mutex). That would prevent freezing failures. |
226 | |||
227 | V. Miscellaneous | ||
228 | /sys/power/pm_freeze_timeout controls how long it will cost at most to freeze | ||
229 | all user space processes or all freezable kernel threads, in unit of millisecond. | ||
230 | The default value is 20000, with range of unsigned integer. | ||
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt index 03591a750f99..6c9f5d9aa115 100644 --- a/Documentation/power/runtime_pm.txt +++ b/Documentation/power/runtime_pm.txt | |||
@@ -426,6 +426,10 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h: | |||
426 | 'power.runtime_error' is set or 'power.disable_depth' is greater than | 426 | 'power.runtime_error' is set or 'power.disable_depth' is greater than |
427 | zero) | 427 | zero) |
428 | 428 | ||
429 | bool pm_runtime_active(struct device *dev); | ||
430 | - return true if the device's runtime PM status is 'active' or its | ||
431 | 'power.disable_depth' field is not equal to zero, or false otherwise | ||
432 | |||
429 | bool pm_runtime_suspended(struct device *dev); | 433 | bool pm_runtime_suspended(struct device *dev); |
430 | - return true if the device's runtime PM status is 'suspended' and its | 434 | - return true if the device's runtime PM status is 'suspended' and its |
431 | 'power.disable_depth' field is equal to zero, or false otherwise | 435 | 'power.disable_depth' field is equal to zero, or false otherwise |
diff --git a/Documentation/powerpc/cpu_features.txt b/Documentation/powerpc/cpu_features.txt index ffa4183fdb8b..ae09df8722c8 100644 --- a/Documentation/powerpc/cpu_features.txt +++ b/Documentation/powerpc/cpu_features.txt | |||
@@ -11,10 +11,10 @@ split instruction and data caches, and if the CPU supports the DOZE and NAP | |||
11 | sleep modes. | 11 | sleep modes. |
12 | 12 | ||
13 | Detection of the feature set is simple. A list of processors can be found in | 13 | Detection of the feature set is simple. A list of processors can be found in |
14 | arch/ppc/kernel/cputable.c. The PVR register is masked and compared with each | 14 | arch/powerpc/kernel/cputable.c. The PVR register is masked and compared with |
15 | value in the list. If a match is found, the cpu_features of cur_cpu_spec is | 15 | each value in the list. If a match is found, the cpu_features of cur_cpu_spec |
16 | assigned to the feature bitmask for this processor and a __setup_cpu function | 16 | is assigned to the feature bitmask for this processor and a __setup_cpu |
17 | is called. | 17 | function is called. |
18 | 18 | ||
19 | C code may test 'cur_cpu_spec[smp_processor_id()]->cpu_features' for a | 19 | C code may test 'cur_cpu_spec[smp_processor_id()]->cpu_features' for a |
20 | particular feature bit. This is done in quite a few places, for example | 20 | particular feature bit. This is done in quite a few places, for example |
@@ -51,6 +51,6 @@ should be used in the majority of cases. | |||
51 | 51 | ||
52 | The END_FTR_SECTION macros are implemented by storing information about this | 52 | The END_FTR_SECTION macros are implemented by storing information about this |
53 | code in the '__ftr_fixup' ELF section. When do_cpu_ftr_fixups | 53 | code in the '__ftr_fixup' ELF section. When do_cpu_ftr_fixups |
54 | (arch/ppc/kernel/misc.S) is invoked, it will iterate over the records in | 54 | (arch/powerpc/kernel/misc.S) is invoked, it will iterate over the records in |
55 | __ftr_fixup, and if the required feature is not present it will loop writing | 55 | __ftr_fixup, and if the required feature is not present it will loop writing |
56 | nop's from each BEGIN_FTR_SECTION to END_FTR_SECTION. | 56 | nop's from each BEGIN_FTR_SECTION to END_FTR_SECTION. |
diff --git a/Documentation/powerpc/transactional_memory.txt b/Documentation/powerpc/transactional_memory.txt new file mode 100644 index 000000000000..c907be41d60f --- /dev/null +++ b/Documentation/powerpc/transactional_memory.txt | |||
@@ -0,0 +1,175 @@ | |||
1 | Transactional Memory support | ||
2 | ============================ | ||
3 | |||
4 | POWER kernel support for this feature is currently limited to supporting | ||
5 | its use by user programs. It is not currently used by the kernel itself. | ||
6 | |||
7 | This file aims to sum up how it is supported by Linux and what behaviour you | ||
8 | can expect from your user programs. | ||
9 | |||
10 | |||
11 | Basic overview | ||
12 | ============== | ||
13 | |||
14 | Hardware Transactional Memory is supported on POWER8 processors, and is a | ||
15 | feature that enables a different form of atomic memory access. Several new | ||
16 | instructions are presented to delimit transactions; transactions are | ||
17 | guaranteed to either complete atomically or roll back and undo any partial | ||
18 | changes. | ||
19 | |||
20 | A simple transaction looks like this: | ||
21 | |||
22 | begin_move_money: | ||
23 | tbegin | ||
24 | beq abort_handler | ||
25 | |||
26 | ld r4, SAVINGS_ACCT(r3) | ||
27 | ld r5, CURRENT_ACCT(r3) | ||
28 | subi r5, r5, 1 | ||
29 | addi r4, r4, 1 | ||
30 | std r4, SAVINGS_ACCT(r3) | ||
31 | std r5, CURRENT_ACCT(r3) | ||
32 | |||
33 | tend | ||
34 | |||
35 | b continue | ||
36 | |||
37 | abort_handler: | ||
38 | ... test for odd failures ... | ||
39 | |||
40 | /* Retry the transaction if it failed because it conflicted with | ||
41 | * someone else: */ | ||
42 | b begin_move_money | ||
43 | |||
44 | |||
45 | The 'tbegin' instruction denotes the start point, and 'tend' the end point. | ||
46 | Between these points the processor is in 'Transactional' state; any memory | ||
47 | references will complete in one go if there are no conflicts with other | ||
48 | transactional or non-transactional accesses within the system. In this | ||
49 | example, the transaction completes as though it were normal straight-line code | ||
50 | IF no other processor has touched SAVINGS_ACCT(r3) or CURRENT_ACCT(r3); an | ||
51 | atomic move of money from the current account to the savings account has been | ||
52 | performed. Even though the normal ld/std instructions are used (note no | ||
53 | lwarx/stwcx), either *both* SAVINGS_ACCT(r3) and CURRENT_ACCT(r3) will be | ||
54 | updated, or neither will be updated. | ||
55 | |||
56 | If, in the meantime, there is a conflict with the locations accessed by the | ||
57 | transaction, the transaction will be aborted by the CPU. Register and memory | ||
58 | state will roll back to that at the 'tbegin', and control will continue from | ||
59 | 'tbegin+4'. The branch to abort_handler will be taken this second time; the | ||
60 | abort handler can check the cause of the failure, and retry. | ||
61 | |||
62 | Checkpointed registers include all GPRs, FPRs, VRs/VSRs, LR, CCR/CR, CTR, FPCSR | ||
63 | and a few other status/flag regs; see the ISA for details. | ||
64 | |||
65 | Causes of transaction aborts | ||
66 | ============================ | ||
67 | |||
68 | - Conflicts with cache lines used by other processors | ||
69 | - Signals | ||
70 | - Context switches | ||
71 | - See the ISA for full documentation of everything that will abort transactions. | ||
72 | |||
73 | |||
74 | Syscalls | ||
75 | ======== | ||
76 | |||
77 | Performing syscalls from within transaction is not recommended, and can lead | ||
78 | to unpredictable results. | ||
79 | |||
80 | Syscalls do not by design abort transactions, but beware: The kernel code will | ||
81 | not be running in transactional state. The effect of syscalls will always | ||
82 | remain visible, but depending on the call they may abort your transaction as a | ||
83 | side-effect, read soon-to-be-aborted transactional data that should not remain | ||
84 | invisible, etc. If you constantly retry a transaction that constantly aborts | ||
85 | itself by calling a syscall, you'll have a livelock & make no progress. | ||
86 | |||
87 | Simple syscalls (e.g. sigprocmask()) "could" be OK. Even things like write() | ||
88 | from, say, printf() should be OK as long as the kernel does not access any | ||
89 | memory that was accessed transactionally. | ||
90 | |||
91 | Consider any syscalls that happen to work as debug-only -- not recommended for | ||
92 | production use. Best to queue them up till after the transaction is over. | ||
93 | |||
94 | |||
95 | Signals | ||
96 | ======= | ||
97 | |||
98 | Delivery of signals (both sync and async) during transactions provides a second | ||
99 | thread state (ucontext/mcontext) to represent the second transactional register | ||
100 | state. Signal delivery 'treclaim's to capture both register states, so signals | ||
101 | abort transactions. The usual ucontext_t passed to the signal handler | ||
102 | represents the checkpointed/original register state; the signal appears to have | ||
103 | arisen at 'tbegin+4'. | ||
104 | |||
105 | If the sighandler ucontext has uc_link set, a second ucontext has been | ||
106 | delivered. For future compatibility the MSR.TS field should be checked to | ||
107 | determine the transactional state -- if so, the second ucontext in uc->uc_link | ||
108 | represents the active transactional registers at the point of the signal. | ||
109 | |||
110 | For 64-bit processes, uc->uc_mcontext.regs->msr is a full 64-bit MSR and its TS | ||
111 | field shows the transactional mode. | ||
112 | |||
113 | For 32-bit processes, the mcontext's MSR register is only 32 bits; the top 32 | ||
114 | bits are stored in the MSR of the second ucontext, i.e. in | ||
115 | uc->uc_link->uc_mcontext.regs->msr. The top word contains the transactional | ||
116 | state TS. | ||
117 | |||
118 | However, basic signal handlers don't need to be aware of transactions | ||
119 | and simply returning from the handler will deal with things correctly: | ||
120 | |||
121 | Transaction-aware signal handlers can read the transactional register state | ||
122 | from the second ucontext. This will be necessary for crash handlers to | ||
123 | determine, for example, the address of the instruction causing the SIGSEGV. | ||
124 | |||
125 | Example signal handler: | ||
126 | |||
127 | void crash_handler(int sig, siginfo_t *si, void *uc) | ||
128 | { | ||
129 | ucontext_t *ucp = uc; | ||
130 | ucontext_t *transactional_ucp = ucp->uc_link; | ||
131 | |||
132 | if (ucp_link) { | ||
133 | u64 msr = ucp->uc_mcontext.regs->msr; | ||
134 | /* May have transactional ucontext! */ | ||
135 | #ifndef __powerpc64__ | ||
136 | msr |= ((u64)transactional_ucp->uc_mcontext.regs->msr) << 32; | ||
137 | #endif | ||
138 | if (MSR_TM_ACTIVE(msr)) { | ||
139 | /* Yes, we crashed during a transaction. Oops. */ | ||
140 | fprintf(stderr, "Transaction to be restarted at 0x%llx, but " | ||
141 | "crashy instruction was at 0x%llx\n", | ||
142 | ucp->uc_mcontext.regs->nip, | ||
143 | transactional_ucp->uc_mcontext.regs->nip); | ||
144 | } | ||
145 | } | ||
146 | |||
147 | fix_the_problem(ucp->dar); | ||
148 | } | ||
149 | |||
150 | |||
151 | Failure cause codes used by kernel | ||
152 | ================================== | ||
153 | |||
154 | These are defined in <asm/reg.h>, and distinguish different reasons why the | ||
155 | kernel aborted a transaction: | ||
156 | |||
157 | TM_CAUSE_RESCHED Thread was rescheduled. | ||
158 | TM_CAUSE_FAC_UNAV FP/VEC/VSX unavailable trap. | ||
159 | TM_CAUSE_SYSCALL Currently unused; future syscalls that must abort | ||
160 | transactions for consistency will use this. | ||
161 | TM_CAUSE_SIGNAL Signal delivered. | ||
162 | TM_CAUSE_MISC Currently unused. | ||
163 | |||
164 | These can be checked by the user program's abort handler as TEXASR[0:7]. | ||
165 | |||
166 | |||
167 | GDB | ||
168 | === | ||
169 | |||
170 | GDB and ptrace are not currently TM-aware. If one stops during a transaction, | ||
171 | it looks like the transaction has just started (the checkpointed state is | ||
172 | presented). The transaction cannot then be continued and will take the failure | ||
173 | handler route. Furthermore, the transactional 2nd register state will be | ||
174 | inaccessible. GDB can currently be used on programs using TM, but not sensibly | ||
175 | in parts within transactions. | ||
diff --git a/Documentation/printk-formats.txt b/Documentation/printk-formats.txt index 8ffb274367c7..e8a6aa473bab 100644 --- a/Documentation/printk-formats.txt +++ b/Documentation/printk-formats.txt | |||
@@ -53,6 +53,14 @@ Struct Resources: | |||
53 | For printing struct resources. The 'R' and 'r' specifiers result in a | 53 | For printing struct resources. The 'R' and 'r' specifiers result in a |
54 | printed resource with ('R') or without ('r') a decoded flags member. | 54 | printed resource with ('R') or without ('r') a decoded flags member. |
55 | 55 | ||
56 | Physical addresses: | ||
57 | |||
58 | %pa 0x01234567 or 0x0123456789abcdef | ||
59 | |||
60 | For printing a phys_addr_t type (and its derivatives, such as | ||
61 | resource_size_t) which can vary based on build options, regardless of | ||
62 | the width of the CPU data path. Passed by reference. | ||
63 | |||
56 | Raw buffer as a hex string: | 64 | Raw buffer as a hex string: |
57 | %*ph 00 01 02 ... 3f | 65 | %*ph 00 01 02 ... 3f |
58 | %*phC 00:01:02: ... :3f | 66 | %*phC 00:01:02: ... :3f |
@@ -150,9 +158,9 @@ s64 SHOULD be printed with %lld/%llx, (long long): | |||
150 | printk("%lld", (long long)s64_var); | 158 | printk("%lld", (long long)s64_var); |
151 | 159 | ||
152 | If <type> is dependent on a config option for its size (e.g., sector_t, | 160 | If <type> is dependent on a config option for its size (e.g., sector_t, |
153 | blkcnt_t, phys_addr_t, resource_size_t) or is architecture-dependent | 161 | blkcnt_t) or is architecture-dependent for its size (e.g., tcflag_t), use a |
154 | for its size (e.g., tcflag_t), use a format specifier of its largest | 162 | format specifier of its largest possible type and explicitly cast to it. |
155 | possible type and explicitly cast to it. Example: | 163 | Example: |
156 | 164 | ||
157 | printk("test: sector number/total blocks: %llu/%llu\n", | 165 | printk("test: sector number/total blocks: %llu/%llu\n", |
158 | (unsigned long long)sector, (unsigned long long)blockcount); | 166 | (unsigned long long)sector, (unsigned long long)blockcount); |
diff --git a/Documentation/serial/driver b/Documentation/serial/driver index 0a25a9191864..067c47d46917 100644 --- a/Documentation/serial/driver +++ b/Documentation/serial/driver | |||
@@ -133,6 +133,16 @@ hardware. | |||
133 | Interrupts: locally disabled. | 133 | Interrupts: locally disabled. |
134 | This call must not sleep | 134 | This call must not sleep |
135 | 135 | ||
136 | send_xchar(port,ch) | ||
137 | Transmit a high priority character, even if the port is stopped. | ||
138 | This is used to implement XON/XOFF flow control and tcflow(). If | ||
139 | the serial driver does not implement this function, the tty core | ||
140 | will append the character to the circular buffer and then call | ||
141 | start_tx() / stop_tx() to flush the data out. | ||
142 | |||
143 | Locking: none. | ||
144 | Interrupts: caller dependent. | ||
145 | |||
136 | stop_rx(port) | 146 | stop_rx(port) |
137 | Stop receiving characters; the port is in the process of | 147 | Stop receiving characters; the port is in the process of |
138 | being closed. | 148 | being closed. |
@@ -242,9 +252,8 @@ hardware. | |||
242 | 252 | ||
243 | pm(port,state,oldstate) | 253 | pm(port,state,oldstate) |
244 | Perform any power management related activities on the specified | 254 | Perform any power management related activities on the specified |
245 | port. State indicates the new state (defined by ACPI D0-D3), | 255 | port. State indicates the new state (defined by |
246 | oldstate indicates the previous state. Essentially, D0 means | 256 | enum uart_pm_state), oldstate indicates the previous state. |
247 | fully on, D3 means powered down. | ||
248 | 257 | ||
249 | This function should not be used to grab any resources. | 258 | This function should not be used to grab any resources. |
250 | 259 | ||
@@ -255,6 +264,10 @@ hardware. | |||
255 | Locking: none. | 264 | Locking: none. |
256 | Interrupts: caller dependent. | 265 | Interrupts: caller dependent. |
257 | 266 | ||
267 | set_wake(port,state) | ||
268 | Enable/disable power management wakeup on serial activity. Not | ||
269 | currently implemented. | ||
270 | |||
258 | type(port) | 271 | type(port) |
259 | Return a pointer to a string constant describing the specified | 272 | Return a pointer to a string constant describing the specified |
260 | port, or return NULL, in which case the string 'unknown' is | 273 | port, or return NULL, in which case the string 'unknown' is |
@@ -307,6 +320,31 @@ hardware. | |||
307 | Locking: none. | 320 | Locking: none. |
308 | Interrupts: caller dependent. | 321 | Interrupts: caller dependent. |
309 | 322 | ||
323 | poll_init(port) | ||
324 | Called by kgdb to perform the minimal hardware initialization needed | ||
325 | to support poll_put_char() and poll_get_char(). Unlike ->startup() | ||
326 | this should not request interrupts. | ||
327 | |||
328 | Locking: tty_mutex and tty_port->mutex taken. | ||
329 | Interrupts: n/a. | ||
330 | |||
331 | poll_put_char(port,ch) | ||
332 | Called by kgdb to write a single character directly to the serial | ||
333 | port. It can and should block until there is space in the TX FIFO. | ||
334 | |||
335 | Locking: none. | ||
336 | Interrupts: caller dependent. | ||
337 | This call must not sleep | ||
338 | |||
339 | poll_get_char(port) | ||
340 | Called by kgdb to read a single character directly from the serial | ||
341 | port. If data is available, it should be returned; otherwise | ||
342 | the function should return NO_POLL_CHAR immediately. | ||
343 | |||
344 | Locking: none. | ||
345 | Interrupts: caller dependent. | ||
346 | This call must not sleep | ||
347 | |||
310 | Other functions | 348 | Other functions |
311 | --------------- | 349 | --------------- |
312 | 350 | ||
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index b9cfd339a6fa..ce6581c8ca26 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -890,8 +890,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
890 | enable_msi - Enable Message Signaled Interrupt (MSI) (default = off) | 890 | enable_msi - Enable Message Signaled Interrupt (MSI) (default = off) |
891 | power_save - Automatic power-saving timeout (in second, 0 = | 891 | power_save - Automatic power-saving timeout (in second, 0 = |
892 | disable) | 892 | disable) |
893 | power_save_controller - Reset HD-audio controller in power-saving mode | 893 | power_save_controller - Support runtime D3 of HD-audio controller |
894 | (default = on) | 894 | (-1 = on for supported chip (default), false = off, |
895 | true = force to on even for unsupported hardware) | ||
895 | align_buffer_size - Force rounding of buffer/period sizes to multiples | 896 | align_buffer_size - Force rounding of buffer/period sizes to multiples |
896 | of 128 bytes. This is more efficient in terms of memory | 897 | of 128 bytes. This is more efficient in terms of memory |
897 | access but isn't required by the HDA spec and prevents | 898 | access but isn't required by the HDA spec and prevents |
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt index 16dfe57f1731..bb8b0dc532b8 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt | |||
@@ -53,7 +53,7 @@ ALC882/883/885/888/889 | |||
53 | acer-aspire-8930g Acer Aspire 8330G/6935G | 53 | acer-aspire-8930g Acer Aspire 8330G/6935G |
54 | acer-aspire Acer Aspire others | 54 | acer-aspire Acer Aspire others |
55 | inv-dmic Inverted internal mic workaround | 55 | inv-dmic Inverted internal mic workaround |
56 | no-primary-hp VAIO Z workaround (for fixed speaker DAC) | 56 | no-primary-hp VAIO Z/VGC-LN51JGB workaround (for fixed speaker DAC) |
57 | 57 | ||
58 | ALC861/660 | 58 | ALC861/660 |
59 | ========== | 59 | ========== |
diff --git a/Documentation/sound/alsa/HD-Audio.txt b/Documentation/sound/alsa/HD-Audio.txt index 7813c06a5c71..d4faa63ff352 100644 --- a/Documentation/sound/alsa/HD-Audio.txt +++ b/Documentation/sound/alsa/HD-Audio.txt | |||
@@ -176,14 +176,14 @@ support the automatic probing (yet as of 2.6.28). And, BIOS is often, | |||
176 | yes, pretty often broken. It sets up wrong values and screws up the | 176 | yes, pretty often broken. It sets up wrong values and screws up the |
177 | driver. | 177 | driver. |
178 | 178 | ||
179 | The preset model is provided basically to overcome such a situation. | 179 | The preset model (or recently called as "fix-up") is provided |
180 | When the matching preset model is found in the white-list, the driver | 180 | basically to overcome such a situation. When the matching preset |
181 | assumes the static configuration of that preset and builds the mixer | 181 | model is found in the white-list, the driver assumes the static |
182 | elements and PCM streams based on the static information. Thus, if | 182 | configuration of that preset with the correct pin setup, etc. |
183 | you have a newer machine with a slightly different PCI SSID from the | 183 | Thus, if you have a newer machine with a slightly different PCI SSID |
184 | existing one, you may have a good chance to re-use the same model. | 184 | (or codec SSID) from the existing one, you may have a good chance to |
185 | You can pass the `model` option to specify the preset model instead of | 185 | re-use the same model. You can pass the `model` option to specify the |
186 | PCI SSID look-up. | 186 | preset model instead of PCI (and codec-) SSID look-up. |
187 | 187 | ||
188 | What `model` option values are available depends on the codec chip. | 188 | What `model` option values are available depends on the codec chip. |
189 | Check your codec chip from the codec proc file (see "Codec Proc-File" | 189 | Check your codec chip from the codec proc file (see "Codec Proc-File" |
@@ -199,17 +199,12 @@ non-working HD-audio hardware is to check HD-audio codec and several | |||
199 | different `model` option values. If you have any luck, some of them | 199 | different `model` option values. If you have any luck, some of them |
200 | might suit with your device well. | 200 | might suit with your device well. |
201 | 201 | ||
202 | Some codecs such as ALC880 have a special model option `model=test`. | 202 | There are a few special model option values: |
203 | This configures the driver to provide as many mixer controls as | 203 | - when 'nofixup' is passed, the device-specific fixups in the codec |
204 | possible for every single pin feature except for the unsolicited | 204 | parser are skipped. |
205 | events (and maybe some other specials). Adjust each mixer element and | 205 | - when `generic` is passed, the codec-specific parser is skipped and |
206 | try the I/O in the way of trial-and-error until figuring out the whole | 206 | only the generic parser is used. |
207 | I/O pin mappings. | ||
208 | 207 | ||
209 | Note that `model=generic` has a special meaning. It means to use the | ||
210 | generic parser regardless of the codec. Usually the codec-specific | ||
211 | parser is much better than the generic parser (as now). Thus this | ||
212 | option is more about the debugging purpose. | ||
213 | 208 | ||
214 | Speaker and Headphone Output | 209 | Speaker and Headphone Output |
215 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 210 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
@@ -387,9 +382,8 @@ init_verbs:: | |||
387 | (separated with a space). | 382 | (separated with a space). |
388 | hints:: | 383 | hints:: |
389 | Shows / stores hint strings for codec parsers for any use. | 384 | Shows / stores hint strings for codec parsers for any use. |
390 | Its format is `key = value`. For example, passing `hp_detect = yes` | 385 | Its format is `key = value`. For example, passing `jack_detect = no` |
391 | to IDT/STAC codec parser will result in the disablement of the | 386 | will disable the jack detection of the machine completely. |
392 | headphone detection. | ||
393 | init_pin_configs:: | 387 | init_pin_configs:: |
394 | Shows the initial pin default config values set by BIOS. | 388 | Shows the initial pin default config values set by BIOS. |
395 | driver_pin_configs:: | 389 | driver_pin_configs:: |
@@ -421,6 +415,61 @@ re-configure based on that state, run like below: | |||
421 | ------------------------------------------------------------------------ | 415 | ------------------------------------------------------------------------ |
422 | 416 | ||
423 | 417 | ||
418 | Hint Strings | ||
419 | ~~~~~~~~~~~~ | ||
420 | The codec parser have several switches and adjustment knobs for | ||
421 | matching better with the actual codec or device behavior. Many of | ||
422 | them can be adjusted dynamically via "hints" strings as mentioned in | ||
423 | the section above. For example, by passing `jack_detect = no` string | ||
424 | via sysfs or a patch file, you can disable the jack detection, thus | ||
425 | the codec parser will skip the features like auto-mute or mic | ||
426 | auto-switch. As a boolean value, either `yes`, `no`, `true`, `false`, | ||
427 | `1` or `0` can be passed. | ||
428 | |||
429 | The generic parser supports the following hints: | ||
430 | |||
431 | - jack_detect (bool): specify whether the jack detection is available | ||
432 | at all on this machine; default true | ||
433 | - inv_jack_detect (bool): indicates that the jack detection logic is | ||
434 | inverted | ||
435 | - trigger_sense (bool): indicates that the jack detection needs the | ||
436 | explicit call of AC_VERB_SET_PIN_SENSE verb | ||
437 | - inv_eapd (bool): indicates that the EAPD is implemented in the | ||
438 | inverted logic | ||
439 | - pcm_format_first (bool): sets the PCM format before the stream tag | ||
440 | and channel ID | ||
441 | - sticky_stream (bool): keep the PCM format, stream tag and ID as long | ||
442 | as possible; default true | ||
443 | - spdif_status_reset (bool): reset the SPDIF status bits at each time | ||
444 | the SPDIF stream is set up | ||
445 | - pin_amp_workaround (bool): the output pin may have multiple amp | ||
446 | values | ||
447 | - single_adc_amp (bool): ADCs can have only single input amps | ||
448 | - auto_mute (bool): enable/disable the headphone auto-mute feature; | ||
449 | default true | ||
450 | - auto_mic (bool): enable/disable the mic auto-switch feature; default | ||
451 | true | ||
452 | - line_in_auto_switch (bool): enable/disable the line-in auto-switch | ||
453 | feature; default false | ||
454 | - need_dac_fix (bool): limits the DACs depending on the channel count | ||
455 | - primary_hp (bool): probe headphone jacks as the primary outputs; | ||
456 | default true | ||
457 | - multi_cap_vol (bool): provide multiple capture volumes | ||
458 | - inv_dmic_split (bool): provide split internal mic volume/switch for | ||
459 | phase-inverted digital mics | ||
460 | - indep_hp (bool): provide the independent headphone PCM stream and | ||
461 | the corresponding mixer control, if available | ||
462 | - add_stereo_mix_input (bool): add the stereo mix (analog-loopback | ||
463 | mix) to the input mux if available | ||
464 | - add_out_jack_modes (bool): add "xxx Jack Mode" enum controls to each | ||
465 | output jack for allowing to change the headphone amp capability | ||
466 | - add_in_jack_modes (bool): add "xxx Jack Mode" enum controls to each | ||
467 | input jack for allowing to change the mic bias vref | ||
468 | - power_down_unused (bool): power down the unused widgets | ||
469 | - mixer_nid (int): specifies the widget NID of the analog-loopback | ||
470 | mixer | ||
471 | |||
472 | |||
424 | Early Patching | 473 | Early Patching |
425 | ~~~~~~~~~~~~~~ | 474 | ~~~~~~~~~~~~~~ |
426 | When CONFIG_SND_HDA_PATCH_LOADER=y is set, you can pass a "patch" as a | 475 | When CONFIG_SND_HDA_PATCH_LOADER=y is set, you can pass a "patch" as a |
@@ -445,7 +494,7 @@ A patch file is a plain text file which looks like below: | |||
445 | 0x20 0x400 0xff | 494 | 0x20 0x400 0xff |
446 | 495 | ||
447 | [hint] | 496 | [hint] |
448 | hp_detect = yes | 497 | jack_detect = no |
449 | ------------------------------------------------------------------------ | 498 | ------------------------------------------------------------------------ |
450 | 499 | ||
451 | The file needs to have a line `[codec]`. The next line should contain | 500 | The file needs to have a line `[codec]`. The next line should contain |
@@ -531,6 +580,13 @@ cable is unplugged. Thus, if you hear noises, suspect first the | |||
531 | power-saving. See /sys/module/snd_hda_intel/parameters/power_save to | 580 | power-saving. See /sys/module/snd_hda_intel/parameters/power_save to |
532 | check the current value. If it's non-zero, the feature is turned on. | 581 | check the current value. If it's non-zero, the feature is turned on. |
533 | 582 | ||
583 | The recent kernel supports the runtime PM for the HD-audio controller | ||
584 | chip, too. It means that the HD-audio controller is also powered up / | ||
585 | down dynamically. The feature is enabled only for certain controller | ||
586 | chips like Intel LynxPoint. You can enable/disable this feature | ||
587 | forcibly by setting `power_save_controller` option, which is also | ||
588 | available at /sys/module/snd_hda_intel/parameters directory. | ||
589 | |||
534 | 590 | ||
535 | Tracepoints | 591 | Tracepoints |
536 | ~~~~~~~~~~~ | 592 | ~~~~~~~~~~~ |
@@ -587,8 +643,9 @@ The latest development codes for HD-audio are found on sound git tree: | |||
587 | - git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git | 643 | - git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git |
588 | 644 | ||
589 | The master branch or for-next branches can be used as the main | 645 | The master branch or for-next branches can be used as the main |
590 | development branches in general while the HD-audio specific patches | 646 | development branches in general while the development for the current |
591 | are committed in topic/hda branch. | 647 | and next kernels are found in for-linus and for-next branches, |
648 | respectively. | ||
592 | 649 | ||
593 | If you are using the latest Linus tree, it'd be better to pull the | 650 | If you are using the latest Linus tree, it'd be better to pull the |
594 | above GIT tree onto it. If you are using the older kernels, an easy | 651 | above GIT tree onto it. If you are using the older kernels, an easy |
@@ -699,7 +756,11 @@ won't be always updated. For example, the volume values are usually | |||
699 | cached in the driver, and thus changing the widget amp value directly | 756 | cached in the driver, and thus changing the widget amp value directly |
700 | via hda-verb won't change the mixer value. | 757 | via hda-verb won't change the mixer value. |
701 | 758 | ||
702 | The hda-verb program is found in the ftp directory: | 759 | The hda-verb program is included now in alsa-tools: |
760 | |||
761 | - git://git.alsa-project.org/alsa-tools.git | ||
762 | |||
763 | Also, the old stand-alone package is found in the ftp directory: | ||
703 | 764 | ||
704 | - ftp://ftp.suse.com/pub/people/tiwai/misc/ | 765 | - ftp://ftp.suse.com/pub/people/tiwai/misc/ |
705 | 766 | ||
@@ -777,3 +838,18 @@ A git repository is available: | |||
777 | 838 | ||
778 | See README file in the tarball for more details about hda-emu | 839 | See README file in the tarball for more details about hda-emu |
779 | program. | 840 | program. |
841 | |||
842 | |||
843 | hda-jack-retask | ||
844 | ~~~~~~~~~~~~~~~ | ||
845 | hda-jack-retask is a user-friendly GUI program to manipulate the | ||
846 | HD-audio pin control for jack retasking. If you have a problem about | ||
847 | the jack assignment, try this program and check whether you can get | ||
848 | useful results. Once when you figure out the proper pin assignment, | ||
849 | it can be fixed either in the driver code statically or via passing a | ||
850 | firmware patch file (see "Early Patching" section). | ||
851 | |||
852 | The program is included in alsa-tools now: | ||
853 | |||
854 | - git://git.alsa-project.org/alsa-tools.git | ||
855 | |||
diff --git a/Documentation/sound/alsa/compress_offload.txt b/Documentation/sound/alsa/compress_offload.txt index 90e9b3a11abc..0bcc55155911 100644 --- a/Documentation/sound/alsa/compress_offload.txt +++ b/Documentation/sound/alsa/compress_offload.txt | |||
@@ -145,6 +145,52 @@ Modifications include: | |||
145 | - Addition of encoding options when required (derived from OpenMAX IL) | 145 | - Addition of encoding options when required (derived from OpenMAX IL) |
146 | - Addition of rateControlSupported (missing in OpenMAX AL) | 146 | - Addition of rateControlSupported (missing in OpenMAX AL) |
147 | 147 | ||
148 | Gapless Playback | ||
149 | ================ | ||
150 | When playing thru an album, the decoders have the ability to skip the encoder | ||
151 | delay and padding and directly move from one track content to another. The end | ||
152 | user can perceive this as gapless playback as we dont have silence while | ||
153 | switching from one track to another | ||
154 | |||
155 | Also, there might be low-intensity noises due to encoding. Perfect gapless is | ||
156 | difficult to reach with all types of compressed data, but works fine with most | ||
157 | music content. The decoder needs to know the encoder delay and encoder padding. | ||
158 | So we need to pass this to DSP. This metadata is extracted from ID3/MP4 headers | ||
159 | and are not present by default in the bitstream, hence the need for a new | ||
160 | interface to pass this information to the DSP. Also DSP and userspace needs to | ||
161 | switch from one track to another and start using data for second track. | ||
162 | |||
163 | The main additions are: | ||
164 | |||
165 | - set_metadata | ||
166 | This routine sets the encoder delay and encoder padding. This can be used by | ||
167 | decoder to strip the silence. This needs to be set before the data in the track | ||
168 | is written. | ||
169 | |||
170 | - set_next_track | ||
171 | This routine tells DSP that metadata and write operation sent after this would | ||
172 | correspond to subsequent track | ||
173 | |||
174 | - partial drain | ||
175 | This is called when end of file is reached. The userspace can inform DSP that | ||
176 | EOF is reached and now DSP can start skipping padding delay. Also next write | ||
177 | data would belong to next track | ||
178 | |||
179 | Sequence flow for gapless would be: | ||
180 | - Open | ||
181 | - Get caps / codec caps | ||
182 | - Set params | ||
183 | - Set metadata of the first track | ||
184 | - Fill data of the first track | ||
185 | - Trigger start | ||
186 | - User-space finished sending all, | ||
187 | - Indicaite next track data by sending set_next_track | ||
188 | - Set metadata of the next track | ||
189 | - then call partial_drain to flush most of buffer in DSP | ||
190 | - Fill data of the next track | ||
191 | - DSP switches to second track | ||
192 | (note: order for partial_drain and write for next track can be reversed as well) | ||
193 | |||
148 | Not supported: | 194 | Not supported: |
149 | 195 | ||
150 | - Support for VoIP/circuit-switched calls is not the target of this | 196 | - Support for VoIP/circuit-switched calls is not the target of this |
diff --git a/Documentation/thermal/nouveau_thermal b/Documentation/thermal/nouveau_thermal new file mode 100644 index 000000000000..efceb7828f54 --- /dev/null +++ b/Documentation/thermal/nouveau_thermal | |||
@@ -0,0 +1,81 @@ | |||
1 | Kernel driver nouveau | ||
2 | =================== | ||
3 | |||
4 | Supported chips: | ||
5 | * NV43+ | ||
6 | |||
7 | Authors: Martin Peres (mupuf) <martin.peres@labri.fr> | ||
8 | |||
9 | Description | ||
10 | --------- | ||
11 | |||
12 | This driver allows to read the GPU core temperature, drive the GPU fan and | ||
13 | set temperature alarms. | ||
14 | |||
15 | Currently, due to the absence of in-kernel API to access HWMON drivers, Nouveau | ||
16 | cannot access any of the i2c external monitoring chips it may find. If you | ||
17 | have one of those, temperature and/or fan management through Nouveau's HWMON | ||
18 | interface is likely not to work. This document may then not cover your situation | ||
19 | entirely. | ||
20 | |||
21 | Temperature management | ||
22 | -------------------- | ||
23 | |||
24 | Temperature is exposed under as a read-only HWMON attribute temp1_input. | ||
25 | |||
26 | In order to protect the GPU from overheating, Nouveau supports 4 configurable | ||
27 | temperature thresholds: | ||
28 | |||
29 | * Fan_boost: Fan speed is set to 100% when reaching this temperature; | ||
30 | * Downclock: The GPU will be downclocked to reduce its power dissipation; | ||
31 | * Critical: The GPU is put on hold to further lower power dissipation; | ||
32 | * Shutdown: Shut the computer down to protect your GPU. | ||
33 | |||
34 | WARNING: Some of these thresholds may not be used by Nouveau depending | ||
35 | on your chipset. | ||
36 | |||
37 | The default value for these thresholds comes from the GPU's vbios. These | ||
38 | thresholds can be configured thanks to the following HWMON attributes: | ||
39 | |||
40 | * Fan_boost: temp1_auto_point1_temp and temp1_auto_point1_temp_hyst; | ||
41 | * Downclock: temp1_max and temp1_max_hyst; | ||
42 | * Critical: temp1_crit and temp1_crit_hyst; | ||
43 | * Shutdown: temp1_emergency and temp1_emergency_hyst. | ||
44 | |||
45 | NOTE: Remember that the values are stored as milli degrees Celcius. Don't forget | ||
46 | to multiply! | ||
47 | |||
48 | Fan management | ||
49 | ------------ | ||
50 | |||
51 | Not all cards have a drivable fan. If you do, then the following HWMON | ||
52 | attributes should be available: | ||
53 | |||
54 | * pwm1_enable: Current fan management mode (NONE, MANUAL or AUTO); | ||
55 | * pwm1: Current PWM value (power percentage); | ||
56 | * pwm1_min: The minimum PWM speed allowed; | ||
57 | * pwm1_max: The maximum PWM speed allowed (bypassed when hitting Fan_boost); | ||
58 | |||
59 | You may also have the following attribute: | ||
60 | |||
61 | * fan1_input: Speed in RPM of your fan. | ||
62 | |||
63 | Your fan can be driven in different modes: | ||
64 | |||
65 | * 0: The fan is left untouched; | ||
66 | * 1: The fan can be driven in manual (use pwm1 to change the speed); | ||
67 | * 2; The fan is driven automatically depending on the temperature. | ||
68 | |||
69 | NOTE: Be sure to use the manual mode if you want to drive the fan speed manually | ||
70 | |||
71 | NOTE2: Not all fan management modes may be supported on all chipsets. We are | ||
72 | working on it. | ||
73 | |||
74 | Bug reports | ||
75 | --------- | ||
76 | |||
77 | Thermal management on Nouveau is new and may not work on all cards. If you have | ||
78 | inquiries, please ping mupuf on IRC (#nouveau, freenode). | ||
79 | |||
80 | Bug reports should be filled on Freedesktop's bug tracker. Please follow | ||
81 | http://nouveau.freedesktop.org/wiki/Bugs | ||
diff --git a/Documentation/trace/events-power.txt b/Documentation/trace/events-power.txt index cf794af22855..e1498ff8cf94 100644 --- a/Documentation/trace/events-power.txt +++ b/Documentation/trace/events-power.txt | |||
@@ -17,7 +17,7 @@ Cf. include/trace/events/power.h for the events definitions. | |||
17 | 1. Power state switch events | 17 | 1. Power state switch events |
18 | ============================ | 18 | ============================ |
19 | 19 | ||
20 | 1.1 New trace API | 20 | 1.1 Trace API |
21 | ----------------- | 21 | ----------------- |
22 | 22 | ||
23 | A 'cpu' event class gathers the CPU-related events: cpuidle and | 23 | A 'cpu' event class gathers the CPU-related events: cpuidle and |
@@ -41,31 +41,6 @@ The event which has 'state=4294967295' in the trace is very important to the use | |||
41 | space tools which are using it to detect the end of the current state, and so to | 41 | space tools which are using it to detect the end of the current state, and so to |
42 | correctly draw the states diagrams and to calculate accurate statistics etc. | 42 | correctly draw the states diagrams and to calculate accurate statistics etc. |
43 | 43 | ||
44 | 1.2 DEPRECATED trace API | ||
45 | ------------------------ | ||
46 | |||
47 | A new Kconfig option CONFIG_EVENT_POWER_TRACING_DEPRECATED with the default value of | ||
48 | 'y' has been created. This allows the legacy trace power API to be used conjointly | ||
49 | with the new trace API. | ||
50 | The Kconfig option, the old trace API (in include/trace/events/power.h) and the | ||
51 | old trace points will disappear in a future release (namely 2.6.41). | ||
52 | |||
53 | power_start "type=%lu state=%lu cpu_id=%lu" | ||
54 | power_frequency "type=%lu state=%lu cpu_id=%lu" | ||
55 | power_end "cpu_id=%lu" | ||
56 | |||
57 | The 'type' parameter takes one of those macros: | ||
58 | . POWER_NONE = 0, | ||
59 | . POWER_CSTATE = 1, /* C-State */ | ||
60 | . POWER_PSTATE = 2, /* Frequency change or DVFS */ | ||
61 | |||
62 | The 'state' parameter is set depending on the type: | ||
63 | . Target C-state for type=POWER_CSTATE, | ||
64 | . Target frequency for type=POWER_PSTATE, | ||
65 | |||
66 | power_end is used to indicate the exit of a state, corresponding to the latest | ||
67 | power_start event. | ||
68 | |||
69 | 2. Clocks events | 44 | 2. Clocks events |
70 | ================ | 45 | ================ |
71 | The clock events are used for clock enable/disable and for | 46 | The clock events are used for clock enable/disable and for |
diff --git a/Documentation/trace/ftrace.txt b/Documentation/trace/ftrace.txt index 6f51fed45f2d..53d6a3c51d87 100644 --- a/Documentation/trace/ftrace.txt +++ b/Documentation/trace/ftrace.txt | |||
@@ -1842,6 +1842,89 @@ an error. | |||
1842 | # cat buffer_size_kb | 1842 | # cat buffer_size_kb |
1843 | 85 | 1843 | 85 |
1844 | 1844 | ||
1845 | Snapshot | ||
1846 | -------- | ||
1847 | CONFIG_TRACER_SNAPSHOT makes a generic snapshot feature | ||
1848 | available to all non latency tracers. (Latency tracers which | ||
1849 | record max latency, such as "irqsoff" or "wakeup", can't use | ||
1850 | this feature, since those are already using the snapshot | ||
1851 | mechanism internally.) | ||
1852 | |||
1853 | Snapshot preserves a current trace buffer at a particular point | ||
1854 | in time without stopping tracing. Ftrace swaps the current | ||
1855 | buffer with a spare buffer, and tracing continues in the new | ||
1856 | current (=previous spare) buffer. | ||
1857 | |||
1858 | The following debugfs files in "tracing" are related to this | ||
1859 | feature: | ||
1860 | |||
1861 | snapshot: | ||
1862 | |||
1863 | This is used to take a snapshot and to read the output | ||
1864 | of the snapshot. Echo 1 into this file to allocate a | ||
1865 | spare buffer and to take a snapshot (swap), then read | ||
1866 | the snapshot from this file in the same format as | ||
1867 | "trace" (described above in the section "The File | ||
1868 | System"). Both reads snapshot and tracing are executable | ||
1869 | in parallel. When the spare buffer is allocated, echoing | ||
1870 | 0 frees it, and echoing else (positive) values clear the | ||
1871 | snapshot contents. | ||
1872 | More details are shown in the table below. | ||
1873 | |||
1874 | status\input | 0 | 1 | else | | ||
1875 | --------------+------------+------------+------------+ | ||
1876 | not allocated |(do nothing)| alloc+swap | EINVAL | | ||
1877 | --------------+------------+------------+------------+ | ||
1878 | allocated | free | swap | clear | | ||
1879 | --------------+------------+------------+------------+ | ||
1880 | |||
1881 | Here is an example of using the snapshot feature. | ||
1882 | |||
1883 | # echo 1 > events/sched/enable | ||
1884 | # echo 1 > snapshot | ||
1885 | # cat snapshot | ||
1886 | # tracer: nop | ||
1887 | # | ||
1888 | # entries-in-buffer/entries-written: 71/71 #P:8 | ||
1889 | # | ||
1890 | # _-----=> irqs-off | ||
1891 | # / _----=> need-resched | ||
1892 | # | / _---=> hardirq/softirq | ||
1893 | # || / _--=> preempt-depth | ||
1894 | # ||| / delay | ||
1895 | # TASK-PID CPU# |||| TIMESTAMP FUNCTION | ||
1896 | # | | | |||| | | | ||
1897 | <idle>-0 [005] d... 2440.603828: sched_switch: prev_comm=swapper/5 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2242 next_prio=120 | ||
1898 | sleep-2242 [005] d... 2440.603846: sched_switch: prev_comm=snapshot-test-2 prev_pid=2242 prev_prio=120 prev_state=R ==> next_comm=kworker/5:1 next_pid=60 next_prio=120 | ||
1899 | [...] | ||
1900 | <idle>-0 [002] d... 2440.707230: sched_switch: prev_comm=swapper/2 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2229 next_prio=120 | ||
1901 | |||
1902 | # cat trace | ||
1903 | # tracer: nop | ||
1904 | # | ||
1905 | # entries-in-buffer/entries-written: 77/77 #P:8 | ||
1906 | # | ||
1907 | # _-----=> irqs-off | ||
1908 | # / _----=> need-resched | ||
1909 | # | / _---=> hardirq/softirq | ||
1910 | # || / _--=> preempt-depth | ||
1911 | # ||| / delay | ||
1912 | # TASK-PID CPU# |||| TIMESTAMP FUNCTION | ||
1913 | # | | | |||| | | | ||
1914 | <idle>-0 [007] d... 2440.707395: sched_switch: prev_comm=swapper/7 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=snapshot-test-2 next_pid=2243 next_prio=120 | ||
1915 | snapshot-test-2-2229 [002] d... 2440.707438: sched_switch: prev_comm=snapshot-test-2 prev_pid=2229 prev_prio=120 prev_state=S ==> next_comm=swapper/2 next_pid=0 next_prio=120 | ||
1916 | [...] | ||
1917 | |||
1918 | |||
1919 | If you try to use this snapshot feature when current tracer is | ||
1920 | one of the latency tracers, you will get the following results. | ||
1921 | |||
1922 | # echo wakeup > current_tracer | ||
1923 | # echo 1 > snapshot | ||
1924 | bash: echo: write error: Device or resource busy | ||
1925 | # cat snapshot | ||
1926 | cat: snapshot: Device or resource busy | ||
1927 | |||
1845 | ----------- | 1928 | ----------- |
1846 | 1929 | ||
1847 | More details can be found in the source code, in the | 1930 | More details can be found in the source code, in the |
diff --git a/Documentation/video4linux/CARDLIST.au0828 b/Documentation/video4linux/CARDLIST.au0828 index a8a65753e544..55a21deab7db 100644 --- a/Documentation/video4linux/CARDLIST.au0828 +++ b/Documentation/video4linux/CARDLIST.au0828 | |||
@@ -1,5 +1,5 @@ | |||
1 | 0 -> Unknown board (au0828) | 1 | 0 -> Unknown board (au0828) |
2 | 1 -> Hauppauge HVR950Q (au0828) [2040:7200,2040:7210,2040:7217,2040:721b,2040:721e,2040:721f,2040:7280,0fd9:0008,2040:7260,2040:7213] | 2 | 1 -> Hauppauge HVR950Q (au0828) [2040:7200,2040:7210,2040:7217,2040:721b,2040:721e,2040:721f,2040:7280,0fd9:0008,2040:7260,2040:7213,2040:7270] |
3 | 2 -> Hauppauge HVR850 (au0828) [2040:7240] | 3 | 2 -> Hauppauge HVR850 (au0828) [2040:7240] |
4 | 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620] | 4 | 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620] |
5 | 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281] | 5 | 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281] |
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885 index 1299b5e82d7f..9f056d512e35 100644 --- a/Documentation/video4linux/CARDLIST.cx23885 +++ b/Documentation/video4linux/CARDLIST.cx23885 | |||
@@ -36,3 +36,5 @@ | |||
36 | 35 -> TeVii S471 [d471:9022] | 36 | 35 -> TeVii S471 [d471:9022] |
37 | 36 -> Hauppauge WinTV-HVR1255 [0070:2259] | 37 | 36 -> Hauppauge WinTV-HVR1255 [0070:2259] |
38 | 37 -> Prof Revolution DVB-S2 8000 [8000:3034] | 38 | 37 -> Prof Revolution DVB-S2 8000 [8000:3034] |
39 | 38 -> Hauppauge WinTV-HVR4400 [0070:c108,0070:c138,0070:c12a,0070:c1f8] | ||
40 | 39 -> AVerTV Hybrid Express Slim HC81R [1461:d939] | ||
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx index d99262dda533..3f12865b2a88 100644 --- a/Documentation/video4linux/CARDLIST.em28xx +++ b/Documentation/video4linux/CARDLIST.em28xx | |||
@@ -76,7 +76,7 @@ | |||
76 | 76 -> KWorld PlusTV 340U or UB435-Q (ATSC) (em2870) [1b80:a340] | 76 | 76 -> KWorld PlusTV 340U or UB435-Q (ATSC) (em2870) [1b80:a340] |
77 | 77 -> EM2874 Leadership ISDBT (em2874) | 77 | 77 -> EM2874 Leadership ISDBT (em2874) |
78 | 78 -> PCTV nanoStick T2 290e (em28174) | 78 | 78 -> PCTV nanoStick T2 290e (em28174) |
79 | 79 -> Terratec Cinergy H5 (em2884) [0ccd:008e,0ccd:00ac,0ccd:10a2,0ccd:10ad] | 79 | 79 -> Terratec Cinergy H5 (em2884) [0ccd:10a2,0ccd:10ad] |
80 | 80 -> PCTV DVB-S2 Stick (460e) (em28174) | 80 | 80 -> PCTV DVB-S2 Stick (460e) (em28174) |
81 | 81 -> Hauppauge WinTV HVR 930C (em2884) [2040:1605] | 81 | 81 -> Hauppauge WinTV HVR 930C (em2884) [2040:1605] |
82 | 82 -> Terratec Cinergy HTC Stick (em2884) [0ccd:00b2] | 82 | 82 -> Terratec Cinergy HTC Stick (em2884) [0ccd:00b2] |
@@ -84,3 +84,4 @@ | |||
84 | 84 -> MaxMedia UB425-TC (em2874) [1b80:e425] | 84 | 84 -> MaxMedia UB425-TC (em2874) [1b80:e425] |
85 | 85 -> PCTV QuatroStick (510e) (em2884) [2304:0242] | 85 | 85 -> PCTV QuatroStick (510e) (em2884) [2304:0242] |
86 | 86 -> PCTV QuatroStick nano (520e) (em2884) [2013:0251] | 86 | 86 -> PCTV QuatroStick nano (520e) (em2884) [2013:0251] |
87 | 87 -> Terratec Cinergy HTC USB XS (em2884) [0ccd:008e,0ccd:00ac] | ||
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index 94d9025aa82d..b3ad68309109 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
@@ -189,3 +189,4 @@ | |||
189 | 188 -> Sensoray 811/911 [6000:0811,6000:0911] | 189 | 188 -> Sensoray 811/911 [6000:0811,6000:0911] |
190 | 189 -> Kworld PC150-U [17de:a134] | 190 | 189 -> Kworld PC150-U [17de:a134] |
191 | 190 -> Asus My Cinema PS3-100 [1043:48cd] | 191 | 190 -> Asus My Cinema PS3-100 [1043:48cd] |
192 | 191 -> Hawell HW-9004V1 | ||
diff --git a/Documentation/video4linux/et61x251.txt b/Documentation/video4linux/et61x251.txt deleted file mode 100644 index e0cdae491858..000000000000 --- a/Documentation/video4linux/et61x251.txt +++ /dev/null | |||
@@ -1,315 +0,0 @@ | |||
1 | |||
2 | ET61X[12]51 PC Camera Controllers | ||
3 | Driver for Linux | ||
4 | ================================= | ||
5 | |||
6 | - Documentation - | ||
7 | |||
8 | |||
9 | Index | ||
10 | ===== | ||
11 | 1. Copyright | ||
12 | 2. Disclaimer | ||
13 | 3. License | ||
14 | 4. Overview and features | ||
15 | 5. Module dependencies | ||
16 | 6. Module loading | ||
17 | 7. Module parameters | ||
18 | 8. Optional device control through "sysfs" | ||
19 | 9. Supported devices | ||
20 | 10. Notes for V4L2 application developers | ||
21 | 11. Contact information | ||
22 | |||
23 | |||
24 | 1. Copyright | ||
25 | ============ | ||
26 | Copyright (C) 2006-2007 by Luca Risolia <luca.risolia@studio.unibo.it> | ||
27 | |||
28 | |||
29 | 2. Disclaimer | ||
30 | ============= | ||
31 | Etoms is a trademark of Etoms Electronics Corp. | ||
32 | This software is not developed or sponsored by Etoms Electronics. | ||
33 | |||
34 | |||
35 | 3. License | ||
36 | ========== | ||
37 | This program is free software; you can redistribute it and/or modify | ||
38 | it under the terms of the GNU General Public License as published by | ||
39 | the Free Software Foundation; either version 2 of the License, or | ||
40 | (at your option) any later version. | ||
41 | |||
42 | This program is distributed in the hope that it will be useful, | ||
43 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
44 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
45 | GNU General Public License for more details. | ||
46 | |||
47 | You should have received a copy of the GNU General Public License | ||
48 | along with this program; if not, write to the Free Software | ||
49 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
50 | |||
51 | |||
52 | 4. Overview and features | ||
53 | ======================== | ||
54 | This driver supports the video interface of the devices mounting the ET61X151 | ||
55 | or ET61X251 PC Camera Controllers. | ||
56 | |||
57 | It's worth to note that Etoms Electronics has never collaborated with the | ||
58 | author during the development of this project; despite several requests, | ||
59 | Etoms Electronics also refused to release enough detailed specifications of | ||
60 | the video compression engine. | ||
61 | |||
62 | The driver relies on the Video4Linux2 and USB core modules. It has been | ||
63 | designed to run properly on SMP systems as well. | ||
64 | |||
65 | The latest version of the ET61X[12]51 driver can be found at the following URL: | ||
66 | http://www.linux-projects.org/ | ||
67 | |||
68 | Some of the features of the driver are: | ||
69 | |||
70 | - full compliance with the Video4Linux2 API (see also "Notes for V4L2 | ||
71 | application developers" paragraph); | ||
72 | - available mmap or read/poll methods for video streaming through isochronous | ||
73 | data transfers; | ||
74 | - automatic detection of image sensor; | ||
75 | - support for any window resolutions and optional panning within the maximum | ||
76 | pixel area of image sensor; | ||
77 | - image downscaling with arbitrary scaling factors from 1 and 2 in both | ||
78 | directions (see "Notes for V4L2 application developers" paragraph); | ||
79 | - two different video formats for uncompressed or compressed data in low or | ||
80 | high compression quality (see also "Notes for V4L2 application developers" | ||
81 | paragraph); | ||
82 | - full support for the capabilities of every possible image sensors that can | ||
83 | be connected to the ET61X[12]51 bridges, including, for instance, red, green, | ||
84 | blue and global gain adjustments and exposure control (see "Supported | ||
85 | devices" paragraph for details); | ||
86 | - use of default color settings for sunlight conditions; | ||
87 | - dynamic I/O interface for both ET61X[12]51 and image sensor control (see | ||
88 | "Optional device control through 'sysfs'" paragraph); | ||
89 | - dynamic driver control thanks to various module parameters (see "Module | ||
90 | parameters" paragraph); | ||
91 | - up to 64 cameras can be handled at the same time; they can be connected and | ||
92 | disconnected from the host many times without turning off the computer, if | ||
93 | the system supports hotplugging; | ||
94 | - no known bugs. | ||
95 | |||
96 | |||
97 | 5. Module dependencies | ||
98 | ====================== | ||
99 | For it to work properly, the driver needs kernel support for Video4Linux and | ||
100 | USB. | ||
101 | |||
102 | The following options of the kernel configuration file must be enabled and | ||
103 | corresponding modules must be compiled: | ||
104 | |||
105 | # Multimedia devices | ||
106 | # | ||
107 | CONFIG_VIDEO_DEV=m | ||
108 | |||
109 | To enable advanced debugging functionality on the device through /sysfs: | ||
110 | |||
111 | # Multimedia devices | ||
112 | # | ||
113 | CONFIG_VIDEO_ADV_DEBUG=y | ||
114 | |||
115 | # USB support | ||
116 | # | ||
117 | CONFIG_USB=m | ||
118 | |||
119 | In addition, depending on the hardware being used, the modules below are | ||
120 | necessary: | ||
121 | |||
122 | # USB Host Controller Drivers | ||
123 | # | ||
124 | CONFIG_USB_EHCI_HCD=m | ||
125 | CONFIG_USB_UHCI_HCD=m | ||
126 | CONFIG_USB_OHCI_HCD=m | ||
127 | |||
128 | And finally: | ||
129 | |||
130 | # USB Multimedia devices | ||
131 | # | ||
132 | CONFIG_USB_ET61X251=m | ||
133 | |||
134 | |||
135 | 6. Module loading | ||
136 | ================= | ||
137 | To use the driver, it is necessary to load the "et61x251" module into memory | ||
138 | after every other module required: "videodev", "v4l2_common", "compat_ioctl32", | ||
139 | "usbcore" and, depending on the USB host controller you have, "ehci-hcd", | ||
140 | "uhci-hcd" or "ohci-hcd". | ||
141 | |||
142 | Loading can be done as shown below: | ||
143 | |||
144 | [root@localhost home]# modprobe et61x251 | ||
145 | |||
146 | At this point the devices should be recognized. You can invoke "dmesg" to | ||
147 | analyze kernel messages and verify that the loading process has gone well: | ||
148 | |||
149 | [user@localhost home]$ dmesg | ||
150 | |||
151 | |||
152 | 7. Module parameters | ||
153 | ==================== | ||
154 | Module parameters are listed below: | ||
155 | ------------------------------------------------------------------------------- | ||
156 | Name: video_nr | ||
157 | Type: short array (min = 0, max = 64) | ||
158 | Syntax: <-1|n[,...]> | ||
159 | Description: Specify V4L2 minor mode number: | ||
160 | -1 = use next available | ||
161 | n = use minor number n | ||
162 | You can specify up to 64 cameras this way. | ||
163 | For example: | ||
164 | video_nr=-1,2,-1 would assign minor number 2 to the second | ||
165 | registered camera and use auto for the first one and for every | ||
166 | other camera. | ||
167 | Default: -1 | ||
168 | ------------------------------------------------------------------------------- | ||
169 | Name: force_munmap | ||
170 | Type: bool array (min = 0, max = 64) | ||
171 | Syntax: <0|1[,...]> | ||
172 | Description: Force the application to unmap previously mapped buffer memory | ||
173 | before calling any VIDIOC_S_CROP or VIDIOC_S_FMT ioctl's. Not | ||
174 | all the applications support this feature. This parameter is | ||
175 | specific for each detected camera. | ||
176 | 0 = do not force memory unmapping | ||
177 | 1 = force memory unmapping (save memory) | ||
178 | Default: 0 | ||
179 | ------------------------------------------------------------------------------- | ||
180 | Name: frame_timeout | ||
181 | Type: uint array (min = 0, max = 64) | ||
182 | Syntax: <n[,...]> | ||
183 | Description: Timeout for a video frame in seconds. This parameter is | ||
184 | specific for each detected camera. This parameter can be | ||
185 | changed at runtime thanks to the /sys filesystem interface. | ||
186 | Default: 2 | ||
187 | ------------------------------------------------------------------------------- | ||
188 | Name: debug | ||
189 | Type: ushort | ||
190 | Syntax: <n> | ||
191 | Description: Debugging information level, from 0 to 3: | ||
192 | 0 = none (use carefully) | ||
193 | 1 = critical errors | ||
194 | 2 = significant information | ||
195 | 3 = more verbose messages | ||
196 | Level 3 is useful for testing only, when only one device | ||
197 | is used at the same time. It also shows some more information | ||
198 | about the hardware being detected. This module parameter can be | ||
199 | changed at runtime thanks to the /sys filesystem interface. | ||
200 | Default: 2 | ||
201 | ------------------------------------------------------------------------------- | ||
202 | |||
203 | |||
204 | 8. Optional device control through "sysfs" | ||
205 | ========================================== | ||
206 | If the kernel has been compiled with the CONFIG_VIDEO_ADV_DEBUG option enabled, | ||
207 | it is possible to read and write both the ET61X[12]51 and the image sensor | ||
208 | registers by using the "sysfs" filesystem interface. | ||
209 | |||
210 | There are four files in the /sys/class/video4linux/videoX directory for each | ||
211 | registered camera: "reg", "val", "i2c_reg" and "i2c_val". The first two files | ||
212 | control the ET61X[12]51 bridge, while the other two control the sensor chip. | ||
213 | "reg" and "i2c_reg" hold the values of the current register index where the | ||
214 | following reading/writing operations are addressed at through "val" and | ||
215 | "i2c_val". Their use is not intended for end-users, unless you know what you | ||
216 | are doing. Remember that you must be logged in as root before writing to them. | ||
217 | |||
218 | As an example, suppose we were to want to read the value contained in the | ||
219 | register number 1 of the sensor register table - which is usually the product | ||
220 | identifier - of the camera registered as "/dev/video0": | ||
221 | |||
222 | [root@localhost #] cd /sys/class/video4linux/video0 | ||
223 | [root@localhost #] echo 1 > i2c_reg | ||
224 | [root@localhost #] cat i2c_val | ||
225 | |||
226 | Note that if the sensor registers cannot be read, "cat" will fail. | ||
227 | To avoid race conditions, all the I/O accesses to the files are serialized. | ||
228 | |||
229 | |||
230 | 9. Supported devices | ||
231 | ==================== | ||
232 | None of the names of the companies as well as their products will be mentioned | ||
233 | here. They have never collaborated with the author, so no advertising. | ||
234 | |||
235 | From the point of view of a driver, what unambiguously identify a device are | ||
236 | its vendor and product USB identifiers. Below is a list of known identifiers of | ||
237 | devices mounting the ET61X[12]51 PC camera controllers: | ||
238 | |||
239 | Vendor ID Product ID | ||
240 | --------- ---------- | ||
241 | 0x102c 0x6151 | ||
242 | 0x102c 0x6251 | ||
243 | 0x102c 0x6253 | ||
244 | 0x102c 0x6254 | ||
245 | 0x102c 0x6255 | ||
246 | 0x102c 0x6256 | ||
247 | 0x102c 0x6257 | ||
248 | 0x102c 0x6258 | ||
249 | 0x102c 0x6259 | ||
250 | 0x102c 0x625a | ||
251 | 0x102c 0x625b | ||
252 | 0x102c 0x625c | ||
253 | 0x102c 0x625d | ||
254 | 0x102c 0x625e | ||
255 | 0x102c 0x625f | ||
256 | 0x102c 0x6260 | ||
257 | 0x102c 0x6261 | ||
258 | 0x102c 0x6262 | ||
259 | 0x102c 0x6263 | ||
260 | 0x102c 0x6264 | ||
261 | 0x102c 0x6265 | ||
262 | 0x102c 0x6266 | ||
263 | 0x102c 0x6267 | ||
264 | 0x102c 0x6268 | ||
265 | 0x102c 0x6269 | ||
266 | |||
267 | The following image sensors are supported: | ||
268 | |||
269 | Model Manufacturer | ||
270 | ----- ------------ | ||
271 | TAS5130D1B Taiwan Advanced Sensor Corporation | ||
272 | |||
273 | All the available control settings of each image sensor are supported through | ||
274 | the V4L2 interface. | ||
275 | |||
276 | |||
277 | 10. Notes for V4L2 application developers | ||
278 | ========================================= | ||
279 | This driver follows the V4L2 API specifications. In particular, it enforces two | ||
280 | rules: | ||
281 | |||
282 | - exactly one I/O method, either "mmap" or "read", is associated with each | ||
283 | file descriptor. Once it is selected, the application must close and reopen the | ||
284 | device to switch to the other I/O method; | ||
285 | |||
286 | - although it is not mandatory, previously mapped buffer memory should always | ||
287 | be unmapped before calling any "VIDIOC_S_CROP" or "VIDIOC_S_FMT" ioctl's. | ||
288 | The same number of buffers as before will be allocated again to match the size | ||
289 | of the new video frames, so you have to map the buffers again before any I/O | ||
290 | attempts on them. | ||
291 | |||
292 | Consistently with the hardware limits, this driver also supports image | ||
293 | downscaling with arbitrary scaling factors from 1 and 2 in both directions. | ||
294 | However, the V4L2 API specifications don't correctly define how the scaling | ||
295 | factor can be chosen arbitrarily by the "negotiation" of the "source" and | ||
296 | "target" rectangles. To work around this flaw, we have added the convention | ||
297 | that, during the negotiation, whenever the "VIDIOC_S_CROP" ioctl is issued, the | ||
298 | scaling factor is restored to 1. | ||
299 | |||
300 | This driver supports two different video formats: the first one is the "8-bit | ||
301 | Sequential Bayer" format and can be used to obtain uncompressed video data | ||
302 | from the device through the current I/O method, while the second one provides | ||
303 | "raw" compressed video data (without frame headers not related to the | ||
304 | compressed data). The current compression quality may vary from 0 to 1 and can | ||
305 | be selected or queried thanks to the VIDIOC_S_JPEGCOMP and VIDIOC_G_JPEGCOMP | ||
306 | V4L2 ioctl's. | ||
307 | |||
308 | |||
309 | 11. Contact information | ||
310 | ======================= | ||
311 | The author may be contacted by e-mail at <luca.risolia@studio.unibo.it>. | ||
312 | |||
313 | GPG/PGP encrypted e-mail's are accepted. The GPG key ID of the author is | ||
314 | 'FCE635A4'; the public 1024-bit key should be available at any keyserver; | ||
315 | the fingerprint is: '88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4'. | ||
diff --git a/Documentation/video4linux/extract_xc3028.pl b/Documentation/video4linux/extract_xc3028.pl index 47877deae6d7..47877deae6d7 100644..100755 --- a/Documentation/video4linux/extract_xc3028.pl +++ b/Documentation/video4linux/extract_xc3028.pl | |||
diff --git a/Documentation/video4linux/fimc.txt b/Documentation/video4linux/fimc.txt index fd02d9a4930a..25f4d3402722 100644 --- a/Documentation/video4linux/fimc.txt +++ b/Documentation/video4linux/fimc.txt | |||
@@ -58,7 +58,7 @@ Not currently supported: | |||
58 | 4.1. Media device interface | 58 | 4.1. Media device interface |
59 | 59 | ||
60 | The driver supports Media Controller API as defined at | 60 | The driver supports Media Controller API as defined at |
61 | http://http://linuxtv.org/downloads/v4l-dvb-apis/media_common.html | 61 | http://linuxtv.org/downloads/v4l-dvb-apis/media_common.html |
62 | The media device driver name is "SAMSUNG S5P FIMC". | 62 | The media device driver name is "SAMSUNG S5P FIMC". |
63 | 63 | ||
64 | The purpose of this interface is to allow changing assignment of FIMC instances | 64 | The purpose of this interface is to allow changing assignment of FIMC instances |
diff --git a/Documentation/video4linux/ibmcam.txt b/Documentation/video4linux/ibmcam.txt deleted file mode 100644 index a51055211e62..000000000000 --- a/Documentation/video4linux/ibmcam.txt +++ /dev/null | |||
@@ -1,323 +0,0 @@ | |||
1 | README for Linux device driver for the IBM "C-It" USB video camera | ||
2 | |||
3 | INTRODUCTION: | ||
4 | |||
5 | This driver does not use all features known to exist in | ||
6 | the IBM camera. However most of needed features work well. | ||
7 | |||
8 | This driver was developed using logs of observed USB traffic | ||
9 | which was produced by standard Windows driver (c-it98.sys). | ||
10 | I did not have data sheets from Xirlink. | ||
11 | |||
12 | Video formats: | ||
13 | 128x96 [model 1] | ||
14 | 176x144 | ||
15 | 320x240 [model 2] | ||
16 | 352x240 [model 2] | ||
17 | 352x288 | ||
18 | Frame rate: 3 - 30 frames per second (FPS) | ||
19 | External interface: USB | ||
20 | Internal interface: Video For Linux (V4L) | ||
21 | Supported controls: | ||
22 | - by V4L: Contrast, Brightness, Color, Hue | ||
23 | - by driver options: frame rate, lighting conditions, video format, | ||
24 | default picture settings, sharpness. | ||
25 | |||
26 | SUPPORTED CAMERAS: | ||
27 | |||
28 | Xirlink "C-It" camera, also known as "IBM PC Camera". | ||
29 | The device uses proprietary ASIC (and compression method); | ||
30 | it is manufactured by Xirlink. See http://xirlinkwebcam.sourceforge.net, | ||
31 | http://www.ibmpccamera.com, or http://www.c-itnow.com/ for details and pictures. | ||
32 | |||
33 | This very chipset ("X Chip", as marked at the factory) | ||
34 | is used in several other cameras, and they are supported | ||
35 | as well: | ||
36 | |||
37 | - IBM NetCamera | ||
38 | - Veo Stingray | ||
39 | |||
40 | The Linux driver was developed with camera with following | ||
41 | model number (or FCC ID): KSX-XVP510. This camera has three | ||
42 | interfaces, each with one endpoint (control, iso, iso). This | ||
43 | type of cameras is referred to as "model 1". These cameras are | ||
44 | no longer manufactured. | ||
45 | |||
46 | Xirlink now manufactures new cameras which are somewhat different. | ||
47 | In particular, following models [FCC ID] belong to that category: | ||
48 | |||
49 | XVP300 [KSX-X9903] | ||
50 | XVP600 [KSX-X9902] | ||
51 | XVP610 [KSX-X9902] | ||
52 | |||
53 | (see http://www.xirlink.com/ibmpccamera/ for updates, they refer | ||
54 | to these new cameras by Windows driver dated 12-27-99, v3005 BETA) | ||
55 | These cameras have two interfaces, one endpoint in each (iso, bulk). | ||
56 | Such type of cameras is referred to as "model 2". They are supported | ||
57 | (with exception of 352x288 native mode). | ||
58 | |||
59 | Some IBM NetCameras (Model 4) are made to generate only compressed | ||
60 | video streams. This is great for performance, but unfortunately | ||
61 | nobody knows how to decompress the stream :-( Therefore, these | ||
62 | cameras are *unsupported* and if you try to use one of those, all | ||
63 | you get is random colored horizontal streaks, not the image! | ||
64 | If you have one of those cameras, you probably should return it | ||
65 | to the store and get something that is supported. | ||
66 | |||
67 | Tell me more about all that "model" business | ||
68 | -------------------------------------------- | ||
69 | |||
70 | I just invented model numbers to uniquely identify flavors of the | ||
71 | hardware/firmware that were sold. It was very confusing to use | ||
72 | brand names or some other internal numbering schemes. So I found | ||
73 | by experimentation that all Xirlink chipsets fall into four big | ||
74 | classes, and I called them "models". Each model is programmed in | ||
75 | its own way, and each model sends back the video in its own way. | ||
76 | |||
77 | Quirks of Model 2 cameras: | ||
78 | ------------------------- | ||
79 | |||
80 | Model 2 does not have hardware contrast control. Corresponding V4L | ||
81 | control is implemented in software, which is not very nice to your | ||
82 | CPU, but at least it works. | ||
83 | |||
84 | This driver provides 352x288 mode by switching the camera into | ||
85 | quasi-352x288 RGB mode (800 Kbits per frame) essentially limiting | ||
86 | this mode to 10 frames per second or less, in ideal conditions on | ||
87 | the bus (USB is shared, after all). The frame rate | ||
88 | has to be programmed very conservatively. Additional concern is that | ||
89 | frame rate depends on brightness setting; therefore the picture can | ||
90 | be good at one brightness and broken at another! I did not want to fix | ||
91 | the frame rate at slowest setting, but I had to move it pretty much down | ||
92 | the scale (so that framerate option barely matters). I also noticed that | ||
93 | camera after first powering up produces frames slightly faster than during | ||
94 | consecutive uses. All this means that if you use 352x288 (which is | ||
95 | default), be warned - you may encounter broken picture on first connect; | ||
96 | try to adjust brightness - brighter image is slower, so USB will be able | ||
97 | to send all data. However if you regularly use Model 2 cameras you may | ||
98 | prefer 176x144 which makes perfectly good I420, with no scaling and | ||
99 | lesser demands on USB (300 Kbits per second, or 26 frames per second). | ||
100 | |||
101 | Another strange effect of 352x288 mode is the fine vertical grid visible | ||
102 | on some colored surfaces. I am sure it is caused by me not understanding | ||
103 | what the camera is trying to say. Blame trade secrets for that. | ||
104 | |||
105 | The camera that I had also has a hardware quirk: if disconnected, | ||
106 | it needs few minutes to "relax" before it can be plugged in again | ||
107 | (poorly designed USB processor reset circuit?) | ||
108 | |||
109 | [Veo Stingray with Product ID 0x800C is also Model 2, but I haven't | ||
110 | observed this particular flaw in it.] | ||
111 | |||
112 | Model 2 camera can be programmed for very high sensitivity (even starlight | ||
113 | may be enough), this makes it convenient for tinkering with. The driver | ||
114 | code has enough comments to help a programmer to tweak the camera | ||
115 | as s/he feels necessary. | ||
116 | |||
117 | WHAT YOU NEED: | ||
118 | |||
119 | - A supported IBM PC (C-it) camera (model 1 or 2) | ||
120 | |||
121 | - A Linux box with USB support (2.3/2.4; 2.2 w/backport may work) | ||
122 | |||
123 | - A Video4Linux compatible frame grabber program such as xawtv. | ||
124 | |||
125 | HOW TO COMPILE THE DRIVER: | ||
126 | |||
127 | You need to compile the driver only if you are a developer | ||
128 | or if you want to make changes to the code. Most distributions | ||
129 | precompile all modules, so you can go directly to the next | ||
130 | section "HOW TO USE THE DRIVER". | ||
131 | |||
132 | The ibmcam driver uses usbvideo helper library (module), | ||
133 | so if you are studying the ibmcam code you will be led there. | ||
134 | |||
135 | The driver itself consists of only one file in usb/ directory: | ||
136 | ibmcam.c. This file is included into the Linux kernel build | ||
137 | process if you configure the kernel for CONFIG_USB_IBMCAM. | ||
138 | Run "make xconfig" and in USB section you will find the IBM | ||
139 | camera driver. Select it, save the configuration and recompile. | ||
140 | |||
141 | HOW TO USE THE DRIVER: | ||
142 | |||
143 | I recommend to compile driver as a module. This gives you an | ||
144 | easier access to its configuration. The camera has many more | ||
145 | settings than V4L can operate, so some settings are done using | ||
146 | module options. | ||
147 | |||
148 | To begin with, on most modern Linux distributions the driver | ||
149 | will be automatically loaded whenever you plug the supported | ||
150 | camera in. Therefore, you don't need to do anything. However | ||
151 | if you want to experiment with some module parameters then | ||
152 | you can load and unload the driver manually, with camera | ||
153 | plugged in or unplugged. | ||
154 | |||
155 | Typically module is installed with command 'modprobe', like this: | ||
156 | |||
157 | # modprobe ibmcam framerate=1 | ||
158 | |||
159 | Alternatively you can use 'insmod' in similar fashion: | ||
160 | |||
161 | # insmod /lib/modules/2.x.y/usb/ibmcam.o framerate=1 | ||
162 | |||
163 | Module can be inserted with camera connected or disconnected. | ||
164 | |||
165 | The driver can have options, though some defaults are provided. | ||
166 | |||
167 | Driver options: (* indicates that option is model-dependent) | ||
168 | |||
169 | Name Type Range [default] Example | ||
170 | -------------- -------------- -------------- ------------------ | ||
171 | debug Integer 0-9 [0] debug=1 | ||
172 | flags Integer 0-0xFF [0] flags=0x0d | ||
173 | framerate Integer 0-6 [2] framerate=1 | ||
174 | hue_correction Integer 0-255 [128] hue_correction=115 | ||
175 | init_brightness Integer 0-255 [128] init_brightness=100 | ||
176 | init_contrast Integer 0-255 [192] init_contrast=200 | ||
177 | init_color Integer 0-255 [128] init_color=130 | ||
178 | init_hue Integer 0-255 [128] init_hue=115 | ||
179 | lighting Integer 0-2* [1] lighting=2 | ||
180 | sharpness Integer 0-6* [4] sharpness=3 | ||
181 | size Integer 0-2* [2] size=1 | ||
182 | |||
183 | Options for Model 2 only: | ||
184 | |||
185 | Name Type Range [default] Example | ||
186 | -------------- -------------- -------------- ------------------ | ||
187 | init_model2_rg Integer 0..255 [0x70] init_model2_rg=128 | ||
188 | init_model2_rg2 Integer 0..255 [0x2f] init_model2_rg2=50 | ||
189 | init_model2_sat Integer 0..255 [0x34] init_model2_sat=65 | ||
190 | init_model2_yb Integer 0..255 [0xa0] init_model2_yb=200 | ||
191 | |||
192 | debug You don't need this option unless you are a developer. | ||
193 | If you are a developer then you will see in the code | ||
194 | what values do what. 0=off. | ||
195 | |||
196 | flags This is a bit mask, and you can combine any number of | ||
197 | bits to produce what you want. Usually you don't want | ||
198 | any of extra features this option provides: | ||
199 | |||
200 | FLAGS_RETRY_VIDIOCSYNC 1 This bit allows to retry failed | ||
201 | VIDIOCSYNC ioctls without failing. | ||
202 | Will work with xawtv, will not | ||
203 | with xrealproducer. Default is | ||
204 | not set. | ||
205 | FLAGS_MONOCHROME 2 Activates monochrome (b/w) mode. | ||
206 | FLAGS_DISPLAY_HINTS 4 Shows colored pixels which have | ||
207 | magic meaning to developers. | ||
208 | FLAGS_OVERLAY_STATS 8 Shows tiny numbers on screen, | ||
209 | useful only for debugging. | ||
210 | FLAGS_FORCE_TESTPATTERN 16 Shows blue screen with numbers. | ||
211 | FLAGS_SEPARATE_FRAMES 32 Shows each frame separately, as | ||
212 | it was received from the camera. | ||
213 | Default (not set) is to mix the | ||
214 | preceding frame in to compensate | ||
215 | for occasional loss of Isoc data | ||
216 | on high frame rates. | ||
217 | FLAGS_CLEAN_FRAMES 64 Forces "cleanup" of each frame | ||
218 | prior to use; relevant only if | ||
219 | FLAGS_SEPARATE_FRAMES is set. | ||
220 | Default is not to clean frames, | ||
221 | this is a little faster but may | ||
222 | produce flicker if frame rate is | ||
223 | too high and Isoc data gets lost. | ||
224 | FLAGS_NO_DECODING 128 This flag turns the video stream | ||
225 | decoder off, and dumps the raw | ||
226 | Isoc data from the camera into | ||
227 | the reading process. Useful to | ||
228 | developers, but not to users. | ||
229 | |||
230 | framerate This setting controls frame rate of the camera. This is | ||
231 | an approximate setting (in terms of "worst" ... "best") | ||
232 | because camera changes frame rate depending on amount | ||
233 | of light available. Setting 0 is slowest, 6 is fastest. | ||
234 | Beware - fast settings are very demanding and may not | ||
235 | work well with all video sizes. Be conservative. | ||
236 | |||
237 | hue_correction This highly optional setting allows to adjust the | ||
238 | hue of the image in a way slightly different from | ||
239 | what usual "hue" control does. Both controls affect | ||
240 | YUV colorspace: regular "hue" control adjusts only | ||
241 | U component, and this "hue_correction" option similarly | ||
242 | adjusts only V component. However usually it is enough | ||
243 | to tweak only U or V to compensate for colored light or | ||
244 | color temperature; this option simply allows more | ||
245 | complicated correction when and if it is necessary. | ||
246 | |||
247 | init_brightness These settings specify _initial_ values which will be | ||
248 | init_contrast used to set up the camera. If your V4L application has | ||
249 | init_color its own controls to adjust the picture then these | ||
250 | init_hue controls will be used too. These options allow you to | ||
251 | preconfigure the camera when it gets connected, before | ||
252 | any V4L application connects to it. Good for webcams. | ||
253 | |||
254 | init_model2_rg These initial settings alter color balance of the | ||
255 | init_model2_rg2 camera on hardware level. All four settings may be used | ||
256 | init_model2_sat to tune the camera to specific lighting conditions. These | ||
257 | init_model2_yb settings only apply to Model 2 cameras. | ||
258 | |||
259 | lighting This option selects one of three hardware-defined | ||
260 | photosensitivity settings of the camera. 0=bright light, | ||
261 | 1=Medium (default), 2=Low light. This setting affects | ||
262 | frame rate: the dimmer the lighting the lower the frame | ||
263 | rate (because longer exposition time is needed). The | ||
264 | Model 2 cameras allow values more than 2 for this option, | ||
265 | thus enabling extremely high sensitivity at cost of frame | ||
266 | rate, color saturation and imaging sensor noise. | ||
267 | |||
268 | sharpness This option controls smoothing (noise reduction) | ||
269 | made by camera. Setting 0 is most smooth, setting 6 | ||
270 | is most sharp. Be aware that CMOS sensor used in the | ||
271 | camera is pretty noisy, so if you choose 6 you will | ||
272 | be greeted with "snowy" image. Default is 4. Model 2 | ||
273 | cameras do not support this feature. | ||
274 | |||
275 | size This setting chooses one of several image sizes that are | ||
276 | supported by this driver. Cameras may support more, but | ||
277 | it's difficult to reverse-engineer all formats. | ||
278 | Following video sizes are supported: | ||
279 | |||
280 | size=0 128x96 (Model 1 only) | ||
281 | size=1 160x120 | ||
282 | size=2 176x144 | ||
283 | size=3 320x240 (Model 2 only) | ||
284 | size=4 352x240 (Model 2 only) | ||
285 | size=5 352x288 | ||
286 | size=6 640x480 (Model 3 only) | ||
287 | |||
288 | The 352x288 is the native size of the Model 1 sensor | ||
289 | array, so it's the best resolution the camera can | ||
290 | yield. The best resolution of Model 2 is 176x144, and | ||
291 | larger images are produced by stretching the bitmap. | ||
292 | Model 3 has sensor with 640x480 grid, and it works too, | ||
293 | but the frame rate will be exceptionally low (1-2 FPS); | ||
294 | it may be still OK for some applications, like security. | ||
295 | Choose the image size you need. The smaller image can | ||
296 | support faster frame rate. Default is 352x288. | ||
297 | |||
298 | For more information and the Troubleshooting FAQ visit this URL: | ||
299 | |||
300 | http://www.linux-usb.org/ibmcam/ | ||
301 | |||
302 | WHAT NEEDS TO BE DONE: | ||
303 | |||
304 | - The button on the camera is not used. I don't know how to get to it. | ||
305 | I know now how to read button on Model 2, but what to do with it? | ||
306 | |||
307 | - Camera reports its status back to the driver; however I don't know | ||
308 | what returned data means. If camera fails at some initialization | ||
309 | stage then something should be done, and I don't do that because | ||
310 | I don't even know that some command failed. This is mostly Model 1 | ||
311 | concern because Model 2 uses different commands which do not return | ||
312 | status (and seem to complete successfully every time). | ||
313 | |||
314 | - Some flavors of Model 4 NetCameras produce only compressed video | ||
315 | streams, and I don't know how to decode them. | ||
316 | |||
317 | CREDITS: | ||
318 | |||
319 | The code is based in no small part on the CPiA driver by Johannes Erdfelt, | ||
320 | Randy Dunlap, and others. Big thanks to them for their pioneering work on that | ||
321 | and the USB stack. | ||
322 | |||
323 | I also thank John Lightsey for his donation of the Veo Stingray camera. | ||
diff --git a/Documentation/video4linux/m5602.txt b/Documentation/video4linux/m5602.txt deleted file mode 100644 index 4450ab13f37b..000000000000 --- a/Documentation/video4linux/m5602.txt +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | This document describes the ALi m5602 bridge connected | ||
2 | to the following supported sensors: | ||
3 | OmniVision OV9650, | ||
4 | Samsung s5k83a, | ||
5 | Samsung s5k4aa, | ||
6 | Micron mt9m111, | ||
7 | Pixel plus PO1030 | ||
8 | |||
9 | This driver mimics the windows drivers, which have a braindead implementation sending bayer-encoded frames at VGA resolution. | ||
10 | In a perfect world we should be able to reprogram the m5602 and the connected sensor in hardware instead, supporting a range of resolutions and pixelformats | ||
11 | |||
12 | Anyway, have fun and please report any bugs to m560x-driver-devel@lists.sourceforge.net | ||
diff --git a/Documentation/video4linux/ov511.txt b/Documentation/video4linux/ov511.txt deleted file mode 100644 index b3326b167ada..000000000000 --- a/Documentation/video4linux/ov511.txt +++ /dev/null | |||
@@ -1,288 +0,0 @@ | |||
1 | ------------------------------------------------------------------------------- | ||
2 | Readme for Linux device driver for the OmniVision OV511 USB to camera bridge IC | ||
3 | ------------------------------------------------------------------------------- | ||
4 | |||
5 | Author: Mark McClelland | ||
6 | Homepage: http://alpha.dyndns.org/ov511 | ||
7 | |||
8 | INTRODUCTION: | ||
9 | |||
10 | This is a driver for the OV511, a USB-only chip used in many "webcam" devices. | ||
11 | Any camera using the OV511/OV511+ and the OV6620/OV7610/20/20AE should work. | ||
12 | Video capture devices that use the Philips SAA7111A decoder also work. It | ||
13 | supports streaming and capture of color or monochrome video via the Video4Linux | ||
14 | API. Most V4L apps are compatible with it. Most resolutions with a width and | ||
15 | height that are a multiple of 8 are supported. | ||
16 | |||
17 | If you need more information, please visit the OV511 homepage at the above URL. | ||
18 | |||
19 | WHAT YOU NEED: | ||
20 | |||
21 | - If you want to help with the development, get the chip's specification docs at | ||
22 | http://www.ovt.com/omniusbp.html | ||
23 | |||
24 | - A Video4Linux compatible frame grabber program (I recommend vidcat and xawtv) | ||
25 | vidcat is part of the w3cam package: http://mpx.freeshell.net/ | ||
26 | xawtv is available at: http://linux.bytesex.org/xawtv/ | ||
27 | |||
28 | HOW TO USE IT: | ||
29 | |||
30 | Note: These are simplified instructions. For complete instructions see: | ||
31 | http://alpha.dyndns.org/ov511/install.html | ||
32 | |||
33 | You must have first compiled USB support, support for your specific USB host | ||
34 | controller (UHCI or OHCI), and Video4Linux support for your kernel (I recommend | ||
35 | making them modules.) Make sure "Enforce bandwidth allocation" is NOT enabled. | ||
36 | |||
37 | Next, (as root): | ||
38 | |||
39 | modprobe usbcore | ||
40 | modprobe usb-uhci <OR> modprobe usb-ohci | ||
41 | modprobe videodev | ||
42 | modprobe ov511 | ||
43 | |||
44 | If it is not already there (it usually is), create the video device: | ||
45 | |||
46 | mknod /dev/video0 c 81 0 | ||
47 | |||
48 | Optionally, symlink /dev/video to /dev/video0 | ||
49 | |||
50 | You will have to set permissions on this device to allow you to read/write | ||
51 | from it: | ||
52 | |||
53 | chmod 666 /dev/video | ||
54 | chmod 666 /dev/video0 (if necessary) | ||
55 | |||
56 | Now you are ready to run a video app! Both vidcat and xawtv work well for me | ||
57 | at 640x480. | ||
58 | |||
59 | [Using vidcat:] | ||
60 | |||
61 | vidcat -s 640x480 -p c > test.jpg | ||
62 | xview test.jpg | ||
63 | |||
64 | [Using xawtv:] | ||
65 | |||
66 | From the main xawtv directory: | ||
67 | |||
68 | make clean | ||
69 | ./configure | ||
70 | make | ||
71 | make install | ||
72 | |||
73 | Now you should be able to run xawtv. Right click for the options dialog. | ||
74 | |||
75 | MODULE PARAMETERS: | ||
76 | |||
77 | You can set these with: insmod ov511 NAME=VALUE | ||
78 | There is currently no way to set these on a per-camera basis. | ||
79 | |||
80 | NAME: autobright | ||
81 | TYPE: integer (Boolean) | ||
82 | DEFAULT: 1 | ||
83 | DESC: Brightness is normally under automatic control and can't be set | ||
84 | manually by the video app. Set to 0 for manual control. | ||
85 | |||
86 | NAME: autogain | ||
87 | TYPE: integer (Boolean) | ||
88 | DEFAULT: 1 | ||
89 | DESC: Auto Gain Control enable. This feature is not yet implemented. | ||
90 | |||
91 | NAME: autoexp | ||
92 | TYPE: integer (Boolean) | ||
93 | DEFAULT: 1 | ||
94 | DESC: Auto Exposure Control enable. This feature is not yet implemented. | ||
95 | |||
96 | NAME: debug | ||
97 | TYPE: integer (0-6) | ||
98 | DEFAULT: 3 | ||
99 | DESC: Sets the threshold for printing debug messages. The higher the value, | ||
100 | the more is printed. The levels are cumulative, and are as follows: | ||
101 | 0=no debug messages | ||
102 | 1=init/detection/unload and other significant messages | ||
103 | 2=some warning messages | ||
104 | 3=config/control function calls | ||
105 | 4=most function calls and data parsing messages | ||
106 | 5=highly repetitive mesgs | ||
107 | |||
108 | NAME: snapshot | ||
109 | TYPE: integer (Boolean) | ||
110 | DEFAULT: 0 | ||
111 | DESC: Set to 1 to enable snapshot mode. read()/VIDIOCSYNC will block until | ||
112 | the snapshot button is pressed. Note: enabling this mode disables | ||
113 | /proc/video/ov511/<minor#>/button | ||
114 | |||
115 | NAME: cams | ||
116 | TYPE: integer (1-4 for OV511, 1-31 for OV511+) | ||
117 | DEFAULT: 1 | ||
118 | DESC: Number of cameras allowed to stream simultaneously on a single bus. | ||
119 | Values higher than 1 reduce the data rate of each camera, allowing two | ||
120 | or more to be used at once. If you have a complicated setup involving | ||
121 | both OV511 and OV511+ cameras, trial-and-error may be necessary for | ||
122 | finding the optimum setting. | ||
123 | |||
124 | NAME: compress | ||
125 | TYPE: integer (Boolean) | ||
126 | DEFAULT: 0 | ||
127 | DESC: Set this to 1 to turn on the camera's compression engine. This can | ||
128 | potentially increase the frame rate at the expense of quality, if you | ||
129 | have a fast CPU. You must load the proper compression module for your | ||
130 | camera before starting your application (ov511_decomp or ov518_decomp). | ||
131 | |||
132 | NAME: testpat | ||
133 | TYPE: integer (Boolean) | ||
134 | DEFAULT: 0 | ||
135 | DESC: This configures the camera's sensor to transmit a colored test-pattern | ||
136 | instead of an image. This does not work correctly yet. | ||
137 | |||
138 | NAME: dumppix | ||
139 | TYPE: integer (0-2) | ||
140 | DEFAULT: 0 | ||
141 | DESC: Dumps raw pixel data and skips post-processing and format conversion. | ||
142 | It is for debugging purposes only. Options are: | ||
143 | 0: Disable (default) | ||
144 | 1: Dump raw data from camera, excluding headers and trailers | ||
145 | 2: Dumps data exactly as received from camera | ||
146 | |||
147 | NAME: led | ||
148 | TYPE: integer (0-2) | ||
149 | DEFAULT: 1 (Always on) | ||
150 | DESC: Controls whether the LED (the little light) on the front of the camera | ||
151 | is always off (0), always on (1), or only on when driver is open (2). | ||
152 | This is not supported with the OV511, and might only work with certain | ||
153 | cameras (ones that actually have the LED wired to the control pin, and | ||
154 | not just hard-wired to be on all the time). | ||
155 | |||
156 | NAME: dump_bridge | ||
157 | TYPE: integer (Boolean) | ||
158 | DEFAULT: 0 | ||
159 | DESC: Dumps the bridge (OV511[+] or OV518[+]) register values to the system | ||
160 | log. Only useful for serious debugging/development purposes. | ||
161 | |||
162 | NAME: dump_sensor | ||
163 | TYPE: integer (Boolean) | ||
164 | DEFAULT: 0 | ||
165 | DESC: Dumps the sensor register values to the system log. Only useful for | ||
166 | serious debugging/development purposes. | ||
167 | |||
168 | NAME: printph | ||
169 | TYPE: integer (Boolean) | ||
170 | DEFAULT: 0 | ||
171 | DESC: Setting this to 1 will dump the first 12 bytes of each isoc frame. This | ||
172 | is only useful if you are trying to debug problems with the isoc data | ||
173 | stream (i.e.: camera initializes, but vidcat hangs until Ctrl-C). Be | ||
174 | warned that this dumps a large number of messages to your kernel log. | ||
175 | |||
176 | NAME: phy, phuv, pvy, pvuv, qhy, qhuv, qvy, qvuv | ||
177 | TYPE: integer (0-63 for phy and phuv, 0-255 for rest) | ||
178 | DEFAULT: OV511 default values | ||
179 | DESC: These are registers 70h - 77h of the OV511, which control the | ||
180 | prediction ranges and quantization thresholds of the compressor, for | ||
181 | the Y and UV channels in the horizontal and vertical directions. See | ||
182 | the OV511 or OV511+ data sheet for more detailed descriptions. These | ||
183 | normally do not need to be changed. | ||
184 | |||
185 | NAME: lightfreq | ||
186 | TYPE: integer (0, 50, or 60) | ||
187 | DEFAULT: 0 (use sensor default) | ||
188 | DESC: Sets the sensor to match your lighting frequency. This can reduce the | ||
189 | appearance of "banding", i.e. horizontal lines or waves of light and | ||
190 | dark that are often caused by artificial lighting. Valid values are: | ||
191 | 0 - Use default (depends on sensor, most likely 60 Hz) | ||
192 | 50 - For European and Asian 50 Hz power | ||
193 | 60 - For American 60 Hz power | ||
194 | |||
195 | NAME: bandingfilter | ||
196 | TYPE: integer (Boolean) | ||
197 | DEFAULT: 0 (off) | ||
198 | DESC: Enables the sensor´s banding filter exposure algorithm. This reduces | ||
199 | or stabilizes the "banding" caused by some artificial light sources | ||
200 | (especially fluorescent). You might have to set lightfreq correctly for | ||
201 | this to work right. As an added bonus, this sometimes makes it | ||
202 | possible to capture your monitor´s output. | ||
203 | |||
204 | NAME: fastset | ||
205 | TYPE: integer (Boolean) | ||
206 | DEFAULT: 0 (off) | ||
207 | DESC: Allows picture settings (brightness, contrast, color, and hue) to take | ||
208 | effect immediately, even in the middle of a frame. This reduces the | ||
209 | time to change settings, but can ruin frames during the change. Only | ||
210 | affects OmniVision sensors. | ||
211 | |||
212 | NAME: force_palette | ||
213 | TYPE: integer (Boolean) | ||
214 | DEFAULT: 0 (off) | ||
215 | DESC: Forces the palette (color format) to a specific value. If an | ||
216 | application requests a different palette, it will be rejected, thereby | ||
217 | forcing it to try others until it succeeds. This is useful for forcing | ||
218 | greyscale mode with a color camera, for example. Supported modes are: | ||
219 | 0 (Allows all the following formats) | ||
220 | 1 VIDEO_PALETTE_GREY (Linear greyscale) | ||
221 | 10 VIDEO_PALETTE_YUV420 (YUV 4:2:0 Planar) | ||
222 | 15 VIDEO_PALETTE_YUV420P (YUV 4:2:0 Planar, same as 10) | ||
223 | |||
224 | NAME: backlight | ||
225 | TYPE: integer (Boolean) | ||
226 | DEFAULT: 0 (off) | ||
227 | DESC: Setting this flag changes the exposure algorithm for OmniVision sensors | ||
228 | such that objects in the camera's view (i.e. your head) can be clearly | ||
229 | seen when they are illuminated from behind. It reduces or eliminates | ||
230 | the sensor's auto-exposure function, so it should only be used when | ||
231 | needed. Additionally, it is only supported with the OV6620 and OV7620. | ||
232 | |||
233 | NAME: unit_video | ||
234 | TYPE: Up to 16 comma-separated integers | ||
235 | DEFAULT: 0,0,0... (automatically assign the next available minor(s)) | ||
236 | DESC: You can specify up to 16 minor numbers to be assigned to ov511 devices. | ||
237 | For example, "unit_video=1,3" will make the driver use /dev/video1 and | ||
238 | /dev/video3 for the first two devices it detects. Additional devices | ||
239 | will be assigned automatically starting at the first available device | ||
240 | node (/dev/video0 in this case). Note that you cannot specify 0 as a | ||
241 | minor number. This feature requires kernel version 2.4.5 or higher. | ||
242 | |||
243 | NAME: remove_zeros | ||
244 | TYPE: integer (Boolean) | ||
245 | DEFAULT: 0 (do not skip any incoming data) | ||
246 | DESC: Setting this to 1 will remove zero-padding from incoming data. This | ||
247 | will compensate for the blocks of corruption that can appear when the | ||
248 | camera cannot keep up with the speed of the USB bus (eg. at low frame | ||
249 | resolutions). This feature is always enabled when compression is on. | ||
250 | |||
251 | NAME: mirror | ||
252 | TYPE: integer (Boolean) | ||
253 | DEFAULT: 0 (off) | ||
254 | DESC: Setting this to 1 will reverse ("mirror") the image horizontally. This | ||
255 | might be necessary if your camera has a custom lens assembly. This has | ||
256 | no effect with video capture devices. | ||
257 | |||
258 | NAME: ov518_color | ||
259 | TYPE: integer (Boolean) | ||
260 | DEFAULT: 0 (off) | ||
261 | DESC: Enable OV518 color support. This is off by default since it doesn't | ||
262 | work most of the time. If you want to try it, you must also load | ||
263 | ov518_decomp with the "nouv=0" parameter. If you get improper colors or | ||
264 | diagonal lines through the image, restart your video app and try again. | ||
265 | Repeat as necessary. | ||
266 | |||
267 | WORKING FEATURES: | ||
268 | o Color streaming/capture at most widths and heights that are multiples of 8. | ||
269 | o Monochrome (use force_palette=1 to enable) | ||
270 | o Setting/getting of saturation, contrast, brightness, and hue (only some of | ||
271 | them work the OV7620 and OV7620AE) | ||
272 | o /proc status reporting | ||
273 | o SAA7111A video capture support at 320x240 and 640x480 | ||
274 | o Compression support | ||
275 | o SMP compatibility | ||
276 | |||
277 | HOW TO CONTACT ME: | ||
278 | |||
279 | You can email me at mark@alpha.dyndns.org . Please prefix the subject line | ||
280 | with "OV511: " so that I am certain to notice your message. | ||
281 | |||
282 | CREDITS: | ||
283 | |||
284 | The code is based in no small part on the CPiA driver by Johannes Erdfelt, | ||
285 | Randy Dunlap, and others. Big thanks to them for their pioneering work on that | ||
286 | and the USB stack. Thanks to Bret Wallach for getting camera reg IO, ISOC, and | ||
287 | image capture working. Thanks to Orion Sky Lawlor, Kevin Moore, and Claudio | ||
288 | Matsuoka for their work as well. | ||
diff --git a/Documentation/video4linux/se401.txt b/Documentation/video4linux/se401.txt deleted file mode 100644 index bd6526ec8dd7..000000000000 --- a/Documentation/video4linux/se401.txt +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | Linux driver for SE401 based USB cameras | ||
2 | |||
3 | Copyright, 2001, Jeroen Vreeken | ||
4 | |||
5 | |||
6 | INTRODUCTION: | ||
7 | |||
8 | The SE401 chip is the used in low-cost usb webcams. | ||
9 | It is produced by Endpoints Inc. (www.endpoints.com). | ||
10 | It interfaces directly to a cmos image sensor and USB. The only other major | ||
11 | part in a se401 based camera is a dram chip. | ||
12 | |||
13 | The following cameras are known to work with this driver: | ||
14 | |||
15 | Aox se401 (non-branded) cameras | ||
16 | Philips PVCV665 USB VGA webcam 'Vesta Fun' | ||
17 | Kensington VideoCAM PC Camera Model 67014 | ||
18 | Kensington VideoCAM PC Camera Model 67015 | ||
19 | Kensington VideoCAM PC Camera Model 67016 | ||
20 | Kensington VideoCAM PC Camera Model 67017 | ||
21 | |||
22 | |||
23 | WHAT YOU NEED: | ||
24 | |||
25 | - USB support | ||
26 | - VIDEO4LINUX support | ||
27 | |||
28 | More information about USB support for linux can be found at: | ||
29 | http://www.linux-usb.org | ||
30 | |||
31 | |||
32 | MODULE OPTIONS: | ||
33 | |||
34 | When the driver is compiled as a module you can also use the 'flickerless' | ||
35 | option. With it exposure is limited to values that do not interfere with the | ||
36 | net frequency. Valid options for this option are 0, 50 and 60. (0=disable, | ||
37 | 50=50hz, 60=60hz) | ||
38 | |||
39 | |||
40 | KNOWN PROBLEMS: | ||
41 | |||
42 | The driver works fine with the usb-ohci and uhci host controller drivers, | ||
43 | the default settings also work with usb-uhci. But sending more than one bulk | ||
44 | transfer at a time with usb-uhci doesn't work yet. | ||
45 | Users of usb-ohci and uhci can safely enlarge SE401_NUMSBUF in se401.h in | ||
46 | order to increase the throughput (and thus framerate). | ||
47 | |||
48 | |||
49 | HELP: | ||
50 | |||
51 | The latest info on this driver can be found at: | ||
52 | http://members.chello.nl/~j.vreeken/se401/ | ||
53 | And questions to me can be send to: | ||
54 | pe1rxq@amsat.org | ||
diff --git a/Documentation/video4linux/si470x.txt b/Documentation/video4linux/si470x.txt index 3a7823e01b4d..98c32925eb39 100644 --- a/Documentation/video4linux/si470x.txt +++ b/Documentation/video4linux/si470x.txt | |||
@@ -53,6 +53,9 @@ Testing is usually done with most application under Debian/testing: | |||
53 | - kradio - Comfortable Radio Application for KDE | 53 | - kradio - Comfortable Radio Application for KDE |
54 | - radio - ncurses-based radio application | 54 | - radio - ncurses-based radio application |
55 | - mplayer - The Ultimate Movie Player For Linux | 55 | - mplayer - The Ultimate Movie Player For Linux |
56 | - v4l2-ctl - Collection of command line video4linux utilities | ||
57 | For example, you can use: | ||
58 | v4l2-ctl -d /dev/radio0 --set-ctrl=volume=10,mute=0 --set-freq=95.21 --all | ||
56 | 59 | ||
57 | There is also a library libv4l, which can be used. It's going to have a function | 60 | There is also a library libv4l, which can be used. It's going to have a function |
58 | for frequency seeking, either by using hardware functionality as in radio-si470x | 61 | for frequency seeking, either by using hardware functionality as in radio-si470x |
@@ -75,8 +78,10 @@ commands. Please adjust the audio devices to your needs (/dev/dsp* and hw:x,x). | |||
75 | If you just want to test audio (very poor quality): | 78 | If you just want to test audio (very poor quality): |
76 | cat /dev/dsp1 > /dev/dsp | 79 | cat /dev/dsp1 > /dev/dsp |
77 | 80 | ||
78 | If you use OSS try: | 81 | If you use sox + OSS try: |
79 | sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp | 82 | sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp |
83 | or using sox + alsa: | ||
84 | sox --endian little -c 2 -S -r 96000 -t alsa hw:1 -t alsa -r 96000 hw:0 | ||
80 | 85 | ||
81 | If you use arts try: | 86 | If you use arts try: |
82 | arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B - | 87 | arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B - |
diff --git a/Documentation/video4linux/soc-camera.txt b/Documentation/video4linux/soc-camera.txt index 3f87c7da4ca2..f62fcdbc8b9f 100644 --- a/Documentation/video4linux/soc-camera.txt +++ b/Documentation/video4linux/soc-camera.txt | |||
@@ -9,32 +9,36 @@ The following terms are used in this document: | |||
9 | of connecting to a variety of systems and interfaces, typically uses i2c for | 9 | of connecting to a variety of systems and interfaces, typically uses i2c for |
10 | control and configuration, and a parallel or a serial bus for data. | 10 | control and configuration, and a parallel or a serial bus for data. |
11 | - camera host - an interface, to which a camera is connected. Typically a | 11 | - camera host - an interface, to which a camera is connected. Typically a |
12 | specialised interface, present on many SoCs, e.g., PXA27x and PXA3xx, SuperH, | 12 | specialised interface, present on many SoCs, e.g. PXA27x and PXA3xx, SuperH, |
13 | AVR32, i.MX27, i.MX31. | 13 | AVR32, i.MX27, i.MX31. |
14 | - camera host bus - a connection between a camera host and a camera. Can be | 14 | - camera host bus - a connection between a camera host and a camera. Can be |
15 | parallel or serial, consists of data and control lines, e.g., clock, vertical | 15 | parallel or serial, consists of data and control lines, e.g. clock, vertical |
16 | and horizontal synchronization signals. | 16 | and horizontal synchronization signals. |
17 | 17 | ||
18 | Purpose of the soc-camera subsystem | 18 | Purpose of the soc-camera subsystem |
19 | ----------------------------------- | 19 | ----------------------------------- |
20 | 20 | ||
21 | The soc-camera subsystem provides a unified API between camera host drivers and | 21 | The soc-camera subsystem initially provided a unified API between camera host |
22 | camera sensor drivers. It implements a V4L2 interface to the user, currently | 22 | drivers and camera sensor drivers. Later the soc-camera sensor API has been |
23 | only the mmap method is supported. | 23 | replaced with the V4L2 standard subdev API. This also made camera driver re-use |
24 | with non-soc-camera hosts possible. The camera host API to the soc-camera core | ||
25 | has been preserved. | ||
24 | 26 | ||
25 | This subsystem has been written to connect drivers for System-on-Chip (SoC) | 27 | Soc-camera implements a V4L2 interface to the user, currently only the "mmap" |
26 | video capture interfaces with drivers for CMOS camera sensor chips to enable | 28 | method is supported by host drivers. However, the soc-camera core also provides |
27 | the reuse of sensor drivers with various hosts. The subsystem has been designed | 29 | support for the "read" method. |
28 | to support multiple camera host interfaces and multiple cameras per interface, | 30 | |
29 | although most applications have only one camera sensor. | 31 | The subsystem has been designed to support multiple camera host interfaces and |
32 | multiple cameras per interface, although most applications have only one camera | ||
33 | sensor. | ||
30 | 34 | ||
31 | Existing drivers | 35 | Existing drivers |
32 | ---------------- | 36 | ---------------- |
33 | 37 | ||
34 | As of 2.6.27-rc4 there are two host drivers in the mainline: pxa_camera.c for | 38 | As of 3.7 there are seven host drivers in the mainline: atmel-isi.c, |
35 | PXA27x SoCs and sh_mobile_ceu_camera.c for SuperH SoCs, and four sensor drivers: | 39 | mx1_camera.c (broken, scheduled for removal), mx2_camera.c, mx3_camera.c, |
36 | mt9m001.c, mt9m111.c, mt9v022.c and a generic soc_camera_platform.c driver. This | 40 | omap1_camera.c, pxa_camera.c, sh_mobile_ceu_camera.c, and multiple sensor |
37 | list is not supposed to be updated, look for more examples in your tree. | 41 | drivers under drivers/media/i2c/soc_camera/. |
38 | 42 | ||
39 | Camera host API | 43 | Camera host API |
40 | --------------- | 44 | --------------- |
@@ -45,38 +49,37 @@ soc_camera_host_register(struct soc_camera_host *); | |||
45 | 49 | ||
46 | function. The host object can be initialized as follows: | 50 | function. The host object can be initialized as follows: |
47 | 51 | ||
48 | static struct soc_camera_host pxa_soc_camera_host = { | 52 | struct soc_camera_host *ici; |
49 | .drv_name = PXA_CAM_DRV_NAME, | 53 | ici->drv_name = DRV_NAME; |
50 | .ops = &pxa_soc_camera_host_ops, | 54 | ici->ops = &camera_host_ops; |
51 | }; | 55 | ici->priv = pcdev; |
56 | ici->v4l2_dev.dev = &pdev->dev; | ||
57 | ici->nr = pdev->id; | ||
52 | 58 | ||
53 | All camera host methods are passed in a struct soc_camera_host_ops: | 59 | All camera host methods are passed in a struct soc_camera_host_ops: |
54 | 60 | ||
55 | static struct soc_camera_host_ops pxa_soc_camera_host_ops = { | 61 | static struct soc_camera_host_ops camera_host_ops = { |
56 | .owner = THIS_MODULE, | 62 | .owner = THIS_MODULE, |
57 | .add = pxa_camera_add_device, | 63 | .add = camera_add_device, |
58 | .remove = pxa_camera_remove_device, | 64 | .remove = camera_remove_device, |
59 | .suspend = pxa_camera_suspend, | 65 | .set_fmt = camera_set_fmt_cap, |
60 | .resume = pxa_camera_resume, | 66 | .try_fmt = camera_try_fmt_cap, |
61 | .set_fmt_cap = pxa_camera_set_fmt_cap, | 67 | .init_videobuf2 = camera_init_videobuf2, |
62 | .try_fmt_cap = pxa_camera_try_fmt_cap, | 68 | .poll = camera_poll, |
63 | .init_videobuf = pxa_camera_init_videobuf, | 69 | .querycap = camera_querycap, |
64 | .reqbufs = pxa_camera_reqbufs, | 70 | .set_bus_param = camera_set_bus_param, |
65 | .poll = pxa_camera_poll, | 71 | /* The rest of host operations are optional */ |
66 | .querycap = pxa_camera_querycap, | ||
67 | .try_bus_param = pxa_camera_try_bus_param, | ||
68 | .set_bus_param = pxa_camera_set_bus_param, | ||
69 | }; | 72 | }; |
70 | 73 | ||
71 | .add and .remove methods are called when a sensor is attached to or detached | 74 | .add and .remove methods are called when a sensor is attached to or detached |
72 | from the host, apart from performing host-internal tasks they shall also call | 75 | from the host. .set_bus_param is used to configure physical connection |
73 | sensor driver's .init and .release methods respectively. .suspend and .resume | 76 | parameters between the host and the sensor. .init_videobuf2 is called by |
74 | methods implement host's power-management functionality and its their | 77 | soc-camera core when a video-device is opened, the host driver would typically |
75 | responsibility to call respective sensor's methods. .try_bus_param and | 78 | call vb2_queue_init() in this method. Further video-buffer management is |
76 | .set_bus_param are used to negotiate physical connection parameters between the | 79 | implemented completely by the specific camera host driver. If the host driver |
77 | host and the sensor. .init_videobuf is called by soc-camera core when a | 80 | supports non-standard pixel format conversion, it should implement a |
78 | video-device is opened, further video-buffer management is implemented completely | 81 | .get_formats and, possibly, a .put_formats operations. See below for more |
79 | by the specific camera host driver. The rest of the methods are called from | 82 | details about format conversion. The rest of the methods are called from |
80 | respective V4L2 operations. | 83 | respective V4L2 operations. |
81 | 84 | ||
82 | Camera API | 85 | Camera API |
@@ -84,37 +87,21 @@ Camera API | |||
84 | 87 | ||
85 | Sensor drivers can use struct soc_camera_link, typically provided by the | 88 | Sensor drivers can use struct soc_camera_link, typically provided by the |
86 | platform, and used to specify to which camera host bus the sensor is connected, | 89 | platform, and used to specify to which camera host bus the sensor is connected, |
87 | and arbitrarily provide platform .power and .reset methods for the camera. | 90 | and optionally provide platform .power and .reset methods for the camera. This |
88 | soc_camera_device_register() and soc_camera_device_unregister() functions are | 91 | struct is provided to the camera driver via the I2C client device platform data |
89 | used to add a sensor driver to or remove one from the system. The registration | 92 | and can be obtained, using the soc_camera_i2c_to_link() macro. Care should be |
90 | function takes a pointer to struct soc_camera_device as the only parameter. | 93 | taken, when using soc_camera_vdev_to_subdev() and when accessing struct |
91 | This struct can be initialized as follows: | 94 | soc_camera_device, using v4l2_get_subdev_hostdata(): both only work, when |
92 | 95 | running on an soc-camera host. The actual camera driver operation is implemented | |
93 | /* link to driver operations */ | 96 | using the V4L2 subdev API. Additionally soc-camera camera drivers can use |
94 | icd->ops = &mt9m001_ops; | 97 | auxiliary soc-camera helper functions like soc_camera_power_on() and |
95 | /* link to the underlying physical (e.g., i2c) device */ | 98 | soc_camera_power_off(), which switch regulators, provided by the platform and call |
96 | icd->control = &client->dev; | 99 | board-specific power switching methods. soc_camera_apply_board_flags() takes |
97 | /* window geometry */ | 100 | camera bus configuration capability flags and applies any board transformations, |
98 | icd->x_min = 20; | 101 | e.g. signal polarity inversion. soc_mbus_get_fmtdesc() can be used to obtain a |
99 | icd->y_min = 12; | 102 | pixel format descriptor, corresponding to a certain media-bus pixel format code. |
100 | icd->x_current = 20; | 103 | soc_camera_limit_side() can be used to restrict beginning and length of a frame |
101 | icd->y_current = 12; | 104 | side, based on camera capabilities. |
102 | icd->width_min = 48; | ||
103 | icd->width_max = 1280; | ||
104 | icd->height_min = 32; | ||
105 | icd->height_max = 1024; | ||
106 | icd->y_skip_top = 1; | ||
107 | /* camera bus ID, typically obtained from platform data */ | ||
108 | icd->iface = icl->bus_id; | ||
109 | |||
110 | struct soc_camera_ops provides .probe and .remove methods, which are called by | ||
111 | the soc-camera core, when a camera is matched against or removed from a camera | ||
112 | host bus, .init, .release, .suspend, and .resume are called from the camera host | ||
113 | driver as discussed above. Other members of this struct provide respective V4L2 | ||
114 | functionality. | ||
115 | |||
116 | struct soc_camera_device also links to an array of struct soc_camera_data_format, | ||
117 | listing pixel formats, supported by the camera. | ||
118 | 105 | ||
119 | VIDIOC_S_CROP and VIDIOC_S_FMT behaviour | 106 | VIDIOC_S_CROP and VIDIOC_S_FMT behaviour |
120 | ---------------------------------------- | 107 | ---------------------------------------- |
@@ -153,8 +140,25 @@ implemented. | |||
153 | User window geometry is kept in .user_width and .user_height fields in struct | 140 | User window geometry is kept in .user_width and .user_height fields in struct |
154 | soc_camera_device and used by the soc-camera core and host drivers. The core | 141 | soc_camera_device and used by the soc-camera core and host drivers. The core |
155 | updates these fields upon successful completion of a .s_fmt() call, but if these | 142 | updates these fields upon successful completion of a .s_fmt() call, but if these |
156 | fields change elsewhere, e.g., during .s_crop() processing, the host driver is | 143 | fields change elsewhere, e.g. during .s_crop() processing, the host driver is |
157 | responsible for updating them. | 144 | responsible for updating them. |
158 | 145 | ||
146 | Format conversion | ||
147 | ----------------- | ||
148 | |||
149 | V4L2 distinguishes between pixel formats, as they are stored in memory, and as | ||
150 | they are transferred over a media bus. Soc-camera provides support to | ||
151 | conveniently manage these formats. A table of standard transformations is | ||
152 | maintained by soc-camera core, which describes, what FOURCC pixel format will | ||
153 | be obtained, if a media-bus pixel format is stored in memory according to | ||
154 | certain rules. E.g. if V4L2_MBUS_FMT_YUYV8_2X8 data is sampled with 8 bits per | ||
155 | sample and stored in memory in the little-endian order with no gaps between | ||
156 | bytes, data in memory will represent the V4L2_PIX_FMT_YUYV FOURCC format. These | ||
157 | standard transformations will be used by soc-camera or by camera host drivers to | ||
158 | configure camera drivers to produce the FOURCC format, requested by the user, | ||
159 | using the VIDIOC_S_FMT ioctl(). Apart from those standard format conversions, | ||
160 | host drivers can also provide their own conversion rules by implementing a | ||
161 | .get_formats and, if required, a .put_formats methods. | ||
162 | |||
159 | -- | 163 | -- |
160 | Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 164 | Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de> |
diff --git a/Documentation/video4linux/stv680.txt b/Documentation/video4linux/stv680.txt deleted file mode 100644 index e3de33645308..000000000000 --- a/Documentation/video4linux/stv680.txt +++ /dev/null | |||
@@ -1,53 +0,0 @@ | |||
1 | Linux driver for STV0680 based USB cameras | ||
2 | |||
3 | Copyright, 2001, Kevin Sisson | ||
4 | |||
5 | |||
6 | INTRODUCTION: | ||
7 | |||
8 | STMicroelectronics produces the STV0680B chip, which comes in two | ||
9 | types, -001 and -003. The -003 version allows the recording and downloading | ||
10 | of sound clips from the camera, and allows a flash attachment. Otherwise, | ||
11 | it uses the same commands as the -001 version. Both versions support a | ||
12 | variety of SDRAM sizes and sensors, allowing for a maximum of 26 VGA or 20 | ||
13 | CIF pictures. The STV0680 supports either a serial or a usb interface, and | ||
14 | video is possible through the usb interface. | ||
15 | |||
16 | The following cameras are known to work with this driver, although any | ||
17 | camera with Vendor/Product codes of 0553/0202 should work: | ||
18 | |||
19 | Aiptek Pencam (various models) | ||
20 | Nisis QuickPix 2 | ||
21 | Radio Shack 'Kid's digital camera' (#60-1207) | ||
22 | At least one Trust Spycam model | ||
23 | Several other European brand models | ||
24 | |||
25 | WHAT YOU NEED: | ||
26 | |||
27 | - USB support | ||
28 | - VIDEO4LINUX support | ||
29 | |||
30 | More information about USB support for linux can be found at: | ||
31 | http://www.linux-usb.org | ||
32 | |||
33 | |||
34 | MODULE OPTIONS: | ||
35 | |||
36 | When the driver is compiled as a module, you can set a "swapRGB=1" | ||
37 | option, if necessary, for those applications that require it | ||
38 | (such as xawtv). However, the driver should detect and set this | ||
39 | automatically, so this option should not normally be used. | ||
40 | |||
41 | |||
42 | KNOWN PROBLEMS: | ||
43 | |||
44 | The driver seems to work better with the usb-ohci than the usb-uhci host | ||
45 | controller driver. | ||
46 | |||
47 | HELP: | ||
48 | |||
49 | The latest info on this driver can be found at: | ||
50 | http://personal.clt.bellsouth.net/~kjsisson or at | ||
51 | http://stv0680-usb.sourceforge.net | ||
52 | |||
53 | Any questions to me can be send to: kjsisson@bellsouth.net | ||
diff --git a/Documentation/video4linux/v4l2-controls.txt b/Documentation/video4linux/v4l2-controls.txt index cfe52c798d74..676f87366025 100644 --- a/Documentation/video4linux/v4l2-controls.txt +++ b/Documentation/video4linux/v4l2-controls.txt | |||
@@ -715,14 +715,20 @@ a control of this type whenever the first control belonging to a new control | |||
715 | class is added. | 715 | class is added. |
716 | 716 | ||
717 | 717 | ||
718 | Proposals for Extensions | 718 | Adding Notify Callbacks |
719 | ======================== | 719 | ======================= |
720 | |||
721 | Sometimes the platform or bridge driver needs to be notified when a control | ||
722 | from a sub-device driver changes. You can set a notify callback by calling | ||
723 | this function: | ||
720 | 724 | ||
721 | Some ideas for future extensions to the spec: | 725 | void v4l2_ctrl_notify(struct v4l2_ctrl *ctrl, |
726 | void (*notify)(struct v4l2_ctrl *ctrl, void *priv), void *priv); | ||
722 | 727 | ||
723 | 1) Add a V4L2_CTRL_FLAG_HEX to have values shown as hexadecimal instead of | 728 | Whenever the give control changes value the notify callback will be called |
724 | decimal. Useful for e.g. video_mute_yuv. | 729 | with a pointer to the control and the priv pointer that was passed with |
730 | v4l2_ctrl_notify. Note that the control's handler lock is held when the | ||
731 | notify function is called. | ||
725 | 732 | ||
726 | 2) It is possible to mark in the controls array which controls have been | 733 | There can be only one notify function per control handler. Any attempt |
727 | successfully written and which failed by for example adding a bit to the | 734 | to set another notify function will cause a WARN_ON. |
728 | control ID. Not sure if it is worth the effort, though. | ||
diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt index b89567ad04b7..a300b283a1a0 100644 --- a/Documentation/video4linux/v4l2-framework.txt +++ b/Documentation/video4linux/v4l2-framework.txt | |||
@@ -68,8 +68,7 @@ Structure of the framework | |||
68 | The framework closely resembles the driver structure: it has a v4l2_device | 68 | The framework closely resembles the driver structure: it has a v4l2_device |
69 | struct for the device instance data, a v4l2_subdev struct to refer to | 69 | struct for the device instance data, a v4l2_subdev struct to refer to |
70 | sub-device instances, the video_device struct stores V4L2 device node data | 70 | sub-device instances, the video_device struct stores V4L2 device node data |
71 | and in the future a v4l2_fh struct will keep track of filehandle instances | 71 | and the v4l2_fh struct keeps track of filehandle instances. |
72 | (this is not yet implemented). | ||
73 | 72 | ||
74 | The V4L2 framework also optionally integrates with the media framework. If a | 73 | The V4L2 framework also optionally integrates with the media framework. If a |
75 | driver sets the struct v4l2_device mdev field, sub-devices and video nodes | 74 | driver sets the struct v4l2_device mdev field, sub-devices and video nodes |
diff --git a/Documentation/video4linux/w9968cf.txt b/Documentation/video4linux/w9968cf.txt deleted file mode 100644 index 9649450f3b90..000000000000 --- a/Documentation/video4linux/w9968cf.txt +++ /dev/null | |||
@@ -1,458 +0,0 @@ | |||
1 | |||
2 | W996[87]CF JPEG USB Dual Mode Camera Chip | ||
3 | Driver for Linux 2.6 (basic version) | ||
4 | ========================================= | ||
5 | |||
6 | - Documentation - | ||
7 | |||
8 | |||
9 | Index | ||
10 | ===== | ||
11 | 1. Copyright | ||
12 | 2. Disclaimer | ||
13 | 3. License | ||
14 | 4. Overview | ||
15 | 5. Supported devices | ||
16 | 6. Module dependencies | ||
17 | 7. Module loading | ||
18 | 8. Module parameters | ||
19 | 9. Contact information | ||
20 | 10. Credits | ||
21 | |||
22 | |||
23 | 1. Copyright | ||
24 | ============ | ||
25 | Copyright (C) 2002-2004 by Luca Risolia <luca.risolia@studio.unibo.it> | ||
26 | |||
27 | |||
28 | 2. Disclaimer | ||
29 | ============= | ||
30 | Winbond is a trademark of Winbond Electronics Corporation. | ||
31 | This software is not sponsored or developed by Winbond. | ||
32 | |||
33 | |||
34 | 3. License | ||
35 | ========== | ||
36 | This program is free software; you can redistribute it and/or modify | ||
37 | it under the terms of the GNU General Public License as published by | ||
38 | the Free Software Foundation; either version 2 of the License, or | ||
39 | (at your option) any later version. | ||
40 | |||
41 | This program is distributed in the hope that it will be useful, | ||
42 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
43 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
44 | GNU General Public License for more details. | ||
45 | |||
46 | You should have received a copy of the GNU General Public License | ||
47 | along with this program; if not, write to the Free Software | ||
48 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
49 | |||
50 | |||
51 | 4. Overview | ||
52 | =========== | ||
53 | This driver supports the video streaming capabilities of the devices mounting | ||
54 | Winbond W9967CF and Winbond W9968CF JPEG USB Dual Mode Camera Chips. OV681 | ||
55 | based cameras should be supported as well. | ||
56 | |||
57 | The driver is divided into two modules: the basic one, "w9968cf", is needed for | ||
58 | the supported devices to work; the second one, "w9968cf-vpp", is an optional | ||
59 | module, which provides some useful video post-processing functions like video | ||
60 | decoding, up-scaling and colour conversions. | ||
61 | |||
62 | Note that the official kernels do neither include nor support the second | ||
63 | module for performance purposes. Therefore, it is always recommended to | ||
64 | download and install the latest and complete release of the driver, | ||
65 | replacing the existing one, if present. | ||
66 | |||
67 | The latest and full-featured version of the W996[87]CF driver can be found at: | ||
68 | http://www.linux-projects.org. Please refer to the documentation included in | ||
69 | that package, if you are going to use it. | ||
70 | |||
71 | Up to 32 cameras can be handled at the same time. They can be connected and | ||
72 | disconnected from the host many times without turning off the computer, if | ||
73 | your system supports the hotplug facility. | ||
74 | |||
75 | To change the default settings for each camera, many parameters can be passed | ||
76 | through command line when the module is loaded into memory. | ||
77 | |||
78 | The driver relies on the Video4Linux, USB and I2C core modules. It has been | ||
79 | designed to run properly on SMP systems as well. An additional module, | ||
80 | "ovcamchip", is mandatory; it provides support for some OmniVision image | ||
81 | sensors connected to the W996[87]CF chips; if found in the system, the module | ||
82 | will be automatically loaded by default (provided that the kernel has been | ||
83 | compiled with the automatic module loading option). | ||
84 | |||
85 | |||
86 | 5. Supported devices | ||
87 | ==================== | ||
88 | At the moment, known W996[87]CF and OV681 based devices are: | ||
89 | - Aroma Digi Pen VGA Dual Mode ADG-5000 (unknown image sensor) | ||
90 | - AVerMedia AVerTV USB (SAA7111A, Philips FI1216Mk2 tuner, PT2313L audio chip) | ||
91 | - Creative Labs Video Blaster WebCam Go (OmniVision OV7610 sensor) | ||
92 | - Creative Labs Video Blaster WebCam Go Plus (OmniVision OV7620 sensor) | ||
93 | - Lebon LDC-035A (unknown image sensor) | ||
94 | - Ezonics EZ-802 EZMega Cam (OmniVision OV8610C sensor) | ||
95 | - OmniVision OV8610-EDE (OmniVision OV8610 sensor) | ||
96 | - OPCOM Digi Pen VGA Dual Mode Pen Camera (unknown image sensor) | ||
97 | - Pretec Digi Pen-II (OmniVision OV7620 sensor) | ||
98 | - Pretec DigiPen-480 (OmniVision OV8610 sensor) | ||
99 | |||
100 | If you know any other W996[87]CF or OV681 based cameras, please contact me. | ||
101 | |||
102 | The list above does not imply that all those devices work with this driver: up | ||
103 | until now only webcams that have an image sensor supported by the "ovcamchip" | ||
104 | module work. Kernel messages will always tell you whether this is case. | ||
105 | |||
106 | Possible external microcontrollers of those webcams are not supported: this | ||
107 | means that still images cannot be downloaded from the device memory. | ||
108 | |||
109 | Furthermore, it's worth to note that I was only able to run tests on my | ||
110 | "Creative Labs Video Blaster WebCam Go". Donations of other models, for | ||
111 | additional testing and full support, would be much appreciated. | ||
112 | |||
113 | |||
114 | 6. Module dependencies | ||
115 | ====================== | ||
116 | For it to work properly, the driver needs kernel support for Video4Linux, USB | ||
117 | and I2C, and the "ovcamchip" module for the image sensor. Make sure you are not | ||
118 | actually using any external "ovcamchip" module, given that the W996[87]CF | ||
119 | driver depends on the version of the module present in the official kernels. | ||
120 | |||
121 | The following options of the kernel configuration file must be enabled and | ||
122 | corresponding modules must be compiled: | ||
123 | |||
124 | # Multimedia devices | ||
125 | # | ||
126 | CONFIG_VIDEO_DEV=m | ||
127 | |||
128 | # I2C support | ||
129 | # | ||
130 | CONFIG_I2C=m | ||
131 | |||
132 | The I2C core module can be compiled statically in the kernel as well. | ||
133 | |||
134 | # OmniVision Camera Chip support | ||
135 | # | ||
136 | CONFIG_VIDEO_OVCAMCHIP=m | ||
137 | |||
138 | # USB support | ||
139 | # | ||
140 | CONFIG_USB=m | ||
141 | |||
142 | In addition, depending on the hardware being used, only one of the modules | ||
143 | below is necessary: | ||
144 | |||
145 | # USB Host Controller Drivers | ||
146 | # | ||
147 | CONFIG_USB_EHCI_HCD=m | ||
148 | CONFIG_USB_UHCI_HCD=m | ||
149 | CONFIG_USB_OHCI_HCD=m | ||
150 | |||
151 | And finally: | ||
152 | |||
153 | # USB Multimedia devices | ||
154 | # | ||
155 | CONFIG_USB_W9968CF=m | ||
156 | |||
157 | |||
158 | 7. Module loading | ||
159 | ================= | ||
160 | To use the driver, it is necessary to load the "w9968cf" module into memory | ||
161 | after every other module required. | ||
162 | |||
163 | Loading can be done this way, from root: | ||
164 | |||
165 | [root@localhost home]# modprobe usbcore | ||
166 | [root@localhost home]# modprobe i2c-core | ||
167 | [root@localhost home]# modprobe videodev | ||
168 | [root@localhost home]# modprobe w9968cf | ||
169 | |||
170 | At this point the pertinent devices should be recognized: "dmesg" can be used | ||
171 | to analyze kernel messages: | ||
172 | |||
173 | [user@localhost home]$ dmesg | ||
174 | |||
175 | There are a lot of parameters the module can use to change the default | ||
176 | settings for each device. To list every possible parameter with a brief | ||
177 | explanation about them and which syntax to use, it is recommended to run the | ||
178 | "modinfo" command: | ||
179 | |||
180 | [root@locahost home]# modinfo w9968cf | ||
181 | |||
182 | |||
183 | 8. Module parameters | ||
184 | ==================== | ||
185 | Module parameters are listed below: | ||
186 | ------------------------------------------------------------------------------- | ||
187 | Name: ovmod_load | ||
188 | Type: bool | ||
189 | Syntax: <0|1> | ||
190 | Description: Automatic 'ovcamchip' module loading: 0 disabled, 1 enabled. | ||
191 | If enabled, 'insmod' searches for the required 'ovcamchip' | ||
192 | module in the system, according to its configuration, and | ||
193 | loads that module automatically. This action is performed as | ||
194 | once soon as the 'w9968cf' module is loaded into memory. | ||
195 | Default: 1 | ||
196 | ------------------------------------------------------------------------------- | ||
197 | Name: simcams | ||
198 | Type: int | ||
199 | Syntax: <n> | ||
200 | Description: Number of cameras allowed to stream simultaneously. | ||
201 | n may vary from 0 to 32. | ||
202 | Default: 32 | ||
203 | ------------------------------------------------------------------------------- | ||
204 | Name: video_nr | ||
205 | Type: int array (min = 0, max = 32) | ||
206 | Syntax: <-1|n[,...]> | ||
207 | Description: Specify V4L minor mode number. | ||
208 | -1 = use next available | ||
209 | n = use minor number n | ||
210 | You can specify up to 32 cameras this way. | ||
211 | For example: | ||
212 | video_nr=-1,2,-1 would assign minor number 2 to the second | ||
213 | recognized camera and use auto for the first one and for every | ||
214 | other camera. | ||
215 | Default: -1 | ||
216 | ------------------------------------------------------------------------------- | ||
217 | Name: packet_size | ||
218 | Type: int array (min = 0, max = 32) | ||
219 | Syntax: <n[,...]> | ||
220 | Description: Specify the maximum data payload size in bytes for alternate | ||
221 | settings, for each device. n is scaled between 63 and 1023. | ||
222 | Default: 1023 | ||
223 | ------------------------------------------------------------------------------- | ||
224 | Name: max_buffers | ||
225 | Type: int array (min = 0, max = 32) | ||
226 | Syntax: <n[,...]> | ||
227 | Description: For advanced users. | ||
228 | Specify the maximum number of video frame buffers to allocate | ||
229 | for each device, from 2 to 32. | ||
230 | Default: 2 | ||
231 | ------------------------------------------------------------------------------- | ||
232 | Name: double_buffer | ||
233 | Type: bool array (min = 0, max = 32) | ||
234 | Syntax: <0|1[,...]> | ||
235 | Description: Hardware double buffering: 0 disabled, 1 enabled. | ||
236 | It should be enabled if you want smooth video output: if you | ||
237 | obtain out of sync. video, disable it, or try to | ||
238 | decrease the 'clockdiv' module parameter value. | ||
239 | Default: 1 for every device. | ||
240 | ------------------------------------------------------------------------------- | ||
241 | Name: clamping | ||
242 | Type: bool array (min = 0, max = 32) | ||
243 | Syntax: <0|1[,...]> | ||
244 | Description: Video data clamping: 0 disabled, 1 enabled. | ||
245 | Default: 0 for every device. | ||
246 | ------------------------------------------------------------------------------- | ||
247 | Name: filter_type | ||
248 | Type: int array (min = 0, max = 32) | ||
249 | Syntax: <0|1|2[,...]> | ||
250 | Description: Video filter type. | ||
251 | 0 none, 1 (1-2-1) 3-tap filter, 2 (2-3-6-3-2) 5-tap filter. | ||
252 | The filter is used to reduce noise and aliasing artifacts | ||
253 | produced by the CCD or CMOS image sensor. | ||
254 | Default: 0 for every device. | ||
255 | ------------------------------------------------------------------------------- | ||
256 | Name: largeview | ||
257 | Type: bool array (min = 0, max = 32) | ||
258 | Syntax: <0|1[,...]> | ||
259 | Description: Large view: 0 disabled, 1 enabled. | ||
260 | Default: 1 for every device. | ||
261 | ------------------------------------------------------------------------------- | ||
262 | Name: upscaling | ||
263 | Type: bool array (min = 0, max = 32) | ||
264 | Syntax: <0|1[,...]> | ||
265 | Description: Software scaling (for non-compressed video only): | ||
266 | 0 disabled, 1 enabled. | ||
267 | Disable it if you have a slow CPU or you don't have enough | ||
268 | memory. | ||
269 | Default: 0 for every device. | ||
270 | Note: If 'w9968cf-vpp' is not present, this parameter is set to 0. | ||
271 | ------------------------------------------------------------------------------- | ||
272 | Name: decompression | ||
273 | Type: int array (min = 0, max = 32) | ||
274 | Syntax: <0|1|2[,...]> | ||
275 | Description: Software video decompression: | ||
276 | 0 = disables decompression | ||
277 | (doesn't allow formats needing decompression). | ||
278 | 1 = forces decompression | ||
279 | (allows formats needing decompression only). | ||
280 | 2 = allows any permitted formats. | ||
281 | Formats supporting (de)compressed video are YUV422P and | ||
282 | YUV420P/YUV420 in any resolutions where width and height are | ||
283 | multiples of 16. | ||
284 | Default: 2 for every device. | ||
285 | Note: If 'w9968cf-vpp' is not present, forcing decompression is not | ||
286 | allowed; in this case this parameter is set to 2. | ||
287 | ------------------------------------------------------------------------------- | ||
288 | Name: force_palette | ||
289 | Type: int array (min = 0, max = 32) | ||
290 | Syntax: <0|9|10|13|15|8|7|1|6|3|4|5[,...]> | ||
291 | Description: Force picture palette. | ||
292 | In order: | ||
293 | 0 = Off - allows any of the following formats: | ||
294 | 9 = UYVY 16 bpp - Original video, compression disabled | ||
295 | 10 = YUV420 12 bpp - Original video, compression enabled | ||
296 | 13 = YUV422P 16 bpp - Original video, compression enabled | ||
297 | 15 = YUV420P 12 bpp - Original video, compression enabled | ||
298 | 8 = YUVY 16 bpp - Software conversion from UYVY | ||
299 | 7 = YUV422 16 bpp - Software conversion from UYVY | ||
300 | 1 = GREY 8 bpp - Software conversion from UYVY | ||
301 | 6 = RGB555 16 bpp - Software conversion from UYVY | ||
302 | 3 = RGB565 16 bpp - Software conversion from UYVY | ||
303 | 4 = RGB24 24 bpp - Software conversion from UYVY | ||
304 | 5 = RGB32 32 bpp - Software conversion from UYVY | ||
305 | When not 0, this parameter will override 'decompression'. | ||
306 | Default: 0 for every device. Initial palette is 9 (UYVY). | ||
307 | Note: If 'w9968cf-vpp' is not present, this parameter is set to 9. | ||
308 | ------------------------------------------------------------------------------- | ||
309 | Name: force_rgb | ||
310 | Type: bool array (min = 0, max = 32) | ||
311 | Syntax: <0|1[,...]> | ||
312 | Description: Read RGB video data instead of BGR: | ||
313 | 1 = use RGB component ordering. | ||
314 | 0 = use BGR component ordering. | ||
315 | This parameter has effect when using RGBX palettes only. | ||
316 | Default: 0 for every device. | ||
317 | ------------------------------------------------------------------------------- | ||
318 | Name: autobright | ||
319 | Type: bool array (min = 0, max = 32) | ||
320 | Syntax: <0|1[,...]> | ||
321 | Description: Image sensor automatically changes brightness: | ||
322 | 0 = no, 1 = yes | ||
323 | Default: 0 for every device. | ||
324 | ------------------------------------------------------------------------------- | ||
325 | Name: autoexp | ||
326 | Type: bool array (min = 0, max = 32) | ||
327 | Syntax: <0|1[,...]> | ||
328 | Description: Image sensor automatically changes exposure: | ||
329 | 0 = no, 1 = yes | ||
330 | Default: 1 for every device. | ||
331 | ------------------------------------------------------------------------------- | ||
332 | Name: lightfreq | ||
333 | Type: int array (min = 0, max = 32) | ||
334 | Syntax: <50|60[,...]> | ||
335 | Description: Light frequency in Hz: | ||
336 | 50 for European and Asian lighting, 60 for American lighting. | ||
337 | Default: 50 for every device. | ||
338 | ------------------------------------------------------------------------------- | ||
339 | Name: bandingfilter | ||
340 | Type: bool array (min = 0, max = 32) | ||
341 | Syntax: <0|1[,...]> | ||
342 | Description: Banding filter to reduce effects of fluorescent | ||
343 | lighting: | ||
344 | 0 disabled, 1 enabled. | ||
345 | This filter tries to reduce the pattern of horizontal | ||
346 | light/dark bands caused by some (usually fluorescent) lighting. | ||
347 | Default: 0 for every device. | ||
348 | ------------------------------------------------------------------------------- | ||
349 | Name: clockdiv | ||
350 | Type: int array (min = 0, max = 32) | ||
351 | Syntax: <-1|n[,...]> | ||
352 | Description: Force pixel clock divisor to a specific value (for experts): | ||
353 | n may vary from 0 to 127. | ||
354 | -1 for automatic value. | ||
355 | See also the 'double_buffer' module parameter. | ||
356 | Default: -1 for every device. | ||
357 | ------------------------------------------------------------------------------- | ||
358 | Name: backlight | ||
359 | Type: bool array (min = 0, max = 32) | ||
360 | Syntax: <0|1[,...]> | ||
361 | Description: Objects are lit from behind: | ||
362 | 0 = no, 1 = yes | ||
363 | Default: 0 for every device. | ||
364 | ------------------------------------------------------------------------------- | ||
365 | Name: mirror | ||
366 | Type: bool array (min = 0, max = 32) | ||
367 | Syntax: <0|1[,...]> | ||
368 | Description: Reverse image horizontally: | ||
369 | 0 = no, 1 = yes | ||
370 | Default: 0 for every device. | ||
371 | ------------------------------------------------------------------------------- | ||
372 | Name: monochrome | ||
373 | Type: bool array (min = 0, max = 32) | ||
374 | Syntax: <0|1[,...]> | ||
375 | Description: The image sensor is monochrome: | ||
376 | 0 = no, 1 = yes | ||
377 | Default: 0 for every device. | ||
378 | ------------------------------------------------------------------------------- | ||
379 | Name: brightness | ||
380 | Type: long array (min = 0, max = 32) | ||
381 | Syntax: <n[,...]> | ||
382 | Description: Set picture brightness (0-65535). | ||
383 | This parameter has no effect if 'autobright' is enabled. | ||
384 | Default: 31000 for every device. | ||
385 | ------------------------------------------------------------------------------- | ||
386 | Name: hue | ||
387 | Type: long array (min = 0, max = 32) | ||
388 | Syntax: <n[,...]> | ||
389 | Description: Set picture hue (0-65535). | ||
390 | Default: 32768 for every device. | ||
391 | ------------------------------------------------------------------------------- | ||
392 | Name: colour | ||
393 | Type: long array (min = 0, max = 32) | ||
394 | Syntax: <n[,...]> | ||
395 | Description: Set picture saturation (0-65535). | ||
396 | Default: 32768 for every device. | ||
397 | ------------------------------------------------------------------------------- | ||
398 | Name: contrast | ||
399 | Type: long array (min = 0, max = 32) | ||
400 | Syntax: <n[,...]> | ||
401 | Description: Set picture contrast (0-65535). | ||
402 | Default: 50000 for every device. | ||
403 | ------------------------------------------------------------------------------- | ||
404 | Name: whiteness | ||
405 | Type: long array (min = 0, max = 32) | ||
406 | Syntax: <n[,...]> | ||
407 | Description: Set picture whiteness (0-65535). | ||
408 | Default: 32768 for every device. | ||
409 | ------------------------------------------------------------------------------- | ||
410 | Name: debug | ||
411 | Type: int | ||
412 | Syntax: <n> | ||
413 | Description: Debugging information level, from 0 to 6: | ||
414 | 0 = none (use carefully) | ||
415 | 1 = critical errors | ||
416 | 2 = significant information | ||
417 | 3 = configuration or general messages | ||
418 | 4 = warnings | ||
419 | 5 = called functions | ||
420 | 6 = function internals | ||
421 | Level 5 and 6 are useful for testing only, when only one | ||
422 | device is used. | ||
423 | Default: 2 | ||
424 | ------------------------------------------------------------------------------- | ||
425 | Name: specific_debug | ||
426 | Type: bool | ||
427 | Syntax: <0|1> | ||
428 | Description: Enable or disable specific debugging messages: | ||
429 | 0 = print messages concerning every level <= 'debug' level. | ||
430 | 1 = print messages concerning the level indicated by 'debug'. | ||
431 | Default: 0 | ||
432 | ------------------------------------------------------------------------------- | ||
433 | |||
434 | |||
435 | 9. Contact information | ||
436 | ====================== | ||
437 | I may be contacted by e-mail at <luca.risolia@studio.unibo.it>. | ||
438 | |||
439 | I can accept GPG/PGP encrypted e-mail. My GPG key ID is 'FCE635A4'. | ||
440 | My public 1024-bit key should be available at your keyserver; the fingerprint | ||
441 | is: '88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4'. | ||
442 | |||
443 | |||
444 | 10. Credits | ||
445 | ========== | ||
446 | The development would not have proceed much further without having looked at | ||
447 | the source code of other drivers and without the help of several persons; in | ||
448 | particular: | ||
449 | |||
450 | - the I2C interface to kernel and high-level image sensor control routines have | ||
451 | been taken from the OV511 driver by Mark McClelland; | ||
452 | |||
453 | - memory management code has been copied from the bttv driver by Ralph Metzler, | ||
454 | Marcus Metzler and Gerd Knorr; | ||
455 | |||
456 | - the low-level I2C read function has been written by Frederic Jouault; | ||
457 | |||
458 | - the low-level I2C fast write function has been written by Piotr Czerczak. | ||
diff --git a/Documentation/video4linux/zc0301.txt b/Documentation/video4linux/zc0301.txt deleted file mode 100644 index b41c83cf09f4..000000000000 --- a/Documentation/video4linux/zc0301.txt +++ /dev/null | |||
@@ -1,270 +0,0 @@ | |||
1 | |||
2 | ZC0301 and ZC0301P Image Processor and Control Chip | ||
3 | Driver for Linux | ||
4 | =================================================== | ||
5 | |||
6 | - Documentation - | ||
7 | |||
8 | |||
9 | Index | ||
10 | ===== | ||
11 | 1. Copyright | ||
12 | 2. Disclaimer | ||
13 | 3. License | ||
14 | 4. Overview and features | ||
15 | 5. Module dependencies | ||
16 | 6. Module loading | ||
17 | 7. Module parameters | ||
18 | 8. Supported devices | ||
19 | 9. Notes for V4L2 application developers | ||
20 | 10. Contact information | ||
21 | 11. Credits | ||
22 | |||
23 | |||
24 | 1. Copyright | ||
25 | ============ | ||
26 | Copyright (C) 2006-2007 by Luca Risolia <luca.risolia@studio.unibo.it> | ||
27 | |||
28 | |||
29 | 2. Disclaimer | ||
30 | ============= | ||
31 | This software is not developed or sponsored by Z-Star Microelectronics Corp. | ||
32 | Trademarks are property of their respective owner. | ||
33 | |||
34 | |||
35 | 3. License | ||
36 | ========== | ||
37 | This program is free software; you can redistribute it and/or modify | ||
38 | it under the terms of the GNU General Public License as published by | ||
39 | the Free Software Foundation; either version 2 of the License, or | ||
40 | (at your option) any later version. | ||
41 | |||
42 | This program is distributed in the hope that it will be useful, | ||
43 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
44 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
45 | GNU General Public License for more details. | ||
46 | |||
47 | You should have received a copy of the GNU General Public License | ||
48 | along with this program; if not, write to the Free Software | ||
49 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
50 | |||
51 | |||
52 | 4. Overview and features | ||
53 | ======================== | ||
54 | This driver supports the video interface of the devices mounting the ZC0301 or | ||
55 | ZC0301P Image Processors and Control Chips. | ||
56 | |||
57 | The driver relies on the Video4Linux2 and USB core modules. It has been | ||
58 | designed to run properly on SMP systems as well. | ||
59 | |||
60 | The latest version of the ZC0301[P] driver can be found at the following URL: | ||
61 | http://www.linux-projects.org/ | ||
62 | |||
63 | Some of the features of the driver are: | ||
64 | |||
65 | - full compliance with the Video4Linux2 API (see also "Notes for V4L2 | ||
66 | application developers" paragraph); | ||
67 | - available mmap or read/poll methods for video streaming through isochronous | ||
68 | data transfers; | ||
69 | - automatic detection of image sensor; | ||
70 | - video format is standard JPEG; | ||
71 | - dynamic driver control thanks to various module parameters (see "Module | ||
72 | parameters" paragraph); | ||
73 | - up to 64 cameras can be handled at the same time; they can be connected and | ||
74 | disconnected from the host many times without turning off the computer, if | ||
75 | the system supports hotplugging; | ||
76 | |||
77 | |||
78 | 5. Module dependencies | ||
79 | ====================== | ||
80 | For it to work properly, the driver needs kernel support for Video4Linux and | ||
81 | USB. | ||
82 | |||
83 | The following options of the kernel configuration file must be enabled and | ||
84 | corresponding modules must be compiled: | ||
85 | |||
86 | # Multimedia devices | ||
87 | # | ||
88 | CONFIG_VIDEO_DEV=m | ||
89 | |||
90 | # USB support | ||
91 | # | ||
92 | CONFIG_USB=m | ||
93 | |||
94 | In addition, depending on the hardware being used, the modules below are | ||
95 | necessary: | ||
96 | |||
97 | # USB Host Controller Drivers | ||
98 | # | ||
99 | CONFIG_USB_EHCI_HCD=m | ||
100 | CONFIG_USB_UHCI_HCD=m | ||
101 | CONFIG_USB_OHCI_HCD=m | ||
102 | |||
103 | The ZC0301 controller also provides a built-in microphone interface. It is | ||
104 | supported by the USB Audio driver thanks to the ALSA API: | ||
105 | |||
106 | # Sound | ||
107 | # | ||
108 | CONFIG_SOUND=y | ||
109 | |||
110 | # Advanced Linux Sound Architecture | ||
111 | # | ||
112 | CONFIG_SND=m | ||
113 | |||
114 | # USB devices | ||
115 | # | ||
116 | CONFIG_SND_USB_AUDIO=m | ||
117 | |||
118 | And finally: | ||
119 | |||
120 | # V4L USB devices | ||
121 | # | ||
122 | CONFIG_USB_ZC0301=m | ||
123 | |||
124 | |||
125 | 6. Module loading | ||
126 | ================= | ||
127 | To use the driver, it is necessary to load the "zc0301" module into memory | ||
128 | after every other module required: "videodev", "v4l2_common", "compat_ioctl32", | ||
129 | "usbcore" and, depending on the USB host controller you have, "ehci-hcd", | ||
130 | "uhci-hcd" or "ohci-hcd". | ||
131 | |||
132 | Loading can be done as shown below: | ||
133 | |||
134 | [root@localhost home]# modprobe zc0301 | ||
135 | |||
136 | At this point the devices should be recognized. You can invoke "dmesg" to | ||
137 | analyze kernel messages and verify that the loading process has gone well: | ||
138 | |||
139 | [user@localhost home]$ dmesg | ||
140 | |||
141 | |||
142 | 7. Module parameters | ||
143 | ==================== | ||
144 | Module parameters are listed below: | ||
145 | ------------------------------------------------------------------------------- | ||
146 | Name: video_nr | ||
147 | Type: short array (min = 0, max = 64) | ||
148 | Syntax: <-1|n[,...]> | ||
149 | Description: Specify V4L2 minor mode number: | ||
150 | -1 = use next available | ||
151 | n = use minor number n | ||
152 | You can specify up to 64 cameras this way. | ||
153 | For example: | ||
154 | video_nr=-1,2,-1 would assign minor number 2 to the second | ||
155 | registered camera and use auto for the first one and for every | ||
156 | other camera. | ||
157 | Default: -1 | ||
158 | ------------------------------------------------------------------------------- | ||
159 | Name: force_munmap | ||
160 | Type: bool array (min = 0, max = 64) | ||
161 | Syntax: <0|1[,...]> | ||
162 | Description: Force the application to unmap previously mapped buffer memory | ||
163 | before calling any VIDIOC_S_CROP or VIDIOC_S_FMT ioctl's. Not | ||
164 | all the applications support this feature. This parameter is | ||
165 | specific for each detected camera. | ||
166 | 0 = do not force memory unmapping | ||
167 | 1 = force memory unmapping (save memory) | ||
168 | Default: 0 | ||
169 | ------------------------------------------------------------------------------- | ||
170 | Name: frame_timeout | ||
171 | Type: uint array (min = 0, max = 64) | ||
172 | Syntax: <n[,...]> | ||
173 | Description: Timeout for a video frame in seconds. This parameter is | ||
174 | specific for each detected camera. This parameter can be | ||
175 | changed at runtime thanks to the /sys filesystem interface. | ||
176 | Default: 2 | ||
177 | ------------------------------------------------------------------------------- | ||
178 | Name: debug | ||
179 | Type: ushort | ||
180 | Syntax: <n> | ||
181 | Description: Debugging information level, from 0 to 3: | ||
182 | 0 = none (use carefully) | ||
183 | 1 = critical errors | ||
184 | 2 = significant information | ||
185 | 3 = more verbose messages | ||
186 | Level 3 is useful for testing only, when only one device | ||
187 | is used at the same time. It also shows some information | ||
188 | about the hardware being detected. This module parameter can be | ||
189 | changed at runtime thanks to the /sys filesystem interface. | ||
190 | Default: 2 | ||
191 | ------------------------------------------------------------------------------- | ||
192 | |||
193 | |||
194 | 8. Supported devices | ||
195 | ==================== | ||
196 | None of the names of the companies as well as their products will be mentioned | ||
197 | here. They have never collaborated with the author, so no advertising. | ||
198 | |||
199 | From the point of view of a driver, what unambiguously identify a device are | ||
200 | its vendor and product USB identifiers. Below is a list of known identifiers of | ||
201 | devices mounting the ZC0301 Image Processor and Control Chips: | ||
202 | |||
203 | Vendor ID Product ID | ||
204 | --------- ---------- | ||
205 | 0x041e 0x4017 | ||
206 | 0x041e 0x401c | ||
207 | 0x041e 0x401e | ||
208 | 0x041e 0x401f | ||
209 | 0x041e 0x4022 | ||
210 | 0x041e 0x4034 | ||
211 | 0x041e 0x4035 | ||
212 | 0x041e 0x4036 | ||
213 | 0x041e 0x403a | ||
214 | 0x0458 0x7007 | ||
215 | 0x0458 0x700c | ||
216 | 0x0458 0x700f | ||
217 | 0x046d 0x08ae | ||
218 | 0x055f 0xd003 | ||
219 | 0x055f 0xd004 | ||
220 | 0x0ac8 0x0301 | ||
221 | 0x0ac8 0x301b | ||
222 | 0x0ac8 0x303b | ||
223 | 0x10fd 0x0128 | ||
224 | 0x10fd 0x8050 | ||
225 | 0x10fd 0x804e | ||
226 | |||
227 | The list above does not imply that all those devices work with this driver: up | ||
228 | until now only the ones that mount the following image sensors are supported; | ||
229 | kernel messages will always tell you whether this is the case: | ||
230 | |||
231 | Model Manufacturer | ||
232 | ----- ------------ | ||
233 | PAS202BCB PixArt Imaging, Inc. | ||
234 | PB-0330 Photobit Corporation | ||
235 | |||
236 | |||
237 | 9. Notes for V4L2 application developers | ||
238 | ======================================== | ||
239 | This driver follows the V4L2 API specifications. In particular, it enforces two | ||
240 | rules: | ||
241 | |||
242 | - exactly one I/O method, either "mmap" or "read", is associated with each | ||
243 | file descriptor. Once it is selected, the application must close and reopen the | ||
244 | device to switch to the other I/O method; | ||
245 | |||
246 | - although it is not mandatory, previously mapped buffer memory should always | ||
247 | be unmapped before calling any "VIDIOC_S_CROP" or "VIDIOC_S_FMT" ioctl's. | ||
248 | The same number of buffers as before will be allocated again to match the size | ||
249 | of the new video frames, so you have to map the buffers again before any I/O | ||
250 | attempts on them. | ||
251 | |||
252 | |||
253 | 10. Contact information | ||
254 | ======================= | ||
255 | The author may be contacted by e-mail at <luca.risolia@studio.unibo.it>. | ||
256 | |||
257 | GPG/PGP encrypted e-mail's are accepted. The GPG key ID of the author is | ||
258 | 'FCE635A4'; the public 1024-bit key should be available at any keyserver; | ||
259 | the fingerprint is: '88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4'. | ||
260 | |||
261 | |||
262 | 11. Credits | ||
263 | =========== | ||
264 | - Information about the chip internals needed to enable the I2C protocol have | ||
265 | been taken from the documentation of the ZC030x Video4Linux1 driver written | ||
266 | by Andrew Birkett <andy@nobugs.org>; | ||
267 | - The initialization values of the ZC0301 controller connected to the PAS202BCB | ||
268 | and PB-0330 image sensors have been taken from the SPCA5XX driver maintained | ||
269 | by Michel Xhaard <mxhaard@magic.fr>; | ||
270 | - Stanislav Lechev donated one camera. | ||
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index a4df5535996b..119358dfb742 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
@@ -219,19 +219,6 @@ allocation of vcpu ids. For example, if userspace wants | |||
219 | single-threaded guest vcpus, it should make all vcpu ids be a multiple | 219 | single-threaded guest vcpus, it should make all vcpu ids be a multiple |
220 | of the number of vcpus per vcore. | 220 | of the number of vcpus per vcore. |
221 | 221 | ||
222 | On powerpc using book3s_hv mode, the vcpus are mapped onto virtual | ||
223 | threads in one or more virtual CPU cores. (This is because the | ||
224 | hardware requires all the hardware threads in a CPU core to be in the | ||
225 | same partition.) The KVM_CAP_PPC_SMT capability indicates the number | ||
226 | of vcpus per virtual core (vcore). The vcore id is obtained by | ||
227 | dividing the vcpu id by the number of vcpus per vcore. The vcpus in a | ||
228 | given vcore will always be in the same physical core as each other | ||
229 | (though that might be a different physical core from time to time). | ||
230 | Userspace can control the threading (SMT) mode of the guest by its | ||
231 | allocation of vcpu ids. For example, if userspace wants | ||
232 | single-threaded guest vcpus, it should make all vcpu ids be a multiple | ||
233 | of the number of vcpus per vcore. | ||
234 | |||
235 | For virtual cpus that have been created with S390 user controlled virtual | 222 | For virtual cpus that have been created with S390 user controlled virtual |
236 | machines, the resulting vcpu fd can be memory mapped at page offset | 223 | machines, the resulting vcpu fd can be memory mapped at page offset |
237 | KVM_S390_SIE_PAGE_OFFSET in order to obtain a memory map of the virtual | 224 | KVM_S390_SIE_PAGE_OFFSET in order to obtain a memory map of the virtual |
@@ -293,7 +280,7 @@ kvm_run' (see below). | |||
293 | 4.11 KVM_GET_REGS | 280 | 4.11 KVM_GET_REGS |
294 | 281 | ||
295 | Capability: basic | 282 | Capability: basic |
296 | Architectures: all | 283 | Architectures: all except ARM |
297 | Type: vcpu ioctl | 284 | Type: vcpu ioctl |
298 | Parameters: struct kvm_regs (out) | 285 | Parameters: struct kvm_regs (out) |
299 | Returns: 0 on success, -1 on error | 286 | Returns: 0 on success, -1 on error |
@@ -314,7 +301,7 @@ struct kvm_regs { | |||
314 | 4.12 KVM_SET_REGS | 301 | 4.12 KVM_SET_REGS |
315 | 302 | ||
316 | Capability: basic | 303 | Capability: basic |
317 | Architectures: all | 304 | Architectures: all except ARM |
318 | Type: vcpu ioctl | 305 | Type: vcpu ioctl |
319 | Parameters: struct kvm_regs (in) | 306 | Parameters: struct kvm_regs (in) |
320 | Returns: 0 on success, -1 on error | 307 | Returns: 0 on success, -1 on error |
@@ -345,7 +332,7 @@ struct kvm_sregs { | |||
345 | __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; | 332 | __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; |
346 | }; | 333 | }; |
347 | 334 | ||
348 | /* ppc -- see arch/powerpc/include/asm/kvm.h */ | 335 | /* ppc -- see arch/powerpc/include/uapi/asm/kvm.h */ |
349 | 336 | ||
350 | interrupt_bitmap is a bitmap of pending external interrupts. At most | 337 | interrupt_bitmap is a bitmap of pending external interrupts. At most |
351 | one bit may be set. This interrupt has been acknowledged by the APIC | 338 | one bit may be set. This interrupt has been acknowledged by the APIC |
@@ -600,7 +587,7 @@ struct kvm_fpu { | |||
600 | 4.24 KVM_CREATE_IRQCHIP | 587 | 4.24 KVM_CREATE_IRQCHIP |
601 | 588 | ||
602 | Capability: KVM_CAP_IRQCHIP | 589 | Capability: KVM_CAP_IRQCHIP |
603 | Architectures: x86, ia64 | 590 | Architectures: x86, ia64, ARM |
604 | Type: vm ioctl | 591 | Type: vm ioctl |
605 | Parameters: none | 592 | Parameters: none |
606 | Returns: 0 on success, -1 on error | 593 | Returns: 0 on success, -1 on error |
@@ -608,21 +595,39 @@ Returns: 0 on success, -1 on error | |||
608 | Creates an interrupt controller model in the kernel. On x86, creates a virtual | 595 | Creates an interrupt controller model in the kernel. On x86, creates a virtual |
609 | ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a | 596 | ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a |
610 | local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 | 597 | local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 |
611 | only go to the IOAPIC. On ia64, a IOSAPIC is created. | 598 | only go to the IOAPIC. On ia64, a IOSAPIC is created. On ARM, a GIC is |
599 | created. | ||
612 | 600 | ||
613 | 601 | ||
614 | 4.25 KVM_IRQ_LINE | 602 | 4.25 KVM_IRQ_LINE |
615 | 603 | ||
616 | Capability: KVM_CAP_IRQCHIP | 604 | Capability: KVM_CAP_IRQCHIP |
617 | Architectures: x86, ia64 | 605 | Architectures: x86, ia64, arm |
618 | Type: vm ioctl | 606 | Type: vm ioctl |
619 | Parameters: struct kvm_irq_level | 607 | Parameters: struct kvm_irq_level |
620 | Returns: 0 on success, -1 on error | 608 | Returns: 0 on success, -1 on error |
621 | 609 | ||
622 | Sets the level of a GSI input to the interrupt controller model in the kernel. | 610 | Sets the level of a GSI input to the interrupt controller model in the kernel. |
623 | Requires that an interrupt controller model has been previously created with | 611 | On some architectures it is required that an interrupt controller model has |
624 | KVM_CREATE_IRQCHIP. Note that edge-triggered interrupts require the level | 612 | been previously created with KVM_CREATE_IRQCHIP. Note that edge-triggered |
625 | to be set to 1 and then back to 0. | 613 | interrupts require the level to be set to 1 and then back to 0. |
614 | |||
615 | ARM can signal an interrupt either at the CPU level, or at the in-kernel irqchip | ||
616 | (GIC), and for in-kernel irqchip can tell the GIC to use PPIs designated for | ||
617 | specific cpus. The irq field is interpreted like this: | ||
618 | |||
619 | bits: | 31 ... 24 | 23 ... 16 | 15 ... 0 | | ||
620 | field: | irq_type | vcpu_index | irq_id | | ||
621 | |||
622 | The irq_type field has the following values: | ||
623 | - irq_type[0]: out-of-kernel GIC: irq_id 0 is IRQ, irq_id 1 is FIQ | ||
624 | - irq_type[1]: in-kernel GIC: SPI, irq_id between 32 and 1019 (incl.) | ||
625 | (the vcpu_index field is ignored) | ||
626 | - irq_type[2]: in-kernel GIC: PPI, irq_id between 16 and 31 (incl.) | ||
627 | |||
628 | (The irq_id field thus corresponds nicely to the IRQ ID in the ARM GIC specs) | ||
629 | |||
630 | In both cases, level is used to raise/lower the line. | ||
626 | 631 | ||
627 | struct kvm_irq_level { | 632 | struct kvm_irq_level { |
628 | union { | 633 | union { |
@@ -874,12 +879,12 @@ It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr | |||
874 | be identical. This allows large pages in the guest to be backed by large | 879 | be identical. This allows large pages in the guest to be backed by large |
875 | pages in the host. | 880 | pages in the host. |
876 | 881 | ||
877 | The flags field supports two flag, KVM_MEM_LOG_DIRTY_PAGES, which instructs | 882 | The flags field supports two flags: KVM_MEM_LOG_DIRTY_PAGES and |
878 | kvm to keep track of writes to memory within the slot. See KVM_GET_DIRTY_LOG | 883 | KVM_MEM_READONLY. The former can be set to instruct KVM to keep track of |
879 | ioctl. The KVM_CAP_READONLY_MEM capability indicates the availability of the | 884 | writes to memory within the slot. See KVM_GET_DIRTY_LOG ioctl to know how to |
880 | KVM_MEM_READONLY flag. When this flag is set for a memory region, KVM only | 885 | use it. The latter can be set, if KVM_CAP_READONLY_MEM capability allows it, |
881 | allows read accesses. Writes will be posted to userspace as KVM_EXIT_MMIO | 886 | to make a new slot read-only. In this case, writes to this memory will be |
882 | exits. | 887 | posted to userspace as KVM_EXIT_MMIO exits. |
883 | 888 | ||
884 | When the KVM_CAP_SYNC_MMU capability is available, changes in the backing of | 889 | When the KVM_CAP_SYNC_MMU capability is available, changes in the backing of |
885 | the memory region are automatically reflected into the guest. For example, an | 890 | the memory region are automatically reflected into the guest. For example, an |
@@ -913,7 +918,7 @@ documentation when it pops into existence). | |||
913 | 4.37 KVM_ENABLE_CAP | 918 | 4.37 KVM_ENABLE_CAP |
914 | 919 | ||
915 | Capability: KVM_CAP_ENABLE_CAP | 920 | Capability: KVM_CAP_ENABLE_CAP |
916 | Architectures: ppc | 921 | Architectures: ppc, s390 |
917 | Type: vcpu ioctl | 922 | Type: vcpu ioctl |
918 | Parameters: struct kvm_enable_cap (in) | 923 | Parameters: struct kvm_enable_cap (in) |
919 | Returns: 0 on success; -1 on error | 924 | Returns: 0 on success; -1 on error |
@@ -1774,6 +1779,28 @@ registers, find a list below: | |||
1774 | PPC | KVM_REG_PPC_VPA_SLB | 128 | 1779 | PPC | KVM_REG_PPC_VPA_SLB | 128 |
1775 | PPC | KVM_REG_PPC_VPA_DTL | 128 | 1780 | PPC | KVM_REG_PPC_VPA_DTL | 128 |
1776 | PPC | KVM_REG_PPC_EPCR | 32 | 1781 | PPC | KVM_REG_PPC_EPCR | 32 |
1782 | PPC | KVM_REG_PPC_EPR | 32 | ||
1783 | |||
1784 | ARM registers are mapped using the lower 32 bits. The upper 16 of that | ||
1785 | is the register group type, or coprocessor number: | ||
1786 | |||
1787 | ARM core registers have the following id bit patterns: | ||
1788 | 0x4002 0000 0010 <index into the kvm_regs struct:16> | ||
1789 | |||
1790 | ARM 32-bit CP15 registers have the following id bit patterns: | ||
1791 | 0x4002 0000 000F <zero:1> <crn:4> <crm:4> <opc1:4> <opc2:3> | ||
1792 | |||
1793 | ARM 64-bit CP15 registers have the following id bit patterns: | ||
1794 | 0x4003 0000 000F <zero:1> <zero:4> <crm:4> <opc1:4> <zero:3> | ||
1795 | |||
1796 | ARM CCSIDR registers are demultiplexed by CSSELR value: | ||
1797 | 0x4002 0000 0011 00 <csselr:8> | ||
1798 | |||
1799 | ARM 32-bit VFP control registers have the following id bit patterns: | ||
1800 | 0x4002 0000 0012 1 <regno:12> | ||
1801 | |||
1802 | ARM 64-bit FP registers have the following id bit patterns: | ||
1803 | 0x4002 0000 0012 0 <regno:12> | ||
1777 | 1804 | ||
1778 | 4.69 KVM_GET_ONE_REG | 1805 | 4.69 KVM_GET_ONE_REG |
1779 | 1806 | ||
@@ -2069,6 +2096,14 @@ KVM_S390_INT_VIRTIO (vm) - virtio external interrupt; external interrupt | |||
2069 | KVM_S390_INT_SERVICE (vm) - sclp external interrupt; sclp parameter in parm | 2096 | KVM_S390_INT_SERVICE (vm) - sclp external interrupt; sclp parameter in parm |
2070 | KVM_S390_INT_EMERGENCY (vcpu) - sigp emergency; source cpu in parm | 2097 | KVM_S390_INT_EMERGENCY (vcpu) - sigp emergency; source cpu in parm |
2071 | KVM_S390_INT_EXTERNAL_CALL (vcpu) - sigp external call; source cpu in parm | 2098 | KVM_S390_INT_EXTERNAL_CALL (vcpu) - sigp external call; source cpu in parm |
2099 | KVM_S390_INT_IO(ai,cssid,ssid,schid) (vm) - compound value to indicate an | ||
2100 | I/O interrupt (ai - adapter interrupt; cssid,ssid,schid - subchannel); | ||
2101 | I/O interruption parameters in parm (subchannel) and parm64 (intparm, | ||
2102 | interruption subclass) | ||
2103 | KVM_S390_MCHK (vm, vcpu) - machine check interrupt; cr 14 bits in parm, | ||
2104 | machine check interrupt code in parm64 (note that | ||
2105 | machine checks needing further payload are not | ||
2106 | supported by this ioctl) | ||
2072 | 2107 | ||
2073 | Note that the vcpu ioctl is asynchronous to vcpu execution. | 2108 | Note that the vcpu ioctl is asynchronous to vcpu execution. |
2074 | 2109 | ||
@@ -2127,6 +2162,88 @@ written, then `n_invalid' invalid entries, invalidating any previously | |||
2127 | valid entries found. | 2162 | valid entries found. |
2128 | 2163 | ||
2129 | 2164 | ||
2165 | 4.77 KVM_ARM_VCPU_INIT | ||
2166 | |||
2167 | Capability: basic | ||
2168 | Architectures: arm | ||
2169 | Type: vcpu ioctl | ||
2170 | Parameters: struct struct kvm_vcpu_init (in) | ||
2171 | Returns: 0 on success; -1 on error | ||
2172 | Errors: | ||
2173 | EINVAL: the target is unknown, or the combination of features is invalid. | ||
2174 | ENOENT: a features bit specified is unknown. | ||
2175 | |||
2176 | This tells KVM what type of CPU to present to the guest, and what | ||
2177 | optional features it should have. This will cause a reset of the cpu | ||
2178 | registers to their initial values. If this is not called, KVM_RUN will | ||
2179 | return ENOEXEC for that vcpu. | ||
2180 | |||
2181 | Note that because some registers reflect machine topology, all vcpus | ||
2182 | should be created before this ioctl is invoked. | ||
2183 | |||
2184 | Possible features: | ||
2185 | - KVM_ARM_VCPU_POWER_OFF: Starts the CPU in a power-off state. | ||
2186 | Depends on KVM_CAP_ARM_PSCI. | ||
2187 | |||
2188 | |||
2189 | 4.78 KVM_GET_REG_LIST | ||
2190 | |||
2191 | Capability: basic | ||
2192 | Architectures: arm | ||
2193 | Type: vcpu ioctl | ||
2194 | Parameters: struct kvm_reg_list (in/out) | ||
2195 | Returns: 0 on success; -1 on error | ||
2196 | Errors: | ||
2197 | E2BIG: the reg index list is too big to fit in the array specified by | ||
2198 | the user (the number required will be written into n). | ||
2199 | |||
2200 | struct kvm_reg_list { | ||
2201 | __u64 n; /* number of registers in reg[] */ | ||
2202 | __u64 reg[0]; | ||
2203 | }; | ||
2204 | |||
2205 | This ioctl returns the guest registers that are supported for the | ||
2206 | KVM_GET_ONE_REG/KVM_SET_ONE_REG calls. | ||
2207 | |||
2208 | |||
2209 | 4.80 KVM_ARM_SET_DEVICE_ADDR | ||
2210 | |||
2211 | Capability: KVM_CAP_ARM_SET_DEVICE_ADDR | ||
2212 | Architectures: arm | ||
2213 | Type: vm ioctl | ||
2214 | Parameters: struct kvm_arm_device_address (in) | ||
2215 | Returns: 0 on success, -1 on error | ||
2216 | Errors: | ||
2217 | ENODEV: The device id is unknown | ||
2218 | ENXIO: Device not supported on current system | ||
2219 | EEXIST: Address already set | ||
2220 | E2BIG: Address outside guest physical address space | ||
2221 | EBUSY: Address overlaps with other device range | ||
2222 | |||
2223 | struct kvm_arm_device_addr { | ||
2224 | __u64 id; | ||
2225 | __u64 addr; | ||
2226 | }; | ||
2227 | |||
2228 | Specify a device address in the guest's physical address space where guests | ||
2229 | can access emulated or directly exposed devices, which the host kernel needs | ||
2230 | to know about. The id field is an architecture specific identifier for a | ||
2231 | specific device. | ||
2232 | |||
2233 | ARM divides the id field into two parts, a device id and an address type id | ||
2234 | specific to the individual device. | ||
2235 | |||
2236 | bits: | 63 ... 32 | 31 ... 16 | 15 ... 0 | | ||
2237 | field: | 0x00000000 | device id | addr type id | | ||
2238 | |||
2239 | ARM currently only require this when using the in-kernel GIC support for the | ||
2240 | hardware VGIC features, using KVM_ARM_DEVICE_VGIC_V2 as the device id. When | ||
2241 | setting the base address for the guest's mapping of the VGIC virtual CPU | ||
2242 | and distributor interface, the ioctl must be called after calling | ||
2243 | KVM_CREATE_IRQCHIP, but before calling KVM_RUN on any of the VCPUs. Calling | ||
2244 | this ioctl twice for any of the base addresses will return -EEXIST. | ||
2245 | |||
2246 | |||
2130 | 5. The kvm_run structure | 2247 | 5. The kvm_run structure |
2131 | ------------------------ | 2248 | ------------------------ |
2132 | 2249 | ||
@@ -2238,8 +2355,8 @@ executed a memory-mapped I/O instruction which could not be satisfied | |||
2238 | by kvm. The 'data' member contains the written data if 'is_write' is | 2355 | by kvm. The 'data' member contains the written data if 'is_write' is |
2239 | true, and should be filled by application code otherwise. | 2356 | true, and should be filled by application code otherwise. |
2240 | 2357 | ||
2241 | NOTE: For KVM_EXIT_IO, KVM_EXIT_MMIO, KVM_EXIT_OSI, KVM_EXIT_DCR | 2358 | NOTE: For KVM_EXIT_IO, KVM_EXIT_MMIO, KVM_EXIT_OSI, KVM_EXIT_DCR, |
2242 | and KVM_EXIT_PAPR the corresponding | 2359 | KVM_EXIT_PAPR and KVM_EXIT_EPR the corresponding |
2243 | operations are complete (and guest state is consistent) only after userspace | 2360 | operations are complete (and guest state is consistent) only after userspace |
2244 | has re-entered the kernel with KVM_RUN. The kernel side will first finish | 2361 | has re-entered the kernel with KVM_RUN. The kernel side will first finish |
2245 | incomplete operations and then check for pending signals. Userspace | 2362 | incomplete operations and then check for pending signals. Userspace |
@@ -2342,6 +2459,41 @@ The possible hypercalls are defined in the Power Architecture Platform | |||
2342 | Requirements (PAPR) document available from www.power.org (free | 2459 | Requirements (PAPR) document available from www.power.org (free |
2343 | developer registration required to access it). | 2460 | developer registration required to access it). |
2344 | 2461 | ||
2462 | /* KVM_EXIT_S390_TSCH */ | ||
2463 | struct { | ||
2464 | __u16 subchannel_id; | ||
2465 | __u16 subchannel_nr; | ||
2466 | __u32 io_int_parm; | ||
2467 | __u32 io_int_word; | ||
2468 | __u32 ipb; | ||
2469 | __u8 dequeued; | ||
2470 | } s390_tsch; | ||
2471 | |||
2472 | s390 specific. This exit occurs when KVM_CAP_S390_CSS_SUPPORT has been enabled | ||
2473 | and TEST SUBCHANNEL was intercepted. If dequeued is set, a pending I/O | ||
2474 | interrupt for the target subchannel has been dequeued and subchannel_id, | ||
2475 | subchannel_nr, io_int_parm and io_int_word contain the parameters for that | ||
2476 | interrupt. ipb is needed for instruction parameter decoding. | ||
2477 | |||
2478 | /* KVM_EXIT_EPR */ | ||
2479 | struct { | ||
2480 | __u32 epr; | ||
2481 | } epr; | ||
2482 | |||
2483 | On FSL BookE PowerPC chips, the interrupt controller has a fast patch | ||
2484 | interrupt acknowledge path to the core. When the core successfully | ||
2485 | delivers an interrupt, it automatically populates the EPR register with | ||
2486 | the interrupt vector number and acknowledges the interrupt inside | ||
2487 | the interrupt controller. | ||
2488 | |||
2489 | In case the interrupt controller lives in user space, we need to do | ||
2490 | the interrupt acknowledge cycle through it to fetch the next to be | ||
2491 | delivered interrupt vector using this exit. | ||
2492 | |||
2493 | It gets triggered whenever both KVM_CAP_PPC_EPR are enabled and an | ||
2494 | external interrupt has just been delivered into the guest. User space | ||
2495 | should put the acknowledged interrupt vector into the 'epr' field. | ||
2496 | |||
2345 | /* Fix the size of the union. */ | 2497 | /* Fix the size of the union. */ |
2346 | char padding[256]; | 2498 | char padding[256]; |
2347 | }; | 2499 | }; |
@@ -2463,3 +2615,34 @@ For mmu types KVM_MMU_FSL_BOOKE_NOHV and KVM_MMU_FSL_BOOKE_HV: | |||
2463 | where "num_sets" is the tlb_sizes[] value divided by the tlb_ways[] value. | 2615 | where "num_sets" is the tlb_sizes[] value divided by the tlb_ways[] value. |
2464 | - The tsize field of mas1 shall be set to 4K on TLB0, even though the | 2616 | - The tsize field of mas1 shall be set to 4K on TLB0, even though the |
2465 | hardware ignores this value for TLB0. | 2617 | hardware ignores this value for TLB0. |
2618 | |||
2619 | 6.4 KVM_CAP_S390_CSS_SUPPORT | ||
2620 | |||
2621 | Architectures: s390 | ||
2622 | Parameters: none | ||
2623 | Returns: 0 on success; -1 on error | ||
2624 | |||
2625 | This capability enables support for handling of channel I/O instructions. | ||
2626 | |||
2627 | TEST PENDING INTERRUPTION and the interrupt portion of TEST SUBCHANNEL are | ||
2628 | handled in-kernel, while the other I/O instructions are passed to userspace. | ||
2629 | |||
2630 | When this capability is enabled, KVM_EXIT_S390_TSCH will occur on TEST | ||
2631 | SUBCHANNEL intercepts. | ||
2632 | |||
2633 | 6.5 KVM_CAP_PPC_EPR | ||
2634 | |||
2635 | Architectures: ppc | ||
2636 | Parameters: args[0] defines whether the proxy facility is active | ||
2637 | Returns: 0 on success; -1 on error | ||
2638 | |||
2639 | This capability enables or disables the delivery of interrupts through the | ||
2640 | external proxy facility. | ||
2641 | |||
2642 | When enabled (args[0] != 0), every time the guest gets an external interrupt | ||
2643 | delivered, it automatically exits into user space with a KVM_EXIT_EPR exit | ||
2644 | to receive the topmost interrupt vector. | ||
2645 | |||
2646 | When disabled (args[0] == 0), behavior is as if this facility is unsupported. | ||
2647 | |||
2648 | When this capability is enabled, KVM_EXIT_EPR can occur. | ||
diff --git a/Documentation/virtual/kvm/mmu.txt b/Documentation/virtual/kvm/mmu.txt index fa5f1dbc6b23..43fcb761ed16 100644 --- a/Documentation/virtual/kvm/mmu.txt +++ b/Documentation/virtual/kvm/mmu.txt | |||
@@ -187,13 +187,6 @@ Shadow pages contain the following information: | |||
187 | perform a reverse map from a pte to a gfn. When role.direct is set, any | 187 | perform a reverse map from a pte to a gfn. When role.direct is set, any |
188 | element of this array can be calculated from the gfn field when used, in | 188 | element of this array can be calculated from the gfn field when used, in |
189 | this case, the array of gfns is not allocated. See role.direct and gfn. | 189 | this case, the array of gfns is not allocated. See role.direct and gfn. |
190 | slot_bitmap: | ||
191 | A bitmap containing one bit per memory slot. If the page contains a pte | ||
192 | mapping a page from memory slot n, then bit n of slot_bitmap will be set | ||
193 | (if a page is aliased among several slots, then it is not guaranteed that | ||
194 | all slots will be marked). | ||
195 | Used during dirty logging to avoid scanning a shadow page if none if its | ||
196 | pages need tracking. | ||
197 | root_count: | 190 | root_count: |
198 | A counter keeping track of how many hardware registers (guest cr3 or | 191 | A counter keeping track of how many hardware registers (guest cr3 or |
199 | pdptrs) are now pointing at the page. While this counter is nonzero, the | 192 | pdptrs) are now pointing at the page. While this counter is nonzero, the |
diff --git a/Documentation/vm/ksm.txt b/Documentation/vm/ksm.txt index b392e496f816..f34a8ee6f860 100644 --- a/Documentation/vm/ksm.txt +++ b/Documentation/vm/ksm.txt | |||
@@ -58,6 +58,21 @@ sleep_millisecs - how many milliseconds ksmd should sleep before next scan | |||
58 | e.g. "echo 20 > /sys/kernel/mm/ksm/sleep_millisecs" | 58 | e.g. "echo 20 > /sys/kernel/mm/ksm/sleep_millisecs" |
59 | Default: 20 (chosen for demonstration purposes) | 59 | Default: 20 (chosen for demonstration purposes) |
60 | 60 | ||
61 | merge_across_nodes - specifies if pages from different numa nodes can be merged. | ||
62 | When set to 0, ksm merges only pages which physically | ||
63 | reside in the memory area of same NUMA node. That brings | ||
64 | lower latency to access of shared pages. Systems with more | ||
65 | nodes, at significant NUMA distances, are likely to benefit | ||
66 | from the lower latency of setting 0. Smaller systems, which | ||
67 | need to minimize memory usage, are likely to benefit from | ||
68 | the greater sharing of setting 1 (default). You may wish to | ||
69 | compare how your system performs under each setting, before | ||
70 | deciding on which to use. merge_across_nodes setting can be | ||
71 | changed only when there are no ksm shared pages in system: | ||
72 | set run 2 to unmerge pages first, then to 1 after changing | ||
73 | merge_across_nodes, to remerge according to the new setting. | ||
74 | Default: 1 (merging across nodes as in earlier releases) | ||
75 | |||
61 | run - set 0 to stop ksmd from running but keep merged pages, | 76 | run - set 0 to stop ksmd from running but keep merged pages, |
62 | set 1 to run ksmd e.g. "echo 1 > /sys/kernel/mm/ksm/run", | 77 | set 1 to run ksmd e.g. "echo 1 > /sys/kernel/mm/ksm/run", |
63 | set 2 to stop ksmd and unmerge all pages currently merged, | 78 | set 2 to stop ksmd and unmerge all pages currently merged, |
diff --git a/Documentation/w1/slaves/w1_therm b/Documentation/w1/slaves/w1_therm index 874a8ca93feb..cc62a95e4776 100644 --- a/Documentation/w1/slaves/w1_therm +++ b/Documentation/w1/slaves/w1_therm | |||
@@ -34,9 +34,16 @@ currently supported. The driver also doesn't support reduced | |||
34 | precision (which would also reduce the conversion time). | 34 | precision (which would also reduce the conversion time). |
35 | 35 | ||
36 | The module parameter strong_pullup can be set to 0 to disable the | 36 | The module parameter strong_pullup can be set to 0 to disable the |
37 | strong pullup or 1 to enable. If enabled the 5V strong pullup will be | 37 | strong pullup, 1 to enable autodetection or 2 to force strong pullup. |
38 | enabled when the conversion is taking place provided the master driver | 38 | In case of autodetection, the driver will use the "READ POWER SUPPLY" |
39 | must support the strong pullup (or it falls back to a pullup | 39 | command to check if there are pariste powered devices on the bus. |
40 | If so, it will activate the master's strong pullup. | ||
41 | In case the detection of parasite devices using this command fails | ||
42 | (seems to be the case with some DS18S20) the strong pullup can | ||
43 | be force-enabled. | ||
44 | If the strong pullup is enabled, the master's strong pullup will be | ||
45 | driven when the conversion is taking place, provided the master driver | ||
46 | does support the strong pullup (or it falls back to a pullup | ||
40 | resistor). The DS18b20 temperature sensor specification lists a | 47 | resistor). The DS18b20 temperature sensor specification lists a |
41 | maximum current draw of 1.5mA and that a 5k pullup resistor is not | 48 | maximum current draw of 1.5mA and that a 5k pullup resistor is not |
42 | sufficient. The strong pullup is designed to provide the additional | 49 | sufficient. The strong pullup is designed to provide the additional |
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt index 406d82d5d2bb..3840b6f28afb 100644 --- a/Documentation/x86/boot.txt +++ b/Documentation/x86/boot.txt | |||
@@ -57,6 +57,10 @@ Protocol 2.10: (Kernel 2.6.31) Added a protocol for relaxed alignment | |||
57 | Protocol 2.11: (Kernel 3.6) Added a field for offset of EFI handover | 57 | Protocol 2.11: (Kernel 3.6) Added a field for offset of EFI handover |
58 | protocol entry point. | 58 | protocol entry point. |
59 | 59 | ||
60 | Protocol 2.12: (Kernel 3.8) Added the xloadflags field and extension fields | ||
61 | to struct boot_params for for loading bzImage and ramdisk | ||
62 | above 4G in 64bit. | ||
63 | |||
60 | **** MEMORY LAYOUT | 64 | **** MEMORY LAYOUT |
61 | 65 | ||
62 | The traditional memory map for the kernel loader, used for Image or | 66 | The traditional memory map for the kernel loader, used for Image or |
@@ -182,7 +186,7 @@ Offset Proto Name Meaning | |||
182 | 0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel | 186 | 0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel |
183 | 0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not | 187 | 0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not |
184 | 0235/1 2.10+ min_alignment Minimum alignment, as a power of two | 188 | 0235/1 2.10+ min_alignment Minimum alignment, as a power of two |
185 | 0236/2 N/A pad3 Unused | 189 | 0236/2 2.12+ xloadflags Boot protocol option flags |
186 | 0238/4 2.06+ cmdline_size Maximum size of the kernel command line | 190 | 0238/4 2.06+ cmdline_size Maximum size of the kernel command line |
187 | 023C/4 2.07+ hardware_subarch Hardware subarchitecture | 191 | 023C/4 2.07+ hardware_subarch Hardware subarchitecture |
188 | 0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data | 192 | 0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data |
@@ -386,6 +390,7 @@ Protocol: 2.00+ | |||
386 | F Special (0xFF = undefined) | 390 | F Special (0xFF = undefined) |
387 | 10 Reserved | 391 | 10 Reserved |
388 | 11 Minimal Linux Bootloader <http://sebastian-plotz.blogspot.de> | 392 | 11 Minimal Linux Bootloader <http://sebastian-plotz.blogspot.de> |
393 | 12 OVMF UEFI virtualization stack | ||
389 | 394 | ||
390 | Please contact <hpa@zytor.com> if you need a bootloader ID | 395 | Please contact <hpa@zytor.com> if you need a bootloader ID |
391 | value assigned. | 396 | value assigned. |
@@ -582,6 +587,27 @@ Protocol: 2.10+ | |||
582 | misaligned kernel. Therefore, a loader should typically try each | 587 | misaligned kernel. Therefore, a loader should typically try each |
583 | power-of-two alignment from kernel_alignment down to this alignment. | 588 | power-of-two alignment from kernel_alignment down to this alignment. |
584 | 589 | ||
590 | Field name: xloadflags | ||
591 | Type: read | ||
592 | Offset/size: 0x236/2 | ||
593 | Protocol: 2.12+ | ||
594 | |||
595 | This field is a bitmask. | ||
596 | |||
597 | Bit 0 (read): XLF_KERNEL_64 | ||
598 | - If 1, this kernel has the legacy 64-bit entry point at 0x200. | ||
599 | |||
600 | Bit 1 (read): XLF_CAN_BE_LOADED_ABOVE_4G | ||
601 | - If 1, kernel/boot_params/cmdline/ramdisk can be above 4G. | ||
602 | |||
603 | Bit 2 (read): XLF_EFI_HANDOVER_32 | ||
604 | - If 1, the kernel supports the 32-bit EFI handoff entry point | ||
605 | given at handover_offset. | ||
606 | |||
607 | Bit 3 (read): XLF_EFI_HANDOVER_64 | ||
608 | - If 1, the kernel supports the 64-bit EFI handoff entry point | ||
609 | given at handover_offset + 0x200. | ||
610 | |||
585 | Field name: cmdline_size | 611 | Field name: cmdline_size |
586 | Type: read | 612 | Type: read |
587 | Offset/size: 0x238/4 | 613 | Offset/size: 0x238/4 |
@@ -1029,6 +1055,44 @@ must have read/write permission; CS must be __BOOT_CS and DS, ES, SS | |||
1029 | must be __BOOT_DS; interrupt must be disabled; %esi must hold the base | 1055 | must be __BOOT_DS; interrupt must be disabled; %esi must hold the base |
1030 | address of the struct boot_params; %ebp, %edi and %ebx must be zero. | 1056 | address of the struct boot_params; %ebp, %edi and %ebx must be zero. |
1031 | 1057 | ||
1058 | **** 64-bit BOOT PROTOCOL | ||
1059 | |||
1060 | For machine with 64bit cpus and 64bit kernel, we could use 64bit bootloader | ||
1061 | and we need a 64-bit boot protocol. | ||
1062 | |||
1063 | In 64-bit boot protocol, the first step in loading a Linux kernel | ||
1064 | should be to setup the boot parameters (struct boot_params, | ||
1065 | traditionally known as "zero page"). The memory for struct boot_params | ||
1066 | could be allocated anywhere (even above 4G) and initialized to all zero. | ||
1067 | Then, the setup header at offset 0x01f1 of kernel image on should be | ||
1068 | loaded into struct boot_params and examined. The end of setup header | ||
1069 | can be calculated as follows: | ||
1070 | |||
1071 | 0x0202 + byte value at offset 0x0201 | ||
1072 | |||
1073 | In addition to read/modify/write the setup header of the struct | ||
1074 | boot_params as that of 16-bit boot protocol, the boot loader should | ||
1075 | also fill the additional fields of the struct boot_params as described | ||
1076 | in zero-page.txt. | ||
1077 | |||
1078 | After setting up the struct boot_params, the boot loader can load | ||
1079 | 64-bit kernel in the same way as that of 16-bit boot protocol, but | ||
1080 | kernel could be loaded above 4G. | ||
1081 | |||
1082 | In 64-bit boot protocol, the kernel is started by jumping to the | ||
1083 | 64-bit kernel entry point, which is the start address of loaded | ||
1084 | 64-bit kernel plus 0x200. | ||
1085 | |||
1086 | At entry, the CPU must be in 64-bit mode with paging enabled. | ||
1087 | The range with setup_header.init_size from start address of loaded | ||
1088 | kernel and zero page and command line buffer get ident mapping; | ||
1089 | a GDT must be loaded with the descriptors for selectors | ||
1090 | __BOOT_CS(0x10) and __BOOT_DS(0x18); both descriptors must be 4G flat | ||
1091 | segment; __BOOT_CS must have execute/read permission, and __BOOT_DS | ||
1092 | must have read/write permission; CS must be __BOOT_CS and DS, ES, SS | ||
1093 | must be __BOOT_DS; interrupt must be disabled; %rsi must hold the base | ||
1094 | address of the struct boot_params. | ||
1095 | |||
1032 | **** EFI HANDOVER PROTOCOL | 1096 | **** EFI HANDOVER PROTOCOL |
1033 | 1097 | ||
1034 | This protocol allows boot loaders to defer initialisation to the EFI | 1098 | This protocol allows boot loaders to defer initialisation to the EFI |
diff --git a/Documentation/x86/early-microcode.txt b/Documentation/x86/early-microcode.txt new file mode 100644 index 000000000000..4aaf0dfb0cb8 --- /dev/null +++ b/Documentation/x86/early-microcode.txt | |||
@@ -0,0 +1,43 @@ | |||
1 | Early load microcode | ||
2 | ==================== | ||
3 | By Fenghua Yu <fenghua.yu@intel.com> | ||
4 | |||
5 | Kernel can update microcode in early phase of boot time. Loading microcode early | ||
6 | can fix CPU issues before they are observed during kernel boot time. | ||
7 | |||
8 | Microcode is stored in an initrd file. The microcode is read from the initrd | ||
9 | file and loaded to CPUs during boot time. | ||
10 | |||
11 | The format of the combined initrd image is microcode in cpio format followed by | ||
12 | the initrd image (maybe compressed). Kernel parses the combined initrd image | ||
13 | during boot time. The microcode file in cpio name space is: | ||
14 | kernel/x86/microcode/GenuineIntel.bin | ||
15 | |||
16 | During BSP boot (before SMP starts), if the kernel finds the microcode file in | ||
17 | the initrd file, it parses the microcode and saves matching microcode in memory. | ||
18 | If matching microcode is found, it will be uploaded in BSP and later on in all | ||
19 | APs. | ||
20 | |||
21 | The cached microcode patch is applied when CPUs resume from a sleep state. | ||
22 | |||
23 | There are two legacy user space interfaces to load microcode, either through | ||
24 | /dev/cpu/microcode or through /sys/devices/system/cpu/microcode/reload file | ||
25 | in sysfs. | ||
26 | |||
27 | In addition to these two legacy methods, the early loading method described | ||
28 | here is the third method with which microcode can be uploaded to a system's | ||
29 | CPUs. | ||
30 | |||
31 | The following example script shows how to generate a new combined initrd file in | ||
32 | /boot/initrd-3.5.0.ucode.img with original microcode microcode.bin and | ||
33 | original initrd image /boot/initrd-3.5.0.img. | ||
34 | |||
35 | mkdir initrd | ||
36 | cd initrd | ||
37 | mkdir kernel | ||
38 | mkdir kernel/x86 | ||
39 | mkdir kernel/x86/microcode | ||
40 | cp ../microcode.bin kernel/x86/microcode/GenuineIntel.bin | ||
41 | find .|cpio -oc >../ucode.cpio | ||
42 | cd .. | ||
43 | cat ucode.cpio /boot/initrd-3.5.0.img >/boot/initrd-3.5.0.ucode.img | ||
diff --git a/Documentation/x86/x86_64/boot-options.txt b/Documentation/x86/x86_64/boot-options.txt index de38429beb71..e015a83c3996 100644 --- a/Documentation/x86/x86_64/boot-options.txt +++ b/Documentation/x86/x86_64/boot-options.txt | |||
@@ -112,10 +112,6 @@ Timing | |||
112 | This can be used to work around timing problems on multiprocessor systems | 112 | This can be used to work around timing problems on multiprocessor systems |
113 | with not properly synchronized CPUs. | 113 | with not properly synchronized CPUs. |
114 | 114 | ||
115 | report_lost_ticks | ||
116 | Report when timer interrupts are lost because some code turned off | ||
117 | interrupts for too long. | ||
118 | |||
119 | nohpet | 115 | nohpet |
120 | Don't use the HPET timer. | 116 | Don't use the HPET timer. |
121 | 117 | ||
diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt index cf5437deda81..199f453cb4de 100644 --- a/Documentation/x86/zero-page.txt +++ b/Documentation/x86/zero-page.txt | |||
@@ -19,6 +19,9 @@ Offset Proto Name Meaning | |||
19 | 090/010 ALL hd1_info hd1 disk parameter, OBSOLETE!! | 19 | 090/010 ALL hd1_info hd1 disk parameter, OBSOLETE!! |
20 | 0A0/010 ALL sys_desc_table System description table (struct sys_desc_table) | 20 | 0A0/010 ALL sys_desc_table System description table (struct sys_desc_table) |
21 | 0B0/010 ALL olpc_ofw_header OLPC's OpenFirmware CIF and friends | 21 | 0B0/010 ALL olpc_ofw_header OLPC's OpenFirmware CIF and friends |
22 | 0C0/004 ALL ext_ramdisk_image ramdisk_image high 32bits | ||
23 | 0C4/004 ALL ext_ramdisk_size ramdisk_size high 32bits | ||
24 | 0C8/004 ALL ext_cmd_line_ptr cmd_line_ptr high 32bits | ||
22 | 140/080 ALL edid_info Video mode setup (struct edid_info) | 25 | 140/080 ALL edid_info Video mode setup (struct edid_info) |
23 | 1C0/020 ALL efi_info EFI 32 information (struct efi_info) | 26 | 1C0/020 ALL efi_info EFI 32 information (struct efi_info) |
24 | 1E0/004 ALL alk_mem_k Alternative mem check, in KB | 27 | 1E0/004 ALL alk_mem_k Alternative mem check, in KB |
@@ -27,6 +30,7 @@ Offset Proto Name Meaning | |||
27 | 1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) | 30 | 1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) |
28 | 1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer | 31 | 1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer |
29 | (below) | 32 | (below) |
33 | 1EF/001 ALL sentinel Used to detect broken bootloaders | ||
30 | 290/040 ALL edd_mbr_sig_buffer EDD MBR signatures | 34 | 290/040 ALL edd_mbr_sig_buffer EDD MBR signatures |
31 | 2D0/A00 ALL e820_map E820 memory map table | 35 | 2D0/A00 ALL e820_map E820 memory map table |
32 | (array of struct e820entry) | 36 | (array of struct e820entry) |
diff --git a/Documentation/zh_CN/CodingStyle b/Documentation/zh_CN/CodingStyle index ecd9307a641f..654afd72eb24 100644 --- a/Documentation/zh_CN/CodingStyle +++ b/Documentation/zh_CN/CodingStyle | |||
@@ -462,13 +462,6 @@ config AUDIT | |||
462 | logging of avc messages output). Does not do system-call | 462 | logging of avc messages output). Does not do system-call |
463 | auditing without CONFIG_AUDITSYSCALL. | 463 | auditing without CONFIG_AUDITSYSCALL. |
464 | 464 | ||
465 | 仍然被认为不够稳定的功能应该被定义为依赖于“EXPERIMENTAL”: | ||
466 | |||
467 | config SLUB | ||
468 | depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT | ||
469 | bool "SLUB (Unqueued Allocator)" | ||
470 | ... | ||
471 | |||
472 | 而那些危险的功能(比如某些文件系统的写支持)应该在它们的提示字符串里显著的声明这 | 465 | 而那些危险的功能(比如某些文件系统的写支持)应该在它们的提示字符串里显著的声明这 |
473 | 一点: | 466 | 一点: |
474 | 467 | ||
diff --git a/Documentation/zh_CN/magic-number.txt b/Documentation/zh_CN/magic-number.txt index 4263022f5002..2ebe539f5450 100644 --- a/Documentation/zh_CN/magic-number.txt +++ b/Documentation/zh_CN/magic-number.txt | |||
@@ -122,7 +122,7 @@ SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c | |||
122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c | 122 | COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c |
123 | I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c | 123 | I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c |
124 | TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c | 124 | TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c |
125 | ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h | 125 | ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9] |
126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h | 126 | SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h |
127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c | 127 | SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c |
128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h | 128 | GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h |