aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/00-INDEX149
-rw-r--r--Documentation/ABI/stable/sysfs-class-tpm185
-rw-r--r--Documentation/ABI/testing/ima_policy10
-rw-r--r--Documentation/ABI/testing/pstore10
-rw-r--r--Documentation/ABI/testing/sysfs-bus-event_source-devices-events62
-rw-r--r--Documentation/ABI/testing/sysfs-bus-iio-mpu605013
-rw-r--r--Documentation/ABI/testing/sysfs-bus-usb9
-rw-r--r--Documentation/ABI/testing/sysfs-class-bdi5
-rw-r--r--Documentation/ABI/testing/sysfs-devices-power_resources_D013
-rw-r--r--Documentation/ABI/testing/sysfs-devices-power_resources_D114
-rw-r--r--Documentation/ABI/testing/sysfs-devices-power_resources_D214
-rw-r--r--Documentation/ABI/testing/sysfs-devices-power_resources_D3hot14
-rw-r--r--Documentation/ABI/testing/sysfs-devices-power_state20
-rw-r--r--Documentation/ABI/testing/sysfs-devices-real_power_state23
-rw-r--r--Documentation/ABI/testing/sysfs-devices-resource_in_use12
-rw-r--r--Documentation/ABI/testing/sysfs-devices-system-cpu14
-rw-r--r--Documentation/ABI/testing/sysfs-driver-hid-srws121
-rw-r--r--Documentation/ABI/testing/sysfs-driver-hid-thingm23
-rw-r--r--Documentation/ABI/testing/sysfs-kernel-mm-ksm52
-rw-r--r--Documentation/ABI/testing/sysfs-platform-ts550047
-rw-r--r--Documentation/CodingStyle10
-rw-r--r--Documentation/DocBook/80211.tmpl4
-rw-r--r--Documentation/DocBook/drm.tmpl78
-rw-r--r--Documentation/DocBook/kernel-hacking.tmpl11
-rw-r--r--Documentation/DocBook/kgdb.tmpl6
-rw-r--r--Documentation/DocBook/media/dvb/dvbapi.xml2
-rw-r--r--Documentation/DocBook/media/dvb/dvbproperty.xml180
-rw-r--r--Documentation/DocBook/media/dvb/frontend.xml2
-rw-r--r--Documentation/DocBook/media/v4l/common.xml2
-rw-r--r--Documentation/DocBook/media/v4l/compat.xml16
-rw-r--r--Documentation/DocBook/media/v4l/controls.xml23
-rw-r--r--Documentation/DocBook/media/v4l/io.xml59
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt-nv12m.xml2
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml34
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt-uv8.xml62
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt.xml2
-rw-r--r--Documentation/DocBook/media/v4l/subdev-formats.xml926
-rw-r--r--Documentation/DocBook/media/v4l/v4l2.xml12
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-dqevent.xml6
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-expbuf.xml28
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-ctrl.xml8
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml57
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-querycap.xml2
-rw-r--r--Documentation/DocBook/media_api.tmpl1
-rw-r--r--Documentation/DocBook/uio-howto.tmpl2
-rw-r--r--Documentation/DocBook/writing-an-alsa-driver.tmpl58
-rw-r--r--Documentation/EDID/HOWTO.txt27
-rw-r--r--Documentation/PCI/MSI-HOWTO.txt37
-rw-r--r--Documentation/acpi/enumeration.txt4
-rw-r--r--Documentation/acpi/scan_handlers.txt77
-rw-r--r--Documentation/arm64/memory.txt2
-rw-r--r--Documentation/atomic_ops.txt2
-rw-r--r--Documentation/backlight/lp855x-driver.txt4
-rw-r--r--Documentation/cgroups/00-INDEX2
-rw-r--r--Documentation/cgroups/cgroup_event_listener.c110
-rw-r--r--Documentation/cgroups/memcg_test.txt3
-rw-r--r--Documentation/cpu-freq/cpu-drivers.txt6
-rw-r--r--Documentation/cpu-freq/user-guide.txt8
-rw-r--r--Documentation/device-mapper/dm-raid.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/altera/socfpga-system.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/arch_timer.txt7
-rw-r--r--Documentation/devicetree/bindings/arm/atmel-aic.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/gic.txt4
-rw-r--r--Documentation/devicetree/bindings/arm/kirkwood.txt27
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt6
-rw-r--r--Documentation/devicetree/bindings/arm/psci.txt55
-rw-r--r--Documentation/devicetree/bindings/arm/sirf.txt10
-rw-r--r--Documentation/devicetree/bindings/arm/ste-nomadik.txt27
-rw-r--r--Documentation/devicetree/bindings/arm/tegra.txt32
-rw-r--r--Documentation/devicetree/bindings/arm/vt8500.txt8
-rw-r--r--Documentation/devicetree/bindings/bus/ti-gpmc.txt84
-rw-r--r--Documentation/devicetree/bindings/clock/imx31-clock.txt91
-rw-r--r--Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt2
-rw-r--r--Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt205
-rw-r--r--Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt262
-rw-r--r--Documentation/devicetree/bindings/clock/prima2-clock.txt73
-rw-r--r--Documentation/devicetree/bindings/crypto/fsl-sec4.txt12
-rw-r--r--Documentation/devicetree/bindings/dma/arm-pl330.txt21
-rw-r--r--Documentation/devicetree/bindings/dma/dma.txt81
-rw-r--r--Documentation/devicetree/bindings/dma/snps-dma.txt44
-rw-r--r--Documentation/devicetree/bindings/drm/exynos/g2d.txt22
-rw-r--r--Documentation/devicetree/bindings/drm/tilcdc/panel.txt59
-rw-r--r--Documentation/devicetree/bindings/drm/tilcdc/slave.txt18
-rw-r--r--Documentation/devicetree/bindings/drm/tilcdc/tfp410.txt21
-rw-r--r--Documentation/devicetree/bindings/drm/tilcdc/tilcdc.txt21
-rw-r--r--Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt20
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt2
-rw-r--r--Documentation/devicetree/bindings/i2c/ina209.txt18
-rw-r--r--Documentation/devicetree/bindings/i2c/max6697.txt64
-rw-r--r--Documentation/devicetree/bindings/input/imx-keypad.txt53
-rw-r--r--Documentation/devicetree/bindings/input/lpc32xx-key.txt9
-rw-r--r--Documentation/devicetree/bindings/input/matrix-keymap.txt8
-rw-r--r--Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt22
-rw-r--r--Documentation/devicetree/bindings/input/omap-keypad.txt13
-rw-r--r--Documentation/devicetree/bindings/input/tca8418_keypad.txt6
-rw-r--r--Documentation/devicetree/bindings/leds/leds-ns2.txt (renamed from Documentation/devicetree/bindings/gpio/leds-ns2.txt)0
-rw-r--r--Documentation/devicetree/bindings/leds/leds-pwm.txt48
-rw-r--r--Documentation/devicetree/bindings/leds/tca6507.txt33
-rw-r--r--Documentation/devicetree/bindings/media/gpio-ir-receiver.txt16
-rw-r--r--Documentation/devicetree/bindings/mfd/max8925.txt64
-rwxr-xr-xDocumentation/devicetree/bindings/mfd/tps6507x.txt91
-rw-r--r--Documentation/devicetree/bindings/mips/cavium/dma-engine.txt2
-rw-r--r--Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhci.txt18
-rw-r--r--Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt8
-rw-r--r--Documentation/devicetree/bindings/mmc/mmc.txt34
-rw-r--r--Documentation/devicetree/bindings/mmc/orion-sdio.txt17
-rw-r--r--Documentation/devicetree/bindings/mmc/samsung-sdhci.txt2
-rw-r--r--Documentation/devicetree/bindings/mmc/synopsis-dw-mshc.txt12
-rw-r--r--Documentation/devicetree/bindings/mmc/tmio_mmc.txt20
-rw-r--r--Documentation/devicetree/bindings/mtd/fsmc-nand.txt2
-rw-r--r--Documentation/devicetree/bindings/mtd/gpmc-nand.txt80
-rw-r--r--Documentation/devicetree/bindings/mtd/gpmc-onenand.txt43
-rw-r--r--Documentation/devicetree/bindings/net/cpsw.txt2
-rw-r--r--Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt60
-rw-r--r--Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt5
-rw-r--r--Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt120
-rw-r--r--Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt12
-rw-r--r--Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt140
-rw-r--r--Documentation/devicetree/bindings/power_supply/max8925_batter.txt18
-rw-r--r--Documentation/devicetree/bindings/power_supply/qnap-poweroff.txt13
-rw-r--r--Documentation/devicetree/bindings/power_supply/restart-poweroff.txt8
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/guts.txt13
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/pamu.txt140
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/srio.txt4
-rw-r--r--Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt18
-rw-r--r--Documentation/devicetree/bindings/pwm/vt8500-pwm.txt9
-rw-r--r--Documentation/devicetree/bindings/regulator/anatop-regulator.txt8
-rw-r--r--Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt152
-rw-r--r--Documentation/devicetree/bindings/regulator/tps51632-regulator.txt27
-rw-r--r--Documentation/devicetree/bindings/regulator/tps62360-regulator.txt4
-rw-r--r--Documentation/devicetree/bindings/regulator/tps65090.txt122
-rw-r--r--Documentation/devicetree/bindings/rtc/s3c-rtc.txt2
-rw-r--r--Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt24
-rw-r--r--Documentation/devicetree/bindings/sound/ak4642.txt17
-rw-r--r--Documentation/devicetree/bindings/sound/cs4271.txt12
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt51
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra20-ac97.txt22
-rw-r--r--Documentation/devicetree/bindings/sound/omap-twl4030.txt46
-rw-r--r--Documentation/devicetree/bindings/sound/renesas,fsi.txt26
-rw-r--r--Documentation/devicetree/bindings/sound/samsung,smdk-wm8994.txt14
-rw-r--r--Documentation/devicetree/bindings/sound/samsung-i2s.txt63
-rw-r--r--Documentation/devicetree/bindings/sound/tlv320aic3x.txt6
-rw-r--r--Documentation/devicetree/bindings/sound/wm8962.txt16
-rw-r--r--Documentation/devicetree/bindings/spi/sh-msiof.txt12
-rw-r--r--Documentation/devicetree/bindings/staging/iio/adc/mxs-lradc.txt6
-rw-r--r--Documentation/devicetree/bindings/tty/serial/arc-uart.txt26
-rw-r--r--Documentation/devicetree/bindings/tty/serial/efm32-uart.txt6
-rw-r--r--Documentation/devicetree/bindings/usb/dwc3.txt22
-rw-r--r--Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt3
-rw-r--r--Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt17
-rw-r--r--Documentation/devicetree/bindings/usb/omap-usb.txt34
-rw-r--r--Documentation/devicetree/bindings/usb/samsung-usbphy.txt55
-rw-r--r--Documentation/devicetree/bindings/usb/usb-phy.txt35
-rw-r--r--Documentation/devicetree/bindings/usb/usb3503.txt20
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt4
-rw-r--r--Documentation/devicetree/bindings/video/backlight/max8925-backlight.txt10
-rw-r--r--Documentation/devicetree/bindings/video/display-timing.txt109
-rw-r--r--Documentation/devicetree/bindings/watchdog/samsung-wdt.txt2
-rw-r--r--Documentation/devicetree/booting-without-of.txt2
-rw-r--r--Documentation/driver-model/devres.txt7
-rwxr-xr-xDocumentation/dvb/get_dvb_firmware17
-rw-r--r--Documentation/dynamic-debug-howto.txt15
-rw-r--r--Documentation/filesystems/f2fs.txt18
-rw-r--r--[-rwxr-xr-x]Documentation/hid/hid-sensor.txt0
-rw-r--r--Documentation/hwmon/coretemp9
-rw-r--r--Documentation/hwmon/ina20993
-rw-r--r--Documentation/hwmon/it8716
-rw-r--r--Documentation/hwmon/jc423
-rw-r--r--Documentation/hwmon/lm7390
-rw-r--r--Documentation/hwmon/max3444016
-rw-r--r--Documentation/hwmon/max669758
-rw-r--r--Documentation/hwmon/sysfs-interface8
-rw-r--r--Documentation/hwmon/zl610026
-rw-r--r--Documentation/i2c/busses/i2c-i8012
-rw-r--r--Documentation/i2c/busses/i2c-ismt36
-rw-r--r--Documentation/i2c/busses/i2c-sis6309
-rw-r--r--Documentation/i2c/smbus-protocol4
-rw-r--r--Documentation/i2c/writing-clients4
-rw-r--r--Documentation/intel_txt.txt2
-rw-r--r--Documentation/ioctl/ioctl-number.txt2
-rw-r--r--Documentation/kbuild/makefiles.txt23
-rw-r--r--Documentation/kernel-parameters.txt78
-rw-r--r--Documentation/laptops/thinkpad-acpi.txt2
-rw-r--r--Documentation/leds/00-INDEX2
-rw-r--r--Documentation/leds/leds-lp5521.txt63
-rw-r--r--Documentation/leds/leds-lp5523.txt27
-rw-r--r--Documentation/leds/leds-lp55xx.txt118
-rw-r--r--Documentation/lockstat.txt2
-rw-r--r--Documentation/magic-number.txt2
-rw-r--r--Documentation/media-framework.txt2
-rw-r--r--Documentation/memory-barriers.txt1
-rw-r--r--Documentation/namespaces/resource-control.txt14
-rw-r--r--Documentation/networking/00-INDEX6
-rw-r--r--Documentation/networking/DLINK.txt203
-rw-r--r--Documentation/networking/LICENSE.qlcnic2
-rw-r--r--Documentation/networking/cs89x0.txt79
-rw-r--r--Documentation/networking/depca.txt92
-rw-r--r--Documentation/networking/ewrk3.txt46
-rw-r--r--Documentation/networking/filter.txt11
-rw-r--r--Documentation/networking/ip-sysctl.txt19
-rw-r--r--Documentation/networking/multicast.txt63
-rw-r--r--Documentation/networking/netconsole.txt7
-rw-r--r--Documentation/networking/nf_conntrack-sysctl.txt176
-rw-r--r--Documentation/networking/operstates.txt4
-rw-r--r--Documentation/networking/phy.txt11
-rw-r--r--Documentation/nfc/nfc-hci.txt129
-rw-r--r--Documentation/nfc/nfc-pn544.txt84
-rw-r--r--Documentation/pinctrl.txt18
-rw-r--r--Documentation/power/freezing-of-tasks.txt5
-rw-r--r--Documentation/power/runtime_pm.txt4
-rw-r--r--Documentation/powerpc/cpu_features.txt10
-rw-r--r--Documentation/powerpc/transactional_memory.txt175
-rw-r--r--Documentation/printk-formats.txt14
-rw-r--r--Documentation/serial/driver44
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt5
-rw-r--r--Documentation/sound/alsa/HD-Audio-Models.txt2
-rw-r--r--Documentation/sound/alsa/HD-Audio.txt126
-rw-r--r--Documentation/sound/alsa/compress_offload.txt46
-rw-r--r--Documentation/thermal/nouveau_thermal81
-rw-r--r--Documentation/trace/events-power.txt27
-rw-r--r--Documentation/trace/ftrace.txt83
-rw-r--r--Documentation/video4linux/CARDLIST.au08282
-rw-r--r--Documentation/video4linux/CARDLIST.cx238852
-rw-r--r--Documentation/video4linux/CARDLIST.em28xx3
-rw-r--r--Documentation/video4linux/CARDLIST.saa71341
-rw-r--r--Documentation/video4linux/et61x251.txt315
-rwxr-xr-x[-rw-r--r--]Documentation/video4linux/extract_xc3028.pl0
-rw-r--r--Documentation/video4linux/fimc.txt2
-rw-r--r--Documentation/video4linux/ibmcam.txt323
-rw-r--r--Documentation/video4linux/m5602.txt12
-rw-r--r--Documentation/video4linux/ov511.txt288
-rw-r--r--Documentation/video4linux/se401.txt54
-rw-r--r--Documentation/video4linux/si470x.txt7
-rw-r--r--Documentation/video4linux/soc-camera.txt146
-rw-r--r--Documentation/video4linux/stv680.txt53
-rw-r--r--Documentation/video4linux/v4l2-controls.txt22
-rw-r--r--Documentation/video4linux/v4l2-framework.txt3
-rw-r--r--Documentation/video4linux/w9968cf.txt458
-rw-r--r--Documentation/video4linux/zc0301.txt270
-rw-r--r--Documentation/virtual/kvm/api.txt245
-rw-r--r--Documentation/virtual/kvm/mmu.txt7
-rw-r--r--Documentation/vm/ksm.txt15
-rw-r--r--Documentation/w1/slaves/w1_therm13
-rw-r--r--Documentation/x86/boot.txt66
-rw-r--r--Documentation/x86/early-microcode.txt43
-rw-r--r--Documentation/x86/x86_64/boot-options.txt4
-rw-r--r--Documentation/x86/zero-page.txt4
-rw-r--r--Documentation/zh_CN/CodingStyle7
-rw-r--r--Documentation/zh_CN/magic-number.txt2
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 @@
2This is a brief list of all the files in ./linux/Documentation and what 2This is a brief list of all the files in ./linux/Documentation and what
3they contain. If you add a documentation file, please list it here in 3they contain. If you add a documentation file, please list it here in
4alphabetical order as well, or risk being hunted down like a rabid dog. 4alphabetical order as well, or risk being hunted down like a rabid dog.
5Please try and keep the descriptions small enough to fit on one line. 5Please keep the descriptions small enough to fit on one line.
6 Thanks -- Paul G. 6 Thanks -- Paul G.
7 7
8Following translations are available on the WWW: 8Following translations are available on the WWW:
@@ -20,24 +20,33 @@ BUG-HUNTING
20Changes 20Changes
21 - list of changes that break older software packages. 21 - list of changes that break older software packages.
22CodingStyle 22CodingStyle
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.
24development-process/
25 - An extended tutorial on how to work with the kernel development
26 process.
27DMA-API.txt 24DMA-API.txt
28 - DMA API, pci_ API & extensions for non-consistent memory machines. 25 - DMA API, pci_ API & extensions for non-consistent memory machines.
26DMA-API-HOWTO.txt
27 - Dynamic DMA mapping Guide
29DMA-ISA-LPC.txt 28DMA-ISA-LPC.txt
30 - How to do DMA with ISA (and LPC) devices. 29 - How to do DMA with ISA (and LPC) devices.
30DMA-attributes.txt
31 - listing of the various possible attributes a DMA region can have
31DocBook/ 32DocBook/
32 - directory with DocBook templates etc. for kernel documentation. 33 - directory with DocBook templates etc. for kernel documentation.
34EDID/
35 - directory with info on customizing EDID for broken gfx/displays.
33HOWTO 36HOWTO
34 - the process and procedures of how to do Linux kernel development. 37 - the process and procedures of how to do Linux kernel development.
35IPMI.txt 38IPMI.txt
36 - info on Linux Intelligent Platform Management Interface (IPMI) Driver. 39 - info on Linux Intelligent Platform Management Interface (IPMI) Driver.
37IRQ-affinity.txt 40IRQ-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.
42IRQ-domain.txt
43 - info on inerrupt numbering and setting up IRQ domains.
39IRQ.txt 44IRQ.txt
40 - description of what an IRQ is. 45 - description of what an IRQ is.
46Intel-IOMMU.txt
47 - basic info on the Intel IOMMU virtualization support.
48Makefile
49 - some files in Documentation dir are actually sample code to build
41ManagementStyle 50ManagementStyle
42 - how to (attempt to) manage kernel hackers. 51 - how to (attempt to) manage kernel hackers.
43RCU/ 52RCU/
@@ -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.
67arm/ 76arm/
68 - directory with info about Linux on the ARM architecture. 77 - directory with info about Linux on the ARM architecture.
78arm64/
79 - directory with info about Linux on the 64 bit ARM architecture.
69atomic_ops.txt 80atomic_ops.txt
70 - semantics and behavior of atomic and bitmask operations. 81 - semantics and behavior of atomic and bitmask operations.
71auxdisplay/ 82auxdisplay/
72 - misc. LCD driver documentation (cfag12864b, ks0108). 83 - misc. LCD driver documentation (cfag12864b, ks0108).
84backlight/
85 - directory with info on controlling backlights in flat panel displays
86bad_memory.txt
87 - how to use kernel parameters to exclude bad RAM regions.
73basic_profiling.txt 88basic_profiling.txt
74 - basic instructions for those who wants to profile Linux kernel. 89 - basic instructions for those who wants to profile Linux kernel.
75binfmt_misc.txt 90binfmt_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.
81blockdev/ 96blockdev/
82 - info on block devices & drivers 97 - info on block devices & drivers
98braille-console.txt
99 - info on how to use serial devices for Braille support.
100bt8xxgpio.txt
101 - info on how to modify a bt8xx video card for GPIO usage.
83btmrvl.txt 102btmrvl.txt
84 - info on Marvell Bluetooth driver usage. 103 - info on Marvell Bluetooth driver usage.
104bus-devices/
105 - directory with info on TI GPMC (General Purpose Memory Controller)
85bus-virt-phys-mapping.txt 106bus-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.
87cachetlb.txt 108cachetlb.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.
91cgroups/ 112cgroups/
92 - cgroups features, including cpusets and memory controller. 113 - cgroups features, including cpusets and memory controller.
114circular-buffers.txt
115 - how to make use of the existing circular buffer infrastructure
116clk.txt
117 - info on the common clock framework
118coccinelle.txt
119 - info on how to get and use the Coccinelle code checking tool.
93connector/ 120connector/
94 - docs on the netlink based userspace<->kernel space communication mod. 121 - docs on the netlink based userspace<->kernel space communication mod.
95console/ 122console/
@@ -114,24 +141,42 @@ dcdbas.txt
114 - information on the Dell Systems Management Base Driver. 141 - information on the Dell Systems Management Base Driver.
115debugging-modules.txt 142debugging-modules.txt
116 - some notes on debugging modules after Linux 2.6.3. 143 - some notes on debugging modules after Linux 2.6.3.
144debugging-via-ohci1394.txt
145 - how to use firewire like a hardware debugger memory reader.
117dell_rbu.txt 146dell_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.
148development-process/
149 - how to work with the mainline kernel development process.
119device-mapper/ 150device-mapper/
120 - directory with info on Device Mapper. 151 - directory with info on Device Mapper.
121devices.txt 152devices.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.
154devicetree/
155 - directory with info on device tree files used by OF/PowerPC/ARM
156digsig.txt
157 -info on the Digital Signature Verification API
158dma-buf-sharing.txt
159 - the DMA Buffer Sharing API Guide
160dmaengine.txt
161 -the DMA Engine API Guide
123dontdiff 162dontdiff
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.
125driver-model/ 164driver-model/
126 - directory with info about Linux driver model. 165 - directory with info about Linux driver model.
127dvb/ 166dvb/
128 - info on Linux Digital Video Broadcast (DVB) subsystem. 167 - info on Linux Digital Video Broadcast (DVB) subsystem.
168dynamic-debug-howto.txt
169 - how to use the dynamic debug (dyndbg) feature.
129early-userspace/ 170early-userspace/
130 - info about initramfs, klibc, and userspace early during boot. 171 - info about initramfs, klibc, and userspace early during boot.
131edac.txt 172edac.txt
132 - information on EDAC - Error Detection And Correction 173 - information on EDAC - Error Detection And Correction
133eisa.txt 174eisa.txt
134 - info on EISA bus support. 175 - info on EISA bus support.
176email-clients.txt
177 - info on how to use e-mail to send un-mangled (git) patches.
178extcon/
179 - directory with porting guide for Android kernel switch driver.
135fault-injection/ 180fault-injection/
136 - dir with docs about the fault injection capabilities infrastructure. 181 - dir with docs about the fault injection capabilities infrastructure.
137fb/ 182fb/
@@ -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.
141firmware_class/ 186firmware_class/
142 - request_firmware() hotplug interface info. 187 - request_firmware() hotplug interface info.
188flexible-arrays.txt
189 - how to make use of flexible sized arrays in linux
143frv/ 190frv/
144 - Fujitsu FR-V Linux documentation. 191 - Fujitsu FR-V Linux documentation.
192futex-requeue-pi.txt
193 - info on requeueing of tasks from a non-PI futex to a PI futex
194gcov.txt
195 - use of GCC's coverage testing tool "gcov" with the Linux kernel
145gpio.txt 196gpio.txt
146 - overview of GPIO (General Purpose Input/Output) access conventions. 197 - overview of GPIO (General Purpose Input/Output) access conventions.
198hid/
199 - directory with information on human interface devices
147highuid.txt 200highuid.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.
202hwspinlock.txt
203 - hardware spinlock provides hardware assistance for synchronization
149timers/ 204timers/
150 - info on the timer related topics 205 - info on the timer related topics
151hw_random.txt 206hw_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.
163infiniband/ 218infiniband/
164 - directory with documents concerning Linux InfiniBand support. 219 - directory with documents concerning Linux InfiniBand support.
220init.txt
221 - what to do when the kernel can't find the 1st process to run.
165initrd.txt 222initrd.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.
167input/ 224input/
168 - info on Linux input device support. 225 - info on Linux input device support.
226intel_txt.txt
227 - info on intel Trusted Execution Technology (intel TXT).
169io-mapping.txt 228io-mapping.txt
170 - description of io_mapping functions in linux/io-mapping.h 229 - description of io_mapping functions in linux/io-mapping.h
171io_ordering.txt 230io_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.
183java.txt 242java.txt
184 - info on the in-kernel binary support for Java(tm). 243 - info on the in-kernel binary support for Java(tm).
244ja_JP/
245 - directory with Japanese translations of various documents
185kbuild/ 246kbuild/
186 - directory with info about the kernel build process. 247 - directory with info about the kernel build process.
187kdump/ 248kdump/
@@ -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.
193kernel-parameters.txt 254kernel-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.
256kmemcheck.txt
257 - info on dynamic checker that detects uses of uninitialized memory.
258kmemleak.txt
259 - info on how to make use of the kernel memory leak detection system
260ko_KR/
261 - directory with Korean translations of various documents
195kobject.txt 262kobject.txt
196 - info of the kobject infrastructure of the Linux kernel. 263 - info of the kobject infrastructure of the Linux kernel.
197kprobes.txt 264kprobes.txt
@@ -208,6 +275,8 @@ local_ops.txt
208 - semantics and behavior of local atomic operations. 275 - semantics and behavior of local atomic operations.
209lockdep-design.txt 276lockdep-design.txt
210 - documentation on the runtime locking correctness validator. 277 - documentation on the runtime locking correctness validator.
278lockstat.txt
279 - info on collecting statistics on locks (and contention).
211lockup-watchdogs.txt 280lockup-watchdogs.txt
212 - info on soft and hard lockup detectors (aka nmi_watchdog). 281 - info on soft and hard lockup detectors (aka nmi_watchdog).
213logo.gif 282logo.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.
221md.txt 290md.txt
222 - info on boot arguments for the multiple devices driver. 291 - info on boot arguments for the multiple devices driver.
292media-framework.txt
293 - info on media framework, its data structures, functions and usage.
223memory-barriers.txt 294memory-barriers.txt
224 - info on Linux kernel memory barriers. 295 - info on Linux kernel memory barriers.
296memory-devices/
297 - directory with info on parts like the Texas Instruments EMIF driver
225memory-hotplug.txt 298memory-hotplug.txt
226 - Hotpluggable memory support, how to use and current status. 299 - Hotpluggable memory support, how to use and current status.
227memory.txt 300memory.txt
228 - info on typical Linux memory problems. 301 - info on typical Linux memory problems.
229mips/ 302mips/
230 - directory with info about Linux on MIPS architecture. 303 - directory with info about Linux on MIPS architecture.
304misc-devices/
305 - directory with info about devices using the misc dev subsystem
231mmc/ 306mmc/
232 - directory with info about the MMC subsystem 307 - directory with info about the MMC subsystem
308mn10300/
309 - directory with info about the mn10300 architecture port
310mtd/
311 - directory with info about memory technology devices (flash)
233mono.txt 312mono.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.
235mutex-design.txt 314mutex-design.txt
@@ -240,6 +319,8 @@ netlabel/
240 - directory with information on the NetLabel subsystem. 319 - directory with information on the NetLabel subsystem.
241networking/ 320networking/
242 - directory with info on various aspects of networking with Linux. 321 - directory with info on various aspects of networking with Linux.
322nfc/
323 - directory relating info about Near Field Communications support.
243nommu-mmap.txt 324nommu-mmap.txt
244 - documentation about no-mmu memory mapping support. 325 - documentation about no-mmu memory mapping support.
245numastat.txt 326numastat.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.
257pcmcia/ 338pcmcia/
258 - info on the Linux PCMCIA driver. 339 - info on the Linux PCMCIA driver.
340percpu-rw-semaphore.txt
341 - RCU based read-write semaphore optimized for locking for reading
259pi-futex.txt 342pi-futex.txt
260 - documentation on lightweight PI-futexes. 343 - documentation on lightweight priority inheritance futexes.
344pinctrl.txt
345 - info on pinctrl subsystem and the PINMUX/PINCONF and drivers
261pnp.txt 346pnp.txt
262 - Linux Plug and Play documentation. 347 - Linux Plug and Play documentation.
263power/ 348power/
264 - directory with info on Linux PCI power management. 349 - directory with info on Linux PCI power management.
265powerpc/ 350powerpc/
266 - directory with info on using Linux with the PowerPC. 351 - directory with info on using Linux with the PowerPC.
352prctl/
353 - directory with info on the priveledge control subsystem
267preempt-locking.txt 354preempt-locking.txt
268 - info on locking under a preemptive kernel. 355 - info on locking under a preemptive kernel.
269printk-formats.txt 356printk-formats.txt
270 - how to get printk format specifiers right 357 - how to get printk format specifiers right
358pps/
359 - directory with information on the pulse-per-second support
360ptp/
361 - directory with info on support for IEEE 1588 PTP clocks in Linux.
362pwm.txt
363 - info on the pulse width modulation driver subsystem
271ramoops.txt 364ramoops.txt
272 - documentation of the ramoops oops/panic logging module. 365 - documentation of the ramoops oops/panic logging module.
366rapidio/
367 - directory with info on RapidIO packet-based fabric interconnect
273rbtree.txt 368rbtree.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.
370remoteproc.txt
371 - info on how to handle remote processor (e.g. AMP) offloads/usage.
372rfkill.txt
373 - info on the radio frequency kill switch subsystem/support.
275robust-futex-ABI.txt 374robust-futex-ABI.txt
276 - documentation of the robust futex ABI. 375 - documentation of the robust futex ABI.
277robust-futexes.txt 376robust-futexes.txt
278 - a description of what robust futexes are. 377 - a description of what robust futexes are.
378rpmsg.txt
379 - info on the Remote Processor Messaging (rpmsg) Framework
279rt-mutex-design.txt 380rt-mutex-design.txt
280 - description of the RealTime mutex implementation design. 381 - description of the RealTime mutex implementation design.
281rt-mutex.txt 382rt-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.
301sh/ 402sh/
302 - directory with info on porting Linux to a new architecture. 403 - directory with info on porting Linux to a new architecture.
404smsc_ece1099.txt
405 -info on the smsc Keyboard Scan Expansion/GPIO Expansion device.
303sound/ 406sound/
304 - directory with info on sound card support. 407 - directory with info on sound card support.
305sparc/
306 - directory with info on using Linux on Sparc architecture.
307sparse.txt 408sparse.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.
309spi/ 410spi/
@@ -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.
315stable_kernel_rules.txt 416stable_kernel_rules.txt
316 - rules and procedures for the -stable kernel releases. 417 - rules and procedures for the -stable kernel releases.
418static-keys.txt
419 - info on how static keys allow debug code in hotpaths via patching
317svga.txt 420svga.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.
319sysfs-rules.txt 422sysfs-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.
323sysrq.txt 426sysrq.txt
324 - info on the magic SysRq key. 427 - info on the magic SysRq key.
325telephony/ 428target/
326 - directory with info on telephony (e.g. voice over IP) support. 429 - directory with info on generating TCM v4 fabric .ko modules
430thermal/
431 - directory with information on managing thermal issues (CPU/temp)
432trace/
433 - directory with info on tracing technologies within linux
434unaligned-memory-access.txt
435 - info on how to avoid arch breaking unaligned memory access in code.
327unicode.txt 436unicode.txt
328 - info on the Unicode character/font mapping used in Linux. 437 - info on the Unicode character/font mapping used in Linux.
329unshare.txt 438unshare.txt
330 - description of the Linux unshare system call. 439 - description of the Linux unshare system call.
331usb/ 440usb/
332 - directory with info regarding the Universal Serial Bus. 441 - directory with info regarding the Universal Serial Bus.
442vDSO/
443 - directory with info regarding virtual dynamic shared objects
444vfio.txt
445 - info on Virtual Function I/O used in guest/hypervisor instances.
446vgaarbiter.txt
447 - info on enable/disable the legacy decoding on different VGA devices
333video-output.txt 448video-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.
335video4linux/ 450video4linux/
336 - directory with info regarding video/TV/radio cards and linux. 451 - directory with info regarding video/TV/radio cards and linux.
452virtual/
453 - directory with information on the various linux virtualizations.
337vm/ 454vm/
338 - directory with info on the Linux vm code. 455 - directory with info on the Linux vm code.
456vme_api.txt
457 - file relating info on the VME bus API in linux
339volatile-considered-harmful.txt 458volatile-considered-harmful.txt
340 - Why the "volatile" type class should not be used 459 - Why the "volatile" type class should not be used
341w1/ 460w1/
342 - directory with documents regarding the 1-wire (w1) subsystem. 461 - directory with documents regarding the 1-wire (w1) subsystem.
343watchdog/ 462watchdog/
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". ;-)
464wimax/
465 - directory with info about Intel Wireless Wimax Connections
466workqueue.txt
467 - information on the Concurrency Managed Workqueue implementation
345x86/x86_64/ 468x86/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.
470xtensa/
471 - directory with documents relating to arch/xtensa port/implementation
472xz.txt
473 - how to make use of the XZ data compression within linux kernel
474zh_CN/
475 - directory with Chinese translations of various documents
347zorro.txt 476zorro.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 @@
1What: /sys/class/misc/tpmX/device/
2Date: April 2005
3KernelVersion: 2.6.12
4Contact: tpmdd-devel@lists.sf.net
5Description: The device/ directory under a specific TPM instance exposes
6 the properties of that TPM chip
7
8
9What: /sys/class/misc/tpmX/device/active
10Date: April 2006
11KernelVersion: 2.6.17
12Contact: tpmdd-devel@lists.sf.net
13Description: 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
21What: /sys/class/misc/tpmX/device/cancel
22Date: June 2005
23KernelVersion: 2.6.13
24Contact: tpmdd-devel@lists.sf.net
25Description: 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
29What: /sys/class/misc/tpmX/device/caps
30Date: April 2005
31KernelVersion: 2.6.12
32Contact: tpmdd-devel@lists.sf.net
33Description: 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
46What: /sys/class/misc/tpmX/device/durations
47Date: March 2011
48KernelVersion: 3.1
49Contact: tpmdd-devel@lists.sf.net
50Description: 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
69What: /sys/class/misc/tpmX/device/enabled
70Date: April 2006
71KernelVersion: 2.6.17
72Contact: tpmdd-devel@lists.sf.net
73Description: 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
78What: /sys/class/misc/tpmX/device/owned
79Date: April 2006
80KernelVersion: 2.6.17
81Contact: tpmdd-devel@lists.sf.net
82Description: 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
86What: /sys/class/misc/tpmX/device/pcrs
87Date: April 2005
88KernelVersion: 2.6.12
89Contact: tpmdd-devel@lists.sf.net
90Description: 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
109What: /sys/class/misc/tpmX/device/pubek
110Date: April 2005
111KernelVersion: 2.6.12
112Contact: tpmdd-devel@lists.sf.net
113Description: 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
161What: /sys/class/misc/tpmX/device/temp_deactivated
162Date: April 2006
163KernelVersion: 2.6.17
164Contact: tpmdd-devel@lists.sf.net
165Description: 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
170What: /sys/class/misc/tpmX/device/timeouts
171Date: March 2011
172KernelVersion: 3.1
173Contact: tpmdd-devel@lists.sf.net
174Description: 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 @@
1Where: /dev/pstore/... 1Where: /sys/fs/pstore/... (or /dev/pstore/...)
2Date: March 2011 2Date: March 2011
3Kernel Version: 2.6.39 3Kernel Version: 2.6.39
4Contact: tony.luck@intel.com 4Contact: 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 @@
1What: /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
11Date: 2013/01/08
12
13Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
14
15Description: 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
30What: /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
39Date: 2013/01/08
40
41Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
42 Linux Powerpc mailing list <linuxppc-dev@ozlabs.org>
43
44Description: 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 @@
1What: /sys/bus/iio/devices/iio:deviceX/in_gyro_matrix
2What: /sys/bus/iio/devices/iio:deviceX/in_accel_matrix
3What: /sys/bus/iio/devices/iio:deviceX/in_magn_matrix
4KernelVersion: 3.4.0
5Contact: linux-iio@vger.kernel.org
6Description:
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>
227Description: 227Description:
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
231What: /sys/bus/usb/devices/.../(hub interface)/portX/connect_type
232Date: January 2013
233Contact: Lan Tianyu <tianyu.lan@intel.com>
234Description:
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
52stable_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 @@
1What: /sys/devices/.../power_resources_D0/
2Date: January 2013
3Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4Description:
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 @@
1What: /sys/devices/.../power_resources_D1/
2Date: January 2013
3Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4Description:
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 @@
1What: /sys/devices/.../power_resources_D2/
2Date: January 2013
3Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4Description:
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 @@
1What: /sys/devices/.../power_resources_D3hot/
2Date: January 2013
3Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4Description:
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 @@
1What: /sys/devices/.../power_state
2Date: January 2013
3Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4Description:
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 @@
1What: /sys/devices/.../real_power_state
2Date: January 2013
3Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4Description:
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 @@
1What: /sys/devices/.../resource_in_use
2Date: January 2013
3Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4Description:
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
70What: /sys/devices/system/cpu/cpu#/node
71Date: October 2009
72Contact: Linux memory management mailing list <linux-mm@kvack.org>
73Description: 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
84What: /sys/devices/system/cpu/cpu#/topology/core_id 70What: /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 @@
1What: /sys/class/leds/SRWS1::<serial>::RPM1
2What: /sys/class/leds/SRWS1::<serial>::RPM2
3What: /sys/class/leds/SRWS1::<serial>::RPM3
4What: /sys/class/leds/SRWS1::<serial>::RPM4
5What: /sys/class/leds/SRWS1::<serial>::RPM5
6What: /sys/class/leds/SRWS1::<serial>::RPM6
7What: /sys/class/leds/SRWS1::<serial>::RPM7
8What: /sys/class/leds/SRWS1::<serial>::RPM8
9What: /sys/class/leds/SRWS1::<serial>::RPM9
10What: /sys/class/leds/SRWS1::<serial>::RPM10
11What: /sys/class/leds/SRWS1::<serial>::RPM11
12What: /sys/class/leds/SRWS1::<serial>::RPM12
13What: /sys/class/leds/SRWS1::<serial>::RPM13
14What: /sys/class/leds/SRWS1::<serial>::RPM14
15What: /sys/class/leds/SRWS1::<serial>::RPM15
16What: /sys/class/leds/SRWS1::<serial>::RPMALL
17Date: Jan 2013
18KernelVersion: 3.9
19Contact: Simon Wood <simon@mungewell.org>
20Description: 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 @@
1What: /sys/class/leds/blink1::<serial>/rgb
2Date: January 2013
3Contact: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
4Description: 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
10What: /sys/class/leds/blink1::<serial>/fade
11Date: January 2013
12Contact: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
13Description: 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
18What: /sys/class/leds/blink1::<serial>/play
19Date: January 2013
20Contact: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
21Description: 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 @@
1What: /sys/kernel/mm/ksm
2Date: September 2009
3KernelVersion: 2.6.32
4Contact: Linux memory management mailing list <linux-mm@kvack.org>
5Description: Interface for Kernel Samepage Merging (KSM)
6
7What: /sys/kernel/mm/ksm/full_scans
8What: /sys/kernel/mm/ksm/pages_shared
9What: /sys/kernel/mm/ksm/pages_sharing
10What: /sys/kernel/mm/ksm/pages_to_scan
11What: /sys/kernel/mm/ksm/pages_unshared
12What: /sys/kernel/mm/ksm/pages_volatile
13What: /sys/kernel/mm/ksm/run
14What: /sys/kernel/mm/ksm/sleep_millisecs
15Date: September 2009
16Contact: Linux memory management mailing list <linux-mm@kvack.org>
17Description: 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
45What: /sys/kernel/mm/ksm/merge_across_nodes
46Date: January 2013
47KernelVersion: 3.9
48Contact: Linux memory management mailing list <linux-mm@kvack.org>
49Description: 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 @@
1What: /sys/devices/platform/ts5500/adc
2Date: January 2013
3KernelVersion: 3.7
4Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com>
5Description:
6 Indicates the presence of an A/D Converter. If it is present,
7 it will display "1", otherwise "0".
8
9What: /sys/devices/platform/ts5500/ereset
10Date: January 2013
11KernelVersion: 3.7
12Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com>
13Description:
14 Indicates the presence of an external reset. If it is present,
15 it will display "1", otherwise "0".
16
17What: /sys/devices/platform/ts5500/id
18Date: January 2013
19KernelVersion: 3.7
20Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com>
21Description:
22 Product ID of the TS board. TS-5500 ID is 0x60.
23
24What: /sys/devices/platform/ts5500/jumpers
25Date: January 2013
26KernelVersion: 3.7
27Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com>
28Description:
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
33What: /sys/devices/platform/ts5500/rs485
34Date: January 2013
35KernelVersion: 3.7
36Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com>
37Description:
38 Indicates the presence of the RS485 option. If it is present,
39 it will display "1", otherwise "0".
40
41What: /sys/devices/platform/ts5500/sram
42Date: January 2013
43KernelVersion: 3.7
44Contact: "Savoir-faire Linux Inc." <kernel@savoirfairelinux.com>
45Description:
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
549Features that might still be considered unstable should be defined as 549Seriously dangerous features (such as write support for certain
550dependent on "EXPERIMENTAL":
551
552config SLUB
553 depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT
554 bool "SLUB (Unqueued Allocator)"
555 ...
556
557while seriously dangerous features (such as write support for certain
558filesystems) should advertise this prominently in their prompt string: 550filesystems) should advertise this prominently in their prompt string:
559 551
560config ADFS_FS_RW 552config 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-&lt;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-&lt;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", &amp;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", &amp;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>
8API is to replace the ioctl's were the <link linkend="dvb-frontend-parameters"> 8API is to replace the ioctl's were the <link linkend="dvb-frontend-parameters">
9struct <constant>dvb_frontend_parameters</constant></link> were used.</para> 9struct <constant>dvb_frontend_parameters</constant></link> were used.</para>
10<section id="dtv-stats">
11<title>DTV stats type</title>
12<programlisting>
13struct 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
27struct 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
14struct dtv_property { 39struct 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
611are available for the device.</para> 611are 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
614even USB cameras follow some well known video standard. It might have 614even USB cameras follow some well known video standard. It might have
615been better to explicitly indicate elsewhere if a device cannot live 615been 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
210deprecated. New drivers and applications should use the <link
211linkend="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
223control 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
488different or the same device (known as the importer role), or both. This 488different or the same device (known as the importer role), or both. This
489section describes the DMABUF importer role API in V4L2.</para> 489section 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
492details about exporting V4L2 buffers as DMABUF file descriptors.</para> 492details 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
745system time (as returned by the <function>gettimeofday()</function> 745 byte was captured, as returned by the
746function) when the first data byte was captured. For output streams 746 <function>clock_gettime()</function> function for the relevant
747the data will not be displayed before this time, secondary to the 747 clock id; see <constant>V4L2_BUF_FLAG_TIMESTAMP_*</constant> in
748nominal frame rate determined by the current video standard in 748 <xref linkend="buffer-flags" />. For output streams the data
749enqueued order. Applications can for example zero this field to 749 will not be displayed before this time, secondary to the nominal
750display frames as soon as possible. The driver stores the time at 750 frame rate determined by the current video standard in enqueued
751which 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
753applications to monitor the drift between the video and system 753 the first data byte was actually sent out in the
754clock.</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
1114in this buffer has not been created by the CPU but by some DMA-capable unit, 1116in this buffer has not been created by the CPU but by some DMA-capable unit,
1115in which case caches have not been used.</entry> 1117in 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&nbsp;+&nbsp;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&nbsp;+&nbsp;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&nbsp;+&nbsp;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&nbsp;+&nbsp;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
140applications. --> 140applications. -->
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
84DMABUF files into V4L2 nodes. It is recommended to close a DMABUF file when it 84DMABUF files into V4L2 nodes. It is recommended to close a DMABUF file when it
85is no longer used to allow the associated memory to be reclaimed. </para> 85is 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>
95int buffer_export(int v4lfd, &v4l2-buf-type; bt, int index, int *dmafd) 94int 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>
117int buffer_export_mp(int v4lfd, &v4l2-buf-type; bt, int index, 116int 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
64of bounds drivers can choose to take the closest valid value or return 64of bounds drivers can choose to take the closest valid value or return
65an &ERANGE;, whatever seems more appropriate. However, 65an &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
67return the actual new value.</para> 67return the actual new value. If the <structfield>value</structfield>
68is inappropriate for the control (e.g. if it refers to an unsupported
69menu 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
70control classes the &VIDIOC-G-EXT-CTRLS;, &VIDIOC-S-EXT-CTRLS; or 72control 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
102invalid.</para> 104invalid or the <structfield>value</structfield> is inappropriate for
105the given control (i.e. if a menu item is selected that is not supported
106by 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
107the closest valid value or return an &ERANGE;, whatever seems more 107the closest valid value or return an &ERANGE;, whatever seems more
108appropriate. In the first case the new value is set in 108appropriate. 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
110given menu index is not supported by the menu control), then this will
111also 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
112values are correct. This prevents the situation where only some of the 114values 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
203to <structfield>count</structfield>, then no actual changes were made to 205associated with a particular control, then <structfield>error_idx</structfield>
204controls. In other words, the error was not associated with setting a particular 206is set to the index of that control. If the error is not related to a specific
205control. If it is another value, then only the controls up to <structfield>error_idx-1</structfield> 207control, or the validation step failed (see below), then
206were modified and control <structfield>error_idx</structfield> is the one that 208<structfield>error_idx</structfield> is set to <structfield>count</structfield>.
207caused the error. The <structfield>error_idx</structfield> value is undefined 209The value is undefined if the ioctl returned 0 (success).</para>
208if the ioctl returned 0 (success).</entry> 210
211<para>Before controls are read from/written to hardware a validation step
212takes place: this checks if all controls in the list are valid controls,
213if no attempt is made to write to a read-only control or read from a write-only
214control, and any other up-front checks that can be done without accessing the
215hardware. The exact validations done during this step are driver dependent
216since some checks might require hardware access for some devices, thus making
217it impossible to do those checks up-front. However, drivers should make a
218best-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
221to easy-to-avoid problems. But it leads to another problem: the application needs to
222know whether an error came from the validation step (meaning that the hardware
223was 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>
226to <structfield>count</structfield> if the validation failed. This has the
227unfortunate side-effect that it is not possible to see which control failed the
228validation. If the validation was successful and the error happened while
229accessing 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
232state of the remaining controls is undefined.</para>
233
234<para>Since <constant>VIDIOC_TRY_EXT_CTRLS</constant> does not access hardware
235there is also no need to handle the validation step in this special way,
236so <structfield>error_idx</structfield> will just be set to the control that
237failed the validation step instead of to <structfield>count</structfield>.
238This means that if <constant>VIDIOC_S_EXT_CTRLS</constant> fails with
239<structfield>error_idx</structfield> set to <structfield>count</structfield>,
240then you can call <constant>VIDIOC_TRY_EXT_CTRLS</constant> to try to discover
241the actual control that failed the validation step. Unfortunately, there
242is 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>
301is invalid or the &v4l2-ext-controls; 336is 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
339index is not supported by the driver). This error code is
303also returned by the <constant>VIDIOC_S_EXT_CTRLS</constant> and 340also 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
305control values are in conflict.</para> 342control 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.
80For example: "Yoyodyne TV/FM". One driver may support different brands 80For example: "Yoyodyne TV/FM". One driver may support different brands
81or models of video hardware. This information is intended for users, 81or models of video hardware. This information is intended for users,
82for example in a menu of available devices. Since multiple TV cards of 82for 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(&quot;/sys/class/uio/uio0/device/config&quot;, O_RDWR); 986 configfd = open(&quot;/sys/class/uio/uio0/device/config&quot;, O_RDWR);
987 if (uiofd &lt; 0) { 987 if (configfd &lt; 0) {
988 perror(&quot;config open:&quot;); 988 perror(&quot;config open:&quot;);
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.
28To create binary EDID and C source code files from the existing data 28To create binary EDID and C source code files from the existing data
29material, simply type "make". 29material, simply type "make".
30 30
31If you want to create your own EDID file, copy the file 1024x768.S and 31If you want to create your own EDID file, copy the file 1024x768.S,
32replace the settings with your own data. The CRC value in the last line 32replace the settings with your own data and add a new target to the
33Makefile. Please note that the EDID data structure expects the timing
34values in a different way as compared to the standard X11 format.
35
36X11:
37HTimings: hdisp hsyncstart hsyncend htotal
38VTimings: vdisp vsyncstart vsyncend vtotal
39
40EDID:
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
51The CRC value in the last line
33 #define CRC 0x55 52 #define CRC 0x55
34is a bit tricky. After a first version of the binary data set is 53also is a bit tricky. After a first version of the binary data set is
35created, it must be be checked with the "edid-decode" utility which will 54created, it must be checked with the "edid-decode" utility which will
36most probably complain about a wrong CRC. Fortunately, the utility also 55most probably complain about a wrong CRC. Fortunately, the utility also
37displays the correct CRC which must then be inserted into the source 56displays the correct CRC which must then be inserted into the source
38file. After the make procedure is repeated, the EDID data set is ready 57file. 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()
127returns as soon as it finds any constraint that doesn't allow the 127returns as soon as it finds any constraint that doesn't allow the
128call to succeed. 128call to succeed.
129 129
1304.2.3 pci_disable_msi 1304.2.3 pci_enable_msi_block_auto
131
132int pci_enable_msi_block_auto(struct pci_dev *dev, unsigned int *count)
133
134This variation on pci_enable_msi() call allows a device driver to request
135the maximum possible number of MSIs. The MSI specification only allows
136interrupts to be allocated in powers of two, up to a maximum of 2^5 (32).
137
138If this function returns a positive number, it indicates that it has
139succeeded and the returned value is the number of allocated interrupts. In
140this case, the function enables MSI on this device and updates dev->irq to
141be the lowest of the new interrupts assigned to it. The other interrupts
142assigned to the device are in the range dev->irq to dev->irq + returned
143value - 1.
144
145If this function returns a negative number, it indicates an error and
146the driver should not attempt to request any more MSI interrupts for
147this device.
148
149If the device driver needs to know the number of interrupts the device
150supports it can pass the pointer count where that number is stored. The
151device driver must decide what action to take if pci_enable_msi_block_auto()
152succeeds, but returns a value less than the number of interrupts supported.
153If the device driver does not need to know the number of interrupts
154supported, it can set the pointer count to NULL.
155
1564.2.4 pci_disable_msi
131 157
132void pci_disable_msi(struct pci_dev *dev) 158void pci_disable_msi(struct pci_dev *dev)
133 159
134This function should be used to undo the effect of pci_enable_msi() or 160This function should be used to undo the effect of pci_enable_msi() or
135pci_enable_msi_block(). Calling it restores dev->irq to the pin-based 161pci_enable_msi_block() or pci_enable_msi_block_auto(). Calling it restores
136interrupt number and frees the previously allocated message signaled 162dev->irq to the pin-based interrupt number and frees the previously
137interrupt(s). The interrupt may subsequently be assigned to another 163allocated message signaled interrupt(s). The interrupt may subsequently be
138device, so drivers should not cache the value of dev->irq. 164assigned to another device, so drivers should not cache the value of
165dev->irq.
139 166
140Before calling this function, a device driver must always call free_irq() 167Before calling this function, a device driver must always call free_irq()
141on any interrupt for which it previously called request_irq(). 168on 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.
63Currently the kernel is not able to automatically determine from which ACPI 63Currently the kernel is not able to automatically determine from which ACPI
64device it should make the corresponding platform device so we need to add 64device it should make the corresponding platform device so we need to add
65the ACPI device explicitly to acpi_platform_device_ids list defined in 65the ACPI device explicitly to acpi_platform_device_ids list defined in
66drivers/acpi/scan.c. This limitation is only for the platform devices, SPI 66drivers/acpi/acpi_platform.c. This limitation is only for the platform
67and I2C devices are created automatically as described below. 67devices, SPI and I2C devices are created automatically as described below.
68 68
69SPI serial bus support 69SPI 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 @@
1ACPI Scan Handlers
2
3Copyright (C) 2012, Intel Corporation
4Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
5
6During system initialization and ACPI-based device hot-add, the ACPI namespace
7is scanned in search of device objects that generally represent various pieces
8of hardware. This causes a struct acpi_device object to be created and
9registered with the driver core for every device object in the ACPI namespace
10and the hierarchy of those struct acpi_device objects reflects the namespace
11layout (i.e. parent device objects in the namespace are represented by parent
12struct acpi_device objects and analogously for their children). Those struct
13acpi_device objects are referred to as "device nodes" in what follows, but they
14should not be confused with struct device_node objects used by the Device Trees
15parsing code (although their role is analogous to the role of those objects).
16
17During ACPI-based device hot-remove device nodes representing pieces of hardware
18being removed are unregistered and deleted.
19
20The core ACPI namespace scanning code in drivers/acpi/scan.c carries out basic
21initialization of device nodes, such as retrieving common configuration
22information from the device objects represented by them and populating them with
23appropriate data, but some of them require additional handling after they have
24been registered. For example, if the given device node represents a PCI host
25bridge, its registration should cause the PCI bus under that bridge to be
26enumerated and PCI devices on that bus to be registered with the driver core.
27Similarly, if the device node represents a PCI interrupt link, it is necessary
28to configure that link so that the kernel can use it.
29
30Those additional configuration tasks usually depend on the type of the hardware
31component represented by the given device node which can be determined on the
32basis of the device node's hardware ID (HID). They are performed by objects
33called ACPI scan handlers represented by the following structure:
34
35struct 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
42where ids is the list of IDs of device nodes the given handler is supposed to
43take care of, list_node is the hook to the global list of ACPI scan handlers
44maintained by the ACPI core and the .attach() and .detach() callbacks are
45executed, respectively, after registration of new device nodes and before
46unregistration of device nodes the handler attached to previously.
47
48The namespace scanning function, acpi_bus_scan(), first registers all of the
49device nodes in the given namespace scope with the driver core. Then, it tries
50to match a scan handler against each of them using the ids arrays of the
51available scan handlers. If a matching scan handler is found, its .attach()
52callback is executed for the given device node. If that callback returns 1,
53that means that the handler has claimed the device node and is now responsible
54for carrying out any additional configuration tasks related to it. It also will
55be responsible for preparing the device node for unregistration in that case.
56The device node's handler field is then populated with the address of the scan
57handler that has claimed it.
58
59If the .attach() callback returns 0, it means that the device node is not
60interesting to the given scan handler and may be matched against the next scan
61handler in the list. If it returns a (negative) error code, that means that
62the namespace scan should be terminated due to a serious error. The error code
63returned should then reflect the type of the error.
64
65The namespace trimming function, acpi_bus_trim(), first executes .detach()
66callbacks from the scan handlers of all device nodes in the given namespace
67scope (if they have scan handlers). Next, it unregisters all of the device
68nodes in that scope.
69
70ACPI scan handlers can be added to the list maintained by the ACPI core with the
71help of the acpi_scan_add_handler() function taking a pointer to the new scan
72handler as an argument. The order in which scan handlers are added to the list
73is the order in which they are matched against device nodes during namespace
74scans.
75
76All scan handles must be added to the list before acpi_bus_scan() is run for the
77first 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
36ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap] 36ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap]
37 37
38ffffffbffbc00000 ffffffbffbdfffff 2MB earlyprintk device
39
38ffffffbffbe00000 ffffffbffbe0ffff 64KB PCI I/O space 40ffffffbffbe00000 ffffffbffbe0ffff 64KB PCI I/O space
39 41
40ffffffbbffff0000 ffffffbcffffffff ~2MB [guard] 42ffffffbbffff0000 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
253the given new value. It returns the old value that the atomic variable v had 253the given new value. It returns the old value that the atomic variable v had
254just before the operation. 254just before the operation.
255 255
256atomic_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
258This performs an atomic compare exchange operation on the atomic value v, 260This 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
4Backlight driver for LP855x ICs 4Backlight driver for LP855x ICs
5 5
6Supported chips: 6Supported chips:
7 Texas Instruments LP8550, LP8551, LP8552, LP8553 and LP8556 7 Texas Instruments LP8550, LP8551, LP8552, LP8553, LP8556 and LP8557
8 8
9Author: Milo(Woogyom) Kim <milo.kim@ti.com> 9Author: Milo(Woogyom) Kim <milo.kim@ti.com>
10 10
@@ -24,7 +24,7 @@ Value : pwm based or register based
24 24
252) chip_id 252) chip_id
26The lp855x chip id. 26The lp855x chip id.
27Value : lp8550/lp8551/lp8552/lp8553/lp8556 27Value : lp8550/lp8551/lp8552/lp8553/lp8556/lp8557
28 28
29Platform data for lp855x 29Platform 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.
5cgroups.txt 5cgroups.txt
6 - Control Groups definition, implementation details, examples and API. 6 - Control Groups definition, implementation details, examples and API.
7cgroup_event_listener.c
8 - A user program for cgroup listener.
9cpuacct.txt 7cpuacct.txt
10 - CPU Accounting Controller; account CPU usage for groups of tasks. 8 - CPU Accounting Controller; account CPU usage for groups of tasks.
11cpusets.txt 9cpusets.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
20int 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
101out:
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
111For setting some of these values, the frequency table helpers might be 111For setting some of these values, the frequency table helpers might be
112helpful. See the section 2 for more information on them. 112helpful. See the section 2 for more information on them.
113 113
114SMP 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()
116routine must initialize policy->cpus with mask of all possible cpus (Online +
117Offline) that share the clock. Then the core would copy this mask onto
118policy->related_cpus and will reset policy->cpus to carry only online cpus.
119
114 120
1151.3 verify 1211.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
193affected_cpus : List of CPUs that require software coordination 193affected_cpus : List of Online CPUs that require software
194 of frequency. 194 coordination of frequency.
195 195
196related_cpus : List of CPUs that need some sort of frequency 196related_cpus : List of Online + Offline CPUs that need software
197 coordination, whether software or hardware. 197 coordination of frequency.
198 198
199scaling_driver : Hardware driver for cpufreq. 199scaling_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
1411.2.0 Handle creation of arrays that contain failed devices. 1411.2.0 Handle creation of arrays that contain failed devices.
1421.3.0 Added support for RAID 10 1421.3.0 Added support for RAID 10
1431.3.1 Allow device replacement/rebuild for RAID 10 1431.3.1 Allow device replacement/rebuild for RAID 10
1441.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
3Required properties: 3Required 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
7Example: 8Example:
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
3ARM Cortex-A7 and Cortex-A15 have a per-core architected timer, which 3ARM cores may have a per-core architected timer, which provides per-cpu timers.
4provides per-cpu timers.
5 4
6The timer is attached to a GIC to deliver its per-processor interrupts. 5The 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
43Optional 43Optional
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
79Example: 79Example:
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 @@
1Marvell Kirkwood Platforms Device Tree Bindings
2-----------------------------------------------
3
4Boards with a SoC of the Marvell Kirkwood
5shall have the following property:
6
7Required root node property:
8
9compatible: must contain "marvell,kirkwood";
10
11In order to support the kirkwood cpufreq driver, there must be a node
12cpus/cpu@0 with three clocks, "cpu_clk", "ddrclk" and "powersave",
13where the "powersave" clock is a gating clock used to switch the CPU
14between the "cpu_clk" and the "ddrclk".
15
16Example:
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
3Firmware implementing the PSCI functions described in ARM document number
4ARM DEN 0022A ("Power State Coordination Interface System Software on ARM
5processors") can be used by Linux to initiate various CPU-centric power
6operations.
7
8Issue A of the specification describes functions for CPU suspend, hotplug
9and migration of secure software.
10
11Functions are invoked by trapping to the privilege level of the PSCI
12firmware (specified as part of the binding below) and passing arguments
13in a manner similar to that specified by AAPCS:
14
15 r0 => 32-bit Function ID / return value
16 {r1 - r3} => Parameters
17
18Note that the immediate field of the trapping instruction must be set
19to #0.
20
21
22Main 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
35Main 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
46Example:
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 @@
1prima2 "cb" evaluation board 1CSR SiRFprimaII and SiRFmarco device tree bindings.
2========================================
3
2Required root node properties: 4Required 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 @@
1ST-Ericsson Nomadik Device Tree Bindings
2
3For various board the "board" node may contain specific properties
4that pertain to this particular board, such as board-specific GPIOs.
5
6Boards with the Nomadik SoC include:
7
8S8815 "MiniKit" manufactured by Calao Systems:
9
10Required root node property:
11
12compatible="calaosystems,usb-s8815";
13
14Required node: usb-s8815
15
16Example:
17
18usb-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 @@
1NVIDIA Tegra device tree bindings 1NVIDIA Tegra device tree bindings
2------------------------------------------- 2-------------------------------------------
3 3
4Boards with the tegra20 SoC shall have the following properties: 4SoCs
5-------------------------------------------
5 6
6Required root node property: 7Each device tree must specify which Tegra SoC it uses, using one of the
8following compatible values:
7 9
8compatible = "nvidia,tegra20"; 10 nvidia,tegra20
11 nvidia,tegra30
9 12
10Boards with the tegra30 SoC shall have the following properties: 13Boards
14-------------------------------------------
11 15
12Required root node property: 16Each device tree must specify which one or more of the following
17board-specific compatible values:
13 18
14compatible = "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";
12Boards with the Wondermedia WM8650 SoC shall have the following properties: 12Boards with the Wondermedia WM8650 SoC shall have the following properties:
13Required root node property: 13Required root node property:
14compatible = "wm,wm8650"; 14compatible = "wm,wm8650";
15
16Boards with the Wondermedia WM8750 SoC shall have the following properties:
17Required root node property:
18compatible = "wm,wm8750";
19
20Boards with the Wondermedia WM8850 SoC shall have the following properties:
21Required root node property:
22compatible = "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 @@
1Device tree bindings for OMAP general purpose memory controllers (GPMC)
2
3The actual devices are instantiated from the child nodes of a GPMC node.
4
5Required 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
36Timing 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
64The following are only applicable to OMAP3+ and AM335x:
65 - gpmc,wr-access
66 - gpmc,wr-data-mux-bus
67
68
69Example 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
3Required 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
9The clock consumer should specify the desired clock by having the clock
10ID in its "clocks" phandle cell. The following is a full list of i.MX31
11clocks 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
75Examples:
76
77clks: 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
84uart1: 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
8916 xor1 XOR DMA 1 8916 xor1 XOR DMA 1
9017 crypto CESA engine 9017 crypto CESA engine
9118 pex1 PCIe Cntrl 1 9118 pex1 PCIe Cntrl 1
9219 ge1 Gigabit Ethernet 0 9219 ge1 Gigabit Ethernet 1
9320 tdm Time Division Mplx 9320 tdm Time Division Mplx
94 94
95Required properties: 95Required 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 @@
1NVIDIA Tegra20 Clock And Reset Controller
2
3This binding uses the common clock binding:
4Documentation/devicetree/bindings/clock/clock-bindings.txt
5
6The CAR (Clock And Reset) Controller on Tegra is the HW module responsible
7for muxing and gating Tegra's clocks, and setting their rates.
8
9Required 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
165Example 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
179Example 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 @@
1NVIDIA Tegra30 Clock And Reset Controller
2
3This binding uses the common clock binding:
4Documentation/devicetree/bindings/clock/clock-bindings.txt
5
6The CAR (Clock And Reset) Controller on Tegra is the HW module responsible
7for muxing and gating Tegra's clocks, and setting their rates.
8
9Required 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
222Example 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
236Example 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
3Required 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
9The clock consumer should specify the desired clock by having the clock
10ID in its "clocks" phandle cell. The following is a full list of prima2
11clocks 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
58Examples:
59
60clks: clock-controller@88000000 {
61 compatible = "sirf,prima2-clkc";
62 reg = <0x88000000 0x1000>;
63 interrupts = <3>;
64 #clock-cells = <1>;
65};
66
67i2c0: 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
108EXAMPLE 113EXAMPLE
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
12Optional properties: 12Optional 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
15Example: 19Example:
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
23Client drivers (device nodes requiring dma transfers from dev-to-mem or 30Client drivers (device nodes requiring dma transfers from dev-to-mem or
24mem-to-dev) should specify the DMA channel numbers using a two-value pair 31mem-to-dev) should specify the DMA channel numbers and dma channel names
25as shown below. 32as 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
3Generic binding to provide a way for a driver using DMA Engine to retrieve the
4DMA request or channel information that goes from a hardware device to a DMA
5controller.
6
7
8* DMA controller
9
10Required 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
15Optional 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
20Example:
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
37Client drivers should specify the DMA property using a phandle to the controller
38followed by DMA controller specific data.
39
40Required 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
56Examples:
57
581. 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
682. 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
753. 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
10Example: 30Example:
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 @@
1Samsung 2D Graphic Accelerator using DRM frame work
2
3Samsung FIMG2D is a graphics 2D accelerator which supports Bit Block Transfer.
4We set the drawing-context registers for configuring rendering parameters and
5then start rendering.
6This driver is for SOCs which contain G2D IPs with version 4.1.
7
8Required 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
17Example:
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 @@
1Device-Tree bindings for tilcdc DRM generic panel output driver
2
3Required 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
21Recommended properties:
22 - pinctrl-names, pinctrl-0: the pincontrol settings to configure
23 muxing properly for pins that connect to TFP410 device
24
25Example:
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 @@
1Device-Tree bindings for tilcdc DRM encoder slave output driver
2
3Required properties:
4 - compatible: value should be "ti,tilcdc,slave".
5 - i2c: the phandle for the i2c device the encoder slave is connected to
6
7Recommended properties:
8 - pinctrl-names, pinctrl-0: the pincontrol settings to configure
9 muxing properly for pins that connect to TFP410 device
10
11Example:
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 @@
1Device-Tree bindings for tilcdc DRM TFP410 output driver
2
3Required properties:
4 - compatible: value should be "ti,tilcdc,tfp410".
5 - i2c: the phandle for the i2c device to use for DDC
6
7Recommended 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
13Example:
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 @@
1Device-Tree bindings for tilcdc DRM driver
2
3Required 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
8Recommended 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
13Example:
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 @@
1Broadcom BCM2835 I2C controller
2
3Required 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
9Recommended properties:
10- clock-frequency : desired I2C bus clock frequency in Hz.
11
12Example:
13
14i2c@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 @@
1ina209 properties
2
3Required properties:
4- compatible: Must be "ti,ina209"
5- reg: I2C address
6
7Optional properties:
8
9- shunt-resistor
10 Shunt resistor value in micro-Ohm
11
12Example:
13
14temp-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 @@
1max6697 properties
2
3Required 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
18Optional 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
55Example:
56
57temp-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
3The KPP is designed to interface with a keypad matrix with 2-point contact
4or 3-point contact keys. The KPP is designed to simplify the software task
5of scanning a keypad matrix. The KPP is capable of detecting, debouncing,
6and decoding one or multiple keys pressed simultaneously on a keypad.
7
8Required 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
17clock(The clock for the KPP is provided by the SoCs automatically).
18
19Required Board Specific Properties:
20- pinctrl-names: The definition can be found at
21pinctrl/pinctrl-bindings.txt.
22
23- pinctrl-0: The definition can be found at
24pinctrl/pinctrl-bindings.txt.
25
26- linux,keymap: The definition can be found at
27bindings/input/matrix-keymap.txt.
28
29Example:
30kpp: 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 @@
1NXP LPC32xx Key Scan Interface 1NXP LPC32xx Key Scan Interface
2 2
3This binding is based on the matrix-keymap binding with the following
4changes:
5
3Required Properties: 6Required 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
17Note: keypad,num-rows and keypad,num-columns are required, and must be equal
18since LPC32xx only supports square matrices
19
17Example: 20Example:
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
11Optional properties: 11Optional properties:
12Properties for the number of rows and columns are optional because some
13drivers 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
12Some users of this binding might choose to specify secondary keymaps for 18Some users of this binding might choose to specify secondary keymaps for
13cases where there is a modifier key such as a Fn key. Proposed names 19cases where there is a modifier key such as a Fn key. Proposed names
14for said properties are "linux,fn-keymap" or with another descriptive 20for said properties are "linux,fn-keymap" or with another descriptive
@@ -17,3 +23,5 @@ word for the modifier other from "Fn".
17Example: 23Example:
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
2The key controller has maximum 24 pins to make matrix keypad. Any pin
3can be configured as row or column. The maximum column pin can be 8
4and maximum row pins can be 16 for Tegra20/Tegra30.
2 5
3Required properties: 6Required 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
6Optional properties, in addition to those specified by the shared 17Optional properties, in addition to those specified by the shared
7matrix-keyboard bindings: 18matrix-keyboard bindings:
@@ -19,5 +30,16 @@ Example:
19keyboard: keyboard { 30keyboard: 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.
6The keypad controller can sense a key-press and key-release and report the 6The keypad controller can sense a key-press and key-release and report the
7event using a interrupt to the cpu. 7event using a interrupt to the cpu.
8 8
9This binding is based on the matrix-keymap binding with the following
10changes:
11
12keypad,num-rows and keypad,num-columns are required.
13
9Required SoC Specific Properties: 14Required 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
14Required Board Specific Properties, in addition to those specified by
15the 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
22Optional Properties specific to linux: 19Optional 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 @@
1This binding is based on the matrix-keymap binding with the following
2changes:
3
4keypad,num-rows and keypad,num-columns are required.
1 5
2Required properties: 6Required 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 @@
1LED connected to PWM
2
3Required properties:
4- compatible : should be "pwm-leds".
5
6Each LED is represented as a sub-node of the pwm-leds device. Each
7node's name represents the name of the corresponding LED.
8
9LED 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
21Example:
22
23twl_pwm: pwm {
24 /* provides two PWMs (id 0, 1 for PWM1 and PWM2) */
25 compatible = "ti,twl6030-pwm";
26 #pwm-cells = <2>;
27};
28
29twl_pwmled: pwmled {
30 /* provides one PWM (id 0 for Charing indicator LED) */
31 compatible = "ti,twl6030-pwmled";
32 #pwm-cells = <2>;
33};
34
35pwmleds {
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 @@
1LEDs conected to tca6507
2
3Required properties:
4- compatible : should be : "ti,tca6507".
5
6Each led is represented as a sub-node of the ti,tca6507 device.
7
8LED 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
14Examples:
15
16tca6507@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 @@
1Device-Tree bindings for GPIO IR receiver
2
3Required properties:
4 - compatible: should be "gpio-ir-receiver".
5 - gpios: specifies GPIO used for IR signal reception.
6
7Optional properties:
8 - linux,rc-map-name: Linux specific remote control map name.
9
10Example 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
3Required 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
12Optional 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
16max8925 consists of a large and varied group of sub-devices:
17
18Device Supply Names Description
19------ ------------ -----------
20max8925-onkey : : On key
21max8925-rtc : : RTC
22max8925-regulator : : Regulators
23max8925-backlight : : Backlight
24max8925-touch : : Touchscreen
25max8925-power : : Charger
26
27Example:
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 @@
1TPS6507x Power Management Integrated Circuit
2
3Required 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
27Regulator 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
33Example:
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
3The Octeon DMA Engine transfers between the Boot Bus and main memory. 3The Octeon DMA Engine transfers between the Boot Bus and main memory.
4The DMA Engine will be refered to by phandle by any device that is 4The DMA Engine will be referred to by phandle by any device that is
5connected to it. 5connected to it.
6 6
7Properties: 7Properties:
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 @@
1Broadcom BCM2835 SDHCI controller
2
3This file documents differences between the core properties described
4by mmc.txt and the properties that represent the BCM2835 controller.
5
6Required properties:
7- compatible : Should be "brcm,bcm2835-sdhci".
8- clocks : The clock feeding the SDHCI controller.
9
10Example:
11
12sdhci: 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 @@
4The Synopsis designware mobile storage host controller is used to interface 4The Synopsis designware mobile storage host controller is used to interface
5a SoC with storage medium such as eMMC or SD/MMC cards. This file documents 5a SoC with storage medium such as eMMC or SD/MMC cards. This file documents
6differences between the core Synopsis dw mshc controller properties described 6differences between the core Synopsis dw mshc controller properties described
7by synposis-dw-mshc.txt and the properties used by the Samsung Exynos specific 7by synopsis-dw-mshc.txt and the properties used by the Samsung Exynos specific
8extensions to the Synopsis Designware Mobile Storage Host Controller. 8extensions to the Synopsis Designware Mobile Storage Host Controller.
9 9
10Required Properties: 10Required 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
9Required properties:
10- bus-width: Number of data lines, can be <1>, <4>, or <8>
11
12Card detection: 9Card detection:
13If no property below is supplied, standard SDHCI card detect is used. 10If no property below is supplied, host native card detect is used.
14Only one of the properties in this section should be supplied: 11Only 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
19Optional properties: 16Optional 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
33polarity properties, we have to fix the meaning of the "normal" and "inverted"
34line levels. We choose to follow the SDHCI standard, which specifies both those
35lines as "active low." Therefore, using the "cd-inverted" property means, that
36the CD line is active high, i.e. it is high, when a card is inserted. Similar
37logic applies to the "wp-inverted" property.
38
39CD and WP lines can be implemented on the hardware in one of two ways: as GPIOs,
40specified in cd-gpios and wp-gpios properties, or as dedicated pins. Polarity of
41dedicated pins can be specified, using *-inverted properties. GPIO polarity can
42also be specified using the OF_GPIO_ACTIVE_LOW flag. This creates an ambiguity
43in the latter case. We choose to use the XOR logic for GPIO CD and WP lines.
44This means, the two properties are "superimposed," for example leaving the
45OF_GPIO_ACTIVE_LOW flag clear and specifying the respective *-inverted
46property results in a double-inversion and actually means the "normal" line
47polarity is in effect.
26 48
27Optional SDIO properties: 49Optional 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
3This file documents differences between the core properties in mmc.txt
4and 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
9Example:
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
32Optional properties: 40Optional 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
3The tmio-mmc driver doesn't probe its devices actively, instead its binding to
4devices is managed by either MFD drivers or by the sh_mobile_sdhi platform
5driver. Those drivers supply the tmio-mmc driver with platform data, that either
6describe hardware capabilities, known to them, or are obtained by them from
7their own platform data or from their DT information. In the latter case all
8compulsory and any optional properties, common to all SD/MMC drivers, as
9described in mmc.txt, can be used. Additionally the following tmio_mmc-specific
10optional bindings can be used.
11
12Optional properties:
13- toshiba,mmc-wrprotect-disable: write-protect detection is unavailable
14
15When used with Renesas SDHI hardware, the following compatibility strings
16configure 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
3Required properties: 3Required 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 @@
1Device tree bindings for GPMC connected NANDs
2
3GPMC connected NAND (found on OMAP boards) are represented as child nodes of
4the GPMC controller with a name of "nand".
5
6All timing relevant properties as well as generic gpmc child properties are
7explained in a separate documents - please refer to
8Documentation/devicetree/bindings/bus/ti-gpmc.txt
9
10For NAND specific properties such as ECC modes or bus width, please refer to
11Documentation/devicetree/bindings/mtd/nand.txt
12
13
14Required properties:
15
16 - reg: The CS line the peripheral is connected to
17
18Optional 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
35For inline partiton table parsing (optional):
36
37 - #address-cells: should be set to 1
38 - #size-cells: should be set to 1
39
40Example 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 @@
1Device tree bindings for GPMC connected OneNANDs
2
3GPMC connected OneNAND (found on OMAP boards) are represented as child nodes of
4the GPMC controller with a name of "onenand".
5
6All timing relevant properties as well as generic gpmc child properties are
7explained in a separate documents - please refer to
8Documentation/devicetree/bindings/bus/ti-gpmc.txt
9
10Required properties:
11
12 - reg: The CS line the peripheral is connected to
13
14Optional properties:
15
16 - dma-channel: DMA Channel index
17
18For inline partiton table parsing (optional):
19
20 - #address-cells: should be set to 1
21 - #size-cells: should be set to 1
22
23Example 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:
24Optional properties: 24Optional 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
28Note: "ti,hwmods" field is used to fetch the base address and irq 30Note: "ti,hwmods" field is used to fetch the base address and irq
29resources from TI, omap hwmod data base during device registration. 31resources 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
3The pins controlled by sunXi pin controller are organized in banks,
4each bank has 32 pins. Each pin has 7 multiplexing functions, with
5the first two functions being GPIO in and out. The configuration on
6the pins includes drive strength and pull-up.
7
8Required 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
14Please refer to pinctrl-bindings.txt in this directory for details of the
15common pinctrl bindings used by client devices.
16
17A pinctrl node should contain at least one subnodes representing the
18pinctrl groups available on the machine. Each subnode will list the
19pins it needs, and how they should be configured, with regard to muxer
20configuration, drive strength and pullups. If one of these options is
21not set, its actual value will be unspecified.
22
23Required 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
28Optional 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
39Examples:
40
41pinctrl@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
81Required properties for pin configuration node: 81Required 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
86Bits used for CONFIG: 87Bits used for CONFIG:
87PULL_UP (1 << 0): indicate this pin need a pull up. 88PULL_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 @@
1NVIDIA Tegra114 pinmux controller
2
3The Tegra114 pinctrl binding is very similar to the Tegra20 and Tegra30
4pinctrl binding, as described in nvidia,tegra20-pinmux.txt and
5nvidia,tegra30-pinmux.txt. In fact, this document assumes that binding as
6a baseline, and only documents the differences between the two bindings.
7
8Required 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
15Tegra114 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
24As with Tegra20 and Terga30, see the Tegra TRM for complete details regarding
25which groups support which functionality.
26
27Valid 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
83Example:
84
85 pinmux: pinmux {
86 compatible = "nvidia,tegra114-pinmux";
87 reg = <0x70000868 0x148 /* Pad control registers */
88 0x70003000 0x40c>; /* PinMux registers */
89 };
90
91Example 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
8Required Properties: 8Required 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.
142Example: A pin-controller node with pin banks: 142Example: 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:
185Example 1: A pin-controller node with pin groups. 185Example 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.
230Example 2: A pin-controller node with external wakeup interrupt controller node. 230Example 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 @@
1ST Ericsson Nomadik pinmux controller
2
3Required 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
8Please refer to pinctrl-bindings.txt in this directory for details of the
9common pinctrl bindings used by client devices, including the meaning of the
10phrase "pin configuration node".
11
12ST Ericsson's pin configuration nodes act as a container for an arbitrary number of
13subnodes. Each of these subnodes represents some desired configuration for a
14pin, a group, or a list of pins or groups. This configuration can include the
15mux function to select on those pin(s)/group(s), and various pin configuration
16parameters, such as input, output, pull up, pull down...
17
18The name of each subnode is not important; all subnodes should be enumerated
19and processed purely based on their content.
20
21Required subnode-properties:
22- ste,pins : An array of strings. Each string contains the name of a pin or
23 group.
24
25Optional 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
68Example 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 @@
1max8925-battery bindings
2~~~~~~~~~~~~~~~~
3
4Optional 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
11Example:
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
3QNAP NAS devices have a microcontroller controlling the main power
4supply. This microcontroller is connected to UART1 of the Kirkwood and
5Orion5x SoCs. Sending the charactor 'A', at 19200 baud, tells the
6microcontroller to turn the power off. This driver adds a handler to
7pm_power_off which is called to turn the power off.
8
9Required 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
3Buffalo Linkstation LS-XHL and LS-CHLv2, and other devices power off
4by restarting and letting u-boot keep hold of the machine until the
5user presses a button.
6
7Required 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
20Example: 20 - fsl,liodn-bits : Indicates the number of defined bits in the LIODN
21 registers, for those SOCs that have a PAMU device.
22
23Examples:
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 @@
1Freescale Peripheral Management Access Unit (PAMU) Device Tree Binding
2
3DESCRIPTION
4
5The PAMU is an I/O MMU that provides device-to-memory access control and
6address translation capabilities.
7
8Required 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
30Optional 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
38Child nodes:
39
40Each child node represents one PAMU controller. Each SOC device that is
41connected to a specific PAMU device should have a "fsl,pamu-phandle" property
42that 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
63Device nodes:
64
65Devices 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
67the 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
85Example:
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 @@
1Atmel TCB PWM controller
2
3Required 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
12Example:
13
14pwm {
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
3Required properties: 3Required 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
10Example: 13Example:
11 14
12pwm1: pwm@d8220000 { 15pwm1: 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
12Optional 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
12Any property defined as part of the core regulator 17Any property defined as part of the core regulator
13binding, defined in regulator.txt, can also be used. 18binding, 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
3The Samsung S5M8767 is a multi-function device which includes volatage and
4current regulators, rtc, charger controller and other sub-blocks. It is
5interfaced to the host controller using a i2c interface. Each sub-block is
6addressed by the host system using different i2c slave address. This document
7describes the bindings for 'pmic' sub-block of s5m8767.
8
9Required 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
37Optional 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
47Additional 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
57Regulators: The regulators of s5m8767 that have to be instantiated should be
58included in a sub-node named 'regulators'. Regulator nodes included in this
59sub-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 };
71The above regulator entries are defined in regulator bindings documentation
72except 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
80The following are the names of the regulators that the s5m8767 pmic block
81supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
82as 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
91The bindings inside the regulator nodes use the standard regulator bindings
92which are documented elsewhere.
93
94Example:
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 @@
1TPS51632 Voltage regulators
2
3Required properties:
4- compatible: Must be "ti,tps51632"
5- reg: I2C slave address
6
7Optional 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
13Any property defined as part of the core regulator binding, defined in
14regulator.txt, can also be used.
15
16Example:
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
25Any property defined as part of the core regulator binding, defined in 25Any 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 @@
1TPS65090 regulators
2
3Required 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
16Optional 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
25Each regulator is defined using the standard binding for regulators.
26
27Example:
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 @@
1NVIDIA Tegra20/Tegra30 high speed (DMA based) UART controller driver.
2
3Required 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
10Optional properties:
11- nvidia,enable-modem-interrupt: Enable modem interrupts. Should be enable
12 only if all 8 lines of UART controller are pinmuxed.
13
14Example:
15
16serial@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 @@
1AK4642 I2C transmitter
2
3This device supports I2C mode only.
4
5Required 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
10Example:
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
24Examples: 36Examples:
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 @@
1NVIDIA Tegra audio complex
2
3Required 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
36Example:
37
38sound {
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 @@
1NVIDIA Tegra 20 AC97 controller
2
3Required 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
13Example:
14
15ac97@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
9Optional 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
17Available audio endpoints for the audio-routing table:
18
19Board 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
32twl4030 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
9Example: 55Example:
10 56
11sound { 57sound {
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 @@
1Renesas FSI
2
3Required 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
16Example:
17
18sh_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 @@
1Samsung SMDK audio complex
2
3Required 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
7Example:
8
9sound {
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
3Required 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
12Optional 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
24Required 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
36Example:
37
38- SoC Specific Portion:
39
40i2s@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
55i2s@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
15Example: 21Example:
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 @@
1WM8962 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7 - compatible : "wlf,wm8962"
8
9 - reg : the I2C address of the device.
10
11Example:
12
13codec: 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 @@
1Renesas MSIOF spi controller
2
3Required 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
9Optional 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
8Optional 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
8Examples: 14Examples:
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
3Required 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
10e.g.
11
12arcuart0: 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
21Note: Each port should have an alias correctly numbered in "aliases" node.
22
23e.g.
24aliases {
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
8Optional properties:
9- location : Decides the location of the USART I/O pins.
10 Allowed range : [0 .. 5]
11 Default: 0
12
8Example: 13Example:
9 14
10uart@0x4000c400 { 15uart@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 @@
1synopsys DWC3 CORE
2
3DWC3- USB3 CONTROLLER
4
5Required 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
11Optional properties:
12 - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
13
14This is usually a subnode to DWC3 glue to which it is connected.
15
16dwc3@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
15Required properties for phy_type == ulpi: 16Required 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 @@
1Tegra SOC USB PHY
2
3The device node for Tegra SOC USB PHY:
4
5Required 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
10Required properties for phy_type == ulpi:
11 - nvidia,phy-reset-gpio : The GPIO used to reset the PHY.
12
13Optional 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 @@
1OMAP GLUE 1OMAP GLUE AND OTHER OMAP SPECIFIC COMPONENTS
2 2
3OMAP MUSB GLUE 3OMAP 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
22Optional properties:
23 - ctrl-module : phandle of the control module this glue uses to write to
24 mailbox
25
19SOC specific device node entry 26SOC specific device node entry
20usb_otg_hs: usb_otg_hs@4a0ab000 { 27usb_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
28Board specific device node entry 37Board 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
44OMAP CONTROL USB
45
46Required 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
59omap_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
3The Samsung's phy transceiver is used for controlling usb phy for
4s3c-hsotg as well as ehci-s5p and ohci-exynos usb controllers
5across Samsung SOCs.
6TODO: Adding the PHY binding with controller(s) according to the under
7developement generic PHY driver.
8
9Required properties:
10
11Exynos4210:
12- compatible : should be "samsung,exynos4210-usbphy"
13- reg : base physical address of the phy registers and length of memory mapped
14 region.
15
16Exynos5250:
17- compatible : should be "samsung,exynos5250-usbphy"
18- reg : base physical address of the phy registers and length of memory mapped
19 region.
20
21Optional 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
41Example:
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
5Required properties: 5Required 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.
8add the address of control module dev conf register until a driver for 8
9control module is added 9Optional properties:
10 - ctrl-module : phandle of the control module used by PHY driver to power on
11 the PHY.
10 12
11This is usually a subnode of ocp2scp to which it is connected. 13This is usually a subnode of ocp2scp to which it is connected.
12 14
13usb2phy@4a0ad080 { 15usb2phy@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
21OMAP USB3 PHY
22
23Required 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
29Optional properties:
30 - ctrl-module : phandle of the control module used by PHY driver to power on
31 the PHY.
32
33This is usually a subnode of ocp2scp to which it is connected.
34
35usb3phy@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 @@
1SMSC USB3503 High-Speed Hub Controller
2
3Required 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
12Examples:
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
14brcm Broadcom Corporation 14brcm Broadcom Corporation
15cavium Cavium, Inc. 15cavium Cavium, Inc.
16chrp Common Hardware Reference Platform 16chrp Common Hardware Reference Platform
17cirrus Cirrus Logic, Inc.
17cortina Cortina Systems, Inc. 18cortina Cortina Systems, Inc.
18dallas Maxim Integrated Products (formerly Dallas Semiconductor) 19dallas Maxim Integrated Products (formerly Dallas Semiconductor)
19denx Denx Software Engineering 20denx Denx Software Engineering
@@ -42,6 +43,7 @@ powervr PowerVR (deprecated, use img)
42qcom Qualcomm, Inc. 43qcom Qualcomm, Inc.
43ramtron Ramtron International 44ramtron Ramtron International
44realtek Realtek Semiconductor Corp. 45realtek Realtek Semiconductor Corp.
46renesas Renesas Electronics Corporation
45samsung Samsung Semiconductor 47samsung Samsung Semiconductor
46sbs Smart Battery System 48sbs Smart Battery System
47schindler Schindler 49schindler Schindler
@@ -50,8 +52,10 @@ simtek
50sirf SiRF Technology, Inc. 52sirf SiRF Technology, Inc.
51snps Synopsys, Inc. 53snps Synopsys, Inc.
52st STMicroelectronics 54st STMicroelectronics
55ste ST-Ericsson
53stericsson ST-Ericsson 56stericsson ST-Ericsson
54ti Texas Instruments 57ti Texas Instruments
58toshiba Toshiba Corporation
55via VIA Technologies, Inc. 59via VIA Technologies, Inc.
56wlf Wolfson Microelectronics 60wlf Wolfson Microelectronics
57wm Wondermedia Technologies, Inc. 61wm 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 @@
188pm860x-backlight bindings
2
3Optional properties:
4 - maxim,max8925-dual-string: whether support dual string
5
6Example:
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 @@
1display-timing bindings
2=======================
3
4display-timings node
5--------------------
6
7required properties:
8 - none
9
10optional 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
14timing subnode
15--------------
16
17required 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
25optional 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
38All 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
43There are different ways of describing the capabilities of a display. The
44devicetree representation corresponds to the one commonly found in datasheets
45for displays. If a display supports multiple signal timings, the native-mode
46can be specified.
47
48The 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
74Example:
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
93Every required property also supports the use of ranges, so the commonly used
94datasheet description with minimum, typical and maximum values can be used.
95
96Example:
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
3The Samsung's Watchdog controller is used for resuming system operation 3The Samsung's Watchdog controller is used for resuming system operation
4after a preset amount of time during which the WDT reset event has not 4after a preset amount of time during which the WDT reset event has not
5occured. 5occurred.
6 6
7Required properties: 7Required 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.
1228The interrupt tree model is fully described in the 1228The interrupt tree model is fully described in the
1229document "Open Firmware Recommended Practice: Interrupt 1229document "Open Firmware Recommended Practice: Interrupt
1230Mapping Version 0.9". The document is available at: 1230Mapping Version 0.9". The document is available at:
1231<http://playground.sun.com/1275/practice>. 1231<http://www.openfirmware.org/ofwg/practice/>
1232 1232
12331) interrupts property 12331) 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
288PWM 289PWM
289 devm_pwm_get() 290 devm_pwm_get()
290 devm_pwm_put() 291 devm_pwm_put()
292
293PHY
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
292sub 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
292sub dibusb { 305sub 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
679sub drxk_terratec_htc_stick { 692sub 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
7Dynamic debug is designed to allow you to dynamically enable/disable 7Dynamic debug is designed to allow you to dynamically enable/disable
8kernel code to obtain additional kernel information. Currently, if 8kernel code to obtain additional kernel information. Currently, if
9CONFIG_DYNAMIC_DEBUG is set, then all pr_debug()/dev_dbg() calls can 9CONFIG_DYNAMIC_DEBUG is set, then all pr_debug()/dev_dbg() and
10be dynamically enabled per-callsite. 10print_hex_dump_debug()/print_hex_dump_bytes() calls can be dynamically
11enabled per-callsite.
12
13If CONFIG_DYNAMIC_DEBUG is not set, print_hex_dump_debug() is just
14shortcut for print_hex_dump(KERN_DEBUG).
15
16For print_hex_dump_debug()/print_hex_dump_bytes(), format string is
17its 'prefix_str' argument, if it is constant string; or "hexdump"
18in case 'prefix_str' is build dynamically.
11 19
12Dynamic debug has even more useful features: 20Dynamic 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
213For print_hex_dump_debug() and print_hex_dump_bytes(), only 'p' flag
214have meaning, other flags ignored.
215
205For display, the flags are preceded by '=' 216For 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
236valid, as shown as below. 236valid, 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
6832nm Core i3/i5/i7 Processors 6832nm 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
8132nm Atom Processors 8232nm 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
9945nm Atom Processors 10345nm 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
11245nm Core2 Processors 12145nm 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 @@
1Kernel driver ina209
2=====================
3
4Supported chips:
5 * Burr-Brown / Texas Instruments INA209
6 Prefix: 'ina209'
7 Addresses scanned: -
8 Datasheet:
9 http://www.ti.com/lit/gpn/ina209
10
11Author: Paul Hays <Paul.Hays@cattail.ca>
12Author: Ira W. Snyder <iws@ovro.caltech.edu>
13Author: Guenter Roeck <linux@roeck-us.net>
14
15
16Description
17-----------
18
19The TI / Burr-Brown INA209 monitors voltage, current, and power on the high side
20of a D.C. power supply. It can perform measurements and calculations in the
21background to supply readings at any time. It includes a programmable
22calibration multiplier to scale the displayed current and power values.
23
24
25Sysfs entries
26-------------
27
28The INA209 chip is highly configurable both via hardwiring and via
29the I2C bus. See the datasheet for details.
30
31This tries to expose most monitoring features of the hardware via
32sysfs. It does not support every feature of this chip.
33
34
35in0_input shunt voltage (mV)
36in0_input_highest shunt voltage historical maximum reading (mV)
37in0_input_lowest shunt voltage historical minimum reading (mV)
38in0_reset_history reset shunt voltage history
39in0_max shunt voltage max alarm limit (mV)
40in0_min shunt voltage min alarm limit (mV)
41in0_crit_max shunt voltage crit max alarm limit (mV)
42in0_crit_min shunt voltage crit min alarm limit (mV)
43in0_max_alarm shunt voltage max alarm limit exceeded
44in0_min_alarm shunt voltage min alarm limit exceeded
45in0_crit_max_alarm shunt voltage crit max alarm limit exceeded
46in0_crit_min_alarm shunt voltage crit min alarm limit exceeded
47
48in1_input bus voltage (mV)
49in1_input_highest bus voltage historical maximum reading (mV)
50in1_input_lowest bus voltage historical minimum reading (mV)
51in1_reset_history reset bus voltage history
52in1_max bus voltage max alarm limit (mV)
53in1_min bus voltage min alarm limit (mV)
54in1_crit_max bus voltage crit max alarm limit (mV)
55in1_crit_min bus voltage crit min alarm limit (mV)
56in1_max_alarm bus voltage max alarm limit exceeded
57in1_min_alarm bus voltage min alarm limit exceeded
58in1_crit_max_alarm bus voltage crit max alarm limit exceeded
59in1_crit_min_alarm bus voltage crit min alarm limit exceeded
60
61power1_input power measurement (uW)
62power1_input_highest power historical maximum reading (uW)
63power1_reset_history reset power history
64power1_max power max alarm limit (uW)
65power1_crit power crit alarm limit (uW)
66power1_max_alarm power max alarm limit exceeded
67power1_crit_alarm power crit alarm limit exceeded
68
69curr1_input current measurement (mA)
70
71update_interval data conversion time; affects number of samples used
72 to average results for shunt and bus voltages.
73
74General Remarks
75---------------
76
77The power and current registers in this chip require that the calibration
78register is programmed correctly before they are used. Normally this is expected
79to be done in the BIOS. In the absence of BIOS programming, the shunt resistor
80voltage can be provided using platform data. The driver uses platform data from
81the ina2xx driver for this purpose. If calibration register data is not provided
82via platform data, the driver checks if the calibration register has been
83programmed (ie has a value not equal to zero). If so, this value is retained.
84Otherwise, a default value reflecting a shunt resistor value of 10 mOhm is
85programmed into the calibration register.
86
87
88Output Pins
89-----------
90
91Output pin programming is a board feature which depends on the BIOS. It is
92outside the scope of a hardware monitoring driver to enable or disable output
93pins.
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
85This driver implements support for the IT8705F, IT8712F, IT8716F, 93This driver implements support for the IT8705F, IT8712F, IT8716F,
86IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8781F, IT8782F, 94IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8771E, IT8772E,
87IT8783E/F, and SiS950 chips. 95IT8782F, IT8783E/F, and SiS950 chips.
88 96
89These chips are 'Super I/O chips', supporting floppy disks, infrared ports, 97These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
90joysticks and other miscellaneous stuff. For hardware monitoring, they 98joysticks and other miscellaneous stuff. For hardware monitoring, they
@@ -118,8 +126,8 @@ The IT8726F is just bit enhanced IT8716F with additional hardware
118for AMD power sequencing. Therefore the chip will appear as IT8716F 126for AMD power sequencing. Therefore the chip will appear as IT8716F
119to userspace applications. 127to userspace applications.
120 128
121The IT8728F is considered compatible with the IT8721F, until a datasheet 129The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F,
122becomes available (hopefully.) 130until a datasheet becomes available (hopefully.)
123 131
124Temperatures are measured in degrees Celsius. An alarm is triggered once 132Temperatures are measured in degrees Celsius. An alarm is triggered once
125when the Overtemperature Shutdown limit is crossed. 133when 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 @@
1Kernel driver lm73
2==================
3
4Supported 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
11Author: Guillaume Ligneul <guillaume.ligneul@gmail.com>
12Documentation: Chris Verges <kg4ysn@gmail.com>
13
14
15Description
16-----------
17
18The LM73 is a digital temperature sensor. All temperature values are
19given in degrees Celsius.
20
21Measurement Resolution Support
22------------------------------
23
24The LM73 supports four resolutions, defined in terms of degrees C per
25LSB: 0.25, 0.125, 0.0625, and 0.3125. Changing the resolution mode
26affects the conversion time of the LM73's analog-to-digital converter.
27From userspace, the desired resolution can be specified as a function of
28conversion time via the 'update_interval' sysfs attribute for the
29device. This attribute will normalize ranges of input values to the
30maximum 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
41The following examples show how the 'update_interval' attribute can be
42used 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
68As 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
71conversion time actively in use.
72
73Mathematically, the resolution can be derived from the conversion time
74via the following function:
75
76 g(x) = 0.250 * [log(x/14) / log(2)]
77
78where 'x' is the output from 'update_interval' and 'g(x)' is the
79resolution in degrees C per LSB.
80
81Alarm Support
82-------------
83
84The LM73 features a simple over-temperature alarm mechanism. This
85feature is exposed via the sysfs attributes.
86
87The attributes 'temp1_max_alarm' and 'temp1_min_alarm' are flags
88provided by the LM73 that indicate whether the measured temperature has
89passed the 'temp1_max' and 'temp1_min' thresholds, respectively. These
90values _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
20Author: Guenter Roeck <guenter.roeck@ericsson.com> 30Author: Guenter Roeck <guenter.roeck@ericsson.com>
21 31
@@ -26,6 +36,9 @@ Description
26This driver supports hardware montoring for Maxim MAX34440 PMBus 6-Channel 36This driver supports hardware montoring for Maxim MAX34440 PMBus 6-Channel
27Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager 37Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager
28and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger. 38and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger.
39It also supports the MAX34460 and MAX34461 PMBus Voltage Monitor & Sequencers.
40The MAX34460 supports 12 voltage channels, and the MAX34461 supports 16 voltage
41channels.
29 42
30The driver is a client driver to the core PMBus driver. Please see 43The driver is a client driver to the core PMBus driver. Please see
31Documentation/hwmon/pmbus for details on PMBus client drivers. 44Documentation/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
126MAX34460 supports attribute groups in[1-12] and temp[1-5].
127MAX34461 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 @@
1Kernel driver max6697
2=====================
3
4Supported 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
36Author:
37 Guenter Roeck <linux@roeck-us.net>
38
39Description
40-----------
41
42This driver implements support for several MAX6697 compatible temperature sensor
43chips. The chips support one local temperature sensor plus four, six, or seven
44remote temperature sensors. Remote temperature sensors are diode-connected
45thermal transitors, except for MAX6698 which supports three diode-connected
46thermal transistors plus three thermistors in addition to the local temperature
47sensor.
48
49The driver provides the following sysfs attributes. temp1 is the local (chip)
50temperature, temp[2..n] are remote temperatures. The actually supported
51per-channel attributes are chip type and channel dependent.
52
53tempX_input RO temperature
54tempX_max RW temperature maximum threshold
55tempX_max_alarm RO temperature maximum threshold alarm
56tempX_crit RW temperature critical threshold
57tempX_crit_alarm RO temperature critical threshold alarm
58tempX_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.
722What to do if a value is found to be invalid, depends on the type of the 722What to do if a value is found to be invalid, depends on the type of the
723sysfs attribute that is being set. If it is a continuous setting like a 723sysfs attribute that is being set. If it is a continuous setting like a
724tempX_max or inX_max attribute, then the value should be clamped to its 724tempX_max or inX_max attribute, then the value should be clamped to its
725limits using SENSORS_LIMIT(value, min_limit, max_limit). If it is not 725limits using clamp_val(value, min_limit, max_limit). If it is not continuous
726continuous like for example a tempX_type, then when an invalid value is 726like for example a tempX_type, then when an invalid value is written,
727written, -EINVAL should be returned. 727-EINVAL should be returned.
728 728
729Example1, temp1_max, register is a signed 8 bit value (-128 - 127 degrees): 729Example1, 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
735Example2, fan divider setting, valid values 2, 4 and 8: 735Example2, 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.
121in1_lcrit_alarm Input voltage critical low alarm. 121in1_lcrit_alarm Input voltage critical low alarm.
122in1_crit_alarm Input voltage critical high alarm. 122in1_crit_alarm Input voltage critical high alarm.
123 123
124in2_label "vout1" 124in2_label "vmon"
125in2_input Measured output voltage. 125in2_input Measured voltage on VMON (ZL2004) or VDRV (ZL9101M,
126in2_lcrit Critical minimum output Voltage. 126 ZL9117M) pin. Reported voltage is 16x the voltage on the
127in2_crit Critical maximum output voltage. 127 pin (adjusted internally by the chip).
128in2_lcrit_alarm Critical output voltage critical low alarm. 128in2_lcrit Critical minumum VMON/VDRV Voltage.
129in2_crit_alarm Critical output voltage critical high alarm. 129in2_crit Critical maximum VMON/VDRV voltage.
130in2_lcrit_alarm VMON/VDRV voltage critical low alarm.
131in2_crit_alarm VMON/VDRV voltage critical high alarm.
132
133 vmon attributes are supported on ZL2004, ZL9101M,
134 and ZL9117M only.
135
136inX_label "vout1"
137inX_input Measured output voltage.
138inX_lcrit Critical minimum output Voltage.
139inX_crit Critical maximum output voltage.
140inX_lcrit_alarm Critical output voltage critical low alarm.
141inX_crit_alarm Critical output voltage critical high alarm.
142
143 X is 3 for ZL2004, ZL9101M, and ZL9117M, 2 otherwise.
130 144
131curr1_label "iout1" 145curr1_label "iout1"
132curr1_input Measured output current. 146curr1_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
27On Intel Patsburg and later chipsets, both the normal host SMBus controller 29On 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 @@
1Kernel driver i2c-ismt
2
3Supported adapters:
4 * Intel S12xx series SOCs
5
6Authors:
7 Bill Brown <bill.e.brown@intel.com>
8
9
10Module Parameters
11-----------------
12
13* bus_speed (unsigned int)
14Allows changing of the bus speed. Normally, the bus speed is set by the BIOS
15and never needs to be changed. However, some SMBus analyzers are too slow for
16monitoring the bus during debug, thus the need for this module parameter.
17Specify the bus speed in kHz.
18Available bus frequency settings:
19 0 no change
20 80 kHz
21 100 kHz
22 400 kHz
23 1000 kHz
24
25
26Description
27-----------
28
29The S12xx series of SOCs have a pair of integrated SMBus 2.0 controllers
30targeted primarily at the microserver and storage markets.
31
32The S12xx series contain a pair of PCI functions. An output of lspci will show
33something 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
9Author: Alexander Malysh <amalysh@web.de> 10Author: Alexander Malysh <amalysh@web.de>
11 Amaury Decrême <amaury.decreme@gmail.com> - SiS964 support
10 12
11Module Parameters 13Module 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
23Description 26Description
@@ -36,6 +39,12 @@ or like this:
3600:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02) 3900:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02)
3700:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513 4000:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513
38 41
42or like this:
43
4400:00.0 Host bridge: Silicon Integrated Systems [SiS] 760/M760 Host (rev 02)
4500:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS964 [MuTIOL Media IO]
46 LPC Controller (rev 36)
47
39in your 'lspci' output , then this driver is for your chipset. 48in your 'lspci' output , then this driver is for your chipset.
40 49
41Thank You 50Thank 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
137around (not SMBus compliant, but very popular.) 137around (not SMBus compliant, but very popular.)
138 138
139 139
140SMBus Process Call: i2c_smbus_process_call() 140SMBus Process Call:
141============================================= 141===================
142 142
143This command selects a device register (through the Comm byte), sends 143This command selects a device register (through the Comm byte), sends
14416 bits of data to it, and reads 16 bits of data in return. 14416 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
381be added back later if needed: 379be 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
193The kernel option for enabling Intel TXT support is found under the 193The kernel option for enabling Intel TXT support is found under the
194Security top-level menu and is called "Enable Intel(R) Trusted 194Security top-level menu and is called "Enable Intel(R) Trusted
195Execution Technology (TXT)". It is marked as EXPERIMENTAL and 195Execution Technology (TXT)". It is considered EXPERIMENTAL and
196depends on the generic x86 support (to allow maximum flexibility in 196depends on the generic x86 support (to allow maximum flexibility in
197kernel build options), since the tboot code will detect whether the 197kernel build options), since the tboot code will detect whether the
198platform actually supports Intel TXT and thus whether any of the 198platform 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:
1398EXPERIMENTAL: UWB 1398EXPERIMENTAL: UWB
1399----------------- 1399-----------------
1400 1400
1401This feature is marked EXPERIMENTAL because it has not been extensively 1401This feature is considered EXPERIMENTAL because it has not been extensively
1402tested and validated in various ThinkPad models yet. The feature may not 1402tested and validated in various ThinkPad models yet. The feature may not
1403work as expected. USE WITH CAUTION! To use this feature, you need to supply 1403work as expected. USE WITH CAUTION! To use this feature, you need to supply
1404the experimental=1 parameter when loading the module. 1404the 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.
7leds-lp5523.txt 7leds-lp5523.txt
8 - notes on how to use the leds-lp5523 driver. 8 - notes on how to use the leds-lp5523 driver.
9leds-lp55xx.txt
10 - description about lp55xx common driver.
9leds-lm3556.txt 11leds-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
17All three channels can be also controlled using the engine micro programs. 17All three channels can be also controlled using the engine micro programs.
18More details of the instructions can be found from the public data sheet. 18More details of the instructions can be found from the public data sheet.
19 19
20Control interface for the engines: 20LP5521 has the internal program memory for running various LED patterns.
21x is 1 .. 3 21For the details, please refer to 'firmware' section in leds-lp55xx.txt
22enginex_mode : disabled, load, run
23enginex_load : store program (visible only in engine load mode)
24
25Example (start to blink the channel 2 led):
26cd /sys/class/leds/lp5521:channel2/device
27echo "load" > engine3_mode
28echo "037f4d0003ff6000" > engine3_load
29echo "run" > engine3_mode
30
31stop the engine:
32echo "disabled" > engine3_mode
33 22
34sysfs contains a selftest entry. 23sysfs contains a selftest entry.
35The test communicates with the chip and checks that 24The test communicates with the chip and checks that
@@ -47,7 +36,7 @@ The name of each channel can be configurable.
47If the name field is not defined, the default name will be set to 'xxxx:channelN' 36If 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
50static struct lp5521_led_config lp5521_led_config[] = { 39static 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
84static struct lp5521_platform_data lp5521_platform_data = { 73static 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
108static struct lp5521_platform_data lp5521_pdata = { 97static 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
115LED patterns : LP5521 has autonomous operation without external control.
116Pattern data can be defined in the platform data.
117
118example of led pattern data :
119
120/* RGB(50,5,0) 500ms on, 500ms off, infinite loop */
121static u8 pattern_red[] = {
122 0x40, 0x32, 0x60, 0x00, 0x40, 0x00, 0x60, 0x00,
123 };
124
125static u8 pattern_green[] = {
126 0x40, 0x05, 0x60, 0x00, 0x40, 0x00, 0x60, 0x00,
127 };
128
129static 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
138static 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
146Then predefined led pattern(s) can be executed via the sysfs.
147To start the pattern #1,
148# echo 1 > /sys/bus/i2c/devices/xxxx/led_pattern
149(xxxx : i2c bus & slave address)
150To 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
27If both fields are NULL, 'lp5523' is used by default. 27If 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
30The chip provides 3 engines. Each engine can control channels without 30LP5523 has the internal program memory for running various LED patterns.
31interaction from the main CPU. Details of the micro engine code can be found 31For the details, please refer to 'firmware' section in leds-lp55xx.txt
32from the public data sheet. Leds can be muxed to different channels.
33
34Control interface for the engines:
35x is 1 .. 3
36enginex_mode : disabled, load, run
37enginex_load : microcode load (visible only in load mode)
38enginex_leds : led mux control (visible only in load mode)
39
40cd /sys/class/leds/lp5523:channel2/device
41echo "load" > engine3_mode
42echo "9d80400004ff05ff437f0000" > engine3_load
43echo "111111111" > engine3_leds
44echo "run" > engine3_mode
45
46sysfs contains a selftest entry. It measures each channel
47voltage level and checks if it looks reasonable. If the level is too high,
48the led is missing; if the level is too low, there is a short circuit.
49 32
50Selftest uses always the current from the platform data. 33Selftest uses always the current from the platform data.
51 34
@@ -58,7 +41,7 @@ Example platform data:
58 41
59Note - chan_nr can have values between 0 and 8. 42Note - chan_nr can have values between 0 and 8.
60 43
61static struct lp5523_led_config lp5523_led_config[] = { 44static 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
91static struct lp5523_platform_data lp5523_platform_data = { 74static 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 @@
1LP5521/LP5523/LP55231 Common Driver
2===================================
3
4Authors: Milo(Woogyom) Kim <milo.kim@ti.com>
5
6Description
7-----------
8LP5521, 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
16The 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
23In lp55xx common driver, two different data structure is used.
24
25o lp55xx_led
26 control multi output LED channels such as led current, channel index.
27o lp55xx_chip
28 general chip control such like the I2C and platform data.
29
30For example, LP5521 has maximum 3 LED channels.
31LP5523/55231 has 9 output channels.
32
33lp55xx_chip for LP5521 ... lp55xx_led #1
34 lp55xx_led #2
35 lp55xx_led #3
36
37lp55xx_chip for LP5523 ... lp55xx_led #1
38 lp55xx_led #2
39 .
40 .
41 lp55xx_led #9
42
43( Chip Dependent Code )
44
45To 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
58LP55xx family devices have the internal program memory for running
59various LED patterns.
60This pattern data is saved as a file in the user-land or
61hex byte string is written into the memory through the I2C.
62LP55xx common driver supports the firmware interface.
63
64LP55xx chips have three program engines.
65To 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
71The LP55xx common driver provides simple interfaces as below.
72select_engine : Select which engine is used for running program
73run_engine : Start program which is loaded via the firmware interface
74firmware : Load program data
75
76For example, run blinking pattern in engine #1 of LP5521
77echo 1 > /sys/bus/i2c/devices/xxxx/select_engine
78echo 1 > /sys/class/firmware/lp5521/loading
79echo "4000600040FF6000" > /sys/class/firmware/lp5521/data
80echo 0 > /sys/class/firmware/lp5521/loading
81echo 1 > /sys/bus/i2c/devices/xxxx/run_engine
82
83For example, run blinking pattern in engine #3 of LP55231
84echo 3 > /sys/bus/i2c/devices/xxxx/select_engine
85echo 1 > /sys/class/firmware/lp55231/loading
86echo "9d0740ff7e0040007e00a0010000" > /sys/class/firmware/lp55231/data
87echo 0 > /sys/class/firmware/lp55231/loading
88echo 1 > /sys/bus/i2c/devices/xxxx/run_engine
89
90To start blinking patterns in engine #2 and #3 simultaneously,
91for idx in 2 3
92do
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
98done
99echo 1 > /sys/class/leds/red/device/run_engine
100
101Here is another example for LP5523.
102echo 2 > /sys/bus/i2c/devices/xxxx/select_engine
103echo 1 > /sys/class/firmware/lp5523/loading
104echo "9d80400004ff05ff437f0000" > /sys/class/firmware/lp5523/data
105echo 0 > /sys/class/firmware/lp5523/loading
106echo 1 > /sys/bus/i2c/devices/xxxx/run_engine
107
108As soon as 'loading' is set to 0, registered callback is called.
109Inside the callback, the selected engine is loaded and memory is updated.
110To run programmed pattern, 'run_engine' attribute should be enabled.
111
112( 'run_engine' and 'firmware_cb' )
113The sequence of running the program data is common.
114But each device has own specific register addresses for commands.
115To support this, 'run_engine' and 'firmware_cb' are configurable in each driver.
116run_engine : Control the selected engine
117firmware_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
68Lock statistics are enabled via CONFIG_LOCK_STATS. 68Lock 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
122COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c 122COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c
123I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c 123I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c
124TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c 124TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c
125ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h 125ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9]
126SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h 126SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h
127SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c 127SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c
128GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h 128GDA_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
336be identical for all nested calls to the function. 336be identical for all nested calls to the function.
337 337
338media_entity_pipeline_start() may return an error. In that case, it will 338media_entity_pipeline_start() may return an error. In that case, it will
339clean up any the changes it did by itself. 339clean up any of the changes it did by itself.
340 340
341When stopping the stream, drivers must notify the entities with 341When 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 @@
1There are a lot of kinds of objects in the kernel that don't have
2individual limits or that have limits that are ineffective when a set
3of processes is allowed to switch user ids. With user namespaces
4enabled in a kernel for people who don't trust their users or their
5users programs to play nice this problems becomes more acute.
6
7Therefore it is recommended that memory control groups be enabled in
8kernels that enable user namespaces, and it is further recommended
9that userspace configure memory control groups to limit how much
10memory user's they don't trust to play nice can use.
11
12Memory control groups can be configured by installing the libcgroup
13package 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
53decnet.txt 53decnet.txt
54 - info on using the DECnet networking layer in Linux. 54 - info on using the DECnet networking layer in Linux.
55depca.txt
56 - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver
57dl2k.txt 55dl2k.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).
59dm9000.txt 57dm9000.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).
73eql.txt 71eql.txt
74 - serial IP load balancing 72 - serial IP load balancing
75ewrk3.txt
76 - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver
77fib_trie.txt 73fib_trie.txt
78 - Level Compressed Trie (LC-trie) notes: a structure for routing. 74 - Level Compressed Trie (LC-trie) notes: a structure for routing.
79filter.txt 75filter.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
127mac80211-injection.txt 123mac80211-injection.txt
128 - HOWTO use packet injection with mac80211 124 - HOWTO use packet injection with mac80211
129multicast.txt
130 - Behaviour of cards under Multicast
131multiqueue.txt 125multiqueue.txt
132 - HOWTO for multiqueue network device support. 126 - HOWTO for multiqueue network device support.
133netconsole.txt 127netconsole.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 @@
1Released 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 @@
1Copyright (c) 2009-2011 QLogic Corporation 1Copyright (c) 2009-2013 QLogic Corporation
2QLogic Linux qlcnic NIC Driver 2QLogic Linux qlcnic NIC Driver
3 3
4You may modify and redistribute the device driver code under the 4You 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
415.0 TESTING AND TROUBLESHOOTING 405.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
364series. DMA support is now unconditionally part of the driver. It is 363series. DMA support is now unconditionally part of the driver. It is
365enabled by the 'use_dma=1' module option. 364enabled by the 'use_dma=1' module option.
366 365
3674.4 COMPILING THE DRIVER INTO THE KERNEL
368
369If your Linux distribution already has support for the cs89x0 driver
370then simply copy the source file to the /usr/src/linux/drivers/net
371directory to replace the original ones and run the make utility to
372rebuild the kernel. See Step 3 for rebuilding the kernel.
373
374If your Linux does not include the cs89x0 driver, you need to edit three
375configuration files, copy the source file to the /usr/src/linux/drivers/net
376directory, and then run the make utility to rebuild the kernel.
377
3781. Edit the following configuration files by adding the statements as
379indicated. (When possible, try to locate the added text to the section of the
380file containing similar statements).
381
382
383a.) In /usr/src/linux/drivers/net/Config.in, add:
384
385tristate 'CS89x0 support' CONFIG_CS89x0
386
387Example:
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
400b.) In /usr/src/linux/drivers/net/Makefile, add the following lines:
401
402ifeq ($(CONFIG_CS89x0),y)
403L_OBJS += cs89x0.o
404else
405 ifeq ($(CONFIG_CS89x0),m)
406 M_OBJS += cs89x0.o
407 endif
408endif
409
410
411c.) In /linux/drivers/net/Space.c file, add the line:
412
413extern int cs89x0_probe(struct device *dev);
414
415
416Example:
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
429Also add:
430
431 #ifdef CONFIG_CS89x0
432 { cs89x0_probe,0 },
433 #endif
434
435
4362.) Copy the driver source files (cs89x0.c and cs89x0.h)
437into the /usr/src/linux/drivers/net directory.
438
439
4403.) Go to /usr/src/linux directory and run 'make config' followed by 'make'
441(or make bzImage) to rebuild the kernel.
442
4434.) Use the DOS 'setup' utility to disable plug and play on the NIC.
444
445 366
4465.0 TESTING AND TROUBLESHOOTING 3675.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
2DE10x
3=====
4
5Memory Addresses:
6
7 SW1 SW2 SW3 SW4
864K on on on on d0000 dbfff
9 off on on on c0000 cbfff
10 off off on on e0000 ebfff
11
1232K on on off on d8000 dbfff
13 off on off on c8000 cbfff
14 off off off on e8000 ebfff
15
16DBR ROM on on dc000 dffff
17 off on cc000 cffff
18 off off ec000 effff
19
20Note that the 2K mode is set by SW3/SW4 on/off or off/off. Address
21assignment is through the RBSA register.
22
23I/O Address:
24 SW5
250x300 on
260x200 off
27
28Remote Boot:
29 SW6
30Disable on
31Enable off
32
33Remote Boot Timeout:
34 SW7
352.5min on
3630s off
37
38IRQ:
39 SW8 SW9 SW10 SW11 SW12
402 on off off off off
413 off on off off off
424 off off on off off
435 off off off on off
447 off off off off on
45
46DE20x
47=====
48
49Memory Size:
50
51 SW3 SW4
5264K on on
5332K off on
542K on off
552K off off
56
57Start Addresses:
58
59 SW1 SW2 SW3 SW4
6064K on on on on c0000 cffff
61 on off on on d0000 dffff
62 off on on on e0000 effff
63
6432K on on off off c8000 cffff
65 on off off off d8000 dffff
66 off on off off e8000 effff
67
68Illegal off off - - - -
69
70I/O Address:
71 SW5
720x300 on
730x200 off
74
75Remote Boot:
76 SW6
77Disable on
78Enable off
79
80Remote Boot Timeout:
81 SW7
822.5min on
8330s off
84
85IRQ:
86 SW8 SW9 SW10 SW11 SW12
875 on off off off off
889 off on off off off
8910 off off on off off
9011 off off off on off
9115 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 @@
1The EtherWORKS 3 driver in this distribution is designed to work with all
2kernels > 1.1.33 (approx) and includes tools in the 'ewrk3tools'
3subdirectory 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
5subdirectory to make the tools).
6
7The supported cards are DE203, DE204 and DE205. All other cards are NOT
8supported - refer to 'depca.c' for running the LANCE based network cards and
9'de4x5.c' for the DIGITAL Semiconductor PCI chip based adapters from
10Digital.
11
12The ability to load this driver as a loadable module has been included and
13used extensively during the driver development (to save those long reboot
14sequences). 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
38The performance we've achieved so far has been measured through the 'ttcp'
39tool at 975kB/s. This measures the total TCP stack performance which
40includes the card, so don't expect to get much nearer the 1.25MB/s
41theoretical Ethernet rate.
42
43
44Enjoy!
45
46Dave
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
18LSF is much simpler than BPF. One does not have to worry about 18LSF is much simpler than BPF. One does not have to worry about
19devices or anything like that. You simply create your filter 19devices or anything like that. You simply create your filter
20code, send it to the kernel via the SO_ATTACH_FILTER ioctl and 20code, send it to the kernel via the SO_ATTACH_FILTER option and
21if your filter code passes the kernel check on it, you then 21if your filter code passes the kernel check on it, you then
22immediately begin filtering data on that socket. 22immediately begin filtering data on that socket.
23 23
24You can also detach filters from your socket via the 24You can also detach filters from your socket via the
25SO_DETACH_FILTER ioctl. This will probably not be used much 25SO_DETACH_FILTER option. This will probably not be used much
26since when you close a socket that has a filter on it the 26since when you close a socket that has a filter on it the
27filter is automagically removed. The other less common case 27filter is automagically removed. The other less common case
28may be adding a different filter on the same socket where you had another 28may 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
31filter has passed the checks, otherwise if it fails the old filter 31filter has passed the checks, otherwise if it fails the old filter
32will remain on that socket. 32will remain on that socket.
33 33
34SO_LOCK_FILTER option allows to lock the filter attached to a
35socket. Once set, a filter cannot be removed or changed. This allows
36one process to setup a socket, attach a filter, lock it then drop
37privileges and be assured that the filter will be kept until the
38socket is closed.
39
34Examples 40Examples
35======== 41========
36 42
37Ioctls- 43Ioctls-
38setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter)); 44setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter));
39setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value)); 45setsockopt(sockfd, SOL_SOCKET, SO_DETACH_FILTER, &value, sizeof(value));
46setsockopt(sockfd, SOL_SOCKET, SO_LOCK_FILTER, &value, sizeof(value));
40 47
41See the BSD bpf.4 manpage and the BSD Packet Filter paper written by 48See the BSD bpf.4 manpage and the BSD Packet Filter paper written by
42Steven McCanne and Van Jacobson of Lawrence Berkeley Laboratory. 49Steven 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
29neigh/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
29neigh/default/gc_thresh3 - INTEGER 34neigh/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
128tcp_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
139tcp_abort_on_overflow - BOOLEAN 133tcp_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 @@
1Behaviour of Cards Under Multicast
2==================================
3
4This is how they currently behave, not what the hardware can do--for example,
5the Lance driver doesn't use its filter, even though the code for loading
6it is in the DEC Lance-based driver.
7
8The following are requirements for multicasting
9-----------------------------------------------
10AppleTalk Multicast hardware filtering not important but
11 avoid cards only doing promisc
12IP-Multicast Multicast hardware filters really help
13IP-MRoute AllMulti hardware filters are of no help
14
15
16Board Multicast AllMulti Promisc Filter
17------------------------------------------------------------------------
183c501 YES YES YES Software
193c503 YES YES YES Hardware
203c505 YES NO YES Hardware
213c507 NO NO NO N/A
223c509 YES YES YES Software
233c59x YES YES YES Software
24ac3200 YES YES YES Hardware
25apricot YES PROMISC YES Hardware
26arcnet NO NO NO N/A
27at1700 PROMISC PROMISC YES Software
28atp PROMISC PROMISC YES Software
29cs89x0 YES YES YES Software
30de4x5 YES YES YES Hardware
31de600 NO NO NO N/A
32de620 PROMISC PROMISC YES Software
33depca YES PROMISC YES Hardware
34dmfe YES YES YES Software(*)
35e2100 YES YES YES Hardware
36eepro YES PROMISC YES Hardware
37eexpress NO NO NO N/A
38ewrk3 YES PROMISC YES Hardware
39hp-plus YES YES YES Hardware
40hp YES YES YES Hardware
41hp100 YES YES YES Hardware
42ibmtr NO NO NO N/A
43ioc3-eth YES YES YES Hardware
44lance YES YES YES Software(#)
45ne YES YES YES Hardware
46ni52 <------------------ Buggy ------------------>
47ni65 YES YES YES Software(#)
48seeq NO NO NO N/A
49sgiseek <------------------ Buggy ------------------>
50smc-ultra YES YES YES Hardware
51sunlance YES YES YES Hardware
52tulip YES YES YES Hardware
53wavelan YES PROMISC YES Hardware
54wd YES YES YES Hardware
55xirc2ps_cs YES YES YES Hardware
56znet YES YES YES Software
57
58
59PROMISC = This multicast mode is in fact promiscuous mode. Avoid using
60cards 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
2started by Ingo Molnar <mingo@redhat.com>, 2001.09.17 2started by Ingo Molnar <mingo@redhat.com>, 2001.09.17
32.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003 32.6 port and netpoll api by Matt Mackall <mpm@selenic.com>, Sep 9 2003
4IPv6 support by Cong Wang <xiyou.wangcong@gmail.com>, Jan 1 2013
4 5
5Please send bug reports to Matt Mackall <mpm@selenic.com> 6Please send bug reports to Matt Mackall <mpm@selenic.com>
6and Satyam Sharma <satyam.sharma@gmail.com> 7Satyam Sharma <satyam.sharma@gmail.com>, and Cong Wang <xiyou.wangcong@gmail.com>
7 8
8Introduction: 9Introduction:
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
44It also supports logging to multiple remote agents by specifying 49It also supports logging to multiple remote agents by specifying
45parameters for the multiple agents separated by semicolons and the 50parameters for the multiple agents separated by semicolons and the
46complete string enclosed in "quotes", thusly: 51complete 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
3nf_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
10nf_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
16nf_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
24nf_conntrack_count - INTEGER (read-only)
25 Number of currently allocated flow entries.
26
27nf_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
34nf_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
52nf_conntrack_expect_max - INTEGER
53 Maximum size of expectation table. Default value is
54 nf_conntrack_buckets / 256. Minimum is 1.
55
56nf_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
64nf_conntrack_frag6_low_thresh - INTEGER
65 default 196608
66
67 See nf_conntrack_frag6_low_thresh
68
69nf_conntrack_frag6_timeout - INTEGER (seconds)
70 default 60
71
72 Time to keep an IPv6 fragment in memory.
73
74nf_conntrack_generic_timeout - INTEGER (seconds)
75 default 600
76
77 Default for generic timeout. This refers to layer 4 unknown/unsupported
78 protocols.
79
80nf_conntrack_helper - BOOLEAN
81 0 - disabled
82 not 0 - enabled (default)
83
84 Enable automatic conntrack helper assignment.
85
86nf_conntrack_icmp_timeout - INTEGER (seconds)
87 default 30
88
89 Default for ICMP timeout.
90
91nf_conntrack_icmpv6_timeout - INTEGER (seconds)
92 default 30
93
94 Default for ICMP6 timeout.
95
96nf_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
108nf_conntrack_max - INTEGER
109 Size of connection tracking table. Default value is
110 nf_conntrack_buckets value * 4.
111
112nf_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
119nf_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
126nf_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
133nf_conntrack_tcp_timeout_close - INTEGER (seconds)
134 default 10
135
136nf_conntrack_tcp_timeout_close_wait - INTEGER (seconds)
137 default 60
138
139nf_conntrack_tcp_timeout_established - INTEGER (seconds)
140 default 432000 (5 days)
141
142nf_conntrack_tcp_timeout_fin_wait - INTEGER (seconds)
143 default 120
144
145nf_conntrack_tcp_timeout_last_ack - INTEGER (seconds)
146 default 30
147
148nf_conntrack_tcp_timeout_max_retrans - INTEGER (seconds)
149 default 300
150
151nf_conntrack_tcp_timeout_syn_recv - INTEGER (seconds)
152 default 60
153
154nf_conntrack_tcp_timeout_syn_sent - INTEGER (seconds)
155 default 120
156
157nf_conntrack_tcp_timeout_time_wait - INTEGER (seconds)
158 default 120
159
160nf_conntrack_tcp_timeout_unacknowledged - INTEGER (seconds)
161 default 300
162
163nf_conntrack_timestamp - BOOLEAN
164 0 - disabled (default)
165 not 0 - enabled
166
167 Enable connection tracking flow timestamping.
168
169nf_conntrack_udp_timeout - INTEGER (seconds)
170 default 30
171
172nf_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
88packets. The name 'carrier' and the inversion are historical, think of 88packets. The name 'carrier' and the inversion are historical, think of
89it as lower layer. 89it as lower layer.
90 90
91Note that for certain kind of soft-devices, which are not managing any
92real hardware, there is possible to set this bit from userpsace.
93One should use TVL IFLA_CARRIER to do so.
94
91netif_carrier_ok() can be used to query that bit. 95netif_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
17HCI registers as an nfc device with NFC Core. Requests coming from userspace are 17HCI registers as an nfc device with NFC Core. Requests coming from userspace are
18routed through netlink sockets to NFC Core and then to HCI. From this point, 18routed through netlink sockets to NFC Core and then to HCI. From this point,
19they are translated in a sequence of HCI commands sent to the HCI layer in the 19they are translated in a sequence of HCI commands sent to the HCI layer in the
20host controller (the chip). The sending context blocks while waiting for the 20host controller (the chip). Commands can be executed synchronously (the sending
21response to arrive. 21context blocks waiting for response) or asynchronously (the response is returned
22from HCI Rx context).
22HCI events can also be received from the host controller. They will be handled 23HCI events can also be received from the host controller. They will be handled
23and a translation will be forwarded to NFC Core as needed. 24and a translation will be forwarded to NFC Core as needed. There are hooks to
25let the HCI driver handle proprietary events or override standard behavior.
24HCI uses 2 execution contexts: 26HCI 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
26can be executing at any given moment. 28can be executing at any given moment.
@@ -33,6 +35,8 @@ The Session initialization is an HCI standard which must unfortunately
33support proprietary gates. This is the reason why the driver will pass a list 35support proprietary gates. This is the reason why the driver will pass a list
34of proprietary gates that must be part of the session. HCI will ensure all 36of proprietary gates that must be part of the session. HCI will ensure all
35those gates have pipes connected when the hci device is set up. 37those gates have pipes connected when the hci device is set up.
38In case the chip supports pre-opened gates and pseudo-static pipes, the driver
39can pass that information to HCI core.
36 40
37HCI Gates and Pipes 41HCI Gates and Pipes
38------------------- 42-------------------
@@ -46,6 +50,13 @@ without knowing the pipe connected to it.
46Driver interface 50Driver interface
47---------------- 51----------------
48 52
53A driver is generally written in two parts : the physical link management and
54the HCI management. This makes it easier to maintain a driver for a chip that
55can be connected using various phy (i2c, spi, ...)
56
57HCI Management
58--------------
59
49A driver would normally register itself with HCI and provide the following 60A driver would normally register itself with HCI and provide the following
50entry points: 61entry 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
71session has been set up. The driver can use it to do additional initialization 89session has been set up. The driver can use it to do additional initialization
72that must be performed using HCI commands. 90that 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
75mode. This must be implemented only if the hardware uses proprietary gates or a 93mode. This must be implemented only if the hardware uses proprietary gates or a
76mechanism slightly different from the HCI standard. 94mechanism slightly different from the HCI standard.
95- dep_link_up() is called after a p2p target has been detected, to finish
96the p2p connection setup with hardware parameters that need to be passed back
97to 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
78corresponding to a proprietary gate. 100corresponding 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
80perform additional proprietary processing necessary to auto activate the 102perform additional proprietary processing necessary to auto activate the
81discovered target. 103discovered 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
83are required to send data to the tag. Some tag types will require custom 105are required to send data to the tag. Some tag types will require custom
84commands, others can be written to using the standard HCI commands. The driver 106commands, others can be written to using the standard HCI commands. The driver
85can check the tag type and either do proprietary processing, or return 1 to ask 107can check the tag type and either do proprietary processing, or return 1 to ask
86for standard processing. 108for standard processing. The data exchange command itself must be sent
109asynchronously.
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
88by the core to check that an activated tag is still in the field. If this is 112by the core to check that an activated tag is still in the field. If this is
89not implemented, the core will not be able to push tag_lost events to the user 113not implemented, the core will not be able to push tag_lost events to the user
90space 114space
115- event_received() is called to handle an event coming from the chip. Driver
116can handle the event or return 1 to let HCI attempt standard processing.
91 117
92On the rx path, the driver is responsible to push incoming HCP frames to HCI 118On the rx path, the driver is responsible to push incoming HCP frames to HCI
93using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling 119using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling
94This must be done from a context that can sleep. 120This must be done from a context that can sleep.
95 121
96SHDLC 122PHY Management
97----- 123--------------
124
125The physical link (i2c, ...) management is defined by the following struture:
126
127struct 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
133enable(): turn the phy on (power on), make it ready to transfer data
134disable(): turn the phy off
135write(): Send a data frame to the chip. Note that to enable higher
136layers such as an llc to store the frame for re-emission, this function must
137not alter the skb. It must also not return a positive result (return 0 for
138success, negative for failure).
139
140Data coming from the chip shall be sent directly to nfc_hci_recv_frame().
141
142LLC
143---
144
145Communication between the CPU and the chip often requires some link layer
146protocol. Those are isolated as modules managed by the HCI layer. There are
147currently two modules : nop (raw transfert) and shdlc.
148A new llc must implement the following functions:
149
150struct 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
99Most chips use shdlc to ensure integrity and delivery ordering of the HCP 169The llc must be registered with nfc before it can be used. Do that by
100frames between the host controller (the chip) and hosts (entities connected 170calling nfc_llc_register(const char *name, struct nfc_llc_ops *ops);
101to the chip, like the cpu). In order to simplify writing the driver, an shdlc 171
102layer is available for use by the driver. 172Again, note that the llc does not handle the physical link. It is thus very
103When used, the driver actually registers with shdlc, and shdlc will register 173easy to mix any physical link with any llc for a given chip driver.
104with HCI. HCI sees shdlc as the driver and thus send its HCP frames
105through shdlc->xmit.
106SHDLC adds a new execution context (nfc_shdlc_sm_work()) to run its state
107machine and handle both its rx and tx path.
108 174
109Included Drivers 175Included Drivers
110---------------- 176----------------
@@ -117,10 +183,12 @@ Execution Contexts
117 183
118The execution contexts are the following: 184The execution contexts are the following:
119- IRQ handler (IRQH): 185- IRQ handler (IRQH):
120fast, cannot sleep. stores incoming frames into an shdlc rx queue 186fast, cannot sleep. sends incoming frames to HCI where they are passed to
187the 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)
123handles shdlc rx & tx queues. Dispatches HCI cmd responses. 190Only when llc_shdlc is used: handles shdlc rx & tx queues.
191Dispatches HCI cmd responses.
124 192
125- HCI Tx Cmd worker (MSGTXWQ) 193- HCI Tx Cmd worker (MSGTXWQ)
126Serializes execution of HCI commands. Completes execution in case of response 194Serializes execution of HCI commands. Completes execution in case of response
@@ -166,6 +234,15 @@ waiting command execution. Response processing involves invoking the completion
166callback that was provided by nfc_hci_msg_tx_work() when it sent the command. 234callback that was provided by nfc_hci_msg_tx_work() when it sent the command.
167The completion callback will then wake the syscall context. 235The completion callback will then wake the syscall context.
168 236
237It is also possible to execute the command asynchronously using this API:
238
239static 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
243The workflow is the same, except that the API call returns immediately, and
244the callback will be called with the result from the SMW context.
245
169Workflow receiving an HCI event or command 246Workflow 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 @@
1Kernel driver for the NXP Semiconductors PN544 Near Field 1Kernel driver for the NXP Semiconductors PN544 Near Field
2Communication chip 2Communication chip
3 3
4Author: Jari Vanhala
5Contact: Matti Aaltonen (matti.j.aaltonen at nokia.com)
6
7General 4General
8------- 5-------
9 6
10The PN544 is an integrated transmission module for contactless 7The PN544 is an integrated transmission module for contactless
11communication. The driver goes under drives/nfc/ and is compiled as a 8communication. The driver goes under drives/nfc/ and is compiled as a
12module named "pn544". It registers a misc device and creates a device 9module named "pn544".
13file named "/dev/pn544".
14 10
15Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C. 11Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C.
16 12
17The Interface
18-------------
19
20The driver offers a sysfs interface for a hardware test and an IOCTL
21interface for selecting between two operating modes. There are read,
22write and poll functions for transferring messages. The two operating
23modes are the normal (HCI) mode and the firmware update mode.
24
25PN544 is controlled by sending messages from the userspace to the
26chip. The main function of the driver is just to pass those messages
27without caring about the message content.
28
29
30Protocols 13Protocols
31--------- 14---------
32 15
@@ -47,68 +30,3 @@ and third (LSB) bytes of the message. The maximum FW message length is
47 30
48For the ETSI HCI specification see 31For the ETSI HCI specification see
49http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx 32http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx
50
51The Hardware Test
52-----------------
53
54The idea of the test is that it can performed by reading from the
55corresponding sysfs file. The test is implemented in the board file
56and it should test that PN544 can be put into the firmware update
57mode. If the test is not implemented the sysfs file does not get
58created.
59
60Example:
61> cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test
621
63
64Normal Operation
65----------------
66
67PN544 is powered up when the device file is opened, otherwise it's
68turned off. Only one instance can use the device at a time.
69
70Userspace applications control PN544 with HCI messages. The hardware
71sends an interrupt when data is available for reading. Data is
72physically read when the read function is called by a userspace
73application. Poll() checks the read interrupt state. Configuration and
74self testing are also done from the userspace using read and write.
75
76Example platform data:
77
78static int rx71_pn544_nfc_request_resources(struct i2c_client *client)
79{
80 /* Get and setup the HW resources for the device */
81}
82
83static void rx71_pn544_nfc_free_resources(void)
84{
85 /* Release the HW resources */
86}
87
88static void rx71_pn544_nfc_enable(int fw)
89{
90 /* Turn the device on */
91}
92
93static 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
103static void rx71_pn544_nfc_disable(void)
104{
105 /* turn the power off */
106}
107
108static 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.
972Pin control requests from drivers 972Pin control requests from drivers
973================================= 973=================================
974 974
975When a device driver is about to probe the device core will automatically
976attempt to issue pinctrl_get_select_default() on these devices.
977This way driver writers do not need to add any of the boilerplate code
978of the type found below. However when doing fine-grained state selection
979and not using the "default" state, you may have to do some device driver
980handling of the pinctrl handles and states.
981
982So if you just want to put the pins for a certain device into the default
983state and be done with it, there is nothing you need to do besides
984providing the proper mapping table. The device core will take care of
985the rest.
986
975Generally it is discouraged to let individual drivers get and enable pin 987Generally it is discouraged to let individual drivers get and enable pin
976control. So if possible, handle the pin control in platform code or some other 988control. So if possible, handle the pin control in platform code or some other
977place where you have access to all the affected struct device * pointers. In 989place 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
1097mux in and bias pins in a certain way before the GPIO subsystems starts to 1109mux in and bias pins in a certain way before the GPIO subsystems starts to
1098deal with them. 1110deal with them.
1099 1111
1100The above can be hidden: using pinctrl hogs, the pin control driver may be 1112The above can be hidden: using the device core, the pinctrl core may be
1101setting up the config and muxing for the pins when it is probing, 1113setting up the config and muxing for the pins right before the device is
1102nevertheless orthogonal to the GPIO subsystem. 1114probing, nevertheless orthogonal to the GPIO subsystem.
1103 1115
1104But there are also situations where it makes sense for the GPIO subsystem 1116But there are also situations where it makes sense for the GPIO subsystem
1105to communicate directly with with the pinctrl subsystem, using the latter 1117to 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
223only after the entire suspend/hibernation sequence is complete. 223only after the entire suspend/hibernation sequence is complete.
224So, to summarize, use [un]lock_system_sleep() instead of directly using 224So, to summarize, use [un]lock_system_sleep() instead of directly using
225mutex_[un]lock(&pm_mutex). That would prevent freezing failures. 225mutex_[un]lock(&pm_mutex). That would prevent freezing failures.
226
227V. Miscellaneous
228/sys/power/pm_freeze_timeout controls how long it will cost at most to freeze
229all user space processes or all freezable kernel threads, in unit of millisecond.
230The 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
11sleep modes. 11sleep modes.
12 12
13Detection of the feature set is simple. A list of processors can be found in 13Detection of the feature set is simple. A list of processors can be found in
14arch/ppc/kernel/cputable.c. The PVR register is masked and compared with each 14arch/powerpc/kernel/cputable.c. The PVR register is masked and compared with
15value in the list. If a match is found, the cpu_features of cur_cpu_spec is 15each value in the list. If a match is found, the cpu_features of cur_cpu_spec
16assigned to the feature bitmask for this processor and a __setup_cpu function 16is assigned to the feature bitmask for this processor and a __setup_cpu
17is called. 17function is called.
18 18
19C code may test 'cur_cpu_spec[smp_processor_id()]->cpu_features' for a 19C code may test 'cur_cpu_spec[smp_processor_id()]->cpu_features' for a
20particular feature bit. This is done in quite a few places, for example 20particular 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
52The END_FTR_SECTION macros are implemented by storing information about this 52The END_FTR_SECTION macros are implemented by storing information about this
53code in the '__ftr_fixup' ELF section. When do_cpu_ftr_fixups 53code 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
56nop's from each BEGIN_FTR_SECTION to END_FTR_SECTION. 56nop'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 @@
1Transactional Memory support
2============================
3
4POWER kernel support for this feature is currently limited to supporting
5its use by user programs. It is not currently used by the kernel itself.
6
7This file aims to sum up how it is supported by Linux and what behaviour you
8can expect from your user programs.
9
10
11Basic overview
12==============
13
14Hardware Transactional Memory is supported on POWER8 processors, and is a
15feature that enables a different form of atomic memory access. Several new
16instructions are presented to delimit transactions; transactions are
17guaranteed to either complete atomically or roll back and undo any partial
18changes.
19
20A simple transaction looks like this:
21
22begin_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
37abort_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
45The 'tbegin' instruction denotes the start point, and 'tend' the end point.
46Between these points the processor is in 'Transactional' state; any memory
47references will complete in one go if there are no conflicts with other
48transactional or non-transactional accesses within the system. In this
49example, the transaction completes as though it were normal straight-line code
50IF no other processor has touched SAVINGS_ACCT(r3) or CURRENT_ACCT(r3); an
51atomic move of money from the current account to the savings account has been
52performed. Even though the normal ld/std instructions are used (note no
53lwarx/stwcx), either *both* SAVINGS_ACCT(r3) and CURRENT_ACCT(r3) will be
54updated, or neither will be updated.
55
56If, in the meantime, there is a conflict with the locations accessed by the
57transaction, the transaction will be aborted by the CPU. Register and memory
58state 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
60abort handler can check the cause of the failure, and retry.
61
62Checkpointed registers include all GPRs, FPRs, VRs/VSRs, LR, CCR/CR, CTR, FPCSR
63and a few other status/flag regs; see the ISA for details.
64
65Causes 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
74Syscalls
75========
76
77Performing syscalls from within transaction is not recommended, and can lead
78to unpredictable results.
79
80Syscalls do not by design abort transactions, but beware: The kernel code will
81not be running in transactional state. The effect of syscalls will always
82remain visible, but depending on the call they may abort your transaction as a
83side-effect, read soon-to-be-aborted transactional data that should not remain
84invisible, etc. If you constantly retry a transaction that constantly aborts
85itself by calling a syscall, you'll have a livelock & make no progress.
86
87Simple syscalls (e.g. sigprocmask()) "could" be OK. Even things like write()
88from, say, printf() should be OK as long as the kernel does not access any
89memory that was accessed transactionally.
90
91Consider any syscalls that happen to work as debug-only -- not recommended for
92production use. Best to queue them up till after the transaction is over.
93
94
95Signals
96=======
97
98Delivery of signals (both sync and async) during transactions provides a second
99thread state (ucontext/mcontext) to represent the second transactional register
100state. Signal delivery 'treclaim's to capture both register states, so signals
101abort transactions. The usual ucontext_t passed to the signal handler
102represents the checkpointed/original register state; the signal appears to have
103arisen at 'tbegin+4'.
104
105If the sighandler ucontext has uc_link set, a second ucontext has been
106delivered. For future compatibility the MSR.TS field should be checked to
107determine the transactional state -- if so, the second ucontext in uc->uc_link
108represents the active transactional registers at the point of the signal.
109
110For 64-bit processes, uc->uc_mcontext.regs->msr is a full 64-bit MSR and its TS
111field shows the transactional mode.
112
113For 32-bit processes, the mcontext's MSR register is only 32 bits; the top 32
114bits are stored in the MSR of the second ucontext, i.e. in
115uc->uc_link->uc_mcontext.regs->msr. The top word contains the transactional
116state TS.
117
118However, basic signal handlers don't need to be aware of transactions
119and simply returning from the handler will deal with things correctly:
120
121Transaction-aware signal handlers can read the transactional register state
122from the second ucontext. This will be necessary for crash handlers to
123determine, for example, the address of the instruction causing the SIGSEGV.
124
125Example 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
151Failure cause codes used by kernel
152==================================
153
154These are defined in <asm/reg.h>, and distinguish different reasons why the
155kernel 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
164These can be checked by the user program's abort handler as TEXASR[0:7].
165
166
167GDB
168===
169
170GDB and ptrace are not currently TM-aware. If one stops during a transaction,
171it looks like the transaction has just started (the checkpointed state is
172presented). The transaction cannot then be continued and will take the failure
173handler route. Furthermore, the transactional 2nd register state will be
174inaccessible. GDB can currently be used on programs using TM, but not sensibly
175in 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
56Physical 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
56Raw buffer as a hex string: 64Raw 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
152If <type> is dependent on a config option for its size (e.g., sector_t, 160If <type> is dependent on a config option for its size (e.g., sector_t,
153blkcnt_t, phys_addr_t, resource_size_t) or is architecture-dependent 161blkcnt_t) or is architecture-dependent for its size (e.g., tcflag_t), use a
154for its size (e.g., tcflag_t), use a format specifier of its largest 162format specifier of its largest possible type and explicitly cast to it.
155possible type and explicitly cast to it. Example: 163Example:
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
310Other functions 348Other 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
58ALC861/660 58ALC861/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,
176yes, pretty often broken. It sets up wrong values and screws up the 176yes, pretty often broken. It sets up wrong values and screws up the
177driver. 177driver.
178 178
179The preset model is provided basically to overcome such a situation. 179The preset model (or recently called as "fix-up") is provided
180When the matching preset model is found in the white-list, the driver 180basically to overcome such a situation. When the matching preset
181assumes the static configuration of that preset and builds the mixer 181model is found in the white-list, the driver assumes the static
182elements and PCM streams based on the static information. Thus, if 182configuration of that preset with the correct pin setup, etc.
183you have a newer machine with a slightly different PCI SSID from the 183Thus, if you have a newer machine with a slightly different PCI SSID
184existing 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
185You can pass the `model` option to specify the preset model instead of 185re-use the same model. You can pass the `model` option to specify the
186PCI SSID look-up. 186preset model instead of PCI (and codec-) SSID look-up.
187 187
188What `model` option values are available depends on the codec chip. 188What `model` option values are available depends on the codec chip.
189Check your codec chip from the codec proc file (see "Codec Proc-File" 189Check 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
199different `model` option values. If you have any luck, some of them 199different `model` option values. If you have any luck, some of them
200might suit with your device well. 200might suit with your device well.
201 201
202Some codecs such as ALC880 have a special model option `model=test`. 202There are a few special model option values:
203This configures the driver to provide as many mixer controls as 203- when 'nofixup' is passed, the device-specific fixups in the codec
204possible for every single pin feature except for the unsolicited 204 parser are skipped.
205events (and maybe some other specials). Adjust each mixer element and 205- when `generic` is passed, the codec-specific parser is skipped and
206try the I/O in the way of trial-and-error until figuring out the whole 206 only the generic parser is used.
207I/O pin mappings.
208 207
209Note that `model=generic` has a special meaning. It means to use the
210generic parser regardless of the codec. Usually the codec-specific
211parser is much better than the generic parser (as now). Thus this
212option is more about the debugging purpose.
213 208
214Speaker and Headphone Output 209Speaker and Headphone Output
215~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 210~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -387,9 +382,8 @@ init_verbs::
387 (separated with a space). 382 (separated with a space).
388hints:: 383hints::
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.
393init_pin_configs:: 387init_pin_configs::
394 Shows the initial pin default config values set by BIOS. 388 Shows the initial pin default config values set by BIOS.
395driver_pin_configs:: 389driver_pin_configs::
@@ -421,6 +415,61 @@ re-configure based on that state, run like below:
421------------------------------------------------------------------------ 415------------------------------------------------------------------------
422 416
423 417
418Hint Strings
419~~~~~~~~~~~~
420The codec parser have several switches and adjustment knobs for
421matching better with the actual codec or device behavior. Many of
422them can be adjusted dynamically via "hints" strings as mentioned in
423the section above. For example, by passing `jack_detect = no` string
424via sysfs or a patch file, you can disable the jack detection, thus
425the codec parser will skip the features like auto-mute or mic
426auto-switch. As a boolean value, either `yes`, `no`, `true`, `false`,
427`1` or `0` can be passed.
428
429The 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
424Early Patching 473Early Patching
425~~~~~~~~~~~~~~ 474~~~~~~~~~~~~~~
426When CONFIG_SND_HDA_PATCH_LOADER=y is set, you can pass a "patch" as a 475When 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
451The file needs to have a line `[codec]`. The next line should contain 500The 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
531power-saving. See /sys/module/snd_hda_intel/parameters/power_save to 580power-saving. See /sys/module/snd_hda_intel/parameters/power_save to
532check the current value. If it's non-zero, the feature is turned on. 581check the current value. If it's non-zero, the feature is turned on.
533 582
583The recent kernel supports the runtime PM for the HD-audio controller
584chip, too. It means that the HD-audio controller is also powered up /
585down dynamically. The feature is enabled only for certain controller
586chips like Intel LynxPoint. You can enable/disable this feature
587forcibly by setting `power_save_controller` option, which is also
588available at /sys/module/snd_hda_intel/parameters directory.
589
534 590
535Tracepoints 591Tracepoints
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
589The master branch or for-next branches can be used as the main 645The master branch or for-next branches can be used as the main
590development branches in general while the HD-audio specific patches 646development branches in general while the development for the current
591are committed in topic/hda branch. 647and next kernels are found in for-linus and for-next branches,
648respectively.
592 649
593If you are using the latest Linus tree, it'd be better to pull the 650If you are using the latest Linus tree, it'd be better to pull the
594above GIT tree onto it. If you are using the older kernels, an easy 651above 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
699cached in the driver, and thus changing the widget amp value directly 756cached in the driver, and thus changing the widget amp value directly
700via hda-verb won't change the mixer value. 757via hda-verb won't change the mixer value.
701 758
702The hda-verb program is found in the ftp directory: 759The hda-verb program is included now in alsa-tools:
760
761- git://git.alsa-project.org/alsa-tools.git
762
763Also, 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
778See README file in the tarball for more details about hda-emu 839See README file in the tarball for more details about hda-emu
779program. 840program.
841
842
843hda-jack-retask
844~~~~~~~~~~~~~~~
845hda-jack-retask is a user-friendly GUI program to manipulate the
846HD-audio pin control for jack retasking. If you have a problem about
847the jack assignment, try this program and check whether you can get
848useful results. Once when you figure out the proper pin assignment,
849it can be fixed either in the driver code statically or via passing a
850firmware patch file (see "Early Patching" section).
851
852The 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
148Gapless Playback
149================
150When playing thru an album, the decoders have the ability to skip the encoder
151delay and padding and directly move from one track content to another. The end
152user can perceive this as gapless playback as we dont have silence while
153switching from one track to another
154
155Also, there might be low-intensity noises due to encoding. Perfect gapless is
156difficult to reach with all types of compressed data, but works fine with most
157music content. The decoder needs to know the encoder delay and encoder padding.
158So we need to pass this to DSP. This metadata is extracted from ID3/MP4 headers
159and are not present by default in the bitstream, hence the need for a new
160interface to pass this information to the DSP. Also DSP and userspace needs to
161switch from one track to another and start using data for second track.
162
163The main additions are:
164
165- set_metadata
166This routine sets the encoder delay and encoder padding. This can be used by
167decoder to strip the silence. This needs to be set before the data in the track
168is written.
169
170- set_next_track
171This routine tells DSP that metadata and write operation sent after this would
172correspond to subsequent track
173
174- partial drain
175This is called when end of file is reached. The userspace can inform DSP that
176EOF is reached and now DSP can start skipping padding delay. Also next write
177data would belong to next track
178
179Sequence 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
148Not supported: 194Not 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 @@
1Kernel driver nouveau
2===================
3
4Supported chips:
5* NV43+
6
7Authors: Martin Peres (mupuf) <martin.peres@labri.fr>
8
9Description
10---------
11
12This driver allows to read the GPU core temperature, drive the GPU fan and
13set temperature alarms.
14
15Currently, due to the absence of in-kernel API to access HWMON drivers, Nouveau
16cannot access any of the i2c external monitoring chips it may find. If you
17have one of those, temperature and/or fan management through Nouveau's HWMON
18interface is likely not to work. This document may then not cover your situation
19entirely.
20
21Temperature management
22--------------------
23
24Temperature is exposed under as a read-only HWMON attribute temp1_input.
25
26In order to protect the GPU from overheating, Nouveau supports 4 configurable
27temperature 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
34WARNING: Some of these thresholds may not be used by Nouveau depending
35on your chipset.
36
37The default value for these thresholds comes from the GPU's vbios. These
38thresholds 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
45NOTE: Remember that the values are stored as milli degrees Celcius. Don't forget
46to multiply!
47
48Fan management
49------------
50
51Not all cards have a drivable fan. If you do, then the following HWMON
52attributes 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
59You may also have the following attribute:
60
61 * fan1_input: Speed in RPM of your fan.
62
63Your 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
69NOTE: Be sure to use the manual mode if you want to drive the fan speed manually
70
71NOTE2: Not all fan management modes may be supported on all chipsets. We are
72working on it.
73
74Bug reports
75---------
76
77Thermal management on Nouveau is new and may not work on all cards. If you have
78inquiries, please ping mupuf on IRC (#nouveau, freenode).
79
80Bug reports should be filled on Freedesktop's bug tracker. Please follow
81http://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.
171. Power state switch events 171. Power state switch events
18============================ 18============================
19 19
201.1 New trace API 201.1 Trace API
21----------------- 21-----------------
22 22
23A 'cpu' event class gathers the CPU-related events: cpuidle and 23A '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
41space tools which are using it to detect the end of the current state, and so to 41space tools which are using it to detect the end of the current state, and so to
42correctly draw the states diagrams and to calculate accurate statistics etc. 42correctly draw the states diagrams and to calculate accurate statistics etc.
43 43
441.2 DEPRECATED trace API
45------------------------
46
47A 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
49with the new trace API.
50The Kconfig option, the old trace API (in include/trace/events/power.h) and the
51old trace points will disappear in a future release (namely 2.6.41).
52
53power_start "type=%lu state=%lu cpu_id=%lu"
54power_frequency "type=%lu state=%lu cpu_id=%lu"
55power_end "cpu_id=%lu"
56
57The '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
62The 'state' parameter is set depending on the type:
63 . Target C-state for type=POWER_CSTATE,
64 . Target frequency for type=POWER_PSTATE,
65
66power_end is used to indicate the exit of a state, corresponding to the latest
67power_start event.
68
692. Clocks events 442. Clocks events
70================ 45================
71The clock events are used for clock enable/disable and for 46The 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
184385 184385
1844 1844
1845Snapshot
1846--------
1847CONFIG_TRACER_SNAPSHOT makes a generic snapshot feature
1848available to all non latency tracers. (Latency tracers which
1849record max latency, such as "irqsoff" or "wakeup", can't use
1850this feature, since those are already using the snapshot
1851mechanism internally.)
1852
1853Snapshot preserves a current trace buffer at a particular point
1854in time without stopping tracing. Ftrace swaps the current
1855buffer with a spare buffer, and tracing continues in the new
1856current (=previous spare) buffer.
1857
1858The following debugfs files in "tracing" are related to this
1859feature:
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
1881Here 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
1919If you try to use this snapshot feature when current tracer is
1920one of the latency tracers, you will get the following results.
1921
1922 # echo wakeup > current_tracer
1923 # echo 1 > snapshot
1924bash: echo: write error: Device or resource busy
1925 # cat snapshot
1926cat: snapshot: Device or resource busy
1927
1845----------- 1928-----------
1846 1929
1847More details can be found in the source code, in the 1930More 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 @@
189188 -> Sensoray 811/911 [6000:0811,6000:0911] 189188 -> Sensoray 811/911 [6000:0811,6000:0911]
190189 -> Kworld PC150-U [17de:a134] 190189 -> Kworld PC150-U [17de:a134]
191190 -> Asus My Cinema PS3-100 [1043:48cd] 191190 -> Asus My Cinema PS3-100 [1043:48cd]
192191 -> 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
9Index
10=====
111. Copyright
122. Disclaimer
133. License
144. Overview and features
155. Module dependencies
166. Module loading
177. Module parameters
188. Optional device control through "sysfs"
199. Supported devices
2010. Notes for V4L2 application developers
2111. Contact information
22
23
241. Copyright
25============
26Copyright (C) 2006-2007 by Luca Risolia <luca.risolia@studio.unibo.it>
27
28
292. Disclaimer
30=============
31Etoms is a trademark of Etoms Electronics Corp.
32This software is not developed or sponsored by Etoms Electronics.
33
34
353. License
36==========
37This program is free software; you can redistribute it and/or modify
38it under the terms of the GNU General Public License as published by
39the Free Software Foundation; either version 2 of the License, or
40(at your option) any later version.
41
42This program is distributed in the hope that it will be useful,
43but WITHOUT ANY WARRANTY; without even the implied warranty of
44MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45GNU General Public License for more details.
46
47You should have received a copy of the GNU General Public License
48along with this program; if not, write to the Free Software
49Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
50
51
524. Overview and features
53========================
54This driver supports the video interface of the devices mounting the ET61X151
55or ET61X251 PC Camera Controllers.
56
57It's worth to note that Etoms Electronics has never collaborated with the
58author during the development of this project; despite several requests,
59Etoms Electronics also refused to release enough detailed specifications of
60the video compression engine.
61
62The driver relies on the Video4Linux2 and USB core modules. It has been
63designed to run properly on SMP systems as well.
64
65The latest version of the ET61X[12]51 driver can be found at the following URL:
66http://www.linux-projects.org/
67
68Some 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
975. Module dependencies
98======================
99For it to work properly, the driver needs kernel support for Video4Linux and
100USB.
101
102The following options of the kernel configuration file must be enabled and
103corresponding modules must be compiled:
104
105 # Multimedia devices
106 #
107 CONFIG_VIDEO_DEV=m
108
109To 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
119In addition, depending on the hardware being used, the modules below are
120necessary:
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
128And finally:
129
130 # USB Multimedia devices
131 #
132 CONFIG_USB_ET61X251=m
133
134
1356. Module loading
136=================
137To use the driver, it is necessary to load the "et61x251" module into memory
138after 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
142Loading can be done as shown below:
143
144 [root@localhost home]# modprobe et61x251
145
146At this point the devices should be recognized. You can invoke "dmesg" to
147analyze kernel messages and verify that the loading process has gone well:
148
149 [user@localhost home]$ dmesg
150
151
1527. Module parameters
153====================
154Module parameters are listed below:
155-------------------------------------------------------------------------------
156Name: video_nr
157Type: short array (min = 0, max = 64)
158Syntax: <-1|n[,...]>
159Description: 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.
167Default: -1
168-------------------------------------------------------------------------------
169Name: force_munmap
170Type: bool array (min = 0, max = 64)
171Syntax: <0|1[,...]>
172Description: 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)
178Default: 0
179-------------------------------------------------------------------------------
180Name: frame_timeout
181Type: uint array (min = 0, max = 64)
182Syntax: <n[,...]>
183Description: 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.
186Default: 2
187-------------------------------------------------------------------------------
188Name: debug
189Type: ushort
190Syntax: <n>
191Description: 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.
200Default: 2
201-------------------------------------------------------------------------------
202
203
2048. Optional device control through "sysfs"
205==========================================
206If the kernel has been compiled with the CONFIG_VIDEO_ADV_DEBUG option enabled,
207it is possible to read and write both the ET61X[12]51 and the image sensor
208registers by using the "sysfs" filesystem interface.
209
210There are four files in the /sys/class/video4linux/videoX directory for each
211registered camera: "reg", "val", "i2c_reg" and "i2c_val". The first two files
212control 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
214following 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
216are doing. Remember that you must be logged in as root before writing to them.
217
218As an example, suppose we were to want to read the value contained in the
219register number 1 of the sensor register table - which is usually the product
220identifier - 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
226Note that if the sensor registers cannot be read, "cat" will fail.
227To avoid race conditions, all the I/O accesses to the files are serialized.
228
229
2309. Supported devices
231====================
232None of the names of the companies as well as their products will be mentioned
233here. They have never collaborated with the author, so no advertising.
234
235From the point of view of a driver, what unambiguously identify a device are
236its vendor and product USB identifiers. Below is a list of known identifiers of
237devices mounting the ET61X[12]51 PC camera controllers:
238
239Vendor ID Product ID
240--------- ----------
2410x102c 0x6151
2420x102c 0x6251
2430x102c 0x6253
2440x102c 0x6254
2450x102c 0x6255
2460x102c 0x6256
2470x102c 0x6257
2480x102c 0x6258
2490x102c 0x6259
2500x102c 0x625a
2510x102c 0x625b
2520x102c 0x625c
2530x102c 0x625d
2540x102c 0x625e
2550x102c 0x625f
2560x102c 0x6260
2570x102c 0x6261
2580x102c 0x6262
2590x102c 0x6263
2600x102c 0x6264
2610x102c 0x6265
2620x102c 0x6266
2630x102c 0x6267
2640x102c 0x6268
2650x102c 0x6269
266
267The following image sensors are supported:
268
269Model Manufacturer
270----- ------------
271TAS5130D1B Taiwan Advanced Sensor Corporation
272
273All the available control settings of each image sensor are supported through
274the V4L2 interface.
275
276
27710. Notes for V4L2 application developers
278=========================================
279This driver follows the V4L2 API specifications. In particular, it enforces two
280rules:
281
282- exactly one I/O method, either "mmap" or "read", is associated with each
283file descriptor. Once it is selected, the application must close and reopen the
284device to switch to the other I/O method;
285
286- although it is not mandatory, previously mapped buffer memory should always
287be unmapped before calling any "VIDIOC_S_CROP" or "VIDIOC_S_FMT" ioctl's.
288The same number of buffers as before will be allocated again to match the size
289of the new video frames, so you have to map the buffers again before any I/O
290attempts on them.
291
292Consistently with the hardware limits, this driver also supports image
293downscaling with arbitrary scaling factors from 1 and 2 in both directions.
294However, the V4L2 API specifications don't correctly define how the scaling
295factor can be chosen arbitrarily by the "negotiation" of the "source" and
296"target" rectangles. To work around this flaw, we have added the convention
297that, during the negotiation, whenever the "VIDIOC_S_CROP" ioctl is issued, the
298scaling factor is restored to 1.
299
300This driver supports two different video formats: the first one is the "8-bit
301Sequential Bayer" format and can be used to obtain uncompressed video data
302from 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
304compressed data). The current compression quality may vary from 0 to 1 and can
305be selected or queried thanks to the VIDIOC_S_JPEGCOMP and VIDIOC_G_JPEGCOMP
306V4L2 ioctl's.
307
308
30911. Contact information
310=======================
311The author may be contacted by e-mail at <luca.risolia@studio.unibo.it>.
312
313GPG/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;
315the 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:
584.1. Media device interface 584.1. Media device interface
59 59
60The driver supports Media Controller API as defined at 60The driver supports Media Controller API as defined at
61http://http://linuxtv.org/downloads/v4l-dvb-apis/media_common.html 61http://linuxtv.org/downloads/v4l-dvb-apis/media_common.html
62The media device driver name is "SAMSUNG S5P FIMC". 62The media device driver name is "SAMSUNG S5P FIMC".
63 63
64The purpose of this interface is to allow changing assignment of FIMC instances 64The 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 @@
1README for Linux device driver for the IBM "C-It" USB video camera
2
3INTRODUCTION:
4
5This driver does not use all features known to exist in
6the IBM camera. However most of needed features work well.
7
8This driver was developed using logs of observed USB traffic
9which was produced by standard Windows driver (c-it98.sys).
10I did not have data sheets from Xirlink.
11
12Video formats:
13 128x96 [model 1]
14 176x144
15 320x240 [model 2]
16 352x240 [model 2]
17 352x288
18Frame rate: 3 - 30 frames per second (FPS)
19External interface: USB
20Internal interface: Video For Linux (V4L)
21Supported controls:
22- by V4L: Contrast, Brightness, Color, Hue
23- by driver options: frame rate, lighting conditions, video format,
24 default picture settings, sharpness.
25
26SUPPORTED CAMERAS:
27
28Xirlink "C-It" camera, also known as "IBM PC Camera".
29The device uses proprietary ASIC (and compression method);
30it is manufactured by Xirlink. See http://xirlinkwebcam.sourceforge.net,
31http://www.ibmpccamera.com, or http://www.c-itnow.com/ for details and pictures.
32
33This very chipset ("X Chip", as marked at the factory)
34is used in several other cameras, and they are supported
35as well:
36
37- IBM NetCamera
38- Veo Stingray
39
40The Linux driver was developed with camera with following
41model number (or FCC ID): KSX-XVP510. This camera has three
42interfaces, each with one endpoint (control, iso, iso). This
43type of cameras is referred to as "model 1". These cameras are
44no longer manufactured.
45
46Xirlink now manufactures new cameras which are somewhat different.
47In particular, following models [FCC ID] belong to that category:
48
49XVP300 [KSX-X9903]
50XVP600 [KSX-X9902]
51XVP610 [KSX-X9902]
52
53(see http://www.xirlink.com/ibmpccamera/ for updates, they refer
54to these new cameras by Windows driver dated 12-27-99, v3005 BETA)
55These cameras have two interfaces, one endpoint in each (iso, bulk).
56Such type of cameras is referred to as "model 2". They are supported
57(with exception of 352x288 native mode).
58
59Some IBM NetCameras (Model 4) are made to generate only compressed
60video streams. This is great for performance, but unfortunately
61nobody knows how to decompress the stream :-( Therefore, these
62cameras are *unsupported* and if you try to use one of those, all
63you get is random colored horizontal streaks, not the image!
64If you have one of those cameras, you probably should return it
65to the store and get something that is supported.
66
67Tell me more about all that "model" business
68--------------------------------------------
69
70I just invented model numbers to uniquely identify flavors of the
71hardware/firmware that were sold. It was very confusing to use
72brand names or some other internal numbering schemes. So I found
73by experimentation that all Xirlink chipsets fall into four big
74classes, and I called them "models". Each model is programmed in
75its own way, and each model sends back the video in its own way.
76
77Quirks of Model 2 cameras:
78-------------------------
79
80Model 2 does not have hardware contrast control. Corresponding V4L
81control is implemented in software, which is not very nice to your
82CPU, but at least it works.
83
84This driver provides 352x288 mode by switching the camera into
85quasi-352x288 RGB mode (800 Kbits per frame) essentially limiting
86this mode to 10 frames per second or less, in ideal conditions on
87the bus (USB is shared, after all). The frame rate
88has to be programmed very conservatively. Additional concern is that
89frame rate depends on brightness setting; therefore the picture can
90be good at one brightness and broken at another! I did not want to fix
91the frame rate at slowest setting, but I had to move it pretty much down
92the scale (so that framerate option barely matters). I also noticed that
93camera after first powering up produces frames slightly faster than during
94consecutive uses. All this means that if you use 352x288 (which is
95default), be warned - you may encounter broken picture on first connect;
96try to adjust brightness - brighter image is slower, so USB will be able
97to send all data. However if you regularly use Model 2 cameras you may
98prefer 176x144 which makes perfectly good I420, with no scaling and
99lesser demands on USB (300 Kbits per second, or 26 frames per second).
100
101Another strange effect of 352x288 mode is the fine vertical grid visible
102on some colored surfaces. I am sure it is caused by me not understanding
103what the camera is trying to say. Blame trade secrets for that.
104
105The camera that I had also has a hardware quirk: if disconnected,
106it 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
110observed this particular flaw in it.]
111
112Model 2 camera can be programmed for very high sensitivity (even starlight
113may be enough), this makes it convenient for tinkering with. The driver
114code has enough comments to help a programmer to tweak the camera
115as s/he feels necessary.
116
117WHAT 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
125HOW TO COMPILE THE DRIVER:
126
127You need to compile the driver only if you are a developer
128or if you want to make changes to the code. Most distributions
129precompile all modules, so you can go directly to the next
130section "HOW TO USE THE DRIVER".
131
132The ibmcam driver uses usbvideo helper library (module),
133so if you are studying the ibmcam code you will be led there.
134
135The driver itself consists of only one file in usb/ directory:
136ibmcam.c. This file is included into the Linux kernel build
137process if you configure the kernel for CONFIG_USB_IBMCAM.
138Run "make xconfig" and in USB section you will find the IBM
139camera driver. Select it, save the configuration and recompile.
140
141HOW TO USE THE DRIVER:
142
143I recommend to compile driver as a module. This gives you an
144easier access to its configuration. The camera has many more
145settings than V4L can operate, so some settings are done using
146module options.
147
148To begin with, on most modern Linux distributions the driver
149will be automatically loaded whenever you plug the supported
150camera in. Therefore, you don't need to do anything. However
151if you want to experiment with some module parameters then
152you can load and unload the driver manually, with camera
153plugged in or unplugged.
154
155Typically module is installed with command 'modprobe', like this:
156
157# modprobe ibmcam framerate=1
158
159Alternatively you can use 'insmod' in similar fashion:
160
161# insmod /lib/modules/2.x.y/usb/ibmcam.o framerate=1
162
163Module can be inserted with camera connected or disconnected.
164
165The driver can have options, though some defaults are provided.
166
167Driver options: (* indicates that option is model-dependent)
168
169Name Type Range [default] Example
170-------------- -------------- -------------- ------------------
171debug Integer 0-9 [0] debug=1
172flags Integer 0-0xFF [0] flags=0x0d
173framerate Integer 0-6 [2] framerate=1
174hue_correction Integer 0-255 [128] hue_correction=115
175init_brightness Integer 0-255 [128] init_brightness=100
176init_contrast Integer 0-255 [192] init_contrast=200
177init_color Integer 0-255 [128] init_color=130
178init_hue Integer 0-255 [128] init_hue=115
179lighting Integer 0-2* [1] lighting=2
180sharpness Integer 0-6* [4] sharpness=3
181size Integer 0-2* [2] size=1
182
183Options for Model 2 only:
184
185Name Type Range [default] Example
186-------------- -------------- -------------- ------------------
187init_model2_rg Integer 0..255 [0x70] init_model2_rg=128
188init_model2_rg2 Integer 0..255 [0x2f] init_model2_rg2=50
189init_model2_sat Integer 0..255 [0x34] init_model2_sat=65
190init_model2_yb Integer 0..255 [0xa0] init_model2_yb=200
191
192debug 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
196flags 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
230framerate 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
237hue_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
247init_brightness These settings specify _initial_ values which will be
248init_contrast used to set up the camera. If your V4L application has
249init_color its own controls to adjust the picture then these
250init_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
254init_model2_rg These initial settings alter color balance of the
255init_model2_rg2 camera on hardware level. All four settings may be used
256init_model2_sat to tune the camera to specific lighting conditions. These
257init_model2_yb settings only apply to Model 2 cameras.
258
259lighting 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
268sharpness 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
275size 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
298For more information and the Troubleshooting FAQ visit this URL:
299
300 http://www.linux-usb.org/ibmcam/
301
302WHAT 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
317CREDITS:
318
319The code is based in no small part on the CPiA driver by Johannes Erdfelt,
320Randy Dunlap, and others. Big thanks to them for their pioneering work on that
321and the USB stack.
322
323I 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 @@
1This document describes the ALi m5602 bridge connected
2to the following supported sensors:
3OmniVision OV9650,
4Samsung s5k83a,
5Samsung s5k4aa,
6Micron mt9m111,
7Pixel plus PO1030
8
9This driver mimics the windows drivers, which have a braindead implementation sending bayer-encoded frames at VGA resolution.
10In 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
12Anyway, 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-------------------------------------------------------------------------------
2Readme for Linux device driver for the OmniVision OV511 USB to camera bridge IC
3-------------------------------------------------------------------------------
4
5Author: Mark McClelland
6Homepage: http://alpha.dyndns.org/ov511
7
8INTRODUCTION:
9
10This is a driver for the OV511, a USB-only chip used in many "webcam" devices.
11Any camera using the OV511/OV511+ and the OV6620/OV7610/20/20AE should work.
12Video capture devices that use the Philips SAA7111A decoder also work. It
13supports streaming and capture of color or monochrome video via the Video4Linux
14API. Most V4L apps are compatible with it. Most resolutions with a width and
15height that are a multiple of 8 are supported.
16
17If you need more information, please visit the OV511 homepage at the above URL.
18
19WHAT 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
28HOW TO USE IT:
29
30Note: These are simplified instructions. For complete instructions see:
31 http://alpha.dyndns.org/ov511/install.html
32
33You must have first compiled USB support, support for your specific USB host
34controller (UHCI or OHCI), and Video4Linux support for your kernel (I recommend
35making them modules.) Make sure "Enforce bandwidth allocation" is NOT enabled.
36
37Next, (as root):
38
39 modprobe usbcore
40 modprobe usb-uhci <OR> modprobe usb-ohci
41 modprobe videodev
42 modprobe ov511
43
44If it is not already there (it usually is), create the video device:
45
46 mknod /dev/video0 c 81 0
47
48Optionally, symlink /dev/video to /dev/video0
49
50You will have to set permissions on this device to allow you to read/write
51from it:
52
53 chmod 666 /dev/video
54 chmod 666 /dev/video0 (if necessary)
55
56Now you are ready to run a video app! Both vidcat and xawtv work well for me
57at 640x480.
58
59[Using vidcat:]
60
61 vidcat -s 640x480 -p c > test.jpg
62 xview test.jpg
63
64[Using xawtv:]
65
66From the main xawtv directory:
67
68 make clean
69 ./configure
70 make
71 make install
72
73Now you should be able to run xawtv. Right click for the options dialog.
74
75MODULE 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
267WORKING 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
277HOW TO CONTACT ME:
278
279You can email me at mark@alpha.dyndns.org . Please prefix the subject line
280with "OV511: " so that I am certain to notice your message.
281
282CREDITS:
283
284The code is based in no small part on the CPiA driver by Johannes Erdfelt,
285Randy Dunlap, and others. Big thanks to them for their pioneering work on that
286and the USB stack. Thanks to Bret Wallach for getting camera reg IO, ISOC, and
287image capture working. Thanks to Orion Sky Lawlor, Kevin Moore, and Claudio
288Matsuoka 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 @@
1Linux driver for SE401 based USB cameras
2
3Copyright, 2001, Jeroen Vreeken
4
5
6INTRODUCTION:
7
8The SE401 chip is the used in low-cost usb webcams.
9It is produced by Endpoints Inc. (www.endpoints.com).
10It interfaces directly to a cmos image sensor and USB. The only other major
11part in a se401 based camera is a dram chip.
12
13The following cameras are known to work with this driver:
14
15Aox se401 (non-branded) cameras
16Philips PVCV665 USB VGA webcam 'Vesta Fun'
17Kensington VideoCAM PC Camera Model 67014
18Kensington VideoCAM PC Camera Model 67015
19Kensington VideoCAM PC Camera Model 67016
20Kensington VideoCAM PC Camera Model 67017
21
22
23WHAT YOU NEED:
24
25- USB support
26- VIDEO4LINUX support
27
28More information about USB support for linux can be found at:
29http://www.linux-usb.org
30
31
32MODULE OPTIONS:
33
34When the driver is compiled as a module you can also use the 'flickerless'
35option. With it exposure is limited to values that do not interfere with the
36net frequency. Valid options for this option are 0, 50 and 60. (0=disable,
3750=50hz, 60=60hz)
38
39
40KNOWN PROBLEMS:
41
42The driver works fine with the usb-ohci and uhci host controller drivers,
43the default settings also work with usb-uhci. But sending more than one bulk
44transfer at a time with usb-uhci doesn't work yet.
45Users of usb-ohci and uhci can safely enlarge SE401_NUMSBUF in se401.h in
46order to increase the throughput (and thus framerate).
47
48
49HELP:
50
51The latest info on this driver can be found at:
52http://members.chello.nl/~j.vreeken/se401/
53And questions to me can be send to:
54pe1rxq@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
57For example, you can use:
58v4l2-ctl -d /dev/radio0 --set-ctrl=volume=10,mute=0 --set-freq=95.21 --all
56 59
57There is also a library libv4l, which can be used. It's going to have a function 60There is also a library libv4l, which can be used. It's going to have a function
58for frequency seeking, either by using hardware functionality as in radio-si470x 61for 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).
75If you just want to test audio (very poor quality): 78If you just want to test audio (very poor quality):
76cat /dev/dsp1 > /dev/dsp 79cat /dev/dsp1 > /dev/dsp
77 80
78If you use OSS try: 81If you use sox + OSS try:
79sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp 82sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp
83or using sox + alsa:
84sox --endian little -c 2 -S -r 96000 -t alsa hw:1 -t alsa -r 96000 hw:0
80 85
81If you use arts try: 86If you use arts try:
82arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B - 87arecord -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
18Purpose of the soc-camera subsystem 18Purpose of the soc-camera subsystem
19----------------------------------- 19-----------------------------------
20 20
21The soc-camera subsystem provides a unified API between camera host drivers and 21The soc-camera subsystem initially provided a unified API between camera host
22camera sensor drivers. It implements a V4L2 interface to the user, currently 22drivers and camera sensor drivers. Later the soc-camera sensor API has been
23only the mmap method is supported. 23replaced with the V4L2 standard subdev API. This also made camera driver re-use
24with non-soc-camera hosts possible. The camera host API to the soc-camera core
25has been preserved.
24 26
25This subsystem has been written to connect drivers for System-on-Chip (SoC) 27Soc-camera implements a V4L2 interface to the user, currently only the "mmap"
26video capture interfaces with drivers for CMOS camera sensor chips to enable 28method is supported by host drivers. However, the soc-camera core also provides
27the reuse of sensor drivers with various hosts. The subsystem has been designed 29support for the "read" method.
28to support multiple camera host interfaces and multiple cameras per interface, 30
29although most applications have only one camera sensor. 31The subsystem has been designed to support multiple camera host interfaces and
32multiple cameras per interface, although most applications have only one camera
33sensor.
30 34
31Existing drivers 35Existing drivers
32---------------- 36----------------
33 37
34As of 2.6.27-rc4 there are two host drivers in the mainline: pxa_camera.c for 38As of 3.7 there are seven host drivers in the mainline: atmel-isi.c,
35PXA27x SoCs and sh_mobile_ceu_camera.c for SuperH SoCs, and four sensor drivers: 39mx1_camera.c (broken, scheduled for removal), mx2_camera.c, mx3_camera.c,
36mt9m001.c, mt9m111.c, mt9v022.c and a generic soc_camera_platform.c driver. This 40omap1_camera.c, pxa_camera.c, sh_mobile_ceu_camera.c, and multiple sensor
37list is not supposed to be updated, look for more examples in your tree. 41drivers under drivers/media/i2c/soc_camera/.
38 42
39Camera host API 43Camera host API
40--------------- 44---------------
@@ -45,38 +49,37 @@ soc_camera_host_register(struct soc_camera_host *);
45 49
46function. The host object can be initialized as follows: 50function. The host object can be initialized as follows:
47 51
48static 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
53All camera host methods are passed in a struct soc_camera_host_ops: 59All camera host methods are passed in a struct soc_camera_host_ops:
54 60
55static struct soc_camera_host_ops pxa_soc_camera_host_ops = { 61static 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
72from the host, apart from performing host-internal tasks they shall also call 75from the host. .set_bus_param is used to configure physical connection
73sensor driver's .init and .release methods respectively. .suspend and .resume 76parameters between the host and the sensor. .init_videobuf2 is called by
74methods implement host's power-management functionality and its their 77soc-camera core when a video-device is opened, the host driver would typically
75responsibility to call respective sensor's methods. .try_bus_param and 78call vb2_queue_init() in this method. Further video-buffer management is
76.set_bus_param are used to negotiate physical connection parameters between the 79implemented completely by the specific camera host driver. If the host driver
77host and the sensor. .init_videobuf is called by soc-camera core when a 80supports non-standard pixel format conversion, it should implement a
78video-device is opened, further video-buffer management is implemented completely 81.get_formats and, possibly, a .put_formats operations. See below for more
79by the specific camera host driver. The rest of the methods are called from 82details about format conversion. The rest of the methods are called from
80respective V4L2 operations. 83respective V4L2 operations.
81 84
82Camera API 85Camera API
@@ -84,37 +87,21 @@ Camera API
84 87
85Sensor drivers can use struct soc_camera_link, typically provided by the 88Sensor drivers can use struct soc_camera_link, typically provided by the
86platform, and used to specify to which camera host bus the sensor is connected, 89platform, and used to specify to which camera host bus the sensor is connected,
87and arbitrarily provide platform .power and .reset methods for the camera. 90and optionally provide platform .power and .reset methods for the camera. This
88soc_camera_device_register() and soc_camera_device_unregister() functions are 91struct is provided to the camera driver via the I2C client device platform data
89used to add a sensor driver to or remove one from the system. The registration 92and can be obtained, using the soc_camera_i2c_to_link() macro. Care should be
90function takes a pointer to struct soc_camera_device as the only parameter. 93taken, when using soc_camera_vdev_to_subdev() and when accessing struct
91This struct can be initialized as follows: 94soc_camera_device, using v4l2_get_subdev_hostdata(): both only work, when
92 95running on an soc-camera host. The actual camera driver operation is implemented
93 /* link to driver operations */ 96using the V4L2 subdev API. Additionally soc-camera camera drivers can use
94 icd->ops = &mt9m001_ops; 97auxiliary soc-camera helper functions like soc_camera_power_on() and
95 /* link to the underlying physical (e.g., i2c) device */ 98soc_camera_power_off(), which switch regulators, provided by the platform and call
96 icd->control = &client->dev; 99board-specific power switching methods. soc_camera_apply_board_flags() takes
97 /* window geometry */ 100camera bus configuration capability flags and applies any board transformations,
98 icd->x_min = 20; 101e.g. signal polarity inversion. soc_mbus_get_fmtdesc() can be used to obtain a
99 icd->y_min = 12; 102pixel format descriptor, corresponding to a certain media-bus pixel format code.
100 icd->x_current = 20; 103soc_camera_limit_side() can be used to restrict beginning and length of a frame
101 icd->y_current = 12; 104side, 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
110struct soc_camera_ops provides .probe and .remove methods, which are called by
111the soc-camera core, when a camera is matched against or removed from a camera
112host bus, .init, .release, .suspend, and .resume are called from the camera host
113driver as discussed above. Other members of this struct provide respective V4L2
114functionality.
115
116struct soc_camera_device also links to an array of struct soc_camera_data_format,
117listing pixel formats, supported by the camera.
118 105
119VIDIOC_S_CROP and VIDIOC_S_FMT behaviour 106VIDIOC_S_CROP and VIDIOC_S_FMT behaviour
120---------------------------------------- 107----------------------------------------
@@ -153,8 +140,25 @@ implemented.
153User window geometry is kept in .user_width and .user_height fields in struct 140User window geometry is kept in .user_width and .user_height fields in struct
154soc_camera_device and used by the soc-camera core and host drivers. The core 141soc_camera_device and used by the soc-camera core and host drivers. The core
155updates these fields upon successful completion of a .s_fmt() call, but if these 142updates these fields upon successful completion of a .s_fmt() call, but if these
156fields change elsewhere, e.g., during .s_crop() processing, the host driver is 143fields change elsewhere, e.g. during .s_crop() processing, the host driver is
157responsible for updating them. 144responsible for updating them.
158 145
146Format conversion
147-----------------
148
149V4L2 distinguishes between pixel formats, as they are stored in memory, and as
150they are transferred over a media bus. Soc-camera provides support to
151conveniently manage these formats. A table of standard transformations is
152maintained by soc-camera core, which describes, what FOURCC pixel format will
153be obtained, if a media-bus pixel format is stored in memory according to
154certain rules. E.g. if V4L2_MBUS_FMT_YUYV8_2X8 data is sampled with 8 bits per
155sample and stored in memory in the little-endian order with no gaps between
156bytes, data in memory will represent the V4L2_PIX_FMT_YUYV FOURCC format. These
157standard transformations will be used by soc-camera or by camera host drivers to
158configure camera drivers to produce the FOURCC format, requested by the user,
159using the VIDIOC_S_FMT ioctl(). Apart from those standard format conversions,
160host drivers can also provide their own conversion rules by implementing a
161.get_formats and, if required, a .put_formats methods.
162
159-- 163--
160Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de> 164Author: 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 @@
1Linux driver for STV0680 based USB cameras
2
3Copyright, 2001, Kevin Sisson
4
5
6INTRODUCTION:
7
8STMicroelectronics produces the STV0680B chip, which comes in two
9types, -001 and -003. The -003 version allows the recording and downloading
10of sound clips from the camera, and allows a flash attachment. Otherwise,
11it uses the same commands as the -001 version. Both versions support a
12variety of SDRAM sizes and sensors, allowing for a maximum of 26 VGA or 20
13CIF pictures. The STV0680 supports either a serial or a usb interface, and
14video is possible through the usb interface.
15
16The following cameras are known to work with this driver, although any
17camera with Vendor/Product codes of 0553/0202 should work:
18
19Aiptek Pencam (various models)
20Nisis QuickPix 2
21Radio Shack 'Kid's digital camera' (#60-1207)
22At least one Trust Spycam model
23Several other European brand models
24
25WHAT YOU NEED:
26
27- USB support
28- VIDEO4LINUX support
29
30More information about USB support for linux can be found at:
31http://www.linux-usb.org
32
33
34MODULE OPTIONS:
35
36When the driver is compiled as a module, you can set a "swapRGB=1"
37option, if necessary, for those applications that require it
38(such as xawtv). However, the driver should detect and set this
39automatically, so this option should not normally be used.
40
41
42KNOWN PROBLEMS:
43
44The driver seems to work better with the usb-ohci than the usb-uhci host
45controller driver.
46
47HELP:
48
49The latest info on this driver can be found at:
50http://personal.clt.bellsouth.net/~kjsisson or at
51http://stv0680-usb.sourceforge.net
52
53Any 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
715class is added. 715class is added.
716 716
717 717
718Proposals for Extensions 718Adding Notify Callbacks
719======================== 719=======================
720
721Sometimes the platform or bridge driver needs to be notified when a control
722from a sub-device driver changes. You can set a notify callback by calling
723this function:
720 724
721Some ideas for future extensions to the spec: 725void v4l2_ctrl_notify(struct v4l2_ctrl *ctrl,
726 void (*notify)(struct v4l2_ctrl *ctrl, void *priv), void *priv);
722 727
7231) Add a V4L2_CTRL_FLAG_HEX to have values shown as hexadecimal instead of 728Whenever the give control changes value the notify callback will be called
724decimal. Useful for e.g. video_mute_yuv. 729with a pointer to the control and the priv pointer that was passed with
730v4l2_ctrl_notify. Note that the control's handler lock is held when the
731notify function is called.
725 732
7262) It is possible to mark in the controls array which controls have been 733There can be only one notify function per control handler. Any attempt
727successfully written and which failed by for example adding a bit to the 734to set another notify function will cause a WARN_ON.
728control 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
68The framework closely resembles the driver structure: it has a v4l2_device 68The framework closely resembles the driver structure: it has a v4l2_device
69struct for the device instance data, a v4l2_subdev struct to refer to 69struct for the device instance data, a v4l2_subdev struct to refer to
70sub-device instances, the video_device struct stores V4L2 device node data 70sub-device instances, the video_device struct stores V4L2 device node data
71and in the future a v4l2_fh struct will keep track of filehandle instances 71and the v4l2_fh struct keeps track of filehandle instances.
72(this is not yet implemented).
73 72
74The V4L2 framework also optionally integrates with the media framework. If a 73The V4L2 framework also optionally integrates with the media framework. If a
75driver sets the struct v4l2_device mdev field, sub-devices and video nodes 74driver 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
9Index
10=====
111. Copyright
122. Disclaimer
133. License
144. Overview
155. Supported devices
166. Module dependencies
177. Module loading
188. Module parameters
199. Contact information
2010. Credits
21
22
231. Copyright
24============
25Copyright (C) 2002-2004 by Luca Risolia <luca.risolia@studio.unibo.it>
26
27
282. Disclaimer
29=============
30Winbond is a trademark of Winbond Electronics Corporation.
31This software is not sponsored or developed by Winbond.
32
33
343. License
35==========
36This program is free software; you can redistribute it and/or modify
37it under the terms of the GNU General Public License as published by
38the Free Software Foundation; either version 2 of the License, or
39(at your option) any later version.
40
41This program is distributed in the hope that it will be useful,
42but WITHOUT ANY WARRANTY; without even the implied warranty of
43MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
44GNU General Public License for more details.
45
46You should have received a copy of the GNU General Public License
47along with this program; if not, write to the Free Software
48Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
49
50
514. Overview
52===========
53This driver supports the video streaming capabilities of the devices mounting
54Winbond W9967CF and Winbond W9968CF JPEG USB Dual Mode Camera Chips. OV681
55based cameras should be supported as well.
56
57The driver is divided into two modules: the basic one, "w9968cf", is needed for
58the supported devices to work; the second one, "w9968cf-vpp", is an optional
59module, which provides some useful video post-processing functions like video
60decoding, up-scaling and colour conversions.
61
62Note that the official kernels do neither include nor support the second
63module for performance purposes. Therefore, it is always recommended to
64download and install the latest and complete release of the driver,
65replacing the existing one, if present.
66
67The latest and full-featured version of the W996[87]CF driver can be found at:
68http://www.linux-projects.org. Please refer to the documentation included in
69that package, if you are going to use it.
70
71Up to 32 cameras can be handled at the same time. They can be connected and
72disconnected from the host many times without turning off the computer, if
73your system supports the hotplug facility.
74
75To change the default settings for each camera, many parameters can be passed
76through command line when the module is loaded into memory.
77
78The driver relies on the Video4Linux, USB and I2C core modules. It has been
79designed to run properly on SMP systems as well. An additional module,
80"ovcamchip", is mandatory; it provides support for some OmniVision image
81sensors connected to the W996[87]CF chips; if found in the system, the module
82will be automatically loaded by default (provided that the kernel has been
83compiled with the automatic module loading option).
84
85
865. Supported devices
87====================
88At 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
100If you know any other W996[87]CF or OV681 based cameras, please contact me.
101
102The list above does not imply that all those devices work with this driver: up
103until now only webcams that have an image sensor supported by the "ovcamchip"
104module work. Kernel messages will always tell you whether this is case.
105
106Possible external microcontrollers of those webcams are not supported: this
107means that still images cannot be downloaded from the device memory.
108
109Furthermore, 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
111additional testing and full support, would be much appreciated.
112
113
1146. Module dependencies
115======================
116For it to work properly, the driver needs kernel support for Video4Linux, USB
117and I2C, and the "ovcamchip" module for the image sensor. Make sure you are not
118actually using any external "ovcamchip" module, given that the W996[87]CF
119driver depends on the version of the module present in the official kernels.
120
121The following options of the kernel configuration file must be enabled and
122corresponding modules must be compiled:
123
124 # Multimedia devices
125 #
126 CONFIG_VIDEO_DEV=m
127
128 # I2C support
129 #
130 CONFIG_I2C=m
131
132The 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
142In addition, depending on the hardware being used, only one of the modules
143below 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
151And finally:
152
153 # USB Multimedia devices
154 #
155 CONFIG_USB_W9968CF=m
156
157
1587. Module loading
159=================
160To use the driver, it is necessary to load the "w9968cf" module into memory
161after every other module required.
162
163Loading 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
170At this point the pertinent devices should be recognized: "dmesg" can be used
171to analyze kernel messages:
172
173 [user@localhost home]$ dmesg
174
175There are a lot of parameters the module can use to change the default
176settings for each device. To list every possible parameter with a brief
177explanation 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
1838. Module parameters
184====================
185Module parameters are listed below:
186-------------------------------------------------------------------------------
187Name: ovmod_load
188Type: bool
189Syntax: <0|1>
190Description: 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.
195Default: 1
196-------------------------------------------------------------------------------
197Name: simcams
198Type: int
199Syntax: <n>
200Description: Number of cameras allowed to stream simultaneously.
201 n may vary from 0 to 32.
202Default: 32
203-------------------------------------------------------------------------------
204Name: video_nr
205Type: int array (min = 0, max = 32)
206Syntax: <-1|n[,...]>
207Description: 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.
215Default: -1
216-------------------------------------------------------------------------------
217Name: packet_size
218Type: int array (min = 0, max = 32)
219Syntax: <n[,...]>
220Description: Specify the maximum data payload size in bytes for alternate
221 settings, for each device. n is scaled between 63 and 1023.
222Default: 1023
223-------------------------------------------------------------------------------
224Name: max_buffers
225Type: int array (min = 0, max = 32)
226Syntax: <n[,...]>
227Description: For advanced users.
228 Specify the maximum number of video frame buffers to allocate
229 for each device, from 2 to 32.
230Default: 2
231-------------------------------------------------------------------------------
232Name: double_buffer
233Type: bool array (min = 0, max = 32)
234Syntax: <0|1[,...]>
235Description: 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.
239Default: 1 for every device.
240-------------------------------------------------------------------------------
241Name: clamping
242Type: bool array (min = 0, max = 32)
243Syntax: <0|1[,...]>
244Description: Video data clamping: 0 disabled, 1 enabled.
245Default: 0 for every device.
246-------------------------------------------------------------------------------
247Name: filter_type
248Type: int array (min = 0, max = 32)
249Syntax: <0|1|2[,...]>
250Description: 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.
254Default: 0 for every device.
255-------------------------------------------------------------------------------
256Name: largeview
257Type: bool array (min = 0, max = 32)
258Syntax: <0|1[,...]>
259Description: Large view: 0 disabled, 1 enabled.
260Default: 1 for every device.
261-------------------------------------------------------------------------------
262Name: upscaling
263Type: bool array (min = 0, max = 32)
264Syntax: <0|1[,...]>
265Description: 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.
269Default: 0 for every device.
270Note: If 'w9968cf-vpp' is not present, this parameter is set to 0.
271-------------------------------------------------------------------------------
272Name: decompression
273Type: int array (min = 0, max = 32)
274Syntax: <0|1|2[,...]>
275Description: 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.
284Default: 2 for every device.
285Note: If 'w9968cf-vpp' is not present, forcing decompression is not
286 allowed; in this case this parameter is set to 2.
287-------------------------------------------------------------------------------
288Name: force_palette
289Type: int array (min = 0, max = 32)
290Syntax: <0|9|10|13|15|8|7|1|6|3|4|5[,...]>
291Description: 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'.
306Default: 0 for every device. Initial palette is 9 (UYVY).
307Note: If 'w9968cf-vpp' is not present, this parameter is set to 9.
308-------------------------------------------------------------------------------
309Name: force_rgb
310Type: bool array (min = 0, max = 32)
311Syntax: <0|1[,...]>
312Description: 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.
316Default: 0 for every device.
317-------------------------------------------------------------------------------
318Name: autobright
319Type: bool array (min = 0, max = 32)
320Syntax: <0|1[,...]>
321Description: Image sensor automatically changes brightness:
322 0 = no, 1 = yes
323Default: 0 for every device.
324-------------------------------------------------------------------------------
325Name: autoexp
326Type: bool array (min = 0, max = 32)
327Syntax: <0|1[,...]>
328Description: Image sensor automatically changes exposure:
329 0 = no, 1 = yes
330Default: 1 for every device.
331-------------------------------------------------------------------------------
332Name: lightfreq
333Type: int array (min = 0, max = 32)
334Syntax: <50|60[,...]>
335Description: Light frequency in Hz:
336 50 for European and Asian lighting, 60 for American lighting.
337Default: 50 for every device.
338-------------------------------------------------------------------------------
339Name: bandingfilter
340Type: bool array (min = 0, max = 32)
341Syntax: <0|1[,...]>
342Description: 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.
347Default: 0 for every device.
348-------------------------------------------------------------------------------
349Name: clockdiv
350Type: int array (min = 0, max = 32)
351Syntax: <-1|n[,...]>
352Description: 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.
356Default: -1 for every device.
357-------------------------------------------------------------------------------
358Name: backlight
359Type: bool array (min = 0, max = 32)
360Syntax: <0|1[,...]>
361Description: Objects are lit from behind:
362 0 = no, 1 = yes
363Default: 0 for every device.
364-------------------------------------------------------------------------------
365Name: mirror
366Type: bool array (min = 0, max = 32)
367Syntax: <0|1[,...]>
368Description: Reverse image horizontally:
369 0 = no, 1 = yes
370Default: 0 for every device.
371-------------------------------------------------------------------------------
372Name: monochrome
373Type: bool array (min = 0, max = 32)
374Syntax: <0|1[,...]>
375Description: The image sensor is monochrome:
376 0 = no, 1 = yes
377Default: 0 for every device.
378-------------------------------------------------------------------------------
379Name: brightness
380Type: long array (min = 0, max = 32)
381Syntax: <n[,...]>
382Description: Set picture brightness (0-65535).
383 This parameter has no effect if 'autobright' is enabled.
384Default: 31000 for every device.
385-------------------------------------------------------------------------------
386Name: hue
387Type: long array (min = 0, max = 32)
388Syntax: <n[,...]>
389Description: Set picture hue (0-65535).
390Default: 32768 for every device.
391-------------------------------------------------------------------------------
392Name: colour
393Type: long array (min = 0, max = 32)
394Syntax: <n[,...]>
395Description: Set picture saturation (0-65535).
396Default: 32768 for every device.
397-------------------------------------------------------------------------------
398Name: contrast
399Type: long array (min = 0, max = 32)
400Syntax: <n[,...]>
401Description: Set picture contrast (0-65535).
402Default: 50000 for every device.
403-------------------------------------------------------------------------------
404Name: whiteness
405Type: long array (min = 0, max = 32)
406Syntax: <n[,...]>
407Description: Set picture whiteness (0-65535).
408Default: 32768 for every device.
409-------------------------------------------------------------------------------
410Name: debug
411Type: int
412Syntax: <n>
413Description: 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.
423Default: 2
424-------------------------------------------------------------------------------
425Name: specific_debug
426Type: bool
427Syntax: <0|1>
428Description: 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'.
431Default: 0
432-------------------------------------------------------------------------------
433
434
4359. Contact information
436======================
437I may be contacted by e-mail at <luca.risolia@studio.unibo.it>.
438
439I can accept GPG/PGP encrypted e-mail. My GPG key ID is 'FCE635A4'.
440My public 1024-bit key should be available at your keyserver; the fingerprint
441is: '88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4'.
442
443
44410. Credits
445==========
446The development would not have proceed much further without having looked at
447the source code of other drivers and without the help of several persons; in
448particular:
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
9Index
10=====
111. Copyright
122. Disclaimer
133. License
144. Overview and features
155. Module dependencies
166. Module loading
177. Module parameters
188. Supported devices
199. Notes for V4L2 application developers
2010. Contact information
2111. Credits
22
23
241. Copyright
25============
26Copyright (C) 2006-2007 by Luca Risolia <luca.risolia@studio.unibo.it>
27
28
292. Disclaimer
30=============
31This software is not developed or sponsored by Z-Star Microelectronics Corp.
32Trademarks are property of their respective owner.
33
34
353. License
36==========
37This program is free software; you can redistribute it and/or modify
38it under the terms of the GNU General Public License as published by
39the Free Software Foundation; either version 2 of the License, or
40(at your option) any later version.
41
42This program is distributed in the hope that it will be useful,
43but WITHOUT ANY WARRANTY; without even the implied warranty of
44MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45GNU General Public License for more details.
46
47You should have received a copy of the GNU General Public License
48along with this program; if not, write to the Free Software
49Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
50
51
524. Overview and features
53========================
54This driver supports the video interface of the devices mounting the ZC0301 or
55ZC0301P Image Processors and Control Chips.
56
57The driver relies on the Video4Linux2 and USB core modules. It has been
58designed to run properly on SMP systems as well.
59
60The latest version of the ZC0301[P] driver can be found at the following URL:
61http://www.linux-projects.org/
62
63Some 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
785. Module dependencies
79======================
80For it to work properly, the driver needs kernel support for Video4Linux and
81USB.
82
83The following options of the kernel configuration file must be enabled and
84corresponding modules must be compiled:
85
86 # Multimedia devices
87 #
88 CONFIG_VIDEO_DEV=m
89
90 # USB support
91 #
92 CONFIG_USB=m
93
94In addition, depending on the hardware being used, the modules below are
95necessary:
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
103The ZC0301 controller also provides a built-in microphone interface. It is
104supported 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
118And finally:
119
120 # V4L USB devices
121 #
122 CONFIG_USB_ZC0301=m
123
124
1256. Module loading
126=================
127To use the driver, it is necessary to load the "zc0301" module into memory
128after 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
132Loading can be done as shown below:
133
134 [root@localhost home]# modprobe zc0301
135
136At this point the devices should be recognized. You can invoke "dmesg" to
137analyze kernel messages and verify that the loading process has gone well:
138
139 [user@localhost home]$ dmesg
140
141
1427. Module parameters
143====================
144Module parameters are listed below:
145-------------------------------------------------------------------------------
146Name: video_nr
147Type: short array (min = 0, max = 64)
148Syntax: <-1|n[,...]>
149Description: 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.
157Default: -1
158-------------------------------------------------------------------------------
159Name: force_munmap
160Type: bool array (min = 0, max = 64)
161Syntax: <0|1[,...]>
162Description: 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)
168Default: 0
169-------------------------------------------------------------------------------
170Name: frame_timeout
171Type: uint array (min = 0, max = 64)
172Syntax: <n[,...]>
173Description: 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.
176Default: 2
177-------------------------------------------------------------------------------
178Name: debug
179Type: ushort
180Syntax: <n>
181Description: 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.
190Default: 2
191-------------------------------------------------------------------------------
192
193
1948. Supported devices
195====================
196None of the names of the companies as well as their products will be mentioned
197here. They have never collaborated with the author, so no advertising.
198
199From the point of view of a driver, what unambiguously identify a device are
200its vendor and product USB identifiers. Below is a list of known identifiers of
201devices mounting the ZC0301 Image Processor and Control Chips:
202
203Vendor ID Product ID
204--------- ----------
2050x041e 0x4017
2060x041e 0x401c
2070x041e 0x401e
2080x041e 0x401f
2090x041e 0x4022
2100x041e 0x4034
2110x041e 0x4035
2120x041e 0x4036
2130x041e 0x403a
2140x0458 0x7007
2150x0458 0x700c
2160x0458 0x700f
2170x046d 0x08ae
2180x055f 0xd003
2190x055f 0xd004
2200x0ac8 0x0301
2210x0ac8 0x301b
2220x0ac8 0x303b
2230x10fd 0x0128
2240x10fd 0x8050
2250x10fd 0x804e
226
227The list above does not imply that all those devices work with this driver: up
228until now only the ones that mount the following image sensors are supported;
229kernel messages will always tell you whether this is the case:
230
231Model Manufacturer
232----- ------------
233PAS202BCB PixArt Imaging, Inc.
234PB-0330 Photobit Corporation
235
236
2379. Notes for V4L2 application developers
238========================================
239This driver follows the V4L2 API specifications. In particular, it enforces two
240rules:
241
242- exactly one I/O method, either "mmap" or "read", is associated with each
243file descriptor. Once it is selected, the application must close and reopen the
244device to switch to the other I/O method;
245
246- although it is not mandatory, previously mapped buffer memory should always
247be unmapped before calling any "VIDIOC_S_CROP" or "VIDIOC_S_FMT" ioctl's.
248The same number of buffers as before will be allocated again to match the size
249of the new video frames, so you have to map the buffers again before any I/O
250attempts on them.
251
252
25310. Contact information
254=======================
255The author may be contacted by e-mail at <luca.risolia@studio.unibo.it>.
256
257GPG/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;
259the fingerprint is: '88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4'.
260
261
26211. 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
219single-threaded guest vcpus, it should make all vcpu ids be a multiple 219single-threaded guest vcpus, it should make all vcpu ids be a multiple
220of the number of vcpus per vcore. 220of the number of vcpus per vcore.
221 221
222On powerpc using book3s_hv mode, the vcpus are mapped onto virtual
223threads in one or more virtual CPU cores. (This is because the
224hardware requires all the hardware threads in a CPU core to be in the
225same partition.) The KVM_CAP_PPC_SMT capability indicates the number
226of vcpus per virtual core (vcore). The vcore id is obtained by
227dividing the vcpu id by the number of vcpus per vcore. The vcpus in a
228given 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).
230Userspace can control the threading (SMT) mode of the guest by its
231allocation of vcpu ids. For example, if userspace wants
232single-threaded guest vcpus, it should make all vcpu ids be a multiple
233of the number of vcpus per vcore.
234
235For virtual cpus that have been created with S390 user controlled virtual 222For virtual cpus that have been created with S390 user controlled virtual
236machines, the resulting vcpu fd can be memory mapped at page offset 223machines, the resulting vcpu fd can be memory mapped at page offset
237KVM_S390_SIE_PAGE_OFFSET in order to obtain a memory map of the virtual 224KVM_S390_SIE_PAGE_OFFSET in order to obtain a memory map of the virtual
@@ -293,7 +280,7 @@ kvm_run' (see below).
2934.11 KVM_GET_REGS 2804.11 KVM_GET_REGS
294 281
295Capability: basic 282Capability: basic
296Architectures: all 283Architectures: all except ARM
297Type: vcpu ioctl 284Type: vcpu ioctl
298Parameters: struct kvm_regs (out) 285Parameters: struct kvm_regs (out)
299Returns: 0 on success, -1 on error 286Returns: 0 on success, -1 on error
@@ -314,7 +301,7 @@ struct kvm_regs {
3144.12 KVM_SET_REGS 3014.12 KVM_SET_REGS
315 302
316Capability: basic 303Capability: basic
317Architectures: all 304Architectures: all except ARM
318Type: vcpu ioctl 305Type: vcpu ioctl
319Parameters: struct kvm_regs (in) 306Parameters: struct kvm_regs (in)
320Returns: 0 on success, -1 on error 307Returns: 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
350interrupt_bitmap is a bitmap of pending external interrupts. At most 337interrupt_bitmap is a bitmap of pending external interrupts. At most
351one bit may be set. This interrupt has been acknowledged by the APIC 338one bit may be set. This interrupt has been acknowledged by the APIC
@@ -600,7 +587,7 @@ struct kvm_fpu {
6004.24 KVM_CREATE_IRQCHIP 5874.24 KVM_CREATE_IRQCHIP
601 588
602Capability: KVM_CAP_IRQCHIP 589Capability: KVM_CAP_IRQCHIP
603Architectures: x86, ia64 590Architectures: x86, ia64, ARM
604Type: vm ioctl 591Type: vm ioctl
605Parameters: none 592Parameters: none
606Returns: 0 on success, -1 on error 593Returns: 0 on success, -1 on error
@@ -608,21 +595,39 @@ Returns: 0 on success, -1 on error
608Creates an interrupt controller model in the kernel. On x86, creates a virtual 595Creates an interrupt controller model in the kernel. On x86, creates a virtual
609ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a 596ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a
610local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 597local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23
611only go to the IOAPIC. On ia64, a IOSAPIC is created. 598only go to the IOAPIC. On ia64, a IOSAPIC is created. On ARM, a GIC is
599created.
612 600
613 601
6144.25 KVM_IRQ_LINE 6024.25 KVM_IRQ_LINE
615 603
616Capability: KVM_CAP_IRQCHIP 604Capability: KVM_CAP_IRQCHIP
617Architectures: x86, ia64 605Architectures: x86, ia64, arm
618Type: vm ioctl 606Type: vm ioctl
619Parameters: struct kvm_irq_level 607Parameters: struct kvm_irq_level
620Returns: 0 on success, -1 on error 608Returns: 0 on success, -1 on error
621 609
622Sets the level of a GSI input to the interrupt controller model in the kernel. 610Sets the level of a GSI input to the interrupt controller model in the kernel.
623Requires that an interrupt controller model has been previously created with 611On some architectures it is required that an interrupt controller model has
624KVM_CREATE_IRQCHIP. Note that edge-triggered interrupts require the level 612been previously created with KVM_CREATE_IRQCHIP. Note that edge-triggered
625to be set to 1 and then back to 0. 613interrupts require the level to be set to 1 and then back to 0.
614
615ARM 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
617specific 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
622The 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
630In both cases, level is used to raise/lower the line.
626 631
627struct kvm_irq_level { 632struct 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
874be identical. This allows large pages in the guest to be backed by large 879be identical. This allows large pages in the guest to be backed by large
875pages in the host. 880pages in the host.
876 881
877The flags field supports two flag, KVM_MEM_LOG_DIRTY_PAGES, which instructs 882The flags field supports two flags: KVM_MEM_LOG_DIRTY_PAGES and
878kvm to keep track of writes to memory within the slot. See KVM_GET_DIRTY_LOG 883KVM_MEM_READONLY. The former can be set to instruct KVM to keep track of
879ioctl. The KVM_CAP_READONLY_MEM capability indicates the availability of the 884writes to memory within the slot. See KVM_GET_DIRTY_LOG ioctl to know how to
880KVM_MEM_READONLY flag. When this flag is set for a memory region, KVM only 885use it. The latter can be set, if KVM_CAP_READONLY_MEM capability allows it,
881allows read accesses. Writes will be posted to userspace as KVM_EXIT_MMIO 886to make a new slot read-only. In this case, writes to this memory will be
882exits. 887posted to userspace as KVM_EXIT_MMIO exits.
883 888
884When the KVM_CAP_SYNC_MMU capability is available, changes in the backing of 889When the KVM_CAP_SYNC_MMU capability is available, changes in the backing of
885the memory region are automatically reflected into the guest. For example, an 890the memory region are automatically reflected into the guest. For example, an
@@ -913,7 +918,7 @@ documentation when it pops into existence).
9134.37 KVM_ENABLE_CAP 9184.37 KVM_ENABLE_CAP
914 919
915Capability: KVM_CAP_ENABLE_CAP 920Capability: KVM_CAP_ENABLE_CAP
916Architectures: ppc 921Architectures: ppc, s390
917Type: vcpu ioctl 922Type: vcpu ioctl
918Parameters: struct kvm_enable_cap (in) 923Parameters: struct kvm_enable_cap (in)
919Returns: 0 on success; -1 on error 924Returns: 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
1784ARM registers are mapped using the lower 32 bits. The upper 16 of that
1785is the register group type, or coprocessor number:
1786
1787ARM core registers have the following id bit patterns:
1788 0x4002 0000 0010 <index into the kvm_regs struct:16>
1789
1790ARM 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
1793ARM 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
1796ARM CCSIDR registers are demultiplexed by CSSELR value:
1797 0x4002 0000 0011 00 <csselr:8>
1798
1799ARM 32-bit VFP control registers have the following id bit patterns:
1800 0x4002 0000 0012 1 <regno:12>
1801
1802ARM 64-bit FP registers have the following id bit patterns:
1803 0x4002 0000 0012 0 <regno:12>
1777 1804
17784.69 KVM_GET_ONE_REG 18054.69 KVM_GET_ONE_REG
1779 1806
@@ -2069,6 +2096,14 @@ KVM_S390_INT_VIRTIO (vm) - virtio external interrupt; external interrupt
2069KVM_S390_INT_SERVICE (vm) - sclp external interrupt; sclp parameter in parm 2096KVM_S390_INT_SERVICE (vm) - sclp external interrupt; sclp parameter in parm
2070KVM_S390_INT_EMERGENCY (vcpu) - sigp emergency; source cpu in parm 2097KVM_S390_INT_EMERGENCY (vcpu) - sigp emergency; source cpu in parm
2071KVM_S390_INT_EXTERNAL_CALL (vcpu) - sigp external call; source cpu in parm 2098KVM_S390_INT_EXTERNAL_CALL (vcpu) - sigp external call; source cpu in parm
2099KVM_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)
2103KVM_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
2073Note that the vcpu ioctl is asynchronous to vcpu execution. 2108Note that the vcpu ioctl is asynchronous to vcpu execution.
2074 2109
@@ -2127,6 +2162,88 @@ written, then `n_invalid' invalid entries, invalidating any previously
2127valid entries found. 2162valid entries found.
2128 2163
2129 2164
21654.77 KVM_ARM_VCPU_INIT
2166
2167Capability: basic
2168Architectures: arm
2169Type: vcpu ioctl
2170Parameters: struct struct kvm_vcpu_init (in)
2171Returns: 0 on success; -1 on error
2172Errors:
2173  EINVAL:    the target is unknown, or the combination of features is invalid.
2174  ENOENT:    a features bit specified is unknown.
2175
2176This tells KVM what type of CPU to present to the guest, and what
2177optional features it should have.  This will cause a reset of the cpu
2178registers to their initial values.  If this is not called, KVM_RUN will
2179return ENOEXEC for that vcpu.
2180
2181Note that because some registers reflect machine topology, all vcpus
2182should be created before this ioctl is invoked.
2183
2184Possible features:
2185 - KVM_ARM_VCPU_POWER_OFF: Starts the CPU in a power-off state.
2186 Depends on KVM_CAP_ARM_PSCI.
2187
2188
21894.78 KVM_GET_REG_LIST
2190
2191Capability: basic
2192Architectures: arm
2193Type: vcpu ioctl
2194Parameters: struct kvm_reg_list (in/out)
2195Returns: 0 on success; -1 on error
2196Errors:
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
2200struct kvm_reg_list {
2201 __u64 n; /* number of registers in reg[] */
2202 __u64 reg[0];
2203};
2204
2205This ioctl returns the guest registers that are supported for the
2206KVM_GET_ONE_REG/KVM_SET_ONE_REG calls.
2207
2208
22094.80 KVM_ARM_SET_DEVICE_ADDR
2210
2211Capability: KVM_CAP_ARM_SET_DEVICE_ADDR
2212Architectures: arm
2213Type: vm ioctl
2214Parameters: struct kvm_arm_device_address (in)
2215Returns: 0 on success, -1 on error
2216Errors:
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
2223struct kvm_arm_device_addr {
2224 __u64 id;
2225 __u64 addr;
2226};
2227
2228Specify a device address in the guest's physical address space where guests
2229can access emulated or directly exposed devices, which the host kernel needs
2230to know about. The id field is an architecture specific identifier for a
2231specific device.
2232
2233ARM divides the id field into two parts, a device id and an address type id
2234specific to the individual device.
2235
2236  bits: | 63 ... 32 | 31 ... 16 | 15 ... 0 |
2237 field: | 0x00000000 | device id | addr type id |
2238
2239ARM currently only require this when using the in-kernel GIC support for the
2240hardware VGIC features, using KVM_ARM_DEVICE_VGIC_V2 as the device id. When
2241setting the base address for the guest's mapping of the VGIC virtual CPU
2242and distributor interface, the ioctl must be called after calling
2243KVM_CREATE_IRQCHIP, but before calling KVM_RUN on any of the VCPUs. Calling
2244this ioctl twice for any of the base addresses will return -EEXIST.
2245
2246
21305. The kvm_run structure 22475. The kvm_run structure
2131------------------------ 2248------------------------
2132 2249
@@ -2238,8 +2355,8 @@ executed a memory-mapped I/O instruction which could not be satisfied
2238by kvm. The 'data' member contains the written data if 'is_write' is 2355by kvm. The 'data' member contains the written data if 'is_write' is
2239true, and should be filled by application code otherwise. 2356true, and should be filled by application code otherwise.
2240 2357
2241NOTE: For KVM_EXIT_IO, KVM_EXIT_MMIO, KVM_EXIT_OSI, KVM_EXIT_DCR 2358NOTE: 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
2243operations are complete (and guest state is consistent) only after userspace 2360operations are complete (and guest state is consistent) only after userspace
2244has re-entered the kernel with KVM_RUN. The kernel side will first finish 2361has re-entered the kernel with KVM_RUN. The kernel side will first finish
2245incomplete operations and then check for pending signals. Userspace 2362incomplete operations and then check for pending signals. Userspace
@@ -2342,6 +2459,41 @@ The possible hypercalls are defined in the Power Architecture Platform
2342Requirements (PAPR) document available from www.power.org (free 2459Requirements (PAPR) document available from www.power.org (free
2343developer registration required to access it). 2460developer 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
2472s390 specific. This exit occurs when KVM_CAP_S390_CSS_SUPPORT has been enabled
2473and TEST SUBCHANNEL was intercepted. If dequeued is set, a pending I/O
2474interrupt for the target subchannel has been dequeued and subchannel_id,
2475subchannel_nr, io_int_parm and io_int_word contain the parameters for that
2476interrupt. ipb is needed for instruction parameter decoding.
2477
2478 /* KVM_EXIT_EPR */
2479 struct {
2480 __u32 epr;
2481 } epr;
2482
2483On FSL BookE PowerPC chips, the interrupt controller has a fast patch
2484interrupt acknowledge path to the core. When the core successfully
2485delivers an interrupt, it automatically populates the EPR register with
2486the interrupt vector number and acknowledges the interrupt inside
2487the interrupt controller.
2488
2489In case the interrupt controller lives in user space, we need to do
2490the interrupt acknowledge cycle through it to fetch the next to be
2491delivered interrupt vector using this exit.
2492
2493It gets triggered whenever both KVM_CAP_PPC_EPR are enabled and an
2494external interrupt has just been delivered into the guest. User space
2495should 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
26196.4 KVM_CAP_S390_CSS_SUPPORT
2620
2621Architectures: s390
2622Parameters: none
2623Returns: 0 on success; -1 on error
2624
2625This capability enables support for handling of channel I/O instructions.
2626
2627TEST PENDING INTERRUPTION and the interrupt portion of TEST SUBCHANNEL are
2628handled in-kernel, while the other I/O instructions are passed to userspace.
2629
2630When this capability is enabled, KVM_EXIT_S390_TSCH will occur on TEST
2631SUBCHANNEL intercepts.
2632
26336.5 KVM_CAP_PPC_EPR
2634
2635Architectures: ppc
2636Parameters: args[0] defines whether the proxy facility is active
2637Returns: 0 on success; -1 on error
2638
2639This capability enables or disables the delivery of interrupts through the
2640external proxy facility.
2641
2642When enabled (args[0] != 0), every time the guest gets an external interrupt
2643delivered, it automatically exits into user space with a KVM_EXIT_EPR exit
2644to receive the topmost interrupt vector.
2645
2646When disabled (args[0] == 0), behavior is as if this facility is unsupported.
2647
2648When 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
61merge_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
61run - set 0 to stop ksmd from running but keep merged pages, 76run - 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
34precision (which would also reduce the conversion time). 34precision (which would also reduce the conversion time).
35 35
36The module parameter strong_pullup can be set to 0 to disable the 36The module parameter strong_pullup can be set to 0 to disable the
37strong pullup or 1 to enable. If enabled the 5V strong pullup will be 37strong pullup, 1 to enable autodetection or 2 to force strong pullup.
38enabled when the conversion is taking place provided the master driver 38In case of autodetection, the driver will use the "READ POWER SUPPLY"
39must support the strong pullup (or it falls back to a pullup 39command to check if there are pariste powered devices on the bus.
40If so, it will activate the master's strong pullup.
41In case the detection of parasite devices using this command fails
42(seems to be the case with some DS18S20) the strong pullup can
43be force-enabled.
44If the strong pullup is enabled, the master's strong pullup will be
45driven when the conversion is taking place, provided the master driver
46does support the strong pullup (or it falls back to a pullup
40resistor). The DS18b20 temperature sensor specification lists a 47resistor). The DS18b20 temperature sensor specification lists a
41maximum current draw of 1.5mA and that a 5k pullup resistor is not 48maximum current draw of 1.5mA and that a 5k pullup resistor is not
42sufficient. The strong pullup is designed to provide the additional 49sufficient. 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
57Protocol 2.11: (Kernel 3.6) Added a field for offset of EFI handover 57Protocol 2.11: (Kernel 3.6) Added a field for offset of EFI handover
58 protocol entry point. 58 protocol entry point.
59 59
60Protocol 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
62The traditional memory map for the kernel loader, used for Image or 66The traditional memory map for the kernel loader, used for Image or
@@ -182,7 +186,7 @@ Offset Proto Name Meaning
1820230/4 2.05+ kernel_alignment Physical addr alignment required for kernel 1860230/4 2.05+ kernel_alignment Physical addr alignment required for kernel
1830234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not 1870234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not
1840235/1 2.10+ min_alignment Minimum alignment, as a power of two 1880235/1 2.10+ min_alignment Minimum alignment, as a power of two
1850236/2 N/A pad3 Unused 1890236/2 2.12+ xloadflags Boot protocol option flags
1860238/4 2.06+ cmdline_size Maximum size of the kernel command line 1900238/4 2.06+ cmdline_size Maximum size of the kernel command line
187023C/4 2.07+ hardware_subarch Hardware subarchitecture 191023C/4 2.07+ hardware_subarch Hardware subarchitecture
1880240/8 2.07+ hardware_subarch_data Subarchitecture-specific data 1920240/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
590Field name: xloadflags
591Type: read
592Offset/size: 0x236/2
593Protocol: 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
585Field name: cmdline_size 611Field name: cmdline_size
586Type: read 612Type: read
587Offset/size: 0x238/4 613Offset/size: 0x238/4
@@ -1029,6 +1055,44 @@ must have read/write permission; CS must be __BOOT_CS and DS, ES, SS
1029must be __BOOT_DS; interrupt must be disabled; %esi must hold the base 1055must be __BOOT_DS; interrupt must be disabled; %esi must hold the base
1030address of the struct boot_params; %ebp, %edi and %ebx must be zero. 1056address of the struct boot_params; %ebp, %edi and %ebx must be zero.
1031 1057
1058**** 64-bit BOOT PROTOCOL
1059
1060For machine with 64bit cpus and 64bit kernel, we could use 64bit bootloader
1061and we need a 64-bit boot protocol.
1062
1063In 64-bit boot protocol, the first step in loading a Linux kernel
1064should be to setup the boot parameters (struct boot_params,
1065traditionally known as "zero page"). The memory for struct boot_params
1066could be allocated anywhere (even above 4G) and initialized to all zero.
1067Then, the setup header at offset 0x01f1 of kernel image on should be
1068loaded into struct boot_params and examined. The end of setup header
1069can be calculated as follows:
1070
1071 0x0202 + byte value at offset 0x0201
1072
1073In addition to read/modify/write the setup header of the struct
1074boot_params as that of 16-bit boot protocol, the boot loader should
1075also fill the additional fields of the struct boot_params as described
1076in zero-page.txt.
1077
1078After setting up the struct boot_params, the boot loader can load
107964-bit kernel in the same way as that of 16-bit boot protocol, but
1080kernel could be loaded above 4G.
1081
1082In 64-bit boot protocol, the kernel is started by jumping to the
108364-bit kernel entry point, which is the start address of loaded
108464-bit kernel plus 0x200.
1085
1086At entry, the CPU must be in 64-bit mode with paging enabled.
1087The range with setup_header.init_size from start address of loaded
1088kernel and zero page and command line buffer get ident mapping;
1089a GDT must be loaded with the descriptors for selectors
1090__BOOT_CS(0x10) and __BOOT_DS(0x18); both descriptors must be 4G flat
1091segment; __BOOT_CS must have execute/read permission, and __BOOT_DS
1092must have read/write permission; CS must be __BOOT_CS and DS, ES, SS
1093must be __BOOT_DS; interrupt must be disabled; %rsi must hold the base
1094address of the struct boot_params.
1095
1032**** EFI HANDOVER PROTOCOL 1096**** EFI HANDOVER PROTOCOL
1033 1097
1034This protocol allows boot loaders to defer initialisation to the EFI 1098This 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 @@
1Early load microcode
2====================
3By Fenghua Yu <fenghua.yu@intel.com>
4
5Kernel can update microcode in early phase of boot time. Loading microcode early
6can fix CPU issues before they are observed during kernel boot time.
7
8Microcode is stored in an initrd file. The microcode is read from the initrd
9file and loaded to CPUs during boot time.
10
11The format of the combined initrd image is microcode in cpio format followed by
12the initrd image (maybe compressed). Kernel parses the combined initrd image
13during boot time. The microcode file in cpio name space is:
14kernel/x86/microcode/GenuineIntel.bin
15
16During BSP boot (before SMP starts), if the kernel finds the microcode file in
17the initrd file, it parses the microcode and saves matching microcode in memory.
18If matching microcode is found, it will be uploaded in BSP and later on in all
19APs.
20
21The cached microcode patch is applied when CPUs resume from a sleep state.
22
23There are two legacy user space interfaces to load microcode, either through
24/dev/cpu/microcode or through /sys/devices/system/cpu/microcode/reload file
25in sysfs.
26
27In addition to these two legacy methods, the early loading method described
28here is the third method with which microcode can be uploaded to a system's
29CPUs.
30
31The 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
33original initrd image /boot/initrd-3.5.0.img.
34
35mkdir initrd
36cd initrd
37mkdir kernel
38mkdir kernel/x86
39mkdir kernel/x86/microcode
40cp ../microcode.bin kernel/x86/microcode/GenuineIntel.bin
41find .|cpio -oc >../ucode.cpio
42cd ..
43cat 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
19090/010 ALL hd1_info hd1 disk parameter, OBSOLETE!! 19090/010 ALL hd1_info hd1 disk parameter, OBSOLETE!!
200A0/010 ALL sys_desc_table System description table (struct sys_desc_table) 200A0/010 ALL sys_desc_table System description table (struct sys_desc_table)
210B0/010 ALL olpc_ofw_header OLPC's OpenFirmware CIF and friends 210B0/010 ALL olpc_ofw_header OLPC's OpenFirmware CIF and friends
220C0/004 ALL ext_ramdisk_image ramdisk_image high 32bits
230C4/004 ALL ext_ramdisk_size ramdisk_size high 32bits
240C8/004 ALL ext_cmd_line_ptr cmd_line_ptr high 32bits
22140/080 ALL edid_info Video mode setup (struct edid_info) 25140/080 ALL edid_info Video mode setup (struct edid_info)
231C0/020 ALL efi_info EFI 32 information (struct efi_info) 261C0/020 ALL efi_info EFI 32 information (struct efi_info)
241E0/004 ALL alk_mem_k Alternative mem check, in KB 271E0/004 ALL alk_mem_k Alternative mem check, in KB
@@ -27,6 +30,7 @@ Offset Proto Name Meaning
271E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) 301E9/001 ALL eddbuf_entries Number of entries in eddbuf (below)
281EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer 311EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer
29 (below) 32 (below)
331EF/001 ALL sentinel Used to detect broken bootloaders
30290/040 ALL edd_mbr_sig_buffer EDD MBR signatures 34290/040 ALL edd_mbr_sig_buffer EDD MBR signatures
312D0/A00 ALL e820_map E820 memory map table 352D0/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
467config 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
122COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c 122COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c
123I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c 123I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c
124TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c 124TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c
125ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h 125ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9]
126SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h 126SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h
127SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c 127SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c
128GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h 128GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h