aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/00-INDEX2
-rw-r--r--Documentation/ABI/stable/sysfs-bus-usb142
-rw-r--r--Documentation/ABI/testing/sysfs-block-zram9
-rw-r--r--Documentation/ABI/testing/sysfs-bus-iio19
-rw-r--r--Documentation/ABI/testing/sysfs-bus-iio-frequency-ad95238
-rw-r--r--Documentation/ABI/testing/sysfs-bus-iio-frequency-adf43502
-rw-r--r--Documentation/ABI/testing/sysfs-bus-usb89
-rw-r--r--Documentation/ABI/testing/sysfs-class-mtd17
-rw-r--r--Documentation/ABI/testing/sysfs-fs-f2fs26
-rw-r--r--Documentation/DocBook/80211.tmpl1
-rw-r--r--Documentation/DocBook/drm.tmpl138
-rw-r--r--Documentation/DocBook/media/v4l/controls.xml168
-rw-r--r--Documentation/DocBook/media/v4l/lirc_device_interface.xml4
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt-nv16m.xml171
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt.xml7
-rw-r--r--Documentation/DocBook/media/v4l/subdev-formats.xml611
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-create-bufs.xml41
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml6
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml4
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-parm.xml4
-rw-r--r--Documentation/DocBook/media_api.tmpl6
-rw-r--r--Documentation/DocBook/mtdnand.tmpl2
-rw-r--r--Documentation/IRQ-affinity.txt4
-rw-r--r--Documentation/RCU/RTFP.txt858
-rw-r--r--Documentation/RCU/rcubarrier.txt12
-rw-r--r--Documentation/RCU/torture.txt10
-rw-r--r--Documentation/SubmittingPatches10
-rw-r--r--Documentation/acpi/enumeration.txt18
-rw-r--r--Documentation/aoe/udev.txt2
-rw-r--r--Documentation/arm/Booting42
-rw-r--r--Documentation/arm/OMAP/omap_pm2
-rw-r--r--Documentation/arm/kernel_mode_neon.txt121
-rw-r--r--Documentation/arm64/booting.txt22
-rw-r--r--Documentation/arm64/tagged-pointers.txt34
-rw-r--r--Documentation/block/cfq-iosched.txt2
-rw-r--r--Documentation/block/cmdline-partition.txt39
-rw-r--r--Documentation/cachetlb.txt6
-rw-r--r--Documentation/clk.txt46
-rw-r--r--Documentation/cpu-freq/cpu-drivers.txt2
-rw-r--r--Documentation/cputopology.txt2
-rw-r--r--Documentation/development-process/2.Process4
-rw-r--r--Documentation/device-mapper/cache.txt6
-rw-r--r--Documentation/device-mapper/statistics.txt186
-rw-r--r--Documentation/device-mapper/thin-provisioning.txt15
-rw-r--r--Documentation/devicetree/bindings/arm/arch_timer.txt59
-rw-r--r--Documentation/devicetree/bindings/arm/atmel-adc.txt7
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/bcm11351.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/kona-timer.txt (renamed from Documentation/devicetree/bindings/arm/bcm/bcm,kona-timer.txt)5
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt15
-rw-r--r--Documentation/devicetree/bindings/arm/l2cc.txt4
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/ste-u300.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/vexpress-scc.txt33
-rw-r--r--Documentation/devicetree/bindings/arm/vexpress-sysreg.txt4
-rw-r--r--Documentation/devicetree/bindings/ata/ahci-platform.txt18
-rw-r--r--Documentation/devicetree/bindings/ata/sata_highbank.txt44
-rw-r--r--Documentation/devicetree/bindings/bus/imx-weim.txt17
-rw-r--r--Documentation/devicetree/bindings/bus/mvebu-mbus.txt276
-rw-r--r--Documentation/devicetree/bindings/c6x/dscr.txt2
-rw-r--r--Documentation/devicetree/bindings/clock/clk-exynos-audss.txt2
-rw-r--r--Documentation/devicetree/bindings/clock/exynos4-clock.txt1
-rw-r--r--Documentation/devicetree/bindings/clock/exynos5250-clock.txt14
-rw-r--r--Documentation/devicetree/bindings/clock/exynos5420-clock.txt12
-rw-r--r--Documentation/devicetree/bindings/clock/imx5-clock.txt1
-rw-r--r--Documentation/devicetree/bindings/clock/imx6q-clock.txt6
-rw-r--r--Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt77
-rw-r--r--Documentation/devicetree/bindings/clock/st,nomadik.txt2
-rw-r--r--Documentation/devicetree/bindings/clock/sunxi.txt12
-rw-r--r--Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt75
-rw-r--r--Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt83
-rw-r--r--Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt98
-rw-r--r--Documentation/devicetree/bindings/crypto/fsl-sec6.txt157
-rw-r--r--Documentation/devicetree/bindings/dma/atmel-dma.txt4
-rw-r--r--Documentation/devicetree/bindings/dma/fsl-imx-dma.txt2
-rw-r--r--Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt7
-rw-r--r--Documentation/devicetree/bindings/dma/k3dma.txt46
-rw-r--r--Documentation/devicetree/bindings/dma/shdma.txt61
-rw-r--r--Documentation/devicetree/bindings/dma/ste-dma40.txt4
-rw-r--r--Documentation/devicetree/bindings/extcon/extcon-palmas.txt (renamed from Documentation/devicetree/bindings/extcon/extcon-twl.txt)6
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt26
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-palmas.txt27
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt45
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-tz1090.txt88
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio.txt55
-rw-r--r--Documentation/devicetree/bindings/gpio/mrvl-gpio.txt7
-rw-r--r--Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt8
-rw-r--r--Documentation/devicetree/bindings/gpu/samsung-g2d.txt7
-rw-r--r--Documentation/devicetree/bindings/gpu/samsung-rotator.txt27
-rw-r--r--Documentation/devicetree/bindings/hid/hid-over-i2c.txt28
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-imx.txt5
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt10
-rw-r--r--Documentation/devicetree/bindings/iio/accel/bma180.txt24
-rw-r--r--Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt18
-rw-r--r--Documentation/devicetree/bindings/iio/light/apds9300.txt22
-rw-r--r--Documentation/devicetree/bindings/input/input-reset.txt33
-rw-r--r--Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt2
-rw-r--r--Documentation/devicetree/bindings/media/i2c/adv7343.txt48
-rw-r--r--Documentation/devicetree/bindings/media/i2c/ths8200.txt19
-rw-r--r--Documentation/devicetree/bindings/media/i2c/tvp7002.txt53
-rw-r--r--Documentation/devicetree/bindings/media/s5p-mfc.txt11
-rw-r--r--Documentation/devicetree/bindings/media/video-interfaces.txt2
-rw-r--r--Documentation/devicetree/bindings/memory.txt168
-rw-r--r--Documentation/devicetree/bindings/metag/pdc-intc.txt105
-rw-r--r--Documentation/devicetree/bindings/mfd/cros-ec.txt2
-rw-r--r--Documentation/devicetree/bindings/mfd/palmas.txt2
-rw-r--r--Documentation/devicetree/bindings/mfd/s2mps11.txt109
-rw-r--r--Documentation/devicetree/bindings/misc/atmel-ssc.txt23
-rw-r--r--Documentation/devicetree/bindings/misc/smc.txt5
-rw-r--r--Documentation/devicetree/bindings/mmc/fsl-esdhc.txt4
-rw-r--r--Documentation/devicetree/bindings/mmc/kona-sdhci.txt (renamed from Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt)5
-rw-r--r--Documentation/devicetree/bindings/mtd/atmel-nand.txt28
-rw-r--r--Documentation/devicetree/bindings/mtd/fsmc-nand.txt25
-rw-r--r--Documentation/devicetree/bindings/mtd/partition.txt1
-rw-r--r--Documentation/devicetree/bindings/net/can/atmel-can.txt2
-rw-r--r--Documentation/devicetree/bindings/net/can/sja1000.txt2
-rw-r--r--Documentation/devicetree/bindings/net/micrel-ksz9021.txt49
-rw-r--r--Documentation/devicetree/bindings/net/moxa,moxart-mac.txt21
-rw-r--r--Documentation/devicetree/bindings/net/stmmac.txt5
-rw-r--r--Documentation/devicetree/bindings/pci/designware-pcie.txt3
-rw-r--r--Documentation/devicetree/bindings/pci/mvebu-pci.txt145
-rw-r--r--Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt163
-rw-r--r--Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt2
-rw-r--r--Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt11
-rw-r--r--Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt11
-rw-r--r--Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt12
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt41
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt96
-rw-r--r--Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt3
-rw-r--r--Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt6
-rw-r--r--Documentation/devicetree/bindings/power_supply/msm-poweroff.txt17
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt53
-rw-r--r--Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt8
-rw-r--r--Documentation/devicetree/bindings/pwm/imx-pwm.txt4
-rw-r--r--Documentation/devicetree/bindings/pwm/mxs-pwm.txt4
-rw-r--r--Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt5
-rw-r--r--Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt4
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm-samsung.txt22
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm-tiecap.txt8
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt8
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm.txt7
-rw-r--r--Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt28
-rw-r--r--Documentation/devicetree/bindings/pwm/spear-pwm.txt5
-rw-r--r--Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt4
-rw-r--r--Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt4
-rw-r--r--Documentation/devicetree/bindings/pwm/vt8500-pwm.txt8
-rw-r--r--Documentation/devicetree/bindings/regulator/88pm800.txt38
-rw-r--r--Documentation/devicetree/bindings/regulator/max8660.txt47
-rw-r--r--Documentation/devicetree/bindings/regulator/palmas-pmic.txt9
-rw-r--r--Documentation/devicetree/bindings/regulator/pfuze100.txt115
-rw-r--r--Documentation/devicetree/bindings/regulator/regulator.txt2
-rw-r--r--Documentation/devicetree/bindings/rtc/dw-apb.txt34
-rw-r--r--Documentation/devicetree/bindings/rtc/moxa,moxart-rtc.txt17
-rw-r--r--Documentation/devicetree/bindings/rtc/rtc-omap.txt6
-rw-r--r--Documentation/devicetree/bindings/rtc/rtc-palmas.txt33
-rw-r--r--Documentation/devicetree/bindings/serial/altera_jtaguart.txt3
-rw-r--r--Documentation/devicetree/bindings/serial/altera_uart.txt3
-rw-r--r--Documentation/devicetree/bindings/serial/arc-uart.txt (renamed from Documentation/devicetree/bindings/tty/serial/arc-uart.txt)0
-rw-r--r--Documentation/devicetree/bindings/serial/atmel-usart.txt (renamed from Documentation/devicetree/bindings/tty/serial/atmel-usart.txt)18
-rw-r--r--Documentation/devicetree/bindings/serial/efm32-uart.txt (renamed from Documentation/devicetree/bindings/tty/serial/efm32-uart.txt)0
-rw-r--r--Documentation/devicetree/bindings/serial/fsl-imx-uart.txt22
-rw-r--r--Documentation/devicetree/bindings/serial/fsl-lpuart.txt (renamed from Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt)0
-rw-r--r--Documentation/devicetree/bindings/serial/fsl-mxs-auart.txt (renamed from Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt)4
-rw-r--r--Documentation/devicetree/bindings/serial/mrvl,pxa-ssp.txt65
-rw-r--r--Documentation/devicetree/bindings/serial/nxp-lpc32xx-hsuart.txt (renamed from Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt)0
-rw-r--r--Documentation/devicetree/bindings/serial/of-serial.txt (renamed from Documentation/devicetree/bindings/tty/serial/of-serial.txt)0
-rw-r--r--Documentation/devicetree/bindings/serial/qcom,msm-uart.txt25
-rw-r--r--Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt53
-rw-r--r--Documentation/devicetree/bindings/serial/rs485.txt2
-rw-r--r--Documentation/devicetree/bindings/serial/sirf-uart.txt33
-rw-r--r--Documentation/devicetree/bindings/serial/snps-dw-apb-uart.txt (renamed from Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt)0
-rw-r--r--Documentation/devicetree/bindings/serial/st-asc.txt18
-rw-r--r--Documentation/devicetree/bindings/serial/via,vt8500-uart.txt (renamed from Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt)0
-rw-r--r--Documentation/devicetree/bindings/serio/altera_ps2.txt3
-rw-r--r--Documentation/devicetree/bindings/sound/ak4554.c11
-rw-r--r--Documentation/devicetree/bindings/sound/alc5632.txt19
-rw-r--r--Documentation/devicetree/bindings/sound/atmel-sam9x5-wm8731-audio.txt35
-rw-r--r--Documentation/devicetree/bindings/sound/atmel-wm8904.txt55
-rw-r--r--Documentation/devicetree/bindings/sound/fsl,spdif.txt54
-rw-r--r--Documentation/devicetree/bindings/sound/fsl,ssi.txt (renamed from Documentation/devicetree/bindings/powerpc/fsl/ssi.txt)12
-rw-r--r--Documentation/devicetree/bindings/sound/imx-audio-spdif.txt34
-rw-r--r--Documentation/devicetree/bindings/sound/imx-audmux.txt9
-rw-r--r--Documentation/devicetree/bindings/sound/mrvl,pxa-ssp.txt28
-rw-r--r--Documentation/devicetree/bindings/sound/mrvl,pxa2xx-pcm.txt15
-rw-r--r--Documentation/devicetree/bindings/sound/mvebu-audio.txt29
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt24
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt26
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt27
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt24
-rw-r--r--Documentation/devicetree/bindings/sound/pcm1792a.txt18
-rw-r--r--Documentation/devicetree/bindings/sound/rt5640.txt20
-rw-r--r--Documentation/devicetree/bindings/sound/samsung-i2s.txt22
-rw-r--r--Documentation/devicetree/bindings/sound/soc-ac97link.txt28
-rw-r--r--Documentation/devicetree/bindings/sound/ti,pcm1681.txt15
-rw-r--r--Documentation/devicetree/bindings/sound/tlv320aic3x.txt9
-rw-r--r--Documentation/devicetree/bindings/sound/wm8731.txt9
-rw-r--r--Documentation/devicetree/bindings/sound/wm8753.txt24
-rw-r--r--Documentation/devicetree/bindings/sound/wm8903.txt19
-rw-r--r--Documentation/devicetree/bindings/sound/wm8994.txt4
-rw-r--r--Documentation/devicetree/bindings/spi/efm32-spi.txt34
-rw-r--r--Documentation/devicetree/bindings/spi/spi-bus.txt10
-rw-r--r--Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt42
-rw-r--r--Documentation/devicetree/bindings/spi/spi_altera.txt3
-rw-r--r--Documentation/devicetree/bindings/spi/ti_qspi.txt22
-rw-r--r--Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt17
-rw-r--r--Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt22
-rw-r--r--Documentation/devicetree/bindings/tty/serial/msm_serial.txt27
-rw-r--r--Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt34
-rw-r--r--Documentation/devicetree/bindings/usb/am33xx-usb.txt222
-rw-r--r--Documentation/devicetree/bindings/usb/dwc3.txt8
-rw-r--r--Documentation/devicetree/bindings/usb/generic.txt24
-rw-r--r--Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt17
-rw-r--r--Documentation/devicetree/bindings/usb/omap-usb.txt5
-rw-r--r--Documentation/devicetree/bindings/usb/samsung-hsotg.txt40
-rw-r--r--Documentation/devicetree/bindings/usb/usb-xhci.txt14
-rw-r--r--Documentation/devicetree/bindings/usb/usb3503.txt7
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt3
-rw-r--r--Documentation/devicetree/bindings/video/simple-framebuffer.txt1
-rw-r--r--Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt (renamed from Documentation/devicetree/bindings/watchdog/sun4i-wdt.txt)5
-rw-r--r--Documentation/dma-buf-sharing.txt14
-rw-r--r--Documentation/dmatest.txt15
-rw-r--r--Documentation/driver-model/devres.txt9
-rw-r--r--Documentation/early-userspace/README3
-rw-r--r--Documentation/fb/fbcon.txt2
-rw-r--r--Documentation/fb/viafb.modes2
-rw-r--r--Documentation/fb/viafb.txt2
-rw-r--r--Documentation/filesystems/btrfs.txt2
-rw-r--r--Documentation/filesystems/caching/backend-api.txt9
-rw-r--r--Documentation/filesystems/caching/netfs-api.txt37
-rw-r--r--Documentation/filesystems/cifs/AUTHORS56
-rw-r--r--Documentation/filesystems/cifs/CHANGES1065
-rw-r--r--Documentation/filesystems/cifs/README753
-rw-r--r--Documentation/filesystems/cifs/TODO129
-rw-r--r--Documentation/filesystems/cifs/cifs.txt (renamed from Documentation/filesystems/cifs.txt)0
-rwxr-xr-xDocumentation/filesystems/cifs/winucase_convert.pl62
-rw-r--r--Documentation/filesystems/ext3.txt7
-rw-r--r--Documentation/filesystems/ext4.txt9
-rw-r--r--Documentation/filesystems/f2fs.txt75
-rw-r--r--Documentation/filesystems/nfs/Exporting2
-rw-r--r--Documentation/filesystems/nfs/pnfs.txt2
-rw-r--r--Documentation/filesystems/proc.txt19
-rw-r--r--Documentation/filesystems/qnx6.txt2
-rw-r--r--Documentation/filesystems/ramfs-rootfs-initramfs.txt4
-rw-r--r--Documentation/filesystems/relay.txt2
-rw-r--r--Documentation/filesystems/sysfs-tagging.txt2
-rw-r--r--Documentation/filesystems/xfs.txt2
-rw-r--r--Documentation/fmc/carrier.txt2
-rw-r--r--Documentation/hid/uhid.txt4
-rw-r--r--Documentation/hwmon/abituguru-datasheet2
-rw-r--r--Documentation/hwmon/ads10158
-rw-r--r--Documentation/hwmon/htu2146
-rw-r--r--Documentation/hwmon/k10temp1
-rw-r--r--Documentation/hwmon/submitting-patches2
-rw-r--r--Documentation/hwmon/w83791d2
-rw-r--r--Documentation/hwmon/w83792d3
-rw-r--r--Documentation/hwspinlock.txt2
-rw-r--r--Documentation/i2c/busses/i2c-piix47
-rw-r--r--Documentation/i2c/instantiating-devices2
-rw-r--r--Documentation/i2c/upgrading-clients4
-rw-r--r--Documentation/input/gamepad.txt156
-rw-r--r--Documentation/kbuild/kconfig-language.txt1
-rw-r--r--Documentation/kbuild/kconfig.txt8
-rw-r--r--Documentation/kernel-parameters.txt79
-rw-r--r--Documentation/kmemcheck.txt6
-rw-r--r--Documentation/ko_KR/HOWTO25
-rw-r--r--Documentation/ko_KR/stable_api_nonsense.txt6
-rw-r--r--Documentation/laptops/asus-laptop.txt8
-rw-r--r--Documentation/laptops/sony-laptop.txt8
-rw-r--r--Documentation/laptops/thinkpad-acpi.txt73
-rw-r--r--Documentation/leds/leds-lm3556.txt2
-rw-r--r--Documentation/leds/leds-lp3944.txt2
-rw-r--r--Documentation/memory-barriers.txt10
-rw-r--r--Documentation/memory-hotplug.txt18
-rw-r--r--Documentation/mtd/nand_ecc.txt2
-rw-r--r--Documentation/networking/00-INDEX4
-rw-r--r--Documentation/networking/e100.txt4
-rw-r--r--Documentation/networking/e1000.txt12
-rw-r--r--Documentation/networking/e1000e.txt16
-rw-r--r--Documentation/networking/i40e.txt115
-rw-r--r--Documentation/networking/igb.txt67
-rw-r--r--Documentation/networking/igbvf.txt8
-rw-r--r--Documentation/networking/ip-sysctl.txt55
-rw-r--r--Documentation/networking/ixgb.txt14
-rw-r--r--Documentation/networking/ixgbe.txt109
-rw-r--r--Documentation/networking/ixgbevf.txt6
-rw-r--r--Documentation/networking/netdev-FAQ.txt224
-rw-r--r--Documentation/networking/openvswitch.txt40
-rw-r--r--Documentation/networking/packet_mmap.txt8
-rw-r--r--Documentation/networking/sctp.txt5
-rw-r--r--Documentation/networking/stmmac.txt3
-rw-r--r--Documentation/networking/tproxy.txt5
-rw-r--r--Documentation/pinctrl.txt101
-rw-r--r--Documentation/power/basic-pm-debugging.txt10
-rw-r--r--Documentation/power/swsusp.txt15
-rw-r--r--Documentation/powerpc/00-INDEX11
-rw-r--r--Documentation/printk-formats.txt15
-rw-r--r--Documentation/rapidio/rapidio.txt2
-rw-r--r--Documentation/scsi/LICENSE.qla4xxx2
-rw-r--r--Documentation/scsi/hptiop.txt2
-rw-r--r--Documentation/sound/alsa/HD-Audio-Models.txt1
-rw-r--r--Documentation/sound/alsa/HD-Audio.txt2
-rw-r--r--Documentation/sound/alsa/README.maya442
-rw-r--r--Documentation/sound/alsa/compress_offload.txt4
-rw-r--r--Documentation/spi/spi-summary2
-rw-r--r--Documentation/sysctl/kernel.txt1
-rw-r--r--Documentation/sysctl/net.txt13
-rw-r--r--Documentation/sysctl/vm.txt30
-rw-r--r--Documentation/sysfs-rules.txt2
-rwxr-xr-xDocumentation/target/tcm_mod_builder.py2
-rw-r--r--Documentation/timers/NO_HZ.txt44
-rw-r--r--Documentation/tpm/xen-tpmfront.txt113
-rw-r--r--Documentation/trace/ftrace.txt4
-rw-r--r--Documentation/trace/tracepoints.txt19
-rw-r--r--Documentation/usb/URB.txt21
-rw-r--r--Documentation/usb/proc_usb_info.txt9
-rw-r--r--Documentation/vfio.txt8
-rw-r--r--Documentation/video4linux/v4l2-controls.txt21
-rw-r--r--Documentation/virtual/kvm/api.txt2
-rw-r--r--Documentation/virtual/kvm/cpuid.txt4
-rw-r--r--Documentation/virtual/kvm/hypercalls.txt14
-rw-r--r--Documentation/vm/hugetlbpage.txt25
-rw-r--r--Documentation/vm/soft-dirty.txt7
-rw-r--r--Documentation/workqueue.txt90
-rw-r--r--Documentation/x86/boot.txt2
-rw-r--r--Documentation/x86/x86_64/boot-options.txt5
-rw-r--r--Documentation/zh_CN/SubmittingPatches2
325 files changed, 9854 insertions, 1785 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index 0c4cc688e89a..38f8444bdd0e 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -40,7 +40,7 @@ IPMI.txt
40IRQ-affinity.txt 40IRQ-affinity.txt
41 - 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 42IRQ-domain.txt
43 - info on inerrupt numbering and setting up IRQ domains. 43 - info on interrupt numbering and setting up IRQ domains.
44IRQ.txt 44IRQ.txt
45 - description of what an IRQ is. 45 - description of what an IRQ is.
46Intel-IOMMU.txt 46Intel-IOMMU.txt
diff --git a/Documentation/ABI/stable/sysfs-bus-usb b/Documentation/ABI/stable/sysfs-bus-usb
new file mode 100644
index 000000000000..2be603c52a24
--- /dev/null
+++ b/Documentation/ABI/stable/sysfs-bus-usb
@@ -0,0 +1,142 @@
1What: /sys/bus/usb/devices/.../power/persist
2Date: May 2007
3KernelVersion: 2.6.23
4Contact: Alan Stern <stern@rowland.harvard.edu>
5Description:
6 If CONFIG_USB_PERSIST is set, then each USB device directory
7 will contain a file named power/persist. The file holds a
8 boolean value (0 or 1) indicating whether or not the
9 "USB-Persist" facility is enabled for the device. Since the
10 facility is inherently dangerous, it is disabled by default
11 for all devices except hubs. For more information, see
12 Documentation/usb/persist.txt.
13
14What: /sys/bus/usb/devices/.../power/autosuspend
15Date: March 2007
16KernelVersion: 2.6.21
17Contact: Alan Stern <stern@rowland.harvard.edu>
18Description:
19 Each USB device directory will contain a file named
20 power/autosuspend. This file holds the time (in seconds)
21 the device must be idle before it will be autosuspended.
22 0 means the device will be autosuspended as soon as
23 possible. Negative values will prevent the device from
24 being autosuspended at all, and writing a negative value
25 will resume the device if it is already suspended.
26
27 The autosuspend delay for newly-created devices is set to
28 the value of the usbcore.autosuspend module parameter.
29
30What: /sys/bus/usb/device/.../power/connected_duration
31Date: January 2008
32KernelVersion: 2.6.25
33Contact: Sarah Sharp <sarah.a.sharp@intel.com>
34Description:
35 If CONFIG_PM_RUNTIME is enabled then this file
36 is present. When read, it returns the total time (in msec)
37 that the USB device has been connected to the machine. This
38 file is read-only.
39Users:
40 PowerTOP <power@bughost.org>
41 http://www.lesswatts.org/projects/powertop/
42
43What: /sys/bus/usb/device/.../power/active_duration
44Date: January 2008
45KernelVersion: 2.6.25
46Contact: Sarah Sharp <sarah.a.sharp@intel.com>
47Description:
48 If CONFIG_PM_RUNTIME is enabled then this file
49 is present. When read, it returns the total time (in msec)
50 that the USB device has been active, i.e. not in a suspended
51 state. This file is read-only.
52
53 Tools can use this file and the connected_duration file to
54 compute the percentage of time that a device has been active.
55 For example,
56 echo $((100 * `cat active_duration` / `cat connected_duration`))
57 will give an integer percentage. Note that this does not
58 account for counter wrap.
59Users:
60 PowerTOP <power@bughost.org>
61 http://www.lesswatts.org/projects/powertop/
62
63What: /sys/bus/usb/devices/<busnum>-<port[.port]>...:<config num>-<interface num>/supports_autosuspend
64Date: January 2008
65KernelVersion: 2.6.27
66Contact: Sarah Sharp <sarah.a.sharp@intel.com>
67Description:
68 When read, this file returns 1 if the interface driver
69 for this interface supports autosuspend. It also
70 returns 1 if no driver has claimed this interface, as an
71 unclaimed interface will not stop the device from being
72 autosuspended if all other interface drivers are idle.
73 The file returns 0 if autosuspend support has not been
74 added to the driver.
75Users:
76 USB PM tool
77 git://git.moblin.org/users/sarah/usb-pm-tool/
78
79What: /sys/bus/usb/device/.../avoid_reset_quirk
80Date: December 2009
81Contact: Oliver Neukum <oliver@neukum.org>
82Description:
83 Writing 1 to this file tells the kernel that this
84 device will morph into another mode when it is reset.
85 Drivers will not use reset for error handling for
86 such devices.
87Users:
88 usb_modeswitch
89
90What: /sys/bus/usb/devices/.../devnum
91KernelVersion: since at least 2.6.18
92Description:
93 Device address on the USB bus.
94Users:
95 libusb
96
97What: /sys/bus/usb/devices/.../bConfigurationValue
98KernelVersion: since at least 2.6.18
99Description:
100 bConfigurationValue of the *active* configuration for the
101 device. Writing 0 or -1 to bConfigurationValue will reset the
102 active configuration (unconfigure the device). Writing
103 another value will change the active configuration.
104
105 Note that some devices, in violation of the USB spec, have a
106 configuration with a value equal to 0. Writing 0 to
107 bConfigurationValue for these devices will install that
108 configuration, rather then unconfigure the device.
109
110 Writing -1 will always unconfigure the device.
111Users:
112 libusb
113
114What: /sys/bus/usb/devices/.../busnum
115KernelVersion: 2.6.22
116Description:
117 Bus-number of the USB-bus the device is connected to.
118Users:
119 libusb
120
121What: /sys/bus/usb/devices/.../descriptors
122KernelVersion: 2.6.26
123Description:
124 Binary file containing cached descriptors of the device. The
125 binary data consists of the device descriptor followed by the
126 descriptors for each configuration of the device.
127 Note that the wTotalLength of the config descriptors can not
128 be trusted, as the device may have a smaller config descriptor
129 than it advertises. The bLength field of each (sub) descriptor
130 can be trusted, and can be used to seek forward one (sub)
131 descriptor at a time until the next config descriptor is found.
132 All descriptors read from this file are in bus-endian format
133Users:
134 libusb
135
136What: /sys/bus/usb/devices/.../speed
137KernelVersion: since at least 2.6.18
138Description:
139 Speed the device is connected with to the usb-host in
140 Mbit / second. IE one of 1.5 / 12 / 480 / 5000.
141Users:
142 libusb
diff --git a/Documentation/ABI/testing/sysfs-block-zram b/Documentation/ABI/testing/sysfs-block-zram
index ec93fe33baa6..3f0b9ae61d8c 100644
--- a/Documentation/ABI/testing/sysfs-block-zram
+++ b/Documentation/ABI/testing/sysfs-block-zram
@@ -5,20 +5,21 @@ Description:
5 The disksize file is read-write and specifies the disk size 5 The disksize file is read-write and specifies the disk size
6 which represents the limit on the *uncompressed* worth of data 6 which represents the limit on the *uncompressed* worth of data
7 that can be stored in this disk. 7 that can be stored in this disk.
8 Unit: bytes
8 9
9What: /sys/block/zram<id>/initstate 10What: /sys/block/zram<id>/initstate
10Date: August 2010 11Date: August 2010
11Contact: Nitin Gupta <ngupta@vflare.org> 12Contact: Nitin Gupta <ngupta@vflare.org>
12Description: 13Description:
13 The disksize file is read-only and shows the initialization 14 The initstate file is read-only and shows the initialization
14 state of the device. 15 state of the device.
15 16
16What: /sys/block/zram<id>/reset 17What: /sys/block/zram<id>/reset
17Date: August 2010 18Date: August 2010
18Contact: Nitin Gupta <ngupta@vflare.org> 19Contact: Nitin Gupta <ngupta@vflare.org>
19Description: 20Description:
20 The disksize file is write-only and allows resetting the 21 The reset file is write-only and allows resetting the
21 device. The reset operation frees all the memory assocaited 22 device. The reset operation frees all the memory associated
22 with this device. 23 with this device.
23 24
24What: /sys/block/zram<id>/num_reads 25What: /sys/block/zram<id>/num_reads
@@ -48,7 +49,7 @@ Contact: Nitin Gupta <ngupta@vflare.org>
48Description: 49Description:
49 The notify_free file is read-only and specifies the number of 50 The notify_free file is read-only and specifies the number of
50 swap slot free notifications received by this device. These 51 swap slot free notifications received by this device. These
51 notifications are send to a swap block device when a swap slot 52 notifications are sent to a swap block device when a swap slot
52 is freed. This statistic is applicable only when this disk is 53 is freed. This statistic is applicable only when this disk is
53 being used as a swap disk. 54 being used as a swap disk.
54 55
diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index dda81ffae5cf..39c8de0e53d0 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -351,6 +351,7 @@ Description:
351 6kohm_to_gnd: connected to ground via a 6kOhm resistor, 351 6kohm_to_gnd: connected to ground via a 6kOhm resistor,
352 20kohm_to_gnd: connected to ground via a 20kOhm resistor, 352 20kohm_to_gnd: connected to ground via a 20kOhm resistor,
353 100kohm_to_gnd: connected to ground via an 100kOhm resistor, 353 100kohm_to_gnd: connected to ground via an 100kOhm resistor,
354 500kohm_to_gnd: connected to ground via a 500kOhm resistor,
354 three_state: left floating. 355 three_state: left floating.
355 For a list of available output power down options read 356 For a list of available output power down options read
356 outX_powerdown_mode_available. If Y is not present the 357 outX_powerdown_mode_available. If Y is not present the
@@ -792,3 +793,21 @@ Contact: linux-iio@vger.kernel.org
792Description: 793Description:
793 This attribute is used to read the amount of quadrature error 794 This attribute is used to read the amount of quadrature error
794 present in the device at a given time. 795 present in the device at a given time.
796
797What: /sys/.../iio:deviceX/in_accelX_power_mode
798KernelVersion: 3.11
799Contact: linux-iio@vger.kernel.org
800Description:
801 Specifies the chip power mode.
802 low_noise: reduce noise level from ADC,
803 low_power: enable low current consumption.
804 For a list of available output power modes read
805 in_accel_power_mode_available.
806
807What: /sys/bus/iio/devices/iio:deviceX/store_eeprom
808KernelVersion: 3.4.0
809Contact: linux-iio@vger.kernel.org
810Description:
811 Writing '1' stores the current device configuration into
812 on-chip EEPROM. After power-up or chip reset the device will
813 automatically load the saved configuration.
diff --git a/Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523 b/Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
index 2ce9c3f68eee..a91aeabe7b24 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
+++ b/Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
@@ -18,14 +18,6 @@ Description:
18 Reading returns either '1' or '0'. '1' means that the 18 Reading returns either '1' or '0'. '1' means that the
19 pllY is locked. 19 pllY is locked.
20 20
21What: /sys/bus/iio/devices/iio:deviceX/store_eeprom
22KernelVersion: 3.4.0
23Contact: linux-iio@vger.kernel.org
24Description:
25 Writing '1' stores the current device configuration into
26 on-chip EEPROM. After power-up or chip reset the device will
27 automatically load the saved configuration.
28
29What: /sys/bus/iio/devices/iio:deviceX/sync_dividers 21What: /sys/bus/iio/devices/iio:deviceX/sync_dividers
30KernelVersion: 3.4.0 22KernelVersion: 3.4.0
31Contact: linux-iio@vger.kernel.org 23Contact: linux-iio@vger.kernel.org
diff --git a/Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350 b/Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
index d89aded01c5a..1254457a726e 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
+++ b/Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
@@ -18,4 +18,4 @@ Description:
18 adjust the reference frequency accordingly. 18 adjust the reference frequency accordingly.
19 The value written has no effect until out_altvoltageY_frequency 19 The value written has no effect until out_altvoltageY_frequency
20 is updated. Consider to use out_altvoltageY_powerdown to power 20 is updated. Consider to use out_altvoltageY_powerdown to power
21 down the PLL and it's RFOut buffers during REFin changes. 21 down the PLL and its RFOut buffers during REFin changes.
diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb
index 9759b8c91332..1430f584b266 100644
--- a/Documentation/ABI/testing/sysfs-bus-usb
+++ b/Documentation/ABI/testing/sysfs-bus-usb
@@ -1,81 +1,3 @@
1What: /sys/bus/usb/devices/.../power/autosuspend
2Date: March 2007
3KernelVersion: 2.6.21
4Contact: Alan Stern <stern@rowland.harvard.edu>
5Description:
6 Each USB device directory will contain a file named
7 power/autosuspend. This file holds the time (in seconds)
8 the device must be idle before it will be autosuspended.
9 0 means the device will be autosuspended as soon as
10 possible. Negative values will prevent the device from
11 being autosuspended at all, and writing a negative value
12 will resume the device if it is already suspended.
13
14 The autosuspend delay for newly-created devices is set to
15 the value of the usbcore.autosuspend module parameter.
16
17What: /sys/bus/usb/devices/.../power/persist
18Date: May 2007
19KernelVersion: 2.6.23
20Contact: Alan Stern <stern@rowland.harvard.edu>
21Description:
22 If CONFIG_USB_PERSIST is set, then each USB device directory
23 will contain a file named power/persist. The file holds a
24 boolean value (0 or 1) indicating whether or not the
25 "USB-Persist" facility is enabled for the device. Since the
26 facility is inherently dangerous, it is disabled by default
27 for all devices except hubs. For more information, see
28 Documentation/usb/persist.txt.
29
30What: /sys/bus/usb/device/.../power/connected_duration
31Date: January 2008
32KernelVersion: 2.6.25
33Contact: Sarah Sharp <sarah.a.sharp@intel.com>
34Description:
35 If CONFIG_PM_RUNTIME is enabled then this file
36 is present. When read, it returns the total time (in msec)
37 that the USB device has been connected to the machine. This
38 file is read-only.
39Users:
40 PowerTOP <power@bughost.org>
41 http://www.lesswatts.org/projects/powertop/
42
43What: /sys/bus/usb/device/.../power/active_duration
44Date: January 2008
45KernelVersion: 2.6.25
46Contact: Sarah Sharp <sarah.a.sharp@intel.com>
47Description:
48 If CONFIG_PM_RUNTIME is enabled then this file
49 is present. When read, it returns the total time (in msec)
50 that the USB device has been active, i.e. not in a suspended
51 state. This file is read-only.
52
53 Tools can use this file and the connected_duration file to
54 compute the percentage of time that a device has been active.
55 For example,
56 echo $((100 * `cat active_duration` / `cat connected_duration`))
57 will give an integer percentage. Note that this does not
58 account for counter wrap.
59Users:
60 PowerTOP <power@bughost.org>
61 http://www.lesswatts.org/projects/powertop/
62
63What: /sys/bus/usb/device/<busnum>-<devnum>...:<config num>-<interface num>/supports_autosuspend
64Date: January 2008
65KernelVersion: 2.6.27
66Contact: Sarah Sharp <sarah.a.sharp@intel.com>
67Description:
68 When read, this file returns 1 if the interface driver
69 for this interface supports autosuspend. It also
70 returns 1 if no driver has claimed this interface, as an
71 unclaimed interface will not stop the device from being
72 autosuspended if all other interface drivers are idle.
73 The file returns 0 if autosuspend support has not been
74 added to the driver.
75Users:
76 USB PM tool
77 git://git.moblin.org/users/sarah/usb-pm-tool/
78
79What: /sys/bus/usb/device/.../authorized 1What: /sys/bus/usb/device/.../authorized
80Date: July 2008 2Date: July 2008
81KernelVersion: 2.6.26 3KernelVersion: 2.6.26
@@ -172,17 +94,6 @@ Description:
172 device IDs, exactly like reading from the entry 94 device IDs, exactly like reading from the entry
173 "/sys/bus/usb/drivers/.../new_id" 95 "/sys/bus/usb/drivers/.../new_id"
174 96
175What: /sys/bus/usb/device/.../avoid_reset_quirk
176Date: December 2009
177Contact: Oliver Neukum <oliver@neukum.org>
178Description:
179 Writing 1 to this file tells the kernel that this
180 device will morph into another mode when it is reset.
181 Drivers will not use reset for error handling for
182 such devices.
183Users:
184 usb_modeswitch
185
186What: /sys/bus/usb/devices/.../power/usb2_hardware_lpm 97What: /sys/bus/usb/devices/.../power/usb2_hardware_lpm
187Date: September 2011 98Date: September 2011
188Contact: Andiry Xu <andiry.xu@amd.com> 99Contact: Andiry Xu <andiry.xu@amd.com>
diff --git a/Documentation/ABI/testing/sysfs-class-mtd b/Documentation/ABI/testing/sysfs-class-mtd
index 3105644b3bfc..bfd119ace6ad 100644
--- a/Documentation/ABI/testing/sysfs-class-mtd
+++ b/Documentation/ABI/testing/sysfs-class-mtd
@@ -128,9 +128,8 @@ KernelVersion: 3.4
128Contact: linux-mtd@lists.infradead.org 128Contact: linux-mtd@lists.infradead.org
129Description: 129Description:
130 Maximum number of bit errors that the device is capable of 130 Maximum number of bit errors that the device is capable of
131 correcting within each region covering an ecc step. This will 131 correcting within each region covering an ECC step (see
132 always be a non-negative integer. Note that some devices will 132 ecc_step_size). This will always be a non-negative integer.
133 have multiple ecc steps within each writesize region.
134 133
135 In the case of devices lacking any ECC capability, it is 0. 134 In the case of devices lacking any ECC capability, it is 0.
136 135
@@ -173,3 +172,15 @@ Description:
173 This is generally applicable only to NAND flash devices with ECC 172 This is generally applicable only to NAND flash devices with ECC
174 capability. It is ignored on devices lacking ECC capability; 173 capability. It is ignored on devices lacking ECC capability;
175 i.e., devices for which ecc_strength is zero. 174 i.e., devices for which ecc_strength is zero.
175
176What: /sys/class/mtd/mtdX/ecc_step_size
177Date: May 2013
178KernelVersion: 3.10
179Contact: linux-mtd@lists.infradead.org
180Description:
181 The size of a single region covered by ECC, known as the ECC
182 step. Devices may have several equally sized ECC steps within
183 each writesize region.
184
185 It will always be a non-negative integer. In the case of
186 devices lacking any ECC capability, it is 0.
diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs b/Documentation/ABI/testing/sysfs-fs-f2fs
new file mode 100644
index 000000000000..31942efcaf0e
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-fs-f2fs
@@ -0,0 +1,26 @@
1What: /sys/fs/f2fs/<disk>/gc_max_sleep_time
2Date: July 2013
3Contact: "Namjae Jeon" <namjae.jeon@samsung.com>
4Description:
5 Controls the maximun sleep time for gc_thread. Time
6 is in milliseconds.
7
8What: /sys/fs/f2fs/<disk>/gc_min_sleep_time
9Date: July 2013
10Contact: "Namjae Jeon" <namjae.jeon@samsung.com>
11Description:
12 Controls the minimum sleep time for gc_thread. Time
13 is in milliseconds.
14
15What: /sys/fs/f2fs/<disk>/gc_no_gc_sleep_time
16Date: July 2013
17Contact: "Namjae Jeon" <namjae.jeon@samsung.com>
18Description:
19 Controls the default sleep time for gc_thread. Time
20 is in milliseconds.
21
22What: /sys/fs/f2fs/<disk>/gc_idle
23Date: July 2013
24Contact: "Namjae Jeon" <namjae.jeon@samsung.com>
25Description:
26 Controls the victim selection policy for garbage collection.
diff --git a/Documentation/DocBook/80211.tmpl b/Documentation/DocBook/80211.tmpl
index 49267ea97568..f403ec3c5c9a 100644
--- a/Documentation/DocBook/80211.tmpl
+++ b/Documentation/DocBook/80211.tmpl
@@ -325,6 +325,7 @@
325 <title>functions/definitions</title> 325 <title>functions/definitions</title>
326!Finclude/net/mac80211.h ieee80211_rx_status 326!Finclude/net/mac80211.h ieee80211_rx_status
327!Finclude/net/mac80211.h mac80211_rx_flags 327!Finclude/net/mac80211.h mac80211_rx_flags
328!Finclude/net/mac80211.h mac80211_tx_info_flags
328!Finclude/net/mac80211.h mac80211_tx_control_flags 329!Finclude/net/mac80211.h mac80211_tx_control_flags
329!Finclude/net/mac80211.h mac80211_rate_control_flags 330!Finclude/net/mac80211.h mac80211_rate_control_flags
330!Finclude/net/mac80211.h ieee80211_tx_rate 331!Finclude/net/mac80211.h ieee80211_tx_rate
diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
index 7d1278e7a434..ed1d6d289022 100644
--- a/Documentation/DocBook/drm.tmpl
+++ b/Documentation/DocBook/drm.tmpl
@@ -156,13 +156,6 @@
156 </para></listitem> 156 </para></listitem>
157 </varlistentry> 157 </varlistentry>
158 <varlistentry> 158 <varlistentry>
159 <term>DRIVER_USE_MTRR</term>
160 <listitem><para>
161 Driver uses MTRR interface for mapping memory, the DRM core will
162 manage MTRR resources. Deprecated.
163 </para></listitem>
164 </varlistentry>
165 <varlistentry>
166 <term>DRIVER_PCI_DMA</term> 159 <term>DRIVER_PCI_DMA</term>
167 <listitem><para> 160 <listitem><para>
168 Driver is capable of PCI DMA, mapping of PCI DMA buffers to 161 Driver is capable of PCI DMA, mapping of PCI DMA buffers to
@@ -195,28 +188,6 @@
195 </para></listitem> 188 </para></listitem>
196 </varlistentry> 189 </varlistentry>
197 <varlistentry> 190 <varlistentry>
198 <term>DRIVER_IRQ_VBL</term>
199 <listitem><para>Unused. Deprecated.</para></listitem>
200 </varlistentry>
201 <varlistentry>
202 <term>DRIVER_DMA_QUEUE</term>
203 <listitem><para>
204 Should be set if the driver queues DMA requests and completes them
205 asynchronously. Deprecated.
206 </para></listitem>
207 </varlistentry>
208 <varlistentry>
209 <term>DRIVER_FB_DMA</term>
210 <listitem><para>
211 Driver supports DMA to/from the framebuffer, mapping of frambuffer
212 DMA buffers to userspace will be supported. Deprecated.
213 </para></listitem>
214 </varlistentry>
215 <varlistentry>
216 <term>DRIVER_IRQ_VBL2</term>
217 <listitem><para>Unused. Deprecated.</para></listitem>
218 </varlistentry>
219 <varlistentry>
220 <term>DRIVER_GEM</term> 191 <term>DRIVER_GEM</term>
221 <listitem><para> 192 <listitem><para>
222 Driver use the GEM memory manager. 193 Driver use the GEM memory manager.
@@ -234,6 +205,12 @@
234 Driver implements DRM PRIME buffer sharing. 205 Driver implements DRM PRIME buffer sharing.
235 </para></listitem> 206 </para></listitem>
236 </varlistentry> 207 </varlistentry>
208 <varlistentry>
209 <term>DRIVER_RENDER</term>
210 <listitem><para>
211 Driver supports dedicated render nodes.
212 </para></listitem>
213 </varlistentry>
237 </variablelist> 214 </variablelist>
238 </sect3> 215 </sect3>
239 <sect3> 216 <sect3>
@@ -2212,6 +2189,18 @@ void intel_crt_init(struct drm_device *dev)
2212!Iinclude/drm/drm_rect.h 2189!Iinclude/drm/drm_rect.h
2213!Edrivers/gpu/drm/drm_rect.c 2190!Edrivers/gpu/drm/drm_rect.c
2214 </sect2> 2191 </sect2>
2192 <sect2>
2193 <title>Flip-work Helper Reference</title>
2194!Pinclude/drm/drm_flip_work.h flip utils
2195!Iinclude/drm/drm_flip_work.h
2196!Edrivers/gpu/drm/drm_flip_work.c
2197 </sect2>
2198 <sect2>
2199 <title>VMA Offset Manager</title>
2200!Pdrivers/gpu/drm/drm_vma_manager.c vma offset manager
2201!Edrivers/gpu/drm/drm_vma_manager.c
2202!Iinclude/drm/drm_vma_manager.h
2203 </sect2>
2215 </sect1> 2204 </sect1>
2216 2205
2217 <!-- Internals: kms properties --> 2206 <!-- Internals: kms properties -->
@@ -2422,18 +2411,18 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis>
2422 </abstract> 2411 </abstract>
2423 <para> 2412 <para>
2424 The <methodname>firstopen</methodname> method is called by the DRM core 2413 The <methodname>firstopen</methodname> method is called by the DRM core
2425 when an application opens a device that has no other opened file handle. 2414 for legacy UMS (User Mode Setting) drivers only when an application
2426 Similarly the <methodname>lastclose</methodname> method is called when 2415 opens a device that has no other opened file handle. UMS drivers can
2427 the last application holding a file handle opened on the device closes 2416 implement it to acquire device resources. KMS drivers can't use the
2428 it. Both methods are mostly used for UMS (User Mode Setting) drivers to 2417 method and must acquire resources in the <methodname>load</methodname>
2429 acquire and release device resources which should be done in the 2418 method instead.
2430 <methodname>load</methodname> and <methodname>unload</methodname>
2431 methods for KMS drivers.
2432 </para> 2419 </para>
2433 <para> 2420 <para>
2434 Note that the <methodname>lastclose</methodname> method is also called 2421 Similarly the <methodname>lastclose</methodname> method is called when
2435 at module unload time or, for hot-pluggable devices, when the device is 2422 the last application holding a file handle opened on the device closes
2436 unplugged. The <methodname>firstopen</methodname> and 2423 it, for both UMS and KMS drivers. Additionally, the method is also
2424 called at module unload time or, for hot-pluggable devices, when the
2425 device is unplugged. The <methodname>firstopen</methodname> and
2437 <methodname>lastclose</methodname> calls can thus be unbalanced. 2426 <methodname>lastclose</methodname> calls can thus be unbalanced.
2438 </para> 2427 </para>
2439 <para> 2428 <para>
@@ -2462,7 +2451,12 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis>
2462 <para> 2451 <para>
2463 The <methodname>lastclose</methodname> method should restore CRTC and 2452 The <methodname>lastclose</methodname> method should restore CRTC and
2464 plane properties to default value, so that a subsequent open of the 2453 plane properties to default value, so that a subsequent open of the
2465 device will not inherit state from the previous user. 2454 device will not inherit state from the previous user. It can also be
2455 used to execute delayed power switching state changes, e.g. in
2456 conjunction with the vga-switcheroo infrastructure. Beyond that KMS
2457 drivers should not do any further cleanup. Only legacy UMS drivers might
2458 need to clean up device state so that the vga console or an independent
2459 fbdev driver could take over.
2466 </para> 2460 </para>
2467 </sect2> 2461 </sect2>
2468 <sect2> 2462 <sect2>
@@ -2498,7 +2492,6 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis>
2498 <programlisting> 2492 <programlisting>
2499 .poll = drm_poll, 2493 .poll = drm_poll,
2500 .read = drm_read, 2494 .read = drm_read,
2501 .fasync = drm_fasync,
2502 .llseek = no_llseek, 2495 .llseek = no_llseek,
2503 </programlisting> 2496 </programlisting>
2504 </para> 2497 </para>
@@ -2657,6 +2650,69 @@ int (*resume) (struct drm_device *);</synopsis>
2657 info, since man pages should cover the rest. 2650 info, since man pages should cover the rest.
2658 </para> 2651 </para>
2659 2652
2653 <!-- External: render nodes -->
2654
2655 <sect1>
2656 <title>Render nodes</title>
2657 <para>
2658 DRM core provides multiple character-devices for user-space to use.
2659 Depending on which device is opened, user-space can perform a different
2660 set of operations (mainly ioctls). The primary node is always created
2661 and called <term>card&lt;num&gt;</term>. Additionally, a currently
2662 unused control node, called <term>controlD&lt;num&gt;</term> is also
2663 created. The primary node provides all legacy operations and
2664 historically was the only interface used by userspace. With KMS, the
2665 control node was introduced. However, the planned KMS control interface
2666 has never been written and so the control node stays unused to date.
2667 </para>
2668 <para>
2669 With the increased use of offscreen renderers and GPGPU applications,
2670 clients no longer require running compositors or graphics servers to
2671 make use of a GPU. But the DRM API required unprivileged clients to
2672 authenticate to a DRM-Master prior to getting GPU access. To avoid this
2673 step and to grant clients GPU access without authenticating, render
2674 nodes were introduced. Render nodes solely serve render clients, that
2675 is, no modesetting or privileged ioctls can be issued on render nodes.
2676 Only non-global rendering commands are allowed. If a driver supports
2677 render nodes, it must advertise it via the <term>DRIVER_RENDER</term>
2678 DRM driver capability. If not supported, the primary node must be used
2679 for render clients together with the legacy drmAuth authentication
2680 procedure.
2681 </para>
2682 <para>
2683 If a driver advertises render node support, DRM core will create a
2684 separate render node called <term>renderD&lt;num&gt;</term>. There will
2685 be one render node per device. No ioctls except PRIME-related ioctls
2686 will be allowed on this node. Especially <term>GEM_OPEN</term> will be
2687 explicitly prohibited. Render nodes are designed to avoid the
2688 buffer-leaks, which occur if clients guess the flink names or mmap
2689 offsets on the legacy interface. Additionally to this basic interface,
2690 drivers must mark their driver-dependent render-only ioctls as
2691 <term>DRM_RENDER_ALLOW</term> so render clients can use them. Driver
2692 authors must be careful not to allow any privileged ioctls on render
2693 nodes.
2694 </para>
2695 <para>
2696 With render nodes, user-space can now control access to the render node
2697 via basic file-system access-modes. A running graphics server which
2698 authenticates clients on the privileged primary/legacy node is no longer
2699 required. Instead, a client can open the render node and is immediately
2700 granted GPU access. Communication between clients (or servers) is done
2701 via PRIME. FLINK from render node to legacy node is not supported. New
2702 clients must not use the insecure FLINK interface.
2703 </para>
2704 <para>
2705 Besides dropping all modeset/global ioctls, render nodes also drop the
2706 DRM-Master concept. There is no reason to associate render clients with
2707 a DRM-Master as they are independent of any graphics server. Besides,
2708 they must work without any running master, anyway.
2709 Drivers must be able to run without a master object if they support
2710 render nodes. If, on the other hand, a driver requires shared state
2711 between clients which is visible to user-space and accessible beyond
2712 open-file boundaries, they cannot support render nodes.
2713 </para>
2714 </sect1>
2715
2660 <!-- External: vblank handling --> 2716 <!-- External: vblank handling -->
2661 2717
2662 <sect1> 2718 <sect1>
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
index c2fc9ec1417e..7a3b49b3cc3b 100644
--- a/Documentation/DocBook/media/v4l/controls.xml
+++ b/Documentation/DocBook/media/v4l/controls.xml
@@ -722,17 +722,22 @@ for more details.</para>
722 </section> 722 </section>
723 723
724 <section id="mpeg-controls"> 724 <section id="mpeg-controls">
725 <title>MPEG Control Reference</title> 725 <title>Codec Control Reference</title>
726 726
727 <para>Below all controls within the MPEG control class are 727 <para>Below all controls within the Codec control class are
728described. First the generic controls, then controls specific for 728described. First the generic controls, then controls specific for
729certain hardware.</para> 729certain hardware.</para>
730 730
731 <para>Note: These controls are applicable to all codecs and
732not just MPEG. The defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG
733as the controls were originally made for MPEG codecs and later
734extended to cover all encoding formats.</para>
735
731 <section> 736 <section>
732 <title>Generic MPEG Controls</title> 737 <title>Generic Codec Controls</title>
733 738
734 <table pgwide="1" frame="none" id="mpeg-control-id"> 739 <table pgwide="1" frame="none" id="mpeg-control-id">
735 <title>MPEG Control IDs</title> 740 <title>Codec Control IDs</title>
736 <tgroup cols="4"> 741 <tgroup cols="4">
737 <colspec colname="c1" colwidth="1*" /> 742 <colspec colname="c1" colwidth="1*" />
738 <colspec colname="c2" colwidth="6*" /> 743 <colspec colname="c2" colwidth="6*" />
@@ -752,7 +757,7 @@ certain hardware.</para>
752 <row> 757 <row>
753 <entry spanname="id"><constant>V4L2_CID_MPEG_CLASS</constant>&nbsp;</entry> 758 <entry spanname="id"><constant>V4L2_CID_MPEG_CLASS</constant>&nbsp;</entry>
754 <entry>class</entry> 759 <entry>class</entry>
755 </row><row><entry spanname="descr">The MPEG class 760 </row><row><entry spanname="descr">The Codec class
756descriptor. Calling &VIDIOC-QUERYCTRL; for this control will return a 761descriptor. Calling &VIDIOC-QUERYCTRL; for this control will return a
757description of this control class. This description can be used as the 762description of this control class. This description can be used as the
758caption of a Tab page in a GUI, for example.</entry> 763caption of a Tab page in a GUI, for example.</entry>
@@ -3009,6 +3014,159 @@ in by the application. 0 = do not insert, 1 = insert packets.</entry>
3009 </tgroup> 3014 </tgroup>
3010 </table> 3015 </table>
3011 </section> 3016 </section>
3017
3018 <section>
3019 <title>VPX Control Reference</title>
3020
3021 <para>The VPX controls include controls for encoding parameters
3022 of VPx video codec.</para>
3023
3024 <table pgwide="1" frame="none" id="vpx-control-id">
3025 <title>VPX Control IDs</title>
3026
3027 <tgroup cols="4">
3028 <colspec colname="c1" colwidth="1*" />
3029 <colspec colname="c2" colwidth="6*" />
3030 <colspec colname="c3" colwidth="2*" />
3031 <colspec colname="c4" colwidth="6*" />
3032 <spanspec namest="c1" nameend="c2" spanname="id" />
3033 <spanspec namest="c2" nameend="c4" spanname="descr" />
3034 <thead>
3035 <row>
3036 <entry spanname="id" align="left">ID</entry>
3037 <entry align="left">Type</entry>
3038 </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry>
3039 </row>
3040 </thead>
3041 <tbody valign="top">
3042 <row><entry></entry></row>
3043
3044 <row><entry></entry></row>
3045 <row id="v4l2-vpx-num-partitions">
3046 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS</constant></entry>
3047 <entry>enum v4l2_vp8_num_partitions</entry>
3048 </row>
3049 <row><entry spanname="descr">The number of token partitions to use in VP8 encoder.
3050Possible values are:</entry>
3051 </row>
3052 <row>
3053 <entrytbl spanname="descr" cols="2">
3054 <tbody valign="top">
3055 <row>
3056 <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION</constant></entry>
3057 <entry>1 coefficient partition</entry>
3058 </row>
3059 <row>
3060 <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS</constant></entry>
3061 <entry>2 coefficient partitions</entry>
3062 </row>
3063 <row>
3064 <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS</constant></entry>
3065 <entry>4 coefficient partitions</entry>
3066 </row>
3067 <row>
3068 <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS</constant></entry>
3069 <entry>8 coefficient partitions</entry>
3070 </row>
3071 </tbody>
3072 </entrytbl>
3073 </row>
3074
3075 <row><entry></entry></row>
3076 <row>
3077 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4</constant></entry>
3078 <entry>boolean</entry>
3079 </row>
3080 <row><entry spanname="descr">Setting this prevents intra 4x4 mode in the intra mode decision.</entry>
3081 </row>
3082
3083 <row><entry></entry></row>
3084 <row id="v4l2-vpx-num-ref-frames">
3085 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES</constant></entry>
3086 <entry>enum v4l2_vp8_num_ref_frames</entry>
3087 </row>
3088 <row><entry spanname="descr">The number of reference pictures for encoding P frames.
3089Possible values are:</entry>
3090 </row>
3091 <row>
3092 <entrytbl spanname="descr" cols="2">
3093 <tbody valign="top">
3094 <row>
3095 <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME</constant></entry>
3096 <entry>Last encoded frame will be searched</entry>
3097 </row>
3098 <row>
3099 <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME</constant></entry>
3100 <entry>Two frames will be searched among the last encoded frame, the golden frame
3101and the alternate reference (altref) frame. The encoder implementation will decide which two are chosen.</entry>
3102 </row>
3103 <row>
3104 <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME</constant></entry>
3105 <entry>The last encoded frame, the golden frame and the altref frame will be searched.</entry>
3106 </row>
3107 </tbody>
3108 </entrytbl>
3109 </row>
3110
3111 <row><entry></entry></row>
3112 <row>
3113 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL</constant></entry>
3114 <entry>integer</entry>
3115 </row>
3116 <row><entry spanname="descr">Indicates the loop filter level. The adjustment of the loop
3117filter level is done via a delta value against a baseline loop filter value.</entry>
3118 </row>
3119
3120 <row><entry></entry></row>
3121 <row>
3122 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS</constant></entry>
3123 <entry>integer</entry>
3124 </row>
3125 <row><entry spanname="descr">This parameter affects the loop filter. Anything above
3126zero weakens the deblocking effect on the loop filter.</entry>
3127 </row>
3128
3129 <row><entry></entry></row>
3130 <row>
3131 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD</constant></entry>
3132 <entry>integer</entry>
3133 </row>
3134 <row><entry spanname="descr">Sets the refresh period for the golden frame. The period is defined
3135in number of frames. For a value of 'n', every nth frame starting from the first key frame will be taken as a golden frame.
3136For eg. for encoding sequence of 0, 1, 2, 3, 4, 5, 6, 7 where the golden frame refresh period is set as 4, the frames
31370, 4, 8 etc will be taken as the golden frames as frame 0 is always a key frame.</entry>
3138 </row>
3139
3140 <row><entry></entry></row>
3141 <row id="v4l2-vpx-golden-frame-sel">
3142 <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL</constant></entry>
3143 <entry>enum v4l2_vp8_golden_frame_sel</entry>
3144 </row>
3145 <row><entry spanname="descr">Selects the golden frame for encoding.
3146Possible values are:</entry>
3147 </row>
3148 <row>
3149 <entrytbl spanname="descr" cols="2">
3150 <tbody valign="top">
3151 <row>
3152 <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV</constant></entry>
3153 <entry>Use the (n-2)th frame as a golden frame, current frame index being 'n'.</entry>
3154 </row>
3155 <row>
3156 <entry><constant>V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD</constant></entry>
3157 <entry>Use the previous specific frame indicated by
3158V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD as a golden frame.</entry>
3159 </row>
3160 </tbody>
3161 </entrytbl>
3162 </row>
3163
3164 <row><entry></entry></row>
3165 </tbody>
3166 </tgroup>
3167 </table>
3168
3169 </section>
3012 </section> 3170 </section>
3013 3171
3014 <section id="camera-controls"> 3172 <section id="camera-controls">
diff --git a/Documentation/DocBook/media/v4l/lirc_device_interface.xml b/Documentation/DocBook/media/v4l/lirc_device_interface.xml
index 8d7eb6bf6312..34cada2ca710 100644
--- a/Documentation/DocBook/media/v4l/lirc_device_interface.xml
+++ b/Documentation/DocBook/media/v4l/lirc_device_interface.xml
@@ -46,7 +46,9 @@ describing an IR signal are read from the chardev.</para>
46values. Pulses and spaces are only marked implicitly by their position. The 46values. Pulses and spaces are only marked implicitly by their position. The
47data must start and end with a pulse, therefore, the data must always include 47data must start and end with a pulse, therefore, the data must always include
48an uneven number of samples. The write function must block until the data has 48an uneven number of samples. The write function must block until the data has
49been transmitted by the hardware.</para> 49been transmitted by the hardware. If more data is provided than the hardware
50can send, the driver returns EINVAL.</para>
51
50</section> 52</section>
51 53
52<section id="lirc_ioctl"> 54<section id="lirc_ioctl">
diff --git a/Documentation/DocBook/media/v4l/pixfmt-nv16m.xml b/Documentation/DocBook/media/v4l/pixfmt-nv16m.xml
new file mode 100644
index 000000000000..c51d5a4cda09
--- /dev/null
+++ b/Documentation/DocBook/media/v4l/pixfmt-nv16m.xml
@@ -0,0 +1,171 @@
1 <refentry>
2 <refmeta>
3 <refentrytitle>V4L2_PIX_FMT_NV16M ('NM16'), V4L2_PIX_FMT_NV61M ('NM61')</refentrytitle>
4 &manvol;
5 </refmeta>
6 <refnamediv>
7 <refname id="V4L2-PIX-FMT-NV16M"><constant>V4L2_PIX_FMT_NV16M</constant></refname>
8 <refname id="V4L2-PIX-FMT-NV61M"><constant>V4L2_PIX_FMT_NV61M</constant></refname>
9 <refpurpose>Variation of <constant>V4L2_PIX_FMT_NV16</constant> and <constant>V4L2_PIX_FMT_NV61</constant> with planes
10 non contiguous in memory. </refpurpose>
11 </refnamediv>
12 <refsect1>
13 <title>Description</title>
14
15 <para>This is a multi-planar, two-plane version of the YUV 4:2:0 format.
16The three components are separated into two sub-images or planes.
17<constant>V4L2_PIX_FMT_NV16M</constant> differs from <constant>V4L2_PIX_FMT_NV16
18</constant> in that the two planes are non-contiguous in memory, i.e. the chroma
19plane does not necessarily immediately follows the luma plane.
20The luminance data occupies the first plane. The Y plane has one byte per pixel.
21In the second plane there is chrominance data with alternating chroma samples.
22The CbCr plane is the same width and height, in bytes, as the Y plane.
23Each CbCr pair belongs to four pixels. For example,
24Cb<subscript>0</subscript>/Cr<subscript>0</subscript> belongs to
25Y'<subscript>00</subscript>, Y'<subscript>01</subscript>,
26Y'<subscript>10</subscript>, Y'<subscript>11</subscript>.
27<constant>V4L2_PIX_FMT_NV61M</constant> is the same as <constant>V4L2_PIX_FMT_NV16M</constant>
28except the Cb and Cr bytes are swapped, the CrCb plane starts with a Cr byte.</para>
29
30 <para><constant>V4L2_PIX_FMT_NV16M</constant> and
31<constant>V4L2_PIX_FMT_NV61M</constant> are intended to be used only in drivers
32and applications that support the multi-planar API, described in
33<xref linkend="planar-apis"/>. </para>
34
35 <example>
36 <title><constant>V4L2_PIX_FMT_NV16M</constant> 4 &times; 4 pixel image</title>
37
38 <formalpara>
39 <title>Byte Order.</title>
40 <para>Each cell is one byte.
41 <informaltable frame="none">
42 <tgroup cols="5" align="center">
43 <colspec align="left" colwidth="2*" />
44 <tbody valign="top">
45 <row>
46 <entry>start0&nbsp;+&nbsp;0:</entry>
47 <entry>Y'<subscript>00</subscript></entry>
48 <entry>Y'<subscript>01</subscript></entry>
49 <entry>Y'<subscript>02</subscript></entry>
50 <entry>Y'<subscript>03</subscript></entry>
51 </row>
52 <row>
53 <entry>start0&nbsp;+&nbsp;4:</entry>
54 <entry>Y'<subscript>10</subscript></entry>
55 <entry>Y'<subscript>11</subscript></entry>
56 <entry>Y'<subscript>12</subscript></entry>
57 <entry>Y'<subscript>13</subscript></entry>
58 </row>
59 <row>
60 <entry>start0&nbsp;+&nbsp;8:</entry>
61 <entry>Y'<subscript>20</subscript></entry>
62 <entry>Y'<subscript>21</subscript></entry>
63 <entry>Y'<subscript>22</subscript></entry>
64 <entry>Y'<subscript>23</subscript></entry>
65 </row>
66 <row>
67 <entry>start0&nbsp;+&nbsp;12:</entry>
68 <entry>Y'<subscript>30</subscript></entry>
69 <entry>Y'<subscript>31</subscript></entry>
70 <entry>Y'<subscript>32</subscript></entry>
71 <entry>Y'<subscript>33</subscript></entry>
72 </row>
73 <row>
74 <entry></entry>
75 </row>
76 <row>
77 <entry>start1&nbsp;+&nbsp;0:</entry>
78 <entry>Cb<subscript>00</subscript></entry>
79 <entry>Cr<subscript>00</subscript></entry>
80 <entry>Cb<subscript>02</subscript></entry>
81 <entry>Cr<subscript>02</subscript></entry>
82 </row>
83 <row>
84 <entry>start1&nbsp;+&nbsp;4:</entry>
85 <entry>Cb<subscript>10</subscript></entry>
86 <entry>Cr<subscript>10</subscript></entry>
87 <entry>Cb<subscript>12</subscript></entry>
88 <entry>Cr<subscript>12</subscript></entry>
89 </row>
90 <row>
91 <entry>start1&nbsp;+&nbsp;8:</entry>
92 <entry>Cb<subscript>20</subscript></entry>
93 <entry>Cr<subscript>20</subscript></entry>
94 <entry>Cb<subscript>22</subscript></entry>
95 <entry>Cr<subscript>22</subscript></entry>
96 </row>
97 <row>
98 <entry>start1&nbsp;+&nbsp;12:</entry>
99 <entry>Cb<subscript>30</subscript></entry>
100 <entry>Cr<subscript>30</subscript></entry>
101 <entry>Cb<subscript>32</subscript></entry>
102 <entry>Cr<subscript>32</subscript></entry>
103 </row>
104 </tbody>
105 </tgroup>
106 </informaltable>
107 </para>
108 </formalpara>
109
110 <formalpara>
111 <title>Color Sample Location.</title>
112 <para>
113 <informaltable frame="none">
114 <tgroup cols="7" align="center">
115 <tbody valign="top">
116 <row>
117 <entry></entry>
118 <entry>0</entry><entry></entry><entry>1</entry><entry></entry>
119 <entry>2</entry><entry></entry><entry>3</entry>
120 </row>
121 <row>
122 <entry>0</entry>
123 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
124 <entry>Y</entry><entry></entry><entry>Y</entry>
125 </row>
126 <row>
127 <entry></entry>
128 <entry></entry><entry>C</entry><entry></entry><entry></entry>
129 <entry></entry><entry>C</entry><entry></entry>
130 </row>
131 <row>
132 <entry>1</entry>
133 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
134 <entry>Y</entry><entry></entry><entry>Y</entry>
135 </row>
136 <row>
137 <entry></entry>
138 <entry></entry><entry>C</entry><entry></entry><entry></entry>
139 <entry></entry><entry>C</entry><entry></entry>
140 </row>
141 <row>
142 <entry></entry>
143 </row>
144 <row>
145 <entry>2</entry>
146 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
147 <entry>Y</entry><entry></entry><entry>Y</entry>
148 </row>
149 <row>
150 <entry></entry>
151 <entry></entry><entry>C</entry><entry></entry><entry></entry>
152 <entry></entry><entry>C</entry><entry></entry>
153 </row>
154 <row>
155 <entry>3</entry>
156 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
157 <entry>Y</entry><entry></entry><entry>Y</entry>
158 </row>
159 <row>
160 <entry></entry>
161 <entry></entry><entry>C</entry><entry></entry><entry></entry>
162 <entry></entry><entry>C</entry><entry></entry>
163 </row>
164 </tbody>
165 </tgroup>
166 </informaltable>
167 </para>
168 </formalpara>
169 </example>
170 </refsect1>
171 </refentry>
diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml
index 99b8d2ad6e4f..72d72bd67d0a 100644
--- a/Documentation/DocBook/media/v4l/pixfmt.xml
+++ b/Documentation/DocBook/media/v4l/pixfmt.xml
@@ -391,9 +391,9 @@ clamp (double x)
391 else return r; 391 else return r;
392} 392}
393 393
394y1 = (255 / 219.0) * (Y1 - 16); 394y1 = (Y1 - 16) / 219.0;
395pb = (255 / 224.0) * (Cb - 128); 395pb = (Cb - 128) / 224.0;
396pr = (255 / 224.0) * (Cr - 128); 396pr = (Cr - 128) / 224.0;
397 397
398r = 1.0 * y1 + 0 * pb + 1.402 * pr; 398r = 1.0 * y1 + 0 * pb + 1.402 * pr;
399g = 1.0 * y1 - 0.344 * pb - 0.714 * pr; 399g = 1.0 * y1 - 0.344 * pb - 0.714 * pr;
@@ -718,6 +718,7 @@ information.</para>
718 &sub-nv12m; 718 &sub-nv12m;
719 &sub-nv12mt; 719 &sub-nv12mt;
720 &sub-nv16; 720 &sub-nv16;
721 &sub-nv16m;
721 &sub-nv24; 722 &sub-nv24;
722 &sub-m420; 723 &sub-m420;
723 </section> 724 </section>
diff --git a/Documentation/DocBook/media/v4l/subdev-formats.xml b/Documentation/DocBook/media/v4l/subdev-formats.xml
index adc61982df7b..f72c1cc93a9b 100644
--- a/Documentation/DocBook/media/v4l/subdev-formats.xml
+++ b/Documentation/DocBook/media/v4l/subdev-formats.xml
@@ -97,31 +97,39 @@
97 <colspec colname="id" align="left" /> 97 <colspec colname="id" align="left" />
98 <colspec colname="code" align="center"/> 98 <colspec colname="code" align="center"/>
99 <colspec colname="bit" /> 99 <colspec colname="bit" />
100 <colspec colnum="4" colname="b23" align="center" /> 100 <colspec colnum="4" colname="b31" align="center" />
101 <colspec colnum="5" colname="b22" align="center" /> 101 <colspec colnum="5" colname="b20" align="center" />
102 <colspec colnum="6" colname="b21" align="center" /> 102 <colspec colnum="6" colname="b29" align="center" />
103 <colspec colnum="7" colname="b20" align="center" /> 103 <colspec colnum="7" colname="b28" align="center" />
104 <colspec colnum="8" colname="b19" align="center" /> 104 <colspec colnum="8" colname="b27" align="center" />
105 <colspec colnum="9" colname="b18" align="center" /> 105 <colspec colnum="9" colname="b26" align="center" />
106 <colspec colnum="10" colname="b17" align="center" /> 106 <colspec colnum="10" colname="b25" align="center" />
107 <colspec colnum="11" colname="b16" align="center" /> 107 <colspec colnum="11" colname="b24" align="center" />
108 <colspec colnum="12" colname="b15" align="center" /> 108 <colspec colnum="12" colname="b23" align="center" />
109 <colspec colnum="13" colname="b14" align="center" /> 109 <colspec colnum="13" colname="b22" align="center" />
110 <colspec colnum="14" colname="b13" align="center" /> 110 <colspec colnum="14" colname="b21" align="center" />
111 <colspec colnum="15" colname="b12" align="center" /> 111 <colspec colnum="15" colname="b20" align="center" />
112 <colspec colnum="16" colname="b11" align="center" /> 112 <colspec colnum="16" colname="b19" align="center" />
113 <colspec colnum="17" colname="b10" align="center" /> 113 <colspec colnum="17" colname="b18" align="center" />
114 <colspec colnum="18" colname="b09" align="center" /> 114 <colspec colnum="18" colname="b17" align="center" />
115 <colspec colnum="19" colname="b08" align="center" /> 115 <colspec colnum="19" colname="b16" align="center" />
116 <colspec colnum="20" colname="b07" align="center" /> 116 <colspec colnum="20" colname="b15" align="center" />
117 <colspec colnum="21" colname="b06" align="center" /> 117 <colspec colnum="21" colname="b14" align="center" />
118 <colspec colnum="22" colname="b05" align="center" /> 118 <colspec colnum="22" colname="b13" align="center" />
119 <colspec colnum="23" colname="b04" align="center" /> 119 <colspec colnum="23" colname="b12" align="center" />
120 <colspec colnum="24" colname="b03" align="center" /> 120 <colspec colnum="24" colname="b11" align="center" />
121 <colspec colnum="25" colname="b02" align="center" /> 121 <colspec colnum="25" colname="b10" align="center" />
122 <colspec colnum="26" colname="b01" align="center" /> 122 <colspec colnum="26" colname="b09" align="center" />
123 <colspec colnum="27" colname="b00" align="center" /> 123 <colspec colnum="27" colname="b08" align="center" />
124 <spanspec namest="b23" nameend="b00" spanname="b0" /> 124 <colspec colnum="28" colname="b07" align="center" />
125 <colspec colnum="29" colname="b06" align="center" />
126 <colspec colnum="30" colname="b05" align="center" />
127 <colspec colnum="31" colname="b04" align="center" />
128 <colspec colnum="32" colname="b03" align="center" />
129 <colspec colnum="33" colname="b02" align="center" />
130 <colspec colnum="34" colname="b01" align="center" />
131 <colspec colnum="35" colname="b00" align="center" />
132 <spanspec namest="b31" nameend="b00" spanname="b0" />
125 <thead> 133 <thead>
126 <row> 134 <row>
127 <entry>Identifier</entry> 135 <entry>Identifier</entry>
@@ -133,6 +141,14 @@
133 <entry></entry> 141 <entry></entry>
134 <entry></entry> 142 <entry></entry>
135 <entry>Bit</entry> 143 <entry>Bit</entry>
144 <entry>31</entry>
145 <entry>30</entry>
146 <entry>29</entry>
147 <entry>28</entry>
148 <entry>27</entry>
149 <entry>26</entry>
150 <entry>25</entry>
151 <entry>24</entry>
136 <entry>23</entry> 152 <entry>23</entry>
137 <entry>22</entry> 153 <entry>22</entry>
138 <entry>21</entry> 154 <entry>21</entry>
@@ -164,7 +180,7 @@
164 <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE</entry> 180 <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE</entry>
165 <entry>0x1001</entry> 181 <entry>0x1001</entry>
166 <entry></entry> 182 <entry></entry>
167 &dash-ent-16; 183 &dash-ent-24;
168 <entry>0</entry> 184 <entry>0</entry>
169 <entry>0</entry> 185 <entry>0</entry>
170 <entry>0</entry> 186 <entry>0</entry>
@@ -178,7 +194,7 @@
178 <entry></entry> 194 <entry></entry>
179 <entry></entry> 195 <entry></entry>
180 <entry></entry> 196 <entry></entry>
181 &dash-ent-16; 197 &dash-ent-24;
182 <entry>g<subscript>3</subscript></entry> 198 <entry>g<subscript>3</subscript></entry>
183 <entry>g<subscript>2</subscript></entry> 199 <entry>g<subscript>2</subscript></entry>
184 <entry>g<subscript>1</subscript></entry> 200 <entry>g<subscript>1</subscript></entry>
@@ -192,7 +208,7 @@
192 <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE</entry> 208 <entry>V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE</entry>
193 <entry>0x1002</entry> 209 <entry>0x1002</entry>
194 <entry></entry> 210 <entry></entry>
195 &dash-ent-16; 211 &dash-ent-24;
196 <entry>g<subscript>3</subscript></entry> 212 <entry>g<subscript>3</subscript></entry>
197 <entry>g<subscript>2</subscript></entry> 213 <entry>g<subscript>2</subscript></entry>
198 <entry>g<subscript>1</subscript></entry> 214 <entry>g<subscript>1</subscript></entry>
@@ -206,7 +222,7 @@
206 <entry></entry> 222 <entry></entry>
207 <entry></entry> 223 <entry></entry>
208 <entry></entry> 224 <entry></entry>
209 &dash-ent-16; 225 &dash-ent-24;
210 <entry>0</entry> 226 <entry>0</entry>
211 <entry>0</entry> 227 <entry>0</entry>
212 <entry>0</entry> 228 <entry>0</entry>
@@ -220,7 +236,7 @@
220 <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE</entry> 236 <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE</entry>
221 <entry>0x1003</entry> 237 <entry>0x1003</entry>
222 <entry></entry> 238 <entry></entry>
223 &dash-ent-16; 239 &dash-ent-24;
224 <entry>0</entry> 240 <entry>0</entry>
225 <entry>r<subscript>4</subscript></entry> 241 <entry>r<subscript>4</subscript></entry>
226 <entry>r<subscript>3</subscript></entry> 242 <entry>r<subscript>3</subscript></entry>
@@ -234,7 +250,7 @@
234 <entry></entry> 250 <entry></entry>
235 <entry></entry> 251 <entry></entry>
236 <entry></entry> 252 <entry></entry>
237 &dash-ent-16; 253 &dash-ent-24;
238 <entry>g<subscript>2</subscript></entry> 254 <entry>g<subscript>2</subscript></entry>
239 <entry>g<subscript>1</subscript></entry> 255 <entry>g<subscript>1</subscript></entry>
240 <entry>g<subscript>0</subscript></entry> 256 <entry>g<subscript>0</subscript></entry>
@@ -248,7 +264,7 @@
248 <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE</entry> 264 <entry>V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE</entry>
249 <entry>0x1004</entry> 265 <entry>0x1004</entry>
250 <entry></entry> 266 <entry></entry>
251 &dash-ent-16; 267 &dash-ent-24;
252 <entry>g<subscript>2</subscript></entry> 268 <entry>g<subscript>2</subscript></entry>
253 <entry>g<subscript>1</subscript></entry> 269 <entry>g<subscript>1</subscript></entry>
254 <entry>g<subscript>0</subscript></entry> 270 <entry>g<subscript>0</subscript></entry>
@@ -262,7 +278,7 @@
262 <entry></entry> 278 <entry></entry>
263 <entry></entry> 279 <entry></entry>
264 <entry></entry> 280 <entry></entry>
265 &dash-ent-16; 281 &dash-ent-24;
266 <entry>0</entry> 282 <entry>0</entry>
267 <entry>r<subscript>4</subscript></entry> 283 <entry>r<subscript>4</subscript></entry>
268 <entry>r<subscript>3</subscript></entry> 284 <entry>r<subscript>3</subscript></entry>
@@ -276,7 +292,7 @@
276 <entry>V4L2_MBUS_FMT_BGR565_2X8_BE</entry> 292 <entry>V4L2_MBUS_FMT_BGR565_2X8_BE</entry>
277 <entry>0x1005</entry> 293 <entry>0x1005</entry>
278 <entry></entry> 294 <entry></entry>
279 &dash-ent-16; 295 &dash-ent-24;
280 <entry>b<subscript>4</subscript></entry> 296 <entry>b<subscript>4</subscript></entry>
281 <entry>b<subscript>3</subscript></entry> 297 <entry>b<subscript>3</subscript></entry>
282 <entry>b<subscript>2</subscript></entry> 298 <entry>b<subscript>2</subscript></entry>
@@ -290,7 +306,7 @@
290 <entry></entry> 306 <entry></entry>
291 <entry></entry> 307 <entry></entry>
292 <entry></entry> 308 <entry></entry>
293 &dash-ent-16; 309 &dash-ent-24;
294 <entry>g<subscript>2</subscript></entry> 310 <entry>g<subscript>2</subscript></entry>
295 <entry>g<subscript>1</subscript></entry> 311 <entry>g<subscript>1</subscript></entry>
296 <entry>g<subscript>0</subscript></entry> 312 <entry>g<subscript>0</subscript></entry>
@@ -304,7 +320,7 @@
304 <entry>V4L2_MBUS_FMT_BGR565_2X8_LE</entry> 320 <entry>V4L2_MBUS_FMT_BGR565_2X8_LE</entry>
305 <entry>0x1006</entry> 321 <entry>0x1006</entry>
306 <entry></entry> 322 <entry></entry>
307 &dash-ent-16; 323 &dash-ent-24;
308 <entry>g<subscript>2</subscript></entry> 324 <entry>g<subscript>2</subscript></entry>
309 <entry>g<subscript>1</subscript></entry> 325 <entry>g<subscript>1</subscript></entry>
310 <entry>g<subscript>0</subscript></entry> 326 <entry>g<subscript>0</subscript></entry>
@@ -318,7 +334,7 @@
318 <entry></entry> 334 <entry></entry>
319 <entry></entry> 335 <entry></entry>
320 <entry></entry> 336 <entry></entry>
321 &dash-ent-16; 337 &dash-ent-24;
322 <entry>b<subscript>4</subscript></entry> 338 <entry>b<subscript>4</subscript></entry>
323 <entry>b<subscript>3</subscript></entry> 339 <entry>b<subscript>3</subscript></entry>
324 <entry>b<subscript>2</subscript></entry> 340 <entry>b<subscript>2</subscript></entry>
@@ -332,7 +348,7 @@
332 <entry>V4L2_MBUS_FMT_RGB565_2X8_BE</entry> 348 <entry>V4L2_MBUS_FMT_RGB565_2X8_BE</entry>
333 <entry>0x1007</entry> 349 <entry>0x1007</entry>
334 <entry></entry> 350 <entry></entry>
335 &dash-ent-16; 351 &dash-ent-24;
336 <entry>r<subscript>4</subscript></entry> 352 <entry>r<subscript>4</subscript></entry>
337 <entry>r<subscript>3</subscript></entry> 353 <entry>r<subscript>3</subscript></entry>
338 <entry>r<subscript>2</subscript></entry> 354 <entry>r<subscript>2</subscript></entry>
@@ -346,7 +362,7 @@
346 <entry></entry> 362 <entry></entry>
347 <entry></entry> 363 <entry></entry>
348 <entry></entry> 364 <entry></entry>
349 &dash-ent-16; 365 &dash-ent-24;
350 <entry>g<subscript>2</subscript></entry> 366 <entry>g<subscript>2</subscript></entry>
351 <entry>g<subscript>1</subscript></entry> 367 <entry>g<subscript>1</subscript></entry>
352 <entry>g<subscript>0</subscript></entry> 368 <entry>g<subscript>0</subscript></entry>
@@ -360,7 +376,7 @@
360 <entry>V4L2_MBUS_FMT_RGB565_2X8_LE</entry> 376 <entry>V4L2_MBUS_FMT_RGB565_2X8_LE</entry>
361 <entry>0x1008</entry> 377 <entry>0x1008</entry>
362 <entry></entry> 378 <entry></entry>
363 &dash-ent-16; 379 &dash-ent-24;
364 <entry>g<subscript>2</subscript></entry> 380 <entry>g<subscript>2</subscript></entry>
365 <entry>g<subscript>1</subscript></entry> 381 <entry>g<subscript>1</subscript></entry>
366 <entry>g<subscript>0</subscript></entry> 382 <entry>g<subscript>0</subscript></entry>
@@ -374,7 +390,7 @@
374 <entry></entry> 390 <entry></entry>
375 <entry></entry> 391 <entry></entry>
376 <entry></entry> 392 <entry></entry>
377 &dash-ent-16; 393 &dash-ent-24;
378 <entry>r<subscript>4</subscript></entry> 394 <entry>r<subscript>4</subscript></entry>
379 <entry>r<subscript>3</subscript></entry> 395 <entry>r<subscript>3</subscript></entry>
380 <entry>r<subscript>2</subscript></entry> 396 <entry>r<subscript>2</subscript></entry>
@@ -388,12 +404,7 @@
388 <entry>V4L2_MBUS_FMT_RGB666_1X18</entry> 404 <entry>V4L2_MBUS_FMT_RGB666_1X18</entry>
389 <entry>0x1009</entry> 405 <entry>0x1009</entry>
390 <entry></entry> 406 <entry></entry>
391 <entry>-</entry> 407 &dash-ent-14;
392 <entry>-</entry>
393 <entry>-</entry>
394 <entry>-</entry>
395 <entry>-</entry>
396 <entry>-</entry>
397 <entry>r<subscript>5</subscript></entry> 408 <entry>r<subscript>5</subscript></entry>
398 <entry>r<subscript>4</subscript></entry> 409 <entry>r<subscript>4</subscript></entry>
399 <entry>r<subscript>3</subscript></entry> 410 <entry>r<subscript>3</subscript></entry>
@@ -417,6 +428,7 @@
417 <entry>V4L2_MBUS_FMT_RGB888_1X24</entry> 428 <entry>V4L2_MBUS_FMT_RGB888_1X24</entry>
418 <entry>0x100a</entry> 429 <entry>0x100a</entry>
419 <entry></entry> 430 <entry></entry>
431 &dash-ent-8;
420 <entry>r<subscript>7</subscript></entry> 432 <entry>r<subscript>7</subscript></entry>
421 <entry>r<subscript>6</subscript></entry> 433 <entry>r<subscript>6</subscript></entry>
422 <entry>r<subscript>5</subscript></entry> 434 <entry>r<subscript>5</subscript></entry>
@@ -446,9 +458,7 @@
446 <entry>V4L2_MBUS_FMT_RGB888_2X12_BE</entry> 458 <entry>V4L2_MBUS_FMT_RGB888_2X12_BE</entry>
447 <entry>0x100b</entry> 459 <entry>0x100b</entry>
448 <entry></entry> 460 <entry></entry>
449 &dash-ent-10; 461 &dash-ent-20;
450 <entry>-</entry>
451 <entry>-</entry>
452 <entry>r<subscript>7</subscript></entry> 462 <entry>r<subscript>7</subscript></entry>
453 <entry>r<subscript>6</subscript></entry> 463 <entry>r<subscript>6</subscript></entry>
454 <entry>r<subscript>5</subscript></entry> 464 <entry>r<subscript>5</subscript></entry>
@@ -466,9 +476,7 @@
466 <entry></entry> 476 <entry></entry>
467 <entry></entry> 477 <entry></entry>
468 <entry></entry> 478 <entry></entry>
469 &dash-ent-10; 479 &dash-ent-20;
470 <entry>-</entry>
471 <entry>-</entry>
472 <entry>g<subscript>3</subscript></entry> 480 <entry>g<subscript>3</subscript></entry>
473 <entry>g<subscript>2</subscript></entry> 481 <entry>g<subscript>2</subscript></entry>
474 <entry>g<subscript>1</subscript></entry> 482 <entry>g<subscript>1</subscript></entry>
@@ -486,9 +494,7 @@
486 <entry>V4L2_MBUS_FMT_RGB888_2X12_LE</entry> 494 <entry>V4L2_MBUS_FMT_RGB888_2X12_LE</entry>
487 <entry>0x100c</entry> 495 <entry>0x100c</entry>
488 <entry></entry> 496 <entry></entry>
489 &dash-ent-10; 497 &dash-ent-20;
490 <entry>-</entry>
491 <entry>-</entry>
492 <entry>g<subscript>3</subscript></entry> 498 <entry>g<subscript>3</subscript></entry>
493 <entry>g<subscript>2</subscript></entry> 499 <entry>g<subscript>2</subscript></entry>
494 <entry>g<subscript>1</subscript></entry> 500 <entry>g<subscript>1</subscript></entry>
@@ -506,9 +512,7 @@
506 <entry></entry> 512 <entry></entry>
507 <entry></entry> 513 <entry></entry>
508 <entry></entry> 514 <entry></entry>
509 &dash-ent-10; 515 &dash-ent-20;
510 <entry>-</entry>
511 <entry>-</entry>
512 <entry>r<subscript>7</subscript></entry> 516 <entry>r<subscript>7</subscript></entry>
513 <entry>r<subscript>6</subscript></entry> 517 <entry>r<subscript>6</subscript></entry>
514 <entry>r<subscript>5</subscript></entry> 518 <entry>r<subscript>5</subscript></entry>
@@ -522,6 +526,43 @@
522 <entry>g<subscript>5</subscript></entry> 526 <entry>g<subscript>5</subscript></entry>
523 <entry>g<subscript>4</subscript></entry> 527 <entry>g<subscript>4</subscript></entry>
524 </row> 528 </row>
529 <row id="V4L2-MBUS-FMT-ARGB888-1X32">
530 <entry>V4L2_MBUS_FMT_ARGB888_1X32</entry>
531 <entry>0x100d</entry>
532 <entry></entry>
533 <entry>a<subscript>7</subscript></entry>
534 <entry>a<subscript>6</subscript></entry>
535 <entry>a<subscript>5</subscript></entry>
536 <entry>a<subscript>4</subscript></entry>
537 <entry>a<subscript>3</subscript></entry>
538 <entry>a<subscript>2</subscript></entry>
539 <entry>a<subscript>1</subscript></entry>
540 <entry>a<subscript>0</subscript></entry>
541 <entry>r<subscript>7</subscript></entry>
542 <entry>r<subscript>6</subscript></entry>
543 <entry>r<subscript>5</subscript></entry>
544 <entry>r<subscript>4</subscript></entry>
545 <entry>r<subscript>3</subscript></entry>
546 <entry>r<subscript>2</subscript></entry>
547 <entry>r<subscript>1</subscript></entry>
548 <entry>r<subscript>0</subscript></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 <entry>b<subscript>7</subscript></entry>
558 <entry>b<subscript>6</subscript></entry>
559 <entry>b<subscript>5</subscript></entry>
560 <entry>b<subscript>4</subscript></entry>
561 <entry>b<subscript>3</subscript></entry>
562 <entry>b<subscript>2</subscript></entry>
563 <entry>b<subscript>1</subscript></entry>
564 <entry>b<subscript>0</subscript></entry>
565 </row>
525 </tbody> 566 </tbody>
526 </tgroup> 567 </tgroup>
527 </table> 568 </table>
@@ -1149,6 +1190,7 @@
1149 <listitem><para>y<subscript>x</subscript> for luma component bit number x</para></listitem> 1190 <listitem><para>y<subscript>x</subscript> for luma component bit number x</para></listitem>
1150 <listitem><para>u<subscript>x</subscript> for blue chroma component bit number x</para></listitem> 1191 <listitem><para>u<subscript>x</subscript> for blue chroma component bit number x</para></listitem>
1151 <listitem><para>v<subscript>x</subscript> for red chroma component bit number x</para></listitem> 1192 <listitem><para>v<subscript>x</subscript> for red chroma component bit number x</para></listitem>
1193 <listitem><para>a<subscript>x</subscript> for alpha component bit number x</para></listitem>
1152 <listitem><para>- for non-available bits (for positions higher than the bus width)</para></listitem> 1194 <listitem><para>- for non-available bits (for positions higher than the bus width)</para></listitem>
1153 <listitem><para>d for dummy bits</para></listitem> 1195 <listitem><para>d for dummy bits</para></listitem>
1154 </itemizedlist> 1196 </itemizedlist>
@@ -1159,37 +1201,39 @@
1159 <colspec colname="id" align="left" /> 1201 <colspec colname="id" align="left" />
1160 <colspec colname="code" align="center"/> 1202 <colspec colname="code" align="center"/>
1161 <colspec colname="bit" /> 1203 <colspec colname="bit" />
1162 <colspec colnum="4" colname="b29" align="center" /> 1204 <colspec colnum="4" colname="b31" align="center" />
1163 <colspec colnum="5" colname="b28" align="center" /> 1205 <colspec colnum="5" colname="b20" align="center" />
1164 <colspec colnum="6" colname="b27" align="center" /> 1206 <colspec colnum="6" colname="b29" align="center" />
1165 <colspec colnum="7" colname="b26" align="center" /> 1207 <colspec colnum="7" colname="b28" align="center" />
1166 <colspec colnum="8" colname="b25" align="center" /> 1208 <colspec colnum="8" colname="b27" align="center" />
1167 <colspec colnum="9" colname="b24" align="center" /> 1209 <colspec colnum="9" colname="b26" align="center" />
1168 <colspec colnum="10" colname="b23" align="center" /> 1210 <colspec colnum="10" colname="b25" align="center" />
1169 <colspec colnum="11" colname="b22" align="center" /> 1211 <colspec colnum="11" colname="b24" align="center" />
1170 <colspec colnum="12" colname="b21" align="center" /> 1212 <colspec colnum="12" colname="b23" align="center" />
1171 <colspec colnum="13" colname="b20" align="center" /> 1213 <colspec colnum="13" colname="b22" align="center" />
1172 <colspec colnum="14" colname="b19" align="center" /> 1214 <colspec colnum="14" colname="b21" align="center" />
1173 <colspec colnum="15" colname="b18" align="center" /> 1215 <colspec colnum="15" colname="b20" align="center" />
1174 <colspec colnum="16" colname="b17" align="center" /> 1216 <colspec colnum="16" colname="b19" align="center" />
1175 <colspec colnum="17" colname="b16" align="center" /> 1217 <colspec colnum="17" colname="b18" align="center" />
1176 <colspec colnum="18" colname="b15" align="center" /> 1218 <colspec colnum="18" colname="b17" align="center" />
1177 <colspec colnum="19" colname="b14" align="center" /> 1219 <colspec colnum="19" colname="b16" align="center" />
1178 <colspec colnum="20" colname="b13" align="center" /> 1220 <colspec colnum="20" colname="b15" align="center" />
1179 <colspec colnum="21" colname="b12" align="center" /> 1221 <colspec colnum="21" colname="b14" align="center" />
1180 <colspec colnum="22" colname="b11" align="center" /> 1222 <colspec colnum="22" colname="b13" align="center" />
1181 <colspec colnum="23" colname="b10" align="center" /> 1223 <colspec colnum="23" colname="b12" align="center" />
1182 <colspec colnum="24" colname="b09" align="center" /> 1224 <colspec colnum="24" colname="b11" align="center" />
1183 <colspec colnum="25" colname="b08" align="center" /> 1225 <colspec colnum="25" colname="b10" align="center" />
1184 <colspec colnum="26" colname="b07" align="center" /> 1226 <colspec colnum="26" colname="b09" align="center" />
1185 <colspec colnum="27" colname="b06" align="center" /> 1227 <colspec colnum="27" colname="b08" align="center" />
1186 <colspec colnum="28" colname="b05" align="center" /> 1228 <colspec colnum="28" colname="b07" align="center" />
1187 <colspec colnum="29" colname="b04" align="center" /> 1229 <colspec colnum="29" colname="b06" align="center" />
1188 <colspec colnum="30" colname="b03" align="center" /> 1230 <colspec colnum="30" colname="b05" align="center" />
1189 <colspec colnum="31" colname="b02" align="center" /> 1231 <colspec colnum="31" colname="b04" align="center" />
1190 <colspec colnum="32" colname="b01" align="center" /> 1232 <colspec colnum="32" colname="b03" align="center" />
1191 <colspec colnum="33" colname="b00" align="center" /> 1233 <colspec colnum="33" colname="b02" align="center" />
1192 <spanspec namest="b29" nameend="b00" spanname="b0" /> 1234 <colspec colnum="34" colname="b01" align="center" />
1235 <colspec colnum="35" colname="b00" align="center" />
1236 <spanspec namest="b31" nameend="b00" spanname="b0" />
1193 <thead> 1237 <thead>
1194 <row> 1238 <row>
1195 <entry>Identifier</entry> 1239 <entry>Identifier</entry>
@@ -1201,6 +1245,8 @@
1201 <entry></entry> 1245 <entry></entry>
1202 <entry></entry> 1246 <entry></entry>
1203 <entry>Bit</entry> 1247 <entry>Bit</entry>
1248 <entry>31</entry>
1249 <entry>30</entry>
1204 <entry>29</entry> 1250 <entry>29</entry>
1205 <entry>28</entry> 1251 <entry>28</entry>
1206 <entry>27</entry> 1252 <entry>27</entry>
@@ -1238,10 +1284,7 @@
1238 <entry>V4L2_MBUS_FMT_Y8_1X8</entry> 1284 <entry>V4L2_MBUS_FMT_Y8_1X8</entry>
1239 <entry>0x2001</entry> 1285 <entry>0x2001</entry>
1240 <entry></entry> 1286 <entry></entry>
1241 &dash-ent-10; 1287 &dash-ent-24;
1242 &dash-ent-10;
1243 <entry>-</entry>
1244 <entry>-</entry>
1245 <entry>y<subscript>7</subscript></entry> 1288 <entry>y<subscript>7</subscript></entry>
1246 <entry>y<subscript>6</subscript></entry> 1289 <entry>y<subscript>6</subscript></entry>
1247 <entry>y<subscript>5</subscript></entry> 1290 <entry>y<subscript>5</subscript></entry>
@@ -1255,18 +1298,7 @@
1255 <entry>V4L2_MBUS_FMT_UV8_1X8</entry> 1298 <entry>V4L2_MBUS_FMT_UV8_1X8</entry>
1256 <entry>0x2015</entry> 1299 <entry>0x2015</entry>
1257 <entry></entry> 1300 <entry></entry>
1258 <entry>-</entry> 1301 &dash-ent-24;
1259 <entry>-</entry>
1260 <entry>-</entry>
1261 <entry>-</entry>
1262 <entry>-</entry>
1263 <entry>-</entry>
1264 <entry>-</entry>
1265 <entry>-</entry>
1266 <entry>-</entry>
1267 <entry>-</entry>
1268 <entry>-</entry>
1269 <entry>-</entry>
1270 <entry>u<subscript>7</subscript></entry> 1302 <entry>u<subscript>7</subscript></entry>
1271 <entry>u<subscript>6</subscript></entry> 1303 <entry>u<subscript>6</subscript></entry>
1272 <entry>u<subscript>5</subscript></entry> 1304 <entry>u<subscript>5</subscript></entry>
@@ -1280,18 +1312,7 @@
1280 <entry></entry> 1312 <entry></entry>
1281 <entry></entry> 1313 <entry></entry>
1282 <entry></entry> 1314 <entry></entry>
1283 <entry>-</entry> 1315 &dash-ent-24;
1284 <entry>-</entry>
1285 <entry>-</entry>
1286 <entry>-</entry>
1287 <entry>-</entry>
1288 <entry>-</entry>
1289 <entry>-</entry>
1290 <entry>-</entry>
1291 <entry>-</entry>
1292 <entry>-</entry>
1293 <entry>-</entry>
1294 <entry>-</entry>
1295 <entry>v<subscript>7</subscript></entry> 1316 <entry>v<subscript>7</subscript></entry>
1296 <entry>v<subscript>6</subscript></entry> 1317 <entry>v<subscript>6</subscript></entry>
1297 <entry>v<subscript>5</subscript></entry> 1318 <entry>v<subscript>5</subscript></entry>
@@ -1305,10 +1326,7 @@
1305 <entry>V4L2_MBUS_FMT_UYVY8_1_5X8</entry> 1326 <entry>V4L2_MBUS_FMT_UYVY8_1_5X8</entry>
1306 <entry>0x2002</entry> 1327 <entry>0x2002</entry>
1307 <entry></entry> 1328 <entry></entry>
1308 &dash-ent-10; 1329 &dash-ent-24;
1309 &dash-ent-10;
1310 <entry>-</entry>
1311 <entry>-</entry>
1312 <entry>u<subscript>7</subscript></entry> 1330 <entry>u<subscript>7</subscript></entry>
1313 <entry>u<subscript>6</subscript></entry> 1331 <entry>u<subscript>6</subscript></entry>
1314 <entry>u<subscript>5</subscript></entry> 1332 <entry>u<subscript>5</subscript></entry>
@@ -1322,10 +1340,7 @@
1322 <entry></entry> 1340 <entry></entry>
1323 <entry></entry> 1341 <entry></entry>
1324 <entry></entry> 1342 <entry></entry>
1325 &dash-ent-10; 1343 &dash-ent-24;
1326 &dash-ent-10;
1327 <entry>-</entry>
1328 <entry>-</entry>
1329 <entry>y<subscript>7</subscript></entry> 1344 <entry>y<subscript>7</subscript></entry>
1330 <entry>y<subscript>6</subscript></entry> 1345 <entry>y<subscript>6</subscript></entry>
1331 <entry>y<subscript>5</subscript></entry> 1346 <entry>y<subscript>5</subscript></entry>
@@ -1339,10 +1354,7 @@
1339 <entry></entry> 1354 <entry></entry>
1340 <entry></entry> 1355 <entry></entry>
1341 <entry></entry> 1356 <entry></entry>
1342 &dash-ent-10; 1357 &dash-ent-24;
1343 &dash-ent-10;
1344 <entry>-</entry>
1345 <entry>-</entry>
1346 <entry>y<subscript>7</subscript></entry> 1358 <entry>y<subscript>7</subscript></entry>
1347 <entry>y<subscript>6</subscript></entry> 1359 <entry>y<subscript>6</subscript></entry>
1348 <entry>y<subscript>5</subscript></entry> 1360 <entry>y<subscript>5</subscript></entry>
@@ -1356,10 +1368,7 @@
1356 <entry></entry> 1368 <entry></entry>
1357 <entry></entry> 1369 <entry></entry>
1358 <entry></entry> 1370 <entry></entry>
1359 &dash-ent-10; 1371 &dash-ent-24;
1360 &dash-ent-10;
1361 <entry>-</entry>
1362 <entry>-</entry>
1363 <entry>v<subscript>7</subscript></entry> 1372 <entry>v<subscript>7</subscript></entry>
1364 <entry>v<subscript>6</subscript></entry> 1373 <entry>v<subscript>6</subscript></entry>
1365 <entry>v<subscript>5</subscript></entry> 1374 <entry>v<subscript>5</subscript></entry>
@@ -1373,10 +1382,7 @@
1373 <entry></entry> 1382 <entry></entry>
1374 <entry></entry> 1383 <entry></entry>
1375 <entry></entry> 1384 <entry></entry>
1376 &dash-ent-10; 1385 &dash-ent-24;
1377 &dash-ent-10;
1378 <entry>-</entry>
1379 <entry>-</entry>
1380 <entry>y<subscript>7</subscript></entry> 1386 <entry>y<subscript>7</subscript></entry>
1381 <entry>y<subscript>6</subscript></entry> 1387 <entry>y<subscript>6</subscript></entry>
1382 <entry>y<subscript>5</subscript></entry> 1388 <entry>y<subscript>5</subscript></entry>
@@ -1390,10 +1396,7 @@
1390 <entry></entry> 1396 <entry></entry>
1391 <entry></entry> 1397 <entry></entry>
1392 <entry></entry> 1398 <entry></entry>
1393 &dash-ent-10; 1399 &dash-ent-24;
1394 &dash-ent-10;
1395 <entry>-</entry>
1396 <entry>-</entry>
1397 <entry>y<subscript>7</subscript></entry> 1400 <entry>y<subscript>7</subscript></entry>
1398 <entry>y<subscript>6</subscript></entry> 1401 <entry>y<subscript>6</subscript></entry>
1399 <entry>y<subscript>5</subscript></entry> 1402 <entry>y<subscript>5</subscript></entry>
@@ -1407,10 +1410,7 @@
1407 <entry>V4L2_MBUS_FMT_VYUY8_1_5X8</entry> 1410 <entry>V4L2_MBUS_FMT_VYUY8_1_5X8</entry>
1408 <entry>0x2003</entry> 1411 <entry>0x2003</entry>
1409 <entry></entry> 1412 <entry></entry>
1410 &dash-ent-10; 1413 &dash-ent-24;
1411 &dash-ent-10;
1412 <entry>-</entry>
1413 <entry>-</entry>
1414 <entry>v<subscript>7</subscript></entry> 1414 <entry>v<subscript>7</subscript></entry>
1415 <entry>v<subscript>6</subscript></entry> 1415 <entry>v<subscript>6</subscript></entry>
1416 <entry>v<subscript>5</subscript></entry> 1416 <entry>v<subscript>5</subscript></entry>
@@ -1424,10 +1424,7 @@
1424 <entry></entry> 1424 <entry></entry>
1425 <entry></entry> 1425 <entry></entry>
1426 <entry></entry> 1426 <entry></entry>
1427 &dash-ent-10; 1427 &dash-ent-24;
1428 &dash-ent-10;
1429 <entry>-</entry>
1430 <entry>-</entry>
1431 <entry>y<subscript>7</subscript></entry> 1428 <entry>y<subscript>7</subscript></entry>
1432 <entry>y<subscript>6</subscript></entry> 1429 <entry>y<subscript>6</subscript></entry>
1433 <entry>y<subscript>5</subscript></entry> 1430 <entry>y<subscript>5</subscript></entry>
@@ -1441,10 +1438,7 @@
1441 <entry></entry> 1438 <entry></entry>
1442 <entry></entry> 1439 <entry></entry>
1443 <entry></entry> 1440 <entry></entry>
1444 &dash-ent-10; 1441 &dash-ent-24;
1445 &dash-ent-10;
1446 <entry>-</entry>
1447 <entry>-</entry>
1448 <entry>y<subscript>7</subscript></entry> 1442 <entry>y<subscript>7</subscript></entry>
1449 <entry>y<subscript>6</subscript></entry> 1443 <entry>y<subscript>6</subscript></entry>
1450 <entry>y<subscript>5</subscript></entry> 1444 <entry>y<subscript>5</subscript></entry>
@@ -1458,10 +1452,7 @@
1458 <entry></entry> 1452 <entry></entry>
1459 <entry></entry> 1453 <entry></entry>
1460 <entry></entry> 1454 <entry></entry>
1461 &dash-ent-10; 1455 &dash-ent-24;
1462 &dash-ent-10;
1463 <entry>-</entry>
1464 <entry>-</entry>
1465 <entry>u<subscript>7</subscript></entry> 1456 <entry>u<subscript>7</subscript></entry>
1466 <entry>u<subscript>6</subscript></entry> 1457 <entry>u<subscript>6</subscript></entry>
1467 <entry>u<subscript>5</subscript></entry> 1458 <entry>u<subscript>5</subscript></entry>
@@ -1475,10 +1466,7 @@
1475 <entry></entry> 1466 <entry></entry>
1476 <entry></entry> 1467 <entry></entry>
1477 <entry></entry> 1468 <entry></entry>
1478 &dash-ent-10; 1469 &dash-ent-24;
1479 &dash-ent-10;
1480 <entry>-</entry>
1481 <entry>-</entry>
1482 <entry>y<subscript>7</subscript></entry> 1470 <entry>y<subscript>7</subscript></entry>
1483 <entry>y<subscript>6</subscript></entry> 1471 <entry>y<subscript>6</subscript></entry>
1484 <entry>y<subscript>5</subscript></entry> 1472 <entry>y<subscript>5</subscript></entry>
@@ -1492,10 +1480,7 @@
1492 <entry></entry> 1480 <entry></entry>
1493 <entry></entry> 1481 <entry></entry>
1494 <entry></entry> 1482 <entry></entry>
1495 &dash-ent-10; 1483 &dash-ent-24;
1496 &dash-ent-10;
1497 <entry>-</entry>
1498 <entry>-</entry>
1499 <entry>y<subscript>7</subscript></entry> 1484 <entry>y<subscript>7</subscript></entry>
1500 <entry>y<subscript>6</subscript></entry> 1485 <entry>y<subscript>6</subscript></entry>
1501 <entry>y<subscript>5</subscript></entry> 1486 <entry>y<subscript>5</subscript></entry>
@@ -1509,10 +1494,7 @@
1509 <entry>V4L2_MBUS_FMT_YUYV8_1_5X8</entry> 1494 <entry>V4L2_MBUS_FMT_YUYV8_1_5X8</entry>
1510 <entry>0x2004</entry> 1495 <entry>0x2004</entry>
1511 <entry></entry> 1496 <entry></entry>
1512 &dash-ent-10; 1497 &dash-ent-24;
1513 &dash-ent-10;
1514 <entry>-</entry>
1515 <entry>-</entry>
1516 <entry>y<subscript>7</subscript></entry> 1498 <entry>y<subscript>7</subscript></entry>
1517 <entry>y<subscript>6</subscript></entry> 1499 <entry>y<subscript>6</subscript></entry>
1518 <entry>y<subscript>5</subscript></entry> 1500 <entry>y<subscript>5</subscript></entry>
@@ -1526,10 +1508,7 @@
1526 <entry></entry> 1508 <entry></entry>
1527 <entry></entry> 1509 <entry></entry>
1528 <entry></entry> 1510 <entry></entry>
1529 &dash-ent-10; 1511 &dash-ent-24;
1530 &dash-ent-10;
1531 <entry>-</entry>
1532 <entry>-</entry>
1533 <entry>y<subscript>7</subscript></entry> 1512 <entry>y<subscript>7</subscript></entry>
1534 <entry>y<subscript>6</subscript></entry> 1513 <entry>y<subscript>6</subscript></entry>
1535 <entry>y<subscript>5</subscript></entry> 1514 <entry>y<subscript>5</subscript></entry>
@@ -1543,10 +1522,7 @@
1543 <entry></entry> 1522 <entry></entry>
1544 <entry></entry> 1523 <entry></entry>
1545 <entry></entry> 1524 <entry></entry>
1546 &dash-ent-10; 1525 &dash-ent-24;
1547 &dash-ent-10;
1548 <entry>-</entry>
1549 <entry>-</entry>
1550 <entry>u<subscript>7</subscript></entry> 1526 <entry>u<subscript>7</subscript></entry>
1551 <entry>u<subscript>6</subscript></entry> 1527 <entry>u<subscript>6</subscript></entry>
1552 <entry>u<subscript>5</subscript></entry> 1528 <entry>u<subscript>5</subscript></entry>
@@ -1560,10 +1536,7 @@
1560 <entry></entry> 1536 <entry></entry>
1561 <entry></entry> 1537 <entry></entry>
1562 <entry></entry> 1538 <entry></entry>
1563 &dash-ent-10; 1539 &dash-ent-24;
1564 &dash-ent-10;
1565 <entry>-</entry>
1566 <entry>-</entry>
1567 <entry>y<subscript>7</subscript></entry> 1540 <entry>y<subscript>7</subscript></entry>
1568 <entry>y<subscript>6</subscript></entry> 1541 <entry>y<subscript>6</subscript></entry>
1569 <entry>y<subscript>5</subscript></entry> 1542 <entry>y<subscript>5</subscript></entry>
@@ -1577,10 +1550,7 @@
1577 <entry></entry> 1550 <entry></entry>
1578 <entry></entry> 1551 <entry></entry>
1579 <entry></entry> 1552 <entry></entry>
1580 &dash-ent-10; 1553 &dash-ent-24;
1581 &dash-ent-10;
1582 <entry>-</entry>
1583 <entry>-</entry>
1584 <entry>y<subscript>7</subscript></entry> 1554 <entry>y<subscript>7</subscript></entry>
1585 <entry>y<subscript>6</subscript></entry> 1555 <entry>y<subscript>6</subscript></entry>
1586 <entry>y<subscript>5</subscript></entry> 1556 <entry>y<subscript>5</subscript></entry>
@@ -1594,10 +1564,7 @@
1594 <entry></entry> 1564 <entry></entry>
1595 <entry></entry> 1565 <entry></entry>
1596 <entry></entry> 1566 <entry></entry>
1597 &dash-ent-10; 1567 &dash-ent-24;
1598 &dash-ent-10;
1599 <entry>-</entry>
1600 <entry>-</entry>
1601 <entry>v<subscript>7</subscript></entry> 1568 <entry>v<subscript>7</subscript></entry>
1602 <entry>v<subscript>6</subscript></entry> 1569 <entry>v<subscript>6</subscript></entry>
1603 <entry>v<subscript>5</subscript></entry> 1570 <entry>v<subscript>5</subscript></entry>
@@ -1611,10 +1578,7 @@
1611 <entry>V4L2_MBUS_FMT_YVYU8_1_5X8</entry> 1578 <entry>V4L2_MBUS_FMT_YVYU8_1_5X8</entry>
1612 <entry>0x2005</entry> 1579 <entry>0x2005</entry>
1613 <entry></entry> 1580 <entry></entry>
1614 &dash-ent-10; 1581 &dash-ent-24;
1615 &dash-ent-10;
1616 <entry>-</entry>
1617 <entry>-</entry>
1618 <entry>y<subscript>7</subscript></entry> 1582 <entry>y<subscript>7</subscript></entry>
1619 <entry>y<subscript>6</subscript></entry> 1583 <entry>y<subscript>6</subscript></entry>
1620 <entry>y<subscript>5</subscript></entry> 1584 <entry>y<subscript>5</subscript></entry>
@@ -1628,10 +1592,7 @@
1628 <entry></entry> 1592 <entry></entry>
1629 <entry></entry> 1593 <entry></entry>
1630 <entry></entry> 1594 <entry></entry>
1631 &dash-ent-10; 1595 &dash-ent-24;
1632 &dash-ent-10;
1633 <entry>-</entry>
1634 <entry>-</entry>
1635 <entry>y<subscript>7</subscript></entry> 1596 <entry>y<subscript>7</subscript></entry>
1636 <entry>y<subscript>6</subscript></entry> 1597 <entry>y<subscript>6</subscript></entry>
1637 <entry>y<subscript>5</subscript></entry> 1598 <entry>y<subscript>5</subscript></entry>
@@ -1645,10 +1606,7 @@
1645 <entry></entry> 1606 <entry></entry>
1646 <entry></entry> 1607 <entry></entry>
1647 <entry></entry> 1608 <entry></entry>
1648 &dash-ent-10; 1609 &dash-ent-24;
1649 &dash-ent-10;
1650 <entry>-</entry>
1651 <entry>-</entry>
1652 <entry>v<subscript>7</subscript></entry> 1610 <entry>v<subscript>7</subscript></entry>
1653 <entry>v<subscript>6</subscript></entry> 1611 <entry>v<subscript>6</subscript></entry>
1654 <entry>v<subscript>5</subscript></entry> 1612 <entry>v<subscript>5</subscript></entry>
@@ -1662,10 +1620,7 @@
1662 <entry></entry> 1620 <entry></entry>
1663 <entry></entry> 1621 <entry></entry>
1664 <entry></entry> 1622 <entry></entry>
1665 &dash-ent-10; 1623 &dash-ent-24;
1666 &dash-ent-10;
1667 <entry>-</entry>
1668 <entry>-</entry>
1669 <entry>y<subscript>7</subscript></entry> 1624 <entry>y<subscript>7</subscript></entry>
1670 <entry>y<subscript>6</subscript></entry> 1625 <entry>y<subscript>6</subscript></entry>
1671 <entry>y<subscript>5</subscript></entry> 1626 <entry>y<subscript>5</subscript></entry>
@@ -1679,10 +1634,7 @@
1679 <entry></entry> 1634 <entry></entry>
1680 <entry></entry> 1635 <entry></entry>
1681 <entry></entry> 1636 <entry></entry>
1682 &dash-ent-10; 1637 &dash-ent-24;
1683 &dash-ent-10;
1684 <entry>-</entry>
1685 <entry>-</entry>
1686 <entry>y<subscript>7</subscript></entry> 1638 <entry>y<subscript>7</subscript></entry>
1687 <entry>y<subscript>6</subscript></entry> 1639 <entry>y<subscript>6</subscript></entry>
1688 <entry>y<subscript>5</subscript></entry> 1640 <entry>y<subscript>5</subscript></entry>
@@ -1696,10 +1648,7 @@
1696 <entry></entry> 1648 <entry></entry>
1697 <entry></entry> 1649 <entry></entry>
1698 <entry></entry> 1650 <entry></entry>
1699 &dash-ent-10; 1651 &dash-ent-24;
1700 &dash-ent-10;
1701 <entry>-</entry>
1702 <entry>-</entry>
1703 <entry>u<subscript>7</subscript></entry> 1652 <entry>u<subscript>7</subscript></entry>
1704 <entry>u<subscript>6</subscript></entry> 1653 <entry>u<subscript>6</subscript></entry>
1705 <entry>u<subscript>5</subscript></entry> 1654 <entry>u<subscript>5</subscript></entry>
@@ -1713,10 +1662,7 @@
1713 <entry>V4L2_MBUS_FMT_UYVY8_2X8</entry> 1662 <entry>V4L2_MBUS_FMT_UYVY8_2X8</entry>
1714 <entry>0x2006</entry> 1663 <entry>0x2006</entry>
1715 <entry></entry> 1664 <entry></entry>
1716 &dash-ent-10; 1665 &dash-ent-24;
1717 &dash-ent-10;
1718 <entry>-</entry>
1719 <entry>-</entry>
1720 <entry>u<subscript>7</subscript></entry> 1666 <entry>u<subscript>7</subscript></entry>
1721 <entry>u<subscript>6</subscript></entry> 1667 <entry>u<subscript>6</subscript></entry>
1722 <entry>u<subscript>5</subscript></entry> 1668 <entry>u<subscript>5</subscript></entry>
@@ -1730,10 +1676,7 @@
1730 <entry></entry> 1676 <entry></entry>
1731 <entry></entry> 1677 <entry></entry>
1732 <entry></entry> 1678 <entry></entry>
1733 &dash-ent-10; 1679 &dash-ent-24;
1734 &dash-ent-10;
1735 <entry>-</entry>
1736 <entry>-</entry>
1737 <entry>y<subscript>7</subscript></entry> 1680 <entry>y<subscript>7</subscript></entry>
1738 <entry>y<subscript>6</subscript></entry> 1681 <entry>y<subscript>6</subscript></entry>
1739 <entry>y<subscript>5</subscript></entry> 1682 <entry>y<subscript>5</subscript></entry>
@@ -1747,10 +1690,7 @@
1747 <entry></entry> 1690 <entry></entry>
1748 <entry></entry> 1691 <entry></entry>
1749 <entry></entry> 1692 <entry></entry>
1750 &dash-ent-10; 1693 &dash-ent-24;
1751 &dash-ent-10;
1752 <entry>-</entry>
1753 <entry>-</entry>
1754 <entry>v<subscript>7</subscript></entry> 1694 <entry>v<subscript>7</subscript></entry>
1755 <entry>v<subscript>6</subscript></entry> 1695 <entry>v<subscript>6</subscript></entry>
1756 <entry>v<subscript>5</subscript></entry> 1696 <entry>v<subscript>5</subscript></entry>
@@ -1764,10 +1704,7 @@
1764 <entry></entry> 1704 <entry></entry>
1765 <entry></entry> 1705 <entry></entry>
1766 <entry></entry> 1706 <entry></entry>
1767 &dash-ent-10; 1707 &dash-ent-24;
1768 &dash-ent-10;
1769 <entry>-</entry>
1770 <entry>-</entry>
1771 <entry>y<subscript>7</subscript></entry> 1708 <entry>y<subscript>7</subscript></entry>
1772 <entry>y<subscript>6</subscript></entry> 1709 <entry>y<subscript>6</subscript></entry>
1773 <entry>y<subscript>5</subscript></entry> 1710 <entry>y<subscript>5</subscript></entry>
@@ -1781,10 +1718,7 @@
1781 <entry>V4L2_MBUS_FMT_VYUY8_2X8</entry> 1718 <entry>V4L2_MBUS_FMT_VYUY8_2X8</entry>
1782 <entry>0x2007</entry> 1719 <entry>0x2007</entry>
1783 <entry></entry> 1720 <entry></entry>
1784 &dash-ent-10; 1721 &dash-ent-24;
1785 &dash-ent-10;
1786 <entry>-</entry>
1787 <entry>-</entry>
1788 <entry>v<subscript>7</subscript></entry> 1722 <entry>v<subscript>7</subscript></entry>
1789 <entry>v<subscript>6</subscript></entry> 1723 <entry>v<subscript>6</subscript></entry>
1790 <entry>v<subscript>5</subscript></entry> 1724 <entry>v<subscript>5</subscript></entry>
@@ -1798,10 +1732,7 @@
1798 <entry></entry> 1732 <entry></entry>
1799 <entry></entry> 1733 <entry></entry>
1800 <entry></entry> 1734 <entry></entry>
1801 &dash-ent-10; 1735 &dash-ent-24;
1802 &dash-ent-10;
1803 <entry>-</entry>
1804 <entry>-</entry>
1805 <entry>y<subscript>7</subscript></entry> 1736 <entry>y<subscript>7</subscript></entry>
1806 <entry>y<subscript>6</subscript></entry> 1737 <entry>y<subscript>6</subscript></entry>
1807 <entry>y<subscript>5</subscript></entry> 1738 <entry>y<subscript>5</subscript></entry>
@@ -1815,10 +1746,7 @@
1815 <entry></entry> 1746 <entry></entry>
1816 <entry></entry> 1747 <entry></entry>
1817 <entry></entry> 1748 <entry></entry>
1818 &dash-ent-10; 1749 &dash-ent-24;
1819 &dash-ent-10;
1820 <entry>-</entry>
1821 <entry>-</entry>
1822 <entry>u<subscript>7</subscript></entry> 1750 <entry>u<subscript>7</subscript></entry>
1823 <entry>u<subscript>6</subscript></entry> 1751 <entry>u<subscript>6</subscript></entry>
1824 <entry>u<subscript>5</subscript></entry> 1752 <entry>u<subscript>5</subscript></entry>
@@ -1832,10 +1760,7 @@
1832 <entry></entry> 1760 <entry></entry>
1833 <entry></entry> 1761 <entry></entry>
1834 <entry></entry> 1762 <entry></entry>
1835 &dash-ent-10; 1763 &dash-ent-24;
1836 &dash-ent-10;
1837 <entry>-</entry>
1838 <entry>-</entry>
1839 <entry>y<subscript>7</subscript></entry> 1764 <entry>y<subscript>7</subscript></entry>
1840 <entry>y<subscript>6</subscript></entry> 1765 <entry>y<subscript>6</subscript></entry>
1841 <entry>y<subscript>5</subscript></entry> 1766 <entry>y<subscript>5</subscript></entry>
@@ -1849,10 +1774,7 @@
1849 <entry>V4L2_MBUS_FMT_YUYV8_2X8</entry> 1774 <entry>V4L2_MBUS_FMT_YUYV8_2X8</entry>
1850 <entry>0x2008</entry> 1775 <entry>0x2008</entry>
1851 <entry></entry> 1776 <entry></entry>
1852 &dash-ent-10; 1777 &dash-ent-24;
1853 &dash-ent-10;
1854 <entry>-</entry>
1855 <entry>-</entry>
1856 <entry>y<subscript>7</subscript></entry> 1778 <entry>y<subscript>7</subscript></entry>
1857 <entry>y<subscript>6</subscript></entry> 1779 <entry>y<subscript>6</subscript></entry>
1858 <entry>y<subscript>5</subscript></entry> 1780 <entry>y<subscript>5</subscript></entry>
@@ -1866,10 +1788,7 @@
1866 <entry></entry> 1788 <entry></entry>
1867 <entry></entry> 1789 <entry></entry>
1868 <entry></entry> 1790 <entry></entry>
1869 &dash-ent-10; 1791 &dash-ent-24;
1870 &dash-ent-10;
1871 <entry>-</entry>
1872 <entry>-</entry>
1873 <entry>u<subscript>7</subscript></entry> 1792 <entry>u<subscript>7</subscript></entry>
1874 <entry>u<subscript>6</subscript></entry> 1793 <entry>u<subscript>6</subscript></entry>
1875 <entry>u<subscript>5</subscript></entry> 1794 <entry>u<subscript>5</subscript></entry>
@@ -1883,10 +1802,7 @@
1883 <entry></entry> 1802 <entry></entry>
1884 <entry></entry> 1803 <entry></entry>
1885 <entry></entry> 1804 <entry></entry>
1886 &dash-ent-10; 1805 &dash-ent-24;
1887 &dash-ent-10;
1888 <entry>-</entry>
1889 <entry>-</entry>
1890 <entry>y<subscript>7</subscript></entry> 1806 <entry>y<subscript>7</subscript></entry>
1891 <entry>y<subscript>6</subscript></entry> 1807 <entry>y<subscript>6</subscript></entry>
1892 <entry>y<subscript>5</subscript></entry> 1808 <entry>y<subscript>5</subscript></entry>
@@ -1900,10 +1816,7 @@
1900 <entry></entry> 1816 <entry></entry>
1901 <entry></entry> 1817 <entry></entry>
1902 <entry></entry> 1818 <entry></entry>
1903 &dash-ent-10; 1819 &dash-ent-24;
1904 &dash-ent-10;
1905 <entry>-</entry>
1906 <entry>-</entry>
1907 <entry>v<subscript>7</subscript></entry> 1820 <entry>v<subscript>7</subscript></entry>
1908 <entry>v<subscript>6</subscript></entry> 1821 <entry>v<subscript>6</subscript></entry>
1909 <entry>v<subscript>5</subscript></entry> 1822 <entry>v<subscript>5</subscript></entry>
@@ -1917,10 +1830,7 @@
1917 <entry>V4L2_MBUS_FMT_YVYU8_2X8</entry> 1830 <entry>V4L2_MBUS_FMT_YVYU8_2X8</entry>
1918 <entry>0x2009</entry> 1831 <entry>0x2009</entry>
1919 <entry></entry> 1832 <entry></entry>
1920 &dash-ent-10; 1833 &dash-ent-24;
1921 &dash-ent-10;
1922 <entry>-</entry>
1923 <entry>-</entry>
1924 <entry>y<subscript>7</subscript></entry> 1834 <entry>y<subscript>7</subscript></entry>
1925 <entry>y<subscript>6</subscript></entry> 1835 <entry>y<subscript>6</subscript></entry>
1926 <entry>y<subscript>5</subscript></entry> 1836 <entry>y<subscript>5</subscript></entry>
@@ -1934,10 +1844,7 @@
1934 <entry></entry> 1844 <entry></entry>
1935 <entry></entry> 1845 <entry></entry>
1936 <entry></entry> 1846 <entry></entry>
1937 &dash-ent-10; 1847 &dash-ent-24;
1938 &dash-ent-10;
1939 <entry>-</entry>
1940 <entry>-</entry>
1941 <entry>v<subscript>7</subscript></entry> 1848 <entry>v<subscript>7</subscript></entry>
1942 <entry>v<subscript>6</subscript></entry> 1849 <entry>v<subscript>6</subscript></entry>
1943 <entry>v<subscript>5</subscript></entry> 1850 <entry>v<subscript>5</subscript></entry>
@@ -1951,10 +1858,7 @@
1951 <entry></entry> 1858 <entry></entry>
1952 <entry></entry> 1859 <entry></entry>
1953 <entry></entry> 1860 <entry></entry>
1954 &dash-ent-10; 1861 &dash-ent-24;
1955 &dash-ent-10;
1956 <entry>-</entry>
1957 <entry>-</entry>
1958 <entry>y<subscript>7</subscript></entry> 1862 <entry>y<subscript>7</subscript></entry>
1959 <entry>y<subscript>6</subscript></entry> 1863 <entry>y<subscript>6</subscript></entry>
1960 <entry>y<subscript>5</subscript></entry> 1864 <entry>y<subscript>5</subscript></entry>
@@ -1968,10 +1872,7 @@
1968 <entry></entry> 1872 <entry></entry>
1969 <entry></entry> 1873 <entry></entry>
1970 <entry></entry> 1874 <entry></entry>
1971 &dash-ent-10; 1875 &dash-ent-24;
1972 &dash-ent-10;
1973 <entry>-</entry>
1974 <entry>-</entry>
1975 <entry>u<subscript>7</subscript></entry> 1876 <entry>u<subscript>7</subscript></entry>
1976 <entry>u<subscript>6</subscript></entry> 1877 <entry>u<subscript>6</subscript></entry>
1977 <entry>u<subscript>5</subscript></entry> 1878 <entry>u<subscript>5</subscript></entry>
@@ -1985,8 +1886,7 @@
1985 <entry>V4L2_MBUS_FMT_Y10_1X10</entry> 1886 <entry>V4L2_MBUS_FMT_Y10_1X10</entry>
1986 <entry>0x200a</entry> 1887 <entry>0x200a</entry>
1987 <entry></entry> 1888 <entry></entry>
1988 &dash-ent-10; 1889 &dash-ent-22;
1989 &dash-ent-10;
1990 <entry>y<subscript>9</subscript></entry> 1890 <entry>y<subscript>9</subscript></entry>
1991 <entry>y<subscript>8</subscript></entry> 1891 <entry>y<subscript>8</subscript></entry>
1992 <entry>y<subscript>7</subscript></entry> 1892 <entry>y<subscript>7</subscript></entry>
@@ -2002,8 +1902,7 @@
2002 <entry>V4L2_MBUS_FMT_YUYV10_2X10</entry> 1902 <entry>V4L2_MBUS_FMT_YUYV10_2X10</entry>
2003 <entry>0x200b</entry> 1903 <entry>0x200b</entry>
2004 <entry></entry> 1904 <entry></entry>
2005 &dash-ent-10; 1905 &dash-ent-22;
2006 &dash-ent-10;
2007 <entry>y<subscript>9</subscript></entry> 1906 <entry>y<subscript>9</subscript></entry>
2008 <entry>y<subscript>8</subscript></entry> 1907 <entry>y<subscript>8</subscript></entry>
2009 <entry>y<subscript>7</subscript></entry> 1908 <entry>y<subscript>7</subscript></entry>
@@ -2019,8 +1918,7 @@
2019 <entry></entry> 1918 <entry></entry>
2020 <entry></entry> 1919 <entry></entry>
2021 <entry></entry> 1920 <entry></entry>
2022 &dash-ent-10; 1921 &dash-ent-22;
2023 &dash-ent-10;
2024 <entry>u<subscript>9</subscript></entry> 1922 <entry>u<subscript>9</subscript></entry>
2025 <entry>u<subscript>8</subscript></entry> 1923 <entry>u<subscript>8</subscript></entry>
2026 <entry>u<subscript>7</subscript></entry> 1924 <entry>u<subscript>7</subscript></entry>
@@ -2036,8 +1934,7 @@
2036 <entry></entry> 1934 <entry></entry>
2037 <entry></entry> 1935 <entry></entry>
2038 <entry></entry> 1936 <entry></entry>
2039 &dash-ent-10; 1937 &dash-ent-22;
2040 &dash-ent-10;
2041 <entry>y<subscript>9</subscript></entry> 1938 <entry>y<subscript>9</subscript></entry>
2042 <entry>y<subscript>8</subscript></entry> 1939 <entry>y<subscript>8</subscript></entry>
2043 <entry>y<subscript>7</subscript></entry> 1940 <entry>y<subscript>7</subscript></entry>
@@ -2053,8 +1950,7 @@
2053 <entry></entry> 1950 <entry></entry>
2054 <entry></entry> 1951 <entry></entry>
2055 <entry></entry> 1952 <entry></entry>
2056 &dash-ent-10; 1953 &dash-ent-22;
2057 &dash-ent-10;
2058 <entry>v<subscript>9</subscript></entry> 1954 <entry>v<subscript>9</subscript></entry>
2059 <entry>v<subscript>8</subscript></entry> 1955 <entry>v<subscript>8</subscript></entry>
2060 <entry>v<subscript>7</subscript></entry> 1956 <entry>v<subscript>7</subscript></entry>
@@ -2070,8 +1966,7 @@
2070 <entry>V4L2_MBUS_FMT_YVYU10_2X10</entry> 1966 <entry>V4L2_MBUS_FMT_YVYU10_2X10</entry>
2071 <entry>0x200c</entry> 1967 <entry>0x200c</entry>
2072 <entry></entry> 1968 <entry></entry>
2073 &dash-ent-10; 1969 &dash-ent-22;
2074 &dash-ent-10;
2075 <entry>y<subscript>9</subscript></entry> 1970 <entry>y<subscript>9</subscript></entry>
2076 <entry>y<subscript>8</subscript></entry> 1971 <entry>y<subscript>8</subscript></entry>
2077 <entry>y<subscript>7</subscript></entry> 1972 <entry>y<subscript>7</subscript></entry>
@@ -2087,8 +1982,7 @@
2087 <entry></entry> 1982 <entry></entry>
2088 <entry></entry> 1983 <entry></entry>
2089 <entry></entry> 1984 <entry></entry>
2090 &dash-ent-10; 1985 &dash-ent-22;
2091 &dash-ent-10;
2092 <entry>v<subscript>9</subscript></entry> 1986 <entry>v<subscript>9</subscript></entry>
2093 <entry>v<subscript>8</subscript></entry> 1987 <entry>v<subscript>8</subscript></entry>
2094 <entry>v<subscript>7</subscript></entry> 1988 <entry>v<subscript>7</subscript></entry>
@@ -2104,8 +1998,7 @@
2104 <entry></entry> 1998 <entry></entry>
2105 <entry></entry> 1999 <entry></entry>
2106 <entry></entry> 2000 <entry></entry>
2107 &dash-ent-10; 2001 &dash-ent-22;
2108 &dash-ent-10;
2109 <entry>y<subscript>9</subscript></entry> 2002 <entry>y<subscript>9</subscript></entry>
2110 <entry>y<subscript>8</subscript></entry> 2003 <entry>y<subscript>8</subscript></entry>
2111 <entry>y<subscript>7</subscript></entry> 2004 <entry>y<subscript>7</subscript></entry>
@@ -2121,8 +2014,7 @@
2121 <entry></entry> 2014 <entry></entry>
2122 <entry></entry> 2015 <entry></entry>
2123 <entry></entry> 2016 <entry></entry>
2124 &dash-ent-10; 2017 &dash-ent-22;
2125 &dash-ent-10;
2126 <entry>u<subscript>9</subscript></entry> 2018 <entry>u<subscript>9</subscript></entry>
2127 <entry>u<subscript>8</subscript></entry> 2019 <entry>u<subscript>8</subscript></entry>
2128 <entry>u<subscript>7</subscript></entry> 2020 <entry>u<subscript>7</subscript></entry>
@@ -2138,15 +2030,7 @@
2138 <entry>V4L2_MBUS_FMT_Y12_1X12</entry> 2030 <entry>V4L2_MBUS_FMT_Y12_1X12</entry>
2139 <entry>0x2013</entry> 2031 <entry>0x2013</entry>
2140 <entry></entry> 2032 <entry></entry>
2141 &dash-ent-10; 2033 &dash-ent-20;
2142 <entry>-</entry>
2143 <entry>-</entry>
2144 <entry>-</entry>
2145 <entry>-</entry>
2146 <entry>-</entry>
2147 <entry>-</entry>
2148 <entry>-</entry>
2149 <entry>-</entry>
2150 <entry>y<subscript>11</subscript></entry> 2034 <entry>y<subscript>11</subscript></entry>
2151 <entry>y<subscript>10</subscript></entry> 2035 <entry>y<subscript>10</subscript></entry>
2152 <entry>y<subscript>9</subscript></entry> 2036 <entry>y<subscript>9</subscript></entry>
@@ -2164,11 +2048,7 @@
2164 <entry>V4L2_MBUS_FMT_UYVY8_1X16</entry> 2048 <entry>V4L2_MBUS_FMT_UYVY8_1X16</entry>
2165 <entry>0x200f</entry> 2049 <entry>0x200f</entry>
2166 <entry></entry> 2050 <entry></entry>
2167 &dash-ent-10; 2051 &dash-ent-16;
2168 <entry>-</entry>
2169 <entry>-</entry>
2170 <entry>-</entry>
2171 <entry>-</entry>
2172 <entry>u<subscript>7</subscript></entry> 2052 <entry>u<subscript>7</subscript></entry>
2173 <entry>u<subscript>6</subscript></entry> 2053 <entry>u<subscript>6</subscript></entry>
2174 <entry>u<subscript>5</subscript></entry> 2054 <entry>u<subscript>5</subscript></entry>
@@ -2190,11 +2070,7 @@
2190 <entry></entry> 2070 <entry></entry>
2191 <entry></entry> 2071 <entry></entry>
2192 <entry></entry> 2072 <entry></entry>
2193 &dash-ent-10; 2073 &dash-ent-16;
2194 <entry>-</entry>
2195 <entry>-</entry>
2196 <entry>-</entry>
2197 <entry>-</entry>
2198 <entry>v<subscript>7</subscript></entry> 2074 <entry>v<subscript>7</subscript></entry>
2199 <entry>v<subscript>6</subscript></entry> 2075 <entry>v<subscript>6</subscript></entry>
2200 <entry>v<subscript>5</subscript></entry> 2076 <entry>v<subscript>5</subscript></entry>
@@ -2216,11 +2092,7 @@
2216 <entry>V4L2_MBUS_FMT_VYUY8_1X16</entry> 2092 <entry>V4L2_MBUS_FMT_VYUY8_1X16</entry>
2217 <entry>0x2010</entry> 2093 <entry>0x2010</entry>
2218 <entry></entry> 2094 <entry></entry>
2219 &dash-ent-10; 2095 &dash-ent-16;
2220 <entry>-</entry>
2221 <entry>-</entry>
2222 <entry>-</entry>
2223 <entry>-</entry>
2224 <entry>v<subscript>7</subscript></entry> 2096 <entry>v<subscript>7</subscript></entry>
2225 <entry>v<subscript>6</subscript></entry> 2097 <entry>v<subscript>6</subscript></entry>
2226 <entry>v<subscript>5</subscript></entry> 2098 <entry>v<subscript>5</subscript></entry>
@@ -2242,11 +2114,7 @@
2242 <entry></entry> 2114 <entry></entry>
2243 <entry></entry> 2115 <entry></entry>
2244 <entry></entry> 2116 <entry></entry>
2245 &dash-ent-10; 2117 &dash-ent-16;
2246 <entry>-</entry>
2247 <entry>-</entry>
2248 <entry>-</entry>
2249 <entry>-</entry>
2250 <entry>u<subscript>7</subscript></entry> 2118 <entry>u<subscript>7</subscript></entry>
2251 <entry>u<subscript>6</subscript></entry> 2119 <entry>u<subscript>6</subscript></entry>
2252 <entry>u<subscript>5</subscript></entry> 2120 <entry>u<subscript>5</subscript></entry>
@@ -2268,11 +2136,7 @@
2268 <entry>V4L2_MBUS_FMT_YUYV8_1X16</entry> 2136 <entry>V4L2_MBUS_FMT_YUYV8_1X16</entry>
2269 <entry>0x2011</entry> 2137 <entry>0x2011</entry>
2270 <entry></entry> 2138 <entry></entry>
2271 &dash-ent-10; 2139 &dash-ent-16;
2272 <entry>-</entry>
2273 <entry>-</entry>
2274 <entry>-</entry>
2275 <entry>-</entry>
2276 <entry>y<subscript>7</subscript></entry> 2140 <entry>y<subscript>7</subscript></entry>
2277 <entry>y<subscript>6</subscript></entry> 2141 <entry>y<subscript>6</subscript></entry>
2278 <entry>y<subscript>5</subscript></entry> 2142 <entry>y<subscript>5</subscript></entry>
@@ -2294,11 +2158,7 @@
2294 <entry></entry> 2158 <entry></entry>
2295 <entry></entry> 2159 <entry></entry>
2296 <entry></entry> 2160 <entry></entry>
2297 &dash-ent-10; 2161 &dash-ent-16;
2298 <entry>-</entry>
2299 <entry>-</entry>
2300 <entry>-</entry>
2301 <entry>-</entry>
2302 <entry>y<subscript>7</subscript></entry> 2162 <entry>y<subscript>7</subscript></entry>
2303 <entry>y<subscript>6</subscript></entry> 2163 <entry>y<subscript>6</subscript></entry>
2304 <entry>y<subscript>5</subscript></entry> 2164 <entry>y<subscript>5</subscript></entry>
@@ -2320,11 +2180,7 @@
2320 <entry>V4L2_MBUS_FMT_YVYU8_1X16</entry> 2180 <entry>V4L2_MBUS_FMT_YVYU8_1X16</entry>
2321 <entry>0x2012</entry> 2181 <entry>0x2012</entry>
2322 <entry></entry> 2182 <entry></entry>
2323 &dash-ent-10; 2183 &dash-ent-16;
2324 <entry>-</entry>
2325 <entry>-</entry>
2326 <entry>-</entry>
2327 <entry>-</entry>
2328 <entry>y<subscript>7</subscript></entry> 2184 <entry>y<subscript>7</subscript></entry>
2329 <entry>y<subscript>6</subscript></entry> 2185 <entry>y<subscript>6</subscript></entry>
2330 <entry>y<subscript>5</subscript></entry> 2186 <entry>y<subscript>5</subscript></entry>
@@ -2346,11 +2202,7 @@
2346 <entry></entry> 2202 <entry></entry>
2347 <entry></entry> 2203 <entry></entry>
2348 <entry></entry> 2204 <entry></entry>
2349 &dash-ent-10; 2205 &dash-ent-16;
2350 <entry>-</entry>
2351 <entry>-</entry>
2352 <entry>-</entry>
2353 <entry>-</entry>
2354 <entry>y<subscript>7</subscript></entry> 2206 <entry>y<subscript>7</subscript></entry>
2355 <entry>y<subscript>6</subscript></entry> 2207 <entry>y<subscript>6</subscript></entry>
2356 <entry>y<subscript>5</subscript></entry> 2208 <entry>y<subscript>5</subscript></entry>
@@ -2372,10 +2224,7 @@
2372 <entry>V4L2_MBUS_FMT_YDYUYDYV8_1X16</entry> 2224 <entry>V4L2_MBUS_FMT_YDYUYDYV8_1X16</entry>
2373 <entry>0x2014</entry> 2225 <entry>0x2014</entry>
2374 <entry></entry> 2226 <entry></entry>
2375 <entry>-</entry> 2227 &dash-ent-16;
2376 <entry>-</entry>
2377 <entry>-</entry>
2378 <entry>-</entry>
2379 <entry>y<subscript>7</subscript></entry> 2228 <entry>y<subscript>7</subscript></entry>
2380 <entry>y<subscript>6</subscript></entry> 2229 <entry>y<subscript>6</subscript></entry>
2381 <entry>y<subscript>5</subscript></entry> 2230 <entry>y<subscript>5</subscript></entry>
@@ -2397,10 +2246,7 @@
2397 <entry></entry> 2246 <entry></entry>
2398 <entry></entry> 2247 <entry></entry>
2399 <entry></entry> 2248 <entry></entry>
2400 <entry>-</entry> 2249 &dash-ent-16;
2401 <entry>-</entry>
2402 <entry>-</entry>
2403 <entry>-</entry>
2404 <entry>y<subscript>7</subscript></entry> 2250 <entry>y<subscript>7</subscript></entry>
2405 <entry>y<subscript>6</subscript></entry> 2251 <entry>y<subscript>6</subscript></entry>
2406 <entry>y<subscript>5</subscript></entry> 2252 <entry>y<subscript>5</subscript></entry>
@@ -2422,10 +2268,7 @@
2422 <entry></entry> 2268 <entry></entry>
2423 <entry></entry> 2269 <entry></entry>
2424 <entry></entry> 2270 <entry></entry>
2425 <entry>-</entry> 2271 &dash-ent-16;
2426 <entry>-</entry>
2427 <entry>-</entry>
2428 <entry>-</entry>
2429 <entry>y<subscript>7</subscript></entry> 2272 <entry>y<subscript>7</subscript></entry>
2430 <entry>y<subscript>6</subscript></entry> 2273 <entry>y<subscript>6</subscript></entry>
2431 <entry>y<subscript>5</subscript></entry> 2274 <entry>y<subscript>5</subscript></entry>
@@ -2447,10 +2290,7 @@
2447 <entry></entry> 2290 <entry></entry>
2448 <entry></entry> 2291 <entry></entry>
2449 <entry></entry> 2292 <entry></entry>
2450 <entry>-</entry> 2293 &dash-ent-16;
2451 <entry>-</entry>
2452 <entry>-</entry>
2453 <entry>-</entry>
2454 <entry>y<subscript>7</subscript></entry> 2294 <entry>y<subscript>7</subscript></entry>
2455 <entry>y<subscript>6</subscript></entry> 2295 <entry>y<subscript>6</subscript></entry>
2456 <entry>y<subscript>5</subscript></entry> 2296 <entry>y<subscript>5</subscript></entry>
@@ -2472,7 +2312,7 @@
2472 <entry>V4L2_MBUS_FMT_YUYV10_1X20</entry> 2312 <entry>V4L2_MBUS_FMT_YUYV10_1X20</entry>
2473 <entry>0x200d</entry> 2313 <entry>0x200d</entry>
2474 <entry></entry> 2314 <entry></entry>
2475 &dash-ent-10; 2315 &dash-ent-12;
2476 <entry>y<subscript>9</subscript></entry> 2316 <entry>y<subscript>9</subscript></entry>
2477 <entry>y<subscript>8</subscript></entry> 2317 <entry>y<subscript>8</subscript></entry>
2478 <entry>y<subscript>7</subscript></entry> 2318 <entry>y<subscript>7</subscript></entry>
@@ -2498,7 +2338,7 @@
2498 <entry></entry> 2338 <entry></entry>
2499 <entry></entry> 2339 <entry></entry>
2500 <entry></entry> 2340 <entry></entry>
2501 &dash-ent-10; 2341 &dash-ent-12;
2502 <entry>y<subscript>9</subscript></entry> 2342 <entry>y<subscript>9</subscript></entry>
2503 <entry>y<subscript>8</subscript></entry> 2343 <entry>y<subscript>8</subscript></entry>
2504 <entry>y<subscript>7</subscript></entry> 2344 <entry>y<subscript>7</subscript></entry>
@@ -2524,7 +2364,7 @@
2524 <entry>V4L2_MBUS_FMT_YVYU10_1X20</entry> 2364 <entry>V4L2_MBUS_FMT_YVYU10_1X20</entry>
2525 <entry>0x200e</entry> 2365 <entry>0x200e</entry>
2526 <entry></entry> 2366 <entry></entry>
2527 &dash-ent-10; 2367 &dash-ent-12;
2528 <entry>y<subscript>9</subscript></entry> 2368 <entry>y<subscript>9</subscript></entry>
2529 <entry>y<subscript>8</subscript></entry> 2369 <entry>y<subscript>8</subscript></entry>
2530 <entry>y<subscript>7</subscript></entry> 2370 <entry>y<subscript>7</subscript></entry>
@@ -2550,7 +2390,7 @@
2550 <entry></entry> 2390 <entry></entry>
2551 <entry></entry> 2391 <entry></entry>
2552 <entry></entry> 2392 <entry></entry>
2553 &dash-ent-10; 2393 &dash-ent-12;
2554 <entry>y<subscript>9</subscript></entry> 2394 <entry>y<subscript>9</subscript></entry>
2555 <entry>y<subscript>8</subscript></entry> 2395 <entry>y<subscript>8</subscript></entry>
2556 <entry>y<subscript>7</subscript></entry> 2396 <entry>y<subscript>7</subscript></entry>
@@ -2574,8 +2414,10 @@
2574 </row> 2414 </row>
2575 <row id="V4L2-MBUS-FMT-YUV10-1X30"> 2415 <row id="V4L2-MBUS-FMT-YUV10-1X30">
2576 <entry>V4L2_MBUS_FMT_YUV10_1X30</entry> 2416 <entry>V4L2_MBUS_FMT_YUV10_1X30</entry>
2577 <entry>0x2014</entry> 2417 <entry>0x2016</entry>
2578 <entry></entry> 2418 <entry></entry>
2419 <entry>-</entry>
2420 <entry>-</entry>
2579 <entry>y<subscript>9</subscript></entry> 2421 <entry>y<subscript>9</subscript></entry>
2580 <entry>y<subscript>8</subscript></entry> 2422 <entry>y<subscript>8</subscript></entry>
2581 <entry>y<subscript>7</subscript></entry> 2423 <entry>y<subscript>7</subscript></entry>
@@ -2607,6 +2449,43 @@
2607 <entry>v<subscript>1</subscript></entry> 2449 <entry>v<subscript>1</subscript></entry>
2608 <entry>v<subscript>0</subscript></entry> 2450 <entry>v<subscript>0</subscript></entry>
2609 </row> 2451 </row>
2452 <row id="V4L2-MBUS-FMT-AYUV8-1X32">
2453 <entry>V4L2_MBUS_FMT_AYUV8_1X32</entry>
2454 <entry>0x2017</entry>
2455 <entry></entry>
2456 <entry>a<subscript>7</subscript></entry>
2457 <entry>a<subscript>6</subscript></entry>
2458 <entry>a<subscript>5</subscript></entry>
2459 <entry>a<subscript>4</subscript></entry>
2460 <entry>a<subscript>3</subscript></entry>
2461 <entry>a<subscript>2</subscript></entry>
2462 <entry>a<subscript>1</subscript></entry>
2463 <entry>a<subscript>0</subscript></entry>
2464 <entry>y<subscript>7</subscript></entry>
2465 <entry>y<subscript>6</subscript></entry>
2466 <entry>y<subscript>5</subscript></entry>
2467 <entry>y<subscript>4</subscript></entry>
2468 <entry>y<subscript>3</subscript></entry>
2469 <entry>y<subscript>2</subscript></entry>
2470 <entry>y<subscript>1</subscript></entry>
2471 <entry>y<subscript>0</subscript></entry>
2472 <entry>u<subscript>7</subscript></entry>
2473 <entry>u<subscript>6</subscript></entry>
2474 <entry>u<subscript>5</subscript></entry>
2475 <entry>u<subscript>4</subscript></entry>
2476 <entry>u<subscript>3</subscript></entry>
2477 <entry>u<subscript>2</subscript></entry>
2478 <entry>u<subscript>1</subscript></entry>
2479 <entry>u<subscript>0</subscript></entry>
2480 <entry>v<subscript>7</subscript></entry>
2481 <entry>v<subscript>6</subscript></entry>
2482 <entry>v<subscript>5</subscript></entry>
2483 <entry>v<subscript>4</subscript></entry>
2484 <entry>v<subscript>3</subscript></entry>
2485 <entry>v<subscript>2</subscript></entry>
2486 <entry>v<subscript>1</subscript></entry>
2487 <entry>v<subscript>0</subscript></entry>
2488 </row>
2610 </tbody> 2489 </tbody>
2611 </tgroup> 2490 </tgroup>
2612 </table> 2491 </table>
diff --git a/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml b/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml
index cd9943672434..9b700a5f4df7 100644
--- a/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml
@@ -62,18 +62,29 @@ addition to the <constant>VIDIOC_REQBUFS</constant> ioctl, when a tighter
62control over buffers is required. This ioctl can be called multiple times to 62control over buffers is required. This ioctl can be called multiple times to
63create buffers of different sizes.</para> 63create buffers of different sizes.</para>
64 64
65 <para>To allocate device buffers applications initialize relevant fields of 65 <para>To allocate the device buffers applications must initialize the
66the <structname>v4l2_create_buffers</structname> structure. They set the 66relevant fields of the <structname>v4l2_create_buffers</structname> structure.
67<structfield>type</structfield> field in the 67The <structfield>count</structfield> field must be set to the number of
68&v4l2-format; structure, embedded in this 68requested buffers, the <structfield>memory</structfield> field specifies the
69structure, to the respective stream or buffer type. 69requested I/O method and the <structfield>reserved</structfield> array must be
70<structfield>count</structfield> must be set to the number of required buffers. 70zeroed.</para>
71<structfield>memory</structfield> specifies the required I/O method. The 71
72<structfield>format</structfield> field shall typically be filled in using 72 <para>The <structfield>format</structfield> field specifies the image format
73either the <constant>VIDIOC_TRY_FMT</constant> or 73that the buffers must be able to handle. The application has to fill in this
74<constant>VIDIOC_G_FMT</constant> ioctl(). Additionally, applications can adjust 74&v4l2-format;. Usually this will be done using the
75<structfield>sizeimage</structfield> fields to fit their specific needs. The 75<constant>VIDIOC_TRY_FMT</constant> or <constant>VIDIOC_G_FMT</constant> ioctl()
76<structfield>reserved</structfield> array must be zeroed.</para> 76to ensure that the requested format is supported by the driver. Unsupported
77formats will result in an error.</para>
78
79 <para>The buffers created by this ioctl will have as minimum size the size
80defined by the <structfield>format.pix.sizeimage</structfield> field. If the
81<structfield>format.pix.sizeimage</structfield> field is less than the minimum
82required for the given format, then <structfield>sizeimage</structfield> will be
83increased by the driver to that minimum to allocate the buffers. If it is
84larger, then the value will be used as-is. The same applies to the
85<structfield>sizeimage</structfield> field of the
86<structname>v4l2_plane_pix_format</structname> structure in the case of
87multiplanar formats.</para>
77 88
78 <para>When the ioctl is called with a pointer to this structure the driver 89 <para>When the ioctl is called with a pointer to this structure the driver
79will attempt to allocate up to the requested number of buffers and store the 90will attempt to allocate up to the requested number of buffers and store the
@@ -144,9 +155,9 @@ mapped</link> I/O.</para>
144 <varlistentry> 155 <varlistentry>
145 <term><errorcode>EINVAL</errorcode></term> 156 <term><errorcode>EINVAL</errorcode></term>
146 <listitem> 157 <listitem>
147 <para>The buffer type (<structfield>type</structfield> field) or the 158 <para>The buffer type (<structfield>format.type</structfield> field),
148requested I/O method (<structfield>memory</structfield>) is not 159requested I/O method (<structfield>memory</structfield>) or format
149supported.</para> 160(<structfield>format</structfield> field) is not valid.</para>
150 </listitem> 161 </listitem>
151 </varlistentry> 162 </varlistentry>
152 </variablelist> 163 </variablelist>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml
index 72369707bd77..c4336577ff06 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml
@@ -156,19 +156,19 @@ bit 0 (V4L2_DV_VSYNC_POS_POL) is for vertical sync polarity and bit 1 (V4L2_DV_H
156 <entry>__u32</entry> 156 <entry>__u32</entry>
157 <entry><structfield>il_vfrontporch</structfield></entry> 157 <entry><structfield>il_vfrontporch</structfield></entry>
158 <entry>Vertical front porch in lines for the even field (aka field 2) of 158 <entry>Vertical front porch in lines for the even field (aka field 2) of
159 interlaced field formats.</entry> 159 interlaced field formats. Must be 0 for progressive formats.</entry>
160 </row> 160 </row>
161 <row> 161 <row>
162 <entry>__u32</entry> 162 <entry>__u32</entry>
163 <entry><structfield>il_vsync</structfield></entry> 163 <entry><structfield>il_vsync</structfield></entry>
164 <entry>Vertical sync length in lines for the even field (aka field 2) of 164 <entry>Vertical sync length in lines for the even field (aka field 2) of
165 interlaced field formats.</entry> 165 interlaced field formats. Must be 0 for progressive formats.</entry>
166 </row> 166 </row>
167 <row> 167 <row>
168 <entry>__u32</entry> 168 <entry>__u32</entry>
169 <entry><structfield>il_vbackporch</structfield></entry> 169 <entry><structfield>il_vbackporch</structfield></entry>
170 <entry>Vertical back porch in lines for the even field (aka field 2) of 170 <entry>Vertical back porch in lines for the even field (aka field 2) of
171 interlaced field formats.</entry> 171 interlaced field formats. Must be 0 for progressive formats.</entry>
172 </row> 172 </row>
173 <row> 173 <row>
174 <entry>__u32</entry> 174 <entry>__u32</entry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml b/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml
index 48748499c097..098ff483802e 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml
@@ -92,8 +92,8 @@ to add them.</para>
92 <entry>int</entry> 92 <entry>int</entry>
93 <entry><structfield>quality</structfield></entry> 93 <entry><structfield>quality</structfield></entry>
94 <entry>Deprecated. If <link linkend="jpeg-quality-control"><constant> 94 <entry>Deprecated. If <link linkend="jpeg-quality-control"><constant>
95 V4L2_CID_JPEG_IMAGE_QUALITY</constant></link> control is exposed by 95 V4L2_CID_JPEG_COMPRESSION_QUALITY</constant></link> control is exposed
96 a driver applications should use it instead and ignore this field. 96 by a driver applications should use it instead and ignore this field.
97 </entry> 97 </entry>
98 </row> 98 </row>
99 <row> 99 <row>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-parm.xml b/Documentation/DocBook/media/v4l/vidioc-g-parm.xml
index 9058224d1bbf..f4e28e7d4751 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-parm.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-parm.xml
@@ -132,7 +132,7 @@ devices.</para>
132 <row> 132 <row>
133 <entry>&v4l2-fract;</entry> 133 <entry>&v4l2-fract;</entry>
134 <entry><structfield>timeperframe</structfield></entry> 134 <entry><structfield>timeperframe</structfield></entry>
135 <entry><para>This is is the desired period between 135 <entry><para>This is the desired period between
136successive frames captured by the driver, in seconds. The 136successive frames captured by the driver, in seconds. The
137field is intended to skip frames on the driver side, saving I/O 137field is intended to skip frames on the driver side, saving I/O
138bandwidth.</para><para>Applications store here the desired frame 138bandwidth.</para><para>Applications store here the desired frame
@@ -193,7 +193,7 @@ applications must set the array to zero.</entry>
193 <row> 193 <row>
194 <entry>&v4l2-fract;</entry> 194 <entry>&v4l2-fract;</entry>
195 <entry><structfield>timeperframe</structfield></entry> 195 <entry><structfield>timeperframe</structfield></entry>
196 <entry>This is is the desired period between 196 <entry>This is the desired period between
197successive frames output by the driver, in seconds.</entry> 197successive frames output by the driver, in seconds.</entry>
198 </row> 198 </row>
199 <row> 199 <row>
diff --git a/Documentation/DocBook/media_api.tmpl b/Documentation/DocBook/media_api.tmpl
index 9c92bb879b6d..4c8d282545a2 100644
--- a/Documentation/DocBook/media_api.tmpl
+++ b/Documentation/DocBook/media_api.tmpl
@@ -22,8 +22,14 @@
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-8 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
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>"> 26<!ENTITY dash-ent-10 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
27<!ENTITY dash-ent-12 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
28<!ENTITY dash-ent-14 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
26<!ENTITY dash-ent-16 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> 29<!ENTITY dash-ent-16 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
30<!ENTITY dash-ent-20 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
31<!ENTITY dash-ent-22 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
32<!ENTITY dash-ent-24 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
27]> 33]>
28 34
29<book id="media_api"> 35<book id="media_api">
diff --git a/Documentation/DocBook/mtdnand.tmpl b/Documentation/DocBook/mtdnand.tmpl
index fe122d6e686f..a248f42a121e 100644
--- a/Documentation/DocBook/mtdnand.tmpl
+++ b/Documentation/DocBook/mtdnand.tmpl
@@ -1224,8 +1224,6 @@ in this page</entry>
1224#define NAND_BBT_CREATE 0x00000200 1224#define NAND_BBT_CREATE 0x00000200
1225/* Search good / bad pattern through all pages of a block */ 1225/* Search good / bad pattern through all pages of a block */
1226#define NAND_BBT_SCANALLPAGES 0x00000400 1226#define NAND_BBT_SCANALLPAGES 0x00000400
1227/* Scan block empty during good / bad block scan */
1228#define NAND_BBT_SCANEMPTY 0x00000800
1229/* Write bbt if neccecary */ 1227/* Write bbt if neccecary */
1230#define NAND_BBT_WRITE 0x00001000 1228#define NAND_BBT_WRITE 0x00001000
1231/* Read and write back block contents when writing bbt */ 1229/* Read and write back block contents when writing bbt */
diff --git a/Documentation/IRQ-affinity.txt b/Documentation/IRQ-affinity.txt
index 7890fae18529..01a675175a36 100644
--- a/Documentation/IRQ-affinity.txt
+++ b/Documentation/IRQ-affinity.txt
@@ -57,8 +57,8 @@ i.e counters for the CPU0-3 did not change.
57 57
58Here is an example of limiting that same irq (44) to cpus 1024 to 1031: 58Here is an example of limiting that same irq (44) to cpus 1024 to 1031:
59 59
60[root@moon 44]# echo 1024-1031 > smp_affinity 60[root@moon 44]# echo 1024-1031 > smp_affinity_list
61[root@moon 44]# cat smp_affinity 61[root@moon 44]# cat smp_affinity_list
621024-1031 621024-1031
63 63
64Note that to do this with a bitmask would require 32 bitmasks of zero 64Note that to do this with a bitmask would require 32 bitmasks of zero
diff --git a/Documentation/RCU/RTFP.txt b/Documentation/RCU/RTFP.txt
index 7f40c72a9c51..273e654d7d08 100644
--- a/Documentation/RCU/RTFP.txt
+++ b/Documentation/RCU/RTFP.txt
@@ -39,7 +39,7 @@ in read-mostly situations. This algorithm does take pains to avoid
39write-side contention and parallelize the other write-side overheads by 39write-side contention and parallelize the other write-side overheads by
40providing a fine-grained locking design, however, it would be interesting 40providing a fine-grained locking design, however, it would be interesting
41to see how much of the performance advantage reported in 1990 remains 41to see how much of the performance advantage reported in 1990 remains
42in 2004. 42today.
43 43
44At about this same time, Adams [Adams91] described ``chaotic relaxation'', 44At about this same time, Adams [Adams91] described ``chaotic relaxation'',
45where the normal barriers between successive iterations of convergent 45where the normal barriers between successive iterations of convergent
@@ -86,9 +86,9 @@ DYNIX/ptx kernel. The corresponding conference paper appeared in 1998
86[McKenney98]. 86[McKenney98].
87 87
88In 1999, the Tornado and K42 groups described their "generations" 88In 1999, the Tornado and K42 groups described their "generations"
89mechanism, which quite similar to RCU [Gamsa99]. These operating systems 89mechanism, which is quite similar to RCU [Gamsa99]. These operating
90made pervasive use of RCU in place of "existence locks", which greatly 90systems made pervasive use of RCU in place of "existence locks", which
91simplifies locking hierarchies. 91greatly simplifies locking hierarchies and helps avoid deadlocks.
92 92
932001 saw the first RCU presentation involving Linux [McKenney01a] 932001 saw the first RCU presentation involving Linux [McKenney01a]
94at OLS. The resulting abundance of RCU patches was presented the 94at OLS. The resulting abundance of RCU patches was presented the
@@ -106,8 +106,11 @@ these techniques still impose significant read-side overhead in the
106form of memory barriers. Researchers at Sun worked along similar lines 106form of memory barriers. Researchers at Sun worked along similar lines
107in the same timeframe [HerlihyLM02]. These techniques can be thought 107in the same timeframe [HerlihyLM02]. These techniques can be thought
108of as inside-out reference counts, where the count is represented by the 108of as inside-out reference counts, where the count is represented by the
109number of hazard pointers referencing a given data structure (rather than 109number of hazard pointers referencing a given data structure rather than
110the more conventional counter field within the data structure itself). 110the more conventional counter field within the data structure itself.
111The key advantage of inside-out reference counts is that they can be
112stored in immortal variables, thus allowing races between access and
113deletion to be avoided.
111 114
112By the same token, RCU can be thought of as a "bulk reference count", 115By the same token, RCU can be thought of as a "bulk reference count",
113where some form of reference counter covers all reference by a given CPU 116where some form of reference counter covers all reference by a given CPU
@@ -179,7 +182,25 @@ tree using software transactional memory to protect concurrent updates
179(strange, but true!) [PhilHoward2011RCUTMRBTree], yet another variant of 182(strange, but true!) [PhilHoward2011RCUTMRBTree], yet another variant of
180RCU-protected resizeable hash tables [Triplett:2011:RPHash], the 3.0 RCU 183RCU-protected resizeable hash tables [Triplett:2011:RPHash], the 3.0 RCU
181trainwreck [PaulEMcKenney2011RCU3.0trainwreck], and Neil Brown's "Meet the 184trainwreck [PaulEMcKenney2011RCU3.0trainwreck], and Neil Brown's "Meet the
182Lockers" LWN article [NeilBrown2011MeetTheLockers]. 185Lockers" LWN article [NeilBrown2011MeetTheLockers]. Some academic
186work looked at debugging uses of RCU [Seyster:2011:RFA:2075416.2075425].
187
188In 2012, Josh Triplett received his Ph.D. with his dissertation
189covering RCU-protected resizable hash tables and the relationship
190between memory barriers and read-side traversal order: If the updater
191is making changes in the opposite direction from the read-side traveral
192order, the updater need only execute a memory-barrier instruction,
193but if in the same direction, the updater needs to wait for a grace
194period between the individual updates [JoshTriplettPhD]. Also in 2012,
195after seventeen years of attempts, an RCU paper made it into a top-flight
196academic journal, IEEE Transactions on Parallel and Distributed Systems
197[MathieuDesnoyers2012URCU]. A group of researchers in Spain applied
198user-level RCU to crowd simulation [GuillermoVigueras2012RCUCrowd], and
199another group of researchers in Europe produced a formal description of
200RCU based on separation logic [AlexeyGotsman2012VerifyGraceExtended],
201which was published in the 2013 European Symposium on Programming
202[AlexeyGotsman2013ESOPRCU].
203
183 204
184 205
185Bibtex Entries 206Bibtex Entries
@@ -193,13 +214,12 @@ Bibtex Entries
193,volume="5" 214,volume="5"
194,number="3" 215,number="3"
195,pages="354-382" 216,pages="354-382"
196,note="Available:
197\url{http://portal.acm.org/citation.cfm?id=320619&dl=GUIDE,}
198[Viewed December 3, 2007]"
199,annotation={ 217,annotation={
200 Use garbage collector to clean up data after everyone is done with it. 218 Use garbage collector to clean up data after everyone is done with it.
201 . 219 .
202 Oldest use of something vaguely resembling RCU that I have found. 220 Oldest use of something vaguely resembling RCU that I have found.
221 http://portal.acm.org/citation.cfm?id=320619&dl=GUIDE,
222 [Viewed December 3, 2007]
203} 223}
204} 224}
205 225
@@ -309,7 +329,7 @@ for Programming Languages and Operating Systems}"
309,doi = {http://doi.acm.org/10.1145/42392.42399} 329,doi = {http://doi.acm.org/10.1145/42392.42399}
310,publisher = {ACM} 330,publisher = {ACM}
311,address = {New York, NY, USA} 331,address = {New York, NY, USA}
312,annotation= { 332,annotation={
313 At the top of page 307: "Conflicts with deposits and withdrawals 333 At the top of page 307: "Conflicts with deposits and withdrawals
314 are necessary if the reported total is to be up to date. They 334 are necessary if the reported total is to be up to date. They
315 could be avoided by having total return a sum that is slightly 335 could be avoided by having total return a sum that is slightly
@@ -346,8 +366,9 @@ for Programming Languages and Operating Systems}"
346} 366}
347} 367}
348 368
349@Book{Adams91 369# Was Adams91, see also syncrefs.bib.
350,Author="Gregory R. Adams" 370@Book{Andrews91textbook
371,Author="Gregory R. Andrews"
351,title="Concurrent Programming, Principles, and Practices" 372,title="Concurrent Programming, Principles, and Practices"
352,Publisher="Benjamin Cummins" 373,Publisher="Benjamin Cummins"
353,Year="1991" 374,Year="1991"
@@ -398,39 +419,39 @@ for Programming Languages and Operating Systems}"
398} 419}
399} 420}
400 421
401@conference{Pu95a, 422@conference{Pu95a
402Author = "Calton Pu and Tito Autrey and Andrew Black and Charles Consel and 423,Author = "Calton Pu and Tito Autrey and Andrew Black and Charles Consel and
403Crispin Cowan and Jon Inouye and Lakshmi Kethana and Jonathan Walpole and 424Crispin Cowan and Jon Inouye and Lakshmi Kethana and Jonathan Walpole and
404Ke Zhang", 425Ke Zhang"
405Title = "Optimistic Incremental Specialization: Streamlining a Commercial 426,Title = "Optimistic Incremental Specialization: Streamlining a Commercial
406Operating System", 427,Operating System"
407Booktitle = "15\textsuperscript{th} ACM Symposium on 428,Booktitle = "15\textsuperscript{th} ACM Symposium on
408Operating Systems Principles (SOSP'95)", 429,Operating Systems Principles (SOSP'95)"
409address = "Copper Mountain, CO", 430,address = "Copper Mountain, CO"
410month="December", 431,month="December"
411year="1995", 432,year="1995"
412pages="314-321", 433,pages="314-321"
413annotation=" 434,annotation={
414 Uses a replugger, but with a flag to signal when people are 435 Uses a replugger, but with a flag to signal when people are
415 using the resource at hand. Only one reader at a time. 436 using the resource at hand. Only one reader at a time.
416" 437}
417} 438}
418 439
419@conference{Cowan96a, 440@conference{Cowan96a
420Author = "Crispin Cowan and Tito Autrey and Charles Krasic and 441,Author = "Crispin Cowan and Tito Autrey and Charles Krasic and
421Calton Pu and Jonathan Walpole", 442,Calton Pu and Jonathan Walpole"
422Title = "Fast Concurrent Dynamic Linking for an Adaptive Operating System", 443,Title = "Fast Concurrent Dynamic Linking for an Adaptive Operating System"
423Booktitle = "International Conference on Configurable Distributed Systems 444,Booktitle = "International Conference on Configurable Distributed Systems
424(ICCDS'96)", 445(ICCDS'96)"
425address = "Annapolis, MD", 446,address = "Annapolis, MD"
426month="May", 447,month="May"
427year="1996", 448,year="1996"
428pages="108", 449,pages="108"
429isbn="0-8186-7395-8", 450,isbn="0-8186-7395-8"
430annotation=" 451,annotation={
431 Uses a replugger, but with a counter to signal when people are 452 Uses a replugger, but with a counter to signal when people are
432 using the resource at hand. Allows multiple readers. 453 using the resource at hand. Allows multiple readers.
433" 454}
434} 455}
435 456
436@techreport{Slingwine95 457@techreport{Slingwine95
@@ -493,14 +514,13 @@ Problems"
493,Year="1998" 514,Year="1998"
494,pages="509-518" 515,pages="509-518"
495,Address="Las Vegas, NV" 516,Address="Las Vegas, NV"
496,note="Available:
497\url{http://www.rdrop.com/users/paulmck/RCU/rclockpdcsproof.pdf}
498[Viewed December 3, 2007]"
499,annotation={ 517,annotation={
500 Describes and analyzes RCU mechanism in DYNIX/ptx. Describes 518 Describes and analyzes RCU mechanism in DYNIX/ptx. Describes
501 application to linked list update and log-buffer flushing. 519 application to linked list update and log-buffer flushing.
502 Defines 'quiescent state'. Includes both measured and analytic 520 Defines 'quiescent state'. Includes both measured and analytic
503 evaluation. 521 evaluation.
522 http://www.rdrop.com/users/paulmck/RCU/rclockpdcsproof.pdf
523 [Viewed December 3, 2007]
504} 524}
505} 525}
506 526
@@ -514,13 +534,12 @@ Operating System Design and Implementation}"
514,Year="1999" 534,Year="1999"
515,pages="87-100" 535,pages="87-100"
516,Address="New Orleans, LA" 536,Address="New Orleans, LA"
517,note="Available:
518\url{http://www.usenix.org/events/osdi99/full_papers/gamsa/gamsa.pdf}
519[Viewed August 30, 2006]"
520,annotation={ 537,annotation={
521 Use of RCU-like facility in K42/Tornado. Another independent 538 Use of RCU-like facility in K42/Tornado. Another independent
522 invention of RCU. 539 invention of RCU.
523 See especially pages 7-9 (Section 5). 540 See especially pages 7-9 (Section 5).
541 http://www.usenix.org/events/osdi99/full_papers/gamsa/gamsa.pdf
542 [Viewed August 30, 2006]
524} 543}
525} 544}
526 545
@@ -611,9 +630,9 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni"
611,note="Available: 630,note="Available:
612\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100259266316456&w=2} 631\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100259266316456&w=2}
613[Viewed June 23, 2004]" 632[Viewed June 23, 2004]"
614,annotation=" 633,annotation={
615 Memory-barrier and Alpha thread. 100 messages, not too bad... 634 Memory-barrier and Alpha thread. 100 messages, not too bad...
616" 635}
617} 636}
618 637
619@unpublished{Spraul01 638@unpublished{Spraul01
@@ -624,10 +643,10 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni"
624,note="Available: 643,note="Available:
625\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100264675012867&w=2} 644\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100264675012867&w=2}
626[Viewed June 23, 2004]" 645[Viewed June 23, 2004]"
627,annotation=" 646,annotation={
628 Suggested burying memory barriers in Linux's list-manipulation 647 Suggested burying memory barriers in Linux's list-manipulation
629 primitives. 648 primitives.
630" 649}
631} 650}
632 651
633@unpublished{LinusTorvalds2001a 652@unpublished{LinusTorvalds2001a
@@ -638,6 +657,8 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni"
638,note="Available: 657,note="Available:
639\url{http://lkml.org/lkml/2001/10/13/105} 658\url{http://lkml.org/lkml/2001/10/13/105}
640[Viewed August 21, 2004]" 659[Viewed August 21, 2004]"
660,annotation={
661}
641} 662}
642 663
643@unpublished{Blanchard02a 664@unpublished{Blanchard02a
@@ -657,10 +678,10 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni"
657,Month="June" 678,Month="June"
658,Year="2002" 679,Year="2002"
659,pages="289-300" 680,pages="289-300"
660,annotation=" 681,annotation={
661 Measured scalability of Linux 2.4 kernel's directory-entry cache 682 Measured scalability of Linux 2.4 kernel's directory-entry cache
662 (dcache), and measured some scalability enhancements. 683 (dcache), and measured some scalability enhancements.
663" 684}
664} 685}
665 686
666@Conference{McKenney02a 687@Conference{McKenney02a
@@ -674,10 +695,10 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell"
674,note="Available: 695,note="Available:
675\url{http://www.linux.org.uk/~ajh/ols2002_proceedings.pdf.gz} 696\url{http://www.linux.org.uk/~ajh/ols2002_proceedings.pdf.gz}
676[Viewed June 23, 2004]" 697[Viewed June 23, 2004]"
677,annotation=" 698,annotation={
678 Presented and compared a number of RCU implementations for the 699 Presented and compared a number of RCU implementations for the
679 Linux kernel. 700 Linux kernel.
680" 701}
681} 702}
682 703
683@unpublished{Sarma02a 704@unpublished{Sarma02a
@@ -688,9 +709,9 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell"
688,note="Available: 709,note="Available:
689\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=102645767914212&w=2} 710\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=102645767914212&w=2}
690[Viewed June 23, 2004]" 711[Viewed June 23, 2004]"
691,annotation=" 712,annotation={
692 Compare fastwalk and RCU for dcache. RCU won. 713 Compare fastwalk and RCU for dcache. RCU won.
693" 714}
694} 715}
695 716
696@unpublished{Barbieri02 717@unpublished{Barbieri02
@@ -701,9 +722,9 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell"
701,note="Available: 722,note="Available:
702\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103082050621241&w=2} 723\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103082050621241&w=2}
703[Viewed: June 23, 2004]" 724[Viewed: June 23, 2004]"
704,annotation=" 725,annotation={
705 Suggested RCU for vfs\_shared\_cred. 726 Suggested RCU for vfs\_shared\_cred.
706" 727}
707} 728}
708 729
709@unpublished{Dickins02a 730@unpublished{Dickins02a
@@ -722,10 +743,10 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell"
722,note="Available: 743,note="Available:
723\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103462075416638&w=2} 744\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103462075416638&w=2}
724[Viewed June 23, 2004]" 745[Viewed June 23, 2004]"
725,annotation=" 746,annotation={
726 Performance of dcache RCU on kernbench for 16x NUMA-Q and 1x, 747 Performance of dcache RCU on kernbench for 16x NUMA-Q and 1x,
727 2x, and 4x systems. RCU does no harm, and helps on 16x. 748 2x, and 4x systems. RCU does no harm, and helps on 16x.
728" 749}
729} 750}
730 751
731@unpublished{LinusTorvalds2003a 752@unpublished{LinusTorvalds2003a
@@ -736,14 +757,14 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell"
736,note="Available: 757,note="Available:
737\url{http://lkml.org/lkml/2003/3/9/205} 758\url{http://lkml.org/lkml/2003/3/9/205}
738[Viewed March 13, 2006]" 759[Viewed March 13, 2006]"
739,annotation=" 760,annotation={
740 Linus suggests replacing brlock with RCU and/or seqlocks: 761 Linus suggests replacing brlock with RCU and/or seqlocks:
741 . 762 .
742 'It's entirely possible that the current user could be replaced 763 'It's entirely possible that the current user could be replaced
743 by RCU and/or seqlocks, and we could get rid of brlocks entirely.' 764 by RCU and/or seqlocks, and we could get rid of brlocks entirely.'
744 . 765 .
745 Steve Hemminger responds by replacing them with RCU. 766 Steve Hemminger responds by replacing them with RCU.
746" 767}
747} 768}
748 769
749@article{Appavoo03a 770@article{Appavoo03a
@@ -758,9 +779,9 @@ B. Rosenburg and M. Stumm and J. Xenidis"
758,volume="42" 779,volume="42"
759,number="1" 780,number="1"
760,pages="60-76" 781,pages="60-76"
761,annotation=" 782,annotation={
762 Use of RCU to enable hot-swapping for autonomic behavior in K42. 783 Use of RCU to enable hot-swapping for autonomic behavior in K42.
763" 784}
764} 785}
765 786
766@unpublished{Seigh03 787@unpublished{Seigh03
@@ -769,9 +790,9 @@ B. Rosenburg and M. Stumm and J. Xenidis"
769,Year="2003" 790,Year="2003"
770,Month="March" 791,Month="March"
771,note="email correspondence" 792,note="email correspondence"
772,annotation=" 793,annotation={
773 Described the relationship of the VM/XA passive serialization to RCU. 794 Described the relationship of the VM/XA passive serialization to RCU.
774" 795}
775} 796}
776 797
777@Conference{Arcangeli03 798@Conference{Arcangeli03
@@ -785,14 +806,12 @@ Dipankar Sarma"
785,year="2003" 806,year="2003"
786,month="June" 807,month="June"
787,pages="297-310" 808,pages="297-310"
788,note="Available: 809,annotation={
789\url{http://www.rdrop.com/users/paulmck/RCU/rcu.FREENIX.2003.06.14.pdf}
790[Viewed November 21, 2007]"
791,annotation="
792 Compared updated RCU implementations for the Linux kernel, and 810 Compared updated RCU implementations for the Linux kernel, and
793 described System V IPC use of RCU, including order-of-magnitude 811 described System V IPC use of RCU, including order-of-magnitude
794 performance improvements. 812 performance improvements.
795" 813 http://www.rdrop.com/users/paulmck/RCU/rcu.FREENIX.2003.06.14.pdf
814}
796} 815}
797 816
798@Conference{Soules03a 817@Conference{Soules03a
@@ -820,10 +839,10 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis"
820,note="Available: 839,note="Available:
821\url{http://www.linuxjournal.com/article/6993} 840\url{http://www.linuxjournal.com/article/6993}
822[Viewed November 14, 2007]" 841[Viewed November 14, 2007]"
823,annotation=" 842,annotation={
824 Reader-friendly intro to RCU, with the infamous old-man-and-brat 843 Reader-friendly intro to RCU, with the infamous old-man-and-brat
825 cartoon. 844 cartoon.
826" 845}
827} 846}
828 847
829@unpublished{Sarma03a 848@unpublished{Sarma03a
@@ -832,7 +851,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis"
832,month="December" 851,month="December"
833,year="2003" 852,year="2003"
834,note="Message ID: 20031222180114.GA2248@in.ibm.com" 853,note="Message ID: 20031222180114.GA2248@in.ibm.com"
835,annotation="dipankar/ct.2004.03.27/RCUll.2003.12.22.patch" 854,annotation={
855 dipankar/ct.2004.03.27/RCUll.2003.12.22.patch
856}
836} 857}
837 858
838@techreport{Friedberg03a 859@techreport{Friedberg03a
@@ -844,11 +865,11 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis"
844,number="US Patent 6,662,184" 865,number="US Patent 6,662,184"
845,month="December" 866,month="December"
846,pages="112" 867,pages="112"
847,annotation=" 868,annotation={
848 Applies RCU to a wildcard-search Patricia tree in order to permit 869 Applies RCU to a wildcard-search Patricia tree in order to permit
849 synchronization-free lookup. RCU is used to retain removed nodes 870 synchronization-free lookup. RCU is used to retain removed nodes
850 for a grace period before freeing them. 871 for a grace period before freeing them.
851" 872}
852} 873}
853 874
854@article{McKenney04a 875@article{McKenney04a
@@ -860,12 +881,11 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis"
860,volume="1" 881,volume="1"
861,number="118" 882,number="118"
862,pages="38-46" 883,pages="38-46"
863,note="Available: 884,annotation={
864\url{http://www.linuxjournal.com/node/7124}
865[Viewed December 26, 2010]"
866,annotation="
867 Reader friendly intro to dcache and RCU. 885 Reader friendly intro to dcache and RCU.
868" 886 http://www.linuxjournal.com/node/7124
887 [Viewed December 26, 2010]
888}
869} 889}
870 890
871@Conference{McKenney04b 891@Conference{McKenney04b
@@ -879,10 +899,10 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis"
879\url{http://www.linux.org.au/conf/2004/abstracts.html#90} 899\url{http://www.linux.org.au/conf/2004/abstracts.html#90}
880\url{http://www.rdrop.com/users/paulmck/RCU/lockperf.2004.01.17a.pdf} 900\url{http://www.rdrop.com/users/paulmck/RCU/lockperf.2004.01.17a.pdf}
881[Viewed June 23, 2004]" 901[Viewed June 23, 2004]"
882,annotation=" 902,annotation={
883 Compares performance of RCU to that of other locking primitives 903 Compares performance of RCU to that of other locking primitives
884 over a number of CPUs (x86, Opteron, Itanium, and PPC). 904 over a number of CPUs (x86, Opteron, Itanium, and PPC).
885" 905}
886} 906}
887 907
888@unpublished{Sarma04a 908@unpublished{Sarma04a
@@ -891,7 +911,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis"
891,month="March" 911,month="March"
892,year="2004" 912,year="2004"
893,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108003746402892&w=2}" 913,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108003746402892&w=2}"
894,annotation="Head of thread: dipankar/2004.03.23/rcu-low-lat.1.patch" 914,annotation={
915 Head of thread: dipankar/2004.03.23/rcu-low-lat.1.patch
916}
895} 917}
896 918
897@unpublished{Sarma04b 919@unpublished{Sarma04b
@@ -900,7 +922,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis"
900,month="March" 922,month="March"
901,year="2004" 923,year="2004"
902,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108016474829546&w=2}" 924,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108016474829546&w=2}"
903,annotation="dipankar/rcuth.2004.03.24/rcu-throttle.patch" 925,annotation={
926 dipankar/rcuth.2004.03.24/rcu-throttle.patch
927}
904} 928}
905 929
906@unpublished{Spraul04a 930@unpublished{Spraul04a
@@ -911,9 +935,9 @@ Michal Ostrowski and Bryan Rosenburg and Jimi Xenidis"
911,note="Available: 935,note="Available:
912\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108546407726602&w=2} 936\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=108546407726602&w=2}
913[Viewed June 23, 2004]" 937[Viewed June 23, 2004]"
914,annotation=" 938,annotation={
915 Hierarchical-bitmap patch for RCU infrastructure. 939 Hierarchical-bitmap patch for RCU infrastructure.
916" 940}
917} 941}
918 942
919@unpublished{Steiner04a 943@unpublished{Steiner04a
@@ -950,10 +974,12 @@ Realtime Applications"
950,year="2004" 974,year="2004"
951,month="June" 975,month="June"
952,pages="182-191" 976,pages="182-191"
953,annotation=" 977,annotation={
954 Describes and compares a number of modifications to the Linux RCU 978 Describes and compares a number of modifications to the Linux RCU
955 implementation that make it friendly to realtime applications. 979 implementation that make it friendly to realtime applications.
956" 980 https://www.usenix.org/conference/2004-usenix-annual-technical-conference/making-rcu-safe-deep-sub-millisecond-response
981 [Viewed July 26, 2012]
982}
957} 983}
958 984
959@phdthesis{PaulEdwardMcKenneyPhD 985@phdthesis{PaulEdwardMcKenneyPhD
@@ -964,14 +990,13 @@ in Operating System Kernels"
964,school="OGI School of Science and Engineering at 990,school="OGI School of Science and Engineering at
965Oregon Health and Sciences University" 991Oregon Health and Sciences University"
966,year="2004" 992,year="2004"
967,note="Available: 993,annotation={
968\url{http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf}
969[Viewed October 15, 2004]"
970,annotation="
971 Describes RCU implementations and presents design patterns 994 Describes RCU implementations and presents design patterns
972 corresponding to common uses of RCU in several operating-system 995 corresponding to common uses of RCU in several operating-system
973 kernels. 996 kernels.
974" 997 http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf
998 [Viewed October 15, 2004]
999}
975} 1000}
976 1001
977@unpublished{PaulEMcKenney2004rcu:dereference 1002@unpublished{PaulEMcKenney2004rcu:dereference
@@ -982,9 +1007,9 @@ Oregon Health and Sciences University"
982,note="Available: 1007,note="Available:
983\url{http://lkml.org/lkml/2004/8/6/237} 1008\url{http://lkml.org/lkml/2004/8/6/237}
984[Viewed June 8, 2010]" 1009[Viewed June 8, 2010]"
985,annotation=" 1010,annotation={
986 Introduce rcu_dereference(). 1011 Introduce rcu_dereference().
987" 1012}
988} 1013}
989 1014
990@unpublished{JimHouston04a 1015@unpublished{JimHouston04a
@@ -995,11 +1020,11 @@ Oregon Health and Sciences University"
995,note="Available: 1020,note="Available:
996\url{http://lkml.org/lkml/2004/8/30/87} 1021\url{http://lkml.org/lkml/2004/8/30/87}
997[Viewed February 17, 2005]" 1022[Viewed February 17, 2005]"
998,annotation=" 1023,annotation={
999 Uses active code in rcu_read_lock() and rcu_read_unlock() to 1024 Uses active code in rcu_read_lock() and rcu_read_unlock() to
1000 make RCU happen, allowing RCU to function on CPUs that do not 1025 make RCU happen, allowing RCU to function on CPUs that do not
1001 receive a scheduling-clock interrupt. 1026 receive a scheduling-clock interrupt.
1002" 1027}
1003} 1028}
1004 1029
1005@unpublished{TomHart04a 1030@unpublished{TomHart04a
@@ -1010,9 +1035,9 @@ Oregon Health and Sciences University"
1010,note="Available: 1035,note="Available:
1011\url{http://www.cs.toronto.edu/~tomhart/masters_thesis.html} 1036\url{http://www.cs.toronto.edu/~tomhart/masters_thesis.html}
1012[Viewed October 15, 2004]" 1037[Viewed October 15, 2004]"
1013,annotation=" 1038,annotation={
1014 Proposes comparing RCU to lock-free methods for the Linux kernel. 1039 Proposes comparing RCU to lock-free methods for the Linux kernel.
1015" 1040}
1016} 1041}
1017 1042
1018@unpublished{Vaddagiri04a 1043@unpublished{Vaddagiri04a
@@ -1023,9 +1048,9 @@ Oregon Health and Sciences University"
1023,note="Available: 1048,note="Available:
1024\url{http://marc.theaimsgroup.com/?t=109395731700004&r=1&w=2} 1049\url{http://marc.theaimsgroup.com/?t=109395731700004&r=1&w=2}
1025[Viewed October 18, 2004]" 1050[Viewed October 18, 2004]"
1026,annotation=" 1051,annotation={
1027 Srivatsa's RCU patch for tcp_ehash lookup. 1052 Srivatsa's RCU patch for tcp_ehash lookup.
1028" 1053}
1029} 1054}
1030 1055
1031@unpublished{Thirumalai04a 1056@unpublished{Thirumalai04a
@@ -1036,9 +1061,9 @@ Oregon Health and Sciences University"
1036,note="Available: 1061,note="Available:
1037\url{http://marc.theaimsgroup.com/?t=109144217400003&r=1&w=2} 1062\url{http://marc.theaimsgroup.com/?t=109144217400003&r=1&w=2}
1038[Viewed October 18, 2004]" 1063[Viewed October 18, 2004]"
1039,annotation=" 1064,annotation={
1040 Ravikiran's lockfree FD patch. 1065 Ravikiran's lockfree FD patch.
1041" 1066}
1042} 1067}
1043 1068
1044@unpublished{Thirumalai04b 1069@unpublished{Thirumalai04b
@@ -1049,9 +1074,9 @@ Oregon Health and Sciences University"
1049,note="Available: 1074,note="Available:
1050\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=109152521410459&w=2} 1075\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=109152521410459&w=2}
1051[Viewed October 18, 2004]" 1076[Viewed October 18, 2004]"
1052,annotation=" 1077,annotation={
1053 Ravikiran's lockfree FD patch. 1078 Ravikiran's lockfree FD patch.
1054" 1079}
1055} 1080}
1056 1081
1057@unpublished{PaulEMcKenney2004rcu:assign:pointer 1082@unpublished{PaulEMcKenney2004rcu:assign:pointer
@@ -1062,9 +1087,9 @@ Oregon Health and Sciences University"
1062,note="Available: 1087,note="Available:
1063\url{http://lkml.org/lkml/2004/10/23/241} 1088\url{http://lkml.org/lkml/2004/10/23/241}
1064[Viewed June 8, 2010]" 1089[Viewed June 8, 2010]"
1065,annotation=" 1090,annotation={
1066 Introduce rcu_assign_pointer(). 1091 Introduce rcu_assign_pointer().
1067" 1092}
1068} 1093}
1069 1094
1070@unpublished{JamesMorris04a 1095@unpublished{JamesMorris04a
@@ -1073,12 +1098,12 @@ Oregon Health and Sciences University"
1073,day="15" 1098,day="15"
1074,month="November" 1099,month="November"
1075,year="2004" 1100,year="2004"
1076,note="Available: 1101,note="\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=110054979416004&w=2}"
1077\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=110054979416004&w=2} 1102,annotation={
1078[Viewed December 10, 2004]"
1079,annotation="
1080 James Morris posts Kaigai Kohei's patch to LKML. 1103 James Morris posts Kaigai Kohei's patch to LKML.
1081" 1104 [Viewed December 10, 2004]
1105 Kaigai's patch is at https://lkml.org/lkml/2004/9/27/52
1106}
1082} 1107}
1083 1108
1084@unpublished{JamesMorris04b 1109@unpublished{JamesMorris04b
@@ -1089,9 +1114,9 @@ Oregon Health and Sciences University"
1089,note="Available: 1114,note="Available:
1090\url{http://www.livejournal.com/users/james_morris/2153.html} 1115\url{http://www.livejournal.com/users/james_morris/2153.html}
1091[Viewed December 10, 2004]" 1116[Viewed December 10, 2004]"
1092,annotation=" 1117,annotation={
1093 RCU helps SELinux performance. ;-) Made LWN. 1118 RCU helps SELinux performance. ;-) Made LWN.
1094" 1119}
1095} 1120}
1096 1121
1097@unpublished{PaulMcKenney2005RCUSemantics 1122@unpublished{PaulMcKenney2005RCUSemantics
@@ -1103,9 +1128,9 @@ Oregon Health and Sciences University"
1103,note="Available: 1128,note="Available:
1104\url{http://www.rdrop.com/users/paulmck/RCU/rcu-semantics.2005.01.30a.pdf} 1129\url{http://www.rdrop.com/users/paulmck/RCU/rcu-semantics.2005.01.30a.pdf}
1105[Viewed December 6, 2009]" 1130[Viewed December 6, 2009]"
1106,annotation=" 1131,annotation={
1107 Early derivation of RCU semantics. 1132 Early derivation of RCU semantics.
1108" 1133}
1109} 1134}
1110 1135
1111@unpublished{PaulMcKenney2005e 1136@unpublished{PaulMcKenney2005e
@@ -1117,10 +1142,10 @@ Oregon Health and Sciences University"
1117,note="Available: 1142,note="Available:
1118\url{http://lkml.org/lkml/2005/3/17/199} 1143\url{http://lkml.org/lkml/2005/3/17/199}
1119[Viewed September 5, 2005]" 1144[Viewed September 5, 2005]"
1120,annotation=" 1145,annotation={
1121 First posting showing how RCU can be safely adapted for 1146 First posting showing how RCU can be safely adapted for
1122 preemptable RCU read side critical sections. 1147 preemptable RCU read side critical sections.
1123" 1148}
1124} 1149}
1125 1150
1126@unpublished{EsbenNeilsen2005a 1151@unpublished{EsbenNeilsen2005a
@@ -1132,12 +1157,12 @@ Oregon Health and Sciences University"
1132,note="Available: 1157,note="Available:
1133\url{http://lkml.org/lkml/2005/3/18/122} 1158\url{http://lkml.org/lkml/2005/3/18/122}
1134[Viewed March 30, 2006]" 1159[Viewed March 30, 2006]"
1135,annotation=" 1160,annotation={
1136 Esben Neilsen suggests read-side suppression of grace-period 1161 Esben Neilsen suggests read-side suppression of grace-period
1137 processing for crude-but-workable realtime RCU. The downside 1162 processing for crude-but-workable realtime RCU. The downside
1138 is indefinite grace periods...But this is OK for experimentation 1163 is indefinite grace periods... But this is OK for experimentation
1139 and testing. 1164 and testing.
1140" 1165}
1141} 1166}
1142 1167
1143@unpublished{TomHart05a 1168@unpublished{TomHart05a
@@ -1149,10 +1174,10 @@ Data Structures"
1149,note="Available: 1174,note="Available:
1150\url{ftp://ftp.cs.toronto.edu/csrg-technical-reports/515/} 1175\url{ftp://ftp.cs.toronto.edu/csrg-technical-reports/515/}
1151[Viewed March 4, 2005]" 1176[Viewed March 4, 2005]"
1152,annotation=" 1177,annotation={
1153 Comparison of RCU, QBSR, and EBSR. RCU wins for read-mostly 1178 Comparison of RCU, QBSR, and EBSR. RCU wins for read-mostly
1154 workloads. ;-) 1179 workloads. ;-)
1155" 1180}
1156} 1181}
1157 1182
1158@unpublished{JonCorbet2005DeprecateSyncKernel 1183@unpublished{JonCorbet2005DeprecateSyncKernel
@@ -1164,10 +1189,10 @@ Data Structures"
1164,note="Available: 1189,note="Available:
1165\url{http://lwn.net/Articles/134484/} 1190\url{http://lwn.net/Articles/134484/}
1166[Viewed May 3, 2005]" 1191[Viewed May 3, 2005]"
1167,annotation=" 1192,annotation={
1168 Jon Corbet describes deprecation of synchronize_kernel() 1193 Jon Corbet describes deprecation of synchronize_kernel()
1169 in favor of synchronize_rcu() and synchronize_sched(). 1194 in favor of synchronize_rcu() and synchronize_sched().
1170" 1195}
1171} 1196}
1172 1197
1173@unpublished{PaulMcKenney05a 1198@unpublished{PaulMcKenney05a
@@ -1178,10 +1203,10 @@ Data Structures"
1178,note="Available: 1203,note="Available:
1179\url{http://lkml.org/lkml/2005/5/9/185} 1204\url{http://lkml.org/lkml/2005/5/9/185}
1180[Viewed May 13, 2005]" 1205[Viewed May 13, 2005]"
1181,annotation=" 1206,annotation={
1182 First publication of working lock-based deferred free patches 1207 First publication of working lock-based deferred free patches
1183 for the CONFIG_PREEMPT_RT environment. 1208 for the CONFIG_PREEMPT_RT environment.
1184" 1209}
1185} 1210}
1186 1211
1187@conference{PaulMcKenney05b 1212@conference{PaulMcKenney05b
@@ -1194,10 +1219,10 @@ Data Structures"
1194,note="Available: 1219,note="Available:
1195\url{http://www.rdrop.com/users/paulmck/RCU/realtimeRCU.2005.04.23a.pdf} 1220\url{http://www.rdrop.com/users/paulmck/RCU/realtimeRCU.2005.04.23a.pdf}
1196[Viewed May 13, 2005]" 1221[Viewed May 13, 2005]"
1197,annotation=" 1222,annotation={
1198 Realtime turns into making RCU yet more realtime friendly. 1223 Realtime turns into making RCU yet more realtime friendly.
1199 http://lca2005.linux.org.au/Papers/Paul%20McKenney/Towards%20Hard%20Realtime%20Response%20from%20the%20Linux%20Kernel/LKS.2005.04.22a.pdf 1224 http://lca2005.linux.org.au/Papers/Paul%20McKenney/Towards%20Hard%20Realtime%20Response%20from%20the%20Linux%20Kernel/LKS.2005.04.22a.pdf
1200" 1225}
1201} 1226}
1202 1227
1203@unpublished{PaulEMcKenneyHomePage 1228@unpublished{PaulEMcKenneyHomePage
@@ -1208,9 +1233,9 @@ Data Structures"
1208,note="Available: 1233,note="Available:
1209\url{http://www.rdrop.com/users/paulmck/} 1234\url{http://www.rdrop.com/users/paulmck/}
1210[Viewed May 25, 2005]" 1235[Viewed May 25, 2005]"
1211,annotation=" 1236,annotation={
1212 Paul McKenney's home page. 1237 Paul McKenney's home page.
1213" 1238}
1214} 1239}
1215 1240
1216@unpublished{PaulEMcKenneyRCUPage 1241@unpublished{PaulEMcKenneyRCUPage
@@ -1221,9 +1246,9 @@ Data Structures"
1221,note="Available: 1246,note="Available:
1222\url{http://www.rdrop.com/users/paulmck/RCU} 1247\url{http://www.rdrop.com/users/paulmck/RCU}
1223[Viewed May 25, 2005]" 1248[Viewed May 25, 2005]"
1224,annotation=" 1249,annotation={
1225 Paul McKenney's RCU page. 1250 Paul McKenney's RCU page.
1226" 1251}
1227} 1252}
1228 1253
1229@unpublished{JosephSeigh2005a 1254@unpublished{JosephSeigh2005a
@@ -1232,10 +1257,10 @@ Data Structures"
1232,month="July" 1257,month="July"
1233,year="2005" 1258,year="2005"
1234,note="Personal communication" 1259,note="Personal communication"
1235,annotation=" 1260,annotation={
1236 Joe Seigh announcing his atomic-ptr-plus project. 1261 Joe Seigh announcing his atomic-ptr-plus project.
1237 http://sourceforge.net/projects/atomic-ptr-plus/ 1262 http://sourceforge.net/projects/atomic-ptr-plus/
1238" 1263}
1239} 1264}
1240 1265
1241@unpublished{JosephSeigh2005b 1266@unpublished{JosephSeigh2005b
@@ -1247,9 +1272,9 @@ Data Structures"
1247,note="Available: 1272,note="Available:
1248\url{http://sourceforge.net/projects/atomic-ptr-plus/} 1273\url{http://sourceforge.net/projects/atomic-ptr-plus/}
1249[Viewed August 8, 2005]" 1274[Viewed August 8, 2005]"
1250,annotation=" 1275,annotation={
1251 Joe Seigh's atomic-ptr-plus project. 1276 Joe Seigh's atomic-ptr-plus project.
1252" 1277}
1253} 1278}
1254 1279
1255@unpublished{PaulMcKenney2005c 1280@unpublished{PaulMcKenney2005c
@@ -1261,9 +1286,9 @@ Data Structures"
1261,note="Available: 1286,note="Available:
1262\url{http://lkml.org/lkml/2005/8/1/155} 1287\url{http://lkml.org/lkml/2005/8/1/155}
1263[Viewed March 14, 2006]" 1288[Viewed March 14, 2006]"
1264,annotation=" 1289,annotation={
1265 First operating counter-based realtime RCU patch posted to LKML. 1290 First operating counter-based realtime RCU patch posted to LKML.
1266" 1291}
1267} 1292}
1268 1293
1269@unpublished{PaulMcKenney2005d 1294@unpublished{PaulMcKenney2005d
@@ -1275,11 +1300,11 @@ Data Structures"
1275,note="Available: 1300,note="Available:
1276\url{http://lkml.org/lkml/2005/8/8/108} 1301\url{http://lkml.org/lkml/2005/8/8/108}
1277[Viewed March 14, 2006]" 1302[Viewed March 14, 2006]"
1278,annotation=" 1303,annotation={
1279 First operating counter-based realtime RCU patch posted to LKML, 1304 First operating counter-based realtime RCU patch posted to LKML,
1280 but fixed so that various unusual combinations of configuration 1305 but fixed so that various unusual combinations of configuration
1281 parameters all function properly. 1306 parameters all function properly.
1282" 1307}
1283} 1308}
1284 1309
1285@unpublished{PaulMcKenney2005rcutorture 1310@unpublished{PaulMcKenney2005rcutorture
@@ -1291,9 +1316,25 @@ Data Structures"
1291,note="Available: 1316,note="Available:
1292\url{http://lkml.org/lkml/2005/10/1/70} 1317\url{http://lkml.org/lkml/2005/10/1/70}
1293[Viewed March 14, 2006]" 1318[Viewed March 14, 2006]"
1294,annotation=" 1319,annotation={
1295 First rcutorture patch. 1320 First rcutorture patch.
1296" 1321}
1322}
1323
1324@unpublished{DavidSMiller2006HashedLocking
1325,Author="David S. Miller"
1326,Title="Re: [{PATCH}, {RFC}] {RCU} : {OOM} avoidance and lower latency"
1327,month="January"
1328,day="6"
1329,year="2006"
1330,note="Available:
1331\url{https://lkml.org/lkml/2006/1/7/22}
1332[Viewed February 29, 2012]"
1333,annotation={
1334 David Miller's view on hashed arrays of locks: used to really
1335 like it, but time he saw an opportunity for this technique,
1336 something else always proved superior. Partitioning or RCU. ;-)
1337}
1297} 1338}
1298 1339
1299@conference{ThomasEHart2006a 1340@conference{ThomasEHart2006a
@@ -1309,10 +1350,10 @@ Distributed Processing Symposium"
1309,note="Available: 1350,note="Available:
1310\url{http://www.rdrop.com/users/paulmck/RCU/hart_ipdps06.pdf} 1351\url{http://www.rdrop.com/users/paulmck/RCU/hart_ipdps06.pdf}
1311[Viewed April 28, 2008]" 1352[Viewed April 28, 2008]"
1312,annotation=" 1353,annotation={
1313 Compares QSBR, HPBR, EBR, and lock-free reference counting. 1354 Compares QSBR, HPBR, EBR, and lock-free reference counting.
1314 http://www.cs.toronto.edu/~tomhart/perflab/ipdps06.tgz 1355 http://www.cs.toronto.edu/~tomhart/perflab/ipdps06.tgz
1315" 1356}
1316} 1357}
1317 1358
1318@unpublished{NickPiggin2006radixtree 1359@unpublished{NickPiggin2006radixtree
@@ -1324,9 +1365,9 @@ Distributed Processing Symposium"
1324,note="Available: 1365,note="Available:
1325\url{http://lkml.org/lkml/2006/6/20/238} 1366\url{http://lkml.org/lkml/2006/6/20/238}
1326[Viewed March 25, 2008]" 1367[Viewed March 25, 2008]"
1327,annotation=" 1368,annotation={
1328 RCU-protected radix tree. 1369 RCU-protected radix tree.
1329" 1370}
1330} 1371}
1331 1372
1332@Conference{PaulEMcKenney2006b 1373@Conference{PaulEMcKenney2006b
@@ -1341,9 +1382,9 @@ Suparna Bhattacharya"
1341\url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} 1382\url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184}
1342\url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf} 1383\url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf}
1343[Viewed January 1, 2007]" 1384[Viewed January 1, 2007]"
1344,annotation=" 1385,annotation={
1345 Described how to improve the -rt implementation of realtime RCU. 1386 Described how to improve the -rt implementation of realtime RCU.
1346" 1387}
1347} 1388}
1348 1389
1349@unpublished{WikipediaRCU 1390@unpublished{WikipediaRCU
@@ -1354,12 +1395,11 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen"
1354,month="July" 1395,month="July"
1355,day="8" 1396,day="8"
1356,year="2006" 1397,year="2006"
1357,note="Available: 1398,note="\url{http://en.wikipedia.org/wiki/Read-copy-update}"
1358\url{http://en.wikipedia.org/wiki/Read-copy-update} 1399,annotation={
1359[Viewed August 21, 2006]"
1360,annotation="
1361 Wikipedia RCU page as of July 8 2006. 1400 Wikipedia RCU page as of July 8 2006.
1362" 1401 [Viewed August 21, 2006]
1402}
1363} 1403}
1364 1404
1365@Conference{NickPiggin2006LocklessPageCache 1405@Conference{NickPiggin2006LocklessPageCache
@@ -1372,9 +1412,9 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen"
1372,note="Available: 1412,note="Available:
1373\url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184} 1413\url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184}
1374[Viewed January 11, 2009]" 1414[Viewed January 11, 2009]"
1375,annotation=" 1415,annotation={
1376 Uses RCU-protected radix tree for a lockless page cache. 1416 Uses RCU-protected radix tree for a lockless page cache.
1377" 1417}
1378} 1418}
1379 1419
1380@unpublished{PaulEMcKenney2006c 1420@unpublished{PaulEMcKenney2006c
@@ -1388,9 +1428,9 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen"
1388Revised: 1428Revised:
1389\url{http://www.rdrop.com/users/paulmck/RCU/srcu.2007.01.14a.pdf} 1429\url{http://www.rdrop.com/users/paulmck/RCU/srcu.2007.01.14a.pdf}
1390[Viewed August 21, 2006]" 1430[Viewed August 21, 2006]"
1391,annotation=" 1431,annotation={
1392 LWN article introducing SRCU. 1432 LWN article introducing SRCU.
1393" 1433}
1394} 1434}
1395 1435
1396@unpublished{RobertOlsson2006a 1436@unpublished{RobertOlsson2006a
@@ -1399,12 +1439,11 @@ Revised:
1399,month="August" 1439,month="August"
1400,day="18" 1440,day="18"
1401,year="2006" 1441,year="2006"
1402,note="Available: 1442,note="\url{http://www.nada.kth.se/~snilsson/publications/TRASH/trash.pdf}"
1403\url{http://www.nada.kth.se/~snilsson/publications/TRASH/trash.pdf} 1443,annotation={
1404[Viewed March 4, 2011]"
1405,annotation="
1406 RCU-protected dynamic trie-hash combination. 1444 RCU-protected dynamic trie-hash combination.
1407" 1445 [Viewed March 4, 2011]
1446}
1408} 1447}
1409 1448
1410@unpublished{ChristophHellwig2006RCU2SRCU 1449@unpublished{ChristophHellwig2006RCU2SRCU
@@ -1426,10 +1465,10 @@ Revised:
1426,note="Available: 1465,note="Available:
1427\url{http://www.rdrop.com/users/paulmck/RCU/linuxusage.html} 1466\url{http://www.rdrop.com/users/paulmck/RCU/linuxusage.html}
1428[Viewed January 14, 2007]" 1467[Viewed January 14, 2007]"
1429,annotation=" 1468,annotation={
1430 Paul McKenney's RCU page showing graphs plotting Linux-kernel 1469 Paul McKenney's RCU page showing graphs plotting Linux-kernel
1431 usage of RCU. 1470 usage of RCU.
1432" 1471}
1433} 1472}
1434 1473
1435@unpublished{PaulEMcKenneyRCUusageRawDataPage 1474@unpublished{PaulEMcKenneyRCUusageRawDataPage
@@ -1440,10 +1479,10 @@ Revised:
1440,note="Available: 1479,note="Available:
1441\url{http://www.rdrop.com/users/paulmck/RCU/linuxusage/rculocktab.html} 1480\url{http://www.rdrop.com/users/paulmck/RCU/linuxusage/rculocktab.html}
1442[Viewed January 14, 2007]" 1481[Viewed January 14, 2007]"
1443,annotation=" 1482,annotation={
1444 Paul McKenney's RCU page showing Linux usage of RCU in tabular 1483 Paul McKenney's RCU page showing Linux usage of RCU in tabular
1445 form, with links to corresponding cscope databases. 1484 form, with links to corresponding cscope databases.
1446" 1485}
1447} 1486}
1448 1487
1449@unpublished{GauthamShenoy2006RCUrwlock 1488@unpublished{GauthamShenoy2006RCUrwlock
@@ -1455,13 +1494,13 @@ Revised:
1455,note="Available: 1494,note="Available:
1456\url{http://lkml.org/lkml/2006/10/26/73} 1495\url{http://lkml.org/lkml/2006/10/26/73}
1457[Viewed January 26, 2009]" 1496[Viewed January 26, 2009]"
1458,annotation=" 1497,annotation={
1459 RCU-based reader-writer lock that allows readers to proceed with 1498 RCU-based reader-writer lock that allows readers to proceed with
1460 no memory barriers or atomic instruction in absence of writers. 1499 no memory barriers or atomic instruction in absence of writers.
1461 If writer do show up, readers must of course wait as required by 1500 If writer do show up, readers must of course wait as required by
1462 the semantics of reader-writer locking. This is a recursive 1501 the semantics of reader-writer locking. This is a recursive
1463 lock. 1502 lock.
1464" 1503}
1465} 1504}
1466 1505
1467@unpublished{JensAxboe2006SlowSRCU 1506@unpublished{JensAxboe2006SlowSRCU
@@ -1474,11 +1513,11 @@ Revised:
1474,note="Available: 1513,note="Available:
1475\url{http://lkml.org/lkml/2006/11/17/56} 1514\url{http://lkml.org/lkml/2006/11/17/56}
1476[Viewed May 28, 2007]" 1515[Viewed May 28, 2007]"
1477,annotation=" 1516,annotation={
1478 SRCU's grace periods are too slow for Jens, even after a 1517 SRCU's grace periods are too slow for Jens, even after a
1479 factor-of-three speedup. 1518 factor-of-three speedup.
1480 Sped-up version of SRCU at http://lkml.org/lkml/2006/11/17/359. 1519 Sped-up version of SRCU at http://lkml.org/lkml/2006/11/17/359.
1481" 1520}
1482} 1521}
1483 1522
1484@unpublished{OlegNesterov2006QRCU 1523@unpublished{OlegNesterov2006QRCU
@@ -1491,10 +1530,10 @@ Revised:
1491,note="Available: 1530,note="Available:
1492\url{http://lkml.org/lkml/2006/11/19/69} 1531\url{http://lkml.org/lkml/2006/11/19/69}
1493[Viewed May 28, 2007]" 1532[Viewed May 28, 2007]"
1494,annotation=" 1533,annotation={
1495 First cut of QRCU. Expanded/corrected versions followed. 1534 First cut of QRCU. Expanded/corrected versions followed.
1496 Used to be OlegNesterov2007QRCU, now time-corrected. 1535 Used to be OlegNesterov2007QRCU, now time-corrected.
1497" 1536}
1498} 1537}
1499 1538
1500@unpublished{OlegNesterov2006aQRCU 1539@unpublished{OlegNesterov2006aQRCU
@@ -1506,10 +1545,10 @@ Revised:
1506,note="Available: 1545,note="Available:
1507\url{http://lkml.org/lkml/2006/11/29/330} 1546\url{http://lkml.org/lkml/2006/11/29/330}
1508[Viewed November 26, 2008]" 1547[Viewed November 26, 2008]"
1509,annotation=" 1548,annotation={
1510 Expanded/corrected version of QRCU. 1549 Expanded/corrected version of QRCU.
1511 Used to be OlegNesterov2007aQRCU, now time-corrected. 1550 Used to be OlegNesterov2007aQRCU, now time-corrected.
1512" 1551}
1513} 1552}
1514 1553
1515@unpublished{EvgeniyPolyakov2006RCUslowdown 1554@unpublished{EvgeniyPolyakov2006RCUslowdown
@@ -1521,10 +1560,10 @@ Revised:
1521,note="Available: 1560,note="Available:
1522\url{http://www.ioremap.net/node/41} 1561\url{http://www.ioremap.net/node/41}
1523[Viewed October 28, 2008]" 1562[Viewed October 28, 2008]"
1524,annotation=" 1563,annotation={
1525 Using RCU as a pure delay leads to a 2.5x slowdown in skbs in 1564 Using RCU as a pure delay leads to a 2.5x slowdown in skbs in
1526 the Linux kernel. 1565 the Linux kernel.
1527" 1566}
1528} 1567}
1529 1568
1530@inproceedings{ChrisMatthews2006ClusteredObjectsRCU 1569@inproceedings{ChrisMatthews2006ClusteredObjectsRCU
@@ -1541,7 +1580,8 @@ Revised:
1541,annotation={ 1580,annotation={
1542 Uses K42's RCU-like functionality to manage clustered-object 1581 Uses K42's RCU-like functionality to manage clustered-object
1543 lifetimes. 1582 lifetimes.
1544}} 1583}
1584}
1545 1585
1546@article{DilmaDaSilva2006K42 1586@article{DilmaDaSilva2006K42
1547,author = {Silva, Dilma Da and Krieger, Orran and Wisniewski, Robert W. and Waterland, Amos and Tam, David and Baumann, Andrew} 1587,author = {Silva, Dilma Da and Krieger, Orran and Wisniewski, Robert W. and Waterland, Amos and Tam, David and Baumann, Andrew}
@@ -1557,7 +1597,8 @@ Revised:
1557,address = {New York, NY, USA} 1597,address = {New York, NY, USA}
1558,annotation={ 1598,annotation={
1559 Describes relationship of K42 generations to RCU. 1599 Describes relationship of K42 generations to RCU.
1560}} 1600}
1601}
1561 1602
1562# CoreyMinyard2007list_splice_rcu 1603# CoreyMinyard2007list_splice_rcu
1563@unpublished{CoreyMinyard2007list:splice:rcu 1604@unpublished{CoreyMinyard2007list:splice:rcu
@@ -1569,9 +1610,9 @@ Revised:
1569,note="Available: 1610,note="Available:
1570\url{http://lkml.org/lkml/2007/1/3/112} 1611\url{http://lkml.org/lkml/2007/1/3/112}
1571[Viewed May 28, 2007]" 1612[Viewed May 28, 2007]"
1572,annotation=" 1613,annotation={
1573 Patch for list_splice_rcu(). 1614 Patch for list_splice_rcu().
1574" 1615}
1575} 1616}
1576 1617
1577@unpublished{PaulEMcKenney2007rcubarrier 1618@unpublished{PaulEMcKenney2007rcubarrier
@@ -1583,9 +1624,9 @@ Revised:
1583,note="Available: 1624,note="Available:
1584\url{http://lwn.net/Articles/217484/} 1625\url{http://lwn.net/Articles/217484/}
1585[Viewed November 22, 2007]" 1626[Viewed November 22, 2007]"
1586,annotation=" 1627,annotation={
1587 LWN article introducing the rcu_barrier() primitive. 1628 LWN article introducing the rcu_barrier() primitive.
1588" 1629}
1589} 1630}
1590 1631
1591@unpublished{PeterZijlstra2007SyncBarrier 1632@unpublished{PeterZijlstra2007SyncBarrier
@@ -1597,10 +1638,10 @@ Revised:
1597,note="Available: 1638,note="Available:
1598\url{http://lkml.org/lkml/2007/1/28/34} 1639\url{http://lkml.org/lkml/2007/1/28/34}
1599[Viewed March 27, 2008]" 1640[Viewed March 27, 2008]"
1600,annotation=" 1641,annotation={
1601 RCU-like implementation for frequent updaters and rare readers(!). 1642 RCU-like implementation for frequent updaters and rare readers(!).
1602 Subsumed into QRCU. Maybe... 1643 Subsumed into QRCU. Maybe...
1603" 1644}
1604} 1645}
1605 1646
1606@unpublished{PaulEMcKenney2007BoostRCU 1647@unpublished{PaulEMcKenney2007BoostRCU
@@ -1609,14 +1650,13 @@ Revised:
1609,month="February" 1650,month="February"
1610,day="5" 1651,day="5"
1611,year="2007" 1652,year="2007"
1612,note="Available: 1653,note="\url{http://lwn.net/Articles/220677/}"
1613\url{http://lwn.net/Articles/220677/} 1654,annotation={
1614Revised:
1615\url{http://www.rdrop.com/users/paulmck/RCU/RCUbooststate.2007.04.16a.pdf}
1616[Viewed September 7, 2007]"
1617,annotation="
1618 LWN article introducing RCU priority boosting. 1655 LWN article introducing RCU priority boosting.
1619" 1656 Revised:
1657 http://www.rdrop.com/users/paulmck/RCU/RCUbooststate.2007.04.16a.pdf
1658 [Viewed September 7, 2007]
1659}
1620} 1660}
1621 1661
1622@unpublished{PaulMcKenney2007QRCUpatch 1662@unpublished{PaulMcKenney2007QRCUpatch
@@ -1628,9 +1668,9 @@ Revised:
1628,note="Available: 1668,note="Available:
1629\url{http://lkml.org/lkml/2007/2/25/18} 1669\url{http://lkml.org/lkml/2007/2/25/18}
1630[Viewed March 27, 2008]" 1670[Viewed March 27, 2008]"
1631,annotation=" 1671,annotation={
1632 Patch for QRCU supplying lock-free fast path. 1672 Patch for QRCU supplying lock-free fast path.
1633" 1673}
1634} 1674}
1635 1675
1636@article{JonathanAppavoo2007K42RCU 1676@article{JonathanAppavoo2007K42RCU
@@ -1647,7 +1687,8 @@ Revised:
1647,address = {New York, NY, USA} 1687,address = {New York, NY, USA}
1648,annotation={ 1688,annotation={
1649 Role of RCU in K42. 1689 Role of RCU in K42.
1650}} 1690}
1691}
1651 1692
1652@conference{RobertOlsson2007Trash 1693@conference{RobertOlsson2007Trash
1653,Author="Robert Olsson and Stefan Nilsson" 1694,Author="Robert Olsson and Stefan Nilsson"
@@ -1658,9 +1699,9 @@ Revised:
1658,note="Available: 1699,note="Available:
1659\url{http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4281239} 1700\url{http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4281239}
1660[Viewed October 1, 2010]" 1701[Viewed October 1, 2010]"
1661,annotation=" 1702,annotation={
1662 RCU-protected dynamic trie-hash combination. 1703 RCU-protected dynamic trie-hash combination.
1663" 1704}
1664} 1705}
1665 1706
1666@conference{PeterZijlstra2007ConcurrentPagecacheRCU 1707@conference{PeterZijlstra2007ConcurrentPagecacheRCU
@@ -1673,10 +1714,10 @@ Revised:
1673,note="Available: 1714,note="Available:
1674\url{http://ols.108.redhat.com/2007/Reprints/zijlstra-Reprint.pdf} 1715\url{http://ols.108.redhat.com/2007/Reprints/zijlstra-Reprint.pdf}
1675[Viewed April 14, 2008]" 1716[Viewed April 14, 2008]"
1676,annotation=" 1717,annotation={
1677 Page-cache modifications permitting RCU readers and concurrent 1718 Page-cache modifications permitting RCU readers and concurrent
1678 updates. 1719 updates.
1679" 1720}
1680} 1721}
1681 1722
1682@unpublished{PaulEMcKenney2007whatisRCU 1723@unpublished{PaulEMcKenney2007whatisRCU
@@ -1701,11 +1742,11 @@ Revised:
1701,note="Available: 1742,note="Available:
1702\url{http://lwn.net/Articles/243851/} 1743\url{http://lwn.net/Articles/243851/}
1703[Viewed September 8, 2007]" 1744[Viewed September 8, 2007]"
1704,annotation=" 1745,annotation={
1705 LWN article describing Promela and spin, and also using Oleg 1746 LWN article describing Promela and spin, and also using Oleg
1706 Nesterov's QRCU as an example (with Paul McKenney's fastpath). 1747 Nesterov's QRCU as an example (with Paul McKenney's fastpath).
1707 Merged patch at: http://lkml.org/lkml/2007/2/25/18 1748 Merged patch at: http://lkml.org/lkml/2007/2/25/18
1708" 1749}
1709} 1750}
1710 1751
1711@unpublished{PaulEMcKenney2007WG21DDOatomics 1752@unpublished{PaulEMcKenney2007WG21DDOatomics
@@ -1714,12 +1755,12 @@ Revised:
1714,month="August" 1755,month="August"
1715,day="3" 1756,day="3"
1716,year="2007" 1757,year="2007"
1717,note="Preprint: 1758,note="Available:
1718\url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm} 1759\url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm}
1719[Viewed December 7, 2009]" 1760[Viewed December 7, 2009]"
1720,annotation=" 1761,annotation={
1721 RCU for C++, parts 1 and 2. 1762 RCU for C++, parts 1 and 2.
1722" 1763}
1723} 1764}
1724 1765
1725@unpublished{PaulEMcKenney2007WG21DDOannotation 1766@unpublished{PaulEMcKenney2007WG21DDOannotation
@@ -1728,12 +1769,12 @@ Revised:
1728,month="September" 1769,month="September"
1729,day="18" 1770,day="18"
1730,year="2008" 1771,year="2008"
1731,note="Preprint: 1772,note="Available:
1732\url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2782.htm} 1773\url{http://open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2782.htm}
1733[Viewed December 7, 2009]" 1774[Viewed December 7, 2009]"
1734,annotation=" 1775,annotation={
1735 RCU for C++, part 2, updated many times. 1776 RCU for C++, part 2, updated many times.
1736" 1777}
1737} 1778}
1738 1779
1739@unpublished{PaulEMcKenney2007PreemptibleRCUPatch 1780@unpublished{PaulEMcKenney2007PreemptibleRCUPatch
@@ -1745,10 +1786,10 @@ Revised:
1745,note="Available: 1786,note="Available:
1746\url{http://lkml.org/lkml/2007/9/10/213} 1787\url{http://lkml.org/lkml/2007/9/10/213}
1747[Viewed October 25, 2007]" 1788[Viewed October 25, 2007]"
1748,annotation=" 1789,annotation={
1749 Final patch for preemptable RCU to -rt. (Later patches were 1790 Final patch for preemptable RCU to -rt. (Later patches were
1750 to mainline, eventually incorporated.) 1791 to mainline, eventually incorporated.)
1751" 1792}
1752} 1793}
1753 1794
1754@unpublished{PaulEMcKenney2007PreemptibleRCU 1795@unpublished{PaulEMcKenney2007PreemptibleRCU
@@ -1760,9 +1801,9 @@ Revised:
1760,note="Available: 1801,note="Available:
1761\url{http://lwn.net/Articles/253651/} 1802\url{http://lwn.net/Articles/253651/}
1762[Viewed October 25, 2007]" 1803[Viewed October 25, 2007]"
1763,annotation=" 1804,annotation={
1764 LWN article describing the design of preemptible RCU. 1805 LWN article describing the design of preemptible RCU.
1765" 1806}
1766} 1807}
1767 1808
1768@article{ThomasEHart2007a 1809@article{ThomasEHart2007a
@@ -1783,6 +1824,7 @@ Revised:
1783} 1824}
1784} 1825}
1785 1826
1827# MathieuDesnoyers2007call_rcu_schedNeeded
1786@unpublished{MathieuDesnoyers2007call:rcu:schedNeeded 1828@unpublished{MathieuDesnoyers2007call:rcu:schedNeeded
1787,Author="Mathieu Desnoyers" 1829,Author="Mathieu Desnoyers"
1788,Title="Re: [patch 1/2] {Linux} Kernel Markers - Support Multiple Probes" 1830,Title="Re: [patch 1/2] {Linux} Kernel Markers - Support Multiple Probes"
@@ -1792,9 +1834,9 @@ Revised:
1792,note="Available: 1834,note="Available:
1793\url{http://lkml.org/lkml/2007/12/20/244} 1835\url{http://lkml.org/lkml/2007/12/20/244}
1794[Viewed March 27, 2008]" 1836[Viewed March 27, 2008]"
1795,annotation=" 1837,annotation={
1796 Request for call_rcu_sched() and rcu_barrier_sched(). 1838 Request for call_rcu_sched() and rcu_barrier_sched().
1797" 1839}
1798} 1840}
1799 1841
1800 1842
@@ -1815,11 +1857,11 @@ Revised:
1815,note="Available: 1857,note="Available:
1816\url{http://lwn.net/Articles/262464/} 1858\url{http://lwn.net/Articles/262464/}
1817[Viewed December 27, 2007]" 1859[Viewed December 27, 2007]"
1818,annotation=" 1860,annotation={
1819 Lays out the three basic components of RCU: (1) publish-subscribe, 1861 Lays out the three basic components of RCU: (1) publish-subscribe,
1820 (2) wait for pre-existing readers to complete, and (2) maintain 1862 (2) wait for pre-existing readers to complete, and (2) maintain
1821 multiple versions. 1863 multiple versions.
1822" 1864}
1823} 1865}
1824 1866
1825@unpublished{PaulEMcKenney2008WhatIsRCUUsage 1867@unpublished{PaulEMcKenney2008WhatIsRCUUsage
@@ -1831,7 +1873,7 @@ Revised:
1831,note="Available: 1873,note="Available:
1832\url{http://lwn.net/Articles/263130/} 1874\url{http://lwn.net/Articles/263130/}
1833[Viewed January 4, 2008]" 1875[Viewed January 4, 2008]"
1834,annotation=" 1876,annotation={
1835 Lays out six uses of RCU: 1877 Lays out six uses of RCU:
1836 1. RCU is a Reader-Writer Lock Replacement 1878 1. RCU is a Reader-Writer Lock Replacement
1837 2. RCU is a Restricted Reference-Counting Mechanism 1879 2. RCU is a Restricted Reference-Counting Mechanism
@@ -1839,7 +1881,7 @@ Revised:
1839 4. RCU is a Poor Man's Garbage Collector 1881 4. RCU is a Poor Man's Garbage Collector
1840 5. RCU is a Way of Providing Existence Guarantees 1882 5. RCU is a Way of Providing Existence Guarantees
1841 6. RCU is a Way of Waiting for Things to Finish 1883 6. RCU is a Way of Waiting for Things to Finish
1842" 1884}
1843} 1885}
1844 1886
1845@unpublished{PaulEMcKenney2008WhatIsRCUAPI 1887@unpublished{PaulEMcKenney2008WhatIsRCUAPI
@@ -1851,10 +1893,10 @@ Revised:
1851,note="Available: 1893,note="Available:
1852\url{http://lwn.net/Articles/264090/} 1894\url{http://lwn.net/Articles/264090/}
1853[Viewed January 10, 2008]" 1895[Viewed January 10, 2008]"
1854,annotation=" 1896,annotation={
1855 Gives an overview of the Linux-kernel RCU API and a brief annotated RCU 1897 Gives an overview of the Linux-kernel RCU API and a brief annotated RCU
1856 bibliography. 1898 bibliography.
1857" 1899}
1858} 1900}
1859 1901
1860# 1902#
@@ -1872,10 +1914,10 @@ Revised:
1872,note="Available: 1914,note="Available:
1873\url{http://lkml.org/lkml/2008/1/29/208} 1915\url{http://lkml.org/lkml/2008/1/29/208}
1874[Viewed March 27, 2008]" 1916[Viewed March 27, 2008]"
1875,annotation=" 1917,annotation={
1876 Patch that prevents preemptible RCU from unnecessarily waking 1918 Patch that prevents preemptible RCU from unnecessarily waking
1877 up dynticks-idle CPUs. 1919 up dynticks-idle CPUs.
1878" 1920}
1879} 1921}
1880 1922
1881@unpublished{PaulEMcKenney2008LKMLDependencyOrdering 1923@unpublished{PaulEMcKenney2008LKMLDependencyOrdering
@@ -1887,9 +1929,9 @@ Revised:
1887,note="Available: 1929,note="Available:
1888\url{http://lkml.org/lkml/2008/2/2/255} 1930\url{http://lkml.org/lkml/2008/2/2/255}
1889[Viewed October 18, 2008]" 1931[Viewed October 18, 2008]"
1890,annotation=" 1932,annotation={
1891 Explanation of compilers violating dependency ordering. 1933 Explanation of compilers violating dependency ordering.
1892" 1934}
1893} 1935}
1894 1936
1895@Conference{PaulEMcKenney2008Beijing 1937@Conference{PaulEMcKenney2008Beijing
@@ -1916,24 +1958,26 @@ lot of {Linux} into your technology!!!"
1916,note="Available: 1958,note="Available:
1917\url{http://lwn.net/Articles/279077/} 1959\url{http://lwn.net/Articles/279077/}
1918[Viewed April 24, 2008]" 1960[Viewed April 24, 2008]"
1919,annotation=" 1961,annotation={
1920 Describes use of Promela and Spin to validate (and fix!) the 1962 Describes use of Promela and Spin to validate (and fix!) the
1921 dynticks/RCU interface. 1963 dynticks/RCU interface.
1922" 1964}
1923} 1965}
1924 1966
1925@article{DinakarGuniguntala2008IBMSysJ 1967@article{DinakarGuniguntala2008IBMSysJ
1926,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole" 1968,author="D. Guniguntala and P. E. McKenney and J. Triplett and J. Walpole"
1927,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}" 1969,title="The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with {Linux}"
1928,Year="2008" 1970,Year="2008"
1929,Month="April-June" 1971,Month="May"
1930,journal="IBM Systems Journal" 1972,journal="IBM Systems Journal"
1931,volume="47" 1973,volume="47"
1932,number="2" 1974,number="2"
1933,pages="221-236" 1975,pages="221-236"
1934,annotation=" 1976,annotation={
1935 RCU, realtime RCU, sleepable RCU, performance. 1977 RCU, realtime RCU, sleepable RCU, performance.
1936" 1978 http://www.research.ibm.com/journal/sj/472/guniguntala.pdf
1979 [Viewed April 24, 2008]
1980}
1937} 1981}
1938 1982
1939@unpublished{LaiJiangshan2008NewClassicAlgorithm 1983@unpublished{LaiJiangshan2008NewClassicAlgorithm
@@ -1945,11 +1989,11 @@ lot of {Linux} into your technology!!!"
1945,note="Available: 1989,note="Available:
1946\url{http://lkml.org/lkml/2008/6/2/539} 1990\url{http://lkml.org/lkml/2008/6/2/539}
1947[Viewed December 10, 2008]" 1991[Viewed December 10, 2008]"
1948,annotation=" 1992,annotation={
1949 Updated RCU classic algorithm. Introduced multi-tailed list 1993 Updated RCU classic algorithm. Introduced multi-tailed list
1950 for RCU callbacks and also pulling common code into 1994 for RCU callbacks and also pulling common code into
1951 __call_rcu(). 1995 __call_rcu().
1952" 1996}
1953} 1997}
1954 1998
1955@article{PaulEMcKenney2008RCUOSR 1999@article{PaulEMcKenney2008RCUOSR
@@ -1966,6 +2010,7 @@ lot of {Linux} into your technology!!!"
1966,address="New York, NY, USA" 2010,address="New York, NY, USA"
1967,annotation={ 2011,annotation={
1968 Linux changed RCU to a far greater degree than RCU has changed Linux. 2012 Linux changed RCU to a far greater degree than RCU has changed Linux.
2013 http://portal.acm.org/citation.cfm?doid=1400097.1400099
1969} 2014}
1970} 2015}
1971 2016
@@ -1978,10 +2023,10 @@ lot of {Linux} into your technology!!!"
1978,note="Available: 2023,note="Available:
1979\url{http://lkml.org/lkml/2008/8/21/336} 2024\url{http://lkml.org/lkml/2008/8/21/336}
1980[Viewed December 8, 2008]" 2025[Viewed December 8, 2008]"
1981,annotation=" 2026,annotation={
1982 State-based RCU. One key thing that this patch does is to 2027 State-based RCU. One key thing that this patch does is to
1983 separate the dynticks handling of NMIs and IRQs. 2028 separate the dynticks handling of NMIs and IRQs.
1984" 2029}
1985} 2030}
1986 2031
1987@unpublished{ManfredSpraul2008dyntickIRQNMI 2032@unpublished{ManfredSpraul2008dyntickIRQNMI
@@ -1993,12 +2038,13 @@ lot of {Linux} into your technology!!!"
1993,note="Available: 2038,note="Available:
1994\url{http://lkml.org/lkml/2008/9/6/86} 2039\url{http://lkml.org/lkml/2008/9/6/86}
1995[Viewed December 8, 2008]" 2040[Viewed December 8, 2008]"
1996,annotation=" 2041,annotation={
1997 Manfred notes a fix required to my attempt to separate irq 2042 Manfred notes a fix required to my attempt to separate irq
1998 and NMI processing for hierarchical RCU's dynticks interface. 2043 and NMI processing for hierarchical RCU's dynticks interface.
1999" 2044}
2000} 2045}
2001 2046
2047# Was PaulEMcKenney2011cyclicRCU
2002@techreport{PaulEMcKenney2008cyclicRCU 2048@techreport{PaulEMcKenney2008cyclicRCU
2003,author="Paul E. McKenney" 2049,author="Paul E. McKenney"
2004,title="Efficient Support of Consistent Cyclic Search With Read-Copy Update" 2050,title="Efficient Support of Consistent Cyclic Search With Read-Copy Update"
@@ -2008,11 +2054,11 @@ lot of {Linux} into your technology!!!"
2008,number="US Patent 7,426,511" 2054,number="US Patent 7,426,511"
2009,month="September" 2055,month="September"
2010,pages="23" 2056,pages="23"
2011,annotation=" 2057,annotation={
2012 Maintains an additional level of indirection to allow 2058 Maintains an additional level of indirection to allow
2013 readers to confine themselves to the desired snapshot of the 2059 readers to confine themselves to the desired snapshot of the
2014 data structure. Only permits one update at a time. 2060 data structure. Only permits one update at a time.
2015" 2061}
2016} 2062}
2017 2063
2018@unpublished{PaulEMcKenney2008HierarchicalRCU 2064@unpublished{PaulEMcKenney2008HierarchicalRCU
@@ -2021,13 +2067,12 @@ lot of {Linux} into your technology!!!"
2021,month="November" 2067,month="November"
2022,day="3" 2068,day="3"
2023,year="2008" 2069,year="2008"
2024,note="Available: 2070,note="\url{http://lwn.net/Articles/305782/}"
2025\url{http://lwn.net/Articles/305782/} 2071,annotation={
2026[Viewed November 6, 2008]"
2027,annotation="
2028 RCU with combining-tree-based grace-period detection, 2072 RCU with combining-tree-based grace-period detection,
2029 permitting it to handle thousands of CPUs. 2073 permitting it to handle thousands of CPUs.
2030" 2074 [Viewed November 6, 2008]
2075}
2031} 2076}
2032 2077
2033@unpublished{PaulEMcKenney2009BloatwatchRCU 2078@unpublished{PaulEMcKenney2009BloatwatchRCU
@@ -2039,10 +2084,10 @@ lot of {Linux} into your technology!!!"
2039,note="Available: 2084,note="Available:
2040\url{http://lkml.org/lkml/2009/1/14/449} 2085\url{http://lkml.org/lkml/2009/1/14/449}
2041[Viewed January 15, 2009]" 2086[Viewed January 15, 2009]"
2042,annotation=" 2087,annotation={
2043 Small-footprint implementation of RCU for uniprocessor 2088 Small-footprint implementation of RCU for uniprocessor
2044 embedded applications -- and also for exposition purposes. 2089 embedded applications -- and also for exposition purposes.
2045" 2090}
2046} 2091}
2047 2092
2048@conference{PaulEMcKenney2009MaliciousURCU 2093@conference{PaulEMcKenney2009MaliciousURCU
@@ -2055,9 +2100,9 @@ lot of {Linux} into your technology!!!"
2055,note="Available: 2100,note="Available:
2056\url{http://www.rdrop.com/users/paulmck/RCU/urcutorture.2009.01.22a.pdf} 2101\url{http://www.rdrop.com/users/paulmck/RCU/urcutorture.2009.01.22a.pdf}
2057[Viewed February 2, 2009]" 2102[Viewed February 2, 2009]"
2058,annotation=" 2103,annotation={
2059 Realtime RCU and torture-testing RCU uses. 2104 Realtime RCU and torture-testing RCU uses.
2060" 2105}
2061} 2106}
2062 2107
2063@unpublished{MathieuDesnoyers2009URCU 2108@unpublished{MathieuDesnoyers2009URCU
@@ -2066,16 +2111,14 @@ lot of {Linux} into your technology!!!"
2066,month="February" 2111,month="February"
2067,day="5" 2112,day="5"
2068,year="2009" 2113,year="2009"
2069,note="Available: 2114,note="\url{http://lttng.org/urcu}"
2070\url{http://lkml.org/lkml/2009/2/5/572} 2115,annotation={
2071\url{http://lttng.org/urcu}
2072[Viewed February 20, 2009]"
2073,annotation="
2074 Mathieu Desnoyers's user-space RCU implementation. 2116 Mathieu Desnoyers's user-space RCU implementation.
2075 git://lttng.org/userspace-rcu.git 2117 git://lttng.org/userspace-rcu.git
2076 http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git 2118 http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git
2077 http://lttng.org/urcu 2119 http://lttng.org/urcu
2078" 2120 http://lkml.org/lkml/2009/2/5/572
2121}
2079} 2122}
2080 2123
2081@unpublished{PaulEMcKenney2009LWNBloatWatchRCU 2124@unpublished{PaulEMcKenney2009LWNBloatWatchRCU
@@ -2087,9 +2130,24 @@ lot of {Linux} into your technology!!!"
2087,note="Available: 2130,note="Available:
2088\url{http://lwn.net/Articles/323929/} 2131\url{http://lwn.net/Articles/323929/}
2089[Viewed March 20, 2009]" 2132[Viewed March 20, 2009]"
2090,annotation=" 2133,annotation={
2091 Uniprocessor assumptions allow simplified RCU implementation. 2134 Uniprocessor assumptions allow simplified RCU implementation.
2092" 2135}
2136}
2137
2138@unpublished{EvgeniyPolyakov2009EllipticsNetwork
2139,Author="Evgeniy Polyakov"
2140,Title="The Elliptics Network"
2141,month="April"
2142,day="17"
2143,year="2009"
2144,note="Available:
2145\url{http://www.ioremap.net/projects/elliptics}
2146[Viewed April 30, 2009]"
2147,annotation={
2148 Distributed hash table with transactions, using elliptic
2149 hash functions to distribute data.
2150}
2093} 2151}
2094 2152
2095@unpublished{PaulEMcKenney2009expeditedRCU 2153@unpublished{PaulEMcKenney2009expeditedRCU
@@ -2101,9 +2159,9 @@ lot of {Linux} into your technology!!!"
2101,note="Available: 2159,note="Available:
2102\url{http://lkml.org/lkml/2009/6/25/306} 2160\url{http://lkml.org/lkml/2009/6/25/306}
2103[Viewed August 16, 2009]" 2161[Viewed August 16, 2009]"
2104,annotation=" 2162,annotation={
2105 First posting of expedited RCU to be accepted into -tip. 2163 First posting of expedited RCU to be accepted into -tip.
2106" 2164}
2107} 2165}
2108 2166
2109@unpublished{PaulEMcKenney2009fastRTRCU 2167@unpublished{PaulEMcKenney2009fastRTRCU
@@ -2115,21 +2173,21 @@ lot of {Linux} into your technology!!!"
2115,note="Available: 2173,note="Available:
2116\url{http://lkml.org/lkml/2009/7/23/294} 2174\url{http://lkml.org/lkml/2009/7/23/294}
2117[Viewed August 15, 2009]" 2175[Viewed August 15, 2009]"
2118,annotation=" 2176,annotation={
2119 First posting of simple and fast preemptable RCU. 2177 First posting of simple and fast preemptable RCU.
2120" 2178}
2121} 2179}
2122 2180
2123@InProceedings{JoshTriplett2009RPHash 2181@unpublished{JoshTriplett2009RPHash
2124,Author="Josh Triplett" 2182,Author="Josh Triplett"
2125,Title="Scalable concurrent hash tables via relativistic programming" 2183,Title="Scalable concurrent hash tables via relativistic programming"
2126,month="September" 2184,month="September"
2127,year="2009" 2185,year="2009"
2128,booktitle="Linux Plumbers Conference 2009" 2186,note="Linux Plumbers Conference presentation"
2129,annotation=" 2187,annotation={
2130 RP fun with hash tables. 2188 RP fun with hash tables.
2131 See also JoshTriplett2010RPHash 2189 Superseded by JoshTriplett2010RPHash
2132" 2190}
2133} 2191}
2134 2192
2135@phdthesis{MathieuDesnoyersPhD 2193@phdthesis{MathieuDesnoyersPhD
@@ -2154,9 +2212,9 @@ lot of {Linux} into your technology!!!"
2154,note="Available: 2212,note="Available:
2155\url{http://wiki.cs.pdx.edu/rp/} 2213\url{http://wiki.cs.pdx.edu/rp/}
2156[Viewed December 9, 2009]" 2214[Viewed December 9, 2009]"
2157,annotation=" 2215,annotation={
2158 Main Relativistic Programming Wiki. 2216 Main Relativistic Programming Wiki.
2159" 2217}
2160} 2218}
2161 2219
2162@conference{PaulEMcKenney2009DeterministicRCU 2220@conference{PaulEMcKenney2009DeterministicRCU
@@ -2180,9 +2238,9 @@ lot of {Linux} into your technology!!!"
2180,note="Available: 2238,note="Available:
2181\url{http://paulmck.livejournal.com/14639.html} 2239\url{http://paulmck.livejournal.com/14639.html}
2182[Viewed June 4, 2010]" 2240[Viewed June 4, 2010]"
2183,annotation=" 2241,annotation={
2184 Day-one bug in Tree RCU that took forever to track down. 2242 Day-one bug in Tree RCU that took forever to track down.
2185" 2243}
2186} 2244}
2187 2245
2188@unpublished{MathieuDesnoyers2009defer:rcu 2246@unpublished{MathieuDesnoyers2009defer:rcu
@@ -2193,10 +2251,10 @@ lot of {Linux} into your technology!!!"
2193,note="Available: 2251,note="Available:
2194\url{http://lkml.org/lkml/2009/10/18/129} 2252\url{http://lkml.org/lkml/2009/10/18/129}
2195[Viewed December 29, 2009]" 2253[Viewed December 29, 2009]"
2196,annotation=" 2254,annotation={
2197 Mathieu proposed defer_rcu() with fixed-size per-thread pool 2255 Mathieu proposed defer_rcu() with fixed-size per-thread pool
2198 of RCU callbacks. 2256 of RCU callbacks.
2199" 2257}
2200} 2258}
2201 2259
2202@unpublished{MathieuDesnoyers2009VerifPrePub 2260@unpublished{MathieuDesnoyers2009VerifPrePub
@@ -2205,10 +2263,10 @@ lot of {Linux} into your technology!!!"
2205,month="December" 2263,month="December"
2206,year="2009" 2264,year="2009"
2207,note="Submitted to IEEE TPDS" 2265,note="Submitted to IEEE TPDS"
2208,annotation=" 2266,annotation={
2209 OOMem model for Mathieu's user-level RCU mechanical proof of 2267 OOMem model for Mathieu's user-level RCU mechanical proof of
2210 correctness. 2268 correctness.
2211" 2269}
2212} 2270}
2213 2271
2214@unpublished{MathieuDesnoyers2009URCUPrePub 2272@unpublished{MathieuDesnoyers2009URCUPrePub
@@ -2216,15 +2274,15 @@ lot of {Linux} into your technology!!!"
2216,Title="User-Level Implementations of Read-Copy Update" 2274,Title="User-Level Implementations of Read-Copy Update"
2217,month="December" 2275,month="December"
2218,year="2010" 2276,year="2010"
2219,url=\url{http://www.computer.org/csdl/trans/td/2012/02/ttd2012020375-abs.html} 2277,url={\url{http://www.computer.org/csdl/trans/td/2012/02/ttd2012020375-abs.html}}
2220,annotation=" 2278,annotation={
2221 RCU overview, desiderata, semi-formal semantics, user-level RCU 2279 RCU overview, desiderata, semi-formal semantics, user-level RCU
2222 usage scenarios, three classes of RCU implementation, wait-free 2280 usage scenarios, three classes of RCU implementation, wait-free
2223 RCU updates, RCU grace-period batching, update overhead, 2281 RCU updates, RCU grace-period batching, update overhead,
2224 http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf 2282 http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf
2225 http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf 2283 http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf
2226 Superseded by MathieuDesnoyers2012URCU. 2284 Superseded by MathieuDesnoyers2012URCU.
2227" 2285}
2228} 2286}
2229 2287
2230@inproceedings{HariKannan2009DynamicAnalysisRCU 2288@inproceedings{HariKannan2009DynamicAnalysisRCU
@@ -2240,7 +2298,8 @@ lot of {Linux} into your technology!!!"
2240,address = {New York, NY, USA} 2298,address = {New York, NY, USA}
2241,annotation={ 2299,annotation={
2242 Uses RCU to protect metadata used in dynamic analysis. 2300 Uses RCU to protect metadata used in dynamic analysis.
2243}} 2301}
2302}
2244 2303
2245@conference{PaulEMcKenney2010SimpleOptRCU 2304@conference{PaulEMcKenney2010SimpleOptRCU
2246,Author="Paul E. McKenney" 2305,Author="Paul E. McKenney"
@@ -2252,10 +2311,10 @@ lot of {Linux} into your technology!!!"
2252,note="Available: 2311,note="Available:
2253\url{http://www.rdrop.com/users/paulmck/RCU/SimplicityThruOptimization.2010.01.21f.pdf} 2312\url{http://www.rdrop.com/users/paulmck/RCU/SimplicityThruOptimization.2010.01.21f.pdf}
2254[Viewed October 10, 2010]" 2313[Viewed October 10, 2010]"
2255,annotation=" 2314,annotation={
2256 TREE_PREEMPT_RCU optimizations greatly simplified the old 2315 TREE_PREEMPT_RCU optimizations greatly simplified the old
2257 PREEMPT_RCU implementation. 2316 PREEMPT_RCU implementation.
2258" 2317}
2259} 2318}
2260 2319
2261@unpublished{PaulEMcKenney2010LockdepRCU 2320@unpublished{PaulEMcKenney2010LockdepRCU
@@ -2264,12 +2323,11 @@ lot of {Linux} into your technology!!!"
2264,month="February" 2323,month="February"
2265,year="2010" 2324,year="2010"
2266,day="1" 2325,day="1"
2267,note="Available: 2326,note="\url{https://lwn.net/Articles/371986/}"
2268\url{https://lwn.net/Articles/371986/} 2327,annotation={
2269[Viewed June 4, 2010]"
2270,annotation="
2271 CONFIG_PROVE_RCU, or at least an early version. 2328 CONFIG_PROVE_RCU, or at least an early version.
2272" 2329 [Viewed June 4, 2010]
2330}
2273} 2331}
2274 2332
2275@unpublished{AviKivity2010KVM2RCU 2333@unpublished{AviKivity2010KVM2RCU
@@ -2280,10 +2338,10 @@ lot of {Linux} into your technology!!!"
2280,note="Available: 2338,note="Available:
2281\url{http://www.mail-archive.com/kvm@vger.kernel.org/msg28640.html} 2339\url{http://www.mail-archive.com/kvm@vger.kernel.org/msg28640.html}
2282[Viewed March 20, 2010]" 2340[Viewed March 20, 2010]"
2283,annotation=" 2341,annotation={
2284 Use of RCU permits KVM to increase the size of guest OSes from 2342 Use of RCU permits KVM to increase the size of guest OSes from
2285 16 CPUs to 64 CPUs. 2343 16 CPUs to 64 CPUs.
2286" 2344}
2287} 2345}
2288 2346
2289@unpublished{HerbertXu2010RCUResizeHash 2347@unpublished{HerbertXu2010RCUResizeHash
@@ -2297,7 +2355,19 @@ lot of {Linux} into your technology!!!"
2297,annotation={ 2355,annotation={
2298 Use a pair of list_head structures to support RCU-protected 2356 Use a pair of list_head structures to support RCU-protected
2299 resizable hash tables. 2357 resizable hash tables.
2300}} 2358}
2359}
2360
2361@mastersthesis{AbhinavDuggal2010Masters
2362,author="Abhinav Duggal"
2363,title="Stopping Data Races Using Redflag"
2364,school="Stony Brook University"
2365,year="2010"
2366,annotation={
2367 Data-race detector incorporating RCU.
2368 http://www.filesystems.org/docs/abhinav-thesis/abhinav_thesis.pdf
2369}
2370}
2301 2371
2302@article{JoshTriplett2010RPHash 2372@article{JoshTriplett2010RPHash
2303,author="Josh Triplett and Paul E. McKenney and Jonathan Walpole" 2373,author="Josh Triplett and Paul E. McKenney and Jonathan Walpole"
@@ -2310,7 +2380,8 @@ lot of {Linux} into your technology!!!"
2310,annotation={ 2380,annotation={
2311 RP fun with hash tables. 2381 RP fun with hash tables.
2312 http://portal.acm.org/citation.cfm?id=1842733.1842750 2382 http://portal.acm.org/citation.cfm?id=1842733.1842750
2313}} 2383}
2384}
2314 2385
2315@unpublished{PaulEMcKenney2010RCUAPI 2386@unpublished{PaulEMcKenney2010RCUAPI
2316,Author="Paul E. McKenney" 2387,Author="Paul E. McKenney"
@@ -2318,12 +2389,11 @@ lot of {Linux} into your technology!!!"
2318,month="December" 2389,month="December"
2319,day="8" 2390,day="8"
2320,year="2010" 2391,year="2010"
2321,note="Available: 2392,note="\url{http://lwn.net/Articles/418853/}"
2322\url{http://lwn.net/Articles/418853/} 2393,annotation={
2323[Viewed December 8, 2010]"
2324,annotation="
2325 Includes updated software-engineering features. 2394 Includes updated software-engineering features.
2326" 2395 [Viewed December 8, 2010]
2396}
2327} 2397}
2328 2398
2329@mastersthesis{AndrejPodzimek2010masters 2399@mastersthesis{AndrejPodzimek2010masters
@@ -2338,7 +2408,8 @@ lot of {Linux} into your technology!!!"
2338 Reviews RCU implementations and creates a few for OpenSolaris. 2408 Reviews RCU implementations and creates a few for OpenSolaris.
2339 Drives quiescent-state detection from RCU read-side primitives, 2409 Drives quiescent-state detection from RCU read-side primitives,
2340 in a manner roughly similar to that of Jim Houston. 2410 in a manner roughly similar to that of Jim Houston.
2341}} 2411}
2412}
2342 2413
2343@unpublished{LinusTorvalds2011Linux2:6:38:rc1:NPigginVFS 2414@unpublished{LinusTorvalds2011Linux2:6:38:rc1:NPigginVFS
2344,Author="Linus Torvalds" 2415,Author="Linus Torvalds"
@@ -2358,7 +2429,8 @@ lot of {Linux} into your technology!!!"
2358 of the most expensive parts of path component lookup, which was the 2429 of the most expensive parts of path component lookup, which was the
2359 d_lock on every component lookup. So I'm seeing improvements of 30-50% 2430 d_lock on every component lookup. So I'm seeing improvements of 30-50%
2360 on some seriously pathname-lookup intensive loads." 2431 on some seriously pathname-lookup intensive loads."
2361}} 2432}
2433}
2362 2434
2363@techreport{JoshTriplett2011RPScalableCorrectOrdering 2435@techreport{JoshTriplett2011RPScalableCorrectOrdering
2364,author = {Josh Triplett and Philip W. Howard and Paul E. McKenney and Jonathan Walpole} 2436,author = {Josh Triplett and Philip W. Howard and Paul E. McKenney and Jonathan Walpole}
@@ -2392,12 +2464,12 @@ lot of {Linux} into your technology!!!"
2392,number="US Patent 7,953,778" 2464,number="US Patent 7,953,778"
2393,month="May" 2465,month="May"
2394,pages="34" 2466,pages="34"
2395,annotation=" 2467,annotation={
2396 Maintains an array of generation numbers to track in-flight 2468 Maintains an array of generation numbers to track in-flight
2397 updates and keeps an additional level of indirection to allow 2469 updates and keeps an additional level of indirection to allow
2398 readers to confine themselves to the desired snapshot of the 2470 readers to confine themselves to the desired snapshot of the
2399 data structure. 2471 data structure.
2400" 2472}
2401} 2473}
2402 2474
2403@inproceedings{Triplett:2011:RPHash 2475@inproceedings{Triplett:2011:RPHash
@@ -2408,7 +2480,7 @@ lot of {Linux} into your technology!!!"
2408,year = {2011} 2480,year = {2011}
2409,pages = {145--158} 2481,pages = {145--158}
2410,numpages = {14} 2482,numpages = {14}
2411,url={http://www.usenix.org/event/atc11/tech/final_files/atc11_proceedings.pdf} 2483,url={http://www.usenix.org/event/atc11/tech/final_files/Triplett.pdf}
2412,publisher = {The USENIX Association} 2484,publisher = {The USENIX Association}
2413,address = {Portland, OR USA} 2485,address = {Portland, OR USA}
2414} 2486}
@@ -2419,27 +2491,58 @@ lot of {Linux} into your technology!!!"
2419,month="July" 2491,month="July"
2420,day="27" 2492,day="27"
2421,year="2011" 2493,year="2011"
2422,note="Available: 2494,note="\url{http://lwn.net/Articles/453002/}"
2423\url{http://lwn.net/Articles/453002/} 2495,annotation={
2424[Viewed July 27, 2011]"
2425,annotation="
2426 Analysis of the RCU trainwreck in Linux kernel 3.0. 2496 Analysis of the RCU trainwreck in Linux kernel 3.0.
2427" 2497 [Viewed July 27, 2011]
2498}
2428} 2499}
2429 2500
2430@unpublished{NeilBrown2011MeetTheLockers 2501@unpublished{NeilBrown2011MeetTheLockers
2431,Author="Neil Brown" 2502,Author="Neil Brown"
2432,Title="Meet the Lockers" 2503,Title="Meet the {Lockers}"
2433,month="August" 2504,month="August"
2434,day="3" 2505,day="3"
2435,year="2011" 2506,year="2011"
2436,note="Available: 2507,note="Available:
2437\url{http://lwn.net/Articles/453685/} 2508\url{http://lwn.net/Articles/453685/}
2438[Viewed September 2, 2011]" 2509[Viewed September 2, 2011]"
2439,annotation=" 2510,annotation={
2440 The Locker family as an analogy for locking, reference counting, 2511 The Locker family as an analogy for locking, reference counting,
2441 RCU, and seqlock. 2512 RCU, and seqlock.
2442" 2513}
2514}
2515
2516@inproceedings{Seyster:2011:RFA:2075416.2075425
2517,author = {Seyster, Justin and Radhakrishnan, Prabakar and Katoch, Samriti and Duggal, Abhinav and Stoller, Scott D. and Zadok, Erez}
2518,title = {Redflag: a framework for analysis of Kernel-level concurrency}
2519,booktitle = {Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part I}
2520,series = {ICA3PP'11}
2521,year = {2011}
2522,isbn = {978-3-642-24649-4}
2523,location = {Melbourne, Australia}
2524,pages = {66--79}
2525,numpages = {14}
2526,url = {http://dl.acm.org/citation.cfm?id=2075416.2075425}
2527,acmid = {2075425}
2528,publisher = {Springer-Verlag}
2529,address = {Berlin, Heidelberg}
2530}
2531
2532@phdthesis{JoshTriplettPhD
2533,author="Josh Triplett"
2534,title="Relativistic Causal Ordering: A Memory Model for Scalable Concurrent Data Structures"
2535,school="Portland State University"
2536,year="2012"
2537,annotation={
2538 RCU-protected hash tables, barriers vs. read-side traversal order.
2539 .
2540 If the updater is making changes in the opposite direction from
2541 the read-side traveral order, the updater need only execute a
2542 memory-barrier instruction, but if in the same direction, the
2543 updater needs to wait for a grace period between the individual
2544 updates.
2545}
2443} 2546}
2444 2547
2445@article{MathieuDesnoyers2012URCU 2548@article{MathieuDesnoyers2012URCU
@@ -2459,5 +2562,150 @@ lot of {Linux} into your technology!!!"
2459 RCU updates, RCU grace-period batching, update overhead, 2562 RCU updates, RCU grace-period batching, update overhead,
2460 http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf 2563 http://www.rdrop.com/users/paulmck/RCU/urcu-main-accepted.2011.08.30a.pdf
2461 http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf 2564 http://www.rdrop.com/users/paulmck/RCU/urcu-supp-accepted.2011.08.30a.pdf
2565 http://www.computer.org/cms/Computer.org/dl/trans/td/2012/02/extras/ttd2012020375s.pdf
2566}
2567}
2568
2569@inproceedings{AustinClements2012RCULinux:mmapsem
2570,author = {Austin Clements and Frans Kaashoek and Nickolai Zeldovich}
2571,title = {Scalable Address Spaces Using {RCU} Balanced Trees}
2572,booktitle = {Architectural Support for Programming Languages and Operating Systems (ASPLOS 2012)}
2573,month = {March}
2574,year = {2012}
2575,pages = {199--210}
2576,numpages = {12}
2577,publisher = {ACM}
2578,address = {London, UK}
2579,url="http://people.csail.mit.edu/nickolai/papers/clements-bonsai.pdf"
2580}
2581
2582@unpublished{PaulEMcKenney2012ELCbattery
2583,Author="Paul E. McKenney"
2584,Title="Making {RCU} Safe For Battery-Powered Devices"
2585,month="February"
2586,day="15"
2587,year="2012"
2588,note="Available:
2589\url{http://www.rdrop.com/users/paulmck/RCU/RCUdynticks.2012.02.15b.pdf}
2590[Viewed March 1, 2012]"
2591,annotation={
2592 RCU_FAST_NO_HZ, round 2.
2593}
2594}
2595
2596@article{GuillermoVigueras2012RCUCrowd
2597,author = {Vigueras, Guillermo and Ordu\~{n}a, Juan M. and Lozano, Miguel}
2598,day = {25}
2599,doi = {10.1007/s11227-012-0766-x}
2600,issn = {0920-8542}
2601,journal = {The Journal of Supercomputing}
2602,keywords = {linux, simulation}
2603,month = apr
2604,posted-at = {2012-05-03 09:12:04}
2605,priority = {2}
2606,title = {{A Read-Copy Update based parallel server for distributed crowd simulations}}
2607,url = {http://dx.doi.org/10.1007/s11227-012-0766-x}
2608,year = {2012}
2609}
2610
2611
2612@unpublished{JonCorbet2012ACCESS:ONCE
2613,Author="Jon Corbet"
2614,Title="{ACCESS\_ONCE()}"
2615,month="August"
2616,day="1"
2617,year="2012"
2618,note="\url{http://lwn.net/Articles/508991/}"
2619,annotation={
2620 A couple of simple specific compiler optimizations that motivate
2621 ACCESS_ONCE().
2622}
2623}
2624
2625@unpublished{AlexeyGotsman2012VerifyGraceExtended
2626,Author="Alexey Gotsman and Noam Rinetzky and Hongseok Yang"
2627,Title="Verifying Highly Concurrent Algorithms with Grace (extended version)"
2628,month="July"
2629,day="10"
2630,year="2012"
2631,note="\url{http://software.imdea.org/~gotsman/papers/recycling-esop13-ext.pdf}"
2632,annotation={
2633 Separation-logic formulation of RCU uses.
2634}
2635}
2636
2637@unpublished{PaulMcKenney2012RCUUsage
2638,Author="Paul E. McKenney and Silas Boyd-Wickizer and Jonathan Walpole"
2639,Title="{RCU} Usage In the Linux Kernel: One Decade Later"
2640,month="September"
2641,day="17"
2642,year="2012"
2643,url=http://rdrop.com/users/paulmck/techreports/survey.2012.09.17a.pdf
2644,note="Technical report paulmck.2012.09.17"
2645,annotation={
2646 Overview of the first variant of no-CBs CPUs for RCU.
2647}
2648}
2649
2650@unpublished{JonCorbet2012NOCB
2651,Author="Jon Corbet"
2652,Title="Relocating RCU callbacks"
2653,month="October"
2654,day="31"
2655,year="2012"
2656,note="\url{http://lwn.net/Articles/522262/}"
2657,annotation={
2658 Overview of the first variant of no-CBs CPUs for RCU.
2659}
2660}
2661
2662@phdthesis{JustinSeyster2012PhD
2663,author="Justin Seyster"
2664,title="Runtime Verification of Kernel-Level Concurrency Using Compiler-Based Instrumentation"
2665,school="Stony Brook University"
2666,year="2012"
2667,annotation={
2668 Looking for data races, including those involving RCU.
2669 Proposal:
2670 http://www.fsl.cs.sunysb.edu/docs/jseyster-proposal/redflag.pdf
2671 Dissertation:
2672 http://www.fsl.cs.sunysb.edu/docs/jseyster-dissertation/redflag.pdf
2673}
2674}
2675
2676@unpublished{PaulEMcKenney2013RCUUsage
2677,Author="Paul E. McKenney and Silas Boyd-Wickizer and Jonathan Walpole"
2678,Title="{RCU} Usage in the {Linux} Kernel: One Decade Later"
2679,month="February"
2680,day="24"
2681,year="2013"
2682,note="\url{http://rdrop.com/users/paulmck/techreports/RCUUsage.2013.02.24a.pdf}"
2683,annotation={
2684 Usage of RCU within the Linux kernel.
2685}
2686}
2687
2688@inproceedings{AlexeyGotsman2013ESOPRCU
2689,author = {Alexey Gotsman and Noam Rinetzky and Hongseok Yang}
2690,title = {Verifying concurrent memory reclamation algorithms with grace}
2691,booktitle = {ESOP'13: European Symposium on Programming}
2692,year = {2013}
2693,pages = {249--269}
2694,publisher = {Springer}
2695,address = {Rome, Italy}
2696,annotation={
2697 http://software.imdea.org/~gotsman/papers/recycling-esop13.pdf
2698}
2699}
2700
2701@unpublished{PaulEMcKenney2013NoTinyPreempt
2702,Author="Paul E. McKenney"
2703,Title="Simplifying RCU"
2704,month="March"
2705,day="6"
2706,year="2013"
2707,note="\url{http://lwn.net/Articles/541037/}"
2708,annotation={
2709 Getting rid of TINY_PREEMPT_RCU.
2462} 2710}
2463} 2711}
diff --git a/Documentation/RCU/rcubarrier.txt b/Documentation/RCU/rcubarrier.txt
index 2e319d1b9ef2..b10cfe711e68 100644
--- a/Documentation/RCU/rcubarrier.txt
+++ b/Documentation/RCU/rcubarrier.txt
@@ -70,10 +70,14 @@ in realtime kernels in order to avoid excessive scheduling latencies.
70 70
71rcu_barrier() 71rcu_barrier()
72 72
73We instead need the rcu_barrier() primitive. This primitive is similar 73We instead need the rcu_barrier() primitive. Rather than waiting for
74to synchronize_rcu(), but instead of waiting solely for a grace 74a grace period to elapse, rcu_barrier() waits for all outstanding RCU
75period to elapse, it also waits for all outstanding RCU callbacks to 75callbacks to complete. Please note that rcu_barrier() does -not- imply
76complete. Pseudo-code using rcu_barrier() is as follows: 76synchronize_rcu(), in particular, if there are no RCU callbacks queued
77anywhere, rcu_barrier() is within its rights to return immediately,
78without waiting for a grace period to elapse.
79
80Pseudo-code using rcu_barrier() is as follows:
77 81
78 1. Prevent any new RCU callbacks from being posted. 82 1. Prevent any new RCU callbacks from being posted.
79 2. Execute rcu_barrier(). 83 2. Execute rcu_barrier().
diff --git a/Documentation/RCU/torture.txt b/Documentation/RCU/torture.txt
index d8a502387397..dac02a6219b1 100644
--- a/Documentation/RCU/torture.txt
+++ b/Documentation/RCU/torture.txt
@@ -42,6 +42,16 @@ fqs_holdoff Holdoff time (in microseconds) between consecutive calls
42fqs_stutter Wait time (in seconds) between consecutive bursts 42fqs_stutter Wait time (in seconds) between consecutive bursts
43 of calls to force_quiescent_state(). 43 of calls to force_quiescent_state().
44 44
45gp_normal Make the fake writers use normal synchronous grace-period
46 primitives.
47
48gp_exp Make the fake writers use expedited synchronous grace-period
49 primitives. If both gp_normal and gp_exp are set, or
50 if neither gp_normal nor gp_exp are set, then randomly
51 choose the primitive so that about 50% are normal and
52 50% expedited. By default, neither are set, which
53 gives best overall test coverage.
54
45irqreader Says to invoke RCU readers from irq level. This is currently 55irqreader Says to invoke RCU readers from irq level. This is currently
46 done via timers. Defaults to "1" for variants of RCU that 56 done via timers. Defaults to "1" for variants of RCU that
47 permit this. (Or, more accurately, variants of RCU that do 57 permit this. (Or, more accurately, variants of RCU that do
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 6e97e73d87b5..26b1e31d5a13 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -109,6 +109,16 @@ probably didn't even receive earlier versions of the patch.
109If the patch fixes a logged bug entry, refer to that bug entry by 109If the patch fixes a logged bug entry, refer to that bug entry by
110number and URL. 110number and URL.
111 111
112If you want to refer to a specific commit, don't just refer to the
113SHA-1 ID of the commit. Please also include the oneline summary of
114the commit, to make it easier for reviewers to know what it is about.
115Example:
116
117 Commit e21d2170f36602ae2708 ("video: remove unnecessary
118 platform_set_drvdata()") removed the unnecessary
119 platform_set_drvdata(), but left the variable "dev" unused,
120 delete it.
121
112 122
1133) Separate your changes. 1233) Separate your changes.
114 124
diff --git a/Documentation/acpi/enumeration.txt b/Documentation/acpi/enumeration.txt
index d9be7a97dff3..aca4e69121b7 100644
--- a/Documentation/acpi/enumeration.txt
+++ b/Documentation/acpi/enumeration.txt
@@ -207,7 +207,7 @@ passing those. One idea is to return this in _DSM method like:
207 Return (Local0) 207 Return (Local0)
208 } 208 }
209 209
210Then the at25 SPI driver can get this configation by calling _DSM on its 210Then the at25 SPI driver can get this configuration by calling _DSM on its
211ACPI handle like: 211ACPI handle like:
212 212
213 struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL }; 213 struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
@@ -228,19 +228,9 @@ ACPI handle like:
228I2C serial bus support 228I2C serial bus support
229~~~~~~~~~~~~~~~~~~~~~~ 229~~~~~~~~~~~~~~~~~~~~~~
230The slaves behind I2C bus controller only need to add the ACPI IDs like 230The slaves behind I2C bus controller only need to add the ACPI IDs like
231with the platform and SPI drivers. However the I2C bus controller driver 231with the platform and SPI drivers. The I2C core automatically enumerates
232needs to call acpi_i2c_register_devices() after it has added the adapter. 232any slave devices behind the controller device once the adapter is
233 233registered.
234An I2C bus (controller) driver does:
235
236 ...
237 ret = i2c_add_numbered_adapter(adapter);
238 if (ret)
239 /* handle error */
240
241 of_i2c_register_devices(adapter);
242 /* Enumerate the slave devices behind this bus via ACPI */
243 acpi_i2c_register_devices(adapter);
244 234
245Below is an example of how to add ACPI support to the existing mpu3050 235Below is an example of how to add ACPI support to the existing mpu3050
246input driver: 236input driver:
diff --git a/Documentation/aoe/udev.txt b/Documentation/aoe/udev.txt
index 8686e789542e..1f06daf03f5b 100644
--- a/Documentation/aoe/udev.txt
+++ b/Documentation/aoe/udev.txt
@@ -23,4 +23,4 @@ SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k", GROUP="disk", MODE="02
23SUBSYSTEM=="aoe", KERNEL=="flush", NAME="etherd/%k", GROUP="disk", MODE="0220" 23SUBSYSTEM=="aoe", KERNEL=="flush", NAME="etherd/%k", GROUP="disk", MODE="0220"
24 24
25# aoe block devices 25# aoe block devices
26KERNEL=="etherd*", NAME="%k", GROUP="disk" 26KERNEL=="etherd*", GROUP="disk"
diff --git a/Documentation/arm/Booting b/Documentation/arm/Booting
index 0c1f475fdf36..371814a36719 100644
--- a/Documentation/arm/Booting
+++ b/Documentation/arm/Booting
@@ -18,7 +18,8 @@ following:
182. Initialise one serial port. 182. Initialise one serial port.
193. Detect the machine type. 193. Detect the machine type.
204. Setup the kernel tagged list. 204. Setup the kernel tagged list.
215. Call the kernel image. 215. Load initramfs.
226. Call the kernel image.
22 23
23 24
241. Setup and initialise RAM 251. Setup and initialise RAM
@@ -120,12 +121,27 @@ tagged list.
120The boot loader must pass at a minimum the size and location of the 121The boot loader must pass at a minimum the size and location of the
121system memory, and the root filesystem location. The dtb must be 122system memory, and the root filesystem location. The dtb must be
122placed in a region of memory where the kernel decompressor will not 123placed in a region of memory where the kernel decompressor will not
123overwrite it. The recommended placement is in the first 16KiB of RAM 124overwrite it, whilst remaining within the region which will be covered
124with the caveat that it may not be located at physical address 0 since 125by the kernel's low-memory mapping.
125the kernel interprets a value of 0 in r2 to mean neither a tagged list
126nor a dtb were passed.
127 126
1285. Calling the kernel image 127A safe location is just above the 128MiB boundary from start of RAM.
128
1295. Load initramfs.
130------------------
131
132Existing boot loaders: OPTIONAL
133New boot loaders: OPTIONAL
134
135If an initramfs is in use then, as with the dtb, it must be placed in
136a region of memory where the kernel decompressor will not overwrite it
137while also with the region which will be covered by the kernel's
138low-memory mapping.
139
140A safe location is just above the device tree blob which itself will
141be loaded just above the 128MiB boundary from the start of RAM as
142recommended above.
143
1446. Calling the kernel image
129--------------------------- 145---------------------------
130 146
131Existing boot loaders: MANDATORY 147Existing boot loaders: MANDATORY
@@ -136,11 +152,17 @@ is stored in flash, and is linked correctly to be run from flash,
136then it is legal for the boot loader to call the zImage in flash 152then it is legal for the boot loader to call the zImage in flash
137directly. 153directly.
138 154
139The zImage may also be placed in system RAM (at any location) and 155The zImage may also be placed in system RAM and called there. The
140called there. Note that the kernel uses 16K of RAM below the image 156kernel should be placed in the first 128MiB of RAM. It is recommended
141to store page tables. The recommended placement is 32KiB into RAM. 157that it is loaded above 32MiB in order to avoid the need to relocate
158prior to decompression, which will make the boot process slightly
159faster.
160
161When booting a raw (non-zImage) kernel the constraints are tighter.
162In this case the kernel must be loaded at an offset into system equal
163to TEXT_OFFSET - PAGE_OFFSET.
142 164
143In either case, the following conditions must be met: 165In any case, the following conditions must be met:
144 166
145- Quiesce all DMA capable devices so that memory does not get 167- Quiesce all DMA capable devices so that memory does not get
146 corrupted by bogus network packets or disk data. This will save 168 corrupted by bogus network packets or disk data. This will save
diff --git a/Documentation/arm/OMAP/omap_pm b/Documentation/arm/OMAP/omap_pm
index 9012bb039094..4ae915a9f899 100644
--- a/Documentation/arm/OMAP/omap_pm
+++ b/Documentation/arm/OMAP/omap_pm
@@ -78,7 +78,7 @@ to NULL. Drivers should use the following idiom:
78The most common usage of these functions will probably be to specify 78The most common usage of these functions will probably be to specify
79the maximum time from when an interrupt occurs, to when the device 79the maximum time from when an interrupt occurs, to when the device
80becomes accessible. To accomplish this, driver writers should use the 80becomes accessible. To accomplish this, driver writers should use the
81set_max_mpu_wakeup_lat() function to to constrain the MPU wakeup 81set_max_mpu_wakeup_lat() function to constrain the MPU wakeup
82latency, and the set_max_dev_wakeup_lat() function to constrain the 82latency, and the set_max_dev_wakeup_lat() function to constrain the
83device wakeup latency (from clk_enable() to accessibility). For 83device wakeup latency (from clk_enable() to accessibility). For
84example, 84example,
diff --git a/Documentation/arm/kernel_mode_neon.txt b/Documentation/arm/kernel_mode_neon.txt
new file mode 100644
index 000000000000..525452726d31
--- /dev/null
+++ b/Documentation/arm/kernel_mode_neon.txt
@@ -0,0 +1,121 @@
1Kernel mode NEON
2================
3
4TL;DR summary
5-------------
6* Use only NEON instructions, or VFP instructions that don't rely on support
7 code
8* Isolate your NEON code in a separate compilation unit, and compile it with
9 '-mfpu=neon -mfloat-abi=softfp'
10* Put kernel_neon_begin() and kernel_neon_end() calls around the calls into your
11 NEON code
12* Don't sleep in your NEON code, and be aware that it will be executed with
13 preemption disabled
14
15
16Introduction
17------------
18It is possible to use NEON instructions (and in some cases, VFP instructions) in
19code that runs in kernel mode. However, for performance reasons, the NEON/VFP
20register file is not preserved and restored at every context switch or taken
21exception like the normal register file is, so some manual intervention is
22required. Furthermore, special care is required for code that may sleep [i.e.,
23may call schedule()], as NEON or VFP instructions will be executed in a
24non-preemptible section for reasons outlined below.
25
26
27Lazy preserve and restore
28-------------------------
29The NEON/VFP register file is managed using lazy preserve (on UP systems) and
30lazy restore (on both SMP and UP systems). This means that the register file is
31kept 'live', and is only preserved and restored when multiple tasks are
32contending for the NEON/VFP unit (or, in the SMP case, when a task migrates to
33another core). Lazy restore is implemented by disabling the NEON/VFP unit after
34every context switch, resulting in a trap when subsequently a NEON/VFP
35instruction is issued, allowing the kernel to step in and perform the restore if
36necessary.
37
38Any use of the NEON/VFP unit in kernel mode should not interfere with this, so
39it is required to do an 'eager' preserve of the NEON/VFP register file, and
40enable the NEON/VFP unit explicitly so no exceptions are generated on first
41subsequent use. This is handled by the function kernel_neon_begin(), which
42should be called before any kernel mode NEON or VFP instructions are issued.
43Likewise, the NEON/VFP unit should be disabled again after use to make sure user
44mode will hit the lazy restore trap upon next use. This is handled by the
45function kernel_neon_end().
46
47
48Interruptions in kernel mode
49----------------------------
50For reasons of performance and simplicity, it was decided that there shall be no
51preserve/restore mechanism for the kernel mode NEON/VFP register contents. This
52implies that interruptions of a kernel mode NEON section can only be allowed if
53they are guaranteed not to touch the NEON/VFP registers. For this reason, the
54following rules and restrictions apply in the kernel:
55* NEON/VFP code is not allowed in interrupt context;
56* NEON/VFP code is not allowed to sleep;
57* NEON/VFP code is executed with preemption disabled.
58
59If latency is a concern, it is possible to put back to back calls to
60kernel_neon_end() and kernel_neon_begin() in places in your code where none of
61the NEON registers are live. (Additional calls to kernel_neon_begin() should be
62reasonably cheap if no context switch occurred in the meantime)
63
64
65VFP and support code
66--------------------
67Earlier versions of VFP (prior to version 3) rely on software support for things
68like IEEE-754 compliant underflow handling etc. When the VFP unit needs such
69software assistance, it signals the kernel by raising an undefined instruction
70exception. The kernel responds by inspecting the VFP control registers and the
71current instruction and arguments, and emulates the instruction in software.
72
73Such software assistance is currently not implemented for VFP instructions
74executed in kernel mode. If such a condition is encountered, the kernel will
75fail and generate an OOPS.
76
77
78Separating NEON code from ordinary code
79---------------------------------------
80The compiler is not aware of the special significance of kernel_neon_begin() and
81kernel_neon_end(), i.e., that it is only allowed to issue NEON/VFP instructions
82between calls to these respective functions. Furthermore, GCC may generate NEON
83instructions of its own at -O3 level if -mfpu=neon is selected, and even if the
84kernel is currently compiled at -O2, future changes may result in NEON/VFP
85instructions appearing in unexpected places if no special care is taken.
86
87Therefore, the recommended and only supported way of using NEON/VFP in the
88kernel is by adhering to the following rules:
89* isolate the NEON code in a separate compilation unit and compile it with
90 '-mfpu=neon -mfloat-abi=softfp';
91* issue the calls to kernel_neon_begin(), kernel_neon_end() as well as the calls
92 into the unit containing the NEON code from a compilation unit which is *not*
93 built with the GCC flag '-mfpu=neon' set.
94
95As the kernel is compiled with '-msoft-float', the above will guarantee that
96both NEON and VFP instructions will only ever appear in designated compilation
97units at any optimization level.
98
99
100NEON assembler
101--------------
102NEON assembler is supported with no additional caveats as long as the rules
103above are followed.
104
105
106NEON code generated by GCC
107--------------------------
108The GCC option -ftree-vectorize (implied by -O3) tries to exploit implicit
109parallelism, and generates NEON code from ordinary C source code. This is fully
110supported as long as the rules above are followed.
111
112
113NEON intrinsics
114---------------
115NEON intrinsics are also supported. However, as code using NEON intrinsics
116relies on the GCC header <arm_neon.h>, (which #includes <stdint.h>), you should
117observe the following in addition to the rules above:
118* Compile the unit containing the NEON intrinsics with '-ffreestanding' so GCC
119 uses its builtin version of <stdint.h> (this is a C99 header which the kernel
120 does not supply);
121* Include <arm_neon.h> last, or at least after <linux/types.h>
diff --git a/Documentation/arm64/booting.txt b/Documentation/arm64/booting.txt
index 9c4d388daddc..98df4a03807e 100644
--- a/Documentation/arm64/booting.txt
+++ b/Documentation/arm64/booting.txt
@@ -45,9 +45,9 @@ sees fit.)
45 45
46Requirement: MANDATORY 46Requirement: MANDATORY
47 47
48The device tree blob (dtb) must be no bigger than 2 megabytes in size 48The device tree blob (dtb) must be placed on an 8-byte boundary within
49and placed at a 2-megabyte boundary within the first 512 megabytes from 49the first 512 megabytes from the start of the kernel image and must not
50the start of the kernel image. This is to allow the kernel to map the 50cross a 2-megabyte boundary. This is to allow the kernel to map the
51blob using a single section mapping in the initial page tables. 51blob using a single section mapping in the initial page tables.
52 52
53 53
@@ -68,13 +68,23 @@ Image target is available instead.
68 68
69Requirement: MANDATORY 69Requirement: MANDATORY
70 70
71The decompressed kernel image contains a 32-byte header as follows: 71The decompressed kernel image contains a 64-byte header as follows:
72 72
73 u32 magic = 0x14000008; /* branch to stext, little-endian */ 73 u32 code0; /* Executable code */
74 u32 res0 = 0; /* reserved */ 74 u32 code1; /* Executable code */
75 u64 text_offset; /* Image load offset */ 75 u64 text_offset; /* Image load offset */
76 u64 res0 = 0; /* reserved */
76 u64 res1 = 0; /* reserved */ 77 u64 res1 = 0; /* reserved */
77 u64 res2 = 0; /* reserved */ 78 u64 res2 = 0; /* reserved */
79 u64 res3 = 0; /* reserved */
80 u64 res4 = 0; /* reserved */
81 u32 magic = 0x644d5241; /* Magic number, little endian, "ARM\x64" */
82 u32 res5 = 0; /* reserved */
83
84
85Header notes:
86
87- code0/code1 are responsible for branching to stext.
78 88
79The image must be placed at the specified offset (currently 0x80000) 89The image must be placed at the specified offset (currently 0x80000)
80from the start of the system RAM and called there. The start of the 90from the start of the system RAM and called there. The start of the
diff --git a/Documentation/arm64/tagged-pointers.txt b/Documentation/arm64/tagged-pointers.txt
new file mode 100644
index 000000000000..264e9841563a
--- /dev/null
+++ b/Documentation/arm64/tagged-pointers.txt
@@ -0,0 +1,34 @@
1 Tagged virtual addresses in AArch64 Linux
2 =========================================
3
4Author: Will Deacon <will.deacon@arm.com>
5Date : 12 June 2013
6
7This document briefly describes the provision of tagged virtual
8addresses in the AArch64 translation system and their potential uses
9in AArch64 Linux.
10
11The kernel configures the translation tables so that translations made
12via TTBR0 (i.e. userspace mappings) have the top byte (bits 63:56) of
13the virtual address ignored by the translation hardware. This frees up
14this byte for application use, with the following caveats:
15
16 (1) The kernel requires that all user addresses passed to EL1
17 are tagged with tag 0x00. This means that any syscall
18 parameters containing user virtual addresses *must* have
19 their top byte cleared before trapping to the kernel.
20
21 (2) Tags are not guaranteed to be preserved when delivering
22 signals. This means that signal handlers in applications
23 making use of tags cannot rely on the tag information for
24 user virtual addresses being maintained for fields inside
25 siginfo_t. One exception to this rule is for signals raised
26 in response to debug exceptions, where the tag information
27 will be preserved.
28
29 (3) Special care should be taken when using tagged pointers,
30 since it is likely that C compilers will not hazard two
31 addresses differing only in the upper bits.
32
33The architecture prevents the use of a tagged PC, so the upper byte will
34be set to a sign-extension of bit 55 on exception return.
diff --git a/Documentation/block/cfq-iosched.txt b/Documentation/block/cfq-iosched.txt
index 9887f0414c16..f3bc72945cbd 100644
--- a/Documentation/block/cfq-iosched.txt
+++ b/Documentation/block/cfq-iosched.txt
@@ -69,7 +69,7 @@ one, this value should be decreased relative to fifo_expire_async.
69group_idle 69group_idle
70----------- 70-----------
71This parameter forces idling at the CFQ group level instead of CFQ 71This parameter forces idling at the CFQ group level instead of CFQ
72queue level. This was introduced after after a bottleneck was observed 72queue level. This was introduced after a bottleneck was observed
73in higher end storage due to idle on sequential queue and allow dispatch 73in higher end storage due to idle on sequential queue and allow dispatch
74from a single queue. The idea with this parameter is that it can be run with 74from a single queue. The idea with this parameter is that it can be run with
75slice_idle=0 and group_idle=8, so that idling does not happen on individual 75slice_idle=0 and group_idle=8, so that idling does not happen on individual
diff --git a/Documentation/block/cmdline-partition.txt b/Documentation/block/cmdline-partition.txt
new file mode 100644
index 000000000000..2bbf4cc40c3f
--- /dev/null
+++ b/Documentation/block/cmdline-partition.txt
@@ -0,0 +1,39 @@
1Embedded device command line partition
2=====================================================================
3
4Read block device partition table from command line.
5The partition used for fixed block device (eMMC) embedded device.
6It is no MBR, save storage space. Bootloader can be easily accessed
7by absolute address of data on the block device.
8Users can easily change the partition.
9
10The format for the command line is just like mtdparts:
11
12blkdevparts=<blkdev-def>[;<blkdev-def>]
13 <blkdev-def> := <blkdev-id>:<partdef>[,<partdef>]
14 <partdef> := <size>[@<offset>](part-name)
15
16<blkdev-id>
17 block device disk name, embedded device used fixed block device,
18 it's disk name also fixed. such as: mmcblk0, mmcblk1, mmcblk0boot0.
19
20<size>
21 partition size, in bytes, such as: 512, 1m, 1G.
22
23<offset>
24 partition start address, in bytes.
25
26(part-name)
27 partition name, kernel send uevent with "PARTNAME". application can create
28 a link to block device partition with the name "PARTNAME".
29 user space application can access partition by partition name.
30
31Example:
32 eMMC disk name is "mmcblk0" and "mmcblk0boot0"
33
34 bootargs:
35 'blkdevparts=mmcblk0:1G(data0),1G(data1),-;mmcblk0boot0:1m(boot),-(kernel)'
36
37 dmesg:
38 mmcblk0: p1(data0) p2(data1) p3()
39 mmcblk0boot0: p1(boot) p2(kernel)
diff --git a/Documentation/cachetlb.txt b/Documentation/cachetlb.txt
index 9b728dc17535..d79b008e4a32 100644
--- a/Documentation/cachetlb.txt
+++ b/Documentation/cachetlb.txt
@@ -57,7 +57,7 @@ changes occur:
57 interface must make sure that any previous page table 57 interface must make sure that any previous page table
58 modifications for the address space 'vma->vm_mm' in the range 58 modifications for the address space 'vma->vm_mm' in the range
59 'start' to 'end-1' will be visible to the cpu. That is, after 59 'start' to 'end-1' will be visible to the cpu. That is, after
60 running, here will be no entries in the TLB for 'mm' for 60 running, there will be no entries in the TLB for 'mm' for
61 virtual addresses in the range 'start' to 'end-1'. 61 virtual addresses in the range 'start' to 'end-1'.
62 62
63 The "vma" is the backing store being used for the region. 63 The "vma" is the backing store being used for the region.
@@ -375,8 +375,8 @@ maps this page at its virtual address.
375 375
376 void flush_icache_page(struct vm_area_struct *vma, struct page *page) 376 void flush_icache_page(struct vm_area_struct *vma, struct page *page)
377 All the functionality of flush_icache_page can be implemented in 377 All the functionality of flush_icache_page can be implemented in
378 flush_dcache_page and update_mmu_cache. In 2.7 the hope is to 378 flush_dcache_page and update_mmu_cache. In the future, the hope
379 remove this interface completely. 379 is to remove this interface completely.
380 380
381The final category of APIs is for I/O to deliberately aliased address 381The final category of APIs is for I/O to deliberately aliased address
382ranges inside the kernel. Such aliases are set up by use of the 382ranges inside the kernel. Such aliases are set up by use of the
diff --git a/Documentation/clk.txt b/Documentation/clk.txt
index 6f68ba0d1e01..3aeb5c440442 100644
--- a/Documentation/clk.txt
+++ b/Documentation/clk.txt
@@ -70,6 +70,10 @@ the operations defined in clk.h:
70 unsigned long parent_rate); 70 unsigned long parent_rate);
71 long (*round_rate)(struct clk_hw *hw, unsigned long, 71 long (*round_rate)(struct clk_hw *hw, unsigned long,
72 unsigned long *); 72 unsigned long *);
73 long (*determine_rate)(struct clk_hw *hw,
74 unsigned long rate,
75 unsigned long *best_parent_rate,
76 struct clk **best_parent_clk);
73 int (*set_parent)(struct clk_hw *hw, u8 index); 77 int (*set_parent)(struct clk_hw *hw, u8 index);
74 u8 (*get_parent)(struct clk_hw *hw); 78 u8 (*get_parent)(struct clk_hw *hw);
75 int (*set_rate)(struct clk_hw *hw, unsigned long); 79 int (*set_rate)(struct clk_hw *hw, unsigned long);
@@ -179,26 +183,28 @@ mandatory, a cell marked as "n" implies that either including that
179callback is invalid or otherwise unnecessary. Empty cells are either 183callback is invalid or otherwise unnecessary. Empty cells are either
180optional or must be evaluated on a case-by-case basis. 184optional or must be evaluated on a case-by-case basis.
181 185
182 clock hardware characteristics 186 clock hardware characteristics
183 ----------------------------------------------------------- 187 -----------------------------------------------------------
184 | gate | change rate | single parent | multiplexer | root | 188 | gate | change rate | single parent | multiplexer | root |
185 |------|-------------|---------------|-------------|------| 189 |------|-------------|---------------|-------------|------|
186.prepare | | | | | | 190.prepare | | | | | |
187.unprepare | | | | | | 191.unprepare | | | | | |
188 | | | | | | 192 | | | | | |
189.enable | y | | | | | 193.enable | y | | | | |
190.disable | y | | | | | 194.disable | y | | | | |
191.is_enabled | y | | | | | 195.is_enabled | y | | | | |
192 | | | | | | 196 | | | | | |
193.recalc_rate | | y | | | | 197.recalc_rate | | y | | | |
194.round_rate | | y | | | | 198.round_rate | | y [1] | | | |
195.set_rate | | y | | | | 199.determine_rate | | y [1] | | | |
196 | | | | | | 200.set_rate | | y | | | |
197.set_parent | | | n | y | n | 201 | | | | | |
198.get_parent | | | n | y | n | 202.set_parent | | | n | y | n |
199 | | | | | | 203.get_parent | | | n | y | n |
200.init | | | | | | 204 | | | | | |
201 ----------------------------------------------------------- 205.init | | | | | |
206 -----------------------------------------------------------
207[1] either one of round_rate or determine_rate is required.
202 208
203Finally, register your clock at run-time with a hardware-specific 209Finally, register your clock at run-time with a hardware-specific
204registration function. This function simply populates struct clk_foo's 210registration function. This function simply populates struct clk_foo's
diff --git a/Documentation/cpu-freq/cpu-drivers.txt b/Documentation/cpu-freq/cpu-drivers.txt
index 19fa98e07bf7..40282e617913 100644
--- a/Documentation/cpu-freq/cpu-drivers.txt
+++ b/Documentation/cpu-freq/cpu-drivers.txt
@@ -50,8 +50,6 @@ What shall this struct cpufreq_driver contain?
50 50
51cpufreq_driver.name - The name of this driver. 51cpufreq_driver.name - The name of this driver.
52 52
53cpufreq_driver.owner - THIS_MODULE;
54
55cpufreq_driver.init - A pointer to the per-CPU initialization 53cpufreq_driver.init - A pointer to the per-CPU initialization
56 function. 54 function.
57 55
diff --git a/Documentation/cputopology.txt b/Documentation/cputopology.txt
index 902d3151f527..0aad6deb2d96 100644
--- a/Documentation/cputopology.txt
+++ b/Documentation/cputopology.txt
@@ -22,7 +22,7 @@ to /proc/cpuinfo.
22 22
234) /sys/devices/system/cpu/cpuX/topology/thread_siblings: 234) /sys/devices/system/cpu/cpuX/topology/thread_siblings:
24 24
25 internel kernel map of cpuX's hardware threads within the same 25 internal kernel map of cpuX's hardware threads within the same
26 core as cpuX 26 core as cpuX
27 27
285) /sys/devices/system/cpu/cpuX/topology/core_siblings: 285) /sys/devices/system/cpu/cpuX/topology/core_siblings:
diff --git a/Documentation/development-process/2.Process b/Documentation/development-process/2.Process
index 4823577c6509..2e0617936e8f 100644
--- a/Documentation/development-process/2.Process
+++ b/Documentation/development-process/2.Process
@@ -276,7 +276,7 @@ mainline get there via -mm.
276The current -mm patch is available in the "mmotm" (-mm of the moment) 276The current -mm patch is available in the "mmotm" (-mm of the moment)
277directory at: 277directory at:
278 278
279 http://userweb.kernel.org/~akpm/mmotm/ 279 http://www.ozlabs.org/~akpm/mmotm/
280 280
281Use of the MMOTM tree is likely to be a frustrating experience, though; 281Use of the MMOTM tree is likely to be a frustrating experience, though;
282there is a definite chance that it will not even compile. 282there is a definite chance that it will not even compile.
@@ -287,7 +287,7 @@ the mainline is expected to look like after the next merge window closes.
287Linux-next trees are announced on the linux-kernel and linux-next mailing 287Linux-next trees are announced on the linux-kernel and linux-next mailing
288lists when they are assembled; they can be downloaded from: 288lists when they are assembled; they can be downloaded from:
289 289
290 http://www.kernel.org/pub/linux/kernel/people/sfr/linux-next/ 290 http://www.kernel.org/pub/linux/kernel/next/
291 291
292Some information about linux-next has been gathered at: 292Some information about linux-next has been gathered at:
293 293
diff --git a/Documentation/device-mapper/cache.txt b/Documentation/device-mapper/cache.txt
index e8cdf7241b66..33d45ee0b737 100644
--- a/Documentation/device-mapper/cache.txt
+++ b/Documentation/device-mapper/cache.txt
@@ -50,14 +50,16 @@ other parameters detailed later):
50 which are dirty, and extra hints for use by the policy object. 50 which are dirty, and extra hints for use by the policy object.
51 This information could be put on the cache device, but having it 51 This information could be put on the cache device, but having it
52 separate allows the volume manager to configure it differently, 52 separate allows the volume manager to configure it differently,
53 e.g. as a mirror for extra robustness. 53 e.g. as a mirror for extra robustness. This metadata device may only
54 be used by a single cache device.
54 55
55Fixed block size 56Fixed block size
56---------------- 57----------------
57 58
58The origin is divided up into blocks of a fixed size. This block size 59The origin is divided up into blocks of a fixed size. This block size
59is configurable when you first create the cache. Typically we've been 60is configurable when you first create the cache. Typically we've been
60using block sizes of 256k - 1024k. 61using block sizes of 256KB - 1024KB. The block size must be between 64
62(32KB) and 2097152 (1GB) and a multiple of 64 (32KB).
61 63
62Having a fixed block size simplifies the target a lot. But it is 64Having a fixed block size simplifies the target a lot. But it is
63something of a compromise. For instance, a small part of a block may be 65something of a compromise. For instance, a small part of a block may be
diff --git a/Documentation/device-mapper/statistics.txt b/Documentation/device-mapper/statistics.txt
new file mode 100644
index 000000000000..2a1673adc200
--- /dev/null
+++ b/Documentation/device-mapper/statistics.txt
@@ -0,0 +1,186 @@
1DM statistics
2=============
3
4Device Mapper supports the collection of I/O statistics on user-defined
5regions of a DM device. If no regions are defined no statistics are
6collected so there isn't any performance impact. Only bio-based DM
7devices are currently supported.
8
9Each user-defined region specifies a starting sector, length and step.
10Individual statistics will be collected for each step-sized area within
11the range specified.
12
13The I/O statistics counters for each step-sized area of a region are
14in the same format as /sys/block/*/stat or /proc/diskstats (see:
15Documentation/iostats.txt). But two extra counters (12 and 13) are
16provided: total time spent reading and writing in milliseconds. All
17these counters may be accessed by sending the @stats_print message to
18the appropriate DM device via dmsetup.
19
20Each region has a corresponding unique identifier, which we call a
21region_id, that is assigned when the region is created. The region_id
22must be supplied when querying statistics about the region, deleting the
23region, etc. Unique region_ids enable multiple userspace programs to
24request and process statistics for the same DM device without stepping
25on each other's data.
26
27The creation of DM statistics will allocate memory via kmalloc or
28fallback to using vmalloc space. At most, 1/4 of the overall system
29memory may be allocated by DM statistics. The admin can see how much
30memory is used by reading
31/sys/module/dm_mod/parameters/stats_current_allocated_bytes
32
33Messages
34========
35
36 @stats_create <range> <step> [<program_id> [<aux_data>]]
37
38 Create a new region and return the region_id.
39
40 <range>
41 "-" - whole device
42 "<start_sector>+<length>" - a range of <length> 512-byte sectors
43 starting with <start_sector>.
44
45 <step>
46 "<area_size>" - the range is subdivided into areas each containing
47 <area_size> sectors.
48 "/<number_of_areas>" - the range is subdivided into the specified
49 number of areas.
50
51 <program_id>
52 An optional parameter. A name that uniquely identifies
53 the userspace owner of the range. This groups ranges together
54 so that userspace programs can identify the ranges they
55 created and ignore those created by others.
56 The kernel returns this string back in the output of
57 @stats_list message, but it doesn't use it for anything else.
58
59 <aux_data>
60 An optional parameter. A word that provides auxiliary data
61 that is useful to the client program that created the range.
62 The kernel returns this string back in the output of
63 @stats_list message, but it doesn't use this value for anything.
64
65 @stats_delete <region_id>
66
67 Delete the region with the specified id.
68
69 <region_id>
70 region_id returned from @stats_create
71
72 @stats_clear <region_id>
73
74 Clear all the counters except the in-flight i/o counters.
75
76 <region_id>
77 region_id returned from @stats_create
78
79 @stats_list [<program_id>]
80
81 List all regions registered with @stats_create.
82
83 <program_id>
84 An optional parameter.
85 If this parameter is specified, only matching regions
86 are returned.
87 If it is not specified, all regions are returned.
88
89 Output format:
90 <region_id>: <start_sector>+<length> <step> <program_id> <aux_data>
91
92 @stats_print <region_id> [<starting_line> <number_of_lines>]
93
94 Print counters for each step-sized area of a region.
95
96 <region_id>
97 region_id returned from @stats_create
98
99 <starting_line>
100 The index of the starting line in the output.
101 If omitted, all lines are returned.
102
103 <number_of_lines>
104 The number of lines to include in the output.
105 If omitted, all lines are returned.
106
107 Output format for each step-sized area of a region:
108
109 <start_sector>+<length> counters
110
111 The first 11 counters have the same meaning as
112 /sys/block/*/stat or /proc/diskstats.
113
114 Please refer to Documentation/iostats.txt for details.
115
116 1. the number of reads completed
117 2. the number of reads merged
118 3. the number of sectors read
119 4. the number of milliseconds spent reading
120 5. the number of writes completed
121 6. the number of writes merged
122 7. the number of sectors written
123 8. the number of milliseconds spent writing
124 9. the number of I/Os currently in progress
125 10. the number of milliseconds spent doing I/Os
126 11. the weighted number of milliseconds spent doing I/Os
127
128 Additional counters:
129 12. the total time spent reading in milliseconds
130 13. the total time spent writing in milliseconds
131
132 @stats_print_clear <region_id> [<starting_line> <number_of_lines>]
133
134 Atomically print and then clear all the counters except the
135 in-flight i/o counters. Useful when the client consuming the
136 statistics does not want to lose any statistics (those updated
137 between printing and clearing).
138
139 <region_id>
140 region_id returned from @stats_create
141
142 <starting_line>
143 The index of the starting line in the output.
144 If omitted, all lines are printed and then cleared.
145
146 <number_of_lines>
147 The number of lines to process.
148 If omitted, all lines are printed and then cleared.
149
150 @stats_set_aux <region_id> <aux_data>
151
152 Store auxiliary data aux_data for the specified region.
153
154 <region_id>
155 region_id returned from @stats_create
156
157 <aux_data>
158 The string that identifies data which is useful to the client
159 program that created the range. The kernel returns this
160 string back in the output of @stats_list message, but it
161 doesn't use this value for anything.
162
163Examples
164========
165
166Subdivide the DM device 'vol' into 100 pieces and start collecting
167statistics on them:
168
169 dmsetup message vol 0 @stats_create - /100
170
171Set the auxillary data string to "foo bar baz" (the escape for each
172space must also be escaped, otherwise the shell will consume them):
173
174 dmsetup message vol 0 @stats_set_aux 0 foo\\ bar\\ baz
175
176List the statistics:
177
178 dmsetup message vol 0 @stats_list
179
180Print the statistics:
181
182 dmsetup message vol 0 @stats_print 0
183
184Delete the statistics:
185
186 dmsetup message vol 0 @stats_delete 0
diff --git a/Documentation/device-mapper/thin-provisioning.txt b/Documentation/device-mapper/thin-provisioning.txt
index 30b8b83bd333..50c44cf79b0e 100644
--- a/Documentation/device-mapper/thin-provisioning.txt
+++ b/Documentation/device-mapper/thin-provisioning.txt
@@ -99,13 +99,14 @@ Using an existing pool device
99 $data_block_size $low_water_mark" 99 $data_block_size $low_water_mark"
100 100
101$data_block_size gives the smallest unit of disk space that can be 101$data_block_size gives the smallest unit of disk space that can be
102allocated at a time expressed in units of 512-byte sectors. People 102allocated at a time expressed in units of 512-byte sectors.
103primarily interested in thin provisioning may want to use a value such 103$data_block_size must be between 128 (64KB) and 2097152 (1GB) and a
104as 1024 (512KB). People doing lots of snapshotting may want a smaller value 104multiple of 128 (64KB). $data_block_size cannot be changed after the
105such as 128 (64KB). If you are not zeroing newly-allocated data, 105thin-pool is created. People primarily interested in thin provisioning
106a larger $data_block_size in the region of 256000 (128MB) is suggested. 106may want to use a value such as 1024 (512KB). People doing lots of
107$data_block_size must be the same for the lifetime of the 107snapshotting may want a smaller value such as 128 (64KB). If you are
108metadata device. 108not zeroing newly-allocated data, a larger $data_block_size in the
109region of 256000 (128MB) is suggested.
109 110
110$low_water_mark is expressed in blocks of size $data_block_size. If 111$low_water_mark is expressed in blocks of size $data_block_size. If
111free space on the data device drops below this level then a dm event 112free space on the data device drops below this level then a dm event
diff --git a/Documentation/devicetree/bindings/arm/arch_timer.txt b/Documentation/devicetree/bindings/arm/arch_timer.txt
index 20746e5abe6f..06fc7602593a 100644
--- a/Documentation/devicetree/bindings/arm/arch_timer.txt
+++ b/Documentation/devicetree/bindings/arm/arch_timer.txt
@@ -1,10 +1,14 @@
1* ARM architected timer 1* ARM architected timer
2 2
3ARM cores may have a per-core architected timer, which provides per-cpu timers. 3ARM cores may have a per-core architected timer, which provides per-cpu timers,
4or a memory mapped architected timer, which provides up to 8 frames with a
5physical and optional virtual timer per frame.
4 6
5The timer is attached to a GIC to deliver its per-processor interrupts. 7The per-core architected timer is attached to a GIC to deliver its
8per-processor interrupts via PPIs. The memory mapped timer is attached to a GIC
9to deliver its interrupts via SPIs.
6 10
7** Timer node properties: 11** CP15 Timer node properties:
8 12
9- compatible : Should at least contain one of 13- compatible : Should at least contain one of
10 "arm,armv7-timer" 14 "arm,armv7-timer"
@@ -26,3 +30,52 @@ Example:
26 <1 10 0xf08>; 30 <1 10 0xf08>;
27 clock-frequency = <100000000>; 31 clock-frequency = <100000000>;
28 }; 32 };
33
34** Memory mapped timer node properties:
35
36- compatible : Should at least contain "arm,armv7-timer-mem".
37
38- clock-frequency : The frequency of the main counter, in Hz. Optional.
39
40- reg : The control frame base address.
41
42Note that #address-cells, #size-cells, and ranges shall be present to ensure
43the CPU can address a frame's registers.
44
45A timer node has up to 8 frame sub-nodes, each with the following properties:
46
47- frame-number: 0 to 7.
48
49- interrupts : Interrupt list for physical and virtual timers in that order.
50 The virtual timer interrupt is optional.
51
52- reg : The first and second view base addresses in that order. The second view
53 base address is optional.
54
55- status : "disabled" indicates the frame is not available for use. Optional.
56
57Example:
58
59 timer@f0000000 {
60 compatible = "arm,armv7-timer-mem";
61 #address-cells = <1>;
62 #size-cells = <1>;
63 ranges;
64 reg = <0xf0000000 0x1000>;
65 clock-frequency = <50000000>;
66
67 frame@f0001000 {
68 frame-number = <0>
69 interrupts = <0 13 0x8>,
70 <0 14 0x8>;
71 reg = <0xf0001000 0x1000>,
72 <0xf0002000 0x1000>;
73 };
74
75 frame@f0003000 {
76 frame-number = <1>
77 interrupts = <0 15 0x8>;
78 reg = <0xf0003000 0x1000>;
79 status = "disabled";
80 };
81 };
diff --git a/Documentation/devicetree/bindings/arm/atmel-adc.txt b/Documentation/devicetree/bindings/arm/atmel-adc.txt
index 16769d9cedd6..723c205cb10d 100644
--- a/Documentation/devicetree/bindings/arm/atmel-adc.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-adc.txt
@@ -1,18 +1,15 @@
1* AT91's Analog to Digital Converter (ADC) 1* AT91's Analog to Digital Converter (ADC)
2 2
3Required properties: 3Required properties:
4 - compatible: Should be "atmel,at91sam9260-adc" 4 - compatible: Should be "atmel,<chip>-adc"
5 <chip> can be "at91sam9260", "at91sam9g45" or "at91sam9x5"
5 - reg: Should contain ADC registers location and length 6 - reg: Should contain ADC registers location and length
6 - interrupts: Should contain the IRQ line for the ADC 7 - interrupts: Should contain the IRQ line for the ADC
7 - atmel,adc-channel-base: Offset of the first channel data register
8 - atmel,adc-channels-used: Bitmask of the channels muxed and enable for this 8 - atmel,adc-channels-used: Bitmask of the channels muxed and enable for this
9 device 9 device
10 - atmel,adc-drdy-mask: Mask of the DRDY interruption in the ADC
11 - atmel,adc-num-channels: Number of channels available in the ADC 10 - atmel,adc-num-channels: Number of channels available in the ADC
12 - atmel,adc-startup-time: Startup Time of the ADC in microseconds as 11 - atmel,adc-startup-time: Startup Time of the ADC in microseconds as
13 defined in the datasheet 12 defined in the datasheet
14 - atmel,adc-status-register: Offset of the Interrupt Status Register
15 - atmel,adc-trigger-register: Offset of the Trigger Register
16 - atmel,adc-vref: Reference voltage in millivolts for the conversions 13 - atmel,adc-vref: Reference voltage in millivolts for the conversions
17 - atmel,adc-res: List of resolution in bits supported by the ADC. List size 14 - atmel,adc-res: List of resolution in bits supported by the ADC. List size
18 must be two at least. 15 must be two at least.
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt b/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt
index fb7b5cd2652f..0ff6560e6094 100644
--- a/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt
+++ b/Documentation/devicetree/bindings/arm/bcm/bcm11351.txt
@@ -6,4 +6,5 @@ bcm11351, bcm28145, bcm28155 SoCs) shall have the following properties:
6 6
7Required root node property: 7Required root node property:
8 8
9compatible = "bcm,bcm11351"; 9compatible = "brcm,bcm11351";
10DEPRECATED: compatible = "bcm,bcm11351";
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm,kona-timer.txt b/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt
index 59fa6e68d4f6..17d88b233d1b 100644
--- a/Documentation/devicetree/bindings/arm/bcm/bcm,kona-timer.txt
+++ b/Documentation/devicetree/bindings/arm/bcm/kona-timer.txt
@@ -4,14 +4,15 @@ This timer is used in the following Broadcom SoCs:
4 BCM11130, BCM11140, BCM11351, BCM28145, BCM28155 4 BCM11130, BCM11140, BCM11351, BCM28145, BCM28155
5 5
6Required properties: 6Required properties:
7- compatible : "bcm,kona-timer" 7- compatible : "brcm,kona-timer"
8- DEPRECATED: compatible : "bcm,kona-timer"
8- reg : Register range for the timer 9- reg : Register range for the timer
9- interrupts : interrupt for the timer 10- interrupts : interrupt for the timer
10- clock-frequency: frequency that the clock operates 11- clock-frequency: frequency that the clock operates
11 12
12Example: 13Example:
13 timer@35006000 { 14 timer@35006000 {
14 compatible = "bcm,kona-timer"; 15 compatible = "brcm,kona-timer";
15 reg = <0x35006000 0x1000>; 16 reg = <0x35006000 0x1000>;
16 interrupts = <0x0 7 0x4>; 17 interrupts = <0x0 7 0x4>;
17 clock-frequency = <32768>; 18 clock-frequency = <32768>;
diff --git a/Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt b/Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt
new file mode 100644
index 000000000000..2b86a00e351d
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/bcm/kona-wdt.txt
@@ -0,0 +1,15 @@
1Broadcom Kona Family Watchdog Timer
2-----------------------------------
3
4This watchdog timer is used in the following Broadcom SoCs:
5 BCM11130, BCM11140, BCM11351, BCM28145, BCM28155
6
7Required properties:
8 - compatible = "brcm,bcm11351-wdt", "brcm,kona-wdt";
9 - reg: memory address & range
10
11Example:
12 watchdog@35002f40 {
13 compatible = "brcm,bcm11351-wdt", "brcm,kona-wdt";
14 reg = <0x35002f40 0x6c>;
15 };
diff --git a/Documentation/devicetree/bindings/arm/l2cc.txt b/Documentation/devicetree/bindings/arm/l2cc.txt
index 69ddf9fad2dc..c0c7626fd0ff 100644
--- a/Documentation/devicetree/bindings/arm/l2cc.txt
+++ b/Documentation/devicetree/bindings/arm/l2cc.txt
@@ -16,9 +16,11 @@ Required properties:
16 performs the same operation). 16 performs the same operation).
17 "marvell,"aurora-outer-cache: Marvell Controller designed to be 17 "marvell,"aurora-outer-cache: Marvell Controller designed to be
18 compatible with the ARM one with outer cache mode. 18 compatible with the ARM one with outer cache mode.
19 "bcm,bcm11351-a2-pl310-cache": For Broadcom bcm11351 chipset where an 19 "brcm,bcm11351-a2-pl310-cache": For Broadcom bcm11351 chipset where an
20 offset needs to be added to the address before passing down to the L2 20 offset needs to be added to the address before passing down to the L2
21 cache controller 21 cache controller
22 "bcm,bcm11351-a2-pl310-cache": DEPRECATED by
23 "brcm,bcm11351-a2-pl310-cache"
22- cache-unified : Specifies the cache is a unified cache. 24- cache-unified : Specifies the cache is a unified cache.
23- cache-level : Should be set to 2 for a level 2 cache. 25- cache-level : Should be set to 2 for a level 2 cache.
24- reg : Physical base address and size of cache controller's memory mapped 26- reg : Physical base address and size of cache controller's memory mapped
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 6d498c758b45..91b7049affa1 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -59,3 +59,6 @@ Boards:
59 59
60- AM43x EPOS EVM 60- AM43x EPOS EVM
61 compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43" 61 compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43"
62
63- DRA7 EVM: Software Developement Board for DRA7XX
64 compatible = "ti,dra7-evm", "ti,dra7"
diff --git a/Documentation/devicetree/bindings/arm/ste-u300.txt b/Documentation/devicetree/bindings/arm/ste-u300.txt
index 69b5ab0b5f4b..d11d80006a19 100644
--- a/Documentation/devicetree/bindings/arm/ste-u300.txt
+++ b/Documentation/devicetree/bindings/arm/ste-u300.txt
@@ -22,7 +22,7 @@ This contains the board-specific information.
22- compatible: must be "stericsson,s365". 22- compatible: must be "stericsson,s365".
23- vana15-supply: the regulator supplying the 1.5V to drive the 23- vana15-supply: the regulator supplying the 1.5V to drive the
24 board. 24 board.
25- syscon: a pointer to the syscon node so we can acccess the 25- syscon: a pointer to the syscon node so we can access the
26 syscon registers to set the board as self-powered. 26 syscon registers to set the board as self-powered.
27 27
28Example: 28Example:
diff --git a/Documentation/devicetree/bindings/arm/vexpress-scc.txt b/Documentation/devicetree/bindings/arm/vexpress-scc.txt
new file mode 100644
index 000000000000..ae5043e42e5d
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/vexpress-scc.txt
@@ -0,0 +1,33 @@
1ARM Versatile Express Serial Configuration Controller
2-----------------------------------------------------
3
4Test chips for ARM Versatile Express platform implement SCC (Serial
5Configuration Controller) interface, used to set initial conditions
6for the test chip.
7
8In some cases its registers are also mapped in normal address space
9and can be used to obtain runtime information about the chip internals
10(like silicon temperature sensors) and as interface to other subsystems
11like platform configuration control and power management.
12
13Required properties:
14
15- compatible value: "arm,vexpress-scc,<model>", "arm,vexpress-scc";
16 where <model> is the full tile model name (as used
17 in the tile's Technical Reference Manual),
18 eg. for Coretile Express A15x2 A7x3 (V2P-CA15_A7):
19 compatible = "arm,vexpress-scc,v2p-ca15_a7", "arm,vexpress-scc";
20
21Optional properties:
22
23- reg: when the SCC is memory mapped, physical address and size of the
24 registers window
25- interrupts: when the SCC can generate a system-level interrupt
26
27Example:
28
29 scc@7fff0000 {
30 compatible = "arm,vexpress-scc,v2p-ca15_a7", "arm,vexpress-scc";
31 reg = <0 0x7fff0000 0 0x1000>;
32 interrupts = <0 95 4>;
33 };
diff --git a/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt b/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt
index 9cf3f25544c7..5580e9c4bd85 100644
--- a/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt
+++ b/Documentation/devicetree/bindings/arm/vexpress-sysreg.txt
@@ -32,8 +32,8 @@ numbers - see motherboard's TRM for more details.
32The node describing a config device must refer to the sysreg node via 32The node describing a config device must refer to the sysreg node via
33"arm,vexpress,config-bridge" phandle (can be also defined in the node's 33"arm,vexpress,config-bridge" phandle (can be also defined in the node's
34parent) and relies on the board topology properties - see main vexpress 34parent) and relies on the board topology properties - see main vexpress
35node documentation for more details. It must must also define the 35node documentation for more details. It must also define the following
36following property: 36property:
37- arm,vexpress-sysreg,func : must contain two cells: 37- arm,vexpress-sysreg,func : must contain two cells:
38 - first cell defines function number (eg. 1 for clock generator, 38 - first cell defines function number (eg. 1 for clock generator,
39 2 for voltage regulators etc.) 39 2 for voltage regulators etc.)
diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt
index 3ec0c5c4f0e9..89de1564950c 100644
--- a/Documentation/devicetree/bindings/ata/ahci-platform.txt
+++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt
@@ -4,27 +4,17 @@ SATA nodes are defined to describe on-chip Serial ATA controllers.
4Each SATA controller should have its own node. 4Each SATA controller should have its own node.
5 5
6Required properties: 6Required properties:
7- compatible : compatible list, contains "calxeda,hb-ahci" or "snps,spear-ahci" 7- compatible : compatible list, contains "snps,spear-ahci"
8- interrupts : <interrupt mapping for SATA IRQ> 8- interrupts : <interrupt mapping for SATA IRQ>
9- reg : <registers mapping> 9- reg : <registers mapping>
10 10
11Optional properties: 11Optional properties:
12- calxeda,port-phys: phandle-combophy and lane assignment, which maps each
13 SATA port to a combophy and a lane within that
14 combophy
15- calxeda,sgpio-gpio: phandle-gpio bank, bit offset, and default on or off,
16 which indicates that the driver supports SGPIO
17 indicator lights using the indicated GPIOs
18- calxeda,led-order : a u32 array that map port numbers to offsets within the
19 SGPIO bitstream.
20- dma-coherent : Present if dma operations are coherent 12- dma-coherent : Present if dma operations are coherent
21 13
22Example: 14Example:
23 sata@ffe08000 { 15 sata@ffe08000 {
24 compatible = "calxeda,hb-ahci"; 16 compatible = "snps,spear-ahci";
25 reg = <0xffe08000 0x1000>; 17 reg = <0xffe08000 0x1000>;
26 interrupts = <115>; 18 interrupts = <115>;
27 calxeda,port-phys = <&combophy5 0 &combophy0 0 &combophy0 1
28 &combophy0 2 &combophy0 3>;
29 19
30 }; 20 };
diff --git a/Documentation/devicetree/bindings/ata/sata_highbank.txt b/Documentation/devicetree/bindings/ata/sata_highbank.txt
new file mode 100644
index 000000000000..aa83407cb7a4
--- /dev/null
+++ b/Documentation/devicetree/bindings/ata/sata_highbank.txt
@@ -0,0 +1,44 @@
1* Calxeda AHCI SATA Controller
2
3SATA nodes are defined to describe on-chip Serial ATA controllers.
4The Calxeda SATA controller mostly conforms to the AHCI interface
5with some special extensions to add functionality.
6Each SATA controller should have its own node.
7
8Required properties:
9- compatible : compatible list, contains "calxeda,hb-ahci"
10- interrupts : <interrupt mapping for SATA IRQ>
11- reg : <registers mapping>
12
13Optional properties:
14- dma-coherent : Present if dma operations are coherent
15- calxeda,port-phys : phandle-combophy and lane assignment, which maps each
16 SATA port to a combophy and a lane within that
17 combophy
18- calxeda,sgpio-gpio: phandle-gpio bank, bit offset, and default on or off,
19 which indicates that the driver supports SGPIO
20 indicator lights using the indicated GPIOs
21- calxeda,led-order : a u32 array that map port numbers to offsets within the
22 SGPIO bitstream.
23- calxeda,tx-atten : a u32 array that contains TX attenuation override
24 codes, one per port. The upper 3 bytes are always
25 0 and thus ignored.
26- calxeda,pre-clocks : a u32 that indicates the number of additional clock
27 cycles to transmit before sending an SGPIO pattern
28- calxeda,post-clocks: a u32 that indicates the number of additional clock
29 cycles to transmit after sending an SGPIO pattern
30
31Example:
32 sata@ffe08000 {
33 compatible = "calxeda,hb-ahci";
34 reg = <0xffe08000 0x1000>;
35 interrupts = <115>;
36 dma-coherent;
37 calxeda,port-phys = <&combophy5 0 &combophy0 0 &combophy0 1
38 &combophy0 2 &combophy0 3>;
39 calxeda,sgpio-gpio =<&gpioh 5 1 &gpioh 6 1 &gpioh 7 1>;
40 calxeda,led-order = <4 0 1 2 3>;
41 calxeda,tx-atten = <0xff 22 0xff 0xff 23>;
42 calxeda,pre-clocks = <10>;
43 calxeda,post-clocks = <0>;
44 };
diff --git a/Documentation/devicetree/bindings/bus/imx-weim.txt b/Documentation/devicetree/bindings/bus/imx-weim.txt
index cedc2a9c4785..0fd76c405208 100644
--- a/Documentation/devicetree/bindings/bus/imx-weim.txt
+++ b/Documentation/devicetree/bindings/bus/imx-weim.txt
@@ -8,7 +8,7 @@ The actual devices are instantiated from the child nodes of a WEIM node.
8 8
9Required properties: 9Required properties:
10 10
11 - compatible: Should be set to "fsl,imx6q-weim" 11 - compatible: Should be set to "fsl,<soc>-weim"
12 - reg: A resource specifier for the register space 12 - reg: A resource specifier for the register space
13 (see the example below) 13 (see the example below)
14 - clocks: the clock, see the example below. 14 - clocks: the clock, see the example below.
@@ -21,11 +21,18 @@ Required properties:
21 21
22Timing property for child nodes. It is mandatory, not optional. 22Timing property for child nodes. It is mandatory, not optional.
23 23
24 - fsl,weim-cs-timing: The timing array, contains 6 timing values for the 24 - fsl,weim-cs-timing: The timing array, contains timing values for the
25 child node. We can get the CS index from the child 25 child node. We can get the CS index from the child
26 node's "reg" property. This property contains the values 26 node's "reg" property. The number of registers depends
27 for the registers EIM_CSnGCR1, EIM_CSnGCR2, EIM_CSnRCR1, 27 on the selected chip.
28 EIM_CSnRCR2, EIM_CSnWCR1, EIM_CSnWCR2 in this order. 28 For i.MX1, i.MX21 ("fsl,imx1-weim") there are two
29 registers: CSxU, CSxL.
30 For i.MX25, i.MX27, i.MX31 and i.MX35 ("fsl,imx27-weim")
31 there are three registers: CSCRxU, CSCRxL, CSCRxA.
32 For i.MX50, i.MX53 ("fsl,imx50-weim"),
33 i.MX51 ("fsl,imx51-weim") and i.MX6Q ("fsl,imx6q-weim")
34 there are six registers: CSxGCR1, CSxGCR2, CSxRCR1,
35 CSxRCR2, CSxWCR1, CSxWCR2.
29 36
30Example for an imx6q-sabreauto board, the NOR flash connected to the WEIM: 37Example for an imx6q-sabreauto board, the NOR flash connected to the WEIM:
31 38
diff --git a/Documentation/devicetree/bindings/bus/mvebu-mbus.txt b/Documentation/devicetree/bindings/bus/mvebu-mbus.txt
new file mode 100644
index 000000000000..7586fb68c072
--- /dev/null
+++ b/Documentation/devicetree/bindings/bus/mvebu-mbus.txt
@@ -0,0 +1,276 @@
1
2* Marvell MBus
3
4Required properties:
5
6- compatible: Should be set to one of the following:
7 marvell,armada370-mbus
8 marvell,armadaxp-mbus
9 marvell,armada370-mbus
10 marvell,armadaxp-mbus
11 marvell,kirkwood-mbus
12 marvell,dove-mbus
13 marvell,orion5x-88f5281-mbus
14 marvell,orion5x-88f5182-mbus
15 marvell,orion5x-88f5181-mbus
16 marvell,orion5x-88f6183-mbus
17 marvell,mv78xx0-mbus
18
19- address-cells: Must be '2'. The first cell for the MBus ID encoding,
20 the second cell for the address offset within the window.
21
22- size-cells: Must be '1'.
23
24- ranges: Must be set up to provide a proper translation for each child.
25 See the examples below.
26
27- controller: Contains a single phandle referring to the MBus controller
28 node. This allows to specify the node that contains the
29 registers that control the MBus, which is typically contained
30 within the internal register window (see below).
31
32Optional properties:
33
34- pcie-mem-aperture: This optional property contains the aperture for
35 the memory region of the PCIe driver.
36 If it's defined, it must encode the base address and
37 size for the address decoding windows allocated for
38 the PCIe memory region.
39
40- pcie-io-aperture: Just as explained for the above property, this
41 optional property contains the aperture for the
42 I/O region of the PCIe driver.
43
44* Marvell MBus controller
45
46Required properties:
47
48- compatible: Should be set to "marvell,mbus-controller".
49
50- reg: Device's register space.
51 Two entries are expected (see the examples below):
52 the first one controls the devices decoding window and
53 the second one controls the SDRAM decoding window.
54
55Example:
56
57 soc {
58 compatible = "marvell,armada370-mbus", "simple-bus";
59 #address-cells = <2>;
60 #size-cells = <1>;
61 controller = <&mbusc>;
62 pcie-mem-aperture = <0xe0000000 0x8000000>;
63 pcie-io-aperture = <0xe8000000 0x100000>;
64
65 internal-regs {
66 compatible = "simple-bus";
67
68 mbusc: mbus-controller@20000 {
69 compatible = "marvell,mbus-controller";
70 reg = <0x20000 0x100>, <0x20180 0x20>;
71 };
72
73 /* more children ...*/
74 };
75 };
76
77** MBus address decoding window specification
78
79The MBus children address space is comprised of two cells: the first one for
80the window ID and the second one for the offset within the window.
81In order to allow to describe valid and non-valid window entries, the
82following encoding is used:
83
84 0xSIAA0000 0x00oooooo
85
86Where:
87
88 S = 0x0 for a MBus valid window
89 S = 0xf for a non-valid window (see below)
90
91If S = 0x0, then:
92
93 I = 4-bit window target ID
94 AA = windpw attribute
95
96If S = 0xf, then:
97
98 I = don't care
99 AA = 1 for internal register
100
101Following the above encoding, for each ranges entry for a MBus valid window
102(S = 0x0), an address decoding window is allocated. On the other side,
103entries for translation that do not correspond to valid windows (S = 0xf)
104are skipped.
105
106 soc {
107 compatible = "marvell,armada370-mbus", "simple-bus";
108 #address-cells = <2>;
109 #size-cells = <1>;
110 controller = <&mbusc>;
111
112 ranges = <0xf0010000 0 0 0xd0000000 0x100000
113 0x01e00000 0 0 0xfff00000 0x100000>;
114
115 bootrom {
116 compatible = "marvell,bootrom";
117 reg = <0x01e00000 0 0x100000>;
118 };
119
120 /* other children */
121 ...
122
123 internal-regs {
124 compatible = "simple-bus";
125 ranges = <0 0xf0010000 0 0x100000>;
126
127 mbusc: mbus-controller@20000 {
128 compatible = "marvell,mbus-controller";
129 reg = <0x20000 0x100>, <0x20180 0x20>;
130 };
131
132 /* more children ...*/
133 };
134 };
135
136In the shown example, the translation entry in the 'ranges' property is what
137makes the MBus driver create a static decoding window for the corresponding
138given child device. Note that the binding does not require child nodes to be
139present. Of course, child nodes are needed to probe the devices.
140
141Since each window is identified by its target ID and attribute ID there's
142a special macro that can be use to simplify the translation entries:
143
144#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
145
146Using this macro, the above example would be:
147
148 soc {
149 compatible = "marvell,armada370-mbus", "simple-bus";
150 #address-cells = <2>;
151 #size-cells = <1>;
152 controller = <&mbusc>;
153
154 ranges = < MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
155 MBUS_ID(0x01, 0xe0) 0 0 0xfff00000 0x100000>;
156
157 bootrom {
158 compatible = "marvell,bootrom";
159 reg = <MBUS_ID(0x01, 0xe0) 0 0x100000>;
160 };
161
162 /* other children */
163 ...
164
165 internal-regs {
166 compatible = "simple-bus";
167 #address-cells = <1>;
168 #size-cells = <1>;
169 ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
170
171 mbusc: mbus-controller@20000 {
172 compatible = "marvell,mbus-controller";
173 reg = <0x20000 0x100>, <0x20180 0x20>;
174 };
175
176 /* other children */
177 ...
178 };
179 };
180
181
182** About the window base address
183
184Remember the MBus controller allows a great deal of flexibility for choosing
185the decoding window base address. When planning the device tree layout it's
186possible to choose any address as the base address, provided of course there's
187a region large enough available, and with the required alignment.
188
189Yet in other words: there's nothing preventing us from setting a base address
190of 0xf0000000, or 0xd0000000 for the NOR device shown above, if such region is
191unused.
192
193** Window allocation policy
194
195The mbus-node ranges property defines a set of mbus windows that are expected
196to be set by the operating system and that are guaranteed to be free of overlaps
197with one another or with the system memory ranges.
198
199Each entry in the property refers to exactly one window. If the operating system
200choses to use a different set of mbus windows, it must ensure that any address
201translations performed from downstream devices are adapted accordingly.
202
203The operating system may insert additional mbus windows that do not conflict
204with the ones listed in the ranges, e.g. for mapping PCIe devices.
205As a special case, the internal register window must be set up by the boot
206loader at the address listed in the ranges property, since access to that region
207is needed to set up the other windows.
208
209** Example
210
211See the example below, where a more complete device tree is shown:
212
213 soc {
214 compatible = "marvell,armadaxp-mbus", "simple-bus";
215 controller = <&mbusc>;
216
217 ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 /* internal-regs */
218 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
219 MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x8000000>;
220
221 bootrom {
222 compatible = "marvell,bootrom";
223 reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>;
224 };
225
226 devbus-bootcs {
227 status = "okay";
228 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0x8000000>;
229
230 /* NOR */
231 nor {
232 compatible = "cfi-flash";
233 reg = <0 0x8000000>;
234 bank-width = <2>;
235 };
236 };
237
238 pcie-controller {
239 compatible = "marvell,armada-xp-pcie";
240 status = "okay";
241 device_type = "pci";
242
243 #address-cells = <3>;
244 #size-cells = <2>;
245
246 ranges =
247 <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */
248 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */
249 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */
250 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */
251 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */
252 0x82000800 0 0xe0000000 MBUS_ID(0x04, 0xe8) 0xe0000000 0 0x08000000 /* Port 0.0 MEM */
253 0x81000800 0 0 MBUS_ID(0x04, 0xe0) 0xe8000000 0 0x00100000 /* Port 0.0 IO */>;
254
255
256 pcie@1,0 {
257 /* Port 0, Lane 0 */
258 status = "okay";
259 };
260 };
261
262 internal-regs {
263 compatible = "simple-bus";
264 #address-cells = <1>;
265 #size-cells = <1>;
266 ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
267
268 mbusc: mbus-controller@20000 {
269 reg = <0x20000 0x100>, <0x20180 0x20>;
270 };
271
272 interrupt-controller@20000 {
273 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
274 };
275 };
276 };
diff --git a/Documentation/devicetree/bindings/c6x/dscr.txt b/Documentation/devicetree/bindings/c6x/dscr.txt
index d847758f2b20..b0e97144cfb1 100644
--- a/Documentation/devicetree/bindings/c6x/dscr.txt
+++ b/Documentation/devicetree/bindings/c6x/dscr.txt
@@ -5,7 +5,7 @@ TI C6X SoCs contain a region of miscellaneous registers which provide various
5function for SoC control or status. Details vary considerably among from SoC 5function for SoC control or status. Details vary considerably among from SoC
6to SoC with no two being alike. 6to SoC with no two being alike.
7 7
8In general, the Device State Configuraion Registers (DSCR) will provide one or 8In general, the Device State Configuration Registers (DSCR) will provide one or
9more configuration registers often protected by a lock register where one or 9more configuration registers often protected by a lock register where one or
10more key values must be written to a lock register in order to unlock the 10more key values must be written to a lock register in order to unlock the
11configuration register for writes. These configuration register may be used to 11configuration register for writes. These configuration register may be used to
diff --git a/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt
index a1201802f90d..75e2e1999f87 100644
--- a/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt
+++ b/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt
@@ -2,7 +2,7 @@
2 2
3The Samsung Audio Subsystem clock controller generates and supplies clocks 3The Samsung Audio Subsystem clock controller generates and supplies clocks
4to Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock 4to Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock
5binding described here is applicable to all SoC's in Exynos family. 5binding described here is applicable to all SoCs in Exynos family.
6 6
7Required Properties: 7Required Properties:
8 8
diff --git a/Documentation/devicetree/bindings/clock/exynos4-clock.txt b/Documentation/devicetree/bindings/clock/exynos4-clock.txt
index 14d5c2af26f4..c6bf8a6c8f52 100644
--- a/Documentation/devicetree/bindings/clock/exynos4-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos4-clock.txt
@@ -236,6 +236,7 @@ Exynos4 SoC and this is specified where applicable.
236 spi0_isp_sclk 380 Exynos4x12 236 spi0_isp_sclk 380 Exynos4x12
237 spi1_isp_sclk 381 Exynos4x12 237 spi1_isp_sclk 381 Exynos4x12
238 uart_isp_sclk 382 Exynos4x12 238 uart_isp_sclk 382 Exynos4x12
239 tmu_apbif 383
239 240
240 [Mux Clocks] 241 [Mux Clocks]
241 242
diff --git a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt
index 781a6276adf7..24765c146e31 100644
--- a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt
@@ -59,6 +59,9 @@ clock which they consume.
59 sclk_spi0 154 59 sclk_spi0 154
60 sclk_spi1 155 60 sclk_spi1 155
61 sclk_spi2 156 61 sclk_spi2 156
62 div_i2s1 157
63 div_i2s2 158
64 sclk_hdmiphy 159
62 65
63 66
64 [Peripheral Clock Gates] 67 [Peripheral Clock Gates]
@@ -154,7 +157,16 @@ clock which they consume.
154 dsim0 341 157 dsim0 341
155 dp 342 158 dp 342
156 mixer 343 159 mixer 343
157 hdmi 345 160 hdmi 344
161 g2d 345
162
163
164 [Clock Muxes]
165
166 Clock ID
167 ----------------------------
168 mout_hdmi 1024
169
158 170
159Example 1: An example of a clock controller node is listed below. 171Example 1: An example of a clock controller node is listed below.
160 172
diff --git a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
index 9bcc4b1bff51..32aa34ecad36 100644
--- a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
@@ -59,6 +59,7 @@ clock which they consume.
59 sclk_pwm 155 59 sclk_pwm 155
60 sclk_gscl_wa 156 60 sclk_gscl_wa 156
61 sclk_gscl_wb 157 61 sclk_gscl_wb 157
62 sclk_hdmiphy 158
62 63
63 [Peripheral Clock Gates] 64 [Peripheral Clock Gates]
64 65
@@ -179,6 +180,17 @@ clock which they consume.
179 fimc_lite3 495 180 fimc_lite3 495
180 aclk_g3d 500 181 aclk_g3d 500
181 g3d 501 182 g3d 501
183 smmu_mixer 502
184
185 Mux ID
186 ----------------------------
187
188 mout_hdmi 640
189
190 Divider ID
191 ----------------------------
192
193 dout_pixel 768
182 194
183Example 1: An example of a clock controller node is listed below. 195Example 1: An example of a clock controller node is listed below.
184 196
diff --git a/Documentation/devicetree/bindings/clock/imx5-clock.txt b/Documentation/devicetree/bindings/clock/imx5-clock.txt
index f46f5625d8ad..4c029a8739d3 100644
--- a/Documentation/devicetree/bindings/clock/imx5-clock.txt
+++ b/Documentation/devicetree/bindings/clock/imx5-clock.txt
@@ -197,6 +197,7 @@ clocks and IDs.
197 spdif0_gate 183 197 spdif0_gate 183
198 spdif1_gate 184 198 spdif1_gate 184
199 spdif_ipg_gate 185 199 spdif_ipg_gate 185
200 ocram 186
200 201
201Examples (for mx53): 202Examples (for mx53):
202 203
diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
index a0e104f0527e..5a90a724b520 100644
--- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt
+++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
@@ -209,6 +209,12 @@ clocks and IDs.
209 pll5_post_div 194 209 pll5_post_div 194
210 pll5_video_div 195 210 pll5_video_div 195
211 eim_slow 196 211 eim_slow 196
212 spdif 197
213 cko2_sel 198
214 cko2_podf 199
215 cko2 200
216 cko 201
217 vdoa 202
212 218
213Examples: 219Examples:
214 220
diff --git a/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt b/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt
new file mode 100644
index 000000000000..fa171dc4bd3c
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt
@@ -0,0 +1,77 @@
1* Samsung S3C64xx Clock Controller
2
3The S3C64xx clock controller generates and supplies clock to various controllers
4within the SoC. The clock binding described here is applicable to all SoCs in
5the S3C64xx family.
6
7Required Properties:
8
9- compatible: should be one of the following.
10 - "samsung,s3c6400-clock" - controller compatible with S3C6400 SoC.
11 - "samsung,s3c6410-clock" - controller compatible with S3C6410 SoC.
12
13- reg: physical base address of the controller and length of memory mapped
14 region.
15
16- #clock-cells: should be 1.
17
18Each clock is assigned an identifier and client nodes can use this identifier
19to specify the clock which they consume. Some of the clocks are available only
20on a particular S3C64xx SoC and this is specified where applicable.
21
22All available clocks are defined as preprocessor macros in
23dt-bindings/clock/samsung,s3c64xx-clock.h header and can be used in device
24tree sources.
25
26External clocks:
27
28There are several clocks that are generated outside the SoC. It is expected
29that they are defined using standard clock bindings with following
30clock-output-names:
31 - "fin_pll" - PLL input clock (xtal/extclk) - required,
32 - "xusbxti" - USB xtal - required,
33 - "iiscdclk0" - I2S0 codec clock - optional,
34 - "iiscdclk1" - I2S1 codec clock - optional,
35 - "iiscdclk2" - I2S2 codec clock - optional,
36 - "pcmcdclk0" - PCM0 codec clock - optional,
37 - "pcmcdclk1" - PCM1 codec clock - optional, only S3C6410.
38
39Example: Clock controller node:
40
41 clock: clock-controller@7e00f000 {
42 compatible = "samsung,s3c6410-clock";
43 reg = <0x7e00f000 0x1000>;
44 #clock-cells = <1>;
45 };
46
47Example: Required external clocks:
48
49 fin_pll: clock-fin-pll {
50 compatible = "fixed-clock";
51 clock-output-names = "fin_pll";
52 clock-frequency = <12000000>;
53 #clock-cells = <0>;
54 };
55
56 xusbxti: clock-xusbxti {
57 compatible = "fixed-clock";
58 clock-output-names = "xusbxti";
59 clock-frequency = <48000000>;
60 #clock-cells = <0>;
61 };
62
63Example: UART controller node that consumes the clock generated by the clock
64 controller (refer to the standard clock bindings for information about
65 "clocks" and "clock-names" properties):
66
67 uart0: serial@7f005000 {
68 compatible = "samsung,s3c6400-uart";
69 reg = <0x7f005000 0x100>;
70 interrupt-parent = <&vic1>;
71 interrupts = <5>;
72 clock-names = "uart", "clk_uart_baud2",
73 "clk_uart_baud3";
74 clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>,
75 <&clock SCLK_UART>;
76 status = "disabled";
77 };
diff --git a/Documentation/devicetree/bindings/clock/st,nomadik.txt b/Documentation/devicetree/bindings/clock/st,nomadik.txt
index 7fc09773de46..40e0cf1f7b99 100644
--- a/Documentation/devicetree/bindings/clock/st,nomadik.txt
+++ b/Documentation/devicetree/bindings/clock/st,nomadik.txt
@@ -17,7 +17,7 @@ Optional properties for the SRC node:
17- disable-mxtal: if present this will disable the MXTALO, 17- disable-mxtal: if present this will disable the MXTALO,
18 i.e. the driver output for the main (~19.2 MHz) chrystal, 18 i.e. the driver output for the main (~19.2 MHz) chrystal,
19 if the board has its own circuitry for providing this 19 if the board has its own circuitry for providing this
20 osciallator 20 oscillator
21 21
22 22
23PLL nodes: these nodes represent the two PLLs on the system, 23PLL nodes: these nodes represent the two PLLs on the system,
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
index d495521a79d2..00a5c26454eb 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -8,19 +8,31 @@ Required properties:
8- compatible : shall be one of the following: 8- compatible : shall be one of the following:
9 "allwinner,sun4i-osc-clk" - for a gatable oscillator 9 "allwinner,sun4i-osc-clk" - for a gatable oscillator
10 "allwinner,sun4i-pll1-clk" - for the main PLL clock 10 "allwinner,sun4i-pll1-clk" - for the main PLL clock
11 "allwinner,sun6i-a31-pll1-clk" - for the main PLL clock on A31
11 "allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock 12 "allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock
12 "allwinner,sun4i-axi-clk" - for the AXI clock 13 "allwinner,sun4i-axi-clk" - for the AXI clock
13 "allwinner,sun4i-axi-gates-clk" - for the AXI gates 14 "allwinner,sun4i-axi-gates-clk" - for the AXI gates
14 "allwinner,sun4i-ahb-clk" - for the AHB clock 15 "allwinner,sun4i-ahb-clk" - for the AHB clock
15 "allwinner,sun4i-ahb-gates-clk" - for the AHB gates on A10 16 "allwinner,sun4i-ahb-gates-clk" - for the AHB gates on A10
16 "allwinner,sun5i-a13-ahb-gates-clk" - for the AHB gates on A13 17 "allwinner,sun5i-a13-ahb-gates-clk" - for the AHB gates on A13
18 "allwinner,sun5i-a10s-ahb-gates-clk" - for the AHB gates on A10s
19 "allwinner,sun7i-a20-ahb-gates-clk" - for the AHB gates on A20
20 "allwinner,sun6i-a31-ahb1-mux-clk" - for the AHB1 multiplexer on A31
21 "allwinner,sun6i-a31-ahb1-gates-clk" - for the AHB1 gates on A31
17 "allwinner,sun4i-apb0-clk" - for the APB0 clock 22 "allwinner,sun4i-apb0-clk" - for the APB0 clock
18 "allwinner,sun4i-apb0-gates-clk" - for the APB0 gates on A10 23 "allwinner,sun4i-apb0-gates-clk" - for the APB0 gates on A10
19 "allwinner,sun5i-a13-apb0-gates-clk" - for the APB0 gates on A13 24 "allwinner,sun5i-a13-apb0-gates-clk" - for the APB0 gates on A13
25 "allwinner,sun5i-a10s-apb0-gates-clk" - for the APB0 gates on A10s
26 "allwinner,sun7i-a20-apb0-gates-clk" - for the APB0 gates on A20
20 "allwinner,sun4i-apb1-clk" - for the APB1 clock 27 "allwinner,sun4i-apb1-clk" - for the APB1 clock
21 "allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing 28 "allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing
22 "allwinner,sun4i-apb1-gates-clk" - for the APB1 gates on A10 29 "allwinner,sun4i-apb1-gates-clk" - for the APB1 gates on A10
23 "allwinner,sun5i-a13-apb1-gates-clk" - for the APB1 gates on A13 30 "allwinner,sun5i-a13-apb1-gates-clk" - for the APB1 gates on A13
31 "allwinner,sun5i-a10s-apb1-gates-clk" - for the APB1 gates on A10s
32 "allwinner,sun6i-a31-apb1-gates-clk" - for the APB1 gates on A31
33 "allwinner,sun7i-a20-apb1-gates-clk" - for the APB1 gates on A20
34 "allwinner,sun6i-a31-apb2-div-clk" - for the APB2 gates on A31
35 "allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31
24 36
25Required properties for all clocks: 37Required properties for all clocks:
26- reg : shall be the control register address for the clock. 38- reg : shall be the control register address for the clock.
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt
new file mode 100644
index 000000000000..d24279fe1429
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt
@@ -0,0 +1,75 @@
1Gate clock outputs
2------------------
3
4 * AXI gates ("allwinner,sun4i-axi-gates-clk")
5
6 DRAM 0
7
8 * AHB gates ("allwinner,sun5i-a10s-ahb-gates-clk")
9
10 USB0 0
11 EHCI0 1
12 OHCI0 2
13
14 SS 5
15 DMA 6
16 BIST 7
17 MMC0 8
18 MMC1 9
19 MMC2 10
20
21 NAND 13
22 SDRAM 14
23
24 EMAC 17
25 TS 18
26
27 SPI0 20
28 SPI1 21
29 SPI2 22
30
31 GPS 26
32
33 HSTIMER 28
34
35 VE 32
36
37 TVE 34
38
39 LCD 36
40
41 CSI 40
42
43 HDMI 43
44 DE_BE 44
45
46 DE_FE 46
47
48 IEP 51
49 MALI400 52
50
51 * APB0 gates ("allwinner,sun5i-a10s-apb0-gates-clk")
52
53 CODEC 0
54
55 IIS 3
56
57 PIO 5
58 IR 6
59
60 KEYPAD 10
61
62 * APB1 gates ("allwinner,sun5i-a10s-apb1-gates-clk")
63
64 I2C0 0
65 I2C1 1
66 I2C2 2
67
68 UART0 16
69 UART1 17
70 UART2 18
71 UART3 19
72
73Notation:
74 [*]: The datasheet didn't mention these, but they are present on AW code
75 [**]: The datasheet had this marked as "NC" but they are used on AW code
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt
new file mode 100644
index 000000000000..fe44932b5c6b
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt
@@ -0,0 +1,83 @@
1Gate clock outputs
2------------------
3
4 * AHB1 gates ("allwinner,sun6i-a31-ahb1-gates-clk")
5
6 MIPI DSI 1
7
8 SS 5
9 DMA 6
10
11 MMC0 8
12 MMC1 9
13 MMC2 10
14 MMC3 11
15
16 NAND1 12
17 NAND0 13
18 SDRAM 14
19
20 GMAC 17
21 TS 18
22 HSTIMER 19
23 SPI0 20
24 SPI1 21
25 SPI2 22
26 SPI3 23
27 USB_OTG 24
28
29 EHCI0 26
30 EHCI1 27
31
32 OHCI0 29
33 OHCI1 30
34 OHCI2 31
35 VE 32
36
37 LCD0 36
38 LCD1 37
39
40 CSI 40
41
42 HDMI 43
43 DE_BE0 44
44 DE_BE1 45
45 DE_FE1 46
46 DE_FE1 47
47
48 MP 50
49
50 GPU 52
51
52 DEU0 55
53 DEU1 56
54 DRC0 57
55 DRC1 58
56
57 * APB1 gates ("allwinner,sun6i-a31-apb1-gates-clk")
58
59 CODEC 0
60
61 DIGITAL MIC 4
62 PIO 5
63
64 DAUDIO0 12
65 DAUDIO1 13
66
67 * APB2 gates ("allwinner,sun6i-a31-apb2-gates-clk")
68
69 I2C0 0
70 I2C1 1
71 I2C2 2
72 I2C3 3
73
74 UART0 16
75 UART1 17
76 UART2 18
77 UART3 19
78 UART4 20
79 UART5 21
80
81Notation:
82 [*]: The datasheet didn't mention these, but they are present on AW code
83 [**]: The datasheet had this marked as "NC" but they are used on AW code
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt
new file mode 100644
index 000000000000..357f4fdc02ef
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt
@@ -0,0 +1,98 @@
1Gate clock outputs
2------------------
3
4 * AXI gates ("allwinner,sun4i-axi-gates-clk")
5
6 DRAM 0
7
8 * AHB gates ("allwinner,sun7i-a20-ahb-gates-clk")
9
10 USB0 0
11 EHCI0 1
12 OHCI0 2
13 EHCI1 3
14 OHCI1 4
15 SS 5
16 DMA 6
17 BIST 7
18 MMC0 8
19 MMC1 9
20 MMC2 10
21 MMC3 11
22 MS 12
23 NAND 13
24 SDRAM 14
25
26 ACE 16
27 EMAC 17
28 TS 18
29
30 SPI0 20
31 SPI1 21
32 SPI2 22
33 SPI3 23
34
35 SATA 25
36
37 HSTIMER 28
38
39 VE 32
40 TVD 33
41 TVE0 34
42 TVE1 35
43 LCD0 36
44 LCD1 37
45
46 CSI0 40
47 CSI1 41
48
49 HDMI1 42
50 HDMI0 43
51 DE_BE0 44
52 DE_BE1 45
53 DE_FE1 46
54 DE_FE1 47
55
56 GMAC 49
57 MP 50
58
59 MALI400 52
60
61 * APB0 gates ("allwinner,sun7i-a20-apb0-gates-clk")
62
63 CODEC 0
64 SPDIF 1
65 AC97 2
66 IIS0 3
67 IIS1 4
68 PIO 5
69 IR0 6
70 IR1 7
71 IIS2 8
72
73 KEYPAD 10
74
75 * APB1 gates ("allwinner,sun7i-a20-apb1-gates-clk")
76
77 I2C0 0
78 I2C1 1
79 I2C2 2
80 I2C3 3
81 CAN 4
82 SCR 5
83 PS20 6
84 PS21 7
85
86 I2C4 15
87 UART0 16
88 UART1 17
89 UART2 18
90 UART3 19
91 UART4 20
92 UART5 21
93 UART6 22
94 UART7 23
95
96Notation:
97 [*]: The datasheet didn't mention these, but they are present on AW code
98 [**]: The datasheet had this marked as "NC" but they are used on AW code
diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec6.txt b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt
new file mode 100644
index 000000000000..c0a20cd972e3
--- /dev/null
+++ b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt
@@ -0,0 +1,157 @@
1SEC 6 is as Freescale's Cryptographic Accelerator and Assurance Module (CAAM).
2Currently Freescale powerpc chip C29X is embeded with SEC 6.
3SEC 6 device tree binding include:
4 -SEC 6 Node
5 -Job Ring Node
6 -Full Example
7
8=====================================================================
9SEC 6 Node
10
11Description
12
13 Node defines the base address of the SEC 6 block.
14 This block specifies the address range of all global
15 configuration registers for the SEC 6 block.
16 For example, In C293, we could see three SEC 6 node.
17
18PROPERTIES
19
20 - compatible
21 Usage: required
22 Value type: <string>
23 Definition: Must include "fsl,sec-v6.0".
24
25 - fsl,sec-era
26 Usage: optional
27 Value type: <u32>
28 Definition: A standard property. Define the 'ERA' of the SEC
29 device.
30
31 - #address-cells
32 Usage: required
33 Value type: <u32>
34 Definition: A standard property. Defines the number of cells
35 for representing physical addresses in child nodes.
36
37 - #size-cells
38 Usage: required
39 Value type: <u32>
40 Definition: A standard property. Defines the number of cells
41 for representing the size of physical addresses in
42 child nodes.
43
44 - reg
45 Usage: required
46 Value type: <prop-encoded-array>
47 Definition: A standard property. Specifies the physical
48 address and length of the SEC 6 configuration registers.
49
50 - ranges
51 Usage: required
52 Value type: <prop-encoded-array>
53 Definition: A standard property. Specifies the physical address
54 range of the SEC 6.0 register space (-SNVS not included). A
55 triplet that includes the child address, parent address, &
56 length.
57
58 Note: All other standard properties (see the ePAPR) are allowed
59 but are optional.
60
61EXAMPLE
62 crypto@a0000 {
63 compatible = "fsl,sec-v6.0";
64 fsl,sec-era = <6>;
65 #address-cells = <1>;
66 #size-cells = <1>;
67 reg = <0xa0000 0x20000>;
68 ranges = <0 0xa0000 0x20000>;
69 };
70
71=====================================================================
72Job Ring (JR) Node
73
74 Child of the crypto node defines data processing interface to SEC 6
75 across the peripheral bus for purposes of processing
76 cryptographic descriptors. The specified address
77 range can be made visible to one (or more) cores.
78 The interrupt defined for this node is controlled within
79 the address range of this node.
80
81 - compatible
82 Usage: required
83 Value type: <string>
84 Definition: Must include "fsl,sec-v6.0-job-ring".
85
86 - reg
87 Usage: required
88 Value type: <prop-encoded-array>
89 Definition: Specifies a two JR parameters: an offset from
90 the parent physical address and the length the JR registers.
91
92 - interrupts
93 Usage: required
94 Value type: <prop_encoded-array>
95 Definition: Specifies the interrupts generated by this
96 device. The value of the interrupts property
97 consists of one interrupt specifier. The format
98 of the specifier is defined by the binding document
99 describing the node's interrupt parent.
100
101EXAMPLE
102 jr@1000 {
103 compatible = "fsl,sec-v6.0-job-ring";
104 reg = <0x1000 0x1000>;
105 interrupts = <49 2 0 0>;
106 };
107
108===================================================================
109Full Example
110
111Since some chips may contain more than one SEC, the dtsi contains
112only the node contents, not the node itself. A chip using the SEC
113should include the dtsi inside each SEC node. Example:
114
115In qoriq-sec6.0.dtsi:
116
117 compatible = "fsl,sec-v6.0";
118 fsl,sec-era = <6>;
119 #address-cells = <1>;
120 #size-cells = <1>;
121
122 jr@1000 {
123 compatible = "fsl,sec-v6.0-job-ring",
124 "fsl,sec-v5.2-job-ring",
125 "fsl,sec-v5.0-job-ring",
126 "fsl,sec-v4.4-job-ring",
127 "fsl,sec-v4.0-job-ring";
128 reg = <0x1000 0x1000>;
129 };
130
131 jr@2000 {
132 compatible = "fsl,sec-v6.0-job-ring",
133 "fsl,sec-v5.2-job-ring",
134 "fsl,sec-v5.0-job-ring",
135 "fsl,sec-v4.4-job-ring",
136 "fsl,sec-v4.0-job-ring";
137 reg = <0x2000 0x1000>;
138 };
139
140In the C293 device tree, we add the include of public property:
141
142 crypto@a0000 {
143 /include/ "qoriq-sec6.0.dtsi"
144 }
145
146 crypto@a0000 {
147 reg = <0xa0000 0x20000>;
148 ranges = <0 0xa0000 0x20000>;
149
150 jr@1000 {
151 interrupts = <49 2 0 0>;
152 };
153
154 jr@2000 {
155 interrupts = <50 2 0 0>;
156 };
157 };
diff --git a/Documentation/devicetree/bindings/dma/atmel-dma.txt b/Documentation/devicetree/bindings/dma/atmel-dma.txt
index c280a0e6f42d..e1f343c7a34b 100644
--- a/Documentation/devicetree/bindings/dma/atmel-dma.txt
+++ b/Documentation/devicetree/bindings/dma/atmel-dma.txt
@@ -18,14 +18,14 @@ dma0: dma@ffffec00 {
18 18
19DMA clients connected to the Atmel DMA controller must use the format 19DMA clients connected to the Atmel DMA controller must use the format
20described in the dma.txt file, using a three-cell specifier for each channel: 20described in the dma.txt file, using a three-cell specifier for each channel:
21a phandle plus two interger cells. 21a phandle plus two integer cells.
22The three cells in order are: 22The three cells in order are:
23 23
241. A phandle pointing to the DMA controller. 241. A phandle pointing to the DMA controller.
252. The memory interface (16 most significant bits), the peripheral interface 252. The memory interface (16 most significant bits), the peripheral interface
26(16 less significant bits). 26(16 less significant bits).
273. Parameters for the at91 DMA configuration register which are device 273. Parameters for the at91 DMA configuration register which are device
28dependant: 28dependent:
29 - bit 7-0: peripheral identifier for the hardware handshaking interface. The 29 - bit 7-0: peripheral identifier for the hardware handshaking interface. The
30 identifier can be different for tx and rx. 30 identifier can be different for tx and rx.
31 - bit 11-8: FIFO configuration. 0 for half FIFO, 1 for ALAP, 1 for ASAP. 31 - bit 11-8: FIFO configuration. 0 for half FIFO, 1 for ALAP, 1 for ASAP.
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt
index 2717ecb47db9..7bd8847d6394 100644
--- a/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt
+++ b/Documentation/devicetree/bindings/dma/fsl-imx-dma.txt
@@ -34,7 +34,7 @@ Clients have to specify the DMA requests with phandles in a list.
34Required properties: 34Required properties:
35- dmas: List of one or more DMA request specifiers. One DMA request specifier 35- dmas: List of one or more DMA request specifiers. One DMA request specifier
36 consists of a phandle to the DMA controller followed by the integer 36 consists of a phandle to the DMA controller followed by the integer
37 specifiying the request line. 37 specifying the request line.
38- dma-names: List of string identifiers for the DMA requests. For the correct 38- dma-names: List of string identifiers for the DMA requests. For the correct
39 names, have a look at the specific client driver. 39 names, have a look at the specific client driver.
40 40
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
index 68cee4f5539f..4fa814d38321 100644
--- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
+++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
@@ -1,7 +1,12 @@
1* Freescale Smart Direct Memory Access (SDMA) Controller for i.MX 1* Freescale Smart Direct Memory Access (SDMA) Controller for i.MX
2 2
3Required properties: 3Required properties:
4- compatible : Should be "fsl,<chip>-sdma" 4- compatible : Should be "fsl,imx31-sdma", "fsl,imx31-to1-sdma",
5 "fsl,imx31-to2-sdma", "fsl,imx35-sdma", "fsl,imx35-to1-sdma",
6 "fsl,imx35-to2-sdma", "fsl,imx51-sdma", "fsl,imx53-sdma" or
7 "fsl,imx6q-sdma". The -to variants should be preferred since they
8 allow to determnine the correct ROM script addresses needed for
9 the driver to work without additional firmware.
5- reg : Should contain SDMA registers location and length 10- reg : Should contain SDMA registers location and length
6- interrupts : Should contain SDMA interrupt 11- interrupts : Should contain SDMA interrupt
7- #dma-cells : Must be <3>. 12- #dma-cells : Must be <3>.
diff --git a/Documentation/devicetree/bindings/dma/k3dma.txt b/Documentation/devicetree/bindings/dma/k3dma.txt
new file mode 100644
index 000000000000..23f8d712c3ce
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/k3dma.txt
@@ -0,0 +1,46 @@
1* Hisilicon K3 DMA controller
2
3See dma.txt first
4
5Required properties:
6- compatible: Should be "hisilicon,k3-dma-1.0"
7- reg: Should contain DMA registers location and length.
8- interrupts: Should contain one interrupt shared by all channel
9- #dma-cells: see dma.txt, should be 1, para number
10- dma-channels: physical channels supported
11- dma-requests: virtual channels supported, each virtual channel
12 have specific request line
13- clocks: clock required
14
15Example:
16
17Controller:
18 dma0: dma@fcd02000 {
19 compatible = "hisilicon,k3-dma-1.0";
20 reg = <0xfcd02000 0x1000>;
21 #dma-cells = <1>;
22 dma-channels = <16>;
23 dma-requests = <27>;
24 interrupts = <0 12 4>;
25 clocks = <&pclk>;
26 status = "disable";
27 };
28
29Client:
30Use specific request line passing from dmax
31For example, i2c0 read channel request line is 18, while write channel use 19
32
33 i2c0: i2c@fcb08000 {
34 compatible = "snps,designware-i2c";
35 dmas = <&dma0 18 /* read channel */
36 &dma0 19>; /* write channel */
37 dma-names = "rx", "tx";
38 };
39
40 i2c1: i2c@fcb09000 {
41 compatible = "snps,designware-i2c";
42 dmas = <&dma0 20 /* read channel */
43 &dma0 21>; /* write channel */
44 dma-names = "rx", "tx";
45 };
46
diff --git a/Documentation/devicetree/bindings/dma/shdma.txt b/Documentation/devicetree/bindings/dma/shdma.txt
index c15994aa1939..2a3f3b8946b9 100644
--- a/Documentation/devicetree/bindings/dma/shdma.txt
+++ b/Documentation/devicetree/bindings/dma/shdma.txt
@@ -22,42 +22,51 @@ Optional properties (currently unused):
22* DMA controller 22* DMA controller
23 23
24Required properties: 24Required properties:
25- compatible: should be "renesas,shdma" 25- compatible: should be of the form "renesas,shdma-<soc>", where <soc> should
26 be replaced with the desired SoC model, e.g.
27 "renesas,shdma-r8a73a4" for the system DMAC on r8a73a4 SoC
26 28
27Example: 29Example:
28 dmac: dma-mux0 { 30 dmac: dma-multiplexer@0 {
29 compatible = "renesas,shdma-mux"; 31 compatible = "renesas,shdma-mux";
30 #dma-cells = <1>; 32 #dma-cells = <1>;
31 dma-channels = <6>; 33 dma-channels = <20>;
32 dma-requests = <256>; 34 dma-requests = <256>;
33 reg = <0 0>; /* Needed for AUXDATA */ 35 #address-cells = <2>;
34 #address-cells = <1>; 36 #size-cells = <2>;
35 #size-cells = <1>;
36 ranges; 37 ranges;
37 38
38 dma0: shdma@fe008020 { 39 dma0: dma-controller@e6700020 {
39 compatible = "renesas,shdma"; 40 compatible = "renesas,shdma-r8a73a4";
40 reg = <0xfe008020 0x270>, 41 reg = <0 0xe6700020 0 0x89e0>;
41 <0xfe009000 0xc>;
42 interrupt-parent = <&gic>; 42 interrupt-parent = <&gic>;
43 interrupts = <0 34 4 43 interrupts = <0 220 4
44 0 28 4 44 0 200 4
45 0 29 4 45 0 201 4
46 0 30 4 46 0 202 4
47 0 31 4 47 0 203 4
48 0 32 4 48 0 204 4
49 0 33 4>; 49 0 205 4
50 0 206 4
51 0 207 4
52 0 208 4
53 0 209 4
54 0 210 4
55 0 211 4
56 0 212 4
57 0 213 4
58 0 214 4
59 0 215 4
60 0 216 4
61 0 217 4
62 0 218 4
63 0 219 4>;
50 interrupt-names = "error", 64 interrupt-names = "error",
51 "ch0", "ch1", "ch2", "ch3", 65 "ch0", "ch1", "ch2", "ch3",
52 "ch4", "ch5"; 66 "ch4", "ch5", "ch6", "ch7",
53 }; 67 "ch8", "ch9", "ch10", "ch11",
54 68 "ch12", "ch13", "ch14", "ch15",
55 dma1: shdma@fe018020 { 69 "ch16", "ch17", "ch18", "ch19";
56 ...
57 };
58
59 dma2: shdma@fe028020 {
60 ...
61 }; 70 };
62 }; 71 };
63 72
diff --git a/Documentation/devicetree/bindings/dma/ste-dma40.txt b/Documentation/devicetree/bindings/dma/ste-dma40.txt
index bea5b73a7390..a8c21c256baa 100644
--- a/Documentation/devicetree/bindings/dma/ste-dma40.txt
+++ b/Documentation/devicetree/bindings/dma/ste-dma40.txt
@@ -37,14 +37,14 @@ Each dmas request consists of 4 cells:
37 1. A phandle pointing to the DMA controller 37 1. A phandle pointing to the DMA controller
38 2. Device Type 38 2. Device Type
39 3. The DMA request line number (only when 'use fixed channel' is set) 39 3. The DMA request line number (only when 'use fixed channel' is set)
40 4. A 32bit mask specifying; mode, direction and endianess [NB: This list will grow] 40 4. A 32bit mask specifying; mode, direction and endianness [NB: This list will grow]
41 0x00000001: Mode: 41 0x00000001: Mode:
42 Logical channel when unset 42 Logical channel when unset
43 Physical channel when set 43 Physical channel when set
44 0x00000002: Direction: 44 0x00000002: Direction:
45 Memory to Device when unset 45 Memory to Device when unset
46 Device to Memory when set 46 Device to Memory when set
47 0x00000004: Endianess: 47 0x00000004: Endianness:
48 Little endian when unset 48 Little endian when unset
49 Big endian when set 49 Big endian when set
50 0x00000008: Use fixed channel: 50 0x00000008: Use fixed channel:
diff --git a/Documentation/devicetree/bindings/extcon/extcon-twl.txt b/Documentation/devicetree/bindings/extcon/extcon-palmas.txt
index 58f531ab4df3..7dab6a8f4a0e 100644
--- a/Documentation/devicetree/bindings/extcon/extcon-twl.txt
+++ b/Documentation/devicetree/bindings/extcon/extcon-palmas.txt
@@ -1,15 +1,15 @@
1EXTCON FOR TWL CHIPS 1EXTCON FOR PALMAS/TWL CHIPS
2 2
3PALMAS USB COMPARATOR 3PALMAS USB COMPARATOR
4Required Properties: 4Required Properties:
5 - compatible : Should be "ti,palmas-usb" or "ti,twl6035-usb" 5 - compatible : Should be "ti,palmas-usb" or "ti,twl6035-usb"
6 - vbus-supply : phandle to the regulator device tree node.
7 6
8Optional Properties: 7Optional Properties:
9 - ti,wakeup : To enable the wakeup comparator in probe 8 - ti,wakeup : To enable the wakeup comparator in probe
9 - ti,enable-id-detection: Perform ID detection.
10 - ti,enable-vbus-detection: Perform VBUS detection.
10 11
11palmas-usb { 12palmas-usb {
12 compatible = "ti,twl6035-usb", "ti,palmas-usb"; 13 compatible = "ti,twl6035-usb", "ti,palmas-usb";
13 vbus-supply = <&smps10_reg>;
14 ti,wakeup; 14 ti,wakeup;
15}; 15};
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt
index 629d0ef17308..daa30174bcc1 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt
@@ -3,10 +3,17 @@ Microchip MCP2308/MCP23S08/MCP23017/MCP23S17 driver for
3 3
4Required properties: 4Required properties:
5- compatible : Should be 5- compatible : Should be
6 - "mcp,mcp23s08" for 8 GPIO SPI version 6 - "mcp,mcp23s08" (DEPRECATED) for 8 GPIO SPI version
7 - "mcp,mcp23s17" for 16 GPIO SPI version 7 - "mcp,mcp23s17" (DEPRECATED) for 16 GPIO SPI version
8 - "mcp,mcp23008" for 8 GPIO I2C version or 8 - "mcp,mcp23008" (DEPRECATED) for 8 GPIO I2C version or
9 - "mcp,mcp23017" for 16 GPIO I2C version of the chip 9 - "mcp,mcp23017" (DEPRECATED) for 16 GPIO I2C version of the chip
10
11 - "microchip,mcp23s08" for 8 GPIO SPI version
12 - "microchip,mcp23s17" for 16 GPIO SPI version
13 - "microchip,mcp23008" for 8 GPIO I2C version or
14 - "microchip,mcp23017" for 16 GPIO I2C version of the chip
15 NOTE: Do not use the old mcp prefix any more. It is deprecated and will be
16 removed.
10- #gpio-cells : Should be two. 17- #gpio-cells : Should be two.
11 - first cell is the pin number 18 - first cell is the pin number
12 - second cell is used to specify flags. Flags are currently unused. 19 - second cell is used to specify flags. Flags are currently unused.
@@ -15,10 +22,11 @@ Required properties:
15 SPI uses this to specify the chipselect line which the chip is 22 SPI uses this to specify the chipselect line which the chip is
16 connected to. The driver and the SPI variant of the chip support 23 connected to. The driver and the SPI variant of the chip support
17 multiple chips on the same chipselect. Have a look at 24 multiple chips on the same chipselect. Have a look at
18 mcp,spi-present-mask below. 25 microchip,spi-present-mask below.
19 26
20Required device specific properties (only for SPI chips): 27Required device specific properties (only for SPI chips):
21- mcp,spi-present-mask : This is a present flag, that makes only sense for SPI 28- mcp,spi-present-mask (DEPRECATED)
29- microchip,spi-present-mask : This is a present flag, that makes only sense for SPI
22 chips - as the name suggests. Multiple SPI chips can share the same 30 chips - as the name suggests. Multiple SPI chips can share the same
23 SPI chipselect. Set a bit in bit0-7 in this mask to 1 if there is a 31 SPI chipselect. Set a bit in bit0-7 in this mask to 1 if there is a
24 chip connected with the corresponding spi address set. For example if 32 chip connected with the corresponding spi address set. For example if
@@ -26,11 +34,13 @@ Required device specific properties (only for SPI chips):
26 which is 0x08. mcp23s08 chip variant only supports bits 0-3. It is not 34 which is 0x08. mcp23s08 chip variant only supports bits 0-3. It is not
27 possible to mix mcp23s08 and mcp23s17 on the same chipselect. Set at 35 possible to mix mcp23s08 and mcp23s17 on the same chipselect. Set at
28 least one bit to 1 for SPI chips. 36 least one bit to 1 for SPI chips.
37 NOTE: Do not use the old mcp prefix any more. It is deprecated and will be
38 removed.
29- spi-max-frequency = The maximum frequency this chip is able to handle 39- spi-max-frequency = The maximum frequency this chip is able to handle
30 40
31Example I2C: 41Example I2C:
32gpiom1: gpio@20 { 42gpiom1: gpio@20 {
33 compatible = "mcp,mcp23017"; 43 compatible = "microchip,mcp23017";
34 gpio-controller; 44 gpio-controller;
35 #gpio-cells = <2>; 45 #gpio-cells = <2>;
36 reg = <0x20>; 46 reg = <0x20>;
@@ -38,7 +48,7 @@ gpiom1: gpio@20 {
38 48
39Example SPI: 49Example SPI:
40gpiom1: gpio@0 { 50gpiom1: gpio@0 {
41 compatible = "mcp,mcp23s17"; 51 compatible = "microchip,mcp23s17";
42 gpio-controller; 52 gpio-controller;
43 #gpio-cells = <2>; 53 #gpio-cells = <2>;
44 spi-present-mask = <0x01>; 54 spi-present-mask = <0x01>;
diff --git a/Documentation/devicetree/bindings/gpio/gpio-palmas.txt b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt
new file mode 100644
index 000000000000..08b5b52a3ae0
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt
@@ -0,0 +1,27 @@
1Palmas GPIO controller bindings
2
3Required properties:
4- compatible:
5 - "ti,palams-gpio" for palma series of the GPIO controller
6 - "ti,tps80036-gpio" for Palma series device TPS80036.
7 - "ti,tps65913-gpio" for palma series device TPS65913.
8 - "ti,tps65914-gpio" for palma series device TPS65914.
9- #gpio-cells : Should be two.
10 - first cell is the gpio pin number
11 - second cell is used to specify the gpio polarity:
12 0 = active high
13 1 = active low
14- gpio-controller : Marks the device node as a GPIO controller.
15
16Note: This gpio node will be sub node of palmas node.
17
18Example:
19 palmas: tps65913@58 {
20 :::::::::::
21 palmas_gpio: palmas_gpio {
22 compatible = "ti,palmas-gpio";
23 gpio-controller;
24 #gpio-cells = <2>;
25 };
26 :::::::::::
27 };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt b/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt
new file mode 100644
index 000000000000..1fd98ffa8cb7
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt
@@ -0,0 +1,45 @@
1ImgTec TZ1090 PDC GPIO Controller
2
3Required properties:
4- compatible: Compatible property value should be "img,tz1090-pdc-gpio".
5
6- reg: Physical base address of the controller and length of memory mapped
7 region. This starts at and cover the SOC_GPIO_CONTROL registers.
8
9- gpio-controller: Specifies that the node is a gpio controller.
10
11- #gpio-cells: Should be 2. The syntax of the gpio specifier used by client
12 nodes should have the following values.
13 <[phandle of the gpio controller node]
14 [PDC gpio number]
15 [gpio flags]>
16
17 Values for gpio specifier:
18 - GPIO number: a value in the range 0 to 6.
19 - GPIO flags: bit field of flags, as defined in <dt-bindings/gpio/gpio.h>.
20 Only the following flags are supported:
21 GPIO_ACTIVE_HIGH
22 GPIO_ACTIVE_LOW
23
24Optional properties:
25- gpio-ranges: Mapping to pin controller pins (as described in
26 Documentation/devicetree/bindings/gpio/gpio.txt)
27
28- interrupts: Individual syswake interrupts (other GPIOs cannot interrupt)
29
30
31Example:
32
33 pdc_gpios: gpio-controller@02006500 {
34 gpio-controller;
35 #gpio-cells = <2>;
36
37 compatible = "img,tz1090-pdc-gpio";
38 reg = <0x02006500 0x100>;
39
40 interrupt-parent = <&pdc>;
41 interrupts = <8 IRQ_TYPE_NONE>, /* Syswake 0 */
42 <9 IRQ_TYPE_NONE>, /* Syswake 1 */
43 <10 IRQ_TYPE_NONE>; /* Syswake 2 */
44 gpio-ranges = <&pdc_pinctrl 0 0 7>;
45 };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt b/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt
new file mode 100644
index 000000000000..174cdf309170
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt
@@ -0,0 +1,88 @@
1ImgTec TZ1090 GPIO Controller
2
3Required properties:
4- compatible: Compatible property value should be "img,tz1090-gpio".
5
6- reg: Physical base address of the controller and length of memory mapped
7 region.
8
9- #address-cells: Should be 1 (for bank subnodes)
10
11- #size-cells: Should be 0 (for bank subnodes)
12
13- Each bank of GPIOs should have a subnode to represent it.
14
15 Bank subnode required properties:
16 - reg: Index of bank in the range 0 to 2.
17
18 - gpio-controller: Specifies that the node is a gpio controller.
19
20 - #gpio-cells: Should be 2. The syntax of the gpio specifier used by client
21 nodes should have the following values.
22 <[phandle of the gpio controller node]
23 [gpio number within the gpio bank]
24 [gpio flags]>
25
26 Values for gpio specifier:
27 - GPIO number: a value in the range 0 to 29.
28 - GPIO flags: bit field of flags, as defined in <dt-bindings/gpio/gpio.h>.
29 Only the following flags are supported:
30 GPIO_ACTIVE_HIGH
31 GPIO_ACTIVE_LOW
32
33 Bank subnode optional properties:
34 - gpio-ranges: Mapping to pin controller pins (as described in
35 Documentation/devicetree/bindings/gpio/gpio.txt)
36
37 - interrupts: Interrupt for the entire bank
38
39 - interrupt-controller: Specifies that the node is an interrupt controller
40
41 - #interrupt-cells: Should be 2. The syntax of the interrupt specifier used by
42 client nodes should have the following values.
43 <[phandle of the interurupt controller]
44 [gpio number within the gpio bank]
45 [irq flags]>
46
47 Values for irq specifier:
48 - GPIO number: a value in the range 0 to 29
49 - IRQ flags: value to describe edge and level triggering, as defined in
50 <dt-bindings/interrupt-controller/irq.h>. Only the following flags are
51 supported:
52 IRQ_TYPE_EDGE_RISING
53 IRQ_TYPE_EDGE_FALLING
54 IRQ_TYPE_EDGE_BOTH
55 IRQ_TYPE_LEVEL_HIGH
56 IRQ_TYPE_LEVEL_LOW
57
58
59
60Example:
61
62 gpios: gpio-controller@02005800 {
63 #address-cells = <1>;
64 #size-cells = <0>;
65 compatible = "img,tz1090-gpio";
66 reg = <0x02005800 0x90>;
67
68 /* bank 0 with an interrupt */
69 gpios0: bank@0 {
70 #gpio-cells = <2>;
71 #interrupt-cells = <2>;
72 reg = <0>;
73 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
74 gpio-controller;
75 gpio-ranges = <&pinctrl 0 0 30>;
76 interrupt-controller;
77 };
78
79 /* bank 2 without interrupt */
80 gpios2: bank@2 {
81 #gpio-cells = <2>;
82 reg = <2>;
83 gpio-controller;
84 gpio-ranges = <&pinctrl 0 60 30>;
85 };
86 };
87
88
diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt b/Documentation/devicetree/bindings/gpio/gpio.txt
index d933af370697..6cec6ff20d2e 100644
--- a/Documentation/devicetree/bindings/gpio/gpio.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio.txt
@@ -75,23 +75,36 @@ Example of two SOC GPIO banks defined as gpio-controller nodes:
75 gpio-controller; 75 gpio-controller;
76 }; 76 };
77 77
782.1) gpio-controller and pinctrl subsystem 782.1) gpio- and pin-controller interaction
79------------------------------------------ 79-----------------------------------------
80 80
81gpio-controller on a SOC might be tightly coupled with the pinctrl 81Some or all of the GPIOs provided by a GPIO controller may be routed to pins
82subsystem, in the sense that the pins can be used by other functions 82on the package via a pin controller. This allows muxing those pins between
83together with optional gpio feature. 83GPIO and other functions.
84 84
85While the pin allocation is totally managed by the pin ctrl subsystem, 85It is useful to represent which GPIOs correspond to which pins on which pin
86gpio (under gpiolib) is still maintained by gpio drivers. It may happen 86controllers. The gpio-ranges property described below represents this, and
87that different pin ranges in a SoC is managed by different gpio drivers. 87contains information structures as follows:
88 88
89This makes it logical to let gpio drivers announce their pin ranges to 89 gpio-range-list ::= <single-gpio-range> [gpio-range-list]
90the pin ctrl subsystem and call 'pinctrl_request_gpio' in order to 90 single-gpio-range ::=
91request the corresponding pin before any gpio usage. 91 <pinctrl-phandle> <gpio-base> <pinctrl-base> <count>
92 gpio-phandle : phandle to pin controller node.
93 gpio-base : Base GPIO ID in the GPIO controller
94 pinctrl-base : Base pinctrl pin ID in the pin controller
95 count : The number of GPIOs/pins in this range
92 96
93For this, the gpio controller can use a pinctrl phandle and pins to 97The "pin controller node" mentioned above must conform to the bindings
94announce the pinrange to the pin ctrl subsystem. For example, 98described in ../pinctrl/pinctrl-bindings.txt.
99
100Previous versions of this binding required all pin controller nodes that
101were referenced by any gpio-ranges property to contain a property named
102#gpio-range-cells with value <3>. This requirement is now deprecated.
103However, that property may still exist in older device trees for
104compatibility reasons, and would still be required even in new device
105trees that need to be compatible with older software.
106
107Example:
95 108
96 qe_pio_e: gpio-controller@1460 { 109 qe_pio_e: gpio-controller@1460 {
97 #gpio-cells = <2>; 110 #gpio-cells = <2>;
@@ -99,16 +112,8 @@ announce the pinrange to the pin ctrl subsystem. For example,
99 reg = <0x1460 0x18>; 112 reg = <0x1460 0x18>;
100 gpio-controller; 113 gpio-controller;
101 gpio-ranges = <&pinctrl1 0 20 10>, <&pinctrl2 10 50 20>; 114 gpio-ranges = <&pinctrl1 0 20 10>, <&pinctrl2 10 50 20>;
115 };
102 116
103 } 117Here, a single GPIO controller has GPIOs 0..9 routed to pin controller
104 118pinctrl1's pins 20..29, and GPIOs 10..19 routed to pin controller pinctrl2's
105where, 119pins 50..59.
106 &pinctrl1 and &pinctrl2 is the phandle to the pinctrl DT node.
107
108 Next values specify the base pin and number of pins for the range
109 handled by 'qe_pio_e' gpio. In the given example from base pin 20 to
110 pin 29 under pinctrl1 with gpio offset 0 and pin 50 to pin 69 under
111 pinctrl2 with gpio offset 10 is handled by this gpio controller.
112
113The pinctrl node must have "#gpio-range-cells" property to show number of
114arguments to pass with phandle from gpio controllers node.
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
index 9b3f1d4a88d6..66416261e14d 100644
--- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
+++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
@@ -10,8 +10,9 @@ Required properties:
10 There're three gpio interrupts in arch-pxa, and they're gpio0, 10 There're three gpio interrupts in arch-pxa, and they're gpio0,
11 gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp, 11 gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp,
12 gpio_mux. 12 gpio_mux.
13- interrupt-name : Should be the name of irq resource. Each interrupt 13- interrupt-names : Should be the names of irq resources. Each interrupt
14 binds its interrupt-name. 14 uses its own interrupt name, so there should be as many interrupt names
15 as referenced interrups.
15- interrupt-controller : Identifies the node as an interrupt controller. 16- interrupt-controller : Identifies the node as an interrupt controller.
16- #interrupt-cells: Specifies the number of cells needed to encode an 17- #interrupt-cells: Specifies the number of cells needed to encode an
17 interrupt source. 18 interrupt source.
@@ -24,7 +25,7 @@ Example:
24 compatible = "marvell,mmp-gpio"; 25 compatible = "marvell,mmp-gpio";
25 reg = <0xd4019000 0x1000>; 26 reg = <0xd4019000 0x1000>;
26 interrupts = <49>; 27 interrupts = <49>;
27 interrupt-name = "gpio_mux"; 28 interrupt-names = "gpio_mux";
28 gpio-controller; 29 gpio-controller;
29 #gpio-cells = <1>; 30 #gpio-cells = <1>;
30 interrupt-controller; 31 interrupt-controller;
diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
index cb3dc7bcd8e6..8655df9440d5 100644
--- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
+++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
@@ -23,6 +23,10 @@ Required Properties:
23Please refer to gpio.txt in this directory for details of gpio-ranges property 23Please refer to gpio.txt in this directory for details of gpio-ranges property
24and the common GPIO bindings used by client devices. 24and the common GPIO bindings used by client devices.
25 25
26The GPIO controller also acts as an interrupt controller. It uses the default
27two cells specifier as described in Documentation/devicetree/bindings/
28interrupt-controller/interrupts.txt.
29
26Example: R8A7779 (R-Car H1) GPIO controller nodes 30Example: R8A7779 (R-Car H1) GPIO controller nodes
27 31
28 gpio0: gpio@ffc40000 { 32 gpio0: gpio@ffc40000 {
@@ -33,6 +37,8 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes
33 #gpio-cells = <2>; 37 #gpio-cells = <2>;
34 gpio-controller; 38 gpio-controller;
35 gpio-ranges = <&pfc 0 0 32>; 39 gpio-ranges = <&pfc 0 0 32>;
40 interrupt-controller;
41 #interrupt-cells = <2>;
36 }; 42 };
37 ... 43 ...
38 gpio6: gpio@ffc46000 { 44 gpio6: gpio@ffc46000 {
@@ -43,4 +49,6 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes
43 #gpio-cells = <2>; 49 #gpio-cells = <2>;
44 gpio-controller; 50 gpio-controller;
45 gpio-ranges = <&pfc 0 192 9>; 51 gpio-ranges = <&pfc 0 192 9>;
52 interrupt-controller;
53 #interrupt-cells = <2>;
46 }; 54 };
diff --git a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
index 3f454ffc654a..c4f358dafdaa 100644
--- a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
+++ b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
@@ -11,8 +11,11 @@ Required properties:
11 11
12 - interrupts : G2D interrupt number to the CPU. 12 - interrupts : G2D interrupt number to the CPU.
13 - clocks : from common clock binding: handle to G2D clocks. 13 - clocks : from common clock binding: handle to G2D clocks.
14 - clock-names : from common clock binding: must contain "sclk_fimg2d" and 14 - clock-names : names of clocks listed in clocks property, in the same
15 "fimg2d", corresponding to entries in the clocks property. 15 order, depending on SoC type:
16 - for S5PV210 and Exynos4 based SoCs: "fimg2d" and
17 "sclk_fimg2d"
18 - for Exynos5250 SoC: "fimg2d".
16 19
17Example: 20Example:
18 g2d@12800000 { 21 g2d@12800000 {
diff --git a/Documentation/devicetree/bindings/gpu/samsung-rotator.txt b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt
new file mode 100644
index 000000000000..82cd1ed0be93
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt
@@ -0,0 +1,27 @@
1* Samsung Image Rotator
2
3Required properties:
4 - compatible : value should be one of the following:
5 (a) "samsung,exynos4210-rotator" for Rotator IP in Exynos4210
6 (b) "samsung,exynos4212-rotator" for Rotator IP in Exynos4212/4412
7 (c) "samsung,exynos5250-rotator" for Rotator IP in Exynos5250
8
9 - reg : Physical base address of the IP registers and length of memory
10 mapped region.
11
12 - interrupts : Interrupt specifier for rotator interrupt, according to format
13 specific to interrupt parent.
14
15 - clocks : Clock specifier for rotator clock, according to generic clock
16 bindings. (See Documentation/devicetree/bindings/clock/exynos*.txt)
17
18 - clock-names : Names of clocks. For exynos rotator, it should be "rotator".
19
20Example:
21 rotator@12810000 {
22 compatible = "samsung,exynos4210-rotator";
23 reg = <0x12810000 0x1000>;
24 interrupts = <0 83 0>;
25 clocks = <&clock 278>;
26 clock-names = "rotator";
27 };
diff --git a/Documentation/devicetree/bindings/hid/hid-over-i2c.txt b/Documentation/devicetree/bindings/hid/hid-over-i2c.txt
new file mode 100644
index 000000000000..488edcb264c4
--- /dev/null
+++ b/Documentation/devicetree/bindings/hid/hid-over-i2c.txt
@@ -0,0 +1,28 @@
1* HID over I2C Device-Tree bindings
2
3HID over I2C provides support for various Human Interface Devices over the
4I2C bus. These devices can be for example touchpads, keyboards, touch screens
5or sensors.
6
7The specification has been written by Microsoft and is currently available here:
8http://msdn.microsoft.com/en-us/library/windows/hardware/hh852380.aspx
9
10If this binding is used, the kernel module i2c-hid will handle the communication
11with the device and the generic hid core layer will handle the protocol.
12
13Required properties:
14- compatible: must be "hid-over-i2c"
15- reg: i2c slave address
16- hid-descr-addr: HID descriptor address
17- interrupt-parent: the phandle for the interrupt controller
18- interrupts: interrupt line
19
20Example:
21
22 i2c-hid-dev@2c {
23 compatible = "hid-over-i2c";
24 reg = <0x2c>;
25 hid-descr-addr = <0x0020>;
26 interrupt-parent = <&gpx3>;
27 interrupts = <3 2>;
28 };
diff --git a/Documentation/devicetree/bindings/i2c/i2c-imx.txt b/Documentation/devicetree/bindings/i2c/i2c-imx.txt
index 3614242e7732..4a8513e44740 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-imx.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-imx.txt
@@ -1,7 +1,10 @@
1* Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX 1* Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX
2 2
3Required properties: 3Required properties:
4- compatible : Should be "fsl,<chip>-i2c" 4- compatible :
5 - "fsl,imx1-i2c" for I2C compatible with the one integrated on i.MX1 SoC
6 - "fsl,imx21-i2c" for I2C compatible with the one integrated on i.MX21 SoC
7 - "fsl,vf610-i2c" for I2C compatible with the one integrated on Vybrid vf610 SoC
5- reg : Should contain I2C/HS-I2C registers location and length 8- reg : Should contain I2C/HS-I2C registers location and length
6- interrupts : Should contain I2C/HS-I2C interrupt 9- interrupts : Should contain I2C/HS-I2C interrupt
7 10
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
index 6113f9275f42..82e8f6f17179 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
@@ -5,6 +5,7 @@ Required properties :
5 5
6 - reg : Offset and length of the register set for the device 6 - reg : Offset and length of the register set for the device
7 - compatible : Should be "marvell,mv64xxx-i2c" or "allwinner,sun4i-i2c" 7 - compatible : Should be "marvell,mv64xxx-i2c" or "allwinner,sun4i-i2c"
8 or "marvell,mv78230-i2c"
8 - interrupts : The interrupt number 9 - interrupts : The interrupt number
9 10
10Optional properties : 11Optional properties :
@@ -20,3 +21,12 @@ Examples:
20 interrupts = <29>; 21 interrupts = <29>;
21 clock-frequency = <100000>; 22 clock-frequency = <100000>;
22 }; 23 };
24
25For the Armada XP:
26
27 i2c@11000 {
28 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
29 reg = <0x11000 0x100>;
30 interrupts = <29>;
31 clock-frequency = <100000>;
32 };
diff --git a/Documentation/devicetree/bindings/iio/accel/bma180.txt b/Documentation/devicetree/bindings/iio/accel/bma180.txt
new file mode 100644
index 000000000000..c5933573e0f6
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/accel/bma180.txt
@@ -0,0 +1,24 @@
1* Bosch BMA180 triaxial acceleration sensor
2
3http://omapworld.com/BMA180_111_1002839.pdf
4
5Required properties:
6
7 - compatible : should be "bosch,bma180"
8 - reg : the I2C address of the sensor
9
10Optional properties:
11
12 - interrupt-parent : should be the phandle for the interrupt controller
13
14 - interrupts : interrupt mapping for GPIO IRQ, it should by configured with
15 flags IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING
16
17Example:
18
19bma180@40 {
20 compatible = "bosch,bma180";
21 reg = <0x40>;
22 interrupt-parent = <&gpio6>;
23 interrupts = <18 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
24};
diff --git a/Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt b/Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt
new file mode 100644
index 000000000000..e9582e6fe350
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/nuvoton-nau7802.txt
@@ -0,0 +1,18 @@
1* Nuvoton NAU7802 Analog to Digital Converter (ADC)
2
3Required properties:
4 - compatible: Should be "nuvoton,nau7802"
5 - reg: Should contain the ADC I2C address
6
7Optional properties:
8 - nuvoton,vldo: Internal reference voltage in millivolts to be
9 configured valid values are between 2400 mV and 4500 mV.
10 - interrupts: IRQ line for the ADC. If not used the driver will use
11 polling.
12
13Example:
14adc2: nau7802@2a {
15 compatible = "nuvoton,nau7802";
16 reg = <0x2a>;
17 nuvoton,vldo = <3000>;
18};
diff --git a/Documentation/devicetree/bindings/iio/light/apds9300.txt b/Documentation/devicetree/bindings/iio/light/apds9300.txt
new file mode 100644
index 000000000000..d6f66c73ddbf
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/light/apds9300.txt
@@ -0,0 +1,22 @@
1* Avago APDS9300 ambient light sensor
2
3http://www.avagotech.com/docs/AV02-1077EN
4
5Required properties:
6
7 - compatible : should be "avago,apds9300"
8 - reg : the I2C address of the sensor
9
10Optional properties:
11
12 - interrupt-parent : should be the phandle for the interrupt controller
13 - interrupts : interrupt mapping for GPIO IRQ
14
15Example:
16
17apds9300@39 {
18 compatible = "avago,apds9300";
19 reg = <0x39>;
20 interrupt-parent = <&gpio2>;
21 interrupts = <29 8>;
22};
diff --git a/Documentation/devicetree/bindings/input/input-reset.txt b/Documentation/devicetree/bindings/input/input-reset.txt
new file mode 100644
index 000000000000..2bb2626fdb78
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/input-reset.txt
@@ -0,0 +1,33 @@
1Input: sysrq reset sequence
2
3A simple binding to represent a set of keys as described in
4include/uapi/linux/input.h. This is to communicate a sequence of keys to the
5sysrq driver. Upon holding the keys for a specified amount of time (if
6specified) the system is sync'ed and reset.
7
8Key sequences are global to the system but all the keys in a set must be coming
9from the same input device.
10
11The /chosen node should contain a 'linux,sysrq-reset-seq' child node to define
12a set of keys.
13
14Required property:
15sysrq-reset-seq: array of Linux keycodes, one keycode per cell.
16
17Optional property:
18timeout-ms: duration keys must be pressed together in milliseconds before
19generating a sysrq. If omitted the system is rebooted immediately when a valid
20sequence has been recognized.
21
22Example:
23
24 chosen {
25 linux,sysrq-reset-seq {
26 keyset = <0x03
27 0x04
28 0x0a>;
29 timeout-ms = <3000>;
30 };
31 };
32
33Would represent KEY_2, KEY_3 and KEY_9.
diff --git a/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt b/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt
index df70318a617f..49fa14ed155c 100644
--- a/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt
+++ b/Documentation/devicetree/bindings/input/touchscreen/egalax-ts.txt
@@ -6,7 +6,7 @@ Required properties:
6- interrupt-parent: the phandle for the interrupt controller 6- interrupt-parent: the phandle for the interrupt controller
7- interrupts: touch controller interrupt 7- interrupts: touch controller interrupt
8- wakeup-gpios: the gpio pin to be used for waking up the controller 8- wakeup-gpios: the gpio pin to be used for waking up the controller
9 as well as uased as irq pin 9 and also used as irq pin
10 10
11Example: 11Example:
12 12
diff --git a/Documentation/devicetree/bindings/media/i2c/adv7343.txt b/Documentation/devicetree/bindings/media/i2c/adv7343.txt
new file mode 100644
index 000000000000..5653bc2428b8
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/adv7343.txt
@@ -0,0 +1,48 @@
1* Analog Devices adv7343 video encoder
2
3The ADV7343 are high speed, digital-to-analog video encoders in a 64-lead LQFP
4package. Six high speed, 3.3 V, 11-bit video DACs provide support for composite
5(CVBS), S-Video (Y-C), and component (YPrPb/RGB) analog outputs in standard
6definition (SD), enhanced definition (ED), or high definition (HD) video
7formats.
8
9Required Properties :
10- compatible: Must be "adi,adv7343"
11
12Optional Properties :
13- adi,power-mode-sleep-mode: on enable the current consumption is reduced to
14 micro ampere level. All DACs and the internal PLL
15 circuit are disabled.
16- adi,power-mode-pll-ctrl: PLL and oversampling control. This control allows
17 internal PLL 1 circuit to be powered down and the
18 oversampling to be switched off.
19- ad,adv7343-power-mode-dac: array configuring the power on/off DAC's 1..6,
20 0 = OFF and 1 = ON, Default value when this
21 property is not specified is <0 0 0 0 0 0>.
22- ad,adv7343-sd-config-dac-out: array configure SD DAC Output's 1 and 2, 0 = OFF
23 and 1 = ON, Default value when this property is
24 not specified is <0 0>.
25
26Example:
27
28i2c0@1c22000 {
29 ...
30 ...
31
32 adv7343@2a {
33 compatible = "adi,adv7343";
34 reg = <0x2a>;
35
36 port {
37 adv7343_1: endpoint {
38 adi,power-mode-sleep-mode;
39 adi,power-mode-pll-ctrl;
40 /* Use DAC1..3, DAC6 */
41 adi,dac-enable = <1 1 1 0 0 1>;
42 /* Use SD DAC output 1 */
43 adi,sd-dac-enable = <1 0>;
44 };
45 };
46 };
47 ...
48};
diff --git a/Documentation/devicetree/bindings/media/i2c/ths8200.txt b/Documentation/devicetree/bindings/media/i2c/ths8200.txt
new file mode 100644
index 000000000000..285f6ae7dfa9
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/ths8200.txt
@@ -0,0 +1,19 @@
1* Texas Instruments THS8200 video encoder
2
3The ths8200 device is a digital to analog converter used in DVD players, video
4recorders, set-top boxes.
5
6Required Properties :
7- compatible : value must be "ti,ths8200"
8
9Example:
10
11 i2c0@1c22000 {
12 ...
13 ...
14 ths8200@5c {
15 compatible = "ti,ths8200";
16 reg = <0x5c>;
17 };
18 ...
19 };
diff --git a/Documentation/devicetree/bindings/media/i2c/tvp7002.txt b/Documentation/devicetree/bindings/media/i2c/tvp7002.txt
new file mode 100644
index 000000000000..5f28b5d9abcc
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/tvp7002.txt
@@ -0,0 +1,53 @@
1* Texas Instruments TV7002 video decoder
2
3The TVP7002 device supports digitizing of video and graphics signal in RGB and
4YPbPr color space.
5
6Required Properties :
7- compatible : Must be "ti,tvp7002"
8
9Optional Properties:
10- hsync-active: HSYNC Polarity configuration for the bus. Default value when
11 this property is not specified is <0>.
12
13- vsync-active: VSYNC Polarity configuration for the bus. Default value when
14 this property is not specified is <0>.
15
16- pclk-sample: Clock polarity of the bus. Default value when this property is
17 not specified is <0>.
18
19- sync-on-green-active: Active state of Sync-on-green signal property of the
20 endpoint.
21 0 = Normal Operation (Active Low, Default)
22 1 = Inverted operation
23
24- field-even-active: Active-high Field ID output polarity control of the bus.
25 Under normal operation, the field ID output is set to logic 1 for an odd field
26 (field 1) and set to logic 0 for an even field (field 0).
27 0 = Normal Operation (Active Low, Default)
28 1 = FID output polarity inverted
29
30For further reading of port node refer Documentation/devicetree/bindings/media/
31video-interfaces.txt.
32
33Example:
34
35 i2c0@1c22000 {
36 ...
37 ...
38 tvp7002@5c {
39 compatible = "ti,tvp7002";
40 reg = <0x5c>;
41
42 port {
43 tvp7002_1: endpoint {
44 hsync-active = <1>;
45 vsync-active = <1>;
46 pclk-sample = <0>;
47 sync-on-green-active = <1>;
48 field-even-active = <0>;
49 };
50 };
51 };
52 ...
53 };
diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt b/Documentation/devicetree/bindings/media/s5p-mfc.txt
index df37b0230c75..f4181680831b 100644
--- a/Documentation/devicetree/bindings/media/s5p-mfc.txt
+++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt
@@ -10,14 +10,15 @@ Required properties:
10 - compatible : value should be either one among the following 10 - compatible : value should be either one among the following
11 (a) "samsung,mfc-v5" for MFC v5 present in Exynos4 SoCs 11 (a) "samsung,mfc-v5" for MFC v5 present in Exynos4 SoCs
12 (b) "samsung,mfc-v6" for MFC v6 present in Exynos5 SoCs 12 (b) "samsung,mfc-v6" for MFC v6 present in Exynos5 SoCs
13 (b) "samsung,mfc-v7" for MFC v7 present in Exynos5420 SoC
13 14
14 - reg : Physical base address of the IP registers and length of memory 15 - reg : Physical base address of the IP registers and length of memory
15 mapped region. 16 mapped region.
16 17
17 - interrupts : MFC interrupt number to the CPU. 18 - interrupts : MFC interrupt number to the CPU.
18 - clocks : from common clock binding: handle to mfc clocks. 19 - clocks : from common clock binding: handle to mfc clock.
19 - clock-names : from common clock binding: must contain "sclk_mfc" and "mfc", 20 - clock-names : from common clock binding: must contain "mfc",
20 corresponding to entries in the clocks property. 21 corresponding to entry in the clocks property.
21 22
22 - samsung,mfc-r : Base address of the first memory bank used by MFC 23 - samsung,mfc-r : Base address of the first memory bank used by MFC
23 for DMA contiguous memory allocation and its size. 24 for DMA contiguous memory allocation and its size.
@@ -37,8 +38,8 @@ mfc: codec@13400000 {
37 reg = <0x13400000 0x10000>; 38 reg = <0x13400000 0x10000>;
38 interrupts = <0 94 0>; 39 interrupts = <0 94 0>;
39 samsung,power-domain = <&pd_mfc>; 40 samsung,power-domain = <&pd_mfc>;
40 clocks = <&clock 170>, <&clock 273>; 41 clocks = <&clock 273>;
41 clock-names = "sclk_mfc", "mfc"; 42 clock-names = "mfc";
42}; 43};
43 44
44Board specific DT entry: 45Board specific DT entry:
diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt
index e022d2dc4962..ce719f89dd1c 100644
--- a/Documentation/devicetree/bindings/media/video-interfaces.txt
+++ b/Documentation/devicetree/bindings/media/video-interfaces.txt
@@ -88,6 +88,8 @@ Optional endpoint properties
88- field-even-active: field signal level during the even field data transmission. 88- field-even-active: field signal level during the even field data transmission.
89- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock 89- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock
90 signal. 90 signal.
91- sync-on-green-active: active state of Sync-on-green (SoG) signal, 0/1 for
92 LOW/HIGH respectively.
91- data-lanes: an array of physical data lane indexes. Position of an entry 93- data-lanes: an array of physical data lane indexes. Position of an entry
92 determines the logical lane number, while the value of an entry indicates 94 determines the logical lane number, while the value of an entry indicates
93 physical lane, e.g. for 2-lane MIPI CSI-2 bus we could have 95 physical lane, e.g. for 2-lane MIPI CSI-2 bus we could have
diff --git a/Documentation/devicetree/bindings/memory.txt b/Documentation/devicetree/bindings/memory.txt
new file mode 100644
index 000000000000..eb2469365593
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory.txt
@@ -0,0 +1,168 @@
1*** Memory binding ***
2
3The /memory node provides basic information about the address and size
4of the physical memory. This node is usually filled or updated by the
5bootloader, depending on the actual memory configuration of the given
6hardware.
7
8The memory layout is described by the following node:
9
10/ {
11 #address-cells = <(n)>;
12 #size-cells = <(m)>;
13 memory {
14 device_type = "memory";
15 reg = <(baseaddr1) (size1)
16 (baseaddr2) (size2)
17 ...
18 (baseaddrN) (sizeN)>;
19 };
20 ...
21};
22
23A memory node follows the typical device tree rules for "reg" property:
24n: number of cells used to store base address value
25m: number of cells used to store size value
26baseaddrX: defines a base address of the defined memory bank
27sizeX: the size of the defined memory bank
28
29
30More than one memory bank can be defined.
31
32
33*** Reserved memory regions ***
34
35In /memory/reserved-memory node one can create child nodes describing
36particular reserved (excluded from normal use) memory regions. Such
37memory regions are usually designed for the special usage by various
38device drivers. A good example are contiguous memory allocations or
39memory sharing with other operating system on the same hardware board.
40Those special memory regions might depend on the board configuration and
41devices used on the target system.
42
43Parameters for each memory region can be encoded into the device tree
44with the following convention:
45
46[(label):] (name) {
47 compatible = "linux,contiguous-memory-region", "reserved-memory-region";
48 reg = <(address) (size)>;
49 (linux,default-contiguous-region);
50};
51
52compatible: one or more of:
53 - "linux,contiguous-memory-region" - enables binding of this
54 region to Contiguous Memory Allocator (special region for
55 contiguous memory allocations, shared with movable system
56 memory, Linux kernel-specific).
57 - "reserved-memory-region" - compatibility is defined, given
58 region is assigned for exclusive usage for by the respective
59 devices.
60
61reg: standard property defining the base address and size of
62 the memory region
63
64linux,default-contiguous-region: property indicating that the region
65 is the default region for all contiguous memory
66 allocations, Linux specific (optional)
67
68It is optional to specify the base address, so if one wants to use
69autoconfiguration of the base address, '0' can be specified as a base
70address in the 'reg' property.
71
72The /memory/reserved-memory node must contain the same #address-cells
73and #size-cells value as the root node.
74
75
76*** Device node's properties ***
77
78Once regions in the /memory/reserved-memory node have been defined, they
79may be referenced by other device nodes. Bindings that wish to reference
80memory regions should explicitly document their use of the following
81property:
82
83memory-region = <&phandle_to_defined_region>;
84
85This property indicates that the device driver should use the memory
86region pointed by the given phandle.
87
88
89*** Example ***
90
91This example defines a memory consisting of 4 memory banks. 3 contiguous
92regions are defined for Linux kernel, one default of all device drivers
93(named contig_mem, placed at 0x72000000, 64MiB), one dedicated to the
94framebuffer device (labelled display_mem, placed at 0x78000000, 8MiB)
95and one for multimedia processing (labelled multimedia_mem, placed at
960x77000000, 64MiB). 'display_mem' region is then assigned to fb@12300000
97device for DMA memory allocations (Linux kernel drivers will use CMA is
98available or dma-exclusive usage otherwise). 'multimedia_mem' is
99assigned to scaler@12500000 and codec@12600000 devices for contiguous
100memory allocations when CMA driver is enabled.
101
102The reason for creating a separate region for framebuffer device is to
103match the framebuffer base address to the one configured by bootloader,
104so once Linux kernel drivers starts no glitches on the displayed boot
105logo appears. Scaller and codec drivers should share the memory
106allocations.
107
108/ {
109 #address-cells = <1>;
110 #size-cells = <1>;
111
112 /* ... */
113
114 memory {
115 reg = <0x40000000 0x10000000
116 0x50000000 0x10000000
117 0x60000000 0x10000000
118 0x70000000 0x10000000>;
119
120 reserved-memory {
121 #address-cells = <1>;
122 #size-cells = <1>;
123
124 /*
125 * global autoconfigured region for contiguous allocations
126 * (used only with Contiguous Memory Allocator)
127 */
128 contig_region@0 {
129 compatible = "linux,contiguous-memory-region";
130 reg = <0x0 0x4000000>;
131 linux,default-contiguous-region;
132 };
133
134 /*
135 * special region for framebuffer
136 */
137 display_region: region@78000000 {
138 compatible = "linux,contiguous-memory-region", "reserved-memory-region";
139 reg = <0x78000000 0x800000>;
140 };
141
142 /*
143 * special region for multimedia processing devices
144 */
145 multimedia_region: region@77000000 {
146 compatible = "linux,contiguous-memory-region";
147 reg = <0x77000000 0x4000000>;
148 };
149 };
150 };
151
152 /* ... */
153
154 fb0: fb@12300000 {
155 status = "okay";
156 memory-region = <&display_region>;
157 };
158
159 scaler: scaler@12500000 {
160 status = "okay";
161 memory-region = <&multimedia_region>;
162 };
163
164 codec: codec@12600000 {
165 status = "okay";
166 memory-region = <&multimedia_region>;
167 };
168};
diff --git a/Documentation/devicetree/bindings/metag/pdc-intc.txt b/Documentation/devicetree/bindings/metag/pdc-intc.txt
new file mode 100644
index 000000000000..a69118550344
--- /dev/null
+++ b/Documentation/devicetree/bindings/metag/pdc-intc.txt
@@ -0,0 +1,105 @@
1* ImgTec Powerdown Controller (PDC) Interrupt Controller Binding
2
3This binding specifies what properties must be available in the device tree
4representation of a PDC IRQ controller. This has a number of input interrupt
5lines which can wake the system, and are passed on through output interrupt
6lines.
7
8Required properties:
9
10 - compatible: Specifies the compatibility list for the interrupt controller.
11 The type shall be <string> and the value shall include "img,pdc-intc".
12
13 - reg: Specifies the base PDC physical address(s) and size(s) of the
14 addressable register space. The type shall be <prop-encoded-array>.
15
16 - interrupt-controller: The presence of this property identifies the node
17 as an interrupt controller. No property value shall be defined.
18
19 - #interrupt-cells: Specifies the number of cells needed to encode an
20 interrupt source. The type shall be a <u32> and the value shall be 2.
21
22 - num-perips: Number of waking peripherals.
23
24 - num-syswakes: Number of SysWake inputs.
25
26 - interrupts: List of interrupt specifiers. The first specifier shall be the
27 shared SysWake interrupt, and remaining specifies shall be PDC peripheral
28 interrupts in order.
29
30* Interrupt Specifier Definition
31
32 Interrupt specifiers consists of 2 cells encoded as follows:
33
34 - <1st-cell>: The interrupt-number that identifies the interrupt source.
35 0-7: Peripheral interrupts
36 8-15: SysWake interrupts
37
38 - <2nd-cell>: The level-sense information, encoded using the Linux interrupt
39 flags as follows (only 4 valid for peripheral interrupts):
40 0 = none (decided by software)
41 1 = low-to-high edge triggered
42 2 = high-to-low edge triggered
43 3 = both edge triggered
44 4 = active-high level-sensitive (required for perip irqs)
45 8 = active-low level-sensitive
46
47* Examples
48
49Example 1:
50
51 /*
52 * TZ1090 PDC block
53 */
54 pdc: pdc@0x02006000 {
55 // This is an interrupt controller node.
56 interrupt-controller;
57
58 // Three cells to encode interrupt sources.
59 #interrupt-cells = <2>;
60
61 // Offset address of 0x02006000 and size of 0x1000.
62 reg = <0x02006000 0x1000>;
63
64 // Compatible with Meta hardware trigger block.
65 compatible = "img,pdc-intc";
66
67 // Three peripherals are connected.
68 num-perips = <3>;
69
70 // Four SysWakes are connected.
71 num-syswakes = <4>;
72
73 interrupts = <18 4 /* level */>, /* Syswakes */
74 <30 4 /* level */>, /* Peripheral 0 (RTC) */
75 <29 4 /* level */>, /* Peripheral 1 (IR) */
76 <31 4 /* level */>; /* Peripheral 2 (WDT) */
77 };
78
79Example 2:
80
81 /*
82 * An SoC peripheral that is wired through the PDC.
83 */
84 rtc0 {
85 // The interrupt controller that this device is wired to.
86 interrupt-parent = <&pdc>;
87
88 // Interrupt source Peripheral 0
89 interrupts = <0 /* Peripheral 0 (RTC) */
90 4> /* IRQ_TYPE_LEVEL_HIGH */
91 };
92
93Example 3:
94
95 /*
96 * An interrupt generating device that is wired to a SysWake pin.
97 */
98 touchscreen0 {
99 // The interrupt controller that this device is wired to.
100 interrupt-parent = <&pdc>;
101
102 // Interrupt source SysWake 0 that is active-low level-sensitive
103 interrupts = <8 /* SysWake0 */
104 8 /* IRQ_TYPE_LEVEL_LOW */>;
105 };
diff --git a/Documentation/devicetree/bindings/mfd/cros-ec.txt b/Documentation/devicetree/bindings/mfd/cros-ec.txt
index e0e59c58a1f9..5f229c5f6da9 100644
--- a/Documentation/devicetree/bindings/mfd/cros-ec.txt
+++ b/Documentation/devicetree/bindings/mfd/cros-ec.txt
@@ -4,7 +4,7 @@ Google's ChromeOS EC is a Cortex-M device which talks to the AP and
4implements various function such as keyboard and battery charging. 4implements various function such as keyboard and battery charging.
5 5
6The EC can be connect through various means (I2C, SPI, LPC) and the 6The EC can be connect through various means (I2C, SPI, LPC) and the
7compatible string used depends on the inteface. Each connection method has 7compatible string used depends on the interface. Each connection method has
8its own driver which connects to the top level interface-agnostic EC driver. 8its own driver which connects to the top level interface-agnostic EC driver.
9Other Linux driver (such as cros-ec-keyb for the matrix keyboard) connect to 9Other Linux driver (such as cros-ec-keyb for the matrix keyboard) connect to
10the top-level driver. 10the top-level driver.
diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt b/Documentation/devicetree/bindings/mfd/palmas.txt
index 892537d1a48f..e5f0f8303461 100644
--- a/Documentation/devicetree/bindings/mfd/palmas.txt
+++ b/Documentation/devicetree/bindings/mfd/palmas.txt
@@ -5,6 +5,7 @@ twl6035 (palmas)
5twl6037 (palmas) 5twl6037 (palmas)
6tps65913 (palmas) 6tps65913 (palmas)
7tps65914 (palmas) 7tps65914 (palmas)
8tps659038
8 9
9Required properties: 10Required properties:
10- compatible : Should be from the list 11- compatible : Should be from the list
@@ -14,6 +15,7 @@ Required properties:
14 ti,tps65913 15 ti,tps65913
15 ti,tps65914 16 ti,tps65914
16 ti,tps80036 17 ti,tps80036
18 ti,tps659038
17and also the generic series names 19and also the generic series names
18 ti,palmas 20 ti,palmas
19- interrupt-controller : palmas has its own internal IRQs 21- interrupt-controller : palmas has its own internal IRQs
diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
new file mode 100644
index 000000000000..c9332c626021
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
@@ -0,0 +1,109 @@
1
2* Samsung S2MPS11 Voltage and Current Regulator
3
4The Samsung S2MP211 is a multi-function device which includes voltage and
5current regulators, RTC, charger controller and other sub-blocks. It is
6interfaced to the host controller using a I2C interface. Each sub-block is
7addressed by the host system using different I2C slave address.
8
9Required properties:
10- compatible: Should be "samsung,s2mps11-pmic".
11- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
12
13Optional properties:
14- interrupt-parent: Specifies the phandle of the interrupt controller to which
15 the interrupts from s2mps11 are delivered to.
16- interrupts: Interrupt specifiers for interrupt sources.
17
18Optional nodes:
19- clocks: s2mps11 provides three(AP/CP/BT) buffered 32.768 KHz outputs, so to
20 register these as clocks with common clock framework instantiate a sub-node
21 named "clocks". It uses the common clock binding documented in :
22 [Documentation/devicetree/bindings/clock/clock-bindings.txt]
23 - #clock-cells: should be 1.
24
25 - The following is the list of clocks generated by the controller. Each clock
26 is assigned an identifier and client nodes use this identifier to specify
27 the clock which they consume.
28 Clock ID
29 ----------------------
30 32KhzAP 0
31 32KhzCP 1
32 32KhzBT 2
33
34- regulators: The regulators of s2mps11 that have to be instantiated should be
35included in a sub-node named 'regulators'. Regulator nodes included in this
36sub-node should be of the format as listed below.
37
38 regulator_name {
39 [standard regulator constraints....];
40 };
41
42 regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
43
44 BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explictly
45 regulator-ramp-delay = <0> can be used for them to disable ramp delay.
46 In absence of regulator-ramp-delay property, default ramp delay will be used.
47
48NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
49for a particular group of BUCKs. So provide same regulator-ramp-delay<value>.
50Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6],
51BUCK[3, 4], and BUCK[7, 8, 10]
52
53The regulator constraints inside the regulator nodes use the standard regulator
54bindings which are documented elsewhere.
55
56The following are the names of the regulators that the s2mps11 pmic block
57supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
58as per the datasheet of s2mps11.
59
60 - LDOn
61 - valid values for n are 1 to 28
62 - Example: LDO0, LD01, LDO28
63 - BUCKn
64 - valid values for n are 1 to 9.
65 - Example: BUCK1, BUCK2, BUCK9
66
67Example:
68
69 s2mps11_pmic@66 {
70 compatible = "samsung,s2mps11-pmic";
71 reg = <0x66>;
72
73 s2m_osc: clocks{
74 #clock-cells = 1;
75 clock-output-names = "xx", "yy", "zz";
76 };
77
78 regulators {
79 ldo1_reg: LDO1 {
80 regulator-name = "VDD_ABB_3.3V";
81 regulator-min-microvolt = <3300000>;
82 regulator-max-microvolt = <3300000>;
83 };
84
85 ldo2_reg: LDO2 {
86 regulator-name = "VDD_ALIVE_1.1V";
87 regulator-min-microvolt = <1100000>;
88 regulator-max-microvolt = <1100000>;
89 regulator-always-on;
90 };
91
92 buck1_reg: BUCK1 {
93 regulator-name = "vdd_mif";
94 regulator-min-microvolt = <950000>;
95 regulator-max-microvolt = <1350000>;
96 regulator-always-on;
97 regulator-boot-on;
98 };
99
100 buck2_reg: BUCK2 {
101 regulator-name = "vdd_arm";
102 regulator-min-microvolt = <950000>;
103 regulator-max-microvolt = <1350000>;
104 regulator-always-on;
105 regulator-boot-on;
106 regulator-ramp-delay = <50000>;
107 };
108 };
109 };
diff --git a/Documentation/devicetree/bindings/misc/atmel-ssc.txt b/Documentation/devicetree/bindings/misc/atmel-ssc.txt
index 38e51ad2e07e..a45ae08c8ed1 100644
--- a/Documentation/devicetree/bindings/misc/atmel-ssc.txt
+++ b/Documentation/devicetree/bindings/misc/atmel-ssc.txt
@@ -7,9 +7,30 @@ Required properties:
7- reg: Should contain SSC registers location and length 7- reg: Should contain SSC registers location and length
8- interrupts: Should contain SSC interrupt 8- interrupts: Should contain SSC interrupt
9 9
10Example: 10
11Required properties for devices compatible with "atmel,at91sam9g45-ssc":
12- dmas: DMA specifier, consisting of a phandle to DMA controller node,
13 the memory interface and SSC DMA channel ID (for tx and rx).
14 See Documentation/devicetree/bindings/dma/atmel-dma.txt for details.
15- dma-names: Must be "tx", "rx".
16
17Examples:
18- PDC transfer:
11ssc0: ssc@fffbc000 { 19ssc0: ssc@fffbc000 {
12 compatible = "atmel,at91rm9200-ssc"; 20 compatible = "atmel,at91rm9200-ssc";
13 reg = <0xfffbc000 0x4000>; 21 reg = <0xfffbc000 0x4000>;
14 interrupts = <14 4 5>; 22 interrupts = <14 4 5>;
15}; 23};
24
25- DMA transfer:
26ssc0: ssc@f0010000 {
27 compatible = "atmel,at91sam9g45-ssc";
28 reg = <0xf0010000 0x4000>;
29 interrupts = <28 4 5>;
30 dmas = <&dma0 1 13>,
31 <&dma0 1 14>;
32 dma-names = "tx", "rx";
33 pinctrl-names = "default";
34 pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
35 status = "disabled";
36};
diff --git a/Documentation/devicetree/bindings/misc/smc.txt b/Documentation/devicetree/bindings/misc/smc.txt
index 02b428136177..6c9f176f3571 100644
--- a/Documentation/devicetree/bindings/misc/smc.txt
+++ b/Documentation/devicetree/bindings/misc/smc.txt
@@ -4,11 +4,12 @@ This binding defines the location of the bounce buffer
4used for non-secure to secure communications. 4used for non-secure to secure communications.
5 5
6Required properties: 6Required properties:
7- compatible : "bcm,kona-smc" 7- compatible : "brcm,kona-smc"
8- DEPRECATED: compatible : "bcm,kona-smc"
8- reg : Location and size of bounce buffer 9- reg : Location and size of bounce buffer
9 10
10Example: 11Example:
11 smc@0x3404c000 { 12 smc@0x3404c000 {
12 compatible = "bcm,bcm11351-smc", "bcm,kona-smc"; 13 compatible = "brcm,bcm11351-smc", "brcm,kona-smc";
13 reg = <0x3404c000 0x400>; //1 KiB in SRAM 14 reg = <0x3404c000 0x400>; //1 KiB in SRAM
14 }; 15 };
diff --git a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt
index bd9be0b5bc20..b7943f3f9995 100644
--- a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt
+++ b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt
@@ -19,6 +19,9 @@ Optional properties:
19 "bus-width = <1>" property. 19 "bus-width = <1>" property.
20 - sdhci,auto-cmd12: specifies that a controller can only handle auto 20 - sdhci,auto-cmd12: specifies that a controller can only handle auto
21 CMD12. 21 CMD12.
22 - voltage-ranges : two cells are required, first cell specifies minimum
23 slot voltage (mV), second cell specifies maximum slot voltage (mV).
24 Several ranges could be specified.
22 25
23Example: 26Example:
24 27
@@ -29,4 +32,5 @@ sdhci@2e000 {
29 interrupt-parent = <&ipic>; 32 interrupt-parent = <&ipic>;
30 /* Filled in by U-Boot */ 33 /* Filled in by U-Boot */
31 clock-frequency = <0>; 34 clock-frequency = <0>;
35 voltage-ranges = <3300 3300>;
32}; 36};
diff --git a/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt b/Documentation/devicetree/bindings/mmc/kona-sdhci.txt
index 094ae010f2fb..789fb07a426d 100644
--- a/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt
+++ b/Documentation/devicetree/bindings/mmc/kona-sdhci.txt
@@ -4,12 +4,13 @@ This file documents differences between the core properties in mmc.txt
4and the properties present in the bcm281xx SDHCI 4and the properties present in the bcm281xx SDHCI
5 5
6Required properties: 6Required properties:
7- compatible : Should be "bcm,kona-sdhci" 7- compatible : Should be "brcm,kona-sdhci"
8- DEPRECATED: compatible : Should be "bcm,kona-sdhci"
8 9
9Example: 10Example:
10 11
11sdio2: sdio@0x3f1a0000 { 12sdio2: sdio@0x3f1a0000 {
12 compatible = "bcm,kona-sdhci"; 13 compatible = "brcm,kona-sdhci";
13 reg = <0x3f1a0000 0x10000>; 14 reg = <0x3f1a0000 0x10000>;
14 interrupts = <0x0 74 0x4>; 15 interrupts = <0x0 74 0x4>;
15}; 16};
diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt
index d555421ea49f..c4728839d0c1 100644
--- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt
+++ b/Documentation/devicetree/bindings/mtd/atmel-nand.txt
@@ -15,6 +15,7 @@ Required properties:
15 optional gpio and may be set to 0 if not present. 15 optional gpio and may be set to 0 if not present.
16 16
17Optional properties: 17Optional properties:
18- atmel,nand-has-dma : boolean to support dma transfer for nand read/write.
18- nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default. 19- nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default.
19 Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", 20 Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first",
20 "soft_bch". 21 "soft_bch".
@@ -29,6 +30,14 @@ Optional properties:
29 sector size 1024. 30 sector size 1024.
30- nand-bus-width : 8 or 16 bus width if not present 8 31- nand-bus-width : 8 or 16 bus width if not present 8
31- nand-on-flash-bbt: boolean to enable on flash bbt option if not present false 32- nand-on-flash-bbt: boolean to enable on flash bbt option if not present false
33- Nand Flash Controller(NFC) is a slave driver under Atmel nand flash
34 - Required properties:
35 - compatible : "atmel,sama5d3-nfc".
36 - reg : should specify the address and size used for NFC command registers,
37 NFC registers and NFC Sram. NFC Sram address and size can be absent
38 if don't want to use it.
39 - Optional properties:
40 - atmel,write-by-sram: boolean to enable NFC write by sram.
32 41
33Examples: 42Examples:
34nand0: nand@40000000,0 { 43nand0: nand@40000000,0 {
@@ -77,3 +86,22 @@ nand0: nand@40000000 {
77 ... 86 ...
78 }; 87 };
79}; 88};
89
90/* for NFC supported chips */
91nand0: nand@40000000 {
92 compatible = "atmel,at91rm9200-nand";
93 #address-cells = <1>;
94 #size-cells = <1>;
95 ranges;
96 ...
97 nfc@70000000 {
98 compatible = "atmel,sama5d3-nfc";
99 #address-cells = <1>;
100 #size-cells = <1>;
101 reg = <
102 0x70000000 0x10000000 /* NFC Command Registers */
103 0xffffc000 0x00000070 /* NFC HSMC regs */
104 0x00200000 0x00100000 /* NFC SRAM banks */
105 >;
106 };
107};
diff --git a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt
index 2240ac09f6ba..ec42935f3908 100644
--- a/Documentation/devicetree/bindings/mtd/fsmc-nand.txt
+++ b/Documentation/devicetree/bindings/mtd/fsmc-nand.txt
@@ -1,4 +1,5 @@
1* FSMC NAND 1ST Microelectronics Flexible Static Memory Controller (FSMC)
2NAND Interface
2 3
3Required properties: 4Required properties:
4- compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand" 5- compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand"
@@ -9,6 +10,26 @@ Optional properties:
9- bank-width : Width (in bytes) of the device. If not present, the width 10- bank-width : Width (in bytes) of the device. If not present, the width
10 defaults to 1 byte 11 defaults to 1 byte
11- nand-skip-bbtscan: Indicates the the BBT scanning should be skipped 12- nand-skip-bbtscan: Indicates the the BBT scanning should be skipped
13- timings: array of 6 bytes for NAND timings. The meanings of these bytes
14 are:
15 byte 0 TCLR : CLE to RE delay in number of AHB clock cycles, only 4 bits
16 are valid. Zero means one clockcycle, 15 means 16 clock
17 cycles.
18 byte 1 TAR : ALE to RE delay, 4 bits are valid. Same format as TCLR.
19 byte 2 THIZ : number of HCLK clock cycles during which the data bus is
20 kept in Hi-Z (tristate) after the start of a write access.
21 Only valid for write transactions. Zero means zero cycles,
22 255 means 255 cycles.
23 byte 3 THOLD : number of HCLK clock cycles to hold the address (and data
24 when writing) after the command deassertation. Zero means
25 one cycle, 255 means 256 cycles.
26 byte 4 TWAIT : number of HCLK clock cycles to assert the command to the
27 NAND flash in response to SMWAITn. Zero means 1 cycle,
28 255 means 256 cycles.
29 byte 5 TSET : number of HCLK clock cycles to assert the address before the
30 command is asserted. Zero means one cycle, 255 means 256
31 cycles.
32- bank: default NAND bank to use (0-3 are valid, 0 is the default).
12 33
13Example: 34Example:
14 35
@@ -24,6 +45,8 @@ Example:
24 45
25 bank-width = <1>; 46 bank-width = <1>;
26 nand-skip-bbtscan; 47 nand-skip-bbtscan;
48 timings = /bits/ 8 <0 0 0 2 3 0>;
49 bank = <1>;
27 50
28 partition@0 { 51 partition@0 {
29 ... 52 ...
diff --git a/Documentation/devicetree/bindings/mtd/partition.txt b/Documentation/devicetree/bindings/mtd/partition.txt
index 9315ac96b49b..8e5557da1955 100644
--- a/Documentation/devicetree/bindings/mtd/partition.txt
+++ b/Documentation/devicetree/bindings/mtd/partition.txt
@@ -4,6 +4,7 @@ Partitions can be represented by sub-nodes of an mtd device. This can be used
4on platforms which have strong conventions about which portions of a flash are 4on platforms which have strong conventions about which portions of a flash are
5used for what purposes, but which don't use an on-flash partition table such 5used for what purposes, but which don't use an on-flash partition table such
6as RedBoot. 6as RedBoot.
7NOTE: if the sub-node has a compatible string, then it is not a partition.
7 8
8#address-cells & #size-cells must both be present in the mtd device. There are 9#address-cells & #size-cells must both be present in the mtd device. There are
9two valid values for both: 10two valid values for both:
diff --git a/Documentation/devicetree/bindings/net/can/atmel-can.txt b/Documentation/devicetree/bindings/net/can/atmel-can.txt
index 72cf0c5daff4..14e52a0d86ec 100644
--- a/Documentation/devicetree/bindings/net/can/atmel-can.txt
+++ b/Documentation/devicetree/bindings/net/can/atmel-can.txt
@@ -8,7 +8,7 @@ Required properties:
8Example: 8Example:
9 9
10 can0: can@f000c000 { 10 can0: can@f000c000 {
11 compatbile = "atmel,at91sam9x5-can"; 11 compatible = "atmel,at91sam9x5-can";
12 reg = <0xf000c000 0x300>; 12 reg = <0xf000c000 0x300>;
13 interrupts = <40 4 5> 13 interrupts = <40 4 5>
14 }; 14 };
diff --git a/Documentation/devicetree/bindings/net/can/sja1000.txt b/Documentation/devicetree/bindings/net/can/sja1000.txt
index c2dbcec0ee31..f2105a47ec87 100644
--- a/Documentation/devicetree/bindings/net/can/sja1000.txt
+++ b/Documentation/devicetree/bindings/net/can/sja1000.txt
@@ -37,7 +37,7 @@ Optional properties:
37 If not specified or if the specified value is 0, the CLKOUT pin 37 If not specified or if the specified value is 0, the CLKOUT pin
38 will be disabled. 38 will be disabled.
39 39
40- nxp,no-comparator-bypass : Allows to disable the CAN input comperator. 40- nxp,no-comparator-bypass : Allows to disable the CAN input comparator.
41 41
42For further information, please have a look to the SJA1000 data sheet. 42For further information, please have a look to the SJA1000 data sheet.
43 43
diff --git a/Documentation/devicetree/bindings/net/micrel-ksz9021.txt b/Documentation/devicetree/bindings/net/micrel-ksz9021.txt
new file mode 100644
index 000000000000..997a63f1aea1
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/micrel-ksz9021.txt
@@ -0,0 +1,49 @@
1Micrel KSZ9021 Gigabit Ethernet PHY
2
3Some boards require special tuning values, particularly when it comes to
4clock delays. You can specify clock delay values by adding
5micrel-specific properties to an Ethernet OF device node.
6
7All skew control options are specified in picoseconds. The minimum
8value is 0, and the maximum value is 3000.
9
10Optional properties:
11 - rxc-skew-ps : Skew control of RXC pad
12 - rxdv-skew-ps : Skew control of RX CTL pad
13 - txc-skew-ps : Skew control of TXC pad
14 - txen-skew-ps : Skew control of TX_CTL pad
15 - rxd0-skew-ps : Skew control of RX data 0 pad
16 - rxd1-skew-ps : Skew control of RX data 1 pad
17 - rxd2-skew-ps : Skew control of RX data 2 pad
18 - rxd3-skew-ps : Skew control of RX data 3 pad
19 - txd0-skew-ps : Skew control of TX data 0 pad
20 - txd1-skew-ps : Skew control of TX data 1 pad
21 - txd2-skew-ps : Skew control of TX data 2 pad
22 - txd3-skew-ps : Skew control of TX data 3 pad
23
24Examples:
25
26 /* Attach to an Ethernet device with autodetected PHY */
27 &enet {
28 rxc-skew-ps = <3000>;
29 rxdv-skew-ps = <0>;
30 txc-skew-ps = <3000>;
31 txen-skew-ps = <0>;
32 status = "okay";
33 };
34
35 /* Attach to an explicitly-specified PHY */
36 mdio {
37 phy0: ethernet-phy@0 {
38 rxc-skew-ps = <3000>;
39 rxdv-skew-ps = <0>;
40 txc-skew-ps = <3000>;
41 txen-skew-ps = <0>;
42 reg = <0>;
43 };
44 };
45 ethernet@70000 {
46 status = "okay";
47 phy = <&phy0>;
48 phy-mode = "rgmii-id";
49 };
diff --git a/Documentation/devicetree/bindings/net/moxa,moxart-mac.txt b/Documentation/devicetree/bindings/net/moxa,moxart-mac.txt
new file mode 100644
index 000000000000..583418b2c127
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/moxa,moxart-mac.txt
@@ -0,0 +1,21 @@
1MOXA ART Ethernet Controller
2
3Required properties:
4
5- compatible : Must be "moxa,moxart-mac"
6- reg : Should contain register location and length
7- interrupts : Should contain the mac interrupt number
8
9Example:
10
11 mac0: mac@90900000 {
12 compatible = "moxa,moxart-mac";
13 reg = <0x90900000 0x100>;
14 interrupts = <25 0>;
15 };
16
17 mac1: mac@92000000 {
18 compatible = "moxa,moxart-mac";
19 reg = <0x92000000 0x100>;
20 interrupts = <27 0>;
21 };
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt
index 261c563b5f06..eba0e5e59ebe 100644
--- a/Documentation/devicetree/bindings/net/stmmac.txt
+++ b/Documentation/devicetree/bindings/net/stmmac.txt
@@ -22,6 +22,11 @@ Required properties:
22- snps,pbl Programmable Burst Length 22- snps,pbl Programmable Burst Length
23- snps,fixed-burst Program the DMA to use the fixed burst mode 23- snps,fixed-burst Program the DMA to use the fixed burst mode
24- snps,mixed-burst Program the DMA to use the mixed burst mode 24- snps,mixed-burst Program the DMA to use the mixed burst mode
25- snps,force_thresh_dma_mode Force DMA to use the threshold mode for
26 both tx and rx
27- snps,force_sf_dma_mode Force DMA to use the Store and Forward
28 mode for both tx and rx. This flag is
29 ignored if force_thresh_dma_mode is set.
25 30
26Optional properties: 31Optional properties:
27- mac-address: 6 bytes, mac address 32- mac-address: 6 bytes, mac address
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt
index e2371f5cdebe..eabcb4b5db6e 100644
--- a/Documentation/devicetree/bindings/pci/designware-pcie.txt
+++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt
@@ -18,6 +18,7 @@ Required properties:
18- interrupt-map-mask and interrupt-map: standard PCI properties 18- interrupt-map-mask and interrupt-map: standard PCI properties
19 to define the mapping of the PCIe interface to interrupt 19 to define the mapping of the PCIe interface to interrupt
20 numbers. 20 numbers.
21- num-lanes: number of lanes to use
21- reset-gpio: gpio pin number of power good signal 22- reset-gpio: gpio pin number of power good signal
22 23
23Example: 24Example:
@@ -41,6 +42,7 @@ SoC specific DT Entry:
41 #interrupt-cells = <1>; 42 #interrupt-cells = <1>;
42 interrupt-map-mask = <0 0 0 0>; 43 interrupt-map-mask = <0 0 0 0>;
43 interrupt-map = <0x0 0 &gic 53>; 44 interrupt-map = <0x0 0 &gic 53>;
45 num-lanes = <4>;
44 }; 46 };
45 47
46 pcie@2a0000 { 48 pcie@2a0000 {
@@ -60,6 +62,7 @@ SoC specific DT Entry:
60 #interrupt-cells = <1>; 62 #interrupt-cells = <1>;
61 interrupt-map-mask = <0 0 0 0>; 63 interrupt-map-mask = <0 0 0 0>;
62 interrupt-map = <0x0 0 &gic 56>; 64 interrupt-map = <0x0 0 &gic 56>;
65 num-lanes = <4>;
63 }; 66 };
64 67
65Board specific DT Entry: 68Board specific DT Entry:
diff --git a/Documentation/devicetree/bindings/pci/mvebu-pci.txt b/Documentation/devicetree/bindings/pci/mvebu-pci.txt
index f8d405897a94..9556e2fedf6d 100644
--- a/Documentation/devicetree/bindings/pci/mvebu-pci.txt
+++ b/Documentation/devicetree/bindings/pci/mvebu-pci.txt
@@ -1,6 +1,7 @@
1* Marvell EBU PCIe interfaces 1* Marvell EBU PCIe interfaces
2 2
3Mandatory properties: 3Mandatory properties:
4
4- compatible: one of the following values: 5- compatible: one of the following values:
5 marvell,armada-370-pcie 6 marvell,armada-370-pcie
6 marvell,armada-xp-pcie 7 marvell,armada-xp-pcie
@@ -10,11 +11,49 @@ Mandatory properties:
10- #interrupt-cells, set to <1> 11- #interrupt-cells, set to <1>
11- bus-range: PCI bus numbers covered 12- bus-range: PCI bus numbers covered
12- device_type, set to "pci" 13- device_type, set to "pci"
13- ranges: ranges for the PCI memory and I/O regions, as well as the 14- ranges: ranges describing the MMIO registers to control the PCIe
14 MMIO registers to control the PCIe interfaces. 15 interfaces, and ranges describing the MBus windows needed to access
16 the memory and I/O regions of each PCIe interface.
17
18The ranges describing the MMIO registers have the following layout:
19
20 0x82000000 0 r MBUS_ID(0xf0, 0x01) r 0 s
21
22where:
23
24 * r is a 32-bits value that gives the offset of the MMIO
25 registers of this PCIe interface, from the base of the internal
26 registers.
27
28 * s is a 32-bits value that give the size of this MMIO
29 registers area. This range entry translates the '0x82000000 0 r' PCI
30 address into the 'MBUS_ID(0xf0, 0x01) r' CPU address, which is part
31 of the internal register window (as identified by MBUS_ID(0xf0,
32 0x01)).
33
34The ranges describing the MBus windows have the following layout:
35
36 0x8t000000 s 0 MBUS_ID(w, a) 0 1 0
37
38where:
39
40 * t is the type of the MBus window (as defined by the standard PCI DT
41 bindings), 1 for I/O and 2 for memory.
15 42
16In addition, the Device Tree node must have sub-nodes describing each 43 * s is the PCI slot that corresponds to this PCIe interface
44
45 * w is the 'target ID' value for the MBus window
46
47 * a the 'attribute' value for the MBus window.
48
49Since the location and size of the different MBus windows is not fixed in
50hardware, and only determined in runtime, those ranges cover the full first
514 GB of the physical address space, and do not translate into a valid CPU
52address.
53
54In addition, the device tree node must have sub-nodes describing each
17PCIe interface, having the following mandatory properties: 55PCIe interface, having the following mandatory properties:
56
18- reg: used only for interrupt mapping, so only the first four bytes 57- reg: used only for interrupt mapping, so only the first four bytes
19 are used to refer to the correct bus number and device number. 58 are used to refer to the correct bus number and device number.
20- assigned-addresses: reference to the MMIO registers used to control 59- assigned-addresses: reference to the MMIO registers used to control
@@ -26,7 +65,8 @@ PCIe interface, having the following mandatory properties:
26- #address-cells, set to <3> 65- #address-cells, set to <3>
27- #size-cells, set to <2> 66- #size-cells, set to <2>
28- #interrupt-cells, set to <1> 67- #interrupt-cells, set to <1>
29- ranges, empty property. 68- ranges, translating the MBus windows ranges of the parent node into
69 standard PCI addresses.
30- interrupt-map-mask and interrupt-map, standard PCI properties to 70- interrupt-map-mask and interrupt-map, standard PCI properties to
31 define the mapping of the PCIe interface to interrupt numbers. 71 define the mapping of the PCIe interface to interrupt numbers.
32 72
@@ -47,27 +87,50 @@ pcie-controller {
47 87
48 bus-range = <0x00 0xff>; 88 bus-range = <0x00 0xff>;
49 89
50 ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000 /* Port 0.0 registers */ 90 ranges =
51 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000 /* Port 2.0 registers */ 91 <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */
52 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000 /* Port 0.1 registers */ 92 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */
53 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000 /* Port 0.2 registers */ 93 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */
54 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000 /* Port 0.3 registers */ 94 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */
55 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000 /* Port 1.0 registers */ 95 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */
56 0x82000000 0 0xd0082000 0xd0082000 0 0x00002000 /* Port 3.0 registers */ 96 0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 /* Port 1.0 registers */
57 0x82000000 0 0xd0084000 0xd0084000 0 0x00002000 /* Port 1.1 registers */ 97 0x82000000 0 0x82000 MBUS_ID(0xf0, 0x01) 0x82000 0 0x00002000 /* Port 3.0 registers */
58 0x82000000 0 0xd0088000 0xd0088000 0 0x00002000 /* Port 1.2 registers */ 98 0x82000000 0 0x84000 MBUS_ID(0xf0, 0x01) 0x84000 0 0x00002000 /* Port 1.1 registers */
59 0x82000000 0 0xd008c000 0xd008c000 0 0x00002000 /* Port 1.3 registers */ 99 0x82000000 0 0x88000 MBUS_ID(0xf0, 0x01) 0x88000 0 0x00002000 /* Port 1.2 registers */
60 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ 100 0x82000000 0 0x8c000 MBUS_ID(0xf0, 0x01) 0x8c000 0 0x00002000 /* Port 1.3 registers */
61 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ 101 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
102 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */
103 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
104 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 0.1 IO */
105 0x82000000 0x3 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 0.2 MEM */
106 0x81000000 0x3 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO */
107 0x82000000 0x4 0 MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
108 0x81000000 0x4 0 MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO */
109
110 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
111 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */
112 0x82000000 0x6 0 MBUS_ID(0x08, 0xd8) 0 1 0 /* Port 1.1 MEM */
113 0x81000000 0x6 0 MBUS_ID(0x08, 0xd0) 0 1 0 /* Port 1.1 IO */
114 0x82000000 0x7 0 MBUS_ID(0x08, 0xb8) 0 1 0 /* Port 1.2 MEM */
115 0x81000000 0x7 0 MBUS_ID(0x08, 0xb0) 0 1 0 /* Port 1.2 IO */
116 0x82000000 0x8 0 MBUS_ID(0x08, 0x78) 0 1 0 /* Port 1.3 MEM */
117 0x81000000 0x8 0 MBUS_ID(0x08, 0x70) 0 1 0 /* Port 1.3 IO */
118
119 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */
120 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */
121
122 0x82000000 0xa 0 MBUS_ID(0x08, 0xf8) 0 1 0 /* Port 3.0 MEM */
123 0x81000000 0xa 0 MBUS_ID(0x08, 0xf0) 0 1 0 /* Port 3.0 IO */>;
62 124
63 pcie@1,0 { 125 pcie@1,0 {
64 device_type = "pci"; 126 device_type = "pci";
65 assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>; 127 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
66 reg = <0x0800 0 0 0 0>; 128 reg = <0x0800 0 0 0 0>;
67 #address-cells = <3>; 129 #address-cells = <3>;
68 #size-cells = <2>; 130 #size-cells = <2>;
69 #interrupt-cells = <1>; 131 #interrupt-cells = <1>;
70 ranges; 132 ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
133 0x81000000 0 0 0x81000000 0x1 0 1 0>;
71 interrupt-map-mask = <0 0 0 0>; 134 interrupt-map-mask = <0 0 0 0>;
72 interrupt-map = <0 0 0 0 &mpic 58>; 135 interrupt-map = <0 0 0 0 &mpic 58>;
73 marvell,pcie-port = <0>; 136 marvell,pcie-port = <0>;
@@ -78,12 +141,13 @@ pcie-controller {
78 141
79 pcie@2,0 { 142 pcie@2,0 {
80 device_type = "pci"; 143 device_type = "pci";
81 assigned-addresses = <0x82001000 0 0xd0044000 0 0x2000>; 144 assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
82 reg = <0x1000 0 0 0 0>; 145 reg = <0x1000 0 0 0 0>;
83 #address-cells = <3>; 146 #address-cells = <3>;
84 #size-cells = <2>; 147 #size-cells = <2>;
85 #interrupt-cells = <1>; 148 #interrupt-cells = <1>;
86 ranges; 149 ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
150 0x81000000 0 0 0x81000000 0x2 0 1 0>;
87 interrupt-map-mask = <0 0 0 0>; 151 interrupt-map-mask = <0 0 0 0>;
88 interrupt-map = <0 0 0 0 &mpic 59>; 152 interrupt-map = <0 0 0 0 &mpic 59>;
89 marvell,pcie-port = <0>; 153 marvell,pcie-port = <0>;
@@ -94,12 +158,13 @@ pcie-controller {
94 158
95 pcie@3,0 { 159 pcie@3,0 {
96 device_type = "pci"; 160 device_type = "pci";
97 assigned-addresses = <0x82001800 0 0xd0048000 0 0x2000>; 161 assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
98 reg = <0x1800 0 0 0 0>; 162 reg = <0x1800 0 0 0 0>;
99 #address-cells = <3>; 163 #address-cells = <3>;
100 #size-cells = <2>; 164 #size-cells = <2>;
101 #interrupt-cells = <1>; 165 #interrupt-cells = <1>;
102 ranges; 166 ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
167 0x81000000 0 0 0x81000000 0x3 0 1 0>;
103 interrupt-map-mask = <0 0 0 0>; 168 interrupt-map-mask = <0 0 0 0>;
104 interrupt-map = <0 0 0 0 &mpic 60>; 169 interrupt-map = <0 0 0 0 &mpic 60>;
105 marvell,pcie-port = <0>; 170 marvell,pcie-port = <0>;
@@ -110,12 +175,13 @@ pcie-controller {
110 175
111 pcie@4,0 { 176 pcie@4,0 {
112 device_type = "pci"; 177 device_type = "pci";
113 assigned-addresses = <0x82002000 0 0xd004c000 0 0x2000>; 178 assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
114 reg = <0x2000 0 0 0 0>; 179 reg = <0x2000 0 0 0 0>;
115 #address-cells = <3>; 180 #address-cells = <3>;
116 #size-cells = <2>; 181 #size-cells = <2>;
117 #interrupt-cells = <1>; 182 #interrupt-cells = <1>;
118 ranges; 183 ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
184 0x81000000 0 0 0x81000000 0x4 0 1 0>;
119 interrupt-map-mask = <0 0 0 0>; 185 interrupt-map-mask = <0 0 0 0>;
120 interrupt-map = <0 0 0 0 &mpic 61>; 186 interrupt-map = <0 0 0 0 &mpic 61>;
121 marvell,pcie-port = <0>; 187 marvell,pcie-port = <0>;
@@ -126,12 +192,13 @@ pcie-controller {
126 192
127 pcie@5,0 { 193 pcie@5,0 {
128 device_type = "pci"; 194 device_type = "pci";
129 assigned-addresses = <0x82002800 0 0xd0080000 0 0x2000>; 195 assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
130 reg = <0x2800 0 0 0 0>; 196 reg = <0x2800 0 0 0 0>;
131 #address-cells = <3>; 197 #address-cells = <3>;
132 #size-cells = <2>; 198 #size-cells = <2>;
133 #interrupt-cells = <1>; 199 #interrupt-cells = <1>;
134 ranges; 200 ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
201 0x81000000 0 0 0x81000000 0x5 0 1 0>;
135 interrupt-map-mask = <0 0 0 0>; 202 interrupt-map-mask = <0 0 0 0>;
136 interrupt-map = <0 0 0 0 &mpic 62>; 203 interrupt-map = <0 0 0 0 &mpic 62>;
137 marvell,pcie-port = <1>; 204 marvell,pcie-port = <1>;
@@ -142,12 +209,13 @@ pcie-controller {
142 209
143 pcie@6,0 { 210 pcie@6,0 {
144 device_type = "pci"; 211 device_type = "pci";
145 assigned-addresses = <0x82003000 0 0xd0084000 0 0x2000>; 212 assigned-addresses = <0x82003000 0 0x84000 0 0x2000>;
146 reg = <0x3000 0 0 0 0>; 213 reg = <0x3000 0 0 0 0>;
147 #address-cells = <3>; 214 #address-cells = <3>;
148 #size-cells = <2>; 215 #size-cells = <2>;
149 #interrupt-cells = <1>; 216 #interrupt-cells = <1>;
150 ranges; 217 ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0
218 0x81000000 0 0 0x81000000 0x6 0 1 0>;
151 interrupt-map-mask = <0 0 0 0>; 219 interrupt-map-mask = <0 0 0 0>;
152 interrupt-map = <0 0 0 0 &mpic 63>; 220 interrupt-map = <0 0 0 0 &mpic 63>;
153 marvell,pcie-port = <1>; 221 marvell,pcie-port = <1>;
@@ -158,12 +226,13 @@ pcie-controller {
158 226
159 pcie@7,0 { 227 pcie@7,0 {
160 device_type = "pci"; 228 device_type = "pci";
161 assigned-addresses = <0x82003800 0 0xd0088000 0 0x2000>; 229 assigned-addresses = <0x82003800 0 0x88000 0 0x2000>;
162 reg = <0x3800 0 0 0 0>; 230 reg = <0x3800 0 0 0 0>;
163 #address-cells = <3>; 231 #address-cells = <3>;
164 #size-cells = <2>; 232 #size-cells = <2>;
165 #interrupt-cells = <1>; 233 #interrupt-cells = <1>;
166 ranges; 234 ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0
235 0x81000000 0 0 0x81000000 0x7 0 1 0>;
167 interrupt-map-mask = <0 0 0 0>; 236 interrupt-map-mask = <0 0 0 0>;
168 interrupt-map = <0 0 0 0 &mpic 64>; 237 interrupt-map = <0 0 0 0 &mpic 64>;
169 marvell,pcie-port = <1>; 238 marvell,pcie-port = <1>;
@@ -174,12 +243,13 @@ pcie-controller {
174 243
175 pcie@8,0 { 244 pcie@8,0 {
176 device_type = "pci"; 245 device_type = "pci";
177 assigned-addresses = <0x82004000 0 0xd008c000 0 0x2000>; 246 assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>;
178 reg = <0x4000 0 0 0 0>; 247 reg = <0x4000 0 0 0 0>;
179 #address-cells = <3>; 248 #address-cells = <3>;
180 #size-cells = <2>; 249 #size-cells = <2>;
181 #interrupt-cells = <1>; 250 #interrupt-cells = <1>;
182 ranges; 251 ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0
252 0x81000000 0 0 0x81000000 0x8 0 1 0>;
183 interrupt-map-mask = <0 0 0 0>; 253 interrupt-map-mask = <0 0 0 0>;
184 interrupt-map = <0 0 0 0 &mpic 65>; 254 interrupt-map = <0 0 0 0 &mpic 65>;
185 marvell,pcie-port = <1>; 255 marvell,pcie-port = <1>;
@@ -187,14 +257,16 @@ pcie-controller {
187 clocks = <&gateclk 12>; 257 clocks = <&gateclk 12>;
188 status = "disabled"; 258 status = "disabled";
189 }; 259 };
260
190 pcie@9,0 { 261 pcie@9,0 {
191 device_type = "pci"; 262 device_type = "pci";
192 assigned-addresses = <0x82004800 0 0xd0042000 0 0x2000>; 263 assigned-addresses = <0x82004800 0 0x42000 0 0x2000>;
193 reg = <0x4800 0 0 0 0>; 264 reg = <0x4800 0 0 0 0>;
194 #address-cells = <3>; 265 #address-cells = <3>;
195 #size-cells = <2>; 266 #size-cells = <2>;
196 #interrupt-cells = <1>; 267 #interrupt-cells = <1>;
197 ranges; 268 ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
269 0x81000000 0 0 0x81000000 0x9 0 1 0>;
198 interrupt-map-mask = <0 0 0 0>; 270 interrupt-map-mask = <0 0 0 0>;
199 interrupt-map = <0 0 0 0 &mpic 99>; 271 interrupt-map = <0 0 0 0 &mpic 99>;
200 marvell,pcie-port = <2>; 272 marvell,pcie-port = <2>;
@@ -205,12 +277,13 @@ pcie-controller {
205 277
206 pcie@10,0 { 278 pcie@10,0 {
207 device_type = "pci"; 279 device_type = "pci";
208 assigned-addresses = <0x82005000 0 0xd0082000 0 0x2000>; 280 assigned-addresses = <0x82005000 0 0x82000 0 0x2000>;
209 reg = <0x5000 0 0 0 0>; 281 reg = <0x5000 0 0 0 0>;
210 #address-cells = <3>; 282 #address-cells = <3>;
211 #size-cells = <2>; 283 #size-cells = <2>;
212 #interrupt-cells = <1>; 284 #interrupt-cells = <1>;
213 ranges; 285 ranges = <0x82000000 0 0 0x82000000 0xa 0 1 0
286 0x81000000 0 0 0x81000000 0xa 0 1 0>;
214 interrupt-map-mask = <0 0 0 0>; 287 interrupt-map-mask = <0 0 0 0>;
215 interrupt-map = <0 0 0 0 &mpic 103>; 288 interrupt-map = <0 0 0 0 &mpic 103>;
216 marvell,pcie-port = <3>; 289 marvell,pcie-port = <3>;
diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
new file mode 100644
index 000000000000..6b7510775c50
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
@@ -0,0 +1,163 @@
1NVIDIA Tegra PCIe controller
2
3Required properties:
4- compatible: "nvidia,tegra20-pcie" or "nvidia,tegra30-pcie"
5- device_type: Must be "pci"
6- reg: A list of physical base address and length for each set of controller
7 registers. Must contain an entry for each entry in the reg-names property.
8- reg-names: Must include the following entries:
9 "pads": PADS registers
10 "afi": AFI registers
11 "cs": configuration space region
12- interrupts: A list of interrupt outputs of the controller. Must contain an
13 entry for each entry in the interrupt-names property.
14- interrupt-names: Must include the following entries:
15 "intr": The Tegra interrupt that is asserted for controller interrupts
16 "msi": The Tegra interrupt that is asserted when an MSI is received
17- pex-clk-supply: Supply voltage for internal reference clock
18- vdd-supply: Power supply for controller (1.05V)
19- avdd-supply: Power supply for controller (1.05V) (not required for Tegra20)
20- bus-range: Range of bus numbers associated with this controller
21- #address-cells: Address representation for root ports (must be 3)
22 - cell 0 specifies the bus and device numbers of the root port:
23 [23:16]: bus number
24 [15:11]: device number
25 - cell 1 denotes the upper 32 address bits and should be 0
26 - cell 2 contains the lower 32 address bits and is used to translate to the
27 CPU address space
28- #size-cells: Size representation for root ports (must be 2)
29- ranges: Describes the translation of addresses for root ports and standard
30 PCI regions. The entries must be 6 cells each, where the first three cells
31 correspond to the address as described for the #address-cells property
32 above, the fourth cell is the physical CPU address to translate to and the
33 fifth and six cells are as described for the #size-cells property above.
34 - The first two entries are expected to translate the addresses for the root
35 port registers, which are referenced by the assigned-addresses property of
36 the root port nodes (see below).
37 - The remaining entries setup the mapping for the standard I/O, memory and
38 prefetchable PCI regions. The first cell determines the type of region
39 that is setup:
40 - 0x81000000: I/O memory region
41 - 0x82000000: non-prefetchable memory region
42 - 0xc2000000: prefetchable memory region
43 Please refer to the standard PCI bus binding document for a more detailed
44 explanation.
45- clocks: List of clock inputs of the controller. Must contain an entry for
46 each entry in the clock-names property.
47- clock-names: Must include the following entries:
48 "pex": The Tegra clock of that name
49 "afi": The Tegra clock of that name
50 "pcie_xclk": The Tegra clock of that name
51 "pll_e": The Tegra clock of that name
52 "cml": The Tegra clock of that name (not required for Tegra20)
53
54Root ports are defined as subnodes of the PCIe controller node.
55
56Required properties:
57- device_type: Must be "pci"
58- assigned-addresses: Address and size of the port configuration registers
59- reg: PCI bus address of the root port
60- #address-cells: Must be 3
61- #size-cells: Must be 2
62- ranges: Sub-ranges distributed from the PCIe controller node. An empty
63 property is sufficient.
64- nvidia,num-lanes: Number of lanes to use for this port. Valid combinations
65 are:
66 - Root port 0 uses 4 lanes, root port 1 is unused.
67 - Both root ports use 2 lanes.
68
69Example:
70
71SoC DTSI:
72
73 pcie-controller {
74 compatible = "nvidia,tegra20-pcie";
75 device_type = "pci";
76 reg = <0x80003000 0x00000800 /* PADS registers */
77 0x80003800 0x00000200 /* AFI registers */
78 0x90000000 0x10000000>; /* configuration space */
79 reg-names = "pads", "afi", "cs";
80 interrupts = <0 98 0x04 /* controller interrupt */
81 0 99 0x04>; /* MSI interrupt */
82 interrupt-names = "intr", "msi";
83
84 bus-range = <0x00 0xff>;
85 #address-cells = <3>;
86 #size-cells = <2>;
87
88 ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000 /* port 0 registers */
89 0x82000000 0 0x80001000 0x80001000 0 0x00001000 /* port 1 registers */
90 0x81000000 0 0 0x82000000 0 0x00010000 /* downstream I/O */
91 0x82000000 0 0xa0000000 0xa0000000 0 0x10000000 /* non-prefetchable memory */
92 0xc2000000 0 0xb0000000 0xb0000000 0 0x10000000>; /* prefetchable memory */
93
94 clocks = <&tegra_car 70>, <&tegra_car 72>, <&tegra_car 74>,
95 <&tegra_car 118>;
96 clock-names = "pex", "afi", "pcie_xclk", "pll_e";
97 status = "disabled";
98
99 pci@1,0 {
100 device_type = "pci";
101 assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>;
102 reg = <0x000800 0 0 0 0>;
103 status = "disabled";
104
105 #address-cells = <3>;
106 #size-cells = <2>;
107
108 ranges;
109
110 nvidia,num-lanes = <2>;
111 };
112
113 pci@2,0 {
114 device_type = "pci";
115 assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>;
116 reg = <0x001000 0 0 0 0>;
117 status = "disabled";
118
119 #address-cells = <3>;
120 #size-cells = <2>;
121
122 ranges;
123
124 nvidia,num-lanes = <2>;
125 };
126 };
127
128
129Board DTS:
130
131 pcie-controller {
132 status = "okay";
133
134 vdd-supply = <&pci_vdd_reg>;
135 pex-clk-supply = <&pci_clk_reg>;
136
137 /* root port 00:01.0 */
138 pci@1,0 {
139 status = "okay";
140
141 /* bridge 01:00.0 (optional) */
142 pci@0,0 {
143 reg = <0x010000 0 0 0 0>;
144
145 #address-cells = <3>;
146 #size-cells = <2>;
147
148 device_type = "pci";
149
150 /* endpoint 02:00.0 */
151 pci@0,0 {
152 reg = <0x020000 0 0 0 0>;
153 };
154 };
155 };
156 };
157
158Note that devices on the PCI bus are dynamically discovered using PCI's bus
159enumeration and therefore don't need corresponding device nodes in DT. However
160if a device on the PCI bus provides a non-probeable bus such as I2C or SPI,
161device nodes need to be added in order to allow the bus' children to be
162instantiated at the proper location in the operating system's device tree (as
163illustrated by the optional nodes in the example above).
diff --git a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt
index 648d60eb9fd8..7ccae490ff6d 100644
--- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt
@@ -37,7 +37,7 @@ Bank: 3 (A, B and C)
37 0xffffffff 0x7fff3ccf /* pioB */ 37 0xffffffff 0x7fff3ccf /* pioB */
38 0xffffffff 0x007fffff /* pioC */ 38 0xffffffff 0x007fffff /* pioC */
39 39
40For each peripheral/bank we will descibe in a u32 if a pin can can be 40For each peripheral/bank we will descibe in a u32 if a pin can be
41configured in it by putting 1 to the pin bit (1 << pin) 41configured in it by putting 1 to the pin bit (1 << pin)
42 42
43Let's take the pioA on peripheral B 43Let's take the pioA on peripheral B
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt
index e204d009f16c..fb70856c5b51 100644
--- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt
+++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt
@@ -80,6 +80,17 @@ Valid values for pin and group names are:
80 dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, 80 dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg,
81 gmh, owr, uda. 81 gmh, owr, uda.
82 82
83Valid values for nvidia,functions are:
84
85 blink, cec, cldvfs, clk12, cpu, dap, dap1, dap2, dev3, displaya,
86 displaya_alt, displayb, dtv, emc_dll, extperiph1, extperiph2,
87 extperiph3, gmi, gmi_alt, hda, hsi, i2c1, i2c2, i2c3, i2c4, i2cpwr,
88 i2s0, i2s1, i2s2, i2s3, i2s4, irda, kbc, nand, nand_alt, owr, pmi,
89 pwm0, pwm1, pwm2, pwm3, pwron, reset_out_n, rsvd1, rsvd2, rsvd3,
90 rsvd4, sdmmc1, sdmmc2, sdmmc3, sdmmc4, soc, spdif, spi1, spi2, spi3,
91 spi4, spi5, spi6, sysclk, trace, uarta, uartb, uartc, uartd, ulpi,
92 usb, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6, vi, vi_alt1, vi_alt3
93
83Example: 94Example:
84 95
85 pinmux: pinmux { 96 pinmux: pinmux {
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt
index 683fde93c4fb..61e73cde9ae9 100644
--- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt
+++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt
@@ -103,6 +103,17 @@ Valid values for pin and group names are:
103 drive_gma, drive_gmb, drive_gmc, drive_gmd, drive_gme, drive_owr, 103 drive_gma, drive_gmb, drive_gmc, drive_gmd, drive_gme, drive_owr,
104 drive_uda. 104 drive_uda.
105 105
106Valid values for nvidia,functions are:
107
108 ahb_clk, apb_clk, audio_sync, crt, dap1, dap2, dap3, dap4, dap5,
109 displaya, displayb, emc_test0_dll, emc_test1_dll, gmi, gmi_int,
110 hdmi, i2cp, i2c1, i2c2, i2c3, ide, irda, kbc, mio, mipi_hs, nand,
111 osc, owr, pcie, plla_out, pllc_out1, pllm_out1, pllp_out2, pllp_out3,
112 pllp_out4, pwm, pwr_intr, pwr_on, rsvd1, rsvd2, rsvd3, rsvd4, rtck,
113 sdio1, sdio2, sdio3, sdio4, sflash, spdif, spi1, spi2, spi2_alt,
114 spi3, spi4, trace, twc, uarta, uartb, uartc, uartd, uarte, ulpi,
115 vi, vi_sensor_clk, xio
116
106Example: 117Example:
107 118
108 pinctrl@70000000 { 119 pinctrl@70000000 {
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt
index 6f426ed7009e..0e6354c11e6d 100644
--- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt
+++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt
@@ -91,6 +91,18 @@ Valid values for pin and group names are:
91 gmh, gpv, lcd1, lcd2, owr, sdio1, sdio2, sdio3, spi, uaa, uab, uart2, 91 gmh, gpv, lcd1, lcd2, owr, sdio1, sdio2, sdio3, spi, uaa, uab, uart2,
92 uart3, uda, vi1. 92 uart3, uda, vi1.
93 93
94Valid values for nvidia,functions are:
95
96 blink, cec, clk_12m_out, clk_32k_in, core_pwr_req, cpu_pwr_req, crt,
97 dap, ddr, dev3, displaya, displayb, dtv, extperiph1, extperiph2,
98 extperiph3, gmi, gmi_alt, hda, hdcp, hdmi, hsi, i2c1, i2c2, i2c3,
99 i2c4, i2cpwr, i2s0, i2s1, i2s2, i2s3, i2s4, invalid, kbc, mio, nand,
100 nand_alt, owr, pcie, pwm0, pwm1, pwm2, pwm3, pwr_int_n, rsvd1, rsvd2,
101 rsvd3, rsvd4, rtck, sata, sdmmc1, sdmmc2, sdmmc3, sdmmc4, spdif, spi1,
102 spi2, spi2_alt, spi3, spi4, spi5, spi6, sysclk, test, trace, uarta,
103 uartb, uartc, uartd, uarte, ulpi, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6,
104 vi, vi_alt1, vi_alt2, vi_alt3
105
94Example: 106Example:
95 107
96 pinctrl@70000000 { 108 pinctrl@70000000 {
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
index aeb3c995cc04..1958ca9f9e5c 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
@@ -127,21 +127,20 @@ whether there is any interaction between the child and intermediate parent
127nodes, is again defined entirely by the binding for the individual pin 127nodes, is again defined entirely by the binding for the individual pin
128controller device. 128controller device.
129 129
130== Using generic pinconfig options == 130== Generic pin configuration node content ==
131 131
132Generic pinconfig parameters can be used by defining a separate node containing 132Many data items that are represented in a pin configuration node are common
133the applicable parameters (and optional values), like: 133and generic. Pin control bindings should use the properties defined below
134where they are applicable; not all of these properties are relevant or useful
135for all hardware or binding structures. Each individual binding document
136should state which of these generic properties, if any, are used, and the
137structure of the DT nodes that contain these properties.
134 138
135pcfg_pull_up: pcfg_pull_up { 139Supported generic properties are:
136 bias-pull-up;
137 drive-strength = <20>;
138};
139
140This node should then be referenced in the appropriate pinctrl node as a phandle
141and parsed in the driver using the pinconf_generic_parse_dt_config function.
142
143Supported configuration parameters are:
144 140
141pins - the list of pins that properties in the node
142 apply to
143function - the mux function to select
145bias-disable - disable any pin bias 144bias-disable - disable any pin bias
146bias-high-impedance - high impedance mode ("third-state", "floating") 145bias-high-impedance - high impedance mode ("third-state", "floating")
147bias-bus-hold - latch weakly 146bias-bus-hold - latch weakly
@@ -160,7 +159,21 @@ low-power-disable - disable low power mode
160output-low - set the pin to output mode with low level 159output-low - set the pin to output mode with low level
161output-high - set the pin to output mode with high level 160output-high - set the pin to output mode with high level
162 161
163Arguments for parameters: 162Some of the generic properties take arguments. For those that do, the
163arguments are described below.
164
165- pins takes a list of pin names or IDs as a required argument. The specific
166 binding for the hardware defines:
167 - Whether the entries are integers or strings, and their meaning.
168
169- function takes a list of function names/IDs as a required argument. The
170 specific binding for the hardware defines:
171 - Whether the entries are integers or strings, and their meaning.
172 - Whether only a single entry is allowed (which is applied to all entries
173 in the pins property), or whether there may alternatively be one entry per
174 entry in the pins property, in which case the list lengths must match, and
175 for each list index i, the function at list index i is applied to the pin
176 at list index i.
164 177
165- bias-pull-up, -down and -pin-default take as optional argument on hardware 178- bias-pull-up, -down and -pin-default take as optional argument on hardware
166 supporting it the pull strength in Ohm. bias-disable will disable the pull. 179 supporting it the pull strength in Ohm. bias-disable will disable the pull.
@@ -170,7 +183,5 @@ Arguments for parameters:
170- input-debounce takes the debounce time in usec as argument 183- input-debounce takes the debounce time in usec as argument
171 or 0 to disable debouncing 184 or 0 to disable debouncing
172 185
173All parameters not listed here, do not take an argument.
174
175More in-depth documentation on these parameters can be found in 186More in-depth documentation on these parameters can be found in
176<include/linux/pinctrl/pinconfig-generic.h> 187<include/linux/pinctrl/pinconfig-generic.h>
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt
new file mode 100644
index 000000000000..734d9b04d533
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt
@@ -0,0 +1,96 @@
1Palmas Pincontrol bindings
2
3The pins of Palmas device can be set on different option and provides
4the configuration for Pull UP/DOWN, open drain etc.
5
6Required properties:
7- compatible: It must be one of following:
8 - "ti,palmas-pinctrl" for Palma series of the pincontrol.
9 - "ti,tps65913-pinctrl" for Palma series device TPS65913.
10 - "ti,tps80036-pinctrl" for Palma series device TPS80036.
11
12Please refer to pinctrl-bindings.txt in this directory for details of the
13common pinctrl bindings used by client devices, including the meaning of the
14phrase "pin configuration node".
15
16Palmas's pin configuration nodes act as a container for an arbitrary number of
17subnodes. Each of these subnodes represents some desired configuration for a
18list of pins. This configuration can include the mux function to select on
19those pin(s), and various pin configuration parameters, such as pull-up,
20open drain.
21
22The name of each subnode is not important; all subnodes should be enumerated
23and processed purely based on their content.
24
25Each subnode only affects those parameters that are explicitly listed. In
26other words, a subnode that lists a mux function but no pin configuration
27parameters implies no information about any pin configuration parameters.
28Similarly, a pin subnode that describes a pullup parameter implies no
29information about e.g. the mux function.
30
31Optional properties:
32- ti,palmas-enable-dvfs1: Enable DVFS1. Configure pins for DVFS1 mode.
33 Selection primary or secondary function associated to I2C2_SCL_SCE,
34 I2C2_SDA_SDO pin/pad for DVFS1 interface
35- ti,palmas-enable-dvfs2: Enable DVFS2. Configure pins for DVFS2 mode.
36 Selection primary or secondary function associated to GPADC_START
37 and SYSEN2 pin/pad for DVFS2 interface
38
39This binding uses the following generic properties as defined in
40pinctrl-bindings.txt:
41
42Required: pins
43Options: function, bias-disable, bias-pull-up, bias-pull-down,
44 bias-pin-default, drive-open-drain.
45
46Note that many of these properties are only valid for certain specific pins.
47See the Palmas device datasheet for complete details regarding which pins
48support which functionality.
49
50Valid values for pin names are:
51 gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7, gpio8, gpio9,
52 gpio10, gpio11, gpio12, gpio13, gpio14, gpio15, vac, powergood,
53 nreswarm, pwrdown, gpadc_start, reset_in, nsleep, enable1, enable2,
54 int.
55
56Valid value of function names are:
57 gpio, led, pwm, regen, sysen, clk32kgaudio, id, vbus_det, chrg_det,
58 vac, vacok, powergood, usb_psel, msecure, pwrhold, int, nreswarm,
59 simrsto, simrsti, low_vbat, wireless_chrg1, rcm, pwrdown, gpadc_start,
60 reset_in, nsleep, enable.
61
62There are 4 special functions: opt0, opt1, opt2 and opt3. If any of these
63functions is selected then directly pins register will be written with 0, 1, 2
64or 3 respectively if it is valid for that pins or list of pins.
65
66Example:
67 palmas: tps65913 {
68 ....
69 pinctrl {
70 compatible = "ti,tps65913-pinctrl";
71 ti,palmas-enable-dvfs1;
72 pinctrl-names = "default";
73 pinctrl-0 = <&palmas_pins_state>;
74
75 palmas_pins_state: pinmux {
76 gpio0 {
77 pins = "gpio0";
78 function = "id";
79 bias-pull-up;
80 };
81
82 vac {
83 pins = "vac";
84 function = "vacok";
85 bias-pull-down;
86 };
87
88 gpio5 {
89 pins = "gpio5";
90 function = "opt0";
91 drive-open-drain = <1>;
92 };
93 };
94 };
95 ....
96 };
diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
index 36281e7a2a46..257677de3e6b 100644
--- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
@@ -12,6 +12,7 @@ Required Properties:
12 - "samsung,s3c2440-pinctrl": for S3C2440-compatible pin-controller, 12 - "samsung,s3c2440-pinctrl": for S3C2440-compatible pin-controller,
13 - "samsung,s3c2450-pinctrl": for S3C2450-compatible pin-controller, 13 - "samsung,s3c2450-pinctrl": for S3C2450-compatible pin-controller,
14 - "samsung,s3c64xx-pinctrl": for S3C64xx-compatible pin-controller, 14 - "samsung,s3c64xx-pinctrl": for S3C64xx-compatible pin-controller,
15 - "samsung,s5pv210-pinctrl": for S5PV210-compatible pin-controller,
15 - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. 16 - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller.
16 - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. 17 - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller.
17 - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. 18 - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller.
@@ -128,7 +129,7 @@ B. External Wakeup Interrupts: For supporting external wakeup interrupts, a
128 - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller 129 - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller
129 found on Samsung S3C64xx SoCs, 130 found on Samsung S3C64xx SoCs,
130 - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller 131 - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller
131 found on Samsung Exynos4210 SoC. 132 found on Samsung Exynos4210 and S5PC110/S5PV210 SoCs.
132 - interrupt-parent: phandle of the interrupt parent to which the external 133 - interrupt-parent: phandle of the interrupt parent to which the external
133 wakeup interrupts are forwarded to. 134 wakeup interrupts are forwarded to.
134 - interrupts: interrupt used by multiplexed wakeup interrupts. 135 - interrupts: interrupt used by multiplexed wakeup interrupts.
diff --git a/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt
index 9a2f3f420526..6b33b9f18e88 100644
--- a/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt
+++ b/Documentation/devicetree/bindings/pinctrl/ste,nomadik.txt
@@ -1,8 +1,8 @@
1ST Ericsson Nomadik pinmux controller 1ST Ericsson Nomadik pinmux controller
2 2
3Required properties: 3Required properties:
4- compatible: "stericsson,nmk-pinctrl", "stericsson,nmk-pinctrl-db8540", 4- compatible: "stericsson,db8500-pinctrl", "stericsson,db8540-pinctrl",
5 "stericsson,nmk-pinctrl-stn8815" 5 "stericsson,stn8815-pinctrl"
6- reg: Should contain the register physical address and length of the PRCMU. 6- reg: Should contain the register physical address and length of the PRCMU.
7 7
8Please refer to pinctrl-bindings.txt in this directory for details of the 8Please refer to pinctrl-bindings.txt in this directory for details of the
@@ -68,7 +68,7 @@ Optional subnode-properties:
68Example board file extract: 68Example board file extract:
69 69
70 pinctrl@80157000 { 70 pinctrl@80157000 {
71 compatible = "stericsson,nmk-pinctrl"; 71 compatible = "stericsson,db8500-pinctrl";
72 reg = <0x80157000 0x2000>; 72 reg = <0x80157000 0x2000>;
73 73
74 pinctrl-names = "default"; 74 pinctrl-names = "default";
diff --git a/Documentation/devicetree/bindings/power_supply/msm-poweroff.txt b/Documentation/devicetree/bindings/power_supply/msm-poweroff.txt
new file mode 100644
index 000000000000..ce44ad357565
--- /dev/null
+++ b/Documentation/devicetree/bindings/power_supply/msm-poweroff.txt
@@ -0,0 +1,17 @@
1MSM Restart Driver
2
3A power supply hold (ps-hold) bit is set to power the msm chipsets.
4Clearing that bit allows us to restart/poweroff. The difference
5between poweroff and restart is determined by unique power manager IC
6settings.
7
8Required Properties:
9-compatible: "qcom,pshold"
10-reg: Specifies the physical address of the ps-hold register
11
12Example:
13
14 restart@fc4ab000 {
15 compatible = "qcom,pshold";
16 reg = <0xfc4ab000 0x4>;
17 };
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt b/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt
index 5693877ab377..82dd5b65cf48 100644
--- a/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt
+++ b/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt
@@ -1,21 +1,20 @@
1* Freescale MSI interrupt controller 1* Freescale MSI interrupt controller
2 2
3Required properties: 3Required properties:
4- compatible : compatible list, contains 2 entries, 4- compatible : compatible list, may contain one or two entries
5 first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572, 5 The first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572,
6 etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" depending on 6 etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" or
7 the parent type. 7 "fsl,mpic-msi-v4.3" depending on the parent type and version. If mpic
8 version is 4.3, the number of MSI registers is increased to 16, MSIIR1 is
9 provided to access these 16 registers, and compatible "fsl,mpic-msi-v4.3"
10 should be used. The first entry is optional; the second entry is
11 required.
8 12
9- reg : It may contain one or two regions. The first region should contain 13- reg : It may contain one or two regions. The first region should contain
10 the address and the length of the shared message interrupt register set. 14 the address and the length of the shared message interrupt register set.
11 The second region should contain the address of aliased MSIIR register for 15 The second region should contain the address of aliased MSIIR or MSIIR1
12 platforms that have such an alias. 16 register for platforms that have such an alias, if using MSIIR1, the second
13 17 region must be added because different MSI group has different MSIIR1 offset.
14- msi-available-ranges: use <start count> style section to define which
15 msi interrupt can be used in the 256 msi interrupts. This property is
16 optional, without this, all the 256 MSI interrupts can be used.
17 Each available range must begin and end on a multiple of 32 (i.e.
18 no splitting an individual MSI register or the associated PIC interrupt).
19 18
20- interrupts : each one of the interrupts here is one entry per 32 MSIs, 19- interrupts : each one of the interrupts here is one entry per 32 MSIs,
21 and routed to the host interrupt controller. the interrupts should 20 and routed to the host interrupt controller. the interrupts should
@@ -28,6 +27,14 @@ Required properties:
28 to MPIC. 27 to MPIC.
29 28
30Optional properties: 29Optional properties:
30- msi-available-ranges: use <start count> style section to define which
31 msi interrupt can be used in the 256 msi interrupts. This property is
32 optional, without this, all the MSI interrupts can be used.
33 Each available range must begin and end on a multiple of 32 (i.e.
34 no splitting an individual MSI register or the associated PIC interrupt).
35 MPIC v4.3 does not support this property because the 32 interrupts of an
36 individual register are not continuous when using MSIIR1.
37
31- msi-address-64: 64-bit PCI address of the MSIIR register. The MSIIR register 38- msi-address-64: 64-bit PCI address of the MSIIR register. The MSIIR register
32 is used for MSI messaging. The address of MSIIR in PCI address space is 39 is used for MSI messaging. The address of MSIIR in PCI address space is
33 the MSI message address. 40 the MSI message address.
@@ -54,6 +61,28 @@ Example:
54 interrupt-parent = <&mpic>; 61 interrupt-parent = <&mpic>;
55 }; 62 };
56 63
64 msi@41600 {
65 compatible = "fsl,mpic-msi-v4.3";
66 reg = <0x41600 0x200 0x44148 4>;
67 interrupts = <
68 0xe0 0 0 0
69 0xe1 0 0 0
70 0xe2 0 0 0
71 0xe3 0 0 0
72 0xe4 0 0 0
73 0xe5 0 0 0
74 0xe6 0 0 0
75 0xe7 0 0 0
76 0x100 0 0 0
77 0x101 0 0 0
78 0x102 0 0 0
79 0x103 0 0 0
80 0x104 0 0 0
81 0x105 0 0 0
82 0x106 0 0 0
83 0x107 0 0 0>;
84 };
85
57The Freescale hypervisor and msi-address-64 86The Freescale hypervisor and msi-address-64
58------------------------------------------- 87-------------------------------------------
59Normally, PCI devices have access to all of CCSR via an ATMU mapping. The 88Normally, PCI devices have access to all of CCSR via an ATMU mapping. The
diff --git a/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt b/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt
index de0eaed86651..8031148bcf85 100644
--- a/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt
@@ -2,11 +2,9 @@ Atmel TCB PWM controller
2 2
3Required properties: 3Required properties:
4- compatible: should be "atmel,tcb-pwm" 4- compatible: should be "atmel,tcb-pwm"
5- #pwm-cells: Should be 3. The first cell specifies the per-chip index 5- #pwm-cells: should be 3. See pwm.txt in this directory for a description of
6 of the PWM to use, the second cell is the period in nanoseconds and 6 the cells format. The only third cell flag supported by this binding is
7 bit 0 in the third cell is used to encode the polarity of PWM output. 7 PWM_POLARITY_INVERTED.
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. 8- tc-block: The Timer Counter block to use as a PWM chip.
11 9
12Example: 10Example:
diff --git a/Documentation/devicetree/bindings/pwm/imx-pwm.txt b/Documentation/devicetree/bindings/pwm/imx-pwm.txt
index 8522bfbccfd7..b50d7a6d9d7f 100644
--- a/Documentation/devicetree/bindings/pwm/imx-pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/imx-pwm.txt
@@ -3,8 +3,8 @@ Freescale i.MX PWM controller
3Required properties: 3Required properties:
4- compatible: should be "fsl,<soc>-pwm" 4- compatible: should be "fsl,<soc>-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 2. See pwm.txt in this directory for a description of
7 of the PWM to use and the second cell is the period in nanoseconds. 7 the cells format.
8- interrupts: The interrupt for the pwm controller 8- interrupts: The interrupt for the pwm controller
9 9
10Example: 10Example:
diff --git a/Documentation/devicetree/bindings/pwm/mxs-pwm.txt b/Documentation/devicetree/bindings/pwm/mxs-pwm.txt
index 9e3f8f1d46a2..96cdde5f6208 100644
--- a/Documentation/devicetree/bindings/pwm/mxs-pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/mxs-pwm.txt
@@ -3,8 +3,8 @@ Freescale MXS PWM controller
3Required properties: 3Required properties:
4- compatible: should be "fsl,imx23-pwm" 4- compatible: should be "fsl,imx23-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 2. See pwm.txt in this directory for a description of
7 of the PWM to use and the second cell is the period in nanoseconds. 7 the cells format.
8- fsl,pwm-number: the number of PWM devices 8- fsl,pwm-number: the number of PWM devices
9 9
10Example: 10Example:
diff --git a/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt b/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt
index 01438ecd6628..c3fc57af8772 100644
--- a/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt
@@ -5,9 +5,8 @@ Required properties:
5 - "nvidia,tegra20-pwm" 5 - "nvidia,tegra20-pwm"
6 - "nvidia,tegra30-pwm" 6 - "nvidia,tegra30-pwm"
7- reg: physical base address and length of the controller's registers 7- reg: physical base address and length of the controller's registers
8- #pwm-cells: On Tegra the number of cells used to specify a PWM is 2. The 8- #pwm-cells: should be 2. See pwm.txt in this directory for a description of
9 first cell specifies the per-chip index of the PWM to use and the second 9 the cells format.
10 cell is the period in nanoseconds.
11 10
12Example: 11Example:
13 12
diff --git a/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt b/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt
index 1e3dfe7a4894..f84ec9d291ea 100644
--- a/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/nxp,pca9685-pwm.txt
@@ -3,8 +3,8 @@ NXP PCA9685 16-channel 12-bit PWM LED controller
3 3
4Required properties: 4Required properties:
5 - compatible: "nxp,pca9685-pwm" 5 - compatible: "nxp,pca9685-pwm"
6 - #pwm-cells: should be 2. The first cell specifies the per-chip index 6 - #pwm-cells: Should be 2. See pwm.txt in this directory for a description of
7 of the PWM to use and the second cell is the period in nanoseconds. 7 the cells format.
8 The index 16 is the ALLCALL channel, that sets all PWM channels at the same 8 The index 16 is the ALLCALL channel, that sets all PWM channels at the same
9 time. 9 time.
10 10
diff --git a/Documentation/devicetree/bindings/pwm/pwm-samsung.txt b/Documentation/devicetree/bindings/pwm/pwm-samsung.txt
index ac67c687a327..d61fccd40bad 100644
--- a/Documentation/devicetree/bindings/pwm/pwm-samsung.txt
+++ b/Documentation/devicetree/bindings/pwm/pwm-samsung.txt
@@ -19,13 +19,19 @@ Required properties:
19- reg: base address and size of register area 19- reg: base address and size of register area
20- interrupts: list of timer interrupts (one interrupt per timer, starting at 20- interrupts: list of timer interrupts (one interrupt per timer, starting at
21 timer 0) 21 timer 0)
22- #pwm-cells: number of cells used for PWM specifier - must be 3 22- clock-names: should contain all following required clock names:
23 the specifier format is as follows: 23 - "timers" - PWM base clock used to generate PWM signals,
24 - phandle to PWM controller node 24 and any subset of following optional clock names:
25 - index of PWM channel (from 0 to 4) 25 - "pwm-tclk0" - first external PWM clock source,
26 - PWM signal period in nanoseconds 26 - "pwm-tclk1" - second external PWM clock source.
27 - bitmask of optional PWM flags: 27 Note that not all IP variants allow using all external clock sources.
28 0x1 - invert PWM signal 28 Refer to SoC documentation to learn which clock source configurations
29 are available.
30- clocks: should contain clock specifiers of all clocks, which input names
31 have been specified in clock-names property, in same order.
32- #pwm-cells: should be 3. See pwm.txt in this directory for a description of
33 the cells format. The only third cell flag supported by this binding is
34 PWM_POLARITY_INVERTED.
29 35
30Optional properties: 36Optional properties:
31- samsung,pwm-outputs: list of PWM channels used as PWM outputs on particular 37- samsung,pwm-outputs: list of PWM channels used as PWM outputs on particular
@@ -38,6 +44,8 @@ Example:
38 reg = <0x7f006000 0x1000>; 44 reg = <0x7f006000 0x1000>;
39 interrupt-parent = <&vic0>; 45 interrupt-parent = <&vic0>;
40 interrupts = <23>, <24>, <25>, <27>, <28>; 46 interrupts = <23>, <24>, <25>, <27>, <28>;
47 clocks = <&clock 67>;
48 clock-names = "timers";
41 samsung,pwm-outputs = <0>, <1>; 49 samsung,pwm-outputs = <0>, <1>;
42 #pwm-cells = <3>; 50 #pwm-cells = <3>;
43 } 51 }
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt
index 681afad73778..fb81179dce37 100644
--- a/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt
+++ b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt
@@ -4,11 +4,9 @@ Required properties:
4- compatible: Must be "ti,<soc>-ecap". 4- compatible: Must be "ti,<soc>-ecap".
5 for am33xx - compatible = "ti,am33xx-ecap"; 5 for am33xx - compatible = "ti,am33xx-ecap";
6 for da850 - compatible = "ti,da850-ecap", "ti,am33xx-ecap"; 6 for da850 - compatible = "ti,da850-ecap", "ti,am33xx-ecap";
7- #pwm-cells: Should be 3. Number of cells being used to specify PWM property. 7- #pwm-cells: should be 3. See pwm.txt in this directory for a description of
8 First cell specifies the per-chip index of the PWM to use, the second 8 the cells format. The PWM channel index ranges from 0 to 4. The only third
9 cell is the period in nanoseconds and bit 0 in the third cell is used to 9 cell flag supported by this binding is PWM_POLARITY_INVERTED.
10 encode the polarity of PWM output. Set bit 0 of the third in PWM specifier
11 to 1 for inverse polarity & set to 0 for normal polarity.
12- reg: physical base address and size of the registers map. 10- reg: physical base address and size of the registers map.
13 11
14Optional properties: 12Optional properties:
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
index 337c6fc65d3f..9c100b2c5b23 100644
--- a/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
+++ b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
@@ -4,11 +4,9 @@ Required properties:
4- compatible: Must be "ti,<soc>-ehrpwm". 4- compatible: Must be "ti,<soc>-ehrpwm".
5 for am33xx - compatible = "ti,am33xx-ehrpwm"; 5 for am33xx - compatible = "ti,am33xx-ehrpwm";
6 for da850 - compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; 6 for da850 - compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm";
7- #pwm-cells: Should be 3. Number of cells being used to specify PWM property. 7- #pwm-cells: should be 3. See pwm.txt in this directory for a description of
8 First cell specifies the per-chip index of the PWM to use, the second 8 the cells format. The only third cell flag supported by this binding is
9 cell is the period in nanoseconds and bit 0 in the third cell is used to 9 PWM_POLARITY_INVERTED.
10 encode the polarity of PWM output. Set bit 0 of the third in PWM specifier
11 to 1 for inverse polarity & set to 0 for normal polarity.
12- reg: physical base address and size of the registers map. 10- reg: physical base address and size of the registers map.
13 11
14Optional properties: 12Optional properties:
diff --git a/Documentation/devicetree/bindings/pwm/pwm.txt b/Documentation/devicetree/bindings/pwm/pwm.txt
index 06e67247859a..8556263b8502 100644
--- a/Documentation/devicetree/bindings/pwm/pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/pwm.txt
@@ -43,13 +43,14 @@ because the name "backlight" would be used as fallback anyway.
43pwm-specifier typically encodes the chip-relative PWM number and the PWM 43pwm-specifier typically encodes the chip-relative PWM number and the PWM
44period in nanoseconds. 44period in nanoseconds.
45 45
46Optionally, the pwm-specifier can encode a number of flags in a third cell: 46Optionally, the pwm-specifier can encode a number of flags (defined in
47- bit 0: PWM signal polarity (0: normal polarity, 1: inverse polarity) 47<dt-bindings/pwm/pwm.h>) in a third cell:
48- PWM_POLARITY_INVERTED: invert the PWM signal polarity
48 49
49Example with optional PWM specifier for inverse polarity 50Example with optional PWM specifier for inverse polarity
50 51
51 bl: backlight { 52 bl: backlight {
52 pwms = <&pwm 0 5000000 1>; 53 pwms = <&pwm 0 5000000 PWM_POLARITY_INVERTED>;
53 pwm-names = "backlight"; 54 pwm-names = "backlight";
54 }; 55 };
55 56
diff --git a/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt
new file mode 100644
index 000000000000..b067e84a94b5
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt
@@ -0,0 +1,28 @@
1* Renesas R-Car Timer Pulse Unit PWM Controller
2
3Required Properties:
4
5 - compatible: should be one of the following.
6 - "renesas,tpu-r8a73a4": for R8A77A4 (R-Mobile APE6) compatible PWM controller.
7 - "renesas,tpu-r8a7740": for R8A7740 (R-Mobile A1) compatible PWM controller.
8 - "renesas,tpu-r8a7790": for R8A7790 (R-Car H2) compatible PWM controller.
9 - "renesas,tpu-sh7372": for SH7372 (SH-Mobile AP4) compatible PWM controller.
10 - "renesas,tpu": for generic R-Car TPU PWM controller.
11
12 - reg: Base address and length of each memory resource used by the PWM
13 controller hardware module.
14
15 - #pwm-cells: should be 3. See pwm.txt in this directory for a description of
16 the cells format. The only third cell flag supported by this binding is
17 PWM_POLARITY_INVERTED.
18
19Please refer to pwm.txt in this directory for details of the common PWM bindings
20used by client devices.
21
22Example: R8A7740 (R-Car A1) TPU controller node
23
24 tpu: pwm@e6600000 {
25 compatible = "renesas,tpu-r8a7740", "renesas,tpu";
26 reg = <0xe6600000 0x100>;
27 #pwm-cells = <3>;
28 };
diff --git a/Documentation/devicetree/bindings/pwm/spear-pwm.txt b/Documentation/devicetree/bindings/pwm/spear-pwm.txt
index 3ac779d83386..b486de2c3fe3 100644
--- a/Documentation/devicetree/bindings/pwm/spear-pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/spear-pwm.txt
@@ -5,9 +5,8 @@ Required properties:
5 - "st,spear320-pwm" 5 - "st,spear320-pwm"
6 - "st,spear1340-pwm" 6 - "st,spear1340-pwm"
7- reg: physical base address and length of the controller's registers 7- reg: physical base address and length of the controller's registers
8- #pwm-cells: number of cells used to specify PWM which is fixed to 2 on 8- #pwm-cells: should be 2. See pwm.txt in this directory for a description of
9 SPEAr. The first cell specifies the per-chip index of the PWM to use and 9 the cells format.
10 the second cell is the period in nanoseconds.
11 10
12Example: 11Example:
13 12
diff --git a/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt b/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt
index 2943ee5fce00..4e32bee11201 100644
--- a/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt
@@ -6,8 +6,8 @@ On TWL6030 series: PWM0 and PWM1
6 6
7Required properties: 7Required properties:
8- compatible: "ti,twl4030-pwm" or "ti,twl6030-pwm" 8- compatible: "ti,twl4030-pwm" or "ti,twl6030-pwm"
9- #pwm-cells: should be 2. The first cell specifies the per-chip index 9- #pwm-cells: should be 2. See pwm.txt in this directory for a description of
10 of the PWM to use and the second cell is the period in nanoseconds. 10 the cells format.
11 11
12Example: 12Example:
13 13
diff --git a/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt b/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt
index cb64f3acc10f..9f4b46090782 100644
--- a/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt
+++ b/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt
@@ -6,8 +6,8 @@ On TWL6030 series: LED PWM (mainly used as charging indicator LED)
6 6
7Required properties: 7Required properties:
8- compatible: "ti,twl4030-pwmled" or "ti,twl6030-pwmled" 8- compatible: "ti,twl4030-pwmled" or "ti,twl6030-pwmled"
9- #pwm-cells: should be 2. The first cell specifies the per-chip index 9- #pwm-cells: should be 2. See pwm.txt in this directory for a description of
10 of the PWM to use and the second cell is the period in nanoseconds. 10 the cells format.
11 11
12Example: 12Example:
13 13
diff --git a/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt
index d21d82d29855..a76390e6df2e 100644
--- a/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt
+++ b/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt
@@ -3,11 +3,9 @@ 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 3. Number of cells being used to specify PWM property. 6- #pwm-cells: should be 3. See pwm.txt in this directory for a description of
7 First cell specifies the per-chip index of the PWM to use, the second 7 the cells format. The only third cell flag supported by this binding is
8 cell is the period in nanoseconds and bit 0 in the third cell is used to 8 PWM_POLARITY_INVERTED.
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.
11- clocks: phandle to the PWM source clock 9- clocks: phandle to the PWM source clock
12 10
13Example: 11Example:
diff --git a/Documentation/devicetree/bindings/regulator/88pm800.txt b/Documentation/devicetree/bindings/regulator/88pm800.txt
new file mode 100644
index 000000000000..e8a54c2a5821
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/88pm800.txt
@@ -0,0 +1,38 @@
1Marvell 88PM800 regulator
2
3Required properties:
4- compatible: "marvell,88pm800"
5- reg: I2C slave address
6- regulators: A node that houses a sub-node for each regulator within the
7 device. Each sub-node is identified using the node's name (or the deprecated
8 regulator-compatible property if present), with valid values listed below.
9 The content of each sub-node is defined by the standard binding for
10 regulators; see regulator.txt.
11
12The valid names for regulators are:
13
14 buck1, buck2, buck3, buck4, buck5, ldo1, ldo2, ldo3, ldo4, ldo5, ldo6, ldo7,
15 ldo8, ldo9, ldo10, ldo11, ldo12, ldo13, ldo14, ldo15, ldo16, ldo17, ldo18, ldo19
16
17Example:
18
19 pmic: 88pm800@31 {
20 compatible = "marvell,88pm800";
21 reg = <0x31>;
22
23 regulators {
24 buck1 {
25 regulator-min-microvolt = <600000>;
26 regulator-max-microvolt = <3950000>;
27 regulator-boot-on;
28 regulator-always-on;
29 };
30 ldo1 {
31 regulator-min-microvolt = <600000>;
32 regulator-max-microvolt = <15000000>;
33 regulator-boot-on;
34 regulator-always-on;
35 };
36...
37 };
38 };
diff --git a/Documentation/devicetree/bindings/regulator/max8660.txt b/Documentation/devicetree/bindings/regulator/max8660.txt
new file mode 100644
index 000000000000..8ba994d8a142
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/max8660.txt
@@ -0,0 +1,47 @@
1Maxim MAX8660 voltage regulator
2
3Required properties:
4- compatible: must be one of "maxim,max8660", "maxim,max8661"
5- reg: I2C slave address, usually 0x34
6- any required generic properties defined in regulator.txt
7
8Example:
9
10 i2c_master {
11 max8660@34 {
12 compatible = "maxim,max8660";
13 reg = <0x34>;
14
15 regulators {
16 regulator@0 {
17 regulator-compatible= "V3(DCDC)";
18 regulator-min-microvolt = <725000>;
19 regulator-max-microvolt = <1800000>;
20 };
21
22 regulator@1 {
23 regulator-compatible= "V4(DCDC)";
24 regulator-min-microvolt = <725000>;
25 regulator-max-microvolt = <1800000>;
26 };
27
28 regulator@2 {
29 regulator-compatible= "V5(LDO)";
30 regulator-min-microvolt = <1700000>;
31 regulator-max-microvolt = <2000000>;
32 };
33
34 regulator@3 {
35 regulator-compatible= "V6(LDO)";
36 regulator-min-microvolt = <1800000>;
37 regulator-max-microvolt = <3300000>;
38 };
39
40 regulator@4 {
41 regulator-compatible= "V7(LDO)";
42 regulator-min-microvolt = <1800000>;
43 regulator-max-microvolt = <3300000>;
44 };
45 };
46 };
47 };
diff --git a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt
index 30b0581bb1ce..875639ae0606 100644
--- a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt
+++ b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt
@@ -25,8 +25,8 @@ Optional nodes:
25 Additional custom properties are listed below. 25 Additional custom properties are listed below.
26 26
27 For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP, 27 For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP,
28 smps45, smps457, smps7 depending on variant, smps6, smps[8-10], 28 smps45, smps457, smps7 depending on variant, smps6, smps[8-9],
29 ldo[1-9], ldoln, ldousb. 29 smps10_out2, smps10_out1, do[1-9], ldoln, ldousb.
30 30
31 Optional sub-node properties: 31 Optional sub-node properties:
32 ti,warm-reset - maintain voltage during warm reset(boolean) 32 ti,warm-reset - maintain voltage during warm reset(boolean)
@@ -36,6 +36,9 @@ Optional nodes:
36 ti,smps-range - OTP has the wrong range set for the hardware so override 36 ti,smps-range - OTP has the wrong range set for the hardware so override
37 0 - low range, 1 - high range. 37 0 - low range, 1 - high range.
38 38
39- ti,system-power-controller: Telling whether or not this pmic is controlling
40 the system power.
41
39Example: 42Example:
40 43
41#include <dt-bindings/interrupt-controller/irq.h> 44#include <dt-bindings/interrupt-controller/irq.h>
@@ -48,6 +51,8 @@ pmic {
48 51
49 ti,ldo6-vibrator; 52 ti,ldo6-vibrator;
50 53
54 ti,system-power-controller;
55
51 regulators { 56 regulators {
52 smps12_reg : smps12 { 57 smps12_reg : smps12 {
53 regulator-name = "smps12"; 58 regulator-name = "smps12";
diff --git a/Documentation/devicetree/bindings/regulator/pfuze100.txt b/Documentation/devicetree/bindings/regulator/pfuze100.txt
new file mode 100644
index 000000000000..fc989b2e8057
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/pfuze100.txt
@@ -0,0 +1,115 @@
1PFUZE100 family of regulators
2
3Required properties:
4- compatible: "fsl,pfuze100"
5- reg: I2C slave address
6
7Required child node:
8- regulators: This is the list of child nodes that specify the regulator
9 initialization data for defined regulators. Please refer to below doc
10 Documentation/devicetree/bindings/regulator/regulator.txt.
11
12 The valid names for regulators are:
13 sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6
14
15Each regulator is defined using the standard binding for regulators.
16
17Example:
18
19 pmic: pfuze100@08 {
20 compatible = "fsl,pfuze100";
21 reg = <0x08>;
22
23 regulators {
24 sw1a_reg: sw1ab {
25 regulator-min-microvolt = <300000>;
26 regulator-max-microvolt = <1875000>;
27 regulator-boot-on;
28 regulator-always-on;
29 regulator-ramp-delay = <6250>;
30 };
31
32 sw1c_reg: sw1c {
33 regulator-min-microvolt = <300000>;
34 regulator-max-microvolt = <1875000>;
35 regulator-boot-on;
36 regulator-always-on;
37 };
38
39 sw2_reg: sw2 {
40 regulator-min-microvolt = <800000>;
41 regulator-max-microvolt = <3300000>;
42 regulator-boot-on;
43 regulator-always-on;
44 };
45
46 sw3a_reg: sw3a {
47 regulator-min-microvolt = <400000>;
48 regulator-max-microvolt = <1975000>;
49 regulator-boot-on;
50 regulator-always-on;
51 };
52
53 sw3b_reg: sw3b {
54 regulator-min-microvolt = <400000>;
55 regulator-max-microvolt = <1975000>;
56 regulator-boot-on;
57 regulator-always-on;
58 };
59
60 sw4_reg: sw4 {
61 regulator-min-microvolt = <800000>;
62 regulator-max-microvolt = <3300000>;
63 };
64
65 swbst_reg: swbst {
66 regulator-min-microvolt = <5000000>;
67 regulator-max-microvolt = <5150000>;
68 };
69
70 snvs_reg: vsnvs {
71 regulator-min-microvolt = <1000000>;
72 regulator-max-microvolt = <3000000>;
73 regulator-boot-on;
74 regulator-always-on;
75 };
76
77 vref_reg: vrefddr {
78 regulator-boot-on;
79 regulator-always-on;
80 };
81
82 vgen1_reg: vgen1 {
83 regulator-min-microvolt = <800000>;
84 regulator-max-microvolt = <1550000>;
85 };
86
87 vgen2_reg: vgen2 {
88 regulator-min-microvolt = <800000>;
89 regulator-max-microvolt = <1550000>;
90 };
91
92 vgen3_reg: vgen3 {
93 regulator-min-microvolt = <1800000>;
94 regulator-max-microvolt = <3300000>;
95 };
96
97 vgen4_reg: vgen4 {
98 regulator-min-microvolt = <1800000>;
99 regulator-max-microvolt = <3300000>;
100 regulator-always-on;
101 };
102
103 vgen5_reg: vgen5 {
104 regulator-min-microvolt = <1800000>;
105 regulator-max-microvolt = <3300000>;
106 regulator-always-on;
107 };
108
109 vgen6_reg: vgen6 {
110 regulator-min-microvolt = <1800000>;
111 regulator-max-microvolt = <3300000>;
112 regulator-always-on;
113 };
114 };
115 };
diff --git a/Documentation/devicetree/bindings/regulator/regulator.txt b/Documentation/devicetree/bindings/regulator/regulator.txt
index 48a3b8e5d6bd..2bd8f0978765 100644
--- a/Documentation/devicetree/bindings/regulator/regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/regulator.txt
@@ -12,6 +12,8 @@ Optional properties:
12- regulator-allow-bypass: allow the regulator to go into bypass mode 12- regulator-allow-bypass: allow the regulator to go into bypass mode
13- <name>-supply: phandle to the parent supply/regulator node 13- <name>-supply: phandle to the parent supply/regulator node
14- regulator-ramp-delay: ramp delay for regulator(in uV/uS) 14- regulator-ramp-delay: ramp delay for regulator(in uV/uS)
15 For hardwares which support disabling ramp rate, it should be explicitly
16 intialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay.
15 17
16Deprecated properties: 18Deprecated properties:
17- regulator-compatible: If a regulator chip contains multiple 19- regulator-compatible: If a regulator chip contains multiple
diff --git a/Documentation/devicetree/bindings/rtc/dw-apb.txt b/Documentation/devicetree/bindings/rtc/dw-apb.txt
index eb2327b2bdb3..c703d51abb6c 100644
--- a/Documentation/devicetree/bindings/rtc/dw-apb.txt
+++ b/Documentation/devicetree/bindings/rtc/dw-apb.txt
@@ -1,7 +1,10 @@
1* Designware APB timer 1* Designware APB timer
2 2
3Required properties: 3Required properties:
4- compatible: "snps,dw-apb-timer-sp" or "snps,dw-apb-timer-osc" 4- compatible: One of:
5 "snps,dw-apb-timer"
6 "snps,dw-apb-timer-sp" <DEPRECATED>
7 "snps,dw-apb-timer-osc" <DEPRECATED>
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: IRQ line for the timer. 10- interrupts: IRQ line for the timer.
@@ -20,25 +23,10 @@ systems may use one.
20 23
21 24
22Example: 25Example:
23 26 timer@ffe00000 {
24 timer1: timer@ffc09000 { 27 compatible = "snps,dw-apb-timer";
25 compatible = "snps,dw-apb-timer-sp"; 28 interrupts = <0 170 4>;
26 interrupts = <0 168 4>; 29 reg = <0xffe00000 0x1000>;
27 clock-frequency = <200000000>; 30 clocks = <&timer_clk>, <&timer_pclk>;
28 reg = <0xffc09000 0x1000>; 31 clock-names = "timer", "pclk";
29 }; 32 };
30
31 timer2: timer@ffd00000 {
32 compatible = "snps,dw-apb-timer-osc";
33 interrupts = <0 169 4>;
34 clock-frequency = <200000000>;
35 reg = <0xffd00000 0x1000>;
36 };
37
38 timer3: timer@ffe00000 {
39 compatible = "snps,dw-apb-timer-osc";
40 interrupts = <0 170 4>;
41 reg = <0xffe00000 0x1000>;
42 clocks = <&timer_clk>, <&timer_pclk>;
43 clock-names = "timer", "pclk";
44 };
diff --git a/Documentation/devicetree/bindings/rtc/moxa,moxart-rtc.txt b/Documentation/devicetree/bindings/rtc/moxa,moxart-rtc.txt
new file mode 100644
index 000000000000..c9d3ac1477fe
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/moxa,moxart-rtc.txt
@@ -0,0 +1,17 @@
1MOXA ART real-time clock
2
3Required properties:
4
5- compatible : Should be "moxa,moxart-rtc"
6- gpio-rtc-sclk : RTC sclk gpio, with zero flags
7- gpio-rtc-data : RTC data gpio, with zero flags
8- gpio-rtc-reset : RTC reset gpio, with zero flags
9
10Example:
11
12 rtc: rtc {
13 compatible = "moxa,moxart-rtc";
14 gpio-rtc-sclk = <&gpio 5 0>;
15 gpio-rtc-data = <&gpio 6 0>;
16 gpio-rtc-reset = <&gpio 7 0>;
17 };
diff --git a/Documentation/devicetree/bindings/rtc/rtc-omap.txt b/Documentation/devicetree/bindings/rtc/rtc-omap.txt
index b47aa415c820..5a0f02d34d95 100644
--- a/Documentation/devicetree/bindings/rtc/rtc-omap.txt
+++ b/Documentation/devicetree/bindings/rtc/rtc-omap.txt
@@ -1,7 +1,11 @@
1TI Real Time Clock 1TI Real Time Clock
2 2
3Required properties: 3Required properties:
4- compatible: "ti,da830-rtc" 4- compatible:
5 - "ti,da830-rtc" - for RTC IP used similar to that on DA8xx SoC family.
6 - "ti,am3352-rtc" - for RTC IP used similar to that on AM335x SoC family.
7 This RTC IP has special WAKE-EN Register to enable
8 Wakeup generation for event Alarm.
5- reg: Address range of rtc register set 9- reg: Address range of rtc register set
6- interrupts: rtc timer, alarm interrupts in order 10- interrupts: rtc timer, alarm interrupts in order
7- interrupt-parent: phandle for the interrupt controller 11- interrupt-parent: phandle for the interrupt controller
diff --git a/Documentation/devicetree/bindings/rtc/rtc-palmas.txt b/Documentation/devicetree/bindings/rtc/rtc-palmas.txt
new file mode 100644
index 000000000000..adbccc0a51e1
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/rtc-palmas.txt
@@ -0,0 +1,33 @@
1Palmas RTC controller bindings
2
3Required properties:
4- compatible:
5 - "ti,palmas-rtc" for palma series of the RTC controller
6- interrupt-parent: Parent interrupt device, must be handle of palmas node.
7- interrupts: Interrupt number of RTC submodule on device.
8
9Optional properties:
10
11- ti,backup-battery-chargeable: The Palmas series device like TPS65913 or
12 TPS80036 supports the backup battery for powering the RTC when main
13 battery is removed or in very low power state. The backup battery
14 can be chargeable or non-chargeable. This flag will tells whether
15 battery is chargeable or not. If charging battery then driver can
16 enable the charging.
17- ti,backup-battery-charge-high-current: Enable high current charging in
18 backup battery. Device supports the < 100mA and > 100mA charging.
19 The high current will be > 100mA. Absence of this property will
20 charge battery to lower current i.e. < 100mA.
21
22Example:
23 palmas: tps65913@58 {
24 ...
25 palmas_rtc: rtc {
26 compatible = "ti,palmas-rtc";
27 interrupt-parent = <&palmas>;
28 interrupts = <8 0>;
29 ti,backup-battery-chargeable;
30 ti,backup-battery-charge-high-current;
31 };
32 ...
33 };
diff --git a/Documentation/devicetree/bindings/serial/altera_jtaguart.txt b/Documentation/devicetree/bindings/serial/altera_jtaguart.txt
index c152f65f9a28..55a901051e8f 100644
--- a/Documentation/devicetree/bindings/serial/altera_jtaguart.txt
+++ b/Documentation/devicetree/bindings/serial/altera_jtaguart.txt
@@ -1,4 +1,5 @@
1Altera JTAG UART 1Altera JTAG UART
2 2
3Required properties: 3Required properties:
4- compatible : should be "ALTR,juart-1.0" 4- compatible : should be "ALTR,juart-1.0" <DEPRECATED>
5- compatible : should be "altr,juart-1.0"
diff --git a/Documentation/devicetree/bindings/serial/altera_uart.txt b/Documentation/devicetree/bindings/serial/altera_uart.txt
index 71cae3f70100..81bf7ffb1a81 100644
--- a/Documentation/devicetree/bindings/serial/altera_uart.txt
+++ b/Documentation/devicetree/bindings/serial/altera_uart.txt
@@ -1,7 +1,8 @@
1Altera UART 1Altera UART
2 2
3Required properties: 3Required properties:
4- compatible : should be "ALTR,uart-1.0" 4- compatible : should be "ALTR,uart-1.0" <DEPRECATED>
5- compatible : should be "altr,uart-1.0"
5 6
6Optional properties: 7Optional properties:
7- clock-frequency : frequency of the clock input to the UART 8- clock-frequency : frequency of the clock input to the UART
diff --git a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt b/Documentation/devicetree/bindings/serial/arc-uart.txt
index 5cae2eb686f8..5cae2eb686f8 100644
--- a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt
+++ b/Documentation/devicetree/bindings/serial/arc-uart.txt
diff --git a/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt b/Documentation/devicetree/bindings/serial/atmel-usart.txt
index a49d9a1d4ccf..2191dcb9f1da 100644
--- a/Documentation/devicetree/bindings/tty/serial/atmel-usart.txt
+++ b/Documentation/devicetree/bindings/serial/atmel-usart.txt
@@ -10,13 +10,18 @@ Required properties:
10Optional properties: 10Optional properties:
11- atmel,use-dma-rx: use of PDC or DMA for receiving data 11- atmel,use-dma-rx: use of PDC or DMA for receiving data
12- atmel,use-dma-tx: use of PDC or DMA for transmitting data 12- atmel,use-dma-tx: use of PDC or DMA for transmitting data
13- add dma bindings for dma transfer:
14 - dmas: DMA specifier, consisting of a phandle to DMA controller node,
15 memory peripheral interface and USART DMA channel ID, FIFO configuration.
16 Refer to dma.txt and atmel-dma.txt for details.
17 - dma-names: "rx" for RX channel, "tx" for TX channel.
13 18
14<chip> compatible description: 19<chip> compatible description:
15- at91rm9200: legacy USART support 20- at91rm9200: legacy USART support
16- at91sam9260: generic USART implementation for SAM9 SoCs 21- at91sam9260: generic USART implementation for SAM9 SoCs
17 22
18Example: 23Example:
19 24- use PDC:
20 usart0: serial@fff8c000 { 25 usart0: serial@fff8c000 {
21 compatible = "atmel,at91sam9260-usart"; 26 compatible = "atmel,at91sam9260-usart";
22 reg = <0xfff8c000 0x4000>; 27 reg = <0xfff8c000 0x4000>;
@@ -25,3 +30,14 @@ Example:
25 atmel,use-dma-tx; 30 atmel,use-dma-tx;
26 }; 31 };
27 32
33- use DMA:
34 usart0: serial@f001c000 {
35 compatible = "atmel,at91sam9260-usart";
36 reg = <0xf001c000 0x100>;
37 interrupts = <12 4 5>;
38 atmel,use-dma-rx;
39 atmel,use-dma-tx;
40 dmas = <&dma0 2 0x3>,
41 <&dma0 2 0x204>;
42 dma-names = "tx", "rx";
43 };
diff --git a/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt b/Documentation/devicetree/bindings/serial/efm32-uart.txt
index 8e080b893b49..8e080b893b49 100644
--- a/Documentation/devicetree/bindings/tty/serial/efm32-uart.txt
+++ b/Documentation/devicetree/bindings/serial/efm32-uart.txt
diff --git a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt
index c58573b5b1a4..35ae1fb3537f 100644
--- a/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt
+++ b/Documentation/devicetree/bindings/serial/fsl-imx-uart.txt
@@ -1,35 +1,29 @@
1* Freescale i.MX UART controller 1* Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART)
2 2
3Required properties: 3Required properties:
4- compatible : should be "fsl,imx21-uart" 4- compatible : Should be "fsl,<soc>-uart"
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 UART interrupt number 6- interrupts : Should contain uart interrupt
7 7
8Optional properties: 8Optional properties:
9- fsl,uart-has-rtscts: indicate that RTS/CTS signals are used 9- fsl,uart-has-rtscts : Indicate the uart has rts and cts
10- fsl,irda-mode : Indicate the uart supports irda mode
11- fsl,dte-mode : Indicate the uart works in DTE mode. The uart works
12 is DCE mode by default.
10 13
11Note: Each uart controller should have an alias correctly numbered 14Note: Each uart controller should have an alias correctly numbered
12in "aliases" node. 15in "aliases" node.
13 16
14Example: 17Example:
15 18
16- From imx51.dtsi:
17aliases { 19aliases {
18 serial0 = &uart1; 20 serial0 = &uart1;
19 serial1 = &uart2;
20 serial2 = &uart3;
21}; 21};
22 22
23uart1: serial@73fbc000 { 23uart1: serial@73fbc000 {
24 compatible = "fsl,imx51-uart", "fsl,imx21-uart"; 24 compatible = "fsl,imx51-uart", "fsl,imx21-uart";
25 reg = <0x73fbc000 0x4000>; 25 reg = <0x73fbc000 0x4000>;
26 interrupts = <31>; 26 interrupts = <31>;
27 status = "disabled";
28}
29
30- From imx51-babbage.dts:
31uart1: serial@73fbc000 {
32 fsl,uart-has-rtscts; 27 fsl,uart-has-rtscts;
33 status = "okay"; 28 fsl,dte-mode;
34}; 29};
35
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt
index 6fd1dd1638dd..6fd1dd1638dd 100644
--- a/Documentation/devicetree/bindings/tty/serial/fsl-lpuart.txt
+++ b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/serial/fsl-mxs-auart.txt
index 2c00ec64628e..59a40f18d551 100644
--- a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
+++ b/Documentation/devicetree/bindings/serial/fsl-mxs-auart.txt
@@ -10,6 +10,10 @@ Required properties:
10 Refer to dma.txt and fsl-mxs-dma.txt for details. 10 Refer to dma.txt and fsl-mxs-dma.txt for details.
11- dma-names: "rx" for RX channel, "tx" for TX channel. 11- dma-names: "rx" for RX channel, "tx" for TX channel.
12 12
13Optional properties:
14- fsl,uart-has-rtscts : Indicate the UART has RTS and CTS lines,
15 it also means you enable the DMA support for this UART.
16
13Example: 17Example:
14auart0: serial@8006a000 { 18auart0: serial@8006a000 {
15 compatible = "fsl,imx28-auart", "fsl,imx23-auart"; 19 compatible = "fsl,imx28-auart", "fsl,imx23-auart";
diff --git a/Documentation/devicetree/bindings/serial/mrvl,pxa-ssp.txt b/Documentation/devicetree/bindings/serial/mrvl,pxa-ssp.txt
new file mode 100644
index 000000000000..669b8140dd79
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/mrvl,pxa-ssp.txt
@@ -0,0 +1,65 @@
1Device tree bindings for Marvell PXA SSP ports
2
3Required properties:
4
5 - compatible: Must be one of
6 mrvl,pxa25x-ssp
7 mvrl,pxa25x-nssp
8 mrvl,pxa27x-ssp
9 mrvl,pxa3xx-ssp
10 mvrl,pxa168-ssp
11 mrvl,pxa910-ssp
12 mrvl,ce4100-ssp
13 mrvl,lpss-ssp
14
15 - reg: The memory base
16 - dmas: Two dma phandles, one for rx, one for tx
17 - dma-names: Must be "rx", "tx"
18
19
20Example for PXA3xx:
21
22 ssp0: ssp@41000000 {
23 compatible = "mrvl,pxa3xx-ssp";
24 reg = <0x41000000 0x40>;
25 ssp-id = <1>;
26 interrupts = <24>;
27 clock-names = "pxa27x-ssp.0";
28 dmas = <&dma 13
29 &dma 14>;
30 dma-names = "rx", "tx";
31 };
32
33 ssp1: ssp@41700000 {
34 compatible = "mrvl,pxa3xx-ssp";
35 reg = <0x41700000 0x40>;
36 ssp-id = <2>;
37 interrupts = <16>;
38 clock-names = "pxa27x-ssp.1";
39 dmas = <&dma 15
40 &dma 16>;
41 dma-names = "rx", "tx";
42 };
43
44 ssp2: ssp@41900000 {
45 compatibl3 = "mrvl,pxa3xx-ssp";
46 reg = <0x41900000 0x40>;
47 ssp-id = <3>;
48 interrupts = <0>;
49 clock-names = "pxa27x-ssp.2";
50 dmas = <&dma 66
51 &dma 67>;
52 dma-names = "rx", "tx";
53 };
54
55 ssp3: ssp@41a00000 {
56 compatible = "mrvl,pxa3xx-ssp";
57 reg = <0x41a00000 0x40>;
58 ssp-id = <4>;
59 interrupts = <13>;
60 clock-names = "pxa27x-ssp.3";
61 dmas = <&dma 2
62 &dma 3>;
63 dma-names = "rx", "tx";
64 };
65
diff --git a/Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt b/Documentation/devicetree/bindings/serial/nxp-lpc32xx-hsuart.txt
index 0d439dfc1aa5..0d439dfc1aa5 100644
--- a/Documentation/devicetree/bindings/tty/serial/nxp-lpc32xx-hsuart.txt
+++ b/Documentation/devicetree/bindings/serial/nxp-lpc32xx-hsuart.txt
diff --git a/Documentation/devicetree/bindings/tty/serial/of-serial.txt b/Documentation/devicetree/bindings/serial/of-serial.txt
index 1928a3e83cd0..1928a3e83cd0 100644
--- a/Documentation/devicetree/bindings/tty/serial/of-serial.txt
+++ b/Documentation/devicetree/bindings/serial/of-serial.txt
diff --git a/Documentation/devicetree/bindings/serial/qcom,msm-uart.txt b/Documentation/devicetree/bindings/serial/qcom,msm-uart.txt
new file mode 100644
index 000000000000..ce8c90161959
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/qcom,msm-uart.txt
@@ -0,0 +1,25 @@
1* MSM Serial UART
2
3The MSM serial UART hardware is designed for low-speed use cases where a
4dma-engine isn't needed. From a software perspective it's mostly compatible
5with the MSM serial UARTDM except that it only supports reading and writing one
6character at a time.
7
8Required properties:
9- compatible: Should contain "qcom,msm-uart"
10- reg: Should contain UART register location and length.
11- interrupts: Should contain UART interrupt.
12- clocks: Should contain the core clock.
13- clock-names: Should be "core".
14
15Example:
16
17A uart device at 0xa9c00000 with interrupt 11.
18
19serial@a9c00000 {
20 compatible = "qcom,msm-uart";
21 reg = <0xa9c00000 0x1000>;
22 interrupts = <11>;
23 clocks = <&uart_cxc>;
24 clock-names = "core";
25};
diff --git a/Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt b/Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt
new file mode 100644
index 000000000000..ffa5b784c66e
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt
@@ -0,0 +1,53 @@
1* MSM Serial UARTDM
2
3The MSM serial UARTDM hardware is designed for high-speed use cases where the
4transmit and/or receive channels can be offloaded to a dma-engine. From a
5software perspective it's mostly compatible with the MSM serial UART except
6that it supports reading and writing multiple characters at a time.
7
8Required properties:
9- compatible: Should contain at least "qcom,msm-uartdm".
10 A more specific property should be specified as follows depending
11 on the version:
12 "qcom,msm-uartdm-v1.1"
13 "qcom,msm-uartdm-v1.2"
14 "qcom,msm-uartdm-v1.3"
15 "qcom,msm-uartdm-v1.4"
16- reg: Should contain UART register locations and lengths. The first
17 register shall specify the main control registers. An optional second
18 register location shall specify the GSBI control region.
19 "qcom,msm-uartdm-v1.3" is the only compatible value that might
20 need the GSBI control region.
21- interrupts: Should contain UART interrupt.
22- clocks: Should contain the core clock and the AHB clock.
23- clock-names: Should be "core" for the core clock and "iface" for the
24 AHB clock.
25
26Optional properties:
27- dmas: Should contain dma specifiers for transmit and receive channels
28- dma-names: Should contain "tx" for transmit and "rx" for receive channels
29
30Examples:
31
32A uartdm v1.4 device with dma capabilities.
33
34serial@f991e000 {
35 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
36 reg = <0xf991e000 0x1000>;
37 interrupts = <0 108 0x0>;
38 clocks = <&blsp1_uart2_apps_cxc>, <&blsp1_ahb_cxc>;
39 clock-names = "core", "iface";
40 dmas = <&dma0 0>, <&dma0 1>;
41 dma-names = "tx", "rx";
42};
43
44A uartdm v1.3 device without dma capabilities and part of a GSBI complex.
45
46serial@19c40000 {
47 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
48 reg = <0x19c40000 0x1000>,
49 <0x19c00000 0x1000>;
50 interrupts = <0 195 0x0>;
51 clocks = <&gsbi5_uart_cxc>, <&gsbi5_ahb_cxc>;
52 clock-names = "core", "iface";
53};
diff --git a/Documentation/devicetree/bindings/serial/rs485.txt b/Documentation/devicetree/bindings/serial/rs485.txt
index 1e753c69fc83..32b1fa1f2a5b 100644
--- a/Documentation/devicetree/bindings/serial/rs485.txt
+++ b/Documentation/devicetree/bindings/serial/rs485.txt
@@ -7,7 +7,7 @@ UART node.
7 7
8Required properties: 8Required properties:
9- rs485-rts-delay: prop-encoded-array <a b> where: 9- rs485-rts-delay: prop-encoded-array <a b> where:
10 * a is the delay beteween rts signal and beginning of data sent in milliseconds. 10 * a is the delay between rts signal and beginning of data sent in milliseconds.
11 it corresponds to the delay before sending data. 11 it corresponds to the delay before sending data.
12 * b is the delay between end of data sent and rts signal in milliseconds 12 * b is the delay between end of data sent and rts signal in milliseconds
13 it corresponds to the delay after sending data and actual release of the line. 13 it corresponds to the delay after sending data and actual release of the line.
diff --git a/Documentation/devicetree/bindings/serial/sirf-uart.txt b/Documentation/devicetree/bindings/serial/sirf-uart.txt
new file mode 100644
index 000000000000..a2dfc6522a91
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/sirf-uart.txt
@@ -0,0 +1,33 @@
1* CSR SiRFprimaII/atlasVI Universal Synchronous Asynchronous Receiver/Transmitter *
2
3Required properties:
4- compatible : Should be "sirf,prima2-uart" or "sirf, prima2-usp-uart"
5- reg : Offset and length of the register set for the device
6- interrupts : Should contain uart interrupt
7- fifosize : Should define hardware rx/tx fifo size
8- clocks : Should contain uart clock number
9
10Optional properties:
11- sirf,uart-has-rtscts: we have hardware flow controller pins in hardware
12- rts-gpios: RTS pin for USP-based UART if sirf,uart-has-rtscts is true
13- cts-gpios: CTS pin for USP-based UART if sirf,uart-has-rtscts is true
14
15Example:
16
17uart0: uart@b0050000 {
18 cell-index = <0>;
19 compatible = "sirf,prima2-uart";
20 reg = <0xb0050000 0x1000>;
21 interrupts = <17>;
22 fifosize = <128>;
23 clocks = <&clks 13>;
24};
25
26On the board-specific dts, we can put rts-gpios and cts-gpios like
27
28usp@b0090000 {
29 compatible = "sirf,prima2-usp-uart";
30 sirf,uart-has-rtscts;
31 rts-gpios = <&gpio 15 0>;
32 cts-gpios = <&gpio 46 0>;
33};
diff --git a/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.txt
index f13f1c5be91c..f13f1c5be91c 100644
--- a/Documentation/devicetree/bindings/tty/serial/snps-dw-apb-uart.txt
+++ b/Documentation/devicetree/bindings/serial/snps-dw-apb-uart.txt
diff --git a/Documentation/devicetree/bindings/serial/st-asc.txt b/Documentation/devicetree/bindings/serial/st-asc.txt
new file mode 100644
index 000000000000..75d877f5968f
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/st-asc.txt
@@ -0,0 +1,18 @@
1*st-asc(Serial Port)
2
3Required properties:
4- compatible : Should be "st,asc".
5- reg, reg-names, interrupts, interrupt-names : Standard way to define device
6 resources with names. look in
7 Documentation/devicetree/bindings/resource-names.txt
8
9Optional properties:
10- st,hw-flow-ctrl bool flag to enable hardware flow control.
11- st,force-m1 bool flat to force asc to be in Mode-1 recommeded
12 for high bit rates (above 19.2K)
13Example:
14serial@fe440000{
15 compatible = "st,asc";
16 reg = <0xfe440000 0x2c>;
17 interrupts = <0 209 0>;
18};
diff --git a/Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt b/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt
index 5feef1ef167d..5feef1ef167d 100644
--- a/Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt
+++ b/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt
diff --git a/Documentation/devicetree/bindings/serio/altera_ps2.txt b/Documentation/devicetree/bindings/serio/altera_ps2.txt
index 4d9eecc2ef7d..520199e2e347 100644
--- a/Documentation/devicetree/bindings/serio/altera_ps2.txt
+++ b/Documentation/devicetree/bindings/serio/altera_ps2.txt
@@ -1,4 +1,5 @@
1Altera UP PS/2 controller 1Altera UP PS/2 controller
2 2
3Required properties: 3Required properties:
4- compatible : should be "ALTR,ps2-1.0". 4- compatible : should be "ALTR,ps2-1.0". <DEPRECATED>
5- compatible : should be "altr,ps2-1.0".
diff --git a/Documentation/devicetree/bindings/sound/ak4554.c b/Documentation/devicetree/bindings/sound/ak4554.c
new file mode 100644
index 000000000000..934fa02754b3
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/ak4554.c
@@ -0,0 +1,11 @@
1AK4554 ADC/DAC
2
3Required properties:
4
5 - compatible : "asahi-kasei,ak4554"
6
7Example:
8
9ak4554-adc-dac {
10 compatible = "asahi-kasei,ak4554";
11};
diff --git a/Documentation/devicetree/bindings/sound/alc5632.txt b/Documentation/devicetree/bindings/sound/alc5632.txt
index 8608f747dcfe..ffd886d110bd 100644
--- a/Documentation/devicetree/bindings/sound/alc5632.txt
+++ b/Documentation/devicetree/bindings/sound/alc5632.txt
@@ -13,6 +13,25 @@ Required properties:
13 - #gpio-cells : Should be two. The first cell is the pin number and the 13 - #gpio-cells : Should be two. The first cell is the pin number and the
14 second cell is used to specify optional parameters (currently unused). 14 second cell is used to specify optional parameters (currently unused).
15 15
16Pins on the device (for linking into audio routes):
17
18 * SPK_OUTP
19 * SPK_OUTN
20 * HP_OUT_L
21 * HP_OUT_R
22 * AUX_OUT_P
23 * AUX_OUT_N
24 * LINE_IN_L
25 * LINE_IN_R
26 * PHONE_P
27 * PHONE_N
28 * MIC1_P
29 * MIC1_N
30 * MIC2_P
31 * MIC2_N
32 * MICBIAS1
33 * DMICDAT
34
16Example: 35Example:
17 36
18alc5632: alc5632@1e { 37alc5632: alc5632@1e {
diff --git a/Documentation/devicetree/bindings/sound/atmel-sam9x5-wm8731-audio.txt b/Documentation/devicetree/bindings/sound/atmel-sam9x5-wm8731-audio.txt
new file mode 100644
index 000000000000..0720857089a7
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/atmel-sam9x5-wm8731-audio.txt
@@ -0,0 +1,35 @@
1* Atmel at91sam9x5ek wm8731 audio complex
2
3Required properties:
4 - compatible: "atmel,sam9x5-wm8731-audio"
5 - atmel,model: The user-visible name of this sound complex.
6 - atmel,ssc-controller: The phandle of the SSC controller
7 - atmel,audio-codec: The phandle of the WM8731 audio codec
8 - atmel,audio-routing: A list of the connections between audio components.
9 Each entry is a pair of strings, the first being the connection's sink,
10 the second being the connection's source.
11
12Available audio endpoints for the audio-routing table:
13
14Board connectors:
15 * Headphone Jack
16 * Line In Jack
17
18wm8731 pins:
19cf Documentation/devicetree/bindings/sound/wm8731.txt
20
21Example:
22sound {
23 compatible = "atmel,sam9x5-wm8731-audio";
24
25 atmel,model = "wm8731 @ AT91SAM9X5EK";
26
27 atmel,audio-routing =
28 "Headphone Jack", "RHPOUT",
29 "Headphone Jack", "LHPOUT",
30 "LLINEIN", "Line In Jack",
31 "RLINEIN", "Line In Jack";
32
33 atmel,ssc-controller = <&ssc0>;
34 atmel,audio-codec = <&wm8731>;
35};
diff --git a/Documentation/devicetree/bindings/sound/atmel-wm8904.txt b/Documentation/devicetree/bindings/sound/atmel-wm8904.txt
new file mode 100644
index 000000000000..8bbe50c884b6
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/atmel-wm8904.txt
@@ -0,0 +1,55 @@
1Atmel ASoC driver with wm8904 audio codec complex
2
3Required properties:
4 - compatible: "atmel,asoc-wm8904"
5 - atmel,model: The user-visible name of this sound complex.
6 - atmel,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 WM8904's pins, and the jacks on the board:
10
11 WM8904 pins:
12
13 * IN1L
14 * IN1R
15 * IN2L
16 * IN2R
17 * IN3L
18 * IN3R
19 * HPOUTL
20 * HPOUTR
21 * LINEOUTL
22 * LINEOUTR
23 * MICBIAS
24
25 Board connectors:
26
27 * Headphone Jack
28 * Line In Jack
29 * Mic
30
31 - atmel,ssc-controller: The phandle of the SSC controller
32 - atmel,audio-codec: The phandle of the WM8904 audio codec
33
34Optional properties:
35 - pinctrl-names, pinctrl-0: Please refer to pinctrl-bindings.txt
36
37Example:
38sound {
39 compatible = "atmel,asoc-wm8904";
40 pinctrl-names = "default";
41 pinctrl-0 = <&pinctrl_pck0_as_mck>;
42
43 atmel,model = "wm8904 @ AT91SAM9N12EK";
44
45 atmel,audio-routing =
46 "Headphone Jack", "HPOUTL",
47 "Headphone Jack", "HPOUTR",
48 "IN2L", "Line In Jack",
49 "IN2R", "Line In Jack",
50 "Mic", "MICBIAS",
51 "IN1L", "Mic";
52
53 atmel,ssc-controller = <&ssc0>;
54 atmel,audio-codec = <&wm8904>;
55};
diff --git a/Documentation/devicetree/bindings/sound/fsl,spdif.txt b/Documentation/devicetree/bindings/sound/fsl,spdif.txt
new file mode 100644
index 000000000000..f2ae335670f5
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/fsl,spdif.txt
@@ -0,0 +1,54 @@
1Freescale Sony/Philips Digital Interface Format (S/PDIF) Controller
2
3The Freescale S/PDIF audio block is a stereo transceiver that allows the
4processor to receive and transmit digital audio via an coaxial cable or
5a fibre cable.
6
7Required properties:
8
9 - compatible : Compatible list, must contain "fsl,imx35-spdif".
10
11 - reg : Offset and length of the register set for the device.
12
13 - interrupts : Contains the spdif interrupt.
14
15 - dmas : Generic dma devicetree binding as described in
16 Documentation/devicetree/bindings/dma/dma.txt.
17
18 - dma-names : Two dmas have to be defined, "tx" and "rx".
19
20 - clocks : Contains an entry for each entry in clock-names.
21
22 - clock-names : Includes the following entries:
23 "core" The core clock of spdif controller
24 "rxtx<0-7>" Clock source list for tx and rx clock.
25 This clock list should be identical to
26 the source list connecting to the spdif
27 clock mux in "SPDIF Transceiver Clock
28 Diagram" of SoC reference manual. It
29 can also be referred to TxClk_Source
30 bit of register SPDIF_STC.
31
32Example:
33
34spdif: spdif@02004000 {
35 compatible = "fsl,imx35-spdif";
36 reg = <0x02004000 0x4000>;
37 interrupts = <0 52 0x04>;
38 dmas = <&sdma 14 18 0>,
39 <&sdma 15 18 0>;
40 dma-names = "rx", "tx";
41
42 clocks = <&clks 197>, <&clks 3>,
43 <&clks 197>, <&clks 107>,
44 <&clks 0>, <&clks 118>,
45 <&clks 62>, <&clks 139>,
46 <&clks 0>;
47 clock-names = "core", "rxtx0",
48 "rxtx1", "rxtx2",
49 "rxtx3", "rxtx4",
50 "rxtx5", "rxtx6",
51 "rxtx7";
52
53 status = "okay";
54};
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/ssi.txt b/Documentation/devicetree/bindings/sound/fsl,ssi.txt
index 5ff76c9c57d2..4303b6ab6208 100644
--- a/Documentation/devicetree/bindings/powerpc/fsl/ssi.txt
+++ b/Documentation/devicetree/bindings/sound/fsl,ssi.txt
@@ -43,10 +43,22 @@ Required properties:
43 together. This would still allow different sample sizes, 43 together. This would still allow different sample sizes,
44 but not different sample rates. 44 but not different sample rates.
45 45
46Required are also ac97 link bindings if ac97 is used. See
47Documentation/devicetree/bindings/sound/soc-ac97link.txt for the necessary
48bindings.
49
46Optional properties: 50Optional properties:
47- codec-handle: Phandle to a 'codec' node that defines an audio 51- codec-handle: Phandle to a 'codec' node that defines an audio
48 codec connected to this SSI. This node is typically 52 codec connected to this SSI. This node is typically
49 a child of an I2C or other control node. 53 a child of an I2C or other control node.
54- fsl,fiq-stream-filter: Bool property. Disabled DMA and use FIQ instead to
55 filter the codec stream. This is necessary for some boards
56 where an incompatible codec is connected to this SSI, e.g.
57 on pca100 and pcm043.
58- dmas: Generic dma devicetree binding as described in
59 Documentation/devicetree/bindings/dma/dma.txt.
60- dma-names: Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq
61 is not defined.
50 62
51Child 'codec' node required properties: 63Child 'codec' node required properties:
52- compatible: Compatible list, contains the name of the codec 64- compatible: Compatible list, contains the name of the codec
diff --git a/Documentation/devicetree/bindings/sound/imx-audio-spdif.txt b/Documentation/devicetree/bindings/sound/imx-audio-spdif.txt
new file mode 100644
index 000000000000..7d13479f9c3c
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/imx-audio-spdif.txt
@@ -0,0 +1,34 @@
1Freescale i.MX audio complex with S/PDIF transceiver
2
3Required properties:
4
5 - compatible : "fsl,imx-audio-spdif"
6
7 - model : The user-visible name of this sound complex
8
9 - spdif-controller : The phandle of the i.MX S/PDIF controller
10
11
12Optional properties:
13
14 - spdif-out : This is a boolean property. If present, the transmitting
15 function of S/PDIF will be enabled, indicating there's a physical
16 S/PDIF out connector/jack on the board or it's connecting to some
17 other IP block, such as an HDMI encoder/display-controller.
18
19 - spdif-in : This is a boolean property. If present, the receiving
20 function of S/PDIF will be enabled, indicating there's a physical
21 S/PDIF in connector/jack on the board.
22
23* Note: At least one of these two properties should be set in the DT binding.
24
25
26Example:
27
28sound-spdif {
29 compatible = "fsl,imx-audio-spdif";
30 model = "imx-spdif";
31 spdif-controller = <&spdif>;
32 spdif-out;
33 spdif-in;
34};
diff --git a/Documentation/devicetree/bindings/sound/imx-audmux.txt b/Documentation/devicetree/bindings/sound/imx-audmux.txt
index 215aa9817213..f88a00e54c63 100644
--- a/Documentation/devicetree/bindings/sound/imx-audmux.txt
+++ b/Documentation/devicetree/bindings/sound/imx-audmux.txt
@@ -5,6 +5,15 @@ Required properties:
5 or "fsl,imx31-audmux" for the version firstly used on i.MX31. 5 or "fsl,imx31-audmux" for the version firstly used on i.MX31.
6- reg : Should contain AUDMUX registers location and length 6- reg : Should contain AUDMUX registers location and length
7 7
8An initial configuration can be setup using child nodes.
9
10Required properties of optional child nodes:
11- fsl,audmux-port : Integer of the audmux port that is configured by this
12 child node.
13- fsl,port-config : List of configuration options for the specific port. For
14 imx31-audmux and above, it is a list of tuples <ptcr pdcr>. For
15 imx21-audmux it is a list of pcr values.
16
8Example: 17Example:
9 18
10audmux@021d8000 { 19audmux@021d8000 {
diff --git a/Documentation/devicetree/bindings/sound/mrvl,pxa-ssp.txt b/Documentation/devicetree/bindings/sound/mrvl,pxa-ssp.txt
new file mode 100644
index 000000000000..74c9ba6c2823
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/mrvl,pxa-ssp.txt
@@ -0,0 +1,28 @@
1Marvell PXA SSP CPU DAI bindings
2
3Required properties:
4
5 compatible Must be "mrvl,pxa-ssp-dai"
6 port A phandle reference to a PXA ssp upstream device
7
8Example:
9
10 /* upstream device */
11
12 ssp0: ssp@41000000 {
13 compatible = "mrvl,pxa3xx-ssp";
14 reg = <0x41000000 0x40>;
15 interrupts = <24>;
16 clock-names = "pxa27x-ssp.0";
17 dmas = <&dma 13
18 &dma 14>;
19 dma-names = "rx", "tx";
20 };
21
22 /* DAI as user */
23
24 ssp_dai0: ssp_dai@0 {
25 compatible = "mrvl,pxa-ssp-dai";
26 port = <&ssp0>;
27 };
28
diff --git a/Documentation/devicetree/bindings/sound/mrvl,pxa2xx-pcm.txt b/Documentation/devicetree/bindings/sound/mrvl,pxa2xx-pcm.txt
new file mode 100644
index 000000000000..551fbb8348c2
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/mrvl,pxa2xx-pcm.txt
@@ -0,0 +1,15 @@
1DT bindings for ARM PXA2xx PCM platform driver
2
3This is just a dummy driver that registers the PXA ASoC platform driver.
4It does not have any resources assigned.
5
6Required properties:
7
8 - compatible 'mrvl,pxa-pcm-audio'
9
10Example:
11
12 pxa_pcm_audio: snd_soc_pxa_audio {
13 compatible = "mrvl,pxa-pcm-audio";
14 };
15
diff --git a/Documentation/devicetree/bindings/sound/mvebu-audio.txt b/Documentation/devicetree/bindings/sound/mvebu-audio.txt
new file mode 100644
index 000000000000..7e5fd37c1b3f
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/mvebu-audio.txt
@@ -0,0 +1,29 @@
1* mvebu (Kirkwood, Dove, Armada 370) audio controller
2
3Required properties:
4
5- compatible: "marvell,mvebu-audio"
6
7- reg: physical base address of the controller and length of memory mapped
8 region.
9
10- interrupts: list of two irq numbers.
11 The first irq is used for data flow and the second one is used for errors.
12
13- clocks: one or two phandles.
14 The first one is mandatory and defines the internal clock.
15 The second one is optional and defines an external clock.
16
17- clock-names: names associated to the clocks:
18 "internal" for the internal clock
19 "extclk" for the external clock
20
21Example:
22
23i2s1: audio-controller@b4000 {
24 compatible = "marvell,mvebu-audio";
25 reg = <0xb4000 0x2210>;
26 interrupts = <21>, <22>;
27 clocks = <&gate_clk 13>;
28 clock-names = "internal";
29};
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt
index 05ffecb57103..8b8903ef0800 100644
--- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt
@@ -11,28 +11,8 @@ Required properties:
11- nvidia,audio-routing : A list of the connections between audio components. 11- nvidia,audio-routing : A list of the connections between audio components.
12 Each entry is a pair of strings, the first being the connection's sink, 12 Each entry is a pair of strings, the first being the connection's sink,
13 the second being the connection's source. Valid names for sources and 13 the second being the connection's source. Valid names for sources and
14 sinks are the ALC5632's pins: 14 sinks are the ALC5632's pins as documented in the binding for the device
15 15 and:
16 ALC5632 pins:
17
18 * SPK_OUTP
19 * SPK_OUTN
20 * HP_OUT_L
21 * HP_OUT_R
22 * AUX_OUT_P
23 * AUX_OUT_N
24 * LINE_IN_L
25 * LINE_IN_R
26 * PHONE_P
27 * PHONE_N
28 * MIC1_P
29 * MIC1_N
30 * MIC2_P
31 * MIC2_N
32 * MICBIAS1
33 * DMICDAT
34
35 Board connectors:
36 16
37 * Headset Stereophone 17 * Headset Stereophone
38 * Int Spk 18 * Int Spk
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt
index d130818700b2..dc6224994d69 100644
--- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt
@@ -11,32 +11,12 @@ Required properties:
11- nvidia,audio-routing : A list of the connections between audio components. 11- nvidia,audio-routing : A list of the connections between audio components.
12 Each entry is a pair of strings, the first being the connection's sink, 12 Each entry is a pair of strings, the first being the connection's sink,
13 the second being the connection's source. Valid names for sources and 13 the second being the connection's source. Valid names for sources and
14 sinks are the RT5640's pins, and the jacks on the board: 14 sinks are the RT5640's pins (as documented in its binding), and the jacks
15 15 on the board:
16 RT5640 pins:
17
18 * DMIC1
19 * DMIC2
20 * MICBIAS1
21 * IN1P
22 * IN1R
23 * IN2P
24 * IN2R
25 * HPOL
26 * HPOR
27 * LOUTL
28 * LOUTR
29 * MONOP
30 * MONON
31 * SPOLP
32 * SPOLN
33 * SPORP
34 * SPORN
35
36 Board connectors:
37 16
38 * Headphones 17 * Headphones
39 * Speakers 18 * Speakers
19 * Mic Jack
40 20
41- nvidia,i2s-controller : The phandle of the Tegra I2S controller that's 21- nvidia,i2s-controller : The phandle of the Tegra I2S controller that's
42 connected to the CODEC. 22 connected to the CODEC.
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt
index d14510613a7f..aab6ce0ad2fc 100644
--- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt
@@ -11,31 +11,8 @@ Required properties:
11- nvidia,audio-routing : A list of the connections between audio components. 11- nvidia,audio-routing : A list of the connections between audio components.
12 Each entry is a pair of strings, the first being the connection's sink, 12 Each entry is a pair of strings, the first being the connection's sink,
13 the second being the connection's source. Valid names for sources and 13 the second being the connection's source. Valid names for sources and
14 sinks are the WM8753's pins, and the jacks on the board: 14 sinks are the WM8753's pins as documented in the binding for the WM8753,
15 15 and the jacks on the board:
16 WM8753 pins:
17
18 * LOUT1
19 * LOUT2
20 * ROUT1
21 * ROUT2
22 * MONO1
23 * MONO2
24 * OUT3
25 * OUT4
26 * LINE1
27 * LINE2
28 * RXP
29 * RXN
30 * ACIN
31 * ACOP
32 * MIC1N
33 * MIC1
34 * MIC2N
35 * MIC2
36 * Mic Bias
37
38 Board connectors:
39 16
40 * Headphone Jack 17 * Headphone Jack
41 * Mic Jack 18 * Mic Jack
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt
index 3bf722deb722..4b44dfb6ca0d 100644
--- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt
@@ -11,28 +11,8 @@ Required properties:
11- nvidia,audio-routing : A list of the connections between audio components. 11- nvidia,audio-routing : A list of the connections between audio components.
12 Each entry is a pair of strings, the first being the connection's sink, 12 Each entry is a pair of strings, the first being the connection's sink,
13 the second being the connection's source. Valid names for sources and 13 the second being the connection's source. Valid names for sources and
14 sinks are the WM8903's pins, and the jacks on the board: 14 sinks are the WM8903's pins (documented in the WM8903 binding document),
15 15 and the jacks on the board:
16 WM8903 pins:
17
18 * IN1L
19 * IN1R
20 * IN2L
21 * IN2R
22 * IN3L
23 * IN3R
24 * DMICDAT
25 * HPOUTL
26 * HPOUTR
27 * LINEOUTL
28 * LINEOUTR
29 * LOP
30 * LON
31 * ROP
32 * RON
33 * MICBIAS
34
35 Board connectors:
36 16
37 * Headphone Jack 17 * Headphone Jack
38 * Int Spk 18 * Int Spk
diff --git a/Documentation/devicetree/bindings/sound/pcm1792a.txt b/Documentation/devicetree/bindings/sound/pcm1792a.txt
new file mode 100644
index 000000000000..970ba1ed576f
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/pcm1792a.txt
@@ -0,0 +1,18 @@
1Texas Instruments pcm1792a DT bindings
2
3This driver supports the SPI bus.
4
5Required properties:
6
7 - compatible: "ti,pcm1792a"
8
9For required properties on SPI, please consult
10Documentation/devicetree/bindings/spi/spi-bus.txt
11
12Examples:
13
14 codec_spi: 1792a@0 {
15 compatible = "ti,pcm1792a";
16 spi-max-frequency = <600000>;
17 };
18
diff --git a/Documentation/devicetree/bindings/sound/rt5640.txt b/Documentation/devicetree/bindings/sound/rt5640.txt
index 005bcb24d72d..068a1141b06f 100644
--- a/Documentation/devicetree/bindings/sound/rt5640.txt
+++ b/Documentation/devicetree/bindings/sound/rt5640.txt
@@ -18,6 +18,26 @@ Optional properties:
18 18
19- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin. 19- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
20 20
21Pins on the device (for linking into audio routes):
22
23 * DMIC1
24 * DMIC2
25 * MICBIAS1
26 * IN1P
27 * IN1R
28 * IN2P
29 * IN2R
30 * HPOL
31 * HPOR
32 * LOUTL
33 * LOUTR
34 * MONOP
35 * MONON
36 * SPOLP
37 * SPOLN
38 * SPORP
39 * SPORN
40
21Example: 41Example:
22 42
23rt5640 { 43rt5640 {
diff --git a/Documentation/devicetree/bindings/sound/samsung-i2s.txt b/Documentation/devicetree/bindings/sound/samsung-i2s.txt
index 025e66b85a43..7386d444ada1 100644
--- a/Documentation/devicetree/bindings/sound/samsung-i2s.txt
+++ b/Documentation/devicetree/bindings/sound/samsung-i2s.txt
@@ -2,7 +2,15 @@
2 2
3Required SoC Specific Properties: 3Required SoC Specific Properties:
4 4
5- compatible : "samsung,i2s-v5" 5- compatible : should be one of the following.
6 - samsung,s3c6410-i2s: for 8/16/24bit stereo I2S.
7 - samsung,s5pv210-i2s: for 8/16/24bit multichannel(5.1) I2S with
8 secondary fifo, s/w reset control and internal mux for root clk src.
9 - samsung,exynos5420-i2s: for 8/16/24bit multichannel(7.1) I2S with
10 secondary fifo, s/w reset control, internal mux for root clk src and
11 TDM support. TDM (Time division multiplexing) is to allow transfer of
12 multiple channel audio data on single data line.
13
6- reg: physical base address of the controller and length of memory mapped 14- reg: physical base address of the controller and length of memory mapped
7 region. 15 region.
8- dmas: list of DMA controller phandle and DMA request line ordered pairs. 16- dmas: list of DMA controller phandle and DMA request line ordered pairs.
@@ -21,13 +29,6 @@ Required SoC Specific Properties:
21 29
22Optional SoC Specific Properties: 30Optional SoC Specific Properties:
23 31
24- samsung,supports-6ch: If the I2S Primary sound source has 5.1 Channel
25 support, this flag is enabled.
26- samsung,supports-rstclr: This flag should be set if I2S software reset bit
27 control is required. When this flag is set I2S software reset bit will be
28 enabled or disabled based on need.
29- samsung,supports-secdai:If I2S block has a secondary FIFO and internal DMA,
30 then this flag is enabled.
31- samsung,idma-addr: Internal DMA register base address of the audio 32- samsung,idma-addr: Internal DMA register base address of the audio
32 sub system(used in secondary sound source). 33 sub system(used in secondary sound source).
33- pinctrl-0: Should specify pin control groups used for this controller. 34- pinctrl-0: Should specify pin control groups used for this controller.
@@ -36,7 +37,7 @@ Optional SoC Specific Properties:
36Example: 37Example:
37 38
38i2s0: i2s@03830000 { 39i2s0: i2s@03830000 {
39 compatible = "samsung,i2s-v5"; 40 compatible = "samsung,s5pv210-i2s";
40 reg = <0x03830000 0x100>; 41 reg = <0x03830000 0x100>;
41 dmas = <&pdma0 10 42 dmas = <&pdma0 10
42 &pdma0 9 43 &pdma0 9
@@ -46,9 +47,6 @@ i2s0: i2s@03830000 {
46 <&clock_audss EXYNOS_I2S_BUS>, 47 <&clock_audss EXYNOS_I2S_BUS>,
47 <&clock_audss EXYNOS_SCLK_I2S>; 48 <&clock_audss EXYNOS_SCLK_I2S>;
48 clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; 49 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
49 samsung,supports-6ch;
50 samsung,supports-rstclr;
51 samsung,supports-secdai;
52 samsung,idma-addr = <0x03000000>; 50 samsung,idma-addr = <0x03000000>;
53 pinctrl-names = "default"; 51 pinctrl-names = "default";
54 pinctrl-0 = <&i2s0_bus>; 52 pinctrl-0 = <&i2s0_bus>;
diff --git a/Documentation/devicetree/bindings/sound/soc-ac97link.txt b/Documentation/devicetree/bindings/sound/soc-ac97link.txt
new file mode 100644
index 000000000000..80152a87f239
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/soc-ac97link.txt
@@ -0,0 +1,28 @@
1AC97 link bindings
2
3These bindings can be included within any other device node.
4
5Required properties:
6 - pinctrl-names: Has to contain following states to setup the correct
7 pinmuxing for the used gpios:
8 "ac97-running": AC97-link is active
9 "ac97-reset": AC97-link reset state
10 "ac97-warm-reset": AC97-link warm reset state
11 - ac97-gpios: List of gpio phandles with args in the order ac97-sync,
12 ac97-sdata, ac97-reset
13
14
15Example:
16
17ssi {
18 ...
19
20 pinctrl-names = "default", "ac97-running", "ac97-reset", "ac97-warm-reset";
21 pinctrl-0 = <&ac97link_running>;
22 pinctrl-1 = <&ac97link_running>;
23 pinctrl-2 = <&ac97link_reset>;
24 pinctrl-3 = <&ac97link_warm_reset>;
25 ac97-gpios = <&gpio3 20 0 &gpio3 22 0 &gpio3 28 0>;
26
27 ...
28};
diff --git a/Documentation/devicetree/bindings/sound/ti,pcm1681.txt b/Documentation/devicetree/bindings/sound/ti,pcm1681.txt
new file mode 100644
index 000000000000..4df17185ab80
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/ti,pcm1681.txt
@@ -0,0 +1,15 @@
1Texas Instruments PCM1681 8-channel PWM Processor
2
3Required properties:
4
5 - compatible: Should contain "ti,pcm1681".
6 - reg: The i2c address. Should contain <0x4c>.
7
8Examples:
9
10 i2c_bus {
11 pcm1681@4c {
12 compatible = "ti,pcm1681";
13 reg = <0x4c>;
14 };
15 };
diff --git a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt
index f47c3f589fd0..705a6b156c6c 100644
--- a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt
+++ b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt
@@ -3,7 +3,14 @@ Texas Instruments - tlv320aic3x Codec module
3The tlv320aic3x serial control bus communicates through I2C protocols 3The tlv320aic3x serial control bus communicates through I2C protocols
4 4
5Required properties: 5Required properties:
6- compatible - "string" - "ti,tlv320aic3x" 6
7- compatible - "string" - One of:
8 "ti,tlv320aic3x" - Generic TLV320AIC3x device
9 "ti,tlv320aic33" - TLV320AIC33
10 "ti,tlv320aic3007" - TLV320AIC3007
11 "ti,tlv320aic3106" - TLV320AIC3106
12
13
7- reg - <int> - I2C slave address 14- reg - <int> - I2C slave address
8 15
9 16
diff --git a/Documentation/devicetree/bindings/sound/wm8731.txt b/Documentation/devicetree/bindings/sound/wm8731.txt
index 15f70048469b..236690e99b87 100644
--- a/Documentation/devicetree/bindings/sound/wm8731.txt
+++ b/Documentation/devicetree/bindings/sound/wm8731.txt
@@ -16,3 +16,12 @@ codec: wm8731@1a {
16 compatible = "wlf,wm8731"; 16 compatible = "wlf,wm8731";
17 reg = <0x1a>; 17 reg = <0x1a>;
18}; 18};
19
20Available audio endpoints for an audio-routing table:
21 * LOUT: Left Channel Line Output
22 * ROUT: Right Channel Line Output
23 * LHPOUT: Left Channel Headphone Output
24 * RHPOUT: Right Channel Headphone Output
25 * LLINEIN: Left Channel Line Input
26 * RLINEIN: Right Channel Line Input
27 * MICIN: Microphone Input
diff --git a/Documentation/devicetree/bindings/sound/wm8753.txt b/Documentation/devicetree/bindings/sound/wm8753.txt
index e65277a0fb60..8eee61282105 100644
--- a/Documentation/devicetree/bindings/sound/wm8753.txt
+++ b/Documentation/devicetree/bindings/sound/wm8753.txt
@@ -10,9 +10,31 @@ Required properties:
10 - reg : the I2C address of the device for I2C, the chip select 10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI. 11 number for SPI.
12 12
13Pins on the device (for linking into audio routes):
14
15 * LOUT1
16 * LOUT2
17 * ROUT1
18 * ROUT2
19 * MONO1
20 * MONO2
21 * OUT3
22 * OUT4
23 * LINE1
24 * LINE2
25 * RXP
26 * RXN
27 * ACIN
28 * ACOP
29 * MIC1N
30 * MIC1
31 * MIC2N
32 * MIC2
33 * Mic Bias
34
13Example: 35Example:
14 36
15codec: wm8737@1a { 37codec: wm8753@1a {
16 compatible = "wlf,wm8753"; 38 compatible = "wlf,wm8753";
17 reg = <0x1a>; 39 reg = <0x1a>;
18}; 40};
diff --git a/Documentation/devicetree/bindings/sound/wm8903.txt b/Documentation/devicetree/bindings/sound/wm8903.txt
index f102cbc42694..94ec32c194bb 100644
--- a/Documentation/devicetree/bindings/sound/wm8903.txt
+++ b/Documentation/devicetree/bindings/sound/wm8903.txt
@@ -28,6 +28,25 @@ Optional properties:
28 performed. If any entry has the value 0xffffffff, that GPIO's 28 performed. If any entry has the value 0xffffffff, that GPIO's
29 configuration will not be modified. 29 configuration will not be modified.
30 30
31Pins on the device (for linking into audio routes):
32
33 * IN1L
34 * IN1R
35 * IN2L
36 * IN2R
37 * IN3L
38 * IN3R
39 * DMICDAT
40 * HPOUTL
41 * HPOUTR
42 * LINEOUTL
43 * LINEOUTR
44 * LOP
45 * LON
46 * ROP
47 * RON
48 * MICBIAS
49
31Example: 50Example:
32 51
33codec: wm8903@1a { 52codec: wm8903@1a {
diff --git a/Documentation/devicetree/bindings/sound/wm8994.txt b/Documentation/devicetree/bindings/sound/wm8994.txt
index f2f3e80934d2..e045e90a0924 100644
--- a/Documentation/devicetree/bindings/sound/wm8994.txt
+++ b/Documentation/devicetree/bindings/sound/wm8994.txt
@@ -32,6 +32,10 @@ Optional properties:
32 The second cell is the flags, encoded as the trigger masks from 32 The second cell is the flags, encoded as the trigger masks from
33 Documentation/devicetree/bindings/interrupts.txt 33 Documentation/devicetree/bindings/interrupts.txt
34 34
35 - clocks : A list of up to two phandle and clock specifier pairs
36 - clock-names : A list of clock names sorted in the same order as clocks.
37 Valid clock names are "MCLK1" and "MCLK2".
38
35 - wlf,gpio-cfg : A list of GPIO configuration register values. If absent, 39 - wlf,gpio-cfg : A list of GPIO configuration register values. If absent,
36 no configuration of these registers is performed. If any value is 40 no configuration of these registers is performed. If any value is
37 over 0xffff then the register will be left as default. If present 11 41 over 0xffff then the register will be left as default. If present 11
diff --git a/Documentation/devicetree/bindings/spi/efm32-spi.txt b/Documentation/devicetree/bindings/spi/efm32-spi.txt
new file mode 100644
index 000000000000..a590ca51be75
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/efm32-spi.txt
@@ -0,0 +1,34 @@
1* Energy Micro EFM32 SPI
2
3Required properties:
4- #address-cells: see spi-bus.txt
5- #size-cells: see spi-bus.txt
6- compatible: should be "efm32,spi"
7- reg: Offset and length of the register set for the controller
8- interrupts: pair specifying rx and tx irq
9- clocks: phandle to the spi clock
10- cs-gpios: see spi-bus.txt
11- location: Value to write to the ROUTE register's LOCATION bitfield to configure the pinmux for the device, see datasheet for values.
12
13Example:
14
15spi1: spi@0x4000c400 { /* USART1 */
16 #address-cells = <1>;
17 #size-cells = <0>;
18 compatible = "efm32,spi";
19 reg = <0x4000c400 0x400>;
20 interrupts = <15 16>;
21 clocks = <&cmu 20>;
22 cs-gpios = <&gpio 51 1>; // D3
23 location = <1>;
24 status = "ok";
25
26 ks8851@0 {
27 compatible = "ks8851";
28 spi-max-frequency = <6000000>;
29 reg = <0>;
30 interrupt-parent = <&boardfpga>;
31 interrupts = <4>;
32 status = "ok";
33 };
34};
diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt
index 296015e3c632..800dafe5b01b 100644
--- a/Documentation/devicetree/bindings/spi/spi-bus.txt
+++ b/Documentation/devicetree/bindings/spi/spi-bus.txt
@@ -55,6 +55,16 @@ contain the following properties.
55 chip select active high 55 chip select active high
56- spi-3wire - (optional) Empty property indicating device requires 56- spi-3wire - (optional) Empty property indicating device requires
57 3-wire mode. 57 3-wire mode.
58- spi-tx-bus-width - (optional) The bus width(number of data wires) that
59 used for MOSI. Defaults to 1 if not present.
60- spi-rx-bus-width - (optional) The bus width(number of data wires) that
61 used for MISO. Defaults to 1 if not present.
62
63Some SPI controllers and devices support Dual and Quad SPI transfer mode.
64It allows data in SPI system transfered in 2 wires(DUAL) or 4 wires(QUAD).
65Now the value that spi-tx-bus-width and spi-rx-bus-width can receive is
66only 1(SINGLE), 2(DUAL) and 4(QUAD).
67Dual/Quad mode is not allowed when 3-wire mode is used.
58 68
59If a gpio chipselect is used for the SPI slave the gpio number will be passed 69If a gpio chipselect is used for the SPI slave the gpio number will be passed
60via the cs_gpio 70via the cs_gpio
diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
new file mode 100644
index 000000000000..a1fb3035a42b
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
@@ -0,0 +1,42 @@
1ARM Freescale DSPI controller
2
3Required properties:
4- compatible : "fsl,vf610-dspi"
5- reg : Offset and length of the register set for the device
6- interrupts : Should contain SPI controller interrupt
7- clocks: from common clock binding: handle to dspi clock.
8- clock-names: from common clock binding: Shall be "dspi".
9- pinctrl-0: pin control group to be used for this controller.
10- pinctrl-names: must contain a "default" entry.
11- spi-num-chipselects : the number of the chipselect signals.
12- bus-num : the slave chip chipselect signal number.
13Example:
14
15dspi0@4002c000 {
16 #address-cells = <1>;
17 #size-cells = <0>;
18 compatible = "fsl,vf610-dspi";
19 reg = <0x4002c000 0x1000>;
20 interrupts = <0 67 0x04>;
21 clocks = <&clks VF610_CLK_DSPI0>;
22 clock-names = "dspi";
23 spi-num-chipselects = <5>;
24 bus-num = <0>;
25 pinctrl-names = "default";
26 pinctrl-0 = <&pinctrl_dspi0_1>;
27 status = "okay";
28
29 sflash: at26df081a@0 {
30 #address-cells = <1>;
31 #size-cells = <1>;
32 compatible = "atmel,at26df081a";
33 spi-max-frequency = <16000000>;
34 spi-cpol;
35 spi-cpha;
36 reg = <0>;
37 linux,modalias = "m25p80";
38 modal = "at26df081a";
39 };
40};
41
42
diff --git a/Documentation/devicetree/bindings/spi/spi_altera.txt b/Documentation/devicetree/bindings/spi/spi_altera.txt
index dda375943506..31319dcf30ab 100644
--- a/Documentation/devicetree/bindings/spi/spi_altera.txt
+++ b/Documentation/devicetree/bindings/spi/spi_altera.txt
@@ -1,4 +1,5 @@
1Altera SPI 1Altera SPI
2 2
3Required properties: 3Required properties:
4- compatible : should be "ALTR,spi-1.0". 4- compatible : should be "ALTR,spi-1.0". <DEPRECATED>
5- compatible : should be "altr,spi-1.0".
diff --git a/Documentation/devicetree/bindings/spi/ti_qspi.txt b/Documentation/devicetree/bindings/spi/ti_qspi.txt
new file mode 100644
index 000000000000..1f9641ade0b5
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/ti_qspi.txt
@@ -0,0 +1,22 @@
1TI QSPI controller.
2
3Required properties:
4- compatible : should be "ti,dra7xxx-qspi" or "ti,am4372-qspi".
5- reg: Should contain QSPI registers location and length.
6- #address-cells, #size-cells : Must be present if the device has sub-nodes
7- ti,hwmods: Name of the hwmod associated to the QSPI
8
9Recommended properties:
10- spi-max-frequency: Definition as per
11 Documentation/devicetree/bindings/spi/spi-bus.txt
12
13Example:
14
15qspi: qspi@4b300000 {
16 compatible = "ti,dra7xxx-qspi";
17 reg = <0x4b300000 0x100>;
18 #address-cells = <1>;
19 #size-cells = <0>;
20 spi-max-frequency = <25000000>;
21 ti,hwmods = "qspi";
22};
diff --git a/Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt b/Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt
new file mode 100644
index 000000000000..da2d510cae47
--- /dev/null
+++ b/Documentation/devicetree/bindings/timer/moxa,moxart-timer.txt
@@ -0,0 +1,17 @@
1MOXA ART timer
2
3Required properties:
4
5- compatible : Must be "moxa,moxart-timer"
6- reg : Should contain registers location and length
7- interrupts : Should contain the timer interrupt number
8- clocks : Should contain phandle for the clock that drives the counter
9
10Example:
11
12 timer: timer@98400000 {
13 compatible = "moxa,moxart-timer";
14 reg = <0x98400000 0x42>;
15 interrupts = <19 1>;
16 clocks = <&coreclk>;
17 };
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt
deleted file mode 100644
index c662eb36be29..000000000000
--- a/Documentation/devicetree/bindings/tty/serial/fsl-imx-uart.txt
+++ /dev/null
@@ -1,22 +0,0 @@
1* Freescale i.MX Universal Asynchronous Receiver/Transmitter (UART)
2
3Required properties:
4- compatible : Should be "fsl,<soc>-uart"
5- reg : Address and length of the register set for the device
6- interrupts : Should contain uart interrupt
7
8Optional properties:
9- fsl,uart-has-rtscts : Indicate the uart has rts and cts
10- fsl,irda-mode : Indicate the uart supports irda mode
11- fsl,dte-mode : Indicate the uart works in DTE mode. The uart works
12 is DCE mode by default.
13
14Example:
15
16serial@73fbc000 {
17 compatible = "fsl,imx51-uart", "fsl,imx21-uart";
18 reg = <0x73fbc000 0x4000>;
19 interrupts = <31>;
20 fsl,uart-has-rtscts;
21 fsl,dte-mode;
22};
diff --git a/Documentation/devicetree/bindings/tty/serial/msm_serial.txt b/Documentation/devicetree/bindings/tty/serial/msm_serial.txt
deleted file mode 100644
index aef383eb8876..000000000000
--- a/Documentation/devicetree/bindings/tty/serial/msm_serial.txt
+++ /dev/null
@@ -1,27 +0,0 @@
1* Qualcomm MSM UART
2
3Required properties:
4- compatible :
5 - "qcom,msm-uart", and one of "qcom,msm-hsuart" or
6 "qcom,msm-lsuart".
7- reg : offset and length of the register set for the device
8 for the hsuart operating in compatible mode, there should be a
9 second pair describing the gsbi registers.
10- interrupts : should contain the uart interrupt.
11
12There are two different UART blocks used in MSM devices,
13"qcom,msm-hsuart" and "qcom,msm-lsuart". The msm-serial driver is
14able to handle both of these, and matches against the "qcom,msm-uart"
15as the compatibility.
16
17The registers for the "qcom,msm-hsuart" device need to specify both
18register blocks, even for the common driver.
19
20Example:
21
22 uart@19c400000 {
23 compatible = "qcom,msm-hsuart", "qcom,msm-uart";
24 reg = <0x19c40000 0x1000>,
25 <0x19c00000 0x1000>;
26 interrupts = <195>;
27 };
diff --git a/Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt b/Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt
new file mode 100644
index 000000000000..c5e032c85bf9
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/qca,ar9330-uart.txt
@@ -0,0 +1,34 @@
1* Qualcomm Atheros AR9330 High-Speed UART
2
3Required properties:
4
5- compatible: Must be "qca,ar9330-uart"
6
7- reg: Specifies the physical base address of the controller and
8 the length of the memory mapped region.
9
10- interrupt-parent: The phandle for the interrupt controller that
11 services interrupts for this device.
12
13- interrupts: Specifies the interrupt source of the parent interrupt
14 controller. The format of the interrupt specifier depends on the
15 parent interrupt controller.
16
17Additional requirements:
18
19 Each UART port must have an alias correctly numbered in "aliases"
20 node.
21
22Example:
23
24 aliases {
25 serial0 = &uart0;
26 };
27
28 uart0: uart@18020000 {
29 compatible = "qca,ar9330-uart";
30 reg = <0x18020000 0x14>;
31
32 interrupt-parent = <&intc>;
33 interrupts = <3>;
34 };
diff --git a/Documentation/devicetree/bindings/usb/am33xx-usb.txt b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
index dc9dc8c87f15..20c2ff2ba07e 100644
--- a/Documentation/devicetree/bindings/usb/am33xx-usb.txt
+++ b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
@@ -1,35 +1,197 @@
1AM33XX MUSB GLUE 1 AM33xx MUSB
2 - compatible : Should be "ti,musb-am33xx" 2~~~~~~~~~~~~~~~
3 - reg : offset and length of register sets, first usbss, then for musb instances 3- compatible: ti,am33xx-usb
4 - interrupts : usbss, musb instance interrupts in order 4- reg: offset and length of the usbss register sets
5 - ti,hwmods : must be "usb_otg_hs" 5- ti,hwmods : must be "usb_otg_hs"
6 - multipoint : Should be "1" indicating the musb controller supports 6
7 multipoint. This is a MUSB configuration-specific setting. 7The glue layer contains multiple child nodes. It is required the have
8 - num-eps : Specifies the number of endpoints. This is also a 8at least a control module node, USB node and a PHY node. The second USB
9 MUSB configuration-specific setting. Should be set to "16" 9node and its PHY node is optional. The DMA node is also optional.
10 - ram-bits : Specifies the ram address size. Should be set to "12" 10
11 - port0-mode : Should be "3" to represent OTG. "1" signifies HOST and "2" 11Reset module
12 represents PERIPHERAL. 12~~~~~~~~~~~~
13 - port1-mode : Should be "1" to represent HOST. "3" signifies OTG and "2" 13- compatible: ti,am335x-usb-ctrl-module
14 represents PERIPHERAL. 14- reg: offset and length of the "USB control registers" in the "Control
15 - power : Should be "250". This signifies the controller can supply up to 15 Module" block. A second offset and length for the USB wake up control
16 500mA when operating in host mode. 16 in the same memory block.
17- reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for
18 the USB wake up control register.
19
20USB PHY
21~~~~~~~
22compatible: ti,am335x-usb-phy
23reg: offset and length of the "USB PHY" register space
24ti,ctrl_mod: reference to the "reset module" node
25reg-names: phy
26The PHY should have a "phy" alias numbered properly in the alias
27node.
28
29USB
30~~~
31- compatible: ti,musb-am33xx
32- reg: offset and length of "USB Controller Registers", and offset and
33 length of "USB Core" register space.
34- reg-names: control for the ""USB Controller Registers" and "mc" for
35 "USB Core" register space
36- interrupts: USB interrupt number
37- interrupt-names: mc
38- dr_mode: Should be one of "host", "peripheral" or "otg".
39- mentor,multipoint: Should be "1" indicating the musb controller supports
40 multipoint. This is a MUSB configuration-specific setting.
41- mentor,num-eps: Specifies the number of endpoints. This is also a
42 MUSB configuration-specific setting. Should be set to "16"
43- mentor,ram-bits: Specifies the ram address size. Should be set to "12"
44- mentor,power: Should be "500". This signifies the controller can supply up to
45 500mA when operating in host mode.
46- phys: reference to the USB phy
47- dmas: specifies the dma channels
48- dma-names: specifies the names of the channels. Use "rxN" for receive
49 and "txN" for transmit endpoints. N specifies the endpoint number.
50
51The controller should have an "usb" alias numbered properly in the alias
52node.
53
54DMA
55~~~
56- compatible: ti,am3359-cppi41
57- reg: offset and length of the following register spaces: USBSS, USB
58 CPPI DMA Controller, USB CPPI DMA Scheduler, USB Queue Manager
59- reg-names: glue, controller, scheduler, queuemgr
60- #dma-cells: should be set to 2. The first number represents the
61 endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29
62 for endpoints 1 … 15 on instance 1). The second number is 0 for RX and
63 1 for TX transfers.
64- #dma-channels: should be set to 30 representing the 15 endpoints for
65 each USB instance.
17 66
18Example: 67Example:
68~~~~~~~~
69The following example contains all the nodes as used on am335x-evm:
70
71aliases {
72 usb0 = &usb0;
73 usb1 = &usb1;
74 phy0 = &usb0_phy;
75 phy1 = &usb1_phy;
76};
19 77
20usb@47400000 { 78usb: usb@47400000 {
21 compatible = "ti,musb-am33xx"; 79 compatible = "ti,am33xx-usb";
22 reg = <0x47400000 0x1000 /* usbss */ 80 reg = <0x47400000 0x1000>;
23 0x47401000 0x800 /* musb instance 0 */ 81 ranges;
24 0x47401800 0x800>; /* musb instance 1 */ 82 #address-cells = <1>;
25 interrupts = <17 /* usbss */ 83 #size-cells = <1>;
26 18 /* musb instance 0 */
27 19>; /* musb instance 1 */
28 multipoint = <1>;
29 num-eps = <16>;
30 ram-bits = <12>;
31 port0-mode = <3>;
32 port1-mode = <3>;
33 power = <250>;
34 ti,hwmods = "usb_otg_hs"; 84 ti,hwmods = "usb_otg_hs";
85
86 ctrl_mod: control@44e10000 {
87 compatible = "ti,am335x-usb-ctrl-module";
88 reg = <0x44e10620 0x10
89 0x44e10648 0x4>;
90 reg-names = "phy_ctrl", "wakeup";
91 };
92
93 usb0_phy: usb-phy@47401300 {
94 compatible = "ti,am335x-usb-phy";
95 reg = <0x47401300 0x100>;
96 reg-names = "phy";
97 ti,ctrl_mod = <&ctrl_mod>;
98 };
99
100 usb0: usb@47401000 {
101 compatible = "ti,musb-am33xx";
102 reg = <0x47401400 0x400
103 0x47401000 0x200>;
104 reg-names = "mc", "control";
105
106 interrupts = <18>;
107 interrupt-names = "mc";
108 dr_mode = "otg"
109 mentor,multipoint = <1>;
110 mentor,num-eps = <16>;
111 mentor,ram-bits = <12>;
112 mentor,power = <500>;
113 phys = <&usb0_phy>;
114
115 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
116 &cppi41dma 2 0 &cppi41dma 3 0
117 &cppi41dma 4 0 &cppi41dma 5 0
118 &cppi41dma 6 0 &cppi41dma 7 0
119 &cppi41dma 8 0 &cppi41dma 9 0
120 &cppi41dma 10 0 &cppi41dma 11 0
121 &cppi41dma 12 0 &cppi41dma 13 0
122 &cppi41dma 14 0 &cppi41dma 0 1
123 &cppi41dma 1 1 &cppi41dma 2 1
124 &cppi41dma 3 1 &cppi41dma 4 1
125 &cppi41dma 5 1 &cppi41dma 6 1
126 &cppi41dma 7 1 &cppi41dma 8 1
127 &cppi41dma 9 1 &cppi41dma 10 1
128 &cppi41dma 11 1 &cppi41dma 12 1
129 &cppi41dma 13 1 &cppi41dma 14 1>;
130 dma-names =
131 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
132 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
133 "rx14", "rx15",
134 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
135 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
136 "tx14", "tx15";
137 };
138
139 usb1_phy: usb-phy@47401b00 {
140 compatible = "ti,am335x-usb-phy";
141 reg = <0x47401b00 0x100>;
142 reg-names = "phy";
143 ti,ctrl_mod = <&ctrl_mod>;
144 };
145
146 usb1: usb@47401800 {
147 compatible = "ti,musb-am33xx";
148 reg = <0x47401c00 0x400
149 0x47401800 0x200>;
150 reg-names = "mc", "control";
151 interrupts = <19>;
152 interrupt-names = "mc";
153 dr_mode = "host"
154 mentor,multipoint = <1>;
155 mentor,num-eps = <16>;
156 mentor,ram-bits = <12>;
157 mentor,power = <500>;
158 phys = <&usb1_phy>;
159
160 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
161 &cppi41dma 17 0 &cppi41dma 18 0
162 &cppi41dma 19 0 &cppi41dma 20 0
163 &cppi41dma 21 0 &cppi41dma 22 0
164 &cppi41dma 23 0 &cppi41dma 24 0
165 &cppi41dma 25 0 &cppi41dma 26 0
166 &cppi41dma 27 0 &cppi41dma 28 0
167 &cppi41dma 29 0 &cppi41dma 15 1
168 &cppi41dma 16 1 &cppi41dma 17 1
169 &cppi41dma 18 1 &cppi41dma 19 1
170 &cppi41dma 20 1 &cppi41dma 21 1
171 &cppi41dma 22 1 &cppi41dma 23 1
172 &cppi41dma 24 1 &cppi41dma 25 1
173 &cppi41dma 26 1 &cppi41dma 27 1
174 &cppi41dma 28 1 &cppi41dma 29 1>;
175 dma-names =
176 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
177 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
178 "rx14", "rx15",
179 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
180 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
181 "tx14", "tx15";
182 };
183
184 cppi41dma: dma-controller@07402000 {
185 compatible = "ti,am3359-cppi41";
186 reg = <0x47400000 0x1000
187 0x47402000 0x1000
188 0x47403000 0x1000
189 0x47404000 0x4000>;
190 reg-names = "glue", "controller", "scheduler", "queuemgr";
191 interrupts = <17>;
192 interrupt-names = "glue";
193 #dma-cells = <2>;
194 #dma-channels = <30>;
195 #dma-requests = <256>;
196 };
35}; 197};
diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 7a95c651ceb3..e807635f9e1c 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -3,10 +3,12 @@ synopsys DWC3 CORE
3DWC3- USB3 CONTROLLER 3DWC3- USB3 CONTROLLER
4 4
5Required properties: 5Required properties:
6 - compatible: must be "synopsys,dwc3" 6 - compatible: must be "snps,dwc3"
7 - reg : Address and length of the register set for the device 7 - reg : Address and length of the register set for the device
8 - interrupts: Interrupts used by the dwc3 controller. 8 - interrupts: Interrupts used by the dwc3 controller.
9 - usb-phy : array of phandle for the PHY device 9 - usb-phy : array of phandle for the PHY device. The first element
10 in the array is expected to be a handle to the USB2/HS PHY and
11 the second element is expected to be a handle to the USB3/SS PHY
10 12
11Optional properties: 13Optional properties:
12 - tx-fifo-resize: determines if the FIFO *has* to be reallocated. 14 - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
@@ -14,7 +16,7 @@ Optional properties:
14This is usually a subnode to DWC3 glue to which it is connected. 16This is usually a subnode to DWC3 glue to which it is connected.
15 17
16dwc3@4a030000 { 18dwc3@4a030000 {
17 compatible = "synopsys,dwc3"; 19 compatible = "snps,dwc3";
18 reg = <0x4a030000 0xcfff>; 20 reg = <0x4a030000 0xcfff>;
19 interrupts = <0 92 4> 21 interrupts = <0 92 4>
20 usb-phy = <&usb2_phy>, <&usb3,phy>; 22 usb-phy = <&usb2_phy>, <&usb3,phy>;
diff --git a/Documentation/devicetree/bindings/usb/generic.txt b/Documentation/devicetree/bindings/usb/generic.txt
new file mode 100644
index 000000000000..477d5bb5e51c
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/generic.txt
@@ -0,0 +1,24 @@
1Generic USB Properties
2
3Optional properties:
4 - maximum-speed: tells USB controllers we want to work up to a certain
5 speed. Valid arguments are "super-speed", "high-speed",
6 "full-speed" and "low-speed". In case this isn't passed
7 via DT, USB controllers should default to their maximum
8 HW capability.
9 - dr_mode: tells Dual-Role USB controllers that we want to work on a
10 particular mode. Valid arguments are "host",
11 "peripheral" and "otg". In case this attribute isn't
12 passed via DT, USB DRD controllers should default to
13 OTG.
14
15This is an attribute to a USB controller such as:
16
17dwc3@4a030000 {
18 compatible = "synopsys,dwc3";
19 reg = <0x4a030000 0xcfff>;
20 interrupts = <0 92 4>
21 usb-phy = <&usb2_phy>, <&usb3,phy>;
22 maximum-speed = "super-speed";
23 dr_mode = "otg";
24};
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt
index c4c9e9e664aa..ba797d3e6326 100644
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt
@@ -3,7 +3,7 @@ Tegra SOC USB PHY
3The device node for Tegra SOC USB PHY: 3The device node for Tegra SOC USB PHY:
4 4
5Required properties : 5Required properties :
6 - compatible : Should be "nvidia,tegra20-usb-phy". 6 - compatible : Should be "nvidia,tegra<chip>-usb-phy".
7 - reg : Defines the following set of registers, in the order listed: 7 - reg : Defines the following set of registers, in the order listed:
8 - The PHY's own register set. 8 - The PHY's own register set.
9 Always present. 9 Always present.
@@ -24,17 +24,26 @@ Required properties :
24Required properties for phy_type == ulpi: 24Required properties for phy_type == ulpi:
25 - nvidia,phy-reset-gpio : The GPIO used to reset the PHY. 25 - nvidia,phy-reset-gpio : The GPIO used to reset the PHY.
26 26
27Required PHY timing params for utmi phy: 27Required PHY timing params for utmi phy, for all chips:
28 - nvidia,hssync-start-delay : Number of 480 Mhz clock cycles to wait before 28 - nvidia,hssync-start-delay : Number of 480 Mhz clock cycles to wait before
29 start of sync launches RxActive 29 start of sync launches RxActive
30 - nvidia,elastic-limit : Variable FIFO Depth of elastic input store 30 - nvidia,elastic-limit : Variable FIFO Depth of elastic input store
31 - nvidia,idle-wait-delay : Number of 480 Mhz clock cycles of idle to wait 31 - nvidia,idle-wait-delay : Number of 480 Mhz clock cycles of idle to wait
32 before declare IDLE. 32 before declare IDLE.
33 - nvidia,term-range-adj : Range adjusment on terminations 33 - nvidia,term-range-adj : Range adjusment on terminations
34 - nvidia,xcvr-setup : HS driver output control 34 - Either one of the following for HS driver output control:
35 - nvidia,xcvr-setup : integer, uses the provided value.
36 - nvidia,xcvr-setup-use-fuses : boolean, indicates that the value is read
37 from the on-chip fuses
38 If both are provided, nvidia,xcvr-setup-use-fuses takes precedence.
35 - nvidia,xcvr-lsfslew : LS falling slew rate control. 39 - nvidia,xcvr-lsfslew : LS falling slew rate control.
36 - nvidia,xcvr-lsrslew : LS rising slew rate control. 40 - nvidia,xcvr-lsrslew : LS rising slew rate control.
37 41
42Required PHY timing params for utmi phy, only on Tegra30 and above:
43 - nvidia,xcvr-hsslew : HS slew rate control.
44 - nvidia,hssquelch-level : HS squelch detector level.
45 - nvidia,hsdiscon-level : HS disconnect detector level.
46
38Optional properties: 47Optional properties:
39 - nvidia,has-legacy-mode : boolean indicates whether this controller can 48 - nvidia,has-legacy-mode : boolean indicates whether this controller can
40 operate in legacy mode (as APX 2500 / 2600). In legacy mode some 49 operate in legacy mode (as APX 2500 / 2600). In legacy mode some
@@ -48,5 +57,5 @@ Optional properties:
48 peripheral means it is device controller 57 peripheral means it is device controller
49 otg means it can operate as either ("on the go") 58 otg means it can operate as either ("on the go")
50 59
51Required properties for dr_mode == otg: 60VBUS control (required for dr_mode == otg, optional for dr_mode == host):
52 - vbus-supply: regulator for VBUS 61 - vbus-supply: regulator for VBUS
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt
index 57e71f6817d0..9088ab09e200 100644
--- a/Documentation/devicetree/bindings/usb/omap-usb.txt
+++ b/Documentation/devicetree/bindings/usb/omap-usb.txt
@@ -53,6 +53,11 @@ OMAP DWC3 GLUE
53 It should be set to "1" for HW mode and "2" for SW mode. 53 It should be set to "1" for HW mode and "2" for SW mode.
54 - ranges: the child address space are mapped 1:1 onto the parent address space 54 - ranges: the child address space are mapped 1:1 onto the parent address space
55 55
56Optional Properties:
57 - extcon : phandle for the extcon device omap dwc3 uses to detect
58 connect/disconnect events.
59 - vbus-supply : phandle to the regulator device tree node if needed.
60
56Sub-nodes: 61Sub-nodes:
57The dwc3 core should be added as subnode to omap dwc3 glue. 62The dwc3 core should be added as subnode to omap dwc3 glue.
58- dwc3 : 63- dwc3 :
diff --git a/Documentation/devicetree/bindings/usb/samsung-hsotg.txt b/Documentation/devicetree/bindings/usb/samsung-hsotg.txt
new file mode 100644
index 000000000000..b83d428a265e
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/samsung-hsotg.txt
@@ -0,0 +1,40 @@
1Samsung High Speed USB OTG controller
2-----------------------------
3
4The Samsung HSOTG IP can be found on Samsung SoCs, from S3C6400 onwards.
5It gives functionality of OTG-compliant USB 2.0 host and device with
6support for USB 2.0 high-speed (480Mbps) and full-speed (12 Mbps)
7operation.
8
9Currently only device mode is supported.
10
11Binding details
12-----
13
14Required properties:
15- compatible: "samsung,s3c6400-hsotg" should be used for all currently
16 supported SoC,
17- interrupt-parent: phandle for the interrupt controller to which the
18 interrupt signal of the HSOTG block is routed,
19- interrupts: specifier of interrupt signal of interrupt controller,
20 according to bindings of interrupt controller,
21- clocks: contains an array of clock specifiers:
22 - first entry: OTG clock
23- clock-names: contains array of clock names:
24 - first entry: must be "otg"
25- vusb_d-supply: phandle to voltage regulator of digital section,
26- vusb_a-supply: phandle to voltage regulator of analog section.
27
28Example
29-----
30
31 hsotg@12480000 {
32 compatible = "samsung,s3c6400-hsotg";
33 reg = <0x12480000 0x20000>;
34 interrupts = <0 71 0>;
35 clocks = <&clock 305>;
36 clock-names = "otg";
37 vusb_d-supply = <&vusb_reg>;
38 vusb_a-supply = <&vusbdac_reg>;
39 };
40
diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
new file mode 100644
index 000000000000..5752df0e17a2
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
@@ -0,0 +1,14 @@
1USB xHCI controllers
2
3Required properties:
4 - compatible: should be "xhci-platform".
5 - reg: should contain address and length of the standard XHCI
6 register set for the device.
7 - interrupts: one XHCI interrupt should be described here.
8
9Example:
10 usb@f0931000 {
11 compatible = "xhci-platform";
12 reg = <0xf0931000 0x8c8>;
13 interrupts = <0x0 0x4e 0x0>;
14 };
diff --git a/Documentation/devicetree/bindings/usb/usb3503.txt b/Documentation/devicetree/bindings/usb/usb3503.txt
index 8c5be48b43c8..a018da4a7ad7 100644
--- a/Documentation/devicetree/bindings/usb/usb3503.txt
+++ b/Documentation/devicetree/bindings/usb/usb3503.txt
@@ -1,8 +1,11 @@
1SMSC USB3503 High-Speed Hub Controller 1SMSC USB3503 High-Speed Hub Controller
2 2
3Required properties: 3Required properties:
4- compatible: Should be "smsc,usb3503". 4- compatible: Should be "smsc,usb3503" or "smsc,usb3503a".
5- reg: Specifies the i2c slave address, it should be 0x08. 5
6Optional properties:
7- reg: Specifies the i2c slave address, it is required and should be 0x08
8 if I2C is used.
6- connect-gpios: Should specify GPIO for connect. 9- connect-gpios: Should specify GPIO for connect.
7- disabled-ports: Should specify the ports unused. 10- disabled-ports: Should specify the ports unused.
8 '1' or '2' or '3' are availe for this property to describe the port 11 '1' or '2' or '3' are availe for this property to describe the port
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 366ce9b87240..2956800f0240 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -7,10 +7,12 @@ ad Avionic Design GmbH
7adi Analog Devices, Inc. 7adi Analog Devices, Inc.
8aeroflexgaisler Aeroflex Gaisler AB 8aeroflexgaisler Aeroflex Gaisler AB
9ak Asahi Kasei Corp. 9ak Asahi Kasei Corp.
10altr Altera Corp.
10amcc Applied Micro Circuits Corporation (APM, formally AMCC) 11amcc Applied Micro Circuits Corporation (APM, formally AMCC)
11apm Applied Micro Circuits Corporation (APM) 12apm Applied Micro Circuits Corporation (APM)
12arm ARM Ltd. 13arm ARM Ltd.
13atmel Atmel Corporation 14atmel Atmel Corporation
15avago Avago Technologies
14bosch Bosch Sensortec GmbH 16bosch Bosch Sensortec GmbH
15brcm Broadcom Corporation 17brcm Broadcom Corporation
16cavium Cavium, Inc. 18cavium Cavium, Inc.
@@ -36,6 +38,7 @@ linux Linux-specific binding
36lsi LSI Corp. (LSI Logic) 38lsi LSI Corp. (LSI Logic)
37marvell Marvell Technology Group Ltd. 39marvell Marvell Technology Group Ltd.
38maxim Maxim Integrated Products 40maxim Maxim Integrated Products
41microchip Microchip Technology Inc.
39mosaixtech Mosaix Technologies, Inc. 42mosaixtech Mosaix Technologies, Inc.
40national National Semiconductor 43national National Semiconductor
41nintendo Nintendo 44nintendo Nintendo
diff --git a/Documentation/devicetree/bindings/video/simple-framebuffer.txt b/Documentation/devicetree/bindings/video/simple-framebuffer.txt
index 3ea460583111..70c26f3a5b9a 100644
--- a/Documentation/devicetree/bindings/video/simple-framebuffer.txt
+++ b/Documentation/devicetree/bindings/video/simple-framebuffer.txt
@@ -12,6 +12,7 @@ Required properties:
12- stride: The number of bytes in each line of the framebuffer. 12- stride: The number of bytes in each line of the framebuffer.
13- format: The format of the framebuffer surface. Valid values are: 13- format: The format of the framebuffer surface. Valid values are:
14 - r5g6b5 (16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b). 14 - r5g6b5 (16-bit pixels, d[15:11]=r, d[10:5]=g, d[4:0]=b).
15 - a8b8g8r8 (32-bit pixels, d[31:24]=a, d[23:16]=b, d[15:8]=g, d[7:0]=r).
15 16
16Example: 17Example:
17 18
diff --git a/Documentation/devicetree/bindings/watchdog/sun4i-wdt.txt b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
index ecd650adff31..e39cb266c8f4 100644
--- a/Documentation/devicetree/bindings/watchdog/sun4i-wdt.txt
+++ b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
@@ -1,8 +1,9 @@
1Allwinner sun4i Watchdog timer 1Allwinner SoCs Watchdog timer
2 2
3Required properties: 3Required properties:
4 4
5- compatible : should be "allwinner,sun4i-wdt" 5- compatible : should be "allwinner,<soc-family>-wdt", the currently supported
6 SoC families being sun4i and sun6i
6- reg : Specifies base physical address and size of the registers. 7- reg : Specifies base physical address and size of the registers.
7 8
8Example: 9Example:
diff --git a/Documentation/dma-buf-sharing.txt b/Documentation/dma-buf-sharing.txt
index 0b23261561d2..505e71172ae7 100644
--- a/Documentation/dma-buf-sharing.txt
+++ b/Documentation/dma-buf-sharing.txt
@@ -321,7 +321,7 @@ Access to a dma_buf from the kernel context involves three steps:
321 321
322 When the importer is done accessing the range specified in begin_cpu_access, 322 When the importer is done accessing the range specified in begin_cpu_access,
323 it needs to announce this to the exporter (to facilitate cache flushing and 323 it needs to announce this to the exporter (to facilitate cache flushing and
324 unpinning of any pinned resources). The result of of any dma_buf kmap calls 324 unpinning of any pinned resources). The result of any dma_buf kmap calls
325 after end_cpu_access is undefined. 325 after end_cpu_access is undefined.
326 326
327 Interface: 327 Interface:
@@ -407,6 +407,18 @@ Being able to mmap an export dma-buf buffer object has 2 main use-cases:
407 interesting ways depending upong the exporter (if userspace starts depending 407 interesting ways depending upong the exporter (if userspace starts depending
408 upon this implicit synchronization). 408 upon this implicit synchronization).
409 409
410Other Interfaces Exposed to Userspace on the dma-buf FD
411------------------------------------------------------
412
413- Since kernel 3.12 the dma-buf FD supports the llseek system call, but only
414 with offset=0 and whence=SEEK_END|SEEK_SET. SEEK_SET is supported to allow
415 the usual size discover pattern size = SEEK_END(0); SEEK_SET(0). Every other
416 llseek operation will report -EINVAL.
417
418 If llseek on dma-buf FDs isn't support the kernel will report -ESPIPE for all
419 cases. Userspace can use this to detect support for discovering the dma-buf
420 size using llseek.
421
410Miscellaneous notes 422Miscellaneous notes
411------------------- 423-------------------
412 424
diff --git a/Documentation/dmatest.txt b/Documentation/dmatest.txt
index 132a094c7bc3..a2b5663eae26 100644
--- a/Documentation/dmatest.txt
+++ b/Documentation/dmatest.txt
@@ -16,15 +16,16 @@ be built as module or inside kernel. Let's consider those cases.
16 Part 2 - When dmatest is built as a module... 16 Part 2 - When dmatest is built as a module...
17 17
18After mounting debugfs and loading the module, the /sys/kernel/debug/dmatest 18After mounting debugfs and loading the module, the /sys/kernel/debug/dmatest
19folder with nodes will be created. They are the same as module parameters with 19folder with nodes will be created. There are two important files located. First
20addition of the 'run' node that controls run and stop phases of the test. 20is the 'run' node that controls run and stop phases of the test, and the second
21one, 'results', is used to get the test case results.
21 22
22Note that in this case test will not run on load automatically. 23Note that in this case test will not run on load automatically.
23 24
24Example of usage: 25Example of usage:
25 % echo dma0chan0 > /sys/kernel/debug/dmatest/channel 26 % echo dma0chan0 > /sys/module/dmatest/parameters/channel
26 % echo 2000 > /sys/kernel/debug/dmatest/timeout 27 % echo 2000 > /sys/module/dmatest/parameters/timeout
27 % echo 1 > /sys/kernel/debug/dmatest/iterations 28 % echo 1 > /sys/module/dmatest/parameters/iterations
28 % echo 1 > /sys/kernel/debug/dmatest/run 29 % echo 1 > /sys/kernel/debug/dmatest/run
29 30
30Hint: available channel list could be extracted by running the following 31Hint: available channel list could be extracted by running the following
@@ -55,8 +56,8 @@ for the first performed test. After user gets a control, the test could be
55re-run with the same or different parameters. For the details see the above 56re-run with the same or different parameters. For the details see the above
56section "Part 2 - When dmatest is built as a module..." 57section "Part 2 - When dmatest is built as a module..."
57 58
58In both cases the module parameters are used as initial values for the test case. 59In both cases the module parameters are used as the actual values for the test
59You always could check them at run-time by running 60case. You always could check them at run-time by running
60 % grep -H . /sys/module/dmatest/parameters/* 61 % grep -H . /sys/module/dmatest/parameters/*
61 62
62 Part 4 - Gathering the test results 63 Part 4 - Gathering the test results
diff --git a/Documentation/driver-model/devres.txt b/Documentation/driver-model/devres.txt
index b4671459857f..fcb34a5697ea 100644
--- a/Documentation/driver-model/devres.txt
+++ b/Documentation/driver-model/devres.txt
@@ -237,6 +237,12 @@ MEM
237 devm_kzalloc() 237 devm_kzalloc()
238 devm_kfree() 238 devm_kfree()
239 239
240IIO
241 devm_iio_device_alloc()
242 devm_iio_device_free()
243 devm_iio_trigger_alloc()
244 devm_iio_trigger_free()
245
240IO region 246IO region
241 devm_request_region() 247 devm_request_region()
242 devm_request_mem_region() 248 devm_request_mem_region()
@@ -293,3 +299,6 @@ PWM
293PHY 299PHY
294 devm_usb_get_phy() 300 devm_usb_get_phy()
295 devm_usb_put_phy() 301 devm_usb_put_phy()
302
303SLAVE DMA ENGINE
304 devm_acpi_dma_controller_register()
diff --git a/Documentation/early-userspace/README b/Documentation/early-userspace/README
index 661a73fad399..93e63a9af30b 100644
--- a/Documentation/early-userspace/README
+++ b/Documentation/early-userspace/README
@@ -83,8 +83,7 @@ Where's this all leading?
83 83
84The klibc distribution contains some of the necessary software to make 84The klibc distribution contains some of the necessary software to make
85early userspace useful. The klibc distribution is currently 85early userspace useful. The klibc distribution is currently
86maintained separately from the kernel, but this may change early in 86maintained separately from the kernel.
87the 2.7 era (it missed the boat for 2.5).
88 87
89You can obtain somewhat infrequent snapshots of klibc from 88You can obtain somewhat infrequent snapshots of klibc from
90ftp://ftp.kernel.org/pub/linux/libs/klibc/ 89ftp://ftp.kernel.org/pub/linux/libs/klibc/
diff --git a/Documentation/fb/fbcon.txt b/Documentation/fb/fbcon.txt
index 99ea58e65eff..4a9739abc860 100644
--- a/Documentation/fb/fbcon.txt
+++ b/Documentation/fb/fbcon.txt
@@ -150,7 +150,7 @@ C. Boot options
150 150
151C. Attaching, Detaching and Unloading 151C. Attaching, Detaching and Unloading
152 152
153Before going on on how to attach, detach and unload the framebuffer console, an 153Before going on how to attach, detach and unload the framebuffer console, an
154illustration of the dependencies may help. 154illustration of the dependencies may help.
155 155
156The console layer, as with most subsystems, needs a driver that interfaces with 156The console layer, as with most subsystems, needs a driver that interfaces with
diff --git a/Documentation/fb/viafb.modes b/Documentation/fb/viafb.modes
index 02e5b487f00e..2a547da2e5cc 100644
--- a/Documentation/fb/viafb.modes
+++ b/Documentation/fb/viafb.modes
@@ -571,7 +571,7 @@ mode "640x480-60"
571# 160 chars 800 lines 571# 160 chars 800 lines
572# Blank Time 4.798 us 0.564 ms 572# Blank Time 4.798 us 0.564 ms
573# 50 chars 28 lines 573# 50 chars 28 lines
574# Polarity negtive positive 574# Polarity negative positive
575# 575#
576 mode "1280x800-60" 576 mode "1280x800-60"
577# D: 83.500 MHz, H: 49.702 kHz, V: 60.00 Hz 577# D: 83.500 MHz, H: 49.702 kHz, V: 60.00 Hz
diff --git a/Documentation/fb/viafb.txt b/Documentation/fb/viafb.txt
index 444e34b52ae1..1cb2462a71ce 100644
--- a/Documentation/fb/viafb.txt
+++ b/Documentation/fb/viafb.txt
@@ -32,7 +32,7 @@
32 Start viafb with default settings: 32 Start viafb with default settings:
33 #modprobe viafb 33 #modprobe viafb
34 34
35 Start viafb with with user options: 35 Start viafb with user options:
36 #modprobe viafb viafb_mode=800x600 viafb_bpp=16 viafb_refresh=60 36 #modprobe viafb viafb_mode=800x600 viafb_bpp=16 viafb_refresh=60
37 viafb_active_dev=CRT+DVI viafb_dvi_port=DVP1 37 viafb_active_dev=CRT+DVI viafb_dvi_port=DVP1
38 viafb_mode1=1024x768 viafb_bpp=16 viafb_refresh1=60 38 viafb_mode1=1024x768 viafb_bpp=16 viafb_refresh1=60
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt
index b349d57b76ea..9dae59407437 100644
--- a/Documentation/filesystems/btrfs.txt
+++ b/Documentation/filesystems/btrfs.txt
@@ -87,7 +87,7 @@ Unless otherwise specified, all options default to off.
87 87
88 device=<devicepath> 88 device=<devicepath>
89 Specify a device during mount so that ioctls on the control device 89 Specify a device during mount so that ioctls on the control device
90 can be avoided. Especialy useful when trying to mount a multi-device 90 can be avoided. Especially useful when trying to mount a multi-device
91 setup as root. May be specified multiple times for multiple devices. 91 setup as root. May be specified multiple times for multiple devices.
92 92
93 discard 93 discard
diff --git a/Documentation/filesystems/caching/backend-api.txt b/Documentation/filesystems/caching/backend-api.txt
index d78bab9622c6..277d1e810670 100644
--- a/Documentation/filesystems/caching/backend-api.txt
+++ b/Documentation/filesystems/caching/backend-api.txt
@@ -299,6 +299,15 @@ performed on the denizens of the cache. These are held in a structure of type:
299 enough space in the cache to permit this. 299 enough space in the cache to permit this.
300 300
301 301
302 (*) Check coherency state of an object [mandatory]:
303
304 int (*check_consistency)(struct fscache_object *object)
305
306 This method is called to have the cache check the saved auxiliary data of
307 the object against the netfs's idea of the state. 0 should be returned
308 if they're consistent and -ESTALE otherwise. -ENOMEM and -ERESTARTSYS
309 may also be returned.
310
302 (*) Update object [mandatory]: 311 (*) Update object [mandatory]:
303 312
304 int (*update_object)(struct fscache_object *object) 313 int (*update_object)(struct fscache_object *object)
diff --git a/Documentation/filesystems/caching/netfs-api.txt b/Documentation/filesystems/caching/netfs-api.txt
index 97e6c0ecc5ef..11a0a40ce445 100644
--- a/Documentation/filesystems/caching/netfs-api.txt
+++ b/Documentation/filesystems/caching/netfs-api.txt
@@ -32,7 +32,7 @@ This document contains the following sections:
32 (9) Setting the data file size 32 (9) Setting the data file size
33 (10) Page alloc/read/write 33 (10) Page alloc/read/write
34 (11) Page uncaching 34 (11) Page uncaching
35 (12) Index and data file update 35 (12) Index and data file consistency
36 (13) Miscellaneous cookie operations 36 (13) Miscellaneous cookie operations
37 (14) Cookie unregistration 37 (14) Cookie unregistration
38 (15) Index invalidation 38 (15) Index invalidation
@@ -433,7 +433,7 @@ to the caller. The attribute adjustment excludes read and write operations.
433 433
434 434
435===================== 435=====================
436PAGE READ/ALLOC/WRITE 436PAGE ALLOC/READ/WRITE
437===================== 437=====================
438 438
439And the sixth step is to store and retrieve pages in the cache. There are 439And the sixth step is to store and retrieve pages in the cache. There are
@@ -499,7 +499,7 @@ Else if there's a copy of the page resident in the cache:
499 (*) An argument that's 0 on success or negative for an error code. 499 (*) An argument that's 0 on success or negative for an error code.
500 500
501 If an error occurs, it should be assumed that the page contains no usable 501 If an error occurs, it should be assumed that the page contains no usable
502 data. 502 data. fscache_readpages_cancel() may need to be called.
503 503
504 end_io_func() will be called in process context if the read is results in 504 end_io_func() will be called in process context if the read is results in
505 an error, but it might be called in interrupt context if the read is 505 an error, but it might be called in interrupt context if the read is
@@ -623,6 +623,22 @@ some of the pages being read and some being allocated. Those pages will have
623been marked appropriately and will need uncaching. 623been marked appropriately and will need uncaching.
624 624
625 625
626CANCELLATION OF UNREAD PAGES
627----------------------------
628
629If one or more pages are passed to fscache_read_or_alloc_pages() but not then
630read from the cache and also not read from the underlying filesystem then
631those pages will need to have any marks and reservations removed. This can be
632done by calling:
633
634 void fscache_readpages_cancel(struct fscache_cookie *cookie,
635 struct list_head *pages);
636
637prior to returning to the caller. The cookie argument should be as passed to
638fscache_read_or_alloc_pages(). Every page in the pages list will be examined
639and any that have PG_fscache set will be uncached.
640
641
626============== 642==============
627PAGE UNCACHING 643PAGE UNCACHING
628============== 644==============
@@ -690,9 +706,18 @@ written to the cache and for the cache to finish with the page generally. No
690error is returned. 706error is returned.
691 707
692 708
693========================== 709===============================
694INDEX AND DATA FILE UPDATE 710INDEX AND DATA FILE CONSISTENCY
695========================== 711===============================
712
713To find out whether auxiliary data for an object is up to data within the
714cache, the following function can be called:
715
716 int fscache_check_consistency(struct fscache_cookie *cookie)
717
718This will call back to the netfs to check whether the auxiliary data associated
719with a cookie is correct. It returns 0 if it is and -ESTALE if it isn't; it
720may also return -ENOMEM and -ERESTARTSYS.
696 721
697To request an update of the index data for an index or other object, the 722To request an update of the index data for an index or other object, the
698following function should be called: 723following function should be called:
diff --git a/Documentation/filesystems/cifs/AUTHORS b/Documentation/filesystems/cifs/AUTHORS
new file mode 100644
index 000000000000..ca4a67a0bb1e
--- /dev/null
+++ b/Documentation/filesystems/cifs/AUTHORS
@@ -0,0 +1,56 @@
1Original Author
2===============
3Steve French (sfrench@samba.org)
4
5The author wishes to express his appreciation and thanks to:
6Andrew Tridgell (Samba team) for his early suggestions about smb/cifs VFS
7improvements. Thanks to IBM for allowing me time and test resources to pursue
8this project, to Jim McDonough from IBM (and the Samba Team) for his help, to
9the IBM Linux JFS team for explaining many esoteric Linux filesystem features.
10Jeremy Allison of the Samba team has done invaluable work in adding the server
11side of the original CIFS Unix extensions and reviewing and implementing
12portions of the newer CIFS POSIX extensions into the Samba 3 file server. Thank
13Dave Boutcher of IBM Rochester (author of the OS/400 smb/cifs filesystem client)
14for proving years ago that very good smb/cifs clients could be done on Unix-like
15operating systems. Volker Lendecke, Andrew Tridgell, Urban Widmark, John
16Newbigin and others for their work on the Linux smbfs module. Thanks to
17the other members of the Storage Network Industry Association CIFS Technical
18Workgroup for their work specifying this highly complex protocol and finally
19thanks to the Samba team for their technical advice and encouragement.
20
21Patch Contributors
22------------------
23Zwane Mwaikambo
24Andi Kleen
25Amrut Joshi
26Shobhit Dayal
27Sergey Vlasov
28Richard Hughes
29Yury Umanets
30Mark Hamzy (for some of the early cifs IPv6 work)
31Domen Puncer
32Jesper Juhl (in particular for lots of whitespace/formatting cleanup)
33Vince Negri and Dave Stahl (for finding an important caching bug)
34Adrian Bunk (kcalloc cleanups)
35Miklos Szeredi
36Kazeon team for various fixes especially for 2.4 version.
37Asser Ferno (Change Notify support)
38Shaggy (Dave Kleikamp) for innumerable small fs suggestions and some good cleanup
39Gunter Kukkukk (testing and suggestions for support of old servers)
40Igor Mammedov (DFS support)
41Jeff Layton (many, many fixes, as well as great work on the cifs Kerberos code)
42Scott Lovenberg
43
44Test case and Bug Report contributors
45-------------------------------------
46Thanks to those in the community who have submitted detailed bug reports
47and debug of problems they have found: Jochen Dolze, David Blaine,
48Rene Scharfe, Martin Josefsson, Alexander Wild, Anthony Liguori,
49Lars Muller, Urban Widmark, Massimiliano Ferrero, Howard Owen,
50Olaf Kirch, Kieron Briggs, Nick Millington and others. Also special
51mention to the Stanford Checker (SWAT) which pointed out many minor
52bugs in error paths. Valuable suggestions also have come from Al Viro
53and Dave Miller.
54
55And thanks to the IBM LTC and Power test teams and SuSE testers for
56finding multiple bugs during excellent stress test runs.
diff --git a/Documentation/filesystems/cifs/CHANGES b/Documentation/filesystems/cifs/CHANGES
new file mode 100644
index 000000000000..bc0025cdd1c9
--- /dev/null
+++ b/Documentation/filesystems/cifs/CHANGES
@@ -0,0 +1,1065 @@
1Version 1.62
2------------
3Add sockopt=TCP_NODELAY mount option. EA (xattr) routines hardened
4to more strictly handle corrupt frames.
5
6Version 1.61
7------------
8Fix append problem to Samba servers (files opened with O_APPEND could
9have duplicated data). Fix oops in cifs_lookup. Workaround problem
10mounting to OS/400 Netserve. Fix oops in cifs_get_tcp_session.
11Disable use of server inode numbers when server only
12partially supports them (e.g. for one server querying inode numbers on
13FindFirst fails but QPathInfo queries works). Fix oops with dfs in
14cifs_put_smb_ses. Fix mmap to work on directio mounts (needed
15for OpenOffice when on forcedirectio mount e.g.)
16
17Version 1.60
18-------------
19Fix memory leak in reconnect. Fix oops in DFS mount error path.
20Set s_maxbytes to smaller (the max that vfs can handle) so that
21sendfile will now work over cifs mounts again. Add noforcegid
22and noforceuid mount parameters. Fix small mem leak when using
23ntlmv2. Fix 2nd mount to same server but with different port to
24be allowed (rather than reusing the 1st port) - only when the
25user explicitly overrides the port on the 2nd mount.
26
27Version 1.59
28------------
29Client uses server inode numbers (which are persistent) rather than
30client generated ones by default (mount option "serverino" turned
31on by default if server supports it). Add forceuid and forcegid
32mount options (so that when negotiating unix extensions specifying
33which uid mounted does not immediately force the server's reported
34uids to be overridden). Add support for scope mount parm. Improve
35hard link detection to use same inode for both. Do not set
36read-only dos attribute on directories (for chmod) since Windows
37explorer special cases this attribute bit for directories for
38a different purpose.
39
40Version 1.58
41------------
42Guard against buffer overruns in various UCS-2 to UTF-8 string conversions
43when the UTF-8 string is composed of unusually long (more than 4 byte) converted
44characters. Add support for mounting root of a share which redirects immediately
45to DFS target. Convert string conversion functions from Unicode to more
46accurately mark string length before allocating memory (which may help the
47rare cases where a UTF-8 string is much larger than the UCS2 string that
48we converted from). Fix endianness of the vcnum field used during
49session setup to distinguish multiple mounts to same server from different
50userids. Raw NTLMSSP fixed (it requires /proc/fs/cifs/experimental
51flag to be set to 2, and mount must enable krb5 to turn on extended security).
52Performance of file create to Samba improved (posix create on lookup
53removes 1 of 2 network requests sent on file create)
54
55Version 1.57
56------------
57Improve support for multiple security contexts to the same server. We
58used to use the same "vcnumber" for all connections which could cause
59the server to treat subsequent connections, especially those that
60are authenticated as guest, as reconnections, invalidating the earlier
61user's smb session. This fix allows cifs to mount multiple times to the
62same server with different userids without risking invalidating earlier
63established security contexts. fsync now sends SMB Flush operation
64to better ensure that we wait for server to write all of the data to
65server disk (not just write it over the network). Add new mount
66parameter to allow user to disable sending the (slow) SMB flush on
67fsync if desired (fsync still flushes all cached write data to the server).
68Posix file open support added (turned off after one attempt if server
69fails to support it properly, as with Samba server versions prior to 3.3.2)
70Fix "redzone overwritten" bug in cifs_put_tcon (CIFSTcon may allocate too
71little memory for the "nativeFileSystem" field returned by the server
72during mount). Endian convert inode numbers if necessary (makes it easier
73to compare inode numbers on network files from big endian systems).
74
75Version 1.56
76------------
77Add "forcemandatorylock" mount option to allow user to use mandatory
78rather than posix (advisory) byte range locks, even though server would
79support posix byte range locks. Fix query of root inode when prefixpath
80specified and user does not have access to query information about the
81top of the share. Fix problem in 2.6.28 resolving DFS paths to
82Samba servers (worked to Windows). Fix rmdir so that pending search
83(readdir) requests do not get invalid results which include the now
84removed directory. Fix oops in cifs_dfs_ref.c when prefixpath is not reachable
85when using DFS. Add better file create support to servers which support
86the CIFS POSIX protocol extensions (this adds support for new flags
87on create, and improves semantics for write of locked ranges).
88
89Version 1.55
90------------
91Various fixes to make delete of open files behavior more predictable
92(when delete of an open file fails we mark the file as "delete-on-close"
93in a way that more servers accept, but only if we can first rename the
94file to a temporary name). Add experimental support for more safely
95handling fcntl(F_SETLEASE). Convert cifs to using blocking tcp
96sends, and also let tcp autotune the socket send and receive buffers.
97This reduces the number of EAGAIN errors returned by TCP/IP in
98high stress workloads (and the number of retries on socket writes
99when sending large SMBWriteX requests). Fix case in which a portion of
100data can in some cases not get written to the file on the server before the
101file is closed. Fix DFS parsing to properly handle path consumed field,
102and to handle certain codepage conversions better. Fix mount and
103umount race that can cause oops in mount or umount or reconnect.
104
105Version 1.54
106------------
107Fix premature write failure on congested networks (we would give up
108on EAGAIN from the socket too quickly on large writes).
109Cifs_mkdir and cifs_create now respect the setgid bit on parent dir.
110Fix endian problems in acl (mode from/to cifs acl) on bigendian
111architectures. Fix problems with preserving timestamps on copying open
112files (e.g. "cp -a") to Windows servers. For mkdir and create honor setgid bit
113on parent directory when server supports Unix Extensions but not POSIX
114create. Update cifs.upcall version to handle new Kerberos sec flags
115(this requires update of cifs.upcall program from Samba). Fix memory leak
116on dns_upcall (resolving DFS referralls). Fix plain text password
117authentication (requires setting SecurityFlags to 0x30030 to enable
118lanman and plain text though). Fix writes to be at correct offset when
119file is open with O_APPEND and file is on a directio (forcediretio) mount.
120Fix bug in rewinding readdir directory searches. Add nodfs mount option.
121
122Version 1.53
123------------
124DFS support added (Microsoft Distributed File System client support needed
125for referrals which enable a hierarchical name space among servers).
126Disable temporary caching of mode bits to servers which do not support
127storing of mode (e.g. Windows servers, when client mounts without cifsacl
128mount option) and add new "dynperm" mount option to enable temporary caching
129of mode (enable old behavior). Fix hang on mount caused when server crashes
130tcp session during negotiate protocol.
131
132Version 1.52
133------------
134Fix oops on second mount to server when null auth is used.
135Enable experimental Kerberos support. Return writebehind errors on flush
136and sync so that events like out of disk space get reported properly on
137cached files. Fix setxattr failure to certain Samba versions. Fix mount
138of second share to disconnected server session (autoreconnect on this).
139Add ability to modify cifs acls for handling chmod (when mounted with
140cifsacl flag). Fix prefixpath path separator so we can handle mounts
141with prefixpaths longer than one directory (one path component) when
142mounted to Windows servers. Fix slow file open when cifsacl
143enabled. Fix memory leak in FindNext when the SMB call returns -EBADF.
144
145
146Version 1.51
147------------
148Fix memory leak in statfs when mounted to very old servers (e.g.
149Windows 9x). Add new feature "POSIX open" which allows servers
150which support the current POSIX Extensions to provide better semantics
151(e.g. delete for open files opened with posix open). Take into
152account umask on posix mkdir not just older style mkdir. Add
153ability to mount to IPC$ share (which allows CIFS named pipes to be
154opened, read and written as if they were files). When 1st tree
155connect fails (e.g. due to signing negotiation failure) fix
156leak that causes cifsd not to stop and rmmod to fail to cleanup
157cifs_request_buffers pool. Fix problem with POSIX Open/Mkdir on
158bigendian architectures. Fix possible memory corruption when
159EAGAIN returned on kern_recvmsg. Return better error if server
160requires packet signing but client has disabled it. When mounted
161with cifsacl mount option - mode bits are approximated based
162on the contents of the ACL of the file or directory. When cifs
163mount helper is missing convert make sure that UNC name
164has backslash (not forward slash) between ip address of server
165and the share name.
166
167Version 1.50
168------------
169Fix NTLMv2 signing. NFS server mounted over cifs works (if cifs mount is
170done with "serverino" mount option). Add support for POSIX Unlink
171(helps with certain sharing violation cases when server such as
172Samba supports newer POSIX CIFS Protocol Extensions). Add "nounix"
173mount option to allow disabling the CIFS Unix Extensions for just
174that mount. Fix hang on spinlock in find_writable_file (race when
175reopening file after session crash). Byte range unlock request to
176windows server could unlock more bytes (on server copy of file)
177than intended if start of unlock request is well before start of
178a previous byte range lock that we issued.
179
180Version 1.49
181------------
182IPv6 support. Enable ipv6 addresses to be passed on mount (put the ipv6
183address after the "ip=" mount option, at least until mount.cifs is fixed to
184handle DNS host to ipv6 name translation). Accept override of uid or gid
185on mount even when Unix Extensions are negotiated (it used to be ignored
186when Unix Extensions were ignored). This allows users to override the
187default uid and gid for files when they are certain that the uids or
188gids on the server do not match those of the client. Make "sec=none"
189mount override username (so that null user connection is attempted)
190to match what documentation said. Support for very large reads, over 127K,
191available to some newer servers (such as Samba 3.0.26 and later but
192note that it also requires setting CIFSMaxBufSize at module install
193time to a larger value which may hurt performance in some cases).
194Make sign option force signing (or fail if server does not support it).
195
196Version 1.48
197------------
198Fix mtime bouncing around from local idea of last write times to remote time.
199Fix hang (in i_size_read) when simultaneous size update of same remote file
200on smp system corrupts sequence number. Do not reread unnecessarily partial page
201(which we are about to overwrite anyway) when writing out file opened rw.
202When DOS attribute of file on non-Unix server's file changes on the server side
203from read-only back to read-write, reflect this change in default file mode
204(we had been leaving a file's mode read-only until the inode were reloaded).
205Allow setting of attribute back to ATTR_NORMAL (removing readonly dos attribute
206when archive dos attribute not set and we are changing mode back to writeable
207on server which does not support the Unix Extensions). Remove read only dos
208attribute on chmod when adding any write permission (ie on any of
209user/group/other (not all of user/group/other ie 0222) when
210mounted to windows. Add support for POSIX MkDir (slight performance
211enhancement and eliminates the network race between the mkdir and set
212path info of the mode).
213
214
215Version 1.47
216------------
217Fix oops in list_del during mount caused by unaligned string.
218Fix file corruption which could occur on some large file
219copies caused by writepages page i/o completion bug.
220Seek to SEEK_END forces check for update of file size for non-cached
221files. Allow file size to be updated on remote extend of locally open,
222non-cached file. Fix reconnect to newer Samba servers (or other servers
223which support the CIFS Unix/POSIX extensions) so that we again tell the
224server the Unix/POSIX cifs capabilities which we support (SetFSInfo).
225Add experimental support for new POSIX Open/Mkdir (which returns
226stat information on the open, and allows setting the mode).
227
228Version 1.46
229------------
230Support deep tree mounts. Better support OS/2, Win9x (DOS) time stamps.
231Allow null user to be specified on mount ("username="). Do not return
232EINVAL on readdir when filldir fails due to overwritten blocksize
233(fixes FC problem). Return error in rename 2nd attempt retry (ie report
234if rename by handle also fails, after rename by path fails, we were
235not reporting whether the retry worked or not). Fix NTLMv2 to
236work to Windows servers (mount with option "sec=ntlmv2").
237
238Version 1.45
239------------
240Do not time out lockw calls when using posix extensions. Do not
241time out requests if server still responding reasonably fast
242on requests on other threads. Improve POSIX locking emulation,
243(lock cancel now works, and unlock of merged range works even
244to Windows servers now). Fix oops on mount to lanman servers
245(win9x, os/2 etc.) when null password. Do not send listxattr
246(SMB to query all EAs) if nouser_xattr specified. Fix SE Linux
247problem (instantiate inodes/dentries in right order for readdir).
248
249Version 1.44
250------------
251Rewritten sessionsetup support, including support for legacy SMB
252session setup needed for OS/2 and older servers such as Windows 95 and 98.
253Fix oops on ls to OS/2 servers. Add support for level 1 FindFirst
254so we can do search (ls etc.) to OS/2. Do not send NTCreateX
255or recent levels of FindFirst unless server says it supports NT SMBs
256(instead use legacy equivalents from LANMAN dialect). Fix to allow
257NTLMv2 authentication support (now can use stronger password hashing
258on mount if corresponding /proc/fs/cifs/SecurityFlags is set (0x4004).
259Allow override of global cifs security flags on mount via "sec=" option(s).
260
261Version 1.43
262------------
263POSIX locking to servers which support CIFS POSIX Extensions
264(disabled by default controlled by proc/fs/cifs/Experimental).
265Handle conversion of long share names (especially Asian languages)
266to Unicode during mount. Fix memory leak in sess struct on reconnect.
267Fix rare oops after acpi suspend. Fix O_TRUNC opens to overwrite on
268cifs open which helps rare case when setpathinfo fails or server does
269not support it.
270
271Version 1.42
272------------
273Fix slow oplock break when mounted to different servers at the same time and
274the tids match and we try to find matching fid on wrong server. Fix read
275looping when signing required by server (2.6.16 kernel only). Fix readdir
276vs. rename race which could cause each to hang. Return . and .. even
277if server does not. Allow searches to skip first three entries and
278begin at any location. Fix oops in find_writeable_file.
279
280Version 1.41
281------------
282Fix NTLMv2 security (can be enabled in /proc/fs/cifs) so customers can
283configure stronger authentication. Fix sfu symlinks so they can
284be followed (not just recognized). Fix wraparound of bcc on
285read responses when buffer size over 64K and also fix wrap of
286max smb buffer size when CIFSMaxBufSize over 64K. Fix oops in
287cifs_user_read and cifs_readpages (when EAGAIN on send of smb
288on socket is returned over and over). Add POSIX (advisory) byte range
289locking support (requires server with newest CIFS UNIX Extensions
290to the protocol implemented). Slow down negprot slightly in port 139
291RFC1001 case to give session_init time on buggy servers.
292
293Version 1.40
294------------
295Use fsuid (fsgid) more consistently instead of uid (gid). Improve performance
296of readpages by eliminating one extra memcpy. Allow update of file size
297from remote server even if file is open for write as long as mount is
298directio. Recognize share mode security and send NTLM encrypted password
299on tree connect if share mode negotiated.
300
301Version 1.39
302------------
303Defer close of a file handle slightly if pending writes depend on that handle
304(this reduces the EBADF bad file handle errors that can be logged under heavy
305stress on writes). Modify cifs Kconfig options to expose CONFIG_CIFS_STATS2
306Fix SFU style symlinks and mknod needed for servers which do not support the
307CIFS Unix Extensions. Fix setfacl/getfacl on bigendian. Timeout negative
308dentries so files that the client sees as deleted but that later get created
309on the server will be recognized. Add client side permission check on setattr.
310Timeout stuck requests better (where server has never responded or sent corrupt
311responses)
312
313Version 1.38
314------------
315Fix tcp socket retransmission timeouts (e.g. on ENOSPACE from the socket)
316to be smaller at first (but increasing) so large write performance performance
317over GigE is better. Do not hang thread on illegal byte range lock response
318from Windows (Windows can send an RFC1001 size which does not match smb size) by
319allowing an SMBs TCP length to be up to a few bytes longer than it should be.
320wsize and rsize can now be larger than negotiated buffer size if server
321supports large readx/writex, even when directio mount flag not specified.
322Write size will in many cases now be 16K instead of 4K which greatly helps
323file copy performance on lightly loaded networks. Fix oops in dnotify
324when experimental config flag enabled. Make cifsFYI more granular.
325
326Version 1.37
327------------
328Fix readdir caching when unlink removes file in current search buffer,
329and this is followed by a rewind search to just before the deleted entry.
330Do not attempt to set ctime unless atime and/or mtime change requested
331(most servers throw it away anyway). Fix length check of received smbs
332to be more accurate. Fix big endian problem with mapchars mount option,
333and with a field returned by statfs.
334
335Version 1.36
336------------
337Add support for mounting to older pre-CIFS servers such as Windows9x and ME.
338For these older servers, add option for passing netbios name of server in
339on mount (servernetbiosname). Add suspend support for power management, to
340avoid cifsd thread preventing software suspend from working.
341Add mount option for disabling the default behavior of sending byte range lock
342requests to the server (necessary for certain applications which break with
343mandatory lock behavior such as Evolution), and also mount option for
344requesting case insensitive matching for path based requests (requesting
345case sensitive is the default).
346
347Version 1.35
348------------
349Add writepage performance improvements. Fix path name conversions
350for long filenames on mounts which were done with "mapchars" mount option
351specified. Ensure multiplex ids do not collide. Fix case in which
352rmmod can oops if done soon after last unmount. Fix truncated
353search (readdir) output when resume filename was a long filename.
354Fix filename conversion when mapchars mount option was specified and
355filename was a long filename.
356
357Version 1.34
358------------
359Fix error mapping of the TOO_MANY_LINKS (hardlinks) case.
360Do not oops if root user kills cifs oplock kernel thread or
361kills the cifsd thread (NB: killing the cifs kernel threads is not
362recommended, unmount and rmmod cifs will kill them when they are
363no longer needed). Fix readdir to ASCII servers (ie older servers
364which do not support Unicode) and also require asterisk.
365Fix out of memory case in which data could be written one page
366off in the page cache.
367
368Version 1.33
369------------
370Fix caching problem, in which readdir of directory containing a file
371which was cached could cause the file's time stamp to be updated
372without invalidating the readahead data (so we could get stale
373file data on the client for that file even as the server copy changed).
374Cleanup response processing so cifsd can not loop when abnormally
375terminated.
376
377
378Version 1.32
379------------
380Fix oops in ls when Transact2 FindFirst (or FindNext) returns more than one
381transact response for an SMB request and search entry split across two frames.
382Add support for lsattr (getting ext2/ext3/reiserfs attr flags from the server)
383as new protocol extensions. Do not send Get/Set calls for POSIX ACLs
384unless server explicitly claims to support them in CIFS Unix extensions
385POSIX ACL capability bit. Fix packet signing when multiuser mounting with
386different users from the same client to the same server. Fix oops in
387cifs_close. Add mount option for remapping reserved characters in
388filenames (also allow recognizing files with created by SFU which have any
389of these seven reserved characters, except backslash, to be recognized).
390Fix invalid transact2 message (we were sometimes trying to interpret
391oplock breaks as SMB responses). Add ioctl for checking that the
392current uid matches the uid of the mounter (needed by umount.cifs).
393Reduce the number of large buffer allocations in cifs response processing
394(significantly reduces memory pressure under heavy stress with multiple
395processes accessing the same server at the same time).
396
397Version 1.31
398------------
399Fix updates of DOS attributes and time fields so that files on NT4 servers
400do not get marked delete on close. Display sizes of cifs buffer pools in
401cifs stats. Fix oops in unmount when cifsd thread being killed by
402shutdown. Add generic readv/writev and aio support. Report inode numbers
403consistently in readdir and lookup (when serverino mount option is
404specified use the inode number that the server reports - for both lookup
405and readdir, otherwise by default the locally generated inode number is used
406for inodes created in either path since servers are not always able to
407provide unique inode numbers when exporting multiple volumes from under one
408sharename).
409
410Version 1.30
411------------
412Allow new nouser_xattr mount parm to disable xattr support for user namespace.
413Do not flag user_xattr mount parm in dmesg. Retry failures setting file time
414(mostly affects NT4 servers) by retry with handle based network operation.
415Add new POSIX Query FS Info for returning statfs info more accurately.
416Handle passwords with multiple commas in them.
417
418Version 1.29
419------------
420Fix default mode in sysfs of cifs module parms. Remove old readdir routine.
421Fix capabilities flags for large readx so as to allow reads larger than 64K.
422
423Version 1.28
424------------
425Add module init parm for large SMB buffer size (to allow it to be changed
426from its default of 16K) which is especially useful for large file copy
427when mounting with the directio mount option. Fix oops after
428returning from mount when experimental ExtendedSecurity enabled and
429SpnegoNegotiated returning invalid error. Fix case to retry better when
430peek returns from 1 to 3 bytes on socket which should have more data.
431Fixed path based calls (such as cifs lookup) to handle path names
432longer than 530 (now can handle PATH_MAX). Fix pass through authentication
433from Samba server to DC (Samba required dummy LM password).
434
435Version 1.27
436------------
437Turn off DNOTIFY (directory change notification support) by default
438(unless built with the experimental flag) to fix hang with KDE
439file browser. Fix DNOTIFY flag mappings. Fix hang (in wait_event
440waiting on an SMB response) in SendReceive when session dies but
441reconnects quickly from another task. Add module init parms for
442minimum number of large and small network buffers in the buffer pools,
443and for the maximum number of simultaneous requests.
444
445Version 1.26
446------------
447Add setfacl support to allow setting of ACLs remotely to Samba 3.10 and later
448and other POSIX CIFS compliant servers. Fix error mapping for getfacl
449to EOPNOTSUPP when server does not support posix acls on the wire. Fix
450improperly zeroed buffer in CIFS Unix extensions set times call.
451
452Version 1.25
453------------
454Fix internationalization problem in cifs readdir with filenames that map to
455longer UTF-8 strings than the string on the wire was in Unicode. Add workaround
456for readdir to netapp servers. Fix search rewind (seek into readdir to return
457non-consecutive entries). Do not do readdir when server negotiates
458buffer size to small to fit filename. Add support for reading POSIX ACLs from
459the server (add also acl and noacl mount options).
460
461Version 1.24
462------------
463Optionally allow using server side inode numbers, rather than client generated
464ones by specifying mount option "serverino" - this is required for some apps
465to work which double check hardlinked files and have persistent inode numbers.
466
467Version 1.23
468------------
469Multiple bigendian fixes. On little endian systems (for reconnect after
470network failure) fix tcp session reconnect code so we do not try first
471to reconnect on reverse of port 445. Treat reparse points (NTFS junctions)
472as directories rather than symlinks because we can do follow link on them.
473
474Version 1.22
475------------
476Add config option to enable XATTR (extended attribute) support, mapping
477xattr names in the "user." namespace space to SMB/CIFS EAs. Lots of
478minor fixes pointed out by the Stanford SWAT checker (mostly missing
479or out of order NULL pointer checks in little used error paths).
480
481Version 1.21
482------------
483Add new mount parm to control whether mode check (generic_permission) is done
484on the client. If Unix extensions are enabled and the uids on the client
485and server do not match, client permission checks are meaningless on
486server uids that do not exist on the client (this does not affect the
487normal ACL check which occurs on the server). Fix default uid
488on mknod to match create and mkdir. Add optional mount parm to allow
489override of the default uid behavior (in which the server sets the uid
490and gid of newly created files). Normally for network filesystem mounts
491user want the server to set the uid/gid on newly created files (rather than
492using uid of the client processes you would in a local filesystem).
493
494Version 1.20
495------------
496Make transaction counts more consistent. Merge /proc/fs/cifs/SimultaneousOps
497info into /proc/fs/cifs/DebugData. Fix oops in rare oops in readdir
498(in build_wildcard_path_from_dentry). Fix mknod to pass type field
499(block/char/fifo) properly. Remove spurious mount warning log entry when
500credentials passed as mount argument. Set major/minor device number in
501inode for block and char devices when unix extensions enabled.
502
503Version 1.19
504------------
505Fix /proc/fs/cifs/Stats and DebugData display to handle larger
506amounts of return data. Properly limit requests to MAX_REQ (50
507is the usual maximum active multiplex SMB/CIFS requests per server).
508Do not kill cifsd (and thus hurt the other SMB session) when more than one
509session to the same server (but with different userids) exists and one
510of the two user's smb sessions is being removed while leaving the other.
511Do not loop reconnecting in cifsd demultiplex thread when admin
512kills the thread without going through unmount.
513
514Version 1.18
515------------
516Do not rename hardlinked files (since that should be a noop). Flush
517cached write behind data when reopening a file after session abend,
518except when already in write. Grab per socket sem during reconnect
519to avoid oops in sendmsg if overlapping with reconnect. Do not
520reset cached inode file size on readdir for files open for write on
521client.
522
523
524Version 1.17
525------------
526Update number of blocks in file so du command is happier (in Linux a fake
527blocksize of 512 is required for calculating number of blocks in inode).
528Fix prepare write of partial pages to read in data from server if possible.
529Fix race on tcpStatus field between unmount and reconnection code, causing
530cifsd process sometimes to hang around forever. Improve out of memory
531checks in cifs_filldir
532
533Version 1.16
534------------
535Fix incorrect file size in file handle based setattr on big endian hardware.
536Fix oops in build_path_from_dentry when out of memory. Add checks for invalid
537and closing file structs in writepage/partialpagewrite. Add statistics
538for each mounted share (new menuconfig option). Fix endianness problem in
539volume information displayed in /proc/fs/cifs/DebugData (only affects
540affects big endian architectures). Prevent renames while constructing
541path names for open, mkdir and rmdir.
542
543Version 1.15
544------------
545Change to mempools for alloc smb request buffers and multiplex structs
546to better handle low memory problems (and potential deadlocks).
547
548Version 1.14
549------------
550Fix incomplete listings of large directories on Samba servers when Unix
551extensions enabled. Fix oops when smb_buffer can not be allocated. Fix
552rename deadlock when writing out dirty pages at same time.
553
554Version 1.13
555------------
556Fix open of files in which O_CREATE can cause the mode to change in
557some cases. Fix case in which retry of write overlaps file close.
558Fix PPC64 build error. Reduce excessive stack usage in smb password
559hashing. Fix overwrite of Linux user's view of file mode to Windows servers.
560
561Version 1.12
562------------
563Fixes for large file copy, signal handling, socket retry, buffer
564allocation and low memory situations.
565
566Version 1.11
567------------
568Better port 139 support to Windows servers (RFC1001/RFC1002 Session_Initialize)
569also now allowing support for specifying client netbiosname. NT4 support added.
570
571Version 1.10
572------------
573Fix reconnection (and certain failed mounts) to properly wake up the
574blocked users thread so it does not seem hung (in some cases was blocked
575until the cifs receive timeout expired). Fix spurious error logging
576to kernel log when application with open network files killed.
577
578Version 1.09
579------------
580Fix /proc/fs module unload warning message (that could be logged
581to the kernel log). Fix intermittent failure in connectathon
582test7 (hardlink count not immediately refreshed in case in which
583inode metadata can be incorrectly kept cached when time near zero)
584
585Version 1.08
586------------
587Allow file_mode and dir_mode (specified at mount time) to be enforced
588locally (the server already enforced its own ACLs too) for servers
589that do not report the correct mode (do not support the
590CIFS Unix Extensions).
591
592Version 1.07
593------------
594Fix some small memory leaks in some unmount error paths. Fix major leak
595of cache pages in readpages causing multiple read oriented stress
596testcases (including fsx, and even large file copy) to fail over time.
597
598Version 1.06
599------------
600Send NTCreateX with ATTR_POSIX if Linux/Unix extensions negotiated with server.
601This allows files that differ only in case and improves performance of file
602creation and file open to such servers. Fix semaphore conflict which causes
603slow delete of open file to Samba (which unfortunately can cause an oplock
604break to self while vfs_unlink held i_sem) which can hang for 20 seconds.
605
606Version 1.05
607------------
608fixes to cifs_readpages for fsx test case
609
610Version 1.04
611------------
612Fix caching data integrity bug when extending file size especially when no
613oplock on file. Fix spurious logging of valid already parsed mount options
614that are parsed outside of the cifs vfs such as nosuid.
615
616
617Version 1.03
618------------
619Connect to server when port number override not specified, and tcp port
620unitialized. Reset search to restart at correct file when kernel routine
621filldir returns error during large directory searches (readdir).
622
623Version 1.02
624------------
625Fix caching problem when files opened by multiple clients in which
626page cache could contain stale data, and write through did
627not occur often enough while file was still open when read ahead
628(read oplock) not allowed. Treat "sep=" when first mount option
629as an override of comma as the default separator between mount
630options.
631
632Version 1.01
633------------
634Allow passwords longer than 16 bytes. Allow null password string.
635
636Version 1.00
637------------
638Gracefully clean up failed mounts when attempting to mount to servers such as
639Windows 98 that terminate tcp sessions during protocol negotiation. Handle
640embedded commas in mount parsing of passwords.
641
642Version 0.99
643------------
644Invalidate local inode cached pages on oplock break and when last file
645instance is closed so that the client does not continue using stale local
646copy rather than later modified server copy of file. Do not reconnect
647when server drops the tcp session prematurely before negotiate
648protocol response. Fix oops in reopen_file when dentry freed. Allow
649the support for CIFS Unix Extensions to be disabled via proc interface.
650
651Version 0.98
652------------
653Fix hang in commit_write during reconnection of open files under heavy load.
654Fix unload_nls oops in a mount failure path. Serialize writes to same socket
655which also fixes any possible races when cifs signatures are enabled in SMBs
656being sent out of signature sequence number order.
657
658Version 0.97
659------------
660Fix byte range locking bug (endian problem) causing bad offset and
661length.
662
663Version 0.96
664------------
665Fix oops (in send_sig) caused by CIFS unmount code trying to
666wake up the demultiplex thread after it had exited. Do not log
667error on harmless oplock release of closed handle.
668
669Version 0.95
670------------
671Fix unsafe global variable usage and password hash failure on gcc 3.3.1
672Fix problem reconnecting secondary mounts to same server after session
673failure. Fix invalid dentry - race in mkdir when directory gets created
674by another client between the lookup and mkdir.
675
676Version 0.94
677------------
678Fix to list processing in reopen_files. Fix reconnection when server hung
679but tcpip session still alive. Set proper timeout on socket read.
680
681Version 0.93
682------------
683Add missing mount options including iocharset. SMP fixes in write and open.
684Fix errors in reconnecting after TCP session failure. Fix module unloading
685of default nls codepage
686
687Version 0.92
688------------
689Active smb transactions should never go negative (fix double FreeXid). Fix
690list processing in file routines. Check return code on kmalloc in open.
691Fix spinlock usage for SMP.
692
693Version 0.91
694------------
695Fix oops in reopen_files when invalid dentry. drop dentry on server rename
696and on revalidate errors. Fix cases where pid is now tgid. Fix return code
697on create hard link when server does not support them.
698
699Version 0.90
700------------
701Fix scheduling while atomic error in getting inode info on newly created file.
702Fix truncate of existing files opened with O_CREAT but not O_TRUNC set.
703
704Version 0.89
705------------
706Fix oops on write to dead tcp session. Remove error log write for case when file open
707O_CREAT but not O_EXCL
708
709Version 0.88
710------------
711Fix non-POSIX behavior on rename of open file and delete of open file by taking
712advantage of trans2 SetFileInfo rename facility if available on target server.
713Retry on ENOSPC and EAGAIN socket errors.
714
715Version 0.87
716------------
717Fix oops on big endian readdir. Set blksize to be even power of two (2**blkbits) to fix
718allocation size miscalculation. After oplock token lost do not read through
719cache.
720
721Version 0.86
722------------
723Fix oops on empty file readahead. Fix for file size handling for locally cached files.
724
725Version 0.85
726------------
727Fix oops in mkdir when server fails to return inode info. Fix oops in reopen_files
728during auto reconnection to server after server recovered from failure.
729
730Version 0.84
731------------
732Finish support for Linux 2.5 open/create changes, which removes the
733redundant NTCreate/QPathInfo/close that was sent during file create.
734Enable oplock by default. Enable packet signing by default (needed to
735access many recent Windows servers)
736
737Version 0.83
738------------
739Fix oops when mounting to long server names caused by inverted parms to kmalloc.
740Fix MultiuserMount (/proc/fs/cifs configuration setting) so that when enabled
741we will choose a cifs user session (smb uid) that better matches the local
742uid if a) the mount uid does not match the current uid and b) we have another
743session to the same server (ip address) for a different mount which
744matches the current local uid.
745
746Version 0.82
747------------
748Add support for mknod of block or character devices. Fix oplock
749code (distributed caching) to properly send response to oplock
750break from server.
751
752Version 0.81
753------------
754Finish up CIFS packet digital signing for the default
755NTLM security case. This should help Windows 2003
756network interoperability since it is common for
757packet signing to be required now. Fix statfs (stat -f)
758which recently started returning errors due to
759invalid value (-1 instead of 0) being set in the
760struct kstatfs f_ffiles field.
761
762Version 0.80
763-----------
764Fix oops on stopping oplock thread when removing cifs when
765built as module.
766
767Version 0.79
768------------
769Fix mount options for ro (readonly), uid, gid and file and directory mode.
770
771Version 0.78
772------------
773Fix errors displayed on failed mounts to be more understandable.
774Fixed various incorrect or misleading smb to posix error code mappings.
775
776Version 0.77
777------------
778Fix display of NTFS DFS junctions to display as symlinks.
779They are the network equivalent. Fix oops in
780cifs_partialpagewrite caused by missing spinlock protection
781of openfile linked list. Allow writebehind caching errors to
782be returned to the application at file close.
783
784Version 0.76
785------------
786Clean up options displayed in /proc/mounts by show_options to
787be more consistent with other filesystems.
788
789Version 0.75
790------------
791Fix delete of readonly file to Windows servers. Reflect
792presence or absence of read only dos attribute in mode
793bits for servers that do not support CIFS Unix extensions.
794Fix shortened results on readdir of large directories to
795servers supporting CIFS Unix extensions (caused by
796incorrect resume key).
797
798Version 0.74
799------------
800Fix truncate bug (set file size) that could cause hangs e.g. running fsx
801
802Version 0.73
803------------
804unload nls if mount fails.
805
806Version 0.72
807------------
808Add resume key support to search (readdir) code to workaround
809Windows bug. Add /proc/fs/cifs/LookupCacheEnable which
810allows disabling caching of attribute information for
811lookups.
812
813Version 0.71
814------------
815Add more oplock handling (distributed caching code). Remove
816dead code. Remove excessive stack space utilization from
817symlink routines.
818
819Version 0.70
820------------
821Fix oops in get dfs referral (triggered when null path sent in to
822mount). Add support for overriding rsize at mount time.
823
824Version 0.69
825------------
826Fix buffer overrun in readdir which caused intermittent kernel oopses.
827Fix writepage code to release kmap on write data. Allow "-ip=" new
828mount option to be passed in on parameter distinct from the first part
829(server name portion of) the UNC name. Allow override of the
830tcp port of the target server via new mount option "-port="
831
832Version 0.68
833------------
834Fix search handle leak on rewind. Fix setuid and gid so that they are
835reflected in the local inode immediately. Cleanup of whitespace
836to make 2.4 and 2.5 versions more consistent.
837
838
839Version 0.67
840------------
841Fix signal sending so that captive thread (cifsd) exits on umount
842(which was causing the warning in kmem_cache_free of the request buffers
843at rmmod time). This had broken as a sideeffect of the recent global
844kernel change to daemonize. Fix memory leak in readdir code which
845showed up in "ls -R" (and applications that did search rewinding).
846
847Version 0.66
848------------
849Reconnect tids and fids after session reconnection (still do not
850reconnect byte range locks though). Fix problem caching
851lookup information for directory inodes, improving performance,
852especially in deep directory trees. Fix various build warnings.
853
854Version 0.65
855------------
856Finish fixes to commit write for caching/readahead consistency. fsx
857now works to Samba servers. Fix oops caused when readahead
858was interrupted by a signal.
859
860Version 0.64
861------------
862Fix data corruption (in partial page after truncate) that caused fsx to
863fail to Windows servers. Cleaned up some extraneous error logging in
864common error paths. Add generic sendfile support.
865
866Version 0.63
867------------
868Fix memory leak in AllocMidQEntry.
869Finish reconnection logic, so connection with server can be dropped
870(or server rebooted) and the cifs client will reconnect.
871
872Version 0.62
873------------
874Fix temporary socket leak when bad userid or password specified
875(or other SMBSessSetup failure). Increase maximum buffer size to slightly
876over 16K to allow negotiation of up to Samba and Windows server default read
877sizes. Add support for readpages
878
879Version 0.61
880------------
881Fix oops when username not passed in on mount. Extensive fixes and improvements
882to error logging (strip redundant newlines, change debug macros to ensure newline
883passed in and to be more consistent). Fix writepage wrong file handle problem,
884a readonly file handle could be incorrectly used to attempt to write out
885file updates through the page cache to multiply open files. This could cause
886the iozone benchmark to fail on the fwrite test. Fix bug mounting two different
887shares to the same Windows server when using different usernames
888(doing this to Samba servers worked but Windows was rejecting it) - now it is
889possible to use different userids when connecting to the same server from a
890Linux client. Fix oops when treeDisconnect called during unmount on
891previously freed socket.
892
893Version 0.60
894------------
895Fix oops in readpages caused by not setting address space operations in inode in
896rare code path.
897
898Version 0.59
899------------
900Includes support for deleting of open files and renaming over existing files (per POSIX
901requirement). Add readlink support for Windows junction points (directory symlinks).
902
903Version 0.58
904------------
905Changed read and write to go through pagecache. Added additional address space operations.
906Memory mapped operations now working.
907
908Version 0.57
909------------
910Added writepage code for additional memory mapping support. Fixed leak in xids causing
911the simultaneous operations counter (/proc/fs/cifs/SimultaneousOps) to increase on
912every stat call. Additional formatting cleanup.
913
914Version 0.56
915------------
916Fix bigendian bug in order of time conversion. Merge 2.5 to 2.4 version. Formatting cleanup.
917
918Version 0.55
919------------
920Fixes from Zwane Mwaikambo for adding missing return code checking in a few places.
921Also included a modified version of his fix to protect global list manipulation of
922the smb session and tree connection and mid related global variables.
923
924Version 0.54
925------------
926Fix problem with captive thread hanging around at unmount time. Adjust to 2.5.42-pre
927changes to superblock layout. Remove wasteful allocation of smb buffers (now the send
928buffer is reused for responses). Add more oplock handling. Additional minor cleanup.
929
930Version 0.53
931------------
932More stylistic updates to better match kernel style. Add additional statistics
933for filesystem which can be viewed via /proc/fs/cifs. Add more pieces of NTLMv2
934and CIFS Packet Signing enablement.
935
936Version 0.52
937------------
938Replace call to sleep_on with safer wait_on_event.
939Make stylistic changes to better match kernel style recommendations.
940Remove most typedef usage (except for the PDUs themselves).
941
942Version 0.51
943------------
944Update mount so the -unc mount option is no longer required (the ip address can be specified
945in a UNC style device name. Implementation of readpage/writepage started.
946
947Version 0.50
948------------
949Fix intermittent problem with incorrect smb header checking on badly
950fragmented tcp responses
951
952Version 0.49
953------------
954Fixes to setting of allocation size and file size.
955
956Version 0.48
957------------
958Various 2.5.38 fixes. Now works on 2.5.38
959
960Version 0.47
961------------
962Prepare for 2.5 kernel merge. Remove ifdefs.
963
964Version 0.46
965------------
966Socket buffer management fixes. Fix dual free.
967
968Version 0.45
969------------
970Various big endian fixes for hardlinks and symlinks and also for dfs.
971
972Version 0.44
973------------
974Various big endian fixes for servers with Unix extensions such as Samba
975
976Version 0.43
977------------
978Various FindNext fixes for incorrect filenames on large directory searches on big endian
979clients. basic posix file i/o tests now work on big endian machines, not just le
980
981Version 0.42
982------------
983SessionSetup and NegotiateProtocol now work from Big Endian machines.
984Various Big Endian fixes found during testing on the Linux on 390. Various fixes for compatibility with older
985versions of 2.4 kernel (now builds and works again on kernels at least as early as 2.4.7).
986
987Version 0.41
988------------
989Various minor fixes for Connectathon Posix "basic" file i/o test suite. Directory caching fixed so hardlinked
990files now return the correct number of links on fstat as they are repeatedly linked and unlinked.
991
992Version 0.40
993------------
994Implemented "Raw" (i.e. not encapsulated in SPNEGO) NTLMSSP (i.e. the Security Provider Interface used to negotiate
995session advanced session authentication). Raw NTLMSSP is preferred by Windows 2000 Professional and Windows XP.
996Began implementing support for SPNEGO encapsulation of NTLMSSP based session authentication blobs
997(which is the mechanism preferred by Windows 2000 server in the absence of Kerberos).
998
999Version 0.38
1000------------
1001Introduced optional mount helper utility mount.cifs and made coreq changes to cifs vfs to enable
1002it. Fixed a few bugs in the DFS code (e.g. bcc two bytes too short and incorrect uid in PDU).
1003
1004Version 0.37
1005------------
1006Rewrote much of connection and mount/unmount logic to handle bugs with
1007multiple uses to same share, multiple users to same server etc.
1008
1009Version 0.36
1010------------
1011Fixed major problem with dentry corruption (missing call to dput)
1012
1013Version 0.35
1014------------
1015Rewrite of readdir code to fix bug. Various fixes for bigendian machines.
1016Begin adding oplock support. Multiusermount and oplockEnabled flags added to /proc/fs/cifs
1017although corresponding function not fully implemented in the vfs yet
1018
1019Version 0.34
1020------------
1021Fixed dentry caching bug, misc. cleanup
1022
1023Version 0.33
1024------------
1025Fixed 2.5 support to handle build and configure changes as well as misc. 2.5 changes. Now can build
1026on current 2.5 beta version (2.5.24) of the Linux kernel as well as on 2.4 Linux kernels.
1027Support for STATUS codes (newer 32 bit NT error codes) added. DFS support begun to be added.
1028
1029Version 0.32
1030------------
1031Unix extensions (symlink, readlink, hardlink, chmod and some chgrp and chown) implemented
1032and tested against Samba 2.2.5
1033
1034
1035Version 0.31
1036------------
10371) Fixed lockrange to be correct (it was one byte too short)
1038
10392) Fixed GETLK (i.e. the fcntl call to test a range of bytes in a file to see if locked) to correctly
1040show range as locked when there is a conflict with an existing lock.
1041
10423) default file perms are now 2767 (indicating support for mandatory locks) instead of 777 for directories
1043in most cases. Eventually will offer optional ability to query server for the correct perms.
1044
10453) Fixed eventual trap when mounting twice to different shares on the same server when the first succeeded
1046but the second one was invalid and failed (the second one was incorrectly disconnecting the tcp and smb
1047session)
1048
10494) Fixed error logging of valid mount options
1050
10515) Removed logging of password field.
1052
10536) Moved negotiate, treeDisconnect and uloggoffX (only tConx and SessSetup remain in connect.c) to cifssmb.c
1054and cleaned them up and made them more consistent with other cifs functions.
1055
10567) Server support for Unix extensions is now fully detected and FindFirst is implemented both ways
1057(with or without Unix extensions) but FindNext and QueryPathInfo with the Unix extensions are not completed,
1058nor is the symlink support using the Unix extensions
1059
10608) Started adding the readlink and follow_link code
1061
1062Version 0.3
1063-----------
1064Initial drop
1065
diff --git a/Documentation/filesystems/cifs/README b/Documentation/filesystems/cifs/README
new file mode 100644
index 000000000000..2d5622f60e11
--- /dev/null
+++ b/Documentation/filesystems/cifs/README
@@ -0,0 +1,753 @@
1The CIFS VFS support for Linux supports many advanced network filesystem
2features such as hierarchical dfs like namespace, hardlinks, locking and more.
3It was designed to comply with the SNIA CIFS Technical Reference (which
4supersedes the 1992 X/Open SMB Standard) as well as to perform best practice
5practical interoperability with Windows 2000, Windows XP, Samba and equivalent
6servers. This code was developed in participation with the Protocol Freedom
7Information Foundation.
8
9Please see
10 http://protocolfreedom.org/ and
11 http://samba.org/samba/PFIF/
12for more details.
13
14
15For questions or bug reports please contact:
16 sfrench@samba.org (sfrench@us.ibm.com)
17
18Build instructions:
19==================
20For Linux 2.4:
211) Get the kernel source (e.g.from http://www.kernel.org)
22and download the cifs vfs source (see the project page
23at http://us1.samba.org/samba/Linux_CIFS_client.html)
24and change directory into the top of the kernel directory
25then patch the kernel (e.g. "patch -p1 < cifs_24.patch")
26to add the cifs vfs to your kernel configure options if
27it has not already been added (e.g. current SuSE and UL
28users do not need to apply the cifs_24.patch since the cifs vfs is
29already in the kernel configure menu) and then
30mkdir linux/fs/cifs and then copy the current cifs vfs files from
31the cifs download to your kernel build directory e.g.
32
33 cp <cifs_download_dir>/fs/cifs/* to <kernel_download_dir>/fs/cifs
34
352) make menuconfig (or make xconfig)
363) select cifs from within the network filesystem choices
374) save and exit
385) make dep
396) make modules (or "make" if CIFS VFS not to be built as a module)
40
41For Linux 2.6:
421) Download the kernel (e.g. from http://www.kernel.org)
43and change directory into the top of the kernel directory tree
44(e.g. /usr/src/linux-2.5.73)
452) make menuconfig (or make xconfig)
463) select cifs from within the network filesystem choices
474) save and exit
485) make
49
50
51Installation instructions:
52=========================
53If you have built the CIFS vfs as module (successfully) simply
54type "make modules_install" (or if you prefer, manually copy the file to
55the modules directory e.g. /lib/modules/2.4.10-4GB/kernel/fs/cifs/cifs.o).
56
57If you have built the CIFS vfs into the kernel itself, follow the instructions
58for your distribution on how to install a new kernel (usually you
59would simply type "make install").
60
61If you do not have the utility mount.cifs (in the Samba 3.0 source tree and on
62the CIFS VFS web site) copy it to the same directory in which mount.smbfs and
63similar files reside (usually /sbin). Although the helper software is not
64required, mount.cifs is recommended. Eventually the Samba 3.0 utility program
65"net" may also be helpful since it may someday provide easier mount syntax for
66users who are used to Windows e.g.
67 net use <mount point> <UNC name or cifs URL>
68Note that running the Winbind pam/nss module (logon service) on all of your
69Linux clients is useful in mapping Uids and Gids consistently across the
70domain to the proper network user. The mount.cifs mount helper can be
71trivially built from Samba 3.0 or later source e.g. by executing:
72
73 gcc samba/source/client/mount.cifs.c -o mount.cifs
74
75If cifs is built as a module, then the size and number of network buffers
76and maximum number of simultaneous requests to one server can be configured.
77Changing these from their defaults is not recommended. By executing modinfo
78 modinfo kernel/fs/cifs/cifs.ko
79on kernel/fs/cifs/cifs.ko the list of configuration changes that can be made
80at module initialization time (by running insmod cifs.ko) can be seen.
81
82Allowing User Mounts
83====================
84To permit users to mount and unmount over directories they own is possible
85with the cifs vfs. A way to enable such mounting is to mark the mount.cifs
86utility as suid (e.g. "chmod +s /sbin/mount.cifs). To enable users to
87umount shares they mount requires
881) mount.cifs version 1.4 or later
892) an entry for the share in /etc/fstab indicating that a user may
90unmount it e.g.
91//server/usersharename /mnt/username cifs user 0 0
92
93Note that when the mount.cifs utility is run suid (allowing user mounts),
94in order to reduce risks, the "nosuid" mount flag is passed in on mount to
95disallow execution of an suid program mounted on the remote target.
96When mount is executed as root, nosuid is not passed in by default,
97and execution of suid programs on the remote target would be enabled
98by default. This can be changed, as with nfs and other filesystems,
99by simply specifying "nosuid" among the mount options. For user mounts
100though to be able to pass the suid flag to mount requires rebuilding
101mount.cifs with the following flag:
102
103 gcc samba/source/client/mount.cifs.c -DCIFS_ALLOW_USR_SUID -o mount.cifs
104
105There is a corresponding manual page for cifs mounting in the Samba 3.0 and
106later source tree in docs/manpages/mount.cifs.8
107
108Allowing User Unmounts
109======================
110To permit users to ummount directories that they have user mounted (see above),
111the utility umount.cifs may be used. It may be invoked directly, or if
112umount.cifs is placed in /sbin, umount can invoke the cifs umount helper
113(at least for most versions of the umount utility) for umount of cifs
114mounts, unless umount is invoked with -i (which will avoid invoking a umount
115helper). As with mount.cifs, to enable user unmounts umount.cifs must be marked
116as suid (e.g. "chmod +s /sbin/umount.cifs") or equivalent (some distributions
117allow adding entries to a file to the /etc/permissions file to achieve the
118equivalent suid effect). For this utility to succeed the target path
119must be a cifs mount, and the uid of the current user must match the uid
120of the user who mounted the resource.
121
122Also note that the customary way of allowing user mounts and unmounts is
123(instead of using mount.cifs and unmount.cifs as suid) to add a line
124to the file /etc/fstab for each //server/share you wish to mount, but
125this can become unwieldy when potential mount targets include many
126or unpredictable UNC names.
127
128Samba Considerations
129====================
130To get the maximum benefit from the CIFS VFS, we recommend using a server that
131supports the SNIA CIFS Unix Extensions standard (e.g. Samba 2.2.5 or later or
132Samba 3.0) but the CIFS vfs works fine with a wide variety of CIFS servers.
133Note that uid, gid and file permissions will display default values if you do
134not have a server that supports the Unix extensions for CIFS (such as Samba
1352.2.5 or later). To enable the Unix CIFS Extensions in the Samba server, add
136the line:
137
138 unix extensions = yes
139
140to your smb.conf file on the server. Note that the following smb.conf settings
141are also useful (on the Samba server) when the majority of clients are Unix or
142Linux:
143
144 case sensitive = yes
145 delete readonly = yes
146 ea support = yes
147
148Note that server ea support is required for supporting xattrs from the Linux
149cifs client, and that EA support is present in later versions of Samba (e.g.
1503.0.6 and later (also EA support works in all versions of Windows, at least to
151shares on NTFS filesystems). Extended Attribute (xattr) support is an optional
152feature of most Linux filesystems which may require enabling via
153make menuconfig. Client support for extended attributes (user xattr) can be
154disabled on a per-mount basis by specifying "nouser_xattr" on mount.
155
156The CIFS client can get and set POSIX ACLs (getfacl, setfacl) to Samba servers
157version 3.10 and later. Setting POSIX ACLs requires enabling both XATTR and
158then POSIX support in the CIFS configuration options when building the cifs
159module. POSIX ACL support can be disabled on a per mount basic by specifying
160"noacl" on mount.
161
162Some administrators may want to change Samba's smb.conf "map archive" and
163"create mask" parameters from the default. Unless the create mask is changed
164newly created files can end up with an unnecessarily restrictive default mode,
165which may not be what you want, although if the CIFS Unix extensions are
166enabled on the server and client, subsequent setattr calls (e.g. chmod) can
167fix the mode. Note that creating special devices (mknod) remotely
168may require specifying a mkdev function to Samba if you are not using
169Samba 3.0.6 or later. For more information on these see the manual pages
170("man smb.conf") on the Samba server system. Note that the cifs vfs,
171unlike the smbfs vfs, does not read the smb.conf on the client system
172(the few optional settings are passed in on mount via -o parameters instead).
173Note that Samba 2.2.7 or later includes a fix that allows the CIFS VFS to delete
174open files (required for strict POSIX compliance). Windows Servers already
175supported this feature. Samba server does not allow symlinks that refer to files
176outside of the share, so in Samba versions prior to 3.0.6, most symlinks to
177files with absolute paths (ie beginning with slash) such as:
178 ln -s /mnt/foo bar
179would be forbidden. Samba 3.0.6 server or later includes the ability to create
180such symlinks safely by converting unsafe symlinks (ie symlinks to server
181files that are outside of the share) to a samba specific format on the server
182that is ignored by local server applications and non-cifs clients and that will
183not be traversed by the Samba server). This is opaque to the Linux client
184application using the cifs vfs. Absolute symlinks will work to Samba 3.0.5 or
185later, but only for remote clients using the CIFS Unix extensions, and will
186be invisbile to Windows clients and typically will not affect local
187applications running on the same server as Samba.
188
189Use instructions:
190================
191Once the CIFS VFS support is built into the kernel or installed as a module
192(cifs.o), you can use mount syntax like the following to access Samba or Windows
193servers:
194
195 mount -t cifs //9.53.216.11/e$ /mnt -o user=myname,pass=mypassword
196
197Before -o the option -v may be specified to make the mount.cifs
198mount helper display the mount steps more verbosely.
199After -o the following commonly used cifs vfs specific options
200are supported:
201
202 user=<username>
203 pass=<password>
204 domain=<domain name>
205
206Other cifs mount options are described below. Use of TCP names (in addition to
207ip addresses) is available if the mount helper (mount.cifs) is installed. If
208you do not trust the server to which are mounted, or if you do not have
209cifs signing enabled (and the physical network is insecure), consider use
210of the standard mount options "noexec" and "nosuid" to reduce the risk of
211running an altered binary on your local system (downloaded from a hostile server
212or altered by a hostile router).
213
214Although mounting using format corresponding to the CIFS URL specification is
215not possible in mount.cifs yet, it is possible to use an alternate format
216for the server and sharename (which is somewhat similar to NFS style mount
217syntax) instead of the more widely used UNC format (i.e. \\server\share):
218 mount -t cifs tcp_name_of_server:share_name /mnt -o user=myname,pass=mypasswd
219
220When using the mount helper mount.cifs, passwords may be specified via alternate
221mechanisms, instead of specifying it after -o using the normal "pass=" syntax
222on the command line:
2231) By including it in a credential file. Specify credentials=filename as one
224of the mount options. Credential files contain two lines
225 username=someuser
226 password=your_password
2272) By specifying the password in the PASSWD environment variable (similarly
228the user name can be taken from the USER environment variable).
2293) By specifying the password in a file by name via PASSWD_FILE
2304) By specifying the password in a file by file descriptor via PASSWD_FD
231
232If no password is provided, mount.cifs will prompt for password entry
233
234Restrictions
235============
236Servers must support either "pure-TCP" (port 445 TCP/IP CIFS connections) or RFC
2371001/1002 support for "Netbios-Over-TCP/IP." This is not likely to be a
238problem as most servers support this.
239
240Valid filenames differ between Windows and Linux. Windows typically restricts
241filenames which contain certain reserved characters (e.g.the character :
242which is used to delimit the beginning of a stream name by Windows), while
243Linux allows a slightly wider set of valid characters in filenames. Windows
244servers can remap such characters when an explicit mapping is specified in
245the Server's registry. Samba starting with version 3.10 will allow such
246filenames (ie those which contain valid Linux characters, which normally
247would be forbidden for Windows/CIFS semantics) as long as the server is
248configured for Unix Extensions (and the client has not disabled
249/proc/fs/cifs/LinuxExtensionsEnabled).
250
251
252CIFS VFS Mount Options
253======================
254A partial list of the supported mount options follows:
255 user The user name to use when trying to establish
256 the CIFS session.
257 password The user password. If the mount helper is
258 installed, the user will be prompted for password
259 if not supplied.
260 ip The ip address of the target server
261 unc The target server Universal Network Name (export) to
262 mount.
263 domain Set the SMB/CIFS workgroup name prepended to the
264 username during CIFS session establishment
265 forceuid Set the default uid for inodes to the uid
266 passed in on mount. For mounts to servers
267 which do support the CIFS Unix extensions, such as a
268 properly configured Samba server, the server provides
269 the uid, gid and mode so this parameter should not be
270 specified unless the server and clients uid and gid
271 numbering differ. If the server and client are in the
272 same domain (e.g. running winbind or nss_ldap) and
273 the server supports the Unix Extensions then the uid
274 and gid can be retrieved from the server (and uid
275 and gid would not have to be specifed on the mount.
276 For servers which do not support the CIFS Unix
277 extensions, the default uid (and gid) returned on lookup
278 of existing files will be the uid (gid) of the person
279 who executed the mount (root, except when mount.cifs
280 is configured setuid for user mounts) unless the "uid="
281 (gid) mount option is specified. Also note that permission
282 checks (authorization checks) on accesses to a file occur
283 at the server, but there are cases in which an administrator
284 may want to restrict at the client as well. For those
285 servers which do not report a uid/gid owner
286 (such as Windows), permissions can also be checked at the
287 client, and a crude form of client side permission checking
288 can be enabled by specifying file_mode and dir_mode on
289 the client. (default)
290 forcegid (similar to above but for the groupid instead of uid) (default)
291 noforceuid Fill in file owner information (uid) by requesting it from
292 the server if possible. With this option, the value given in
293 the uid= option (on mount) will only be used if the server
294 can not support returning uids on inodes.
295 noforcegid (similar to above but for the group owner, gid, instead of uid)
296 uid Set the default uid for inodes, and indicate to the
297 cifs kernel driver which local user mounted. If the server
298 supports the unix extensions the default uid is
299 not used to fill in the owner fields of inodes (files)
300 unless the "forceuid" parameter is specified.
301 gid Set the default gid for inodes (similar to above).
302 file_mode If CIFS Unix extensions are not supported by the server
303 this overrides the default mode for file inodes.
304 fsc Enable local disk caching using FS-Cache (off by default). This
305 option could be useful to improve performance on a slow link,
306 heavily loaded server and/or network where reading from the
307 disk is faster than reading from the server (over the network).
308 This could also impact scalability positively as the
309 number of calls to the server are reduced. However, local
310 caching is not suitable for all workloads for e.g. read-once
311 type workloads. So, you need to consider carefully your
312 workload/scenario before using this option. Currently, local
313 disk caching is functional for CIFS files opened as read-only.
314 dir_mode If CIFS Unix extensions are not supported by the server
315 this overrides the default mode for directory inodes.
316 port attempt to contact the server on this tcp port, before
317 trying the usual ports (port 445, then 139).
318 iocharset Codepage used to convert local path names to and from
319 Unicode. Unicode is used by default for network path
320 names if the server supports it. If iocharset is
321 not specified then the nls_default specified
322 during the local client kernel build will be used.
323 If server does not support Unicode, this parameter is
324 unused.
325 rsize default read size (usually 16K). The client currently
326 can not use rsize larger than CIFSMaxBufSize. CIFSMaxBufSize
327 defaults to 16K and may be changed (from 8K to the maximum
328 kmalloc size allowed by your kernel) at module install time
329 for cifs.ko. Setting CIFSMaxBufSize to a very large value
330 will cause cifs to use more memory and may reduce performance
331 in some cases. To use rsize greater than 127K (the original
332 cifs protocol maximum) also requires that the server support
333 a new Unix Capability flag (for very large read) which some
334 newer servers (e.g. Samba 3.0.26 or later) do. rsize can be
335 set from a minimum of 2048 to a maximum of 130048 (127K or
336 CIFSMaxBufSize, whichever is smaller)
337 wsize default write size (default 57344)
338 maximum wsize currently allowed by CIFS is 57344 (fourteen
339 4096 byte pages)
340 actimeo=n attribute cache timeout in seconds (default 1 second).
341 After this timeout, the cifs client requests fresh attribute
342 information from the server. This option allows to tune the
343 attribute cache timeout to suit the workload needs. Shorter
344 timeouts mean better the cache coherency, but increased number
345 of calls to the server. Longer timeouts mean reduced number
346 of calls to the server at the expense of less stricter cache
347 coherency checks (i.e. incorrect attribute cache for a short
348 period of time).
349 rw mount the network share read-write (note that the
350 server may still consider the share read-only)
351 ro mount network share read-only
352 version used to distinguish different versions of the
353 mount helper utility (not typically needed)
354 sep if first mount option (after the -o), overrides
355 the comma as the separator between the mount
356 parms. e.g.
357 -o user=myname,password=mypassword,domain=mydom
358 could be passed instead with period as the separator by
359 -o sep=.user=myname.password=mypassword.domain=mydom
360 this might be useful when comma is contained within username
361 or password or domain. This option is less important
362 when the cifs mount helper cifs.mount (version 1.1 or later)
363 is used.
364 nosuid Do not allow remote executables with the suid bit
365 program to be executed. This is only meaningful for mounts
366 to servers such as Samba which support the CIFS Unix Extensions.
367 If you do not trust the servers in your network (your mount
368 targets) it is recommended that you specify this option for
369 greater security.
370 exec Permit execution of binaries on the mount.
371 noexec Do not permit execution of binaries on the mount.
372 dev Recognize block devices on the remote mount.
373 nodev Do not recognize devices on the remote mount.
374 suid Allow remote files on this mountpoint with suid enabled to
375 be executed (default for mounts when executed as root,
376 nosuid is default for user mounts).
377 credentials Although ignored by the cifs kernel component, it is used by
378 the mount helper, mount.cifs. When mount.cifs is installed it
379 opens and reads the credential file specified in order
380 to obtain the userid and password arguments which are passed to
381 the cifs vfs.
382 guest Although ignored by the kernel component, the mount.cifs
383 mount helper will not prompt the user for a password
384 if guest is specified on the mount options. If no
385 password is specified a null password will be used.
386 perm Client does permission checks (vfs_permission check of uid
387 and gid of the file against the mode and desired operation),
388 Note that this is in addition to the normal ACL check on the
389 target machine done by the server software.
390 Client permission checking is enabled by default.
391 noperm Client does not do permission checks. This can expose
392 files on this mount to access by other users on the local
393 client system. It is typically only needed when the server
394 supports the CIFS Unix Extensions but the UIDs/GIDs on the
395 client and server system do not match closely enough to allow
396 access by the user doing the mount, but it may be useful with
397 non CIFS Unix Extension mounts for cases in which the default
398 mode is specified on the mount but is not to be enforced on the
399 client (e.g. perhaps when MultiUserMount is enabled)
400 Note that this does not affect the normal ACL check on the
401 target machine done by the server software (of the server
402 ACL against the user name provided at mount time).
403 serverino Use server's inode numbers instead of generating automatically
404 incrementing inode numbers on the client. Although this will
405 make it easier to spot hardlinked files (as they will have
406 the same inode numbers) and inode numbers may be persistent,
407 note that the server does not guarantee that the inode numbers
408 are unique if multiple server side mounts are exported under a
409 single share (since inode numbers on the servers might not
410 be unique if multiple filesystems are mounted under the same
411 shared higher level directory). Note that some older
412 (e.g. pre-Windows 2000) do not support returning UniqueIDs
413 or the CIFS Unix Extensions equivalent and for those
414 this mount option will have no effect. Exporting cifs mounts
415 under nfsd requires this mount option on the cifs mount.
416 This is now the default if server supports the
417 required network operation.
418 noserverino Client generates inode numbers (rather than using the actual one
419 from the server). These inode numbers will vary after
420 unmount or reboot which can confuse some applications,
421 but not all server filesystems support unique inode
422 numbers.
423 setuids If the CIFS Unix extensions are negotiated with the server
424 the client will attempt to set the effective uid and gid of
425 the local process on newly created files, directories, and
426 devices (create, mkdir, mknod). If the CIFS Unix Extensions
427 are not negotiated, for newly created files and directories
428 instead of using the default uid and gid specified on
429 the mount, cache the new file's uid and gid locally which means
430 that the uid for the file can change when the inode is
431 reloaded (or the user remounts the share).
432 nosetuids The client will not attempt to set the uid and gid on
433 on newly created files, directories, and devices (create,
434 mkdir, mknod) which will result in the server setting the
435 uid and gid to the default (usually the server uid of the
436 user who mounted the share). Letting the server (rather than
437 the client) set the uid and gid is the default. If the CIFS
438 Unix Extensions are not negotiated then the uid and gid for
439 new files will appear to be the uid (gid) of the mounter or the
440 uid (gid) parameter specified on the mount.
441 netbiosname When mounting to servers via port 139, specifies the RFC1001
442 source name to use to represent the client netbios machine
443 name when doing the RFC1001 netbios session initialize.
444 direct Do not do inode data caching on files opened on this mount.
445 This precludes mmapping files on this mount. In some cases
446 with fast networks and little or no caching benefits on the
447 client (e.g. when the application is doing large sequential
448 reads bigger than page size without rereading the same data)
449 this can provide better performance than the default
450 behavior which caches reads (readahead) and writes
451 (writebehind) through the local Linux client pagecache
452 if oplock (caching token) is granted and held. Note that
453 direct allows write operations larger than page size
454 to be sent to the server.
455 strictcache Use for switching on strict cache mode. In this mode the
456 client read from the cache all the time it has Oplock Level II,
457 otherwise - read from the server. All written data are stored
458 in the cache, but if the client doesn't have Exclusive Oplock,
459 it writes the data to the server.
460 rwpidforward Forward pid of a process who opened a file to any read or write
461 operation on that file. This prevent applications like WINE
462 from failing on read and write if we use mandatory brlock style.
463 acl Allow setfacl and getfacl to manage posix ACLs if server
464 supports them. (default)
465 noacl Do not allow setfacl and getfacl calls on this mount
466 user_xattr Allow getting and setting user xattrs (those attributes whose
467 name begins with "user." or "os2.") as OS/2 EAs (extended
468 attributes) to the server. This allows support of the
469 setfattr and getfattr utilities. (default)
470 nouser_xattr Do not allow getfattr/setfattr to get/set/list xattrs
471 mapchars Translate six of the seven reserved characters (not backslash)
472 *?<>|:
473 to the remap range (above 0xF000), which also
474 allows the CIFS client to recognize files created with
475 such characters by Windows's POSIX emulation. This can
476 also be useful when mounting to most versions of Samba
477 (which also forbids creating and opening files
478 whose names contain any of these seven characters).
479 This has no effect if the server does not support
480 Unicode on the wire.
481 nomapchars Do not translate any of these seven characters (default).
482 nocase Request case insensitive path name matching (case
483 sensitive is the default if the server supports it).
484 (mount option "ignorecase" is identical to "nocase")
485 posixpaths If CIFS Unix extensions are supported, attempt to
486 negotiate posix path name support which allows certain
487 characters forbidden in typical CIFS filenames, without
488 requiring remapping. (default)
489 noposixpaths If CIFS Unix extensions are supported, do not request
490 posix path name support (this may cause servers to
491 reject creatingfile with certain reserved characters).
492 nounix Disable the CIFS Unix Extensions for this mount (tree
493 connection). This is rarely needed, but it may be useful
494 in order to turn off multiple settings all at once (ie
495 posix acls, posix locks, posix paths, symlink support
496 and retrieving uids/gids/mode from the server) or to
497 work around a bug in server which implement the Unix
498 Extensions.
499 nobrl Do not send byte range lock requests to the server.
500 This is necessary for certain applications that break
501 with cifs style mandatory byte range locks (and most
502 cifs servers do not yet support requesting advisory
503 byte range locks).
504 forcemandatorylock Even if the server supports posix (advisory) byte range
505 locking, send only mandatory lock requests. For some
506 (presumably rare) applications, originally coded for
507 DOS/Windows, which require Windows style mandatory byte range
508 locking, they may be able to take advantage of this option,
509 forcing the cifs client to only send mandatory locks
510 even if the cifs server would support posix advisory locks.
511 "forcemand" is accepted as a shorter form of this mount
512 option.
513 nostrictsync If this mount option is set, when an application does an
514 fsync call then the cifs client does not send an SMB Flush
515 to the server (to force the server to write all dirty data
516 for this file immediately to disk), although cifs still sends
517 all dirty (cached) file data to the server and waits for the
518 server to respond to the write. Since SMB Flush can be
519 very slow, and some servers may be reliable enough (to risk
520 delaying slightly flushing the data to disk on the server),
521 turning on this option may be useful to improve performance for
522 applications that fsync too much, at a small risk of server
523 crash. If this mount option is not set, by default cifs will
524 send an SMB flush request (and wait for a response) on every
525 fsync call.
526 nodfs Disable DFS (global name space support) even if the
527 server claims to support it. This can help work around
528 a problem with parsing of DFS paths with Samba server
529 versions 3.0.24 and 3.0.25.
530 remount remount the share (often used to change from ro to rw mounts
531 or vice versa)
532 cifsacl Report mode bits (e.g. on stat) based on the Windows ACL for
533 the file. (EXPERIMENTAL)
534 servern Specify the server 's netbios name (RFC1001 name) to use
535 when attempting to setup a session to the server.
536 This is needed for mounting to some older servers (such
537 as OS/2 or Windows 98 and Windows ME) since they do not
538 support a default server name. A server name can be up
539 to 15 characters long and is usually uppercased.
540 sfu When the CIFS Unix Extensions are not negotiated, attempt to
541 create device files and fifos in a format compatible with
542 Services for Unix (SFU). In addition retrieve bits 10-12
543 of the mode via the SETFILEBITS extended attribute (as
544 SFU does). In the future the bottom 9 bits of the
545 mode also will be emulated using queries of the security
546 descriptor (ACL).
547 mfsymlinks Enable support for Minshall+French symlinks
548 (see http://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks)
549 This option is ignored when specified together with the
550 'sfu' option. Minshall+French symlinks are used even if
551 the server supports the CIFS Unix Extensions.
552 sign Must use packet signing (helps avoid unwanted data modification
553 by intermediate systems in the route). Note that signing
554 does not work with lanman or plaintext authentication.
555 seal Must seal (encrypt) all data on this mounted share before
556 sending on the network. Requires support for Unix Extensions.
557 Note that this differs from the sign mount option in that it
558 causes encryption of data sent over this mounted share but other
559 shares mounted to the same server are unaffected.
560 locallease This option is rarely needed. Fcntl F_SETLEASE is
561 used by some applications such as Samba and NFSv4 server to
562 check to see whether a file is cacheable. CIFS has no way
563 to explicitly request a lease, but can check whether a file
564 is cacheable (oplocked). Unfortunately, even if a file
565 is not oplocked, it could still be cacheable (ie cifs client
566 could grant fcntl leases if no other local processes are using
567 the file) for cases for example such as when the server does not
568 support oplocks and the user is sure that the only updates to
569 the file will be from this client. Specifying this mount option
570 will allow the cifs client to check for leases (only) locally
571 for files which are not oplocked instead of denying leases
572 in that case. (EXPERIMENTAL)
573 sec Security mode. Allowed values are:
574 none attempt to connection as a null user (no name)
575 krb5 Use Kerberos version 5 authentication
576 krb5i Use Kerberos authentication and packet signing
577 ntlm Use NTLM password hashing (default)
578 ntlmi Use NTLM password hashing with signing (if
579 /proc/fs/cifs/PacketSigningEnabled on or if
580 server requires signing also can be the default)
581 ntlmv2 Use NTLMv2 password hashing
582 ntlmv2i Use NTLMv2 password hashing with packet signing
583 lanman (if configured in kernel config) use older
584 lanman hash
585hard Retry file operations if server is not responding
586soft Limit retries to unresponsive servers (usually only
587 one retry) before returning an error. (default)
588
589The mount.cifs mount helper also accepts a few mount options before -o
590including:
591
592 -S take password from stdin (equivalent to setting the environment
593 variable "PASSWD_FD=0"
594 -V print mount.cifs version
595 -? display simple usage information
596
597With most 2.6 kernel versions of modutils, the version of the cifs kernel
598module can be displayed via modinfo.
599
600Misc /proc/fs/cifs Flags and Debug Info
601=======================================
602Informational pseudo-files:
603DebugData Displays information about active CIFS sessions and
604 shares, features enabled as well as the cifs.ko
605 version.
606Stats Lists summary resource usage information as well as per
607 share statistics, if CONFIG_CIFS_STATS in enabled
608 in the kernel configuration.
609
610Configuration pseudo-files:
611PacketSigningEnabled If set to one, cifs packet signing is enabled
612 and will be used if the server requires
613 it. If set to two, cifs packet signing is
614 required even if the server considers packet
615 signing optional. (default 1)
616SecurityFlags Flags which control security negotiation and
617 also packet signing. Authentication (may/must)
618 flags (e.g. for NTLM and/or NTLMv2) may be combined with
619 the signing flags. Specifying two different password
620 hashing mechanisms (as "must use") on the other hand
621 does not make much sense. Default flags are
622 0x07007
623 (NTLM, NTLMv2 and packet signing allowed). The maximum
624 allowable flags if you want to allow mounts to servers
625 using weaker password hashes is 0x37037 (lanman,
626 plaintext, ntlm, ntlmv2, signing allowed). Some
627 SecurityFlags require the corresponding menuconfig
628 options to be enabled (lanman and plaintext require
629 CONFIG_CIFS_WEAK_PW_HASH for example). Enabling
630 plaintext authentication currently requires also
631 enabling lanman authentication in the security flags
632 because the cifs module only supports sending
633 laintext passwords using the older lanman dialect
634 form of the session setup SMB. (e.g. for authentication
635 using plain text passwords, set the SecurityFlags
636 to 0x30030):
637
638 may use packet signing 0x00001
639 must use packet signing 0x01001
640 may use NTLM (most common password hash) 0x00002
641 must use NTLM 0x02002
642 may use NTLMv2 0x00004
643 must use NTLMv2 0x04004
644 may use Kerberos security 0x00008
645 must use Kerberos 0x08008
646 may use lanman (weak) password hash 0x00010
647 must use lanman password hash 0x10010
648 may use plaintext passwords 0x00020
649 must use plaintext passwords 0x20020
650 (reserved for future packet encryption) 0x00040
651
652cifsFYI If set to non-zero value, additional debug information
653 will be logged to the system error log. This field
654 contains three flags controlling different classes of
655 debugging entries. The maximum value it can be set
656 to is 7 which enables all debugging points (default 0).
657 Some debugging statements are not compiled into the
658 cifs kernel unless CONFIG_CIFS_DEBUG2 is enabled in the
659 kernel configuration. cifsFYI may be set to one or
660 nore of the following flags (7 sets them all):
661
662 log cifs informational messages 0x01
663 log return codes from cifs entry points 0x02
664 log slow responses (ie which take longer than 1 second)
665 CONFIG_CIFS_STATS2 must be enabled in .config 0x04
666
667
668traceSMB If set to one, debug information is logged to the
669 system error log with the start of smb requests
670 and responses (default 0)
671LookupCacheEnable If set to one, inode information is kept cached
672 for one second improving performance of lookups
673 (default 1)
674OplockEnabled If set to one, safe distributed caching enabled.
675 (default 1)
676LinuxExtensionsEnabled If set to one then the client will attempt to
677 use the CIFS "UNIX" extensions which are optional
678 protocol enhancements that allow CIFS servers
679 to return accurate UID/GID information as well
680 as support symbolic links. If you use servers
681 such as Samba that support the CIFS Unix
682 extensions but do not want to use symbolic link
683 support and want to map the uid and gid fields
684 to values supplied at mount (rather than the
685 actual values, then set this to zero. (default 1)
686
687These experimental features and tracing can be enabled by changing flags in
688/proc/fs/cifs (after the cifs module has been installed or built into the
689kernel, e.g. insmod cifs). To enable a feature set it to 1 e.g. to enable
690tracing to the kernel message log type:
691
692 echo 7 > /proc/fs/cifs/cifsFYI
693
694cifsFYI functions as a bit mask. Setting it to 1 enables additional kernel
695logging of various informational messages. 2 enables logging of non-zero
696SMB return codes while 4 enables logging of requests that take longer
697than one second to complete (except for byte range lock requests).
698Setting it to 4 requires defining CONFIG_CIFS_STATS2 manually in the
699source code (typically by setting it in the beginning of cifsglob.h),
700and setting it to seven enables all three. Finally, tracing
701the start of smb requests and responses can be enabled via:
702
703 echo 1 > /proc/fs/cifs/traceSMB
704
705Per share (per client mount) statistics are available in /proc/fs/cifs/Stats
706if the kernel was configured with cifs statistics enabled. The statistics
707represent the number of successful (ie non-zero return code from the server)
708SMB responses to some of the more common commands (open, delete, mkdir etc.).
709Also recorded is the total bytes read and bytes written to the server for
710that share. Note that due to client caching effects this can be less than the
711number of bytes read and written by the application running on the client.
712The statistics for the number of total SMBs and oplock breaks are different in
713that they represent all for that share, not just those for which the server
714returned success.
715
716Also note that "cat /proc/fs/cifs/DebugData" will display information about
717the active sessions and the shares that are mounted.
718
719Enabling Kerberos (extended security) works but requires version 1.2 or later
720of the helper program cifs.upcall to be present and to be configured in the
721/etc/request-key.conf file. The cifs.upcall helper program is from the Samba
722project(http://www.samba.org). NTLM and NTLMv2 and LANMAN support do not
723require this helper. Note that NTLMv2 security (which does not require the
724cifs.upcall helper program), instead of using Kerberos, is sufficient for
725some use cases.
726
727DFS support allows transparent redirection to shares in an MS-DFS name space.
728In addition, DFS support for target shares which are specified as UNC
729names which begin with host names (rather than IP addresses) requires
730a user space helper (such as cifs.upcall) to be present in order to
731translate host names to ip address, and the user space helper must also
732be configured in the file /etc/request-key.conf. Samba, Windows servers and
733many NAS appliances support DFS as a way of constructing a global name
734space to ease network configuration and improve reliability.
735
736To use cifs Kerberos and DFS support, the Linux keyutils package should be
737installed and something like the following lines should be added to the
738/etc/request-key.conf file:
739
740create cifs.spnego * * /usr/local/sbin/cifs.upcall %k
741create dns_resolver * * /usr/local/sbin/cifs.upcall %k
742
743CIFS kernel module parameters
744=============================
745These module parameters can be specified or modified either during the time of
746module loading or during the runtime by using the interface
747 /proc/module/cifs/parameters/<param>
748
749i.e. echo "value" > /sys/module/cifs/parameters/<param>
750
7511. enable_oplocks - Enable or disable oplocks. Oplocks are enabled by default.
752 [Y/y/1]. To disable use any of [N/n/0].
753
diff --git a/Documentation/filesystems/cifs/TODO b/Documentation/filesystems/cifs/TODO
new file mode 100644
index 000000000000..355abcdcda98
--- /dev/null
+++ b/Documentation/filesystems/cifs/TODO
@@ -0,0 +1,129 @@
1Version 1.53 May 20, 2008
2
3A Partial List of Missing Features
4==================================
5
6Contributions are welcome. There are plenty of opportunities
7for visible, important contributions to this module. Here
8is a partial list of the known problems and missing features:
9
10a) Support for SecurityDescriptors(Windows/CIFS ACLs) for chmod/chgrp/chown
11so that these operations can be supported to Windows servers
12
13b) Mapping POSIX ACLs (and eventually NFSv4 ACLs) to CIFS
14SecurityDescriptors
15
16c) Better pam/winbind integration (e.g. to handle uid mapping
17better)
18
19d) Cleanup now unneeded SessSetup code in
20fs/cifs/connect.c and add back in NTLMSSP code if any servers
21need it
22
23e) fix NTLMv2 signing when two mounts with different users to same
24server.
25
26f) Directory entry caching relies on a 1 second timer, rather than
27using FindNotify or equivalent. - (started)
28
29g) quota support (needs minor kernel change since quota calls
30to make it to network filesystems or deviceless filesystems)
31
32h) investigate sync behavior (including syncpage) and check
33for proper behavior of intr/nointr
34
35i) improve support for very old servers (OS/2 and Win9x for example)
36Including support for changing the time remotely (utimes command).
37
38j) hook lower into the sockets api (as NFS/SunRPC does) to avoid the
39extra copy in/out of the socket buffers in some cases.
40
41k) Better optimize open (and pathbased setfilesize) to reduce the
42oplock breaks coming from windows srv. Piggyback identical file
43opens on top of each other by incrementing reference count rather
44than resending (helps reduce server resource utilization and avoid
45spurious oplock breaks).
46
47l) Improve performance of readpages by sending more than one read
48at a time when 8 pages or more are requested. In conjuntion
49add support for async_cifs_readpages.
50
51m) Add support for storing symlink info to Windows servers
52in the Extended Attribute format their SFU clients would recognize.
53
54n) Finish fcntl D_NOTIFY support so kde and gnome file list windows
55will autorefresh (partially complete by Asser). Needs minor kernel
56vfs change to support removing D_NOTIFY on a file.
57
58o) Add GUI tool to configure /proc/fs/cifs settings and for display of
59the CIFS statistics (started)
60
61p) implement support for security and trusted categories of xattrs
62(requires minor protocol extension) to enable better support for SELINUX
63
64q) Implement O_DIRECT flag on open (already supported on mount)
65
66r) Create UID mapping facility so server UIDs can be mapped on a per
67mount or a per server basis to client UIDs or nobody if no mapping
68exists. This is helpful when Unix extensions are negotiated to
69allow better permission checking when UIDs differ on the server
70and client. Add new protocol request to the CIFS protocol
71standard for asking the server for the corresponding name of a
72particular uid.
73
74s) Add support for CIFS Unix and also the newer POSIX extensions to the
75server side for Samba 4.
76
77t) In support for OS/2 (LANMAN 1.2 and LANMAN2.1 based SMB servers)
78need to add ability to set time to server (utimes command)
79
80u) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too)
81
82v) mount check for unmatched uids
83
84w) Add support for new vfs entry point for fallocate
85
86x) Fix Samba 3 server to handle Linux kernel aio so dbench with lots of
87processes can proceed better in parallel (on the server)
88
89y) Fix Samba 3 to handle reads/writes over 127K (and remove the cifs mount
90restriction of wsize max being 127K)
91
92KNOWN BUGS (updated April 24, 2007)
93====================================
94See http://bugzilla.samba.org - search on product "CifsVFS" for
95current bug list.
96
971) existing symbolic links (Windows reparse points) are recognized but
98can not be created remotely. They are implemented for Samba and those that
99support the CIFS Unix extensions, although earlier versions of Samba
100overly restrict the pathnames.
1012) follow_link and readdir code does not follow dfs junctions
102but recognizes them
1033) create of new files to FAT partitions on Windows servers can
104succeed but still return access denied (appears to be Windows
105server not cifs client problem) and has not been reproduced recently.
106NTFS partitions do not have this problem.
1074) Unix/POSIX capabilities are reset after reconnection, and affect
108a few fields in the tree connection but we do do not know which
109superblocks to apply these changes to. We should probably walk
110the list of superblocks to set these. Also need to check the
111flags on the second mount to the same share, and see if we
112can do the same trick that NFS does to remount duplicate shares.
113
114Misc testing to do
115==================
1161) check out max path names and max path name components against various server
117types. Try nested symlinks (8 deep). Return max path name in stat -f information
118
1192) Modify file portion of ltp so it can run against a mounted network
120share and run it against cifs vfs in automated fashion.
121
1223) Additional performance testing and optimization using iozone and similar -
123there are some easy changes that can be done to parallelize sequential writes,
124and when signing is disabled to request larger read sizes (larger than
125negotiated size) and send larger write sizes to modern servers.
126
1274) More exhaustively test against less common servers. More testing
128against Windows 9x, Windows ME servers.
129
diff --git a/Documentation/filesystems/cifs.txt b/Documentation/filesystems/cifs/cifs.txt
index 49cc923a93e3..49cc923a93e3 100644
--- a/Documentation/filesystems/cifs.txt
+++ b/Documentation/filesystems/cifs/cifs.txt
diff --git a/Documentation/filesystems/cifs/winucase_convert.pl b/Documentation/filesystems/cifs/winucase_convert.pl
new file mode 100755
index 000000000000..322a9c833f23
--- /dev/null
+++ b/Documentation/filesystems/cifs/winucase_convert.pl
@@ -0,0 +1,62 @@
1#!/usr/bin/perl -w
2#
3# winucase_convert.pl -- convert "Windows 8 Upper Case Mapping Table.txt" to
4# a two-level set of C arrays.
5#
6# Copyright 2013: Jeff Layton <jlayton@redhat.com>
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with this program. If not, see <http://www.gnu.org/licenses/>.
20#
21
22while(<>) {
23 next if (!/^0x(..)(..)\t0x(....)\t/);
24 $firstchar = hex($1);
25 $secondchar = hex($2);
26 $uppercase = hex($3);
27
28 $top[$firstchar][$secondchar] = $uppercase;
29}
30
31for ($i = 0; $i < 256; $i++) {
32 next if (!$top[$i]);
33
34 printf("static const wchar_t t2_%2.2x[256] = {", $i);
35 for ($j = 0; $j < 256; $j++) {
36 if (($j % 8) == 0) {
37 print "\n\t";
38 } else {
39 print " ";
40 }
41 printf("0x%4.4x,", $top[$i][$j] ? $top[$i][$j] : 0);
42 }
43 print "\n};\n\n";
44}
45
46printf("static const wchar_t *const toplevel[256] = {", $i);
47for ($i = 0; $i < 256; $i++) {
48 if (($i % 8) == 0) {
49 print "\n\t";
50 } elsif ($top[$i]) {
51 print " ";
52 } else {
53 print " ";
54 }
55
56 if ($top[$i]) {
57 printf("t2_%2.2x,", $i);
58 } else {
59 print "NULL,";
60 }
61}
62print "\n};\n\n";
diff --git a/Documentation/filesystems/ext3.txt b/Documentation/filesystems/ext3.txt
index 293855e95000..7ed0d17d6721 100644
--- a/Documentation/filesystems/ext3.txt
+++ b/Documentation/filesystems/ext3.txt
@@ -26,11 +26,12 @@ journal=inum When a journal already exists, this option is ignored.
26 Otherwise, it specifies the number of the inode which 26 Otherwise, it specifies the number of the inode which
27 will represent the ext3 file system's journal file. 27 will represent the ext3 file system's journal file.
28 28
29journal_path=path
29journal_dev=devnum When the external journal device's major/minor numbers 30journal_dev=devnum When the external journal device's major/minor numbers
30 have changed, this option allows the user to specify 31 have changed, these options allow the user to specify
31 the new journal location. The journal device is 32 the new journal location. The journal device is
32 identified through its new major/minor numbers encoded 33 identified through either its new major/minor numbers
33 in devnum. 34 encoded in devnum, or via a path to the device.
34 35
35norecovery Don't load the journal on mounting. Note that this forces 36norecovery Don't load the journal on mounting. Note that this forces
36noload mount of inconsistent filesystem, which can lead to 37noload mount of inconsistent filesystem, which can lead to
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt
index f7cbf574a875..919a3293aaa4 100644
--- a/Documentation/filesystems/ext4.txt
+++ b/Documentation/filesystems/ext4.txt
@@ -2,7 +2,7 @@
2Ext4 Filesystem 2Ext4 Filesystem
3=============== 3===============
4 4
5Ext4 is an an advanced level of the ext3 filesystem which incorporates 5Ext4 is an advanced level of the ext3 filesystem which incorporates
6scalability and reliability enhancements for supporting large filesystems 6scalability and reliability enhancements for supporting large filesystems
7(64 bit) in keeping with increasing disk capacities and state-of-the-art 7(64 bit) in keeping with increasing disk capacities and state-of-the-art
8feature requirements. 8feature requirements.
@@ -144,11 +144,12 @@ journal_async_commit Commit block can be written to disk without waiting
144 mount the device. This will enable 'journal_checksum' 144 mount the device. This will enable 'journal_checksum'
145 internally. 145 internally.
146 146
147journal_path=path
147journal_dev=devnum When the external journal device's major/minor numbers 148journal_dev=devnum When the external journal device's major/minor numbers
148 have changed, this option allows the user to specify 149 have changed, these options allow the user to specify
149 the new journal location. The journal device is 150 the new journal location. The journal device is
150 identified through its new major/minor numbers encoded 151 identified through either its new major/minor numbers
151 in devnum. 152 encoded in devnum, or via a path to the device.
152 153
153norecovery Don't load the journal on mounting. Note that 154norecovery Don't load the journal on mounting. Note that
154noload if the filesystem was not unmounted cleanly, 155noload if the filesystem was not unmounted cleanly,
diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt
index b91e2f26b672..3cd27bed6349 100644
--- a/Documentation/filesystems/f2fs.txt
+++ b/Documentation/filesystems/f2fs.txt
@@ -18,8 +18,8 @@ according to its internal geometry or flash memory management scheme, namely FTL
18F2FS and its tools support various parameters not only for configuring on-disk 18F2FS and its tools support various parameters not only for configuring on-disk
19layout, but also for selecting allocation and cleaning algorithms. 19layout, but also for selecting allocation and cleaning algorithms.
20 20
21The file system formatting tool, "mkfs.f2fs", is available from the following 21The following git tree provides the file system formatting tool (mkfs.f2fs),
22git tree: 22a consistency checking tool (fsck.f2fs), and a debugging tool (dump.f2fs).
23>> git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git 23>> git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git
24 24
25For reporting bugs and sending patches, please use the following mailing list: 25For reporting bugs and sending patches, please use the following mailing list:
@@ -133,6 +133,38 @@ f2fs. Each file shows the whole f2fs information.
133 - current memory footprint consumed by f2fs. 133 - current memory footprint consumed by f2fs.
134 134
135================================================================================ 135================================================================================
136SYSFS ENTRIES
137================================================================================
138
139Information about mounted f2f2 file systems can be found in
140/sys/fs/f2fs. Each mounted filesystem will have a directory in
141/sys/fs/f2fs based on its device name (i.e., /sys/fs/f2fs/sda).
142The files in each per-device directory are shown in table below.
143
144Files in /sys/fs/f2fs/<devname>
145(see also Documentation/ABI/testing/sysfs-fs-f2fs)
146..............................................................................
147 File Content
148
149 gc_max_sleep_time This tuning parameter controls the maximum sleep
150 time for the garbage collection thread. Time is
151 in milliseconds.
152
153 gc_min_sleep_time This tuning parameter controls the minimum sleep
154 time for the garbage collection thread. Time is
155 in milliseconds.
156
157 gc_no_gc_sleep_time This tuning parameter controls the default sleep
158 time for the garbage collection thread. Time is
159 in milliseconds.
160
161 gc_idle This parameter controls the selection of victim
162 policy for garbage collection. Setting gc_idle = 0
163 (default) will disable this option. Setting
164 gc_idle = 1 will select the Cost Benefit approach
165 & setting gc_idle = 2 will select the greedy aproach.
166
167================================================================================
136USAGE 168USAGE
137================================================================================ 169================================================================================
138 170
@@ -149,8 +181,12 @@ USAGE
149 # mkfs.f2fs -l label /dev/block_device 181 # mkfs.f2fs -l label /dev/block_device
150 # mount -t f2fs /dev/block_device /mnt/f2fs 182 # mount -t f2fs /dev/block_device /mnt/f2fs
151 183
152Format options 184mkfs.f2fs
153-------------- 185---------
186The mkfs.f2fs is for the use of formatting a partition as the f2fs filesystem,
187which builds a basic on-disk layout.
188
189The options consist of:
154-l [label] : Give a volume label, up to 512 unicode name. 190-l [label] : Give a volume label, up to 512 unicode name.
155-a [0 or 1] : Split start location of each area for heap-based allocation. 191-a [0 or 1] : Split start location of each area for heap-based allocation.
156 1 is set by default, which performs this. 192 1 is set by default, which performs this.
@@ -164,6 +200,37 @@ Format options
164-t [0 or 1] : Disable discard command or not. 200-t [0 or 1] : Disable discard command or not.
165 1 is set by default, which conducts discard. 201 1 is set by default, which conducts discard.
166 202
203fsck.f2fs
204---------
205The fsck.f2fs is a tool to check the consistency of an f2fs-formatted
206partition, which examines whether the filesystem metadata and user-made data
207are cross-referenced correctly or not.
208Note that, initial version of the tool does not fix any inconsistency.
209
210The options consist of:
211 -d debug level [default:0]
212
213dump.f2fs
214---------
215The dump.f2fs shows the information of specific inode and dumps SSA and SIT to
216file. Each file is dump_ssa and dump_sit.
217
218The dump.f2fs is used to debug on-disk data structures of the f2fs filesystem.
219It shows on-disk inode information reconized by a given inode number, and is
220able to dump all the SSA and SIT entries into predefined files, ./dump_ssa and
221./dump_sit respectively.
222
223The options consist of:
224 -d debug level [default:0]
225 -i inode no (hex)
226 -s [SIT dump segno from #1~#2 (decimal), for all 0~-1]
227 -a [SSA dump segno from #1~#2 (decimal), for all 0~-1]
228
229Examples:
230# dump.f2fs -i [ino] /dev/sdx
231# dump.f2fs -s 0~-1 /dev/sdx (SIT dump)
232# dump.f2fs -a 0~-1 /dev/sdx (SSA dump)
233
167================================================================================ 234================================================================================
168DESIGN 235DESIGN
169================================================================================ 236================================================================================
diff --git a/Documentation/filesystems/nfs/Exporting b/Documentation/filesystems/nfs/Exporting
index 09994c247289..e543b1a619cc 100644
--- a/Documentation/filesystems/nfs/Exporting
+++ b/Documentation/filesystems/nfs/Exporting
@@ -93,7 +93,7 @@ For a filesystem to be exportable it must:
93 2/ make sure that d_splice_alias is used rather than d_add 93 2/ make sure that d_splice_alias is used rather than d_add
94 when ->lookup finds an inode for a given parent and name. 94 when ->lookup finds an inode for a given parent and name.
95 95
96 If inode is NULL, d_splice_alias(inode, dentry) is eqivalent to 96 If inode is NULL, d_splice_alias(inode, dentry) is equivalent to
97 97
98 d_add(dentry, inode), NULL 98 d_add(dentry, inode), NULL
99 99
diff --git a/Documentation/filesystems/nfs/pnfs.txt b/Documentation/filesystems/nfs/pnfs.txt
index 52ae07f5f578..adc81a35fe2d 100644
--- a/Documentation/filesystems/nfs/pnfs.txt
+++ b/Documentation/filesystems/nfs/pnfs.txt
@@ -12,7 +12,7 @@ struct pnfs_layout_hdr
12---------------------- 12----------------------
13The on-the-wire command LAYOUTGET corresponds to struct 13The on-the-wire command LAYOUTGET corresponds to struct
14pnfs_layout_segment, usually referred to by the variable name lseg. 14pnfs_layout_segment, usually referred to by the variable name lseg.
15Each nfs_inode may hold a pointer to a cache of of these layout 15Each nfs_inode may hold a pointer to a cache of these layout
16segments in nfsi->layout, of type struct pnfs_layout_hdr. 16segments in nfsi->layout, of type struct pnfs_layout_hdr.
17 17
18We reference the header for the inode pointing to it, across each 18We reference the header for the inode pointing to it, across each
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index fcc22c982a25..823c95faebd2 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -854,16 +854,15 @@ Committed_AS: The amount of memory presently allocated on the system.
854 The committed memory is a sum of all of the memory which 854 The committed memory is a sum of all of the memory which
855 has been allocated by processes, even if it has not been 855 has been allocated by processes, even if it has not been
856 "used" by them as of yet. A process which malloc()'s 1G 856 "used" by them as of yet. A process which malloc()'s 1G
857 of memory, but only touches 300M of it will only show up 857 of memory, but only touches 300M of it will show up as
858 as using 300M of memory even if it has the address space 858 using 1G. This 1G is memory which has been "committed" to
859 allocated for the entire 1G. This 1G is memory which has 859 by the VM and can be used at any time by the allocating
860 been "committed" to by the VM and can be used at any time 860 application. With strict overcommit enabled on the system
861 by the allocating application. With strict overcommit 861 (mode 2 in 'vm.overcommit_memory'),allocations which would
862 enabled on the system (mode 2 in 'vm.overcommit_memory'), 862 exceed the CommitLimit (detailed above) will not be permitted.
863 allocations which would exceed the CommitLimit (detailed 863 This is useful if one needs to guarantee that processes will
864 above) will not be permitted. This is useful if one needs 864 not fail due to lack of memory once that memory has been
865 to guarantee that processes will not fail due to lack of 865 successfully allocated.
866 memory once that memory has been successfully allocated.
867VmallocTotal: total size of vmalloc memory area 866VmallocTotal: total size of vmalloc memory area
868 VmallocUsed: amount of vmalloc area which is used 867 VmallocUsed: amount of vmalloc area which is used
869VmallocChunk: largest contiguous block of vmalloc area which is free 868VmallocChunk: largest contiguous block of vmalloc area which is free
diff --git a/Documentation/filesystems/qnx6.txt b/Documentation/filesystems/qnx6.txt
index 99e90184a72f..408679789136 100644
--- a/Documentation/filesystems/qnx6.txt
+++ b/Documentation/filesystems/qnx6.txt
@@ -149,7 +149,7 @@ Bitmap system area
149------------------ 149------------------
150 150
151The bitmap itself is divided into three parts. 151The bitmap itself is divided into three parts.
152First the system area, that is split into two halfs. 152First the system area, that is split into two halves.
153Then userspace. 153Then userspace.
154 154
155The requirement for a static, fixed preallocated system area comes from how 155The requirement for a static, fixed preallocated system area comes from how
diff --git a/Documentation/filesystems/ramfs-rootfs-initramfs.txt b/Documentation/filesystems/ramfs-rootfs-initramfs.txt
index 59b4a0962e0f..b176928e6963 100644
--- a/Documentation/filesystems/ramfs-rootfs-initramfs.txt
+++ b/Documentation/filesystems/ramfs-rootfs-initramfs.txt
@@ -79,6 +79,10 @@ to just make sure certain lists can't become empty.
79Most systems just mount another filesystem over rootfs and ignore it. The 79Most systems just mount another filesystem over rootfs and ignore it. The
80amount of space an empty instance of ramfs takes up is tiny. 80amount of space an empty instance of ramfs takes up is tiny.
81 81
82If CONFIG_TMPFS is enabled, rootfs will use tmpfs instead of ramfs by
83default. To force ramfs, add "rootfstype=ramfs" to the kernel command
84line.
85
82What is initramfs? 86What is initramfs?
83------------------ 87------------------
84 88
diff --git a/Documentation/filesystems/relay.txt b/Documentation/filesystems/relay.txt
index 510b722667ac..33e2f3694733 100644
--- a/Documentation/filesystems/relay.txt
+++ b/Documentation/filesystems/relay.txt
@@ -31,7 +31,7 @@ Semantics
31 31
32Each relay channel has one buffer per CPU, each buffer has one or more 32Each relay channel has one buffer per CPU, each buffer has one or more
33sub-buffers. Messages are written to the first sub-buffer until it is 33sub-buffers. Messages are written to the first sub-buffer until it is
34too full to contain a new message, in which case it it is written to 34too full to contain a new message, in which case it is written to
35the next (if available). Messages are never split across sub-buffers. 35the next (if available). Messages are never split across sub-buffers.
36At this point, userspace can be notified so it empties the first 36At this point, userspace can be notified so it empties the first
37sub-buffer, while the kernel continues writing to the next. 37sub-buffer, while the kernel continues writing to the next.
diff --git a/Documentation/filesystems/sysfs-tagging.txt b/Documentation/filesystems/sysfs-tagging.txt
index caaaf1266d8f..eb843e49c5a3 100644
--- a/Documentation/filesystems/sysfs-tagging.txt
+++ b/Documentation/filesystems/sysfs-tagging.txt
@@ -24,7 +24,7 @@ flag between KOBJ_NS_TYPE_NONE and KOBJ_NS_TYPES, and s_ns will
24point to the namespace to which it belongs. 24point to the namespace to which it belongs.
25 25
26Each sysfs superblock's sysfs_super_info contains an array void 26Each sysfs superblock's sysfs_super_info contains an array void
27*ns[KOBJ_NS_TYPES]. When a a task in a tagging namespace 27*ns[KOBJ_NS_TYPES]. When a task in a tagging namespace
28kobj_nstype first mounts sysfs, a new superblock is created. It 28kobj_nstype first mounts sysfs, a new superblock is created. It
29will be differentiated from other sysfs mounts by having its 29will be differentiated from other sysfs mounts by having its
30s_fs_info->ns[kobj_nstype] set to the new namespace. Note that 30s_fs_info->ns[kobj_nstype] set to the new namespace. Note that
diff --git a/Documentation/filesystems/xfs.txt b/Documentation/filesystems/xfs.txt
index 12525b17d9ed..5be51fd888bd 100644
--- a/Documentation/filesystems/xfs.txt
+++ b/Documentation/filesystems/xfs.txt
@@ -135,7 +135,7 @@ default behaviour.
135 If the memory cost of 8 log buffers is too high on small 135 If the memory cost of 8 log buffers is too high on small
136 systems, then it may be reduced at some cost to performance 136 systems, then it may be reduced at some cost to performance
137 on metadata intensive workloads. The logbsize option below 137 on metadata intensive workloads. The logbsize option below
138 controls the size of each buffer and so is also relevent to 138 controls the size of each buffer and so is also relevant to
139 this case. 139 this case.
140 140
141 logbsize=value 141 logbsize=value
diff --git a/Documentation/fmc/carrier.txt b/Documentation/fmc/carrier.txt
index 173f6d65c88d..5e4f1dd3e98b 100644
--- a/Documentation/fmc/carrier.txt
+++ b/Documentation/fmc/carrier.txt
@@ -213,7 +213,7 @@ The individual methods perform the following tasks:
213 methods: for example the SPEC driver may define that its carrier 213 methods: for example the SPEC driver may define that its carrier
214 I2C memory is seen at offset 1M and the internal SPI flash is seen 214 I2C memory is seen at offset 1M and the internal SPI flash is seen
215 at offset 16M. This multiplexing of several flash memories in the 215 at offset 16M. This multiplexing of several flash memories in the
216 same address space is is carrier-specific and should only be used 216 same address space is carrier-specific and should only be used
217 by a driver that has verified the `carrier_name' field. 217 by a driver that has verified the `carrier_name' field.
218 218
219 219
diff --git a/Documentation/hid/uhid.txt b/Documentation/hid/uhid.txt
index 3c741214dfbb..dc35a2b75eee 100644
--- a/Documentation/hid/uhid.txt
+++ b/Documentation/hid/uhid.txt
@@ -149,11 +149,13 @@ needs. Only UHID_OUTPUT and UHID_OUTPUT_EV have payloads.
149 is of type "struct uhid_data_req". 149 is of type "struct uhid_data_req".
150 This may be received even though you haven't received UHID_OPEN, yet. 150 This may be received even though you haven't received UHID_OPEN, yet.
151 151
152 UHID_OUTPUT_EV: 152 UHID_OUTPUT_EV (obsolete):
153 Same as UHID_OUTPUT but this contains a "struct input_event" as payload. This 153 Same as UHID_OUTPUT but this contains a "struct input_event" as payload. This
154 is called for force-feedback, LED or similar events which are received through 154 is called for force-feedback, LED or similar events which are received through
155 an input device by the HID subsystem. You should convert this into raw reports 155 an input device by the HID subsystem. You should convert this into raw reports
156 and send them to your device similar to events of type UHID_OUTPUT. 156 and send them to your device similar to events of type UHID_OUTPUT.
157 This is no longer sent by newer kernels. Instead, HID core converts it into a
158 raw output report and sends it via UHID_OUTPUT.
157 159
158 UHID_FEATURE: 160 UHID_FEATURE:
159 This event is sent if the kernel driver wants to perform a feature request as 161 This event is sent if the kernel driver wants to perform a feature request as
diff --git a/Documentation/hwmon/abituguru-datasheet b/Documentation/hwmon/abituguru-datasheet
index 8d2be8a0b1e3..86c0b1251c81 100644
--- a/Documentation/hwmon/abituguru-datasheet
+++ b/Documentation/hwmon/abituguru-datasheet
@@ -299,7 +299,7 @@ Byte 1:
299min threshold (scale as bank 0x26) 299min threshold (scale as bank 0x26)
300 300
301 301
302Warning for the adventerous 302Warning for the adventurous
303=========================== 303===========================
304 304
305A word of caution to those who want to experiment and see if they can figure 305A word of caution to those who want to experiment and see if they can figure
diff --git a/Documentation/hwmon/ads1015 b/Documentation/hwmon/ads1015
index f6fe9c203733..063b80d857b1 100644
--- a/Documentation/hwmon/ads1015
+++ b/Documentation/hwmon/ads1015
@@ -6,6 +6,10 @@ Supported chips:
6 Prefix: 'ads1015' 6 Prefix: 'ads1015'
7 Datasheet: Publicly available at the Texas Instruments website : 7 Datasheet: Publicly available at the Texas Instruments website :
8 http://focus.ti.com/lit/ds/symlink/ads1015.pdf 8 http://focus.ti.com/lit/ds/symlink/ads1015.pdf
9 * Texas Instruments ADS1115
10 Prefix: 'ads1115'
11 Datasheet: Publicly available at the Texas Instruments website :
12 http://focus.ti.com/lit/ds/symlink/ads1115.pdf
9 13
10Authors: 14Authors:
11 Dirk Eibach, Guntermann & Drunck GmbH <eibach@gdsys.de> 15 Dirk Eibach, Guntermann & Drunck GmbH <eibach@gdsys.de>
@@ -13,9 +17,9 @@ Authors:
13Description 17Description
14----------- 18-----------
15 19
16This driver implements support for the Texas Instruments ADS1015. 20This driver implements support for the Texas Instruments ADS1015/ADS1115.
17 21
18This device is a 12-bit A-D converter with 4 inputs. 22This device is a 12/16-bit A-D converter with 4 inputs.
19 23
20The inputs can be used single ended or in certain differential combinations. 24The inputs can be used single ended or in certain differential combinations.
21 25
diff --git a/Documentation/hwmon/htu21 b/Documentation/hwmon/htu21
new file mode 100644
index 000000000000..f39a215fb6ae
--- /dev/null
+++ b/Documentation/hwmon/htu21
@@ -0,0 +1,46 @@
1Kernel driver htu21
2===================
3
4Supported chips:
5 * Measurement Specialties HTU21D
6 Prefix: 'htu21'
7 Addresses scanned: none
8 Datasheet: Publicly available at the Measurement Specialties website
9 http://www.meas-spec.com/downloads/HTU21D.pdf
10
11
12Author:
13 William Markezana <william.markezana@meas-spec.com>
14
15Description
16-----------
17
18The HTU21D is a humidity and temperature sensor in a DFN package of
19only 3 x 3 mm footprint and 0.9 mm height.
20
21The devices communicate with the I2C protocol. All sensors are set to the
22same I2C address 0x40, so an entry with I2C_BOARD_INFO("htu21", 0x40) can
23be used in the board setup code.
24
25This driver does not auto-detect devices. You will have to instantiate the
26devices explicitly. Please see Documentation/i2c/instantiating-devices
27for details.
28
29sysfs-Interface
30---------------
31
32temp1_input - temperature input
33humidity1_input - humidity input
34
35Notes
36-----
37
38The driver uses the default resolution settings of 12 bit for humidity and 14
39bit for temperature, which results in typical measurement times of 11 ms for
40humidity and 44 ms for temperature. To keep self heating below 0.1 degree
41Celsius, the device should not be active for more than 10% of the time. For
42this reason, the driver performs no more than two measurements per second and
43reports cached information if polled more frequently.
44
45Different resolutions, the on-chip heater, using the CRC checksum and reading
46the serial number are not supported yet.
diff --git a/Documentation/hwmon/k10temp b/Documentation/hwmon/k10temp
index 90956b618025..4dfdc8f83633 100644
--- a/Documentation/hwmon/k10temp
+++ b/Documentation/hwmon/k10temp
@@ -12,6 +12,7 @@ Supported chips:
12* AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series) 12* AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series)
13* AMD Family 14h processors: "Brazos" (C/E/G/Z-Series) 13* AMD Family 14h processors: "Brazos" (C/E/G/Z-Series)
14* AMD Family 15h processors: "Bulldozer" (FX-Series), "Trinity" 14* AMD Family 15h processors: "Bulldozer" (FX-Series), "Trinity"
15* AMD Family 16h processors: "Kabini"
15 16
16 Prefix: 'k10temp' 17 Prefix: 'k10temp'
17 Addresses scanned: PCI space 18 Addresses scanned: PCI space
diff --git a/Documentation/hwmon/submitting-patches b/Documentation/hwmon/submitting-patches
index 46286460462b..3d1bac399a22 100644
--- a/Documentation/hwmon/submitting-patches
+++ b/Documentation/hwmon/submitting-patches
@@ -1,7 +1,7 @@
1 How to Get Your Patch Accepted Into the Hwmon Subsystem 1 How to Get Your Patch Accepted Into the Hwmon Subsystem
2 ------------------------------------------------------- 2 -------------------------------------------------------
3 3
4This text is is a collection of suggestions for people writing patches or 4This text is a collection of suggestions for people writing patches or
5drivers for the hwmon subsystem. Following these suggestions will greatly 5drivers for the hwmon subsystem. Following these suggestions will greatly
6increase the chances of your change being accepted. 6increase the chances of your change being accepted.
7 7
diff --git a/Documentation/hwmon/w83791d b/Documentation/hwmon/w83791d
index 90387c3540f7..f4021a285460 100644
--- a/Documentation/hwmon/w83791d
+++ b/Documentation/hwmon/w83791d
@@ -17,7 +17,7 @@ Credits:
17 Philip Edelbrock <phil@netroedge.com>, 17 Philip Edelbrock <phil@netroedge.com>,
18 and Mark Studebaker <mdsxyz123@yahoo.com> 18 and Mark Studebaker <mdsxyz123@yahoo.com>
19 w83792d.c: 19 w83792d.c:
20 Chunhao Huang <DZShen@Winbond.com.tw>, 20 Shane Huang (Winbond),
21 Rudolf Marek <r.marek@assembler.cz> 21 Rudolf Marek <r.marek@assembler.cz>
22 22
23Additional contributors: 23Additional contributors:
diff --git a/Documentation/hwmon/w83792d b/Documentation/hwmon/w83792d
index 8a023ce0b72e..53f7b6866fec 100644
--- a/Documentation/hwmon/w83792d
+++ b/Documentation/hwmon/w83792d
@@ -7,8 +7,7 @@ Supported chips:
7 Addresses scanned: I2C 0x2c - 0x2f 7 Addresses scanned: I2C 0x2c - 0x2f
8 Datasheet: http://www.winbond.com.tw 8 Datasheet: http://www.winbond.com.tw
9 9
10Author: Chunhao Huang 10Author: Shane Huang (Winbond)
11Contact: DZShen <DZShen@Winbond.com.tw>
12 11
13 12
14Module Parameters 13Module Parameters
diff --git a/Documentation/hwspinlock.txt b/Documentation/hwspinlock.txt
index a903ee5e9776..62f7d4ea6e26 100644
--- a/Documentation/hwspinlock.txt
+++ b/Documentation/hwspinlock.txt
@@ -241,7 +241,7 @@ int hwspinlock_example2(void)
241 locks). 241 locks).
242 Should be called from a process context (this function might sleep). 242 Should be called from a process context (this function might sleep).
243 Returns the address of hwspinlock on success, or NULL on error (e.g. 243 Returns the address of hwspinlock on success, or NULL on error (e.g.
244 if the hwspinlock is sill in use). 244 if the hwspinlock is still in use).
245 245
2465. Important structs 2465. Important structs
247 247
diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4
index a370b2047cf3..c097e0f020fe 100644
--- a/Documentation/i2c/busses/i2c-piix4
+++ b/Documentation/i2c/busses/i2c-piix4
@@ -73,9 +73,10 @@ this driver on those mainboards.
73The ServerWorks Southbridges, the Intel 440MX, and the Victory66 are 73The ServerWorks Southbridges, the Intel 440MX, and the Victory66 are
74identical to the PIIX4 in I2C/SMBus support. 74identical to the PIIX4 in I2C/SMBus support.
75 75
76The AMD SB700 and SP5100 chipsets implement two PIIX4-compatible SMBus 76The AMD SB700, SB800, SP5100 and Hudson-2 chipsets implement two
77controllers. If your BIOS initializes the secondary controller, it will 77PIIX4-compatible SMBus controllers. If your BIOS initializes the
78be detected by this driver as an "Auxiliary SMBus Host Controller". 78secondary controller, it will be detected by this driver as
79an "Auxiliary SMBus Host Controller".
79 80
80If you own Force CPCI735 motherboard or other OSB4 based systems you may need 81If you own Force CPCI735 motherboard or other OSB4 based systems you may need
81to change the SMBus Interrupt Select register so the SMBus controller uses 82to change the SMBus Interrupt Select register so the SMBus controller uses
diff --git a/Documentation/i2c/instantiating-devices b/Documentation/i2c/instantiating-devices
index 22182660dda7..c70e7a7638d1 100644
--- a/Documentation/i2c/instantiating-devices
+++ b/Documentation/i2c/instantiating-devices
@@ -19,7 +19,7 @@ i2c_board_info which is registered by calling i2c_register_board_info().
19 19
20Example (from omap2 h4): 20Example (from omap2 h4):
21 21
22static struct i2c_board_info __initdata h4_i2c_board_info[] = { 22static struct i2c_board_info h4_i2c_board_info[] __initdata = {
23 { 23 {
24 I2C_BOARD_INFO("isp1301_omap", 0x2d), 24 I2C_BOARD_INFO("isp1301_omap", 0x2d),
25 .irq = OMAP_GPIO_IRQ(125), 25 .irq = OMAP_GPIO_IRQ(125),
diff --git a/Documentation/i2c/upgrading-clients b/Documentation/i2c/upgrading-clients
index d6991625c407..8e5fbd88c7d1 100644
--- a/Documentation/i2c/upgrading-clients
+++ b/Documentation/i2c/upgrading-clients
@@ -196,8 +196,8 @@ static int example_probe(struct i2c_client *i2c_client,
196 196
197Update the detach method, by changing the name to _remove and 197Update the detach method, by changing the name to _remove and
198to delete the i2c_detach_client call. It is possible that you 198to delete the i2c_detach_client call. It is possible that you
199can also remove the ret variable as it is not not needed for 199can also remove the ret variable as it is not needed for any
200any of the core functions. 200of the core functions.
201 201
202- static int example_detach(struct i2c_client *client) 202- static int example_detach(struct i2c_client *client)
203+ static int example_remove(struct i2c_client *client) 203+ static int example_remove(struct i2c_client *client)
diff --git a/Documentation/input/gamepad.txt b/Documentation/input/gamepad.txt
new file mode 100644
index 000000000000..8002c894c6b0
--- /dev/null
+++ b/Documentation/input/gamepad.txt
@@ -0,0 +1,156 @@
1 Linux Gamepad API
2----------------------------------------------------------------------------
3
41. Intro
5~~~~~~~~
6Linux provides many different input drivers for gamepad hardware. To avoid
7having user-space deal with different button-mappings for each gamepad, this
8document defines how gamepads are supposed to report their data.
9
102. Geometry
11~~~~~~~~~~~
12As "gamepad" we define devices which roughly look like this:
13
14 ____________________________ __
15 / [__ZL__] [__ZR__] \ |
16 / [__ TL __] [__ TR __] \ | Front Triggers
17 __/________________________________\__ __|
18 / _ \ |
19 / /\ __ (N) \ |
20 / || __ |MO| __ _ _ \ | Main Pad
21 | <===DP===> |SE| |ST| (W) -|- (E) | |
22 \ || ___ ___ _ / |
23 /\ \/ / \ / \ (S) /\ __|
24 / \________ | LS | ____ | RS | ________/ \ |
25 | / \ \___/ / \ \___/ / \ | | Control Sticks
26 | / \_____/ \_____/ \ | __|
27 | / \ |
28 \_____/ \_____/
29
30 |________|______| |______|___________|
31 D-Pad Left Right Action Pad
32 Stick Stick
33
34 |_____________|
35 Menu Pad
36
37Most gamepads have the following features:
38 - Action-Pad
39 4 buttons in diamonds-shape (on the right side). The buttons are
40 differently labeled on most devices so we define them as NORTH,
41 SOUTH, WEST and EAST.
42 - D-Pad (Direction-pad)
43 4 buttons (on the left side) that point up, down, left and right.
44 - Menu-Pad
45 Different constellations, but most-times 2 buttons: SELECT - START
46 Furthermore, many gamepads have a fancy branded button that is used as
47 special system-button. It often looks different to the other buttons and
48 is used to pop up system-menus or system-settings.
49 - Analog-Sticks
50 Analog-sticks provide freely moveable sticks to control directions. Not
51 all devices have both or any, but they are present at most times.
52 Analog-sticks may also provide a digital button if you press them.
53 - Triggers
54 Triggers are located on the upper-side of the pad in vertical direction.
55 Not all devices provide them, but the upper buttons are normally named
56 Left- and Right-Triggers, the lower buttons Z-Left and Z-Right.
57 - Rumble
58 Many devices provide force-feedback features. But are mostly just
59 simple rumble motors.
60
613. Detection
62~~~~~~~~~~~~
63All gamepads that follow the protocol described here map BTN_GAMEPAD. This is
64an alias for BTN_SOUTH/BTN_A. It can be used to identify a gamepad as such.
65However, not all gamepads provide all features, so you need to test for all
66features that you need, first. How each feature is mapped is described below.
67
68Legacy drivers often don't comply to these rules. As we cannot change them
69for backwards-compatibility reasons, you need to provide fixup mappings in
70user-space yourself. Some of them might also provide module-options that
71change the mappings so you can adivce users to set these.
72
73All new gamepads are supposed to comply with this mapping. Please report any
74bugs, if they don't.
75
76There are a lot of less-featured/less-powerful devices out there, which re-use
77the buttons from this protocol. However, they try to do this in a compatible
78fashion. For example, the "Nintendo Wii Nunchuk" provides two trigger buttons
79and one analog stick. It reports them as if it were a gamepad with only one
80analog stick and two trigger buttons on the right side.
81But that means, that if you only support "real" gamepads, you must test
82devices for _all_ reported events that you need. Otherwise, you will also get
83devices that report a small subset of the events.
84
85No other devices, that do not look/feel like a gamepad, shall report these
86events.
87
884. Events
89~~~~~~~~~
90Gamepads report the following events:
91
92Action-Pad:
93 Every gamepad device has at least 2 action buttons. This means, that every
94 device reports BTN_SOUTH (which BTN_GAMEPAD is an alias for). Regardless
95 of the labels on the buttons, the codes are sent according to the
96 physical position of the buttons.
97 Please note that 2- and 3-button pads are fairly rare and old. You might
98 want to filter gamepads that do not report all four.
99 2-Button Pad:
100 If only 2 action-buttons are present, they are reported as BTN_SOUTH and
101 BTN_EAST. For vertical layouts, the upper button is BTN_EAST. For
102 horizontal layouts, the button more on the right is BTN_EAST.
103 3-Button Pad:
104 If only 3 action-buttons are present, they are reported as (from left
105 to right): BTN_WEST, BTN_SOUTH, BTN_EAST
106 If the buttons are aligned perfectly vertically, they are reported as
107 (from top down): BTN_WEST, BTN_SOUTH, BTN_EAST
108 4-Button Pad:
109 If all 4 action-buttons are present, they can be aligned in two
110 different formations. If diamond-shaped, they are reported as BTN_NORTH,
111 BTN_WEST, BTN_SOUTH, BTN_EAST according to their physical location.
112 If rectangular-shaped, the upper-left button is BTN_NORTH, lower-left
113 is BTN_WEST, lower-right is BTN_SOUTH and upper-right is BTN_EAST.
114
115D-Pad:
116 Every gamepad provides a D-Pad with four directions: Up, Down, Left, Right
117 Some of these are available as digital buttons, some as analog buttons. Some
118 may even report both. The kernel does not convert between these so
119 applications should support both and choose what is more appropriate if
120 both are reported.
121 Digital buttons are reported as:
122 BTN_DPAD_*
123 Analog buttons are reported as:
124 ABS_HAT0X and ABS_HAT0Y
125
126Analog-Sticks:
127 The left analog-stick is reported as ABS_X, ABS_Y. The right analog stick is
128 reported as ABS_RX, ABS_RY. Zero, one or two sticks may be present.
129 If analog-sticks provide digital buttons, they are mapped accordingly as
130 BTN_THUMBL (first/left) and BTN_THUMBR (second/right).
131
132Triggers:
133 Trigger buttons can be available as digital or analog buttons or both. User-
134 space must correctly deal with any situation and choose the most appropriate
135 mode.
136 Upper trigger buttons are reported as BTN_TR or ABS_HAT1X (right) and BTN_TL
137 or ABS_HAT1Y (left). Lower trigger buttons are reported as BTN_TR2 or
138 ABS_HAT2X (right/ZR) and BTN_TL2 or ABS_HAT2Y (left/ZL).
139 If only one trigger-button combination is present (upper+lower), they are
140 reported as "right" triggers (BTN_TR/ABS_HAT1X).
141
142Menu-Pad:
143 Menu buttons are always digital and are mapped according to their location
144 instead of their labels. That is:
145 1-button Pad: Mapped as BTN_START
146 2-button Pad: Left button mapped as BTN_SELECT, right button mapped as
147 BTN_START
148 Many pads also have a third button which is branded or has a special symbol
149 and meaning. Such buttons are mapped as BTN_MODE. Examples are the Nintendo
150 "HOME" button, the XBox "X"-button or Sony "P" button.
151
152Rumble:
153 Rumble is adverticed as FF_RUMBLE.
154
155----------------------------------------------------------------------------
156 Written 2013 by David Herrmann <dh.herrmann@gmail.com>
diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
index c858f8419eba..c420676c6fe3 100644
--- a/Documentation/kbuild/kconfig-language.txt
+++ b/Documentation/kbuild/kconfig-language.txt
@@ -147,6 +147,7 @@ applicable everywhere (see syntax).
147 - "modules" 147 - "modules"
148 This declares the symbol to be used as the MODULES symbol, which 148 This declares the symbol to be used as the MODULES symbol, which
149 enables the third modular state for all config symbols. 149 enables the third modular state for all config symbols.
150 At most one symbol may have the "modules" option set.
150 151
151 - "env"=<value> 152 - "env"=<value>
152 This imports the environment variable into Kconfig. It behaves like 153 This imports the environment variable into Kconfig. It behaves like
diff --git a/Documentation/kbuild/kconfig.txt b/Documentation/kbuild/kconfig.txt
index e349f293cc98..8ef6dbb6a462 100644
--- a/Documentation/kbuild/kconfig.txt
+++ b/Documentation/kbuild/kconfig.txt
@@ -175,11 +175,9 @@ Searching in menuconfig:
175 /^hotplug 175 /^hotplug
176 176
177 When searching, symbols are sorted thus: 177 When searching, symbols are sorted thus:
178 - exact match first: an exact match is when the search matches 178 - first, exact matches, sorted alphabetically (an exact match
179 the complete symbol name; 179 is when the search matches the complete symbol name);
180 - alphabetical order: when two symbols do not match exactly, 180 - then, other matches, sorted alphabetically.
181 they are sorted in alphabetical order (in the user's current
182 locale).
183 For example: ^ATH.K matches: 181 For example: ^ATH.K matches:
184 ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG 182 ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG
185 [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...] 183 [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...]
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 15356aca938c..1a036cd972fb 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -235,10 +235,61 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
235 Format: To spoof as Windows 98: ="Microsoft Windows" 235 Format: To spoof as Windows 98: ="Microsoft Windows"
236 236
237 acpi_osi= [HW,ACPI] Modify list of supported OS interface strings 237 acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
238 acpi_osi="string1" # add string1 -- only one string 238 acpi_osi="string1" # add string1
239 acpi_osi="!string2" # remove built-in string2 239 acpi_osi="!string2" # remove string2
240 acpi_osi=!* # remove all strings
241 acpi_osi=! # disable all built-in OS vendor
242 strings
240 acpi_osi= # disable all strings 243 acpi_osi= # disable all strings
241 244
245 'acpi_osi=!' can be used in combination with single or
246 multiple 'acpi_osi="string1"' to support specific OS
247 vendor string(s). Note that such command can only
248 affect the default state of the OS vendor strings, thus
249 it cannot affect the default state of the feature group
250 strings and the current state of the OS vendor strings,
251 specifying it multiple times through kernel command line
252 is meaningless. This command is useful when one do not
253 care about the state of the feature group strings which
254 should be controlled by the OSPM.
255 Examples:
256 1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent
257 to 'acpi_osi="Windows 2000" acpi_osi=!', they all
258 can make '_OSI("Windows 2000")' TRUE.
259
260 'acpi_osi=' cannot be used in combination with other
261 'acpi_osi=' command lines, the _OSI method will not
262 exist in the ACPI namespace. NOTE that such command can
263 only affect the _OSI support state, thus specifying it
264 multiple times through kernel command line is also
265 meaningless.
266 Examples:
267 1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)'
268 FALSE.
269
270 'acpi_osi=!*' can be used in combination with single or
271 multiple 'acpi_osi="string1"' to support specific
272 string(s). Note that such command can affect the
273 current state of both the OS vendor strings and the
274 feature group strings, thus specifying it multiple times
275 through kernel command line is meaningful. But it may
276 still not able to affect the final state of a string if
277 there are quirks related to this string. This command
278 is useful when one want to control the state of the
279 feature group strings to debug BIOS issues related to
280 the OSPM features.
281 Examples:
282 1. 'acpi_osi="Module Device" acpi_osi=!*' can make
283 '_OSI("Module Device")' FALSE.
284 2. 'acpi_osi=!* acpi_osi="Module Device"' can make
285 '_OSI("Module Device")' TRUE.
286 3. 'acpi_osi=! acpi_osi=!* acpi_osi="Windows 2000"' is
287 equivalent to
288 'acpi_osi=!* acpi_osi=! acpi_osi="Windows 2000"'
289 and
290 'acpi_osi=!* acpi_osi="Windows 2000" acpi_osi=!',
291 they all will make '_OSI("Windows 2000")' TRUE.
292
242 acpi_pm_good [X86] 293 acpi_pm_good [X86]
243 Override the pmtimer bug detection: force the kernel 294 Override the pmtimer bug detection: force the kernel
244 to assume that this machine's pmtimer latches its value 295 to assume that this machine's pmtimer latches its value
@@ -1847,6 +1898,18 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
1847 will be sent. 1898 will be sent.
1848 The default is to send the implementation identification 1899 The default is to send the implementation identification
1849 information. 1900 information.
1901
1902 nfs.recover_lost_locks =
1903 [NFSv4] Attempt to recover locks that were lost due
1904 to a lease timeout on the server. Please note that
1905 doing this risks data corruption, since there are
1906 no guarantees that the file will remain unchanged
1907 after the locks are lost.
1908 If you want to enable the kernel legacy behaviour of
1909 attempting to recover these locks, then set this
1910 parameter to '1'.
1911 The default parameter value of '0' causes the kernel
1912 not to attempt recovery of lost locks.
1850 1913
1851 nfsd.nfs4_disable_idmapping= 1914 nfsd.nfs4_disable_idmapping=
1852 [NFSv4] When set to the default of '1', the NFSv4 1915 [NFSv4] When set to the default of '1', the NFSv4
@@ -2953,7 +3016,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
2953 improve throughput, but will also increase the 3016 improve throughput, but will also increase the
2954 amount of memory reserved for use by the client. 3017 amount of memory reserved for use by the client.
2955 3018
2956 swapaccount[=0|1] 3019 swapaccount=[0|1]
2957 [KNL] Enable accounting of swap in memory resource 3020 [KNL] Enable accounting of swap in memory resource
2958 controller if no parameter or 1 is given or disable 3021 controller if no parameter or 1 is given or disable
2959 it if 0 is given (See Documentation/cgroups/memory.txt) 3022 it if 0 is given (See Documentation/cgroups/memory.txt)
@@ -3322,6 +3385,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
3322 them quite hard to use for exploits but 3385 them quite hard to use for exploits but
3323 might break your system. 3386 might break your system.
3324 3387
3388 vt.color= [VT] Default text color.
3389 Format: 0xYX, X = foreground, Y = background.
3390 Default: 0x07 = light gray on black.
3391
3325 vt.cur_default= [VT] Default cursor shape. 3392 vt.cur_default= [VT] Default cursor shape.
3326 Format: 0xCCBBAA, where AA, BB, and CC are the same as 3393 Format: 0xCCBBAA, where AA, BB, and CC are the same as
3327 the parameters of the <Esc>[?A;B;Cc escape sequence; 3394 the parameters of the <Esc>[?A;B;Cc escape sequence;
@@ -3361,6 +3428,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
3361 overridden by individual drivers. 0 will hide 3428 overridden by individual drivers. 0 will hide
3362 cursors, 1 will display them. 3429 cursors, 1 will display them.
3363 3430
3431 vt.italic= [VT] Default color for italic text; 0-15.
3432 Default: 2 = green.
3433
3434 vt.underline= [VT] Default color for underlined text; 0-15.
3435 Default: 3 = cyan.
3436
3364 watchdog timers [HW,WDT] For information on watchdog timers, 3437 watchdog timers [HW,WDT] For information on watchdog timers,
3365 see Documentation/watchdog/watchdog-parameters.txt 3438 see Documentation/watchdog/watchdog-parameters.txt
3366 or other driver-specific files in the 3439 or other driver-specific files in the
diff --git a/Documentation/kmemcheck.txt b/Documentation/kmemcheck.txt
index c28f82895d6b..9398a501fdb9 100644
--- a/Documentation/kmemcheck.txt
+++ b/Documentation/kmemcheck.txt
@@ -91,9 +91,9 @@ information from the kmemcheck warnings, which is extremely valuable in
91debugging a problem. This option is not mandatory, however, because it slows 91debugging a problem. This option is not mandatory, however, because it slows
92down the compilation process and produces a much bigger kernel image. 92down the compilation process and produces a much bigger kernel image.
93 93
94Now the kmemcheck menu should be visible (under "Kernel hacking" / "kmemcheck: 94Now the kmemcheck menu should be visible (under "Kernel hacking" / "Memory
95trap use of uninitialized memory"). Here follows a description of the 95Debugging" / "kmemcheck: trap use of uninitialized memory"). Here follows
96kmemcheck configuration variables: 96a description of the kmemcheck configuration variables:
97 97
98 o CONFIG_KMEMCHECK 98 o CONFIG_KMEMCHECK
99 99
diff --git a/Documentation/ko_KR/HOWTO b/Documentation/ko_KR/HOWTO
index 2f48f205fedc..680e64635958 100644
--- a/Documentation/ko_KR/HOWTO
+++ b/Documentation/ko_KR/HOWTO
@@ -182,8 +182,8 @@ Documentation/DocBook/ 디렉토리 내에서 만들어지며 PDF, Postscript, H
182프로젝트를 봐야 한다. 182프로젝트를 봐야 한다.
183 http://kernelnewbies.org 183 http://kernelnewbies.org
184그곳은 거의 모든 종류의 기본적인 커널 개발 질문들(질문하기 전에 먼저 184그곳은 거의 모든 종류의 기본적인 커널 개발 질문들(질문하기 전에 먼저
185아카이브를 찾아봐라. 과거에 이미 답변되었을 수도 있다)을 할수있는 도움이 185아카이브를 찾아봐라. 과거에 이미 답변되었을 수도 있다)을 할 있는 도움이
186될만한 메일링 리스트가 있다. 또한 실시간으로 질문 할수 있는 IRC 채널도 186될만한 메일링 리스트가 있다. 또한 실시간으로 질문 할 수 있는 IRC 채널도
187가지고 있으며 리눅스 커널 개발을 배우는 데 유용한 문서들을 보유하고 있다. 187가지고 있으며 리눅스 커널 개발을 배우는 데 유용한 문서들을 보유하고 있다.
188 188
189웹사이트는 코드구성, 서브시스템들, 그리고 현재 프로젝트들 189웹사이트는 코드구성, 서브시스템들, 그리고 현재 프로젝트들
@@ -245,7 +245,7 @@ Documentation/DocBook/ 디렉토리 내에서 만들어지며 PDF, Postscript, H
245 것을 기억해라. 왜냐하면 변경이 자체내에서만 발생하고 추가된 코드가 245 것을 기억해라. 왜냐하면 변경이 자체내에서만 발생하고 추가된 코드가
246 드라이버 외부의 다른 부분에는 영향을 주지 않으므로 그런 변경은 246 드라이버 외부의 다른 부분에는 영향을 주지 않으므로 그런 변경은
247 회귀(역자주: 이전에는 존재하지 않았지만 새로운 기능추가나 변경으로 인해 247 회귀(역자주: 이전에는 존재하지 않았지만 새로운 기능추가나 변경으로 인해
248 생겨난 버그)를 일으킬 만한 위험을 가지고 있지 않기 때문이다. -rc1이 248 생겨난 버그)를 일으킬 만한 위험을 가지고 있지 않기 때문이다. -rc1이
249 배포된 이후에 git를 사용하여 패치들을 Linus에게 보낼수 있지만 패치들은 249 배포된 이후에 git를 사용하여 패치들을 Linus에게 보낼수 있지만 패치들은
250 공식적인 메일링 리스트로 보내서 검토를 받을 필요가 있다. 250 공식적인 메일링 리스트로 보내서 검토를 받을 필요가 있다.
251 - 새로운 -rc는 Linus가 현재 git tree가 테스트 하기에 충분히 안정된 상태에 251 - 새로운 -rc는 Linus가 현재 git tree가 테스트 하기에 충분히 안정된 상태에
@@ -455,7 +455,7 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메
455 - 의견 455 - 의견
456 - 변경을 위한 요구 456 - 변경을 위한 요구
457 - 당위성을 위한 요구 457 - 당위성을 위한 요구
458 - 458 -
459 459
460기억하라. 이것들은 여러분의 패치가 커널로 들어가기 위한 과정이다. 여러분의 460기억하라. 이것들은 여러분의 패치가 커널로 들어가기 위한 과정이다. 여러분의
461패치들은 비판과 다른 의견을 받을 수 있고 그것들을 기술적인 레벨로 평가하고 461패치들은 비판과 다른 의견을 받을 수 있고 그것들을 기술적인 레벨로 평가하고
@@ -472,7 +472,7 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메
472가능한한 가장 좋은 기술적인 해답을 찾고 있는 커뮤니티에서는 항상 472가능한한 가장 좋은 기술적인 해답을 찾고 있는 커뮤니티에서는 항상
473어떤 패치가 얼마나 좋은지에 관하여 다른 의견들이 있을 수 있다. 여러분은 473어떤 패치가 얼마나 좋은지에 관하여 다른 의견들이 있을 수 있다. 여러분은
474협조적이어야 하고 기꺼이 여러분의 생각을 커널 내에 맞추어야 한다. 아니면 474협조적이어야 하고 기꺼이 여러분의 생각을 커널 내에 맞추어야 한다. 아니면
475적어도 여러분의 것이 가치있다는 것을 명하여야 한다. 잘못된 것도 여러분이 475적어도 여러분의 것이 가치있다는 것을 명하여야 한다. 잘못된 것도 여러분이
476올바른 방향의 해결책으로 이끌어갈 의지가 있다면 받아들여질 것이라는 점을 476올바른 방향의 해결책으로 이끌어갈 의지가 있다면 받아들여질 것이라는 점을
477기억하라. 477기억하라.
478 478
@@ -488,21 +488,21 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메
488커널 커뮤니티는 가장 전통적인 회사의 개발 환경과는 다르다. 여기에 여러분들의 488커널 커뮤니티는 가장 전통적인 회사의 개발 환경과는 다르다. 여기에 여러분들의
489문제를 피하기 위한 목록이 있다. 489문제를 피하기 위한 목록이 있다.
490 여러분들이 제안한 변경들에 관하여 말할 때 좋은 것들 : 490 여러분들이 제안한 변경들에 관하여 말할 때 좋은 것들 :
491 - "이것은 여러 문제들을 해합니다." 491 - "이것은 여러 문제들을 해합니다."
492 - "이것은 2000 라인의 코드를 거합니다." 492 - "이것은 2000 라인의 코드를 니다."
493 - "이것은 내가 말하려는 것에 관해 설명하는 패치입니다." 493 - "이것은 내가 말하려는 것에 관해 설명하는 패치입니다."
494 - "나는 5개의 다른 아키텍쳐에서 그것을 테스트했로..." 494 - "나는 5개의 다른 아키텍쳐에서 그것을 테스트 했으..."
495 - "여기에 일련의 작은 패치들이 있로..." 495 - "여기에 일련의 작은 패치들이 있..."
496 - "이것은 일반적인 머신에서 성능을 향상으로..." 496 - "이것은 일반적인 머신에서 성능을 향상으로..."
497 497
498 여러분들이 말할 때 피해야 할 좋지 않은 것들 : 498 여러분들이 말할 때 피해야 할 좋지 않은 것들 :
499 - "우리를 그것을 AIT/ptx/Solaris에서 이러한 방법으로 했다. 그러므로 그것은 좋은 것임에 틀립없다..." 499 - "우리는 그것을 AIX/ptx/Solaris에서 이러한 방법으로 했다. 그러므로 그것은 좋은 것임에 틀림없다..."
500 - "나는 20년동안 이것을 해왔다. 그러므로..." 500 - "나는 20년동안 이것을 해왔다. 그러므로..."
501 - "이것은 돈을 벌기위해 나의 회사가 필요로 하는 것이다." 501 - "이것은 돈을 벌기위해 나의 회사가 필요로 하는 것이다."
502 - "이것은 우리의 엔터프라이즈 상품 라인을 위한 것이다." 502 - "이것은 우리의 엔터프라이즈 상품 라인을 위한 것이다."
503 - "여기에 나의 생각을 말하고 있는 1000 페이지 설계 문서가 있다." 503 - "여기에 나의 생각을 말하고 있는 1000 페이지 설계 문서가 있다."
504 - "나는 6달동안 이것을 했으니..." 504 - "나는 6달동안 이것을 했으니..."
505 - "여기에 5000라인 짜리 패치가 있으니..." 505 - "여기에 5000 라인 짜리 패치가 있으니..."
506 - "나는 현재 뒤죽박죽인 것을 재작성했다. 그리고 여기에..." 506 - "나는 현재 뒤죽박죽인 것을 재작성했다. 그리고 여기에..."
507 - "나는 마감시한을 가지고 있으므로 이 패치는 지금 적용될 필요가 있다." 507 - "나는 마감시한을 가지고 있으므로 이 패치는 지금 적용될 필요가 있다."
508 508
@@ -574,6 +574,7 @@ Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅
574또한 완성되지 않았고 "나중에 수정될 것이다." 와 같은 것들을 포함하는 574또한 완성되지 않았고 "나중에 수정될 것이다." 와 같은 것들을 포함하는
575패치들은 받아들여지지 않을 것이라는 점을 유념하라. 575패치들은 받아들여지지 않을 것이라는 점을 유념하라.
576 576
577
577변경을 정당화해라 578변경을 정당화해라
578----------------- 579-----------------
579 580
diff --git a/Documentation/ko_KR/stable_api_nonsense.txt b/Documentation/ko_KR/stable_api_nonsense.txt
index 8f2b0e1d98c4..51f85ade4190 100644
--- a/Documentation/ko_KR/stable_api_nonsense.txt
+++ b/Documentation/ko_KR/stable_api_nonsense.txt
@@ -106,12 +106,12 @@ Greg Kroah-Hartman <greg@kroah.com>
106--------------------------------- 106---------------------------------
107 107
108리눅스 커널 드라이버를 계속해서 메인 커널 트리에 반영하지 않고 108리눅스 커널 드라이버를 계속해서 메인 커널 트리에 반영하지 않고
109유지보수하려고 하는 사들과 이 문제를 논의하게 되면 훨씬 더 109유지보수하려고 하는 사들과 이 문제를 논의하게 되면 훨씬 더
110"논란의 여지가 많은" 주제가 될 것이다. 110"논란의 여지가 많은" 주제가 될 것이다.
111 111
112리눅스 커널 개발은 끊임없이 빠른 속도로 이루어지고 있으며 결코 112리눅스 커널 개발은 끊임없이 빠른 속도로 이루어지고 있으며 결코
113느슨해진 적이 없다. 커널 개발자들이 현재 인터페이스들에서 버그를 113느슨해진 적이 없다. 커널 개발자들이 현재 인터페이스들에서 버그를
114발견하거나 무엇인가 할수 있는 더 좋은 방법을 찾게 되었다고 하자. 114발견하거나 무엇인가 할 수 있는 더 좋은 방법을 찾게 되었다고 하자.
115그들이 발견한 것을 실행한다면 아마도 더 잘 동작하도록 현재 인터페이스들을 115그들이 발견한 것을 실행한다면 아마도 더 잘 동작하도록 현재 인터페이스들을
116수정하게 될 것이다. 그들이 그런 일을 하게되면 함수 이름들은 변하게 되고, 116수정하게 될 것이다. 그들이 그런 일을 하게되면 함수 이름들은 변하게 되고,
117구조체들은 늘어나거나 줄어들게 되고, 함수 파라미터들은 재작업될 것이다. 117구조체들은 늘어나거나 줄어들게 되고, 함수 파라미터들은 재작업될 것이다.
@@ -174,7 +174,7 @@ GPL을 따르는 배포 드라이버에 관해 얘기하고 있다는 것을 상
174동작하는 것을 보장한다. 174동작하는 것을 보장한다.
175 175
176메인 커널 트리에 여러분의 드라이버를 반영하면 얻게 되는 장점들은 다음과 같다. 176메인 커널 트리에 여러분의 드라이버를 반영하면 얻게 되는 장점들은 다음과 같다.
177 - 관리 드는 비용(원래 개발자의)은 줄어줄면서 드라이버의 질은 향상될 것이다. 177 - 관리 드는 비용(원래 개발자의)은 줄어줄면서 드라이버의 질은 향상될 것이다.
178 - 다른 개발자들이 여러분의 드라이버에 기능들을 추가 할 것이다. 178 - 다른 개발자들이 여러분의 드라이버에 기능들을 추가 할 것이다.
179 - 다른 사람들은 여러분의 드라이버에 버그를 발견하고 수정할 것이다. 179 - 다른 사람들은 여러분의 드라이버에 버그를 발견하고 수정할 것이다.
180 - 다른 사람들은 여러분의 드라이버의 개선점을 찾을 줄 것이다. 180 - 다른 사람들은 여러분의 드라이버의 개선점을 찾을 줄 것이다.
diff --git a/Documentation/laptops/asus-laptop.txt b/Documentation/laptops/asus-laptop.txt
index 69f9fb3701e0..79a1bc675a8d 100644
--- a/Documentation/laptops/asus-laptop.txt
+++ b/Documentation/laptops/asus-laptop.txt
@@ -8,8 +8,8 @@ http://acpi4asus.sf.net/
8 8
9 This driver provides support for extra features of ACPI-compatible ASUS laptops. 9 This driver provides support for extra features of ACPI-compatible ASUS laptops.
10 It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or 10 It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or
11 VICTOR XP7210 for example). It makes all the extra buttons generate standard 11 VICTOR XP7210 for example). It makes all the extra buttons generate input
12 ACPI events that go through /proc/acpi/events and input events (like keyboards). 12 events (like keyboards).
13 On some models adds support for changing the display brightness and output, 13 On some models adds support for changing the display brightness and output,
14 switching the LCD backlight on and off, and most importantly, allows you to 14 switching the LCD backlight on and off, and most importantly, allows you to
15 blink those fancy LEDs intended for reporting mail and wireless status. 15 blink those fancy LEDs intended for reporting mail and wireless status.
@@ -55,8 +55,8 @@ Usage
55 DSDT) to me. 55 DSDT) to me.
56 56
57 That's all, now, all the events generated by the hotkeys of your laptop 57 That's all, now, all the events generated by the hotkeys of your laptop
58 should be reported in your /proc/acpi/event entry. You can check with 58 should be reported via netlink events. You can check with
59 "acpi_listen". 59 "acpi_genl monitor" (part of the acpica project).
60 60
61 Hotkeys are also reported as input keys (like keyboards) you can check 61 Hotkeys are also reported as input keys (like keyboards) you can check
62 which key are supported using "xev" under X11. 62 which key are supported using "xev" under X11.
diff --git a/Documentation/laptops/sony-laptop.txt b/Documentation/laptops/sony-laptop.txt
index 0d5ac7f5287e..978b1e615155 100644
--- a/Documentation/laptops/sony-laptop.txt
+++ b/Documentation/laptops/sony-laptop.txt
@@ -12,10 +12,10 @@ Fn keys (hotkeys):
12------------------ 12------------------
13Some models report hotkeys through the SNC or SPIC devices, such events are 13Some models report hotkeys through the SNC or SPIC devices, such events are
14reported both through the ACPI subsystem as acpi events and through the INPUT 14reported both through the ACPI subsystem as acpi events and through the INPUT
15subsystem. See the logs of acpid or /proc/acpi/event and 15subsystem. See the logs of /proc/bus/input/devices to find out what those
16/proc/bus/input/devices to find out what those events are and which input 16events are and which input devices are created by the driver.
17devices are created by the driver. Additionally, loading the driver with the 17Additionally, loading the driver with the debug option will report all events
18debug option will report all events in the kernel log. 18in the kernel log.
19 19
20The "scancodes" passed to the input system (that can be remapped with udev) 20The "scancodes" passed to the input system (that can be remapped with udev)
21are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c 21are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt
index cf7bc6cb9719..86c52360ffe7 100644
--- a/Documentation/laptops/thinkpad-acpi.txt
+++ b/Documentation/laptops/thinkpad-acpi.txt
@@ -329,20 +329,6 @@ sysfs notes:
329 329
330 This attribute has poll()/select() support. 330 This attribute has poll()/select() support.
331 331
332 hotkey_report_mode:
333 Returns the state of the procfs ACPI event report mode
334 filter for hot keys. If it is set to 1 (the default),
335 all hot key presses are reported both through the input
336 layer and also as ACPI events through procfs (but not
337 through netlink). If it is set to 2, hot key presses
338 are reported only through the input layer.
339
340 This attribute is read-only in kernels 2.6.23 or later,
341 and read-write on earlier kernels.
342
343 May return -EPERM (write access locked out by module
344 parameter) or -EACCES (read-only).
345
346 wakeup_reason: 332 wakeup_reason:
347 Set to 1 if the system is waking up because the user 333 Set to 1 if the system is waking up because the user
348 requested a bay ejection. Set to 2 if the system is 334 requested a bay ejection. Set to 2 if the system is
@@ -518,24 +504,21 @@ SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A
518Non hotkey ACPI HKEY event map: 504Non hotkey ACPI HKEY event map:
519------------------------------- 505-------------------------------
520 506
521Events that are not propagated by the driver, except for legacy
522compatibility purposes when hotkey_report_mode is set to 1:
523
5240x5001 Lid closed
5250x5002 Lid opened
5260x5009 Tablet swivel: switched to tablet mode
5270x500A Tablet swivel: switched to normal mode
5280x7000 Radio Switch may have changed state
529
530Events that are never propagated by the driver: 507Events that are never propagated by the driver:
531 508
5320x2304 System is waking up from suspend to undock 5090x2304 System is waking up from suspend to undock
5330x2305 System is waking up from suspend to eject bay 5100x2305 System is waking up from suspend to eject bay
5340x2404 System is waking up from hibernation to undock 5110x2404 System is waking up from hibernation to undock
5350x2405 System is waking up from hibernation to eject bay 5120x2405 System is waking up from hibernation to eject bay
5130x5001 Lid closed
5140x5002 Lid opened
5150x5009 Tablet swivel: switched to tablet mode
5160x500A Tablet swivel: switched to normal mode
5360x5010 Brightness level changed/control event 5170x5010 Brightness level changed/control event
5370x6000 KEYBOARD: Numlock key pressed 5180x6000 KEYBOARD: Numlock key pressed
5380x6005 KEYBOARD: Fn key pressed (TO BE VERIFIED) 5190x6005 KEYBOARD: Fn key pressed (TO BE VERIFIED)
5200x7000 Radio Switch may have changed state
521
539 522
540Events that are propagated by the driver to userspace: 523Events that are propagated by the driver to userspace:
541 524
@@ -574,50 +557,6 @@ operating system is to force either an immediate suspend or hibernate
574cycle, or a system shutdown. Obviously, something is very wrong if this 557cycle, or a system shutdown. Obviously, something is very wrong if this
575happens. 558happens.
576 559
577Compatibility notes:
578
579ibm-acpi and thinkpad-acpi 0.15 (mainline kernels before 2.6.23) never
580supported the input layer, and sent events over the procfs ACPI event
581interface.
582
583To avoid sending duplicate events over the input layer and the ACPI
584event interface, thinkpad-acpi 0.16 implements a module parameter
585(hotkey_report_mode), and also a sysfs device attribute with the same
586name.
587
588Make no mistake here: userspace is expected to switch to using the input
589layer interface of thinkpad-acpi, together with the ACPI netlink event
590interface in kernels 2.6.23 and later, or with the ACPI procfs event
591interface in kernels 2.6.22 and earlier.
592
593If no hotkey_report_mode module parameter is specified (or it is set to
594zero), the driver defaults to mode 1 (see below), and on kernels 2.6.22
595and earlier, also allows one to change the hotkey_report_mode through
596sysfs. In kernels 2.6.23 and later, where the netlink ACPI event
597interface is available, hotkey_report_mode cannot be changed through
598sysfs (it is read-only).
599
600If the hotkey_report_mode module parameter is set to 1 or 2, it cannot
601be changed later through sysfs (any writes will return -EPERM to signal
602that hotkey_report_mode was locked. On 2.6.23 and later, where
603hotkey_report_mode cannot be changed at all, writes will return -EACCES).
604
605hotkey_report_mode set to 1 makes the driver export through the procfs
606ACPI event interface all hot key presses (which are *also* sent to the
607input layer). This is a legacy compatibility behaviour, and it is also
608the default mode of operation for the driver.
609
610hotkey_report_mode set to 2 makes the driver filter out the hot key
611presses from the procfs ACPI event interface, so these events will only
612be sent through the input layer. Userspace that has been updated to use
613the thinkpad-acpi input layer interface should set hotkey_report_mode to
6142.
615
616Hot key press events are never sent to the ACPI netlink event interface.
617Really up-to-date userspace under kernel 2.6.23 and later is to use the
618netlink interface and the input layer interface, and don't bother at all
619with hotkey_report_mode.
620
621 560
622Brightness hotkey notes: 561Brightness hotkey notes:
623 562
diff --git a/Documentation/leds/leds-lm3556.txt b/Documentation/leds/leds-lm3556.txt
index d9eb91b51913..62278e871b50 100644
--- a/Documentation/leds/leds-lm3556.txt
+++ b/Documentation/leds/leds-lm3556.txt
@@ -71,7 +71,7 @@ To register the chip at address 0x63 on specific adapter, set the platform data
71according to include/linux/platform_data/leds-lm3556.h, set the i2c board info 71according to include/linux/platform_data/leds-lm3556.h, set the i2c board info
72 72
73Example: 73Example:
74 static struct i2c_board_info __initdata board_i2c_ch4[] = { 74 static struct i2c_board_info board_i2c_ch4[] __initdata = {
75 { 75 {
76 I2C_BOARD_INFO(LM3556_NAME, 0x63), 76 I2C_BOARD_INFO(LM3556_NAME, 0x63),
77 .platform_data = &lm3556_pdata, 77 .platform_data = &lm3556_pdata,
diff --git a/Documentation/leds/leds-lp3944.txt b/Documentation/leds/leds-lp3944.txt
index c6eda18b15ef..e88ac3b60c08 100644
--- a/Documentation/leds/leds-lp3944.txt
+++ b/Documentation/leds/leds-lp3944.txt
@@ -37,7 +37,7 @@ registered using the i2c_board_info mechanism.
37To register the chip at address 0x60 on adapter 0, set the platform data 37To register the chip at address 0x60 on adapter 0, set the platform data
38according to include/linux/leds-lp3944.h, set the i2c board info: 38according to include/linux/leds-lp3944.h, set the i2c board info:
39 39
40 static struct i2c_board_info __initdata a910_i2c_board_info[] = { 40 static struct i2c_board_info a910_i2c_board_info[] __initdata = {
41 { 41 {
42 I2C_BOARD_INFO("lp3944", 0x60), 42 I2C_BOARD_INFO("lp3944", 0x60),
43 .platform_data = &a910_lp3944_leds, 43 .platform_data = &a910_lp3944_leds,
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt
index fa5d8a9ae205..c8c42e64e953 100644
--- a/Documentation/memory-barriers.txt
+++ b/Documentation/memory-barriers.txt
@@ -531,9 +531,10 @@ dependency barrier to make it work correctly. Consider the following bit of
531code: 531code:
532 532
533 q = &a; 533 q = &a;
534 if (p) 534 if (p) {
535 <data dependency barrier>
535 q = &b; 536 q = &b;
536 <data dependency barrier> 537 }
537 x = *q; 538 x = *q;
538 539
539This will not have the desired effect because there is no actual data 540This will not have the desired effect because there is no actual data
@@ -542,9 +543,10 @@ attempting to predict the outcome in advance. In such a case what's actually
542required is: 543required is:
543 544
544 q = &a; 545 q = &a;
545 if (p) 546 if (p) {
547 <read barrier>
546 q = &b; 548 q = &b;
547 <read barrier> 549 }
548 x = *q; 550 x = *q;
549 551
550 552
diff --git a/Documentation/memory-hotplug.txt b/Documentation/memory-hotplug.txt
index 8e5eacbdcfa3..58340d50f8a6 100644
--- a/Documentation/memory-hotplug.txt
+++ b/Documentation/memory-hotplug.txt
@@ -163,7 +163,7 @@ a recent addition and not present on older kernels.
163 at read: contains online/offline state of memory. 163 at read: contains online/offline state of memory.
164 at write: user can specify "online_kernel", 164 at write: user can specify "online_kernel",
165 "online_movable", "online", "offline" command 165 "online_movable", "online", "offline" command
166 which will be performed on al sections in the block. 166 which will be performed on all sections in the block.
167'phys_device' : read-only: designed to show the name of physical memory 167'phys_device' : read-only: designed to show the name of physical memory
168 device. This is not well implemented now. 168 device. This is not well implemented now.
169'removable' : read-only: contains an integer value indicating 169'removable' : read-only: contains an integer value indicating
@@ -210,13 +210,15 @@ If memory device is found, memory hotplug code will be called.
210 210
2114.2 Notify memory hot-add event by hand 2114.2 Notify memory hot-add event by hand
212------------ 212------------
213In some environments, especially virtualized environment, firmware will not 213On powerpc, the firmware does not notify a memory hotplug event to the kernel.
214notify memory hotplug event to the kernel. For such environment, "probe" 214Therefore, "probe" interface is supported to notify the event to the kernel.
215interface is supported. This interface depends on CONFIG_ARCH_MEMORY_PROBE. 215This interface depends on CONFIG_ARCH_MEMORY_PROBE.
216 216
217Now, CONFIG_ARCH_MEMORY_PROBE is supported only by powerpc but it does not 217CONFIG_ARCH_MEMORY_PROBE is supported on powerpc only. On x86, this config
218contain highly architecture codes. Please add config if you need "probe" 218option is disabled by default since ACPI notifies a memory hotplug event to
219interface. 219the kernel, which performs its hotplug operation as the result. Please
220enable this option if you need the "probe" interface for testing purposes
221on x86.
220 222
221Probe interface is located at 223Probe interface is located at
222/sys/devices/system/memory/probe 224/sys/devices/system/memory/probe
diff --git a/Documentation/mtd/nand_ecc.txt b/Documentation/mtd/nand_ecc.txt
index 990efd7a9818..e129b2479ea8 100644
--- a/Documentation/mtd/nand_ecc.txt
+++ b/Documentation/mtd/nand_ecc.txt
@@ -543,7 +543,7 @@ THe code within the for loop was changed to:
543 } 543 }
544 544
545As you can see tmppar is used to accumulate the parity within a for 545As you can see tmppar is used to accumulate the parity within a for
546iteration. In the last 3 statements is is added to par and, if needed, 546iteration. In the last 3 statements is added to par and, if needed,
547to rp12 and rp14. 547to rp12 and rp14.
548 548
549While making the changes I also found that I could exploit that tmppar 549While making the changes I also found that I could exploit that tmppar
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX
index 32dfbd924121..f11580f8719a 100644
--- a/Documentation/networking/00-INDEX
+++ b/Documentation/networking/00-INDEX
@@ -86,6 +86,8 @@ generic_netlink.txt
86 - info on Generic Netlink 86 - info on Generic Netlink
87gianfar.txt 87gianfar.txt
88 - Gianfar Ethernet Driver. 88 - Gianfar Ethernet Driver.
89i40e.txt
90 - README for the Intel Ethernet Controller XL710 Driver (i40e).
89ieee802154.txt 91ieee802154.txt
90 - Linux IEEE 802.15.4 implementation, API and drivers 92 - Linux IEEE 802.15.4 implementation, API and drivers
91igb.txt 93igb.txt
@@ -124,6 +126,8 @@ multiqueue.txt
124 - HOWTO for multiqueue network device support. 126 - HOWTO for multiqueue network device support.
125netconsole.txt 127netconsole.txt
126 - The network console module netconsole.ko: configuration and notes. 128 - The network console module netconsole.ko: configuration and notes.
129netdev-FAQ.txt
130 - FAQ describing how to submit net changes to netdev mailing list.
127netdev-features.txt 131netdev-features.txt
128 - Network interface features API description. 132 - Network interface features API description.
129netdevices.txt 133netdevices.txt
diff --git a/Documentation/networking/e100.txt b/Documentation/networking/e100.txt
index fcb6c71cdb69..13a32124bca0 100644
--- a/Documentation/networking/e100.txt
+++ b/Documentation/networking/e100.txt
@@ -1,7 +1,7 @@
1Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters 1Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters
2============================================================== 2==============================================================
3 3
4November 15, 2005 4March 15, 2011
5 5
6Contents 6Contents
7======== 7========
@@ -122,7 +122,7 @@ Additional Configurations
122 NOTE: This setting is not saved across reboots. 122 NOTE: This setting is not saved across reboots.
123 123
124 124
125 Ethtool 125 ethtool
126 ------- 126 -------
127 127
128 The driver utilizes the ethtool interface for driver configuration and 128 The driver utilizes the ethtool interface for driver configuration and
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt
index 71ca95855671..437b2099cced 100644
--- a/Documentation/networking/e1000.txt
+++ b/Documentation/networking/e1000.txt
@@ -1,8 +1,8 @@
1Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters 1Linux* Base Driver for Intel(R) Ethernet Network Connection
2=============================================================== 2===========================================================
3 3
4Intel Gigabit Linux driver. 4Intel Gigabit Linux driver.
5Copyright(c) 1999 - 2010 Intel Corporation. 5Copyright(c) 1999 - 2013 Intel Corporation.
6 6
7Contents 7Contents
8======== 8========
@@ -420,15 +420,15 @@ Additional Configurations
420 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides 420 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides
421 with the maximum Jumbo Frames size of 16128. 421 with the maximum Jumbo Frames size of 16128.
422 422
423 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or 423 - Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
424 loss of link. 424 poor performance or loss of link.
425 425
426 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not 426 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
427 support Jumbo Frames. These correspond to the following product names: 427 support Jumbo Frames. These correspond to the following product names:
428 Intel(R) PRO/1000 Gigabit Server Adapter 428 Intel(R) PRO/1000 Gigabit Server Adapter
429 Intel(R) PRO/1000 PM Network Connection 429 Intel(R) PRO/1000 PM Network Connection
430 430
431 Ethtool 431 ethtool
432 ------- 432 -------
433 The driver utilizes the ethtool interface for driver configuration and 433 The driver utilizes the ethtool interface for driver configuration and
434 diagnostics, as well as displaying statistical information. The ethtool 434 diagnostics, as well as displaying statistical information. The ethtool
diff --git a/Documentation/networking/e1000e.txt b/Documentation/networking/e1000e.txt
index 97b5ba942ebf..ad2d9f38ce14 100644
--- a/Documentation/networking/e1000e.txt
+++ b/Documentation/networking/e1000e.txt
@@ -1,8 +1,8 @@
1Linux* Driver for Intel(R) Network Connection 1Linux* Driver for Intel(R) Ethernet Network Connection
2============================================= 2======================================================
3 3
4Intel Gigabit Linux driver. 4Intel Gigabit Linux driver.
5Copyright(c) 1999 - 2010 Intel Corporation. 5Copyright(c) 1999 - 2013 Intel Corporation.
6 6
7Contents 7Contents
8======== 8========
@@ -259,13 +259,16 @@ Additional Configurations
259 - The maximum MTU setting for Jumbo Frames is 9216. This value coincides 259 - The maximum MTU setting for Jumbo Frames is 9216. This value coincides
260 with the maximum Jumbo Frames size of 9234 bytes. 260 with the maximum Jumbo Frames size of 9234 bytes.
261 261
262 - Using Jumbo Frames at 10 or 100 Mbps is not supported and may result in 262 - Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
263 poor performance or loss of link. 263 poor performance or loss of link.
264 264
265 - Some adapters limit Jumbo Frames sized packets to a maximum of 265 - Some adapters limit Jumbo Frames sized packets to a maximum of
266 4096 bytes and some adapters do not support Jumbo Frames. 266 4096 bytes and some adapters do not support Jumbo Frames.
267 267
268 Ethtool 268 - Jumbo Frames cannot be configured on an 82579-based Network device, if
269 MACSec is enabled on the system.
270
271 ethtool
269 ------- 272 -------
270 The driver utilizes the ethtool interface for driver configuration and 273 The driver utilizes the ethtool interface for driver configuration and
271 diagnostics, as well as displaying statistical information. We 274 diagnostics, as well as displaying statistical information. We
@@ -273,6 +276,9 @@ Additional Configurations
273 276
274 http://ftp.kernel.org/pub/software/network/ethtool/ 277 http://ftp.kernel.org/pub/software/network/ethtool/
275 278
279 NOTE: When validating enable/disable tests on some parts (82578, for example)
280 you need to add a few seconds between tests when working with ethtool.
281
276 Speed and Duplex 282 Speed and Duplex
277 ---------------- 283 ----------------
278 Speed and Duplex are configured through the ethtool* utility. For 284 Speed and Duplex are configured through the ethtool* utility. For
diff --git a/Documentation/networking/i40e.txt b/Documentation/networking/i40e.txt
new file mode 100644
index 000000000000..f737273c6dc1
--- /dev/null
+++ b/Documentation/networking/i40e.txt
@@ -0,0 +1,115 @@
1Linux Base Driver for the Intel(R) Ethernet Controller XL710 Family
2===================================================================
3
4Intel i40e Linux driver.
5Copyright(c) 2013 Intel Corporation.
6
7Contents
8========
9
10- Identifying Your Adapter
11- Additional Configurations
12- Performance Tuning
13- Known Issues
14- Support
15
16
17Identifying Your Adapter
18========================
19
20The driver in this release is compatible with the Intel Ethernet
21Controller XL710 Family.
22
23For more information on how to identify your adapter, go to the Adapter &
24Driver ID Guide at:
25
26 http://support.intel.com/support/network/sb/CS-012904.htm
27
28
29Enabling the driver
30===================
31
32The driver is enabled via the standard kernel configuration system,
33using the make command:
34
35 Make oldconfig/silentoldconfig/menuconfig/etc.
36
37The driver is located in the menu structure at:
38
39 -> Device Drivers
40 -> Network device support (NETDEVICES [=y])
41 -> Ethernet driver support
42 -> Intel devices
43 -> Intel(R) Ethernet Controller XL710 Family
44
45Additional Configurations
46=========================
47
48 Generic Receive Offload (GRO)
49 -----------------------------
50 The driver supports the in-kernel software implementation of GRO. GRO has
51 shown that by coalescing Rx traffic into larger chunks of data, CPU
52 utilization can be significantly reduced when under large Rx load. GRO is
53 an evolution of the previously-used LRO interface. GRO is able to coalesce
54 other protocols besides TCP. It's also safe to use with configurations that
55 are problematic for LRO, namely bridging and iSCSI.
56
57 Ethtool
58 -------
59 The driver utilizes the ethtool interface for driver configuration and
60 diagnostics, as well as displaying statistical information. The latest
61 ethtool version is required for this functionality.
62
63 The latest release of ethtool can be found from
64 https://www.kernel.org/pub/software/network/ethtool
65
66 Data Center Bridging (DCB)
67 --------------------------
68 DCB configuration is not currently supported.
69
70 FCoE
71 ----
72 Fiber Channel over Ethernet (FCoE) hardware offload is not currently
73 supported.
74
75 MAC and VLAN anti-spoofing feature
76 ----------------------------------
77 When a malicious driver attempts to send a spoofed packet, it is dropped by
78 the hardware and not transmitted. An interrupt is sent to the PF driver
79 notifying it of the spoof attempt.
80
81 When a spoofed packet is detected the PF driver will send the following
82 message to the system log (displayed by the "dmesg" command):
83
84 Spoof event(s) detected on VF (n)
85
86 Where n=the VF that attempted to do the spoofing.
87
88
89Performance Tuning
90==================
91
92An excellent article on performance tuning can be found at:
93
94http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf
95
96
97Known Issues
98============
99
100
101Support
102=======
103
104For general information, go to the Intel support website at:
105
106 http://support.intel.com
107
108or the Intel Wired Networking project hosted by Sourceforge at:
109
110 http://e1000.sourceforge.net
111
112If an issue is identified with the released source code on the supported
113kernel with a supported adapter, email the specific information related
114to the issue to e1000-devel@lists.sourceforge.net and copy
115netdev@vger.kernel.org.
diff --git a/Documentation/networking/igb.txt b/Documentation/networking/igb.txt
index 9a2a037194a5..4ebbd659256f 100644
--- a/Documentation/networking/igb.txt
+++ b/Documentation/networking/igb.txt
@@ -1,8 +1,8 @@
1Linux* Base Driver for Intel(R) Network Connection 1Linux* Base Driver for Intel(R) Ethernet Network Connection
2================================================== 2===========================================================
3 3
4Intel Gigabit Linux driver. 4Intel Gigabit Linux driver.
5Copyright(c) 1999 - 2010 Intel Corporation. 5Copyright(c) 1999 - 2013 Intel Corporation.
6 6
7Contents 7Contents
8======== 8========
@@ -36,6 +36,53 @@ Default Value: 0
36This parameter adds support for SR-IOV. It causes the driver to spawn up to 36This parameter adds support for SR-IOV. It causes the driver to spawn up to
37max_vfs worth of virtual function. 37max_vfs worth of virtual function.
38 38
39QueuePairs
40----------
41Valid Range: 0-1
42Default Value: 1 (TX and RX will be paired onto one interrupt vector)
43
44If set to 0, when MSI-X is enabled, the TX and RX will attempt to occupy
45separate vectors.
46
47This option can be overridden to 1 if there are not sufficient interrupts
48available. This can occur if any combination of RSS, VMDQ, and max_vfs
49results in more than 4 queues being used.
50
51Node
52----
53Valid Range: 0-n
54Default Value: -1 (off)
55
56 0 - n: where n is the number of the NUMA node that should be used to
57 allocate memory for this adapter port.
58 -1: uses the driver default of allocating memory on whichever processor is
59 running insmod/modprobe.
60
61 The Node parameter will allow you to pick which NUMA node you want to have
62 the adapter allocate memory from. All driver structures, in-memory queues,
63 and receive buffers will be allocated on the node specified. This parameter
64 is only useful when interrupt affinity is specified, otherwise some portion
65 of the time the interrupt could run on a different core than the memory is
66 allocated on, causing slower memory access and impacting throughput, CPU, or
67 both.
68
69EEE
70---
71Valid Range: 0-1
72Default Value: 1 (enabled)
73
74 A link between two EEE-compliant devices will result in periodic bursts of
75 data followed by long periods where in the link is in an idle state. This Low
76 Power Idle (LPI) state is supported in both 1Gbps and 100Mbps link speeds.
77 NOTE: EEE support requires autonegotiation.
78
79DMAC
80----
81Valid Range: 0-1
82Default Value: 1 (enabled)
83 Enables or disables DMA Coalescing feature.
84
85
39 86
40Additional Configurations 87Additional Configurations
41========================= 88=========================
@@ -55,10 +102,10 @@ Additional Configurations
55 - The maximum MTU setting for Jumbo Frames is 9216. This value coincides 102 - The maximum MTU setting for Jumbo Frames is 9216. This value coincides
56 with the maximum Jumbo Frames size of 9234 bytes. 103 with the maximum Jumbo Frames size of 9234 bytes.
57 104
58 - Using Jumbo Frames at 10 or 100 Mbps may result in poor performance or 105 - Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
59 loss of link. 106 poor performance or loss of link.
60 107
61 Ethtool 108 ethtool
62 ------- 109 -------
63 The driver utilizes the ethtool interface for driver configuration and 110 The driver utilizes the ethtool interface for driver configuration and
64 diagnostics, as well as displaying statistical information. The latest 111 diagnostics, as well as displaying statistical information. The latest
@@ -106,6 +153,14 @@ Additional Configurations
106 153
107 Where n=the VF that attempted to do the spoofing. 154 Where n=the VF that attempted to do the spoofing.
108 155
156 Setting MAC Address, VLAN and Rate Limit Using IProute2 Tool
157 ------------------------------------------------------------
158 You can set a MAC address of a Virtual Function (VF), a default VLAN and the
159 rate limit using the IProute2 tool. Download the latest version of the
160 iproute2 tool from Sourceforge if your version does not have all the
161 features you require.
162
163
109Support 164Support
110======= 165=======
111 166
diff --git a/Documentation/networking/igbvf.txt b/Documentation/networking/igbvf.txt
index cbfe4ee65533..40db17a6665b 100644
--- a/Documentation/networking/igbvf.txt
+++ b/Documentation/networking/igbvf.txt
@@ -1,8 +1,8 @@
1Linux* Base Driver for Intel(R) Network Connection 1Linux* Base Driver for Intel(R) Ethernet Network Connection
2================================================== 2===========================================================
3 3
4Intel Gigabit Linux driver. 4Intel Gigabit Linux driver.
5Copyright(c) 1999 - 2010 Intel Corporation. 5Copyright(c) 1999 - 2013 Intel Corporation.
6 6
7Contents 7Contents
8======== 8========
@@ -55,7 +55,7 @@ networking link on the left to search for your adapter:
55Additional Configurations 55Additional Configurations
56========================= 56=========================
57 57
58 Ethtool 58 ethtool
59 ------- 59 -------
60 The driver utilizes the ethtool interface for driver configuration and 60 The driver utilizes the ethtool interface for driver configuration and
61 diagnostics, as well as displaying statistical information. The ethtool 61 diagnostics, as well as displaying statistical information. The ethtool
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index 10742902146f..a46d78583ae1 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -440,6 +440,10 @@ tcp_syncookies - BOOLEAN
440 SYN flood warnings in logs not being really flooded, your server 440 SYN flood warnings in logs not being really flooded, your server
441 is seriously misconfigured. 441 is seriously misconfigured.
442 442
443 If you want to test which effects syncookies have to your
444 network connections you can set this knob to 2 to enable
445 unconditionally generation of syncookies.
446
443tcp_fastopen - INTEGER 447tcp_fastopen - INTEGER
444 Enable TCP Fast Open feature (draft-ietf-tcpm-fastopen) to send data 448 Enable TCP Fast Open feature (draft-ietf-tcpm-fastopen) to send data
445 in the opening SYN packet. To use this feature, the client application 449 in the opening SYN packet. To use this feature, the client application
@@ -478,6 +482,15 @@ tcp_syn_retries - INTEGER
478tcp_timestamps - BOOLEAN 482tcp_timestamps - BOOLEAN
479 Enable timestamps as defined in RFC1323. 483 Enable timestamps as defined in RFC1323.
480 484
485tcp_min_tso_segs - INTEGER
486 Minimal number of segments per TSO frame.
487 Since linux-3.12, TCP does an automatic sizing of TSO frames,
488 depending on flow rate, instead of filling 64Kbytes packets.
489 For specific usages, it's possible to force TCP to build big
490 TSO frames. Note that TCP stack might split too big TSO packets
491 if available window is too small.
492 Default: 2
493
481tcp_tso_win_divisor - INTEGER 494tcp_tso_win_divisor - INTEGER
482 This allows control over what percentage of the congestion window 495 This allows control over what percentage of the congestion window
483 can be consumed by a single TSO frame. 496 can be consumed by a single TSO frame.
@@ -516,6 +529,19 @@ tcp_wmem - vector of 3 INTEGERs: min, default, max
516 this value is ignored. 529 this value is ignored.
517 Default: between 64K and 4MB, depending on RAM size. 530 Default: between 64K and 4MB, depending on RAM size.
518 531
532tcp_notsent_lowat - UNSIGNED INTEGER
533 A TCP socket can control the amount of unsent bytes in its write queue,
534 thanks to TCP_NOTSENT_LOWAT socket option. poll()/select()/epoll()
535 reports POLLOUT events if the amount of unsent bytes is below a per
536 socket value, and if the write queue is not full. sendmsg() will
537 also not add new buffers if the limit is hit.
538
539 This global variable controls the amount of unsent data for
540 sockets not using TCP_NOTSENT_LOWAT. For these sockets, a change
541 to the global variable has immediate effect.
542
543 Default: UINT_MAX (0xFFFFFFFF)
544
519tcp_workaround_signed_windows - BOOLEAN 545tcp_workaround_signed_windows - BOOLEAN
520 If set, assume no receipt of a window scaling option means the 546 If set, assume no receipt of a window scaling option means the
521 remote TCP is broken and treats the window as a signed quantity. 547 remote TCP is broken and treats the window as a signed quantity.
@@ -1022,7 +1048,15 @@ disable_policy - BOOLEAN
1022disable_xfrm - BOOLEAN 1048disable_xfrm - BOOLEAN
1023 Disable IPSEC encryption on this interface, whatever the policy 1049 Disable IPSEC encryption on this interface, whatever the policy
1024 1050
1051igmpv2_unsolicited_report_interval - INTEGER
1052 The interval in milliseconds in which the next unsolicited
1053 IGMPv1 or IGMPv2 report retransmit will take place.
1054 Default: 10000 (10 seconds)
1025 1055
1056igmpv3_unsolicited_report_interval - INTEGER
1057 The interval in milliseconds in which the next unsolicited
1058 IGMPv3 report retransmit will take place.
1059 Default: 1000 (1 seconds)
1026 1060
1027tag - INTEGER 1061tag - INTEGER
1028 Allows you to write a number, which can be used as required. 1062 Allows you to write a number, which can be used as required.
@@ -1314,6 +1348,27 @@ ndisc_notify - BOOLEAN
1314 1 - Generate unsolicited neighbour advertisements when device is brought 1348 1 - Generate unsolicited neighbour advertisements when device is brought
1315 up or hardware address changes. 1349 up or hardware address changes.
1316 1350
1351mldv1_unsolicited_report_interval - INTEGER
1352 The interval in milliseconds in which the next unsolicited
1353 MLDv1 report retransmit will take place.
1354 Default: 10000 (10 seconds)
1355
1356mldv2_unsolicited_report_interval - INTEGER
1357 The interval in milliseconds in which the next unsolicited
1358 MLDv2 report retransmit will take place.
1359 Default: 1000 (1 second)
1360
1361force_mld_version - INTEGER
1362 0 - (default) No enforcement of a MLD version, MLDv1 fallback allowed
1363 1 - Enforce to use MLD version 1
1364 2 - Enforce to use MLD version 2
1365
1366suppress_frag_ndisc - INTEGER
1367 Control RFC 6980 (Security Implications of IPv6 Fragmentation
1368 with IPv6 Neighbor Discovery) behavior:
1369 1 - (default) discard fragmented neighbor discovery packets
1370 0 - allow fragmented neighbor discovery packets
1371
1317icmp/*: 1372icmp/*:
1318ratelimit - INTEGER 1373ratelimit - INTEGER
1319 Limit the maximal rates for sending ICMPv6 packets. 1374 Limit the maximal rates for sending ICMPv6 packets.
diff --git a/Documentation/networking/ixgb.txt b/Documentation/networking/ixgb.txt
index d75a1f9565bb..1e0c045e89f7 100644
--- a/Documentation/networking/ixgb.txt
+++ b/Documentation/networking/ixgb.txt
@@ -1,7 +1,7 @@
1Linux Base Driver for 10 Gigabit Intel(R) Network Connection 1Linux Base Driver for 10 Gigabit Intel(R) Ethernet Network Connection
2============================================================= 2=====================================================================
3 3
4October 9, 2007 4March 14, 2011
5 5
6 6
7Contents 7Contents
@@ -274,9 +274,9 @@ Additional Configurations
274 ------------------------------------------------- 274 -------------------------------------------------
275 Configuring a network driver to load properly when the system is started is 275 Configuring a network driver to load properly when the system is started is
276 distribution dependent. Typically, the configuration process involves adding 276 distribution dependent. Typically, the configuration process involves adding
277 an alias line to files in /etc/modprobe.d/ as well as editing other system 277 an alias line to /etc/modprobe.conf as well as editing other system startup
278 startup scripts and/or configuration files. Many popular Linux distributions 278 scripts and/or configuration files. Many popular Linux distributions ship
279 ship with tools to make these changes for you. To learn the proper way to 279 with tools to make these changes for you. To learn the proper way to
280 configure a network device for your system, refer to your distribution 280 configure a network device for your system, refer to your distribution
281 documentation. If during this process you are asked for the driver or module 281 documentation. If during this process you are asked for the driver or module
282 name, the name for the Linux Base Driver for the Intel 10GbE Family of 282 name, the name for the Linux Base Driver for the Intel 10GbE Family of
@@ -306,7 +306,7 @@ Additional Configurations
306 with the maximum Jumbo Frames size of 16128. 306 with the maximum Jumbo Frames size of 16128.
307 307
308 308
309 Ethtool 309 ethtool
310 ------- 310 -------
311 The driver utilizes the ethtool interface for driver configuration and 311 The driver utilizes the ethtool interface for driver configuration and
312 diagnostics, as well as displaying statistical information. The ethtool 312 diagnostics, as well as displaying statistical information. The ethtool
diff --git a/Documentation/networking/ixgbe.txt b/Documentation/networking/ixgbe.txt
index af77ed3c4172..96cccebb839b 100644
--- a/Documentation/networking/ixgbe.txt
+++ b/Documentation/networking/ixgbe.txt
@@ -1,8 +1,9 @@
1Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection 1Linux* Base Driver for the Intel(R) Ethernet 10 Gigabit PCI Express Family of
2======================================================================== 2Adapters
3=============================================================================
3 4
4Intel Gigabit Linux driver. 5Intel 10 Gigabit Linux driver.
5Copyright(c) 1999 - 2010 Intel Corporation. 6Copyright(c) 1999 - 2013 Intel Corporation.
6 7
7Contents 8Contents
8======== 9========
@@ -16,8 +17,8 @@ Contents
16Identifying Your Adapter 17Identifying Your Adapter
17======================== 18========================
18 19
19The driver in this release is compatible with 82598 and 82599-based Intel 20The driver in this release is compatible with 82598, 82599 and X540-based
20Network Connections. 21Intel Network Connections.
21 22
22For more information on how to identify your adapter, go to the Adapter & 23For more information on how to identify your adapter, go to the Adapter &
23Driver ID Guide at: 24Driver ID Guide at:
@@ -72,7 +73,7 @@ cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications.
72Laser turns off for SFP+ when ifconfig down 73Laser turns off for SFP+ when ifconfig down
73------------------------------------------- 74-------------------------------------------
74"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters. 75"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters.
75"ifconfig up" turns on the later. 76"ifconfig up" turns on the laser.
76 77
77 78
7882598-BASED ADAPTERS 7982598-BASED ADAPTERS
@@ -118,6 +119,93 @@ NOTE: For 82598 backplane cards entering 1 gig mode, flow control default
118behavior is changed to off. Flow control in 1 gig mode on these devices can 119behavior is changed to off. Flow control in 1 gig mode on these devices can
119lead to Tx hangs. 120lead to Tx hangs.
120 121
122Intel(R) Ethernet Flow Director
123-------------------------------
124Supports advanced filters that direct receive packets by their flows to
125different queues. Enables tight control on routing a flow in the platform.
126Matches flows and CPU cores for flow affinity. Supports multiple parameters
127for flexible flow classification and load balancing.
128
129Flow director is enabled only if the kernel is multiple TX queue capable.
130
131An included script (set_irq_affinity.sh) automates setting the IRQ to CPU
132affinity.
133
134You can verify that the driver is using Flow Director by looking at the counter
135in ethtool: fdir_miss and fdir_match.
136
137Other ethtool Commands:
138To enable Flow Director
139 ethtool -K ethX ntuple on
140To add a filter
141 Use -U switch. e.g., ethtool -U ethX flow-type tcp4 src-ip 0x178000a
142 action 1
143To see the list of filters currently present:
144 ethtool -u ethX
145
146Perfect Filter: Perfect filter is an interface to load the filter table that
147funnels all flow into queue_0 unless an alternative queue is specified using
148"action". In that case, any flow that matches the filter criteria will be
149directed to the appropriate queue.
150
151If the queue is defined as -1, filter will drop matching packets.
152
153To account for filter matches and misses, there are two stats in ethtool:
154fdir_match and fdir_miss. In addition, rx_queue_N_packets shows the number of
155packets processed by the Nth queue.
156
157NOTE: Receive Packet Steering (RPS) and Receive Flow Steering (RFS) are not
158compatible with Flow Director. IF Flow Director is enabled, these will be
159disabled.
160
161The following three parameters impact Flow Director.
162
163FdirMode
164--------
165Valid Range: 0-2 (0=off, 1=ATR, 2=Perfect filter mode)
166Default Value: 1
167
168 Flow Director filtering modes.
169
170FdirPballoc
171-----------
172Valid Range: 0-2 (0=64k, 1=128k, 2=256k)
173Default Value: 0
174
175 Flow Director allocated packet buffer size.
176
177AtrSampleRate
178--------------
179Valid Range: 1-100
180Default Value: 20
181
182 Software ATR Tx packet sample rate. For example, when set to 20, every 20th
183 packet, looks to see if the packet will create a new flow.
184
185Node
186----
187Valid Range: 0-n
188Default Value: 1 (off)
189
190 0 - n: where n is the number of NUMA nodes (i.e. 0 - 3) currently online in
191 your system
192 1: turns this option off
193
194 The Node parameter will allow you to pick which NUMA node you want to have
195 the adapter allocate memory on.
196
197max_vfs
198-------
199Valid Range: 1-63
200Default Value: 0
201
202 If the value is greater than 0 it will also force the VMDq parameter to be 1
203 or more.
204
205 This parameter adds support for SR-IOV. It causes the driver to spawn up to
206 max_vfs worth of virtual function.
207
208
121Additional Configurations 209Additional Configurations
122========================= 210=========================
123 211
@@ -221,9 +309,10 @@ http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf
221Known Issues 309Known Issues
222============ 310============
223 311
224 Enabling SR-IOV in a 32-bit Microsoft* Windows* Server 2008 Guest OS using 312 Enabling SR-IOV in a 32-bit or 64-bit Microsoft* Windows* Server 2008/R2
225 Intel (R) 82576-based GbE or Intel (R) 82599-based 10GbE controller under KVM 313 Guest OS using Intel (R) 82576-based GbE or Intel (R) 82599-based 10GbE
226 ----------------------------------------------------------------------------- 314 controller under KVM
315 ------------------------------------------------------------------------
227 KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This 316 KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This
228 includes traditional PCIe devices, as well as SR-IOV-capable devices using 317 includes traditional PCIe devices, as well as SR-IOV-capable devices using
229 Intel 82576-based and 82599-based controllers. 318 Intel 82576-based and 82599-based controllers.
diff --git a/Documentation/networking/ixgbevf.txt b/Documentation/networking/ixgbevf.txt
index 5a91a41fa946..53d8d2a5a6a3 100644
--- a/Documentation/networking/ixgbevf.txt
+++ b/Documentation/networking/ixgbevf.txt
@@ -1,8 +1,8 @@
1Linux* Base Driver for Intel(R) Network Connection 1Linux* Base Driver for Intel(R) Ethernet Network Connection
2================================================== 2===========================================================
3 3
4Intel Gigabit Linux driver. 4Intel Gigabit Linux driver.
5Copyright(c) 1999 - 2010 Intel Corporation. 5Copyright(c) 1999 - 2013 Intel Corporation.
6 6
7Contents 7Contents
8======== 8========
diff --git a/Documentation/networking/netdev-FAQ.txt b/Documentation/networking/netdev-FAQ.txt
new file mode 100644
index 000000000000..d9112f01c44a
--- /dev/null
+++ b/Documentation/networking/netdev-FAQ.txt
@@ -0,0 +1,224 @@
1
2Information you need to know about netdev
3-----------------------------------------
4
5Q: What is netdev?
6
7A: It is a mailing list for all network related linux stuff. This includes
8 anything found under net/ (i.e. core code like IPv6) and drivers/net
9 (i.e. hardware specific drivers) in the linux source tree.
10
11 Note that some subsystems (e.g. wireless drivers) which have a high volume
12 of traffic have their own specific mailing lists.
13
14 The netdev list is managed (like many other linux mailing lists) through
15 VGER ( http://vger.kernel.org/ ) and archives can be found below:
16
17 http://marc.info/?l=linux-netdev
18 http://www.spinics.net/lists/netdev/
19
20 Aside from subsystems like that mentioned above, all network related linux
21 development (i.e. RFC, review, comments, etc) takes place on netdev.
22
23Q: How do the changes posted to netdev make their way into linux?
24
25A: There are always two trees (git repositories) in play. Both are driven
26 by David Miller, the main network maintainer. There is the "net" tree,
27 and the "net-next" tree. As you can probably guess from the names, the
28 net tree is for fixes to existing code already in the mainline tree from
29 Linus, and net-next is where the new code goes for the future release.
30 You can find the trees here:
31
32 http://git.kernel.org/?p=linux/kernel/git/davem/net.git
33 http://git.kernel.org/?p=linux/kernel/git/davem/net-next.git
34
35Q: How often do changes from these trees make it to the mainline Linus tree?
36
37A: To understand this, you need to know a bit of background information
38 on the cadence of linux development. Each new release starts off with
39 a two week "merge window" where the main maintainers feed their new
40 stuff to Linus for merging into the mainline tree. After the two weeks,
41 the merge window is closed, and it is called/tagged "-rc1". No new
42 features get mainlined after this -- only fixes to the rc1 content
43 are expected. After roughly a week of collecting fixes to the rc1
44 content, rc2 is released. This repeats on a roughly weekly basis
45 until rc7 (typically; sometimes rc6 if things are quiet, or rc8 if
46 things are in a state of churn), and a week after the last vX.Y-rcN
47 was done, the official "vX.Y" is released.
48
49 Relating that to netdev: At the beginning of the 2 week merge window,
50 the net-next tree will be closed - no new changes/features. The
51 accumulated new content of the past ~10 weeks will be passed onto
52 mainline/Linus via a pull request for vX.Y -- at the same time,
53 the "net" tree will start accumulating fixes for this pulled content
54 relating to vX.Y
55
56 An announcement indicating when net-next has been closed is usually
57 sent to netdev, but knowing the above, you can predict that in advance.
58
59 IMPORTANT: Do not send new net-next content to netdev during the
60 period during which net-next tree is closed.
61
62 Shortly after the two weeks have passed, (and vX.Y-rc1 is released) the
63 tree for net-next reopens to collect content for the next (vX.Y+1) release.
64
65 If you aren't subscribed to netdev and/or are simply unsure if net-next
66 has re-opened yet, simply check the net-next git repository link above for
67 any new networking related commits.
68
69 The "net" tree continues to collect fixes for the vX.Y content, and
70 is fed back to Linus at regular (~weekly) intervals. Meaning that the
71 focus for "net" is on stablilization and bugfixes.
72
73 Finally, the vX.Y gets released, and the whole cycle starts over.
74
75Q: So where are we now in this cycle?
76
77A: Load the mainline (Linus) page here:
78
79 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git
80
81 and note the top of the "tags" section. If it is rc1, it is early
82 in the dev cycle. If it was tagged rc7 a week ago, then a release
83 is probably imminent.
84
85Q: How do I indicate which tree (net vs. net-next) my patch should be in?
86
87A: Firstly, think whether you have a bug fix or new "next-like" content.
88 Then once decided, assuming that you use git, use the prefix flag, i.e.
89
90 git format-patch --subject-prefix='PATCH net-next' start..finish
91
92 Use "net" instead of "net-next" (always lower case) in the above for
93 bug-fix net content. If you don't use git, then note the only magic in
94 the above is just the subject text of the outgoing e-mail, and you can
95 manually change it yourself with whatever MUA you are comfortable with.
96
97Q: I sent a patch and I'm wondering what happened to it. How can I tell
98 whether it got merged?
99
100A: Start by looking at the main patchworks queue for netdev:
101
102 http://patchwork.ozlabs.org/project/netdev/list/
103
104 The "State" field will tell you exactly where things are at with
105 your patch.
106
107Q: The above only says "Under Review". How can I find out more?
108
109A: Generally speaking, the patches get triaged quickly (in less than 48h).
110 So be patient. Asking the maintainer for status updates on your
111 patch is a good way to ensure your patch is ignored or pushed to
112 the bottom of the priority list.
113
114Q: How can I tell what patches are queued up for backporting to the
115 various stable releases?
116
117A: Normally Greg Kroah-Hartman collects stable commits himself, but
118 for networking, Dave collects up patches he deems critical for the
119 networking subsystem, and then hands them off to Greg.
120
121 There is a patchworks queue that you can see here:
122 http://patchwork.ozlabs.org/bundle/davem/stable/?state=*
123
124 It contains the patches which Dave has selected, but not yet handed
125 off to Greg. If Greg already has the patch, then it will be here:
126 http://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git
127
128 A quick way to find whether the patch is in this stable-queue is
129 to simply clone the repo, and then git grep the mainline commit ID, e.g.
130
131 stable-queue$ git grep -l 284041ef21fdf2e
132 releases/3.0.84/ipv6-fix-possible-crashes-in-ip6_cork_release.patch
133 releases/3.4.51/ipv6-fix-possible-crashes-in-ip6_cork_release.patch
134 releases/3.9.8/ipv6-fix-possible-crashes-in-ip6_cork_release.patch
135 stable/stable-queue$
136
137Q: I see a network patch and I think it should be backported to stable.
138 Should I request it via "stable@vger.kernel.org" like the references in
139 the kernel's Documentation/stable_kernel_rules.txt file say?
140
141A: No, not for networking. Check the stable queues as per above 1st to see
142 if it is already queued. If not, then send a mail to netdev, listing
143 the upstream commit ID and why you think it should be a stable candidate.
144
145 Before you jump to go do the above, do note that the normal stable rules
146 in Documentation/stable_kernel_rules.txt still apply. So you need to
147 explicitly indicate why it is a critical fix and exactly what users are
148 impacted. In addition, you need to convince yourself that you _really_
149 think it has been overlooked, vs. having been considered and rejected.
150
151 Generally speaking, the longer it has had a chance to "soak" in mainline,
152 the better the odds that it is an OK candidate for stable. So scrambling
153 to request a commit be added the day after it appears should be avoided.
154
155Q: I have created a network patch and I think it should be backported to
156 stable. Should I add a "Cc: stable@vger.kernel.org" like the references
157 in the kernel's Documentation/ directory say?
158
159A: No. See above answer. In short, if you think it really belongs in
160 stable, then ensure you write a decent commit log that describes who
161 gets impacted by the bugfix and how it manifests itself, and when the
162 bug was introduced. If you do that properly, then the commit will
163 get handled appropriately and most likely get put in the patchworks
164 stable queue if it really warrants it.
165
166 If you think there is some valid information relating to it being in
167 stable that does _not_ belong in the commit log, then use the three
168 dash marker line as described in Documentation/SubmittingPatches to
169 temporarily embed that information into the patch that you send.
170
171Q: Someone said that the comment style and coding convention is different
172 for the networking content. Is this true?
173
174A: Yes, in a largely trivial way. Instead of this:
175
176 /*
177 * foobar blah blah blah
178 * another line of text
179 */
180
181 it is requested that you make it look like this:
182
183 /* foobar blah blah blah
184 * another line of text
185 */
186
187Q: I am working in existing code that has the former comment style and not the
188 latter. Should I submit new code in the former style or the latter?
189
190A: Make it the latter style, so that eventually all code in the domain of
191 netdev is of this format.
192
193Q: I found a bug that might have possible security implications or similar.
194 Should I mail the main netdev maintainer off-list?
195
196A: No. The current netdev maintainer has consistently requested that people
197 use the mailing lists and not reach out directly. If you aren't OK with
198 that, then perhaps consider mailing "security@kernel.org" or reading about
199 http://oss-security.openwall.org/wiki/mailing-lists/distros
200 as possible alternative mechanisms.
201
202Q: What level of testing is expected before I submit my change?
203
204A: If your changes are against net-next, the expectation is that you
205 have tested by layering your changes on top of net-next. Ideally you
206 will have done run-time testing specific to your change, but at a
207 minimum, your changes should survive an "allyesconfig" and an
208 "allmodconfig" build without new warnings or failures.
209
210Q: Any other tips to help ensure my net/net-next patch gets OK'd?
211
212A: Attention to detail. Re-read your own work as if you were the
213 reviewer. You can start with using checkpatch.pl, perhaps even
214 with the "--strict" flag. But do not be mindlessly robotic in
215 doing so. If your change is a bug-fix, make sure your commit log
216 indicates the end-user visible symptom, the underlying reason as
217 to why it happens, and then if necessary, explain why the fix proposed
218 is the best way to get things done. Don't mangle whitespace, and as
219 is common, don't mis-indent function arguments that span multiple lines.
220 If it is your 1st patch, mail it to yourself so you can test apply
221 it to an unpatched tree to confirm infrastructure didn't mangle it.
222
223 Finally, go back and read Documentation/SubmittingPatches to be
224 sure you are not repeating some common mistake documented there.
diff --git a/Documentation/networking/openvswitch.txt b/Documentation/networking/openvswitch.txt
index 8fa2dd1e792e..37c20ee2455e 100644
--- a/Documentation/networking/openvswitch.txt
+++ b/Documentation/networking/openvswitch.txt
@@ -91,6 +91,46 @@ Often we ellipsize arguments not important to the discussion, e.g.:
91 in_port(1), eth(...), eth_type(0x0800), ipv4(...), tcp(...) 91 in_port(1), eth(...), eth_type(0x0800), ipv4(...), tcp(...)
92 92
93 93
94Wildcarded flow key format
95--------------------------
96
97A wildcarded flow is described with two sequences of Netlink attributes
98passed over the Netlink socket. A flow key, exactly as described above, and an
99optional corresponding flow mask.
100
101A wildcarded flow can represent a group of exact match flows. Each '1' bit
102in the mask specifies a exact match with the corresponding bit in the flow key.
103A '0' bit specifies a don't care bit, which will match either a '1' or '0' bit
104of a incoming packet. Using wildcarded flow can improve the flow set up rate
105by reduce the number of new flows need to be processed by the user space program.
106
107Support for the mask Netlink attribute is optional for both the kernel and user
108space program. The kernel can ignore the mask attribute, installing an exact
109match flow, or reduce the number of don't care bits in the kernel to less than
110what was specified by the user space program. In this case, variations in bits
111that the kernel does not implement will simply result in additional flow setups.
112The kernel module will also work with user space programs that neither support
113nor supply flow mask attributes.
114
115Since the kernel may ignore or modify wildcard bits, it can be difficult for
116the userspace program to know exactly what matches are installed. There are
117two possible approaches: reactively install flows as they miss the kernel
118flow table (and therefore not attempt to determine wildcard changes at all)
119or use the kernel's response messages to determine the installed wildcards.
120
121When interacting with userspace, the kernel should maintain the match portion
122of the key exactly as originally installed. This will provides a handle to
123identify the flow for all future operations. However, when reporting the
124mask of an installed flow, the mask should include any restrictions imposed
125by the kernel.
126
127The behavior when using overlapping wildcarded flows is undefined. It is the
128responsibility of the user space program to ensure that any incoming packet
129can match at most one flow, wildcarded or not. The current implementation
130performs best-effort detection of overlapping wildcarded flows and may reject
131some but not all of them. However, this behavior may change in future versions.
132
133
94Basic rule for evolving flow keys 134Basic rule for evolving flow keys
95--------------------------------- 135---------------------------------
96 136
diff --git a/Documentation/networking/packet_mmap.txt b/Documentation/networking/packet_mmap.txt
index 8572796b1eb6..c01223628a87 100644
--- a/Documentation/networking/packet_mmap.txt
+++ b/Documentation/networking/packet_mmap.txt
@@ -543,6 +543,14 @@ TPACKET_V2 --> TPACKET_V3:
543In the AF_PACKET fanout mode, packet reception can be load balanced among 543In the AF_PACKET fanout mode, packet reception can be load balanced among
544processes. This also works in combination with mmap(2) on packet sockets. 544processes. This also works in combination with mmap(2) on packet sockets.
545 545
546Currently implemented fanout policies are:
547
548 - PACKET_FANOUT_HASH: schedule to socket by skb's rxhash
549 - PACKET_FANOUT_LB: schedule to socket by round-robin
550 - PACKET_FANOUT_CPU: schedule to socket by CPU packet arrives on
551 - PACKET_FANOUT_RND: schedule to socket by random selection
552 - PACKET_FANOUT_ROLLOVER: if one socket is full, rollover to another
553
546Minimal example code by David S. Miller (try things like "./test eth0 hash", 554Minimal example code by David S. Miller (try things like "./test eth0 hash",
547"./test eth0 lb", etc.): 555"./test eth0 lb", etc.):
548 556
diff --git a/Documentation/networking/sctp.txt b/Documentation/networking/sctp.txt
index 0c790a76910e..97b810ca9082 100644
--- a/Documentation/networking/sctp.txt
+++ b/Documentation/networking/sctp.txt
@@ -19,7 +19,6 @@ of SCTP that is RFC 2960 compliant and provides an programming interface
19referred to as the UDP-style API of the Sockets Extensions for SCTP, as 19referred to as the UDP-style API of the Sockets Extensions for SCTP, as
20proposed in IETF Internet-Drafts. 20proposed in IETF Internet-Drafts.
21 21
22
23Caveats: 22Caveats:
24 23
25-lksctp can be built as statically or as a module. However, be aware that 24-lksctp can be built as statically or as a module. However, be aware that
@@ -33,6 +32,4 @@ For more information, please visit the lksctp project website:
33 http://www.sf.net/projects/lksctp 32 http://www.sf.net/projects/lksctp
34 33
35Or contact the lksctp developers through the mailing list: 34Or contact the lksctp developers through the mailing list:
36 <lksctp-developers@lists.sourceforge.net> 35 <linux-sctp@vger.kernel.org>
37
38
diff --git a/Documentation/networking/stmmac.txt b/Documentation/networking/stmmac.txt
index 654d2e55c8cb..457b8bbafb08 100644
--- a/Documentation/networking/stmmac.txt
+++ b/Documentation/networking/stmmac.txt
@@ -123,6 +123,7 @@ struct plat_stmmacenet_data {
123 int bugged_jumbo; 123 int bugged_jumbo;
124 int pmt; 124 int pmt;
125 int force_sf_dma_mode; 125 int force_sf_dma_mode;
126 int force_thresh_dma_mode;
126 int riwt_off; 127 int riwt_off;
127 void (*fix_mac_speed)(void *priv, unsigned int speed); 128 void (*fix_mac_speed)(void *priv, unsigned int speed);
128 void (*bus_setup)(void __iomem *ioaddr); 129 void (*bus_setup)(void __iomem *ioaddr);
@@ -159,6 +160,8 @@ Where:
159 o pmt: core has the embedded power module (optional). 160 o pmt: core has the embedded power module (optional).
160 o force_sf_dma_mode: force DMA to use the Store and Forward mode 161 o force_sf_dma_mode: force DMA to use the Store and Forward mode
161 instead of the Threshold. 162 instead of the Threshold.
163 o force_thresh_dma_mode: force DMA to use the Shreshold mode other than
164 the Store and Forward mode.
162 o riwt_off: force to disable the RX watchdog feature and switch to NAPI mode. 165 o riwt_off: force to disable the RX watchdog feature and switch to NAPI mode.
163 o fix_mac_speed: this callback is used for modifying some syscfg registers 166 o fix_mac_speed: this callback is used for modifying some syscfg registers
164 (on ST SoCs) according to the link speed negotiated by the 167 (on ST SoCs) according to the link speed negotiated by the
diff --git a/Documentation/networking/tproxy.txt b/Documentation/networking/tproxy.txt
index 7b5996d9357e..ec11429e1d42 100644
--- a/Documentation/networking/tproxy.txt
+++ b/Documentation/networking/tproxy.txt
@@ -2,9 +2,8 @@ Transparent proxy support
2========================= 2=========================
3 3
4This feature adds Linux 2.2-like transparent proxy support to current kernels. 4This feature adds Linux 2.2-like transparent proxy support to current kernels.
5To use it, enable NETFILTER_TPROXY, the socket match and the TPROXY target in 5To use it, enable the socket match and the TPROXY target in your kernel config.
6your kernel config. You will need policy routing too, so be sure to enable that 6You will need policy routing too, so be sure to enable that as well.
7as well.
8 7
9 8
101. Making non-local sockets work 91. Making non-local sockets work
diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt
index 052e13af2d38..c0ffd30eb55e 100644
--- a/Documentation/pinctrl.txt
+++ b/Documentation/pinctrl.txt
@@ -81,7 +81,7 @@ int __init foo_probe(void)
81 struct pinctrl_dev *pctl; 81 struct pinctrl_dev *pctl;
82 82
83 pctl = pinctrl_register(&foo_desc, <PARENT>, NULL); 83 pctl = pinctrl_register(&foo_desc, <PARENT>, NULL);
84 if (IS_ERR(pctl)) 84 if (!pctl)
85 pr_err("could not register foo pin driver\n"); 85 pr_err("could not register foo pin driver\n");
86} 86}
87 87
@@ -795,18 +795,97 @@ special GPIO-handler is registered.
795GPIO mode pitfalls 795GPIO mode pitfalls
796================== 796==================
797 797
798Sometime the developer may be confused by a datasheet talking about a pin 798Due to the naming conventions used by hardware engineers, where "GPIO"
799being possible to set into "GPIO mode". It appears that what hardware 799is taken to mean different things than what the kernel does, the developer
800engineers mean with "GPIO mode" is not necessarily the use case that is 800may be confused by a datasheet talking about a pin being possible to set
801implied in the kernel interface <linux/gpio.h>: a pin that you grab from 801into "GPIO mode". It appears that what hardware engineers mean with
802kernel code and then either listen for input or drive high/low to 802"GPIO mode" is not necessarily the use case that is implied in the kernel
803assert/deassert some external line. 803interface <linux/gpio.h>: a pin that you grab from kernel code and then
804either listen for input or drive high/low to assert/deassert some
805external line.
804 806
805Rather hardware engineers think that "GPIO mode" means that you can 807Rather hardware engineers think that "GPIO mode" means that you can
806software-control a few electrical properties of the pin that you would 808software-control a few electrical properties of the pin that you would
807not be able to control if the pin was in some other mode, such as muxed in 809not be able to control if the pin was in some other mode, such as muxed in
808for a device. 810for a device.
809 811
812The GPIO portions of a pin and its relation to a certain pin controller
813configuration and muxing logic can be constructed in several ways. Here
814are two examples:
815
816(A)
817 pin config
818 logic regs
819 | +- SPI
820 Physical pins --- pad --- pinmux -+- I2C
821 | +- mmc
822 | +- GPIO
823 pin
824 multiplex
825 logic regs
826
827Here some electrical properties of the pin can be configured no matter
828whether the pin is used for GPIO or not. If you multiplex a GPIO onto a
829pin, you can also drive it high/low from "GPIO" registers.
830Alternatively, the pin can be controlled by a certain peripheral, while
831still applying desired pin config properties. GPIO functionality is thus
832orthogonal to any other device using the pin.
833
834In this arrangement the registers for the GPIO portions of the pin controller,
835or the registers for the GPIO hardware module are likely to reside in a
836separate memory range only intended for GPIO driving, and the register
837range dealing with pin config and pin multiplexing get placed into a
838different memory range and a separate section of the data sheet.
839
840(B)
841
842 pin config
843 logic regs
844 | +- SPI
845 Physical pins --- pad --- pinmux -+- I2C
846 | | +- mmc
847 | |
848 GPIO pin
849 multiplex
850 logic regs
851
852In this arrangement, the GPIO functionality can always be enabled, such that
853e.g. a GPIO input can be used to "spy" on the SPI/I2C/MMC signal while it is
854pulsed out. It is likely possible to disrupt the traffic on the pin by doing
855wrong things on the GPIO block, as it is never really disconnected. It is
856possible that the GPIO, pin config and pin multiplex registers are placed into
857the same memory range and the same section of the data sheet, although that
858need not be the case.
859
860From a kernel point of view, however, these are different aspects of the
861hardware and shall be put into different subsystems:
862
863- Registers (or fields within registers) that control electrical
864 properties of the pin such as biasing and drive strength should be
865 exposed through the pinctrl subsystem, as "pin configuration" settings.
866
867- Registers (or fields within registers) that control muxing of signals
868 from various other HW blocks (e.g. I2C, MMC, or GPIO) onto pins should
869 be exposed through the pinctrl subssytem, as mux functions.
870
871- Registers (or fields within registers) that control GPIO functionality
872 such as setting a GPIO's output value, reading a GPIO's input value, or
873 setting GPIO pin direction should be exposed through the GPIO subsystem,
874 and if they also support interrupt capabilities, through the irqchip
875 abstraction.
876
877Depending on the exact HW register design, some functions exposed by the
878GPIO subsystem may call into the pinctrl subsystem in order to
879co-ordinate register settings across HW modules. In particular, this may
880be needed for HW with separate GPIO and pin controller HW modules, where
881e.g. GPIO direction is determined by a register in the pin controller HW
882module rather than the GPIO HW module.
883
884Electrical properties of the pin such as biasing and drive strength
885may be placed at some pin-specific register in all cases or as part
886of the GPIO register in case (B) especially. This doesn't mean that such
887properties necessarily pertain to what the Linux kernel calls "GPIO".
888
810Example: a pin is usually muxed in to be used as a UART TX line. But during 889Example: a pin is usually muxed in to be used as a UART TX line. But during
811system sleep, we need to put this pin into "GPIO mode" and ground it. 890system sleep, we need to put this pin into "GPIO mode" and ground it.
812 891
@@ -856,7 +935,7 @@ static unsigned long uart_sleep_mode[] = {
856 PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0), 935 PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0),
857}; 936};
858 937
859static struct pinctrl_map __initdata pinmap[] = { 938static struct pinctrl_map pinmap[] __initdata = {
860 PIN_MAP_MUX_GROUP("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo", 939 PIN_MAP_MUX_GROUP("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo",
861 "u0_group", "u0"), 940 "u0_group", "u0"),
862 PIN_MAP_CONFIGS_PIN("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo", 941 PIN_MAP_CONFIGS_PIN("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo",
@@ -951,7 +1030,7 @@ Since the above construct is pretty common there is a helper macro to make
951it even more compact which assumes you want to use pinctrl-foo and position 1030it even more compact which assumes you want to use pinctrl-foo and position
9520 for mapping, for example: 10310 for mapping, for example:
953 1032
954static struct pinctrl_map __initdata mapping[] = { 1033static struct pinctrl_map mapping[] __initdata = {
955 PIN_MAP_MUX_GROUP("foo-i2c.o", PINCTRL_STATE_DEFAULT, "pinctrl-foo", NULL, "i2c0"), 1034 PIN_MAP_MUX_GROUP("foo-i2c.o", PINCTRL_STATE_DEFAULT, "pinctrl-foo", NULL, "i2c0"),
956}; 1035};
957 1036
@@ -970,7 +1049,7 @@ static unsigned long i2c_pin_configs[] = {
970 FOO_SLEW_RATE_SLOW, 1049 FOO_SLEW_RATE_SLOW,
971}; 1050};
972 1051
973static struct pinctrl_map __initdata mapping[] = { 1052static struct pinctrl_map mapping[] __initdata = {
974 PIN_MAP_MUX_GROUP("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0", "i2c0"), 1053 PIN_MAP_MUX_GROUP("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0", "i2c0"),
975 PIN_MAP_CONFIGS_GROUP("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0", i2c_grp_configs), 1054 PIN_MAP_CONFIGS_GROUP("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0", i2c_grp_configs),
976 PIN_MAP_CONFIGS_PIN("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0scl", i2c_pin_configs), 1055 PIN_MAP_CONFIGS_PIN("foo-i2c.0", PINCTRL_STATE_DEFAULT, "pinctrl-foo", "i2c0scl", i2c_pin_configs),
@@ -984,7 +1063,7 @@ order to explicitly indicate that the states were provided and intended to
984be empty. Table entry macro PIN_MAP_DUMMY_STATE serves the purpose of defining 1063be empty. Table entry macro PIN_MAP_DUMMY_STATE serves the purpose of defining
985a named state without causing any pin controller to be programmed: 1064a named state without causing any pin controller to be programmed:
986 1065
987static struct pinctrl_map __initdata mapping[] = { 1066static struct pinctrl_map mapping[] __initdata = {
988 PIN_MAP_DUMMY_STATE("foo-i2c.0", PINCTRL_STATE_DEFAULT), 1067 PIN_MAP_DUMMY_STATE("foo-i2c.0", PINCTRL_STATE_DEFAULT),
989}; 1068};
990 1069
diff --git a/Documentation/power/basic-pm-debugging.txt b/Documentation/power/basic-pm-debugging.txt
index 262acf56fa79..e9b54de8fdf7 100644
--- a/Documentation/power/basic-pm-debugging.txt
+++ b/Documentation/power/basic-pm-debugging.txt
@@ -179,7 +179,7 @@ use the PM_TRACE mechanism documented in Documentation/power/s2ram.txt .
179 179
180To verify that the STR works, it is generally more convenient to use the s2ram 180To verify that the STR works, it is generally more convenient to use the s2ram
181tool available from http://suspend.sf.net and documented at 181tool available from http://suspend.sf.net and documented at
182http://en.opensuse.org/SDB:Suspend_to_RAM. 182http://en.opensuse.org/SDB:Suspend_to_RAM (S2RAM_LINK).
183 183
184Namely, after writing "freezer", "devices", "platform", "processors", or "core" 184Namely, after writing "freezer", "devices", "platform", "processors", or "core"
185into /sys/power/pm_test (available if the kernel is compiled with 185into /sys/power/pm_test (available if the kernel is compiled with
@@ -194,10 +194,10 @@ Among other things, the testing with the help of /sys/power/pm_test may allow
194you to identify drivers that fail to suspend or resume their devices. They 194you to identify drivers that fail to suspend or resume their devices. They
195should be unloaded every time before an STR transition. 195should be unloaded every time before an STR transition.
196 196
197Next, you can follow the instructions at http://en.opensuse.org/s2ram to test 197Next, you can follow the instructions at S2RAM_LINK to test the system, but if
198the system, but if it does not work "out of the box", you may need to boot it 198it does not work "out of the box", you may need to boot it with
199with "init=/bin/bash" and test s2ram in the minimal configuration. In that 199"init=/bin/bash" and test s2ram in the minimal configuration. In that case,
200case, you may be able to search for failing drivers by following the procedure 200you may be able to search for failing drivers by following the procedure
201analogous to the one described in section 1. If you find some failing drivers, 201analogous to the one described in section 1. If you find some failing drivers,
202you will have to unload them every time before an STR transition (ie. before 202you will have to unload them every time before an STR transition (ie. before
203you run s2ram), and please report the problems with them. 203you run s2ram), and please report the problems with them.
diff --git a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt
index 0b4b63e7e9b6..079160e22bcc 100644
--- a/Documentation/power/swsusp.txt
+++ b/Documentation/power/swsusp.txt
@@ -50,6 +50,19 @@ echo N > /sys/power/image_size
50 50
51before suspend (it is limited to 500 MB by default). 51before suspend (it is limited to 500 MB by default).
52 52
53. The resume process checks for the presence of the resume device,
54if found, it then checks the contents for the hibernation image signature.
55If both are found, it resumes the hibernation image.
56
57. The resume process may be triggered in two ways:
58 1) During lateinit: If resume=/dev/your_swap_partition is specified on
59 the kernel command line, lateinit runs the resume process. If the
60 resume device has not been probed yet, the resume process fails and
61 bootup continues.
62 2) Manually from an initrd or initramfs: May be run from
63 the init script by using the /sys/power/resume file. It is vital
64 that this be done prior to remounting any filesystems (even as
65 read-only) otherwise data may be corrupted.
53 66
54Article about goals and implementation of Software Suspend for Linux 67Article about goals and implementation of Software Suspend for Linux
55~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -326,7 +339,7 @@ Q: How can distributions ship a swsusp-supporting kernel with modular
326disk drivers (especially SATA)? 339disk drivers (especially SATA)?
327 340
328A: Well, it can be done, load the drivers, then do echo into 341A: Well, it can be done, load the drivers, then do echo into
329/sys/power/disk/resume file from initrd. Be sure not to mount 342/sys/power/resume file from initrd. Be sure not to mount
330anything, not even read-only mount, or you are going to lose your 343anything, not even read-only mount, or you are going to lose your
331data. 344data.
332 345
diff --git a/Documentation/powerpc/00-INDEX b/Documentation/powerpc/00-INDEX
index 05026ce1875e..6db73df04278 100644
--- a/Documentation/powerpc/00-INDEX
+++ b/Documentation/powerpc/00-INDEX
@@ -5,13 +5,20 @@ please mail me.
5 5
600-INDEX 600-INDEX
7 - this file 7 - this file
8bootwrapper.txt
9 - Information on how the powerpc kernel is wrapped for boot on various
10 different platforms.
8cpu_features.txt 11cpu_features.txt
9 - info on how we support a variety of CPUs with minimal compile-time 12 - info on how we support a variety of CPUs with minimal compile-time
10 options. 13 options.
11eeh-pci-error-recovery.txt 14eeh-pci-error-recovery.txt
12 - info on PCI Bus EEH Error Recovery 15 - info on PCI Bus EEH Error Recovery
16firmware-assisted-dump.txt
17 - Documentation on the firmware assisted dump mechanism "fadump".
13hvcs.txt 18hvcs.txt
14 - IBM "Hypervisor Virtual Console Server" Installation Guide 19 - IBM "Hypervisor Virtual Console Server" Installation Guide
20kvm_440.txt
21 - Various notes on the implementation of KVM for PowerPC 440.
15mpc52xx.txt 22mpc52xx.txt
16 - Linux 2.6.x on MPC52xx family 23 - Linux 2.6.x on MPC52xx family
17pmu-ebb.txt 24pmu-ebb.txt
@@ -19,3 +26,7 @@ pmu-ebb.txt
19qe_firmware.txt 26qe_firmware.txt
20 - describes the layout of firmware binaries for the Freescale QUICC 27 - describes the layout of firmware binaries for the Freescale QUICC
21 Engine and the code that parses and uploads the microcode therein. 28 Engine and the code that parses and uploads the microcode therein.
29ptrace.txt
30 - Information on the ptrace interfaces for hardware debug registers.
31transactional_memory.txt
32 - Overview of the Power8 transactional memory support.
diff --git a/Documentation/printk-formats.txt b/Documentation/printk-formats.txt
index 3e8cb73ac43c..445ad743ec81 100644
--- a/Documentation/printk-formats.txt
+++ b/Documentation/printk-formats.txt
@@ -97,7 +97,7 @@ IPv4 addresses:
97 97
98 %pI4 1.2.3.4 98 %pI4 1.2.3.4
99 %pi4 001.002.003.004 99 %pi4 001.002.003.004
100 %p[Ii][hnbl] 100 %p[Ii]4[hnbl]
101 101
102 For printing IPv4 dot-separated decimal addresses. The 'I4' and 'i4' 102 For printing IPv4 dot-separated decimal addresses. The 'I4' and 'i4'
103 specifiers result in a printed address with ('i4') or without ('I4') 103 specifiers result in a printed address with ('i4') or without ('I4')
@@ -168,6 +168,15 @@ UUID/GUID addresses:
168 Where no additional specifiers are used the default little endian 168 Where no additional specifiers are used the default little endian
169 order with lower case hex characters will be printed. 169 order with lower case hex characters will be printed.
170 170
171dentry names:
172 %pd{,2,3,4}
173 %pD{,2,3,4}
174
175 For printing dentry name; if we race with d_move(), the name might be
176 a mix of old and new ones, but it won't oops. %pd dentry is a safer
177 equivalent of %s dentry->d_name.name we used to use, %pd<n> prints
178 n last components. %pD does the same thing for struct file.
179
171struct va_format: 180struct va_format:
172 181
173 %pV 182 %pV
@@ -185,11 +194,11 @@ struct va_format:
185 194
186u64 SHOULD be printed with %llu/%llx, (unsigned long long): 195u64 SHOULD be printed with %llu/%llx, (unsigned long long):
187 196
188 printk("%llu", (unsigned long long)u64_var); 197 printk("%llu", u64_var);
189 198
190s64 SHOULD be printed with %lld/%llx, (long long): 199s64 SHOULD be printed with %lld/%llx, (long long):
191 200
192 printk("%lld", (long long)s64_var); 201 printk("%lld", s64_var);
193 202
194If <type> is dependent on a config option for its size (e.g., sector_t, 203If <type> is dependent on a config option for its size (e.g., sector_t,
195blkcnt_t) or is architecture-dependent for its size (e.g., tcflag_t), use a 204blkcnt_t) or is architecture-dependent for its size (e.g., tcflag_t), use a
diff --git a/Documentation/rapidio/rapidio.txt b/Documentation/rapidio/rapidio.txt
index 717f5aa388b1..28fbd877f85a 100644
--- a/Documentation/rapidio/rapidio.txt
+++ b/Documentation/rapidio/rapidio.txt
@@ -300,7 +300,7 @@ initialization.
300------------------------------------------- 300-------------------------------------------
301 301
302RapidIO subsystem code organization allows addition of new enumeration/discovery 302RapidIO subsystem code organization allows addition of new enumeration/discovery
303methods as new configuration options without significant impact to to the core 303methods as new configuration options without significant impact to the core
304RapidIO code. 304RapidIO code.
305 305
306A new enumeration/discovery method has to be attached to one or more mport 306A new enumeration/discovery method has to be attached to one or more mport
diff --git a/Documentation/scsi/LICENSE.qla4xxx b/Documentation/scsi/LICENSE.qla4xxx
index 78c169f0d7c6..fcc27ad27d74 100644
--- a/Documentation/scsi/LICENSE.qla4xxx
+++ b/Documentation/scsi/LICENSE.qla4xxx
@@ -1,4 +1,4 @@
1Copyright (c) 2003-2012 QLogic Corporation 1Copyright (c) 2003-2013 QLogic Corporation
2QLogic Linux iSCSI Driver 2QLogic Linux iSCSI Driver
3 3
4This program includes a device driver for Linux 3.x. 4This program includes a device driver for Linux 3.x.
diff --git a/Documentation/scsi/hptiop.txt b/Documentation/scsi/hptiop.txt
index 4a4f47e759cd..12ecfd308e55 100644
--- a/Documentation/scsi/hptiop.txt
+++ b/Documentation/scsi/hptiop.txt
@@ -151,7 +151,7 @@ To send a request to the controller:
151 generated. 151 generated.
152 152
153 - The host read the outbound list copy pointer shadow register and compare 153 - The host read the outbound list copy pointer shadow register and compare
154 with previous saved read ponter N. If they are different, the host will 154 with previous saved read pointer N. If they are different, the host will
155 read the (N+1)th outbound list unit. 155 read the (N+1)th outbound list unit.
156 156
157 The host get the index of the request from the (N+1)th outbound list 157 The host get the index of the request from the (N+1)th outbound list
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
index 809d72b8eff1..a46ddb85e83a 100644
--- a/Documentation/sound/alsa/HD-Audio-Models.txt
+++ b/Documentation/sound/alsa/HD-Audio-Models.txt
@@ -244,6 +244,7 @@ STAC9227/9228/9229/927x
244 5stack-no-fp D965 5stack without front panel 244 5stack-no-fp D965 5stack without front panel
245 dell-3stack Dell Dimension E520 245 dell-3stack Dell Dimension E520
246 dell-bios Fixes with Dell BIOS setup 246 dell-bios Fixes with Dell BIOS setup
247 dell-bios-amic Fixes with Dell BIOS setup including analog mic
247 volknob Fixes with volume-knob widget 0x24 248 volknob Fixes with volume-knob widget 0x24
248 auto BIOS setup (default) 249 auto BIOS setup (default)
249 250
diff --git a/Documentation/sound/alsa/HD-Audio.txt b/Documentation/sound/alsa/HD-Audio.txt
index c3c912d023cc..42a0a39b77e6 100644
--- a/Documentation/sound/alsa/HD-Audio.txt
+++ b/Documentation/sound/alsa/HD-Audio.txt
@@ -454,6 +454,8 @@ The generic parser supports the following hints:
454- need_dac_fix (bool): limits the DACs depending on the channel count 454- need_dac_fix (bool): limits the DACs depending on the channel count
455- primary_hp (bool): probe headphone jacks as the primary outputs; 455- primary_hp (bool): probe headphone jacks as the primary outputs;
456 default true 456 default true
457- multi_io (bool): try probing multi-I/O config (e.g. shared
458 line-in/surround, mic/clfe jacks)
457- multi_cap_vol (bool): provide multiple capture volumes 459- multi_cap_vol (bool): provide multiple capture volumes
458- inv_dmic_split (bool): provide split internal mic volume/switch for 460- inv_dmic_split (bool): provide split internal mic volume/switch for
459 phase-inverted digital mics 461 phase-inverted digital mics
diff --git a/Documentation/sound/alsa/README.maya44 b/Documentation/sound/alsa/README.maya44
index 0e41576fa13e..67b2ea1cc31d 100644
--- a/Documentation/sound/alsa/README.maya44
+++ b/Documentation/sound/alsa/README.maya44
@@ -120,7 +120,7 @@ Mic Phantom+48V: switch for +48V phantom power for electrostatic microphones on
120 Make sure this is not turned on while any other source is connected to input 1/2. 120 Make sure this is not turned on while any other source is connected to input 1/2.
121 It might damage the source and/or the maya44 card. 121 It might damage the source and/or the maya44 card.
122 122
123Mic/Line input: if switch is is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo). 123Mic/Line input: if switch is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo).
124 124
125Bypass: analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver. 125Bypass: analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver.
126Bypass 1: same for channel 3+4. 126Bypass 1: same for channel 3+4.
diff --git a/Documentation/sound/alsa/compress_offload.txt b/Documentation/sound/alsa/compress_offload.txt
index 0bcc55155911..fd74ff26376e 100644
--- a/Documentation/sound/alsa/compress_offload.txt
+++ b/Documentation/sound/alsa/compress_offload.txt
@@ -73,7 +73,7 @@ The main requirements are:
73 73
74Design 74Design
75 75
76The new API shares a number of concepts with with the PCM API for flow 76The new API shares a number of concepts with the PCM API for flow
77control. Start, pause, resume, drain and stop commands have the same 77control. Start, pause, resume, drain and stop commands have the same
78semantics no matter what the content is. 78semantics no matter what the content is.
79 79
@@ -130,7 +130,7 @@ the settings should remain the exception.
130The timestamp becomes a multiple field structure. It lists the number 130The timestamp becomes a multiple field structure. It lists the number
131of bytes transferred, the number of samples processed and the number 131of bytes transferred, the number of samples processed and the number
132of samples rendered/grabbed. All these values can be used to determine 132of samples rendered/grabbed. All these values can be used to determine
133the avarage bitrate, figure out if the ring buffer needs to be 133the average bitrate, figure out if the ring buffer needs to be
134refilled or the delay due to decoding/encoding/io on the DSP. 134refilled or the delay due to decoding/encoding/io on the DSP.
135 135
136Note that the list of codecs/profiles/modes was derived from the 136Note that the list of codecs/profiles/modes was derived from the
diff --git a/Documentation/spi/spi-summary b/Documentation/spi/spi-summary
index 2331eb214146..f21edb983413 100644
--- a/Documentation/spi/spi-summary
+++ b/Documentation/spi/spi-summary
@@ -215,7 +215,7 @@ So for example arch/.../mach-*/board-*.c files might have code like:
215 /* if your mach-* infrastructure doesn't support kernels that can 215 /* if your mach-* infrastructure doesn't support kernels that can
216 * run on multiple boards, pdata wouldn't benefit from "__init". 216 * run on multiple boards, pdata wouldn't benefit from "__init".
217 */ 217 */
218 static struct mysoc_spi_data __initdata pdata = { ... }; 218 static struct mysoc_spi_data pdata __initdata = { ... };
219 219
220 static __init board_init(void) 220 static __init board_init(void)
221 { 221 {
diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt
index ab7d16efa96b..9d4c1d18ad44 100644
--- a/Documentation/sysctl/kernel.txt
+++ b/Documentation/sysctl/kernel.txt
@@ -182,6 +182,7 @@ core_pattern is used to specify a core dumpfile pattern name.
182 %<NUL> '%' is dropped 182 %<NUL> '%' is dropped
183 %% output one '%' 183 %% output one '%'
184 %p pid 184 %p pid
185 %P global pid (init PID namespace)
185 %u uid 186 %u uid
186 %g gid 187 %g gid
187 %d dump mode, matches PR_SET_DUMPABLE and 188 %d dump mode, matches PR_SET_DUMPABLE and
diff --git a/Documentation/sysctl/net.txt b/Documentation/sysctl/net.txt
index d569f2a424d5..9a0319a82470 100644
--- a/Documentation/sysctl/net.txt
+++ b/Documentation/sysctl/net.txt
@@ -50,6 +50,19 @@ The maximum number of packets that kernel can handle on a NAPI interrupt,
50it's a Per-CPU variable. 50it's a Per-CPU variable.
51Default: 64 51Default: 64
52 52
53default_qdisc
54--------------
55
56The default queuing discipline to use for network devices. This allows
57overriding the default queue discipline of pfifo_fast with an
58alternative. Since the default queuing discipline is created with the
59no additional parameters so is best suited to queuing disciplines that
60work well without configuration like stochastic fair queue (sfq),
61CoDel (codel) or fair queue CoDel (fq_codel). Don't use queuing disciplines
62like Hierarchical Token Bucket or Deficit Round Robin which require setting
63up classes and bandwidths.
64Default: pfifo_fast
65
53busy_read 66busy_read
54---------------- 67----------------
55Low latency busy poll timeout for socket reads. (needs CONFIG_NET_RX_BUSY_POLL) 68Low latency busy poll timeout for socket reads. (needs CONFIG_NET_RX_BUSY_POLL)
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
index 36ecc26c7433..79a797eb3e87 100644
--- a/Documentation/sysctl/vm.txt
+++ b/Documentation/sysctl/vm.txt
@@ -200,17 +200,25 @@ fragmentation index is <= extfrag_threshold. The default value is 500.
200 200
201hugepages_treat_as_movable 201hugepages_treat_as_movable
202 202
203This parameter is only useful when kernelcore= is specified at boot time to 203This parameter controls whether we can allocate hugepages from ZONE_MOVABLE
204create ZONE_MOVABLE for pages that may be reclaimed or migrated. Huge pages 204or not. If set to non-zero, hugepages can be allocated from ZONE_MOVABLE.
205are not movable so are not normally allocated from ZONE_MOVABLE. A non-zero 205ZONE_MOVABLE is created when kernel boot parameter kernelcore= is specified,
206value written to hugepages_treat_as_movable allows huge pages to be allocated 206so this parameter has no effect if used without kernelcore=.
207from ZONE_MOVABLE. 207
208 208Hugepage migration is now available in some situations which depend on the
209Once enabled, the ZONE_MOVABLE is treated as an area of memory the huge 209architecture and/or the hugepage size. If a hugepage supports migration,
210pages pool can easily grow or shrink within. Assuming that applications are 210allocation from ZONE_MOVABLE is always enabled for the hugepage regardless
211not running that mlock() a lot of memory, it is likely the huge pages pool 211of the value of this parameter.
212can grow to the size of ZONE_MOVABLE by repeatedly entering the desired value 212IOW, this parameter affects only non-migratable hugepages.
213into nr_hugepages and triggering page reclaim. 213
214Assuming that hugepages are not migratable in your system, one usecase of
215this parameter is that users can make hugepage pool more extensible by
216enabling the allocation from ZONE_MOVABLE. This is because on ZONE_MOVABLE
217page reclaim/migration/compaction work more and you can get contiguous
218memory more likely. Note that using ZONE_MOVABLE for non-migratable
219hugepages can do harm to other features like memory hotremove (because
220memory hotremove expects that memory blocks on ZONE_MOVABLE are always
221removable,) so it's a trade-off responsible for the users.
214 222
215============================================================== 223==============================================================
216 224
diff --git a/Documentation/sysfs-rules.txt b/Documentation/sysfs-rules.txt
index c1a1fd636bf9..a5f985ee1822 100644
--- a/Documentation/sysfs-rules.txt
+++ b/Documentation/sysfs-rules.txt
@@ -47,7 +47,7 @@ versions of the sysfs interface.
47 at device creation and removal 47 at device creation and removal
48 - the unique key to the device at that point in time 48 - the unique key to the device at that point in time
49 - the kernel's path to the device directory without the leading 49 - the kernel's path to the device directory without the leading
50 /sys, and always starting with with a slash 50 /sys, and always starting with a slash
51 - all elements of a devpath must be real directories. Symlinks 51 - all elements of a devpath must be real directories. Symlinks
52 pointing to /sys/devices must always be resolved to their real 52 pointing to /sys/devices must always be resolved to their real
53 target and the target path must be used to access the device. 53 target and the target path must be used to access the device.
diff --git a/Documentation/target/tcm_mod_builder.py b/Documentation/target/tcm_mod_builder.py
index 3fe0d812dcec..54d29c1320ed 100755
--- a/Documentation/target/tcm_mod_builder.py
+++ b/Documentation/target/tcm_mod_builder.py
@@ -300,7 +300,7 @@ def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
300 buf += " int ret;\n\n" 300 buf += " int ret;\n\n"
301 buf += " if (strstr(name, \"tpgt_\") != name)\n" 301 buf += " if (strstr(name, \"tpgt_\") != name)\n"
302 buf += " return ERR_PTR(-EINVAL);\n" 302 buf += " return ERR_PTR(-EINVAL);\n"
303 buf += " if (strict_strtoul(name + 5, 10, &tpgt) || tpgt > UINT_MAX)\n" 303 buf += " if (kstrtoul(name + 5, 10, &tpgt) || tpgt > UINT_MAX)\n"
304 buf += " return ERR_PTR(-EINVAL);\n\n" 304 buf += " return ERR_PTR(-EINVAL);\n\n"
305 buf += " tpg = kzalloc(sizeof(struct " + fabric_mod_name + "_tpg), GFP_KERNEL);\n" 305 buf += " tpg = kzalloc(sizeof(struct " + fabric_mod_name + "_tpg), GFP_KERNEL);\n"
306 buf += " if (!tpg) {\n" 306 buf += " if (!tpg) {\n"
diff --git a/Documentation/timers/NO_HZ.txt b/Documentation/timers/NO_HZ.txt
index 88697584242b..cca122f25120 100644
--- a/Documentation/timers/NO_HZ.txt
+++ b/Documentation/timers/NO_HZ.txt
@@ -24,8 +24,8 @@ There are three main ways of managing scheduling-clock interrupts
24 workloads, you will normally -not- want this option. 24 workloads, you will normally -not- want this option.
25 25
26These three cases are described in the following three sections, followed 26These three cases are described in the following three sections, followed
27by a third section on RCU-specific considerations and a fourth and final 27by a third section on RCU-specific considerations, a fourth section
28section listing known issues. 28discussing testing, and a fifth and final section listing known issues.
29 29
30 30
31NEVER OMIT SCHEDULING-CLOCK TICKS 31NEVER OMIT SCHEDULING-CLOCK TICKS
@@ -121,14 +121,15 @@ boot parameter specifies the adaptive-ticks CPUs. For example,
121"nohz_full=1,6-8" says that CPUs 1, 6, 7, and 8 are to be adaptive-ticks 121"nohz_full=1,6-8" says that CPUs 1, 6, 7, and 8 are to be adaptive-ticks
122CPUs. Note that you are prohibited from marking all of the CPUs as 122CPUs. Note that you are prohibited from marking all of the CPUs as
123adaptive-tick CPUs: At least one non-adaptive-tick CPU must remain 123adaptive-tick CPUs: At least one non-adaptive-tick CPU must remain
124online to handle timekeeping tasks in order to ensure that system calls 124online to handle timekeeping tasks in order to ensure that system
125like gettimeofday() returns accurate values on adaptive-tick CPUs. 125calls like gettimeofday() returns accurate values on adaptive-tick CPUs.
126(This is not an issue for CONFIG_NO_HZ_IDLE=y because there are no 126(This is not an issue for CONFIG_NO_HZ_IDLE=y because there are no running
127running user processes to observe slight drifts in clock rate.) 127user processes to observe slight drifts in clock rate.) Therefore, the
128Therefore, the boot CPU is prohibited from entering adaptive-ticks 128boot CPU is prohibited from entering adaptive-ticks mode. Specifying a
129mode. Specifying a "nohz_full=" mask that includes the boot CPU will 129"nohz_full=" mask that includes the boot CPU will result in a boot-time
130result in a boot-time error message, and the boot CPU will be removed 130error message, and the boot CPU will be removed from the mask. Note that
131from the mask. 131this means that your system must have at least two CPUs in order for
132CONFIG_NO_HZ_FULL=y to do anything for you.
132 133
133Alternatively, the CONFIG_NO_HZ_FULL_ALL=y Kconfig parameter specifies 134Alternatively, the CONFIG_NO_HZ_FULL_ALL=y Kconfig parameter specifies
134that all CPUs other than the boot CPU are adaptive-ticks CPUs. This 135that all CPUs other than the boot CPU are adaptive-ticks CPUs. This
@@ -232,6 +233,29 @@ scheduler will decide where to run them, which might or might not be
232where you want them to run. 233where you want them to run.
233 234
234 235
236TESTING
237
238So you enable all the OS-jitter features described in this document,
239but do not see any change in your workload's behavior. Is this because
240your workload isn't affected that much by OS jitter, or is it because
241something else is in the way? This section helps answer this question
242by providing a simple OS-jitter test suite, which is available on branch
243master of the following git archive:
244
245git://git.kernel.org/pub/scm/linux/kernel/git/frederic/dynticks-testing.git
246
247Clone this archive and follow the instructions in the README file.
248This test procedure will produce a trace that will allow you to evaluate
249whether or not you have succeeded in removing OS jitter from your system.
250If this trace shows that you have removed OS jitter as much as is
251possible, then you can conclude that your workload is not all that
252sensitive to OS jitter.
253
254Note: this test requires that your system have at least two CPUs.
255We do not currently have a good way to remove OS jitter from single-CPU
256systems.
257
258
235KNOWN ISSUES 259KNOWN ISSUES
236 260
237o Dyntick-idle slows transitions to and from idle slightly. 261o Dyntick-idle slows transitions to and from idle slightly.
diff --git a/Documentation/tpm/xen-tpmfront.txt b/Documentation/tpm/xen-tpmfront.txt
new file mode 100644
index 000000000000..69346de87ff3
--- /dev/null
+++ b/Documentation/tpm/xen-tpmfront.txt
@@ -0,0 +1,113 @@
1Virtual TPM interface for Xen
2
3Authors: Matthew Fioravante (JHUAPL), Daniel De Graaf (NSA)
4
5This document describes the virtual Trusted Platform Module (vTPM) subsystem for
6Xen. The reader is assumed to have familiarity with building and installing Xen,
7Linux, and a basic understanding of the TPM and vTPM concepts.
8
9INTRODUCTION
10
11The goal of this work is to provide a TPM functionality to a virtual guest
12operating system (in Xen terms, a DomU). This allows programs to interact with
13a TPM in a virtual system the same way they interact with a TPM on the physical
14system. Each guest gets its own unique, emulated, software TPM. However, each
15of the vTPM's secrets (Keys, NVRAM, etc) are managed by a vTPM Manager domain,
16which seals the secrets to the Physical TPM. If the process of creating each of
17these domains (manager, vTPM, and guest) is trusted, the vTPM subsystem extends
18the chain of trust rooted in the hardware TPM to virtual machines in Xen. Each
19major component of vTPM is implemented as a separate domain, providing secure
20separation guaranteed by the hypervisor. The vTPM domains are implemented in
21mini-os to reduce memory and processor overhead.
22
23This mini-os vTPM subsystem was built on top of the previous vTPM work done by
24IBM and Intel corporation.
25
26
27DESIGN OVERVIEW
28---------------
29
30The architecture of vTPM is described below:
31
32+------------------+
33| Linux DomU | ...
34| | ^ |
35| v | |
36| xen-tpmfront |
37+------------------+
38 | ^
39 v |
40+------------------+
41| mini-os/tpmback |
42| | ^ |
43| v | |
44| vtpm-stubdom | ...
45| | ^ |
46| v | |
47| mini-os/tpmfront |
48+------------------+
49 | ^
50 v |
51+------------------+
52| mini-os/tpmback |
53| | ^ |
54| v | |
55| vtpmmgr-stubdom |
56| | ^ |
57| v | |
58| mini-os/tpm_tis |
59+------------------+
60 | ^
61 v |
62+------------------+
63| Hardware TPM |
64+------------------+
65
66 * Linux DomU: The Linux based guest that wants to use a vTPM. There may be
67 more than one of these.
68
69 * xen-tpmfront.ko: Linux kernel virtual TPM frontend driver. This driver
70 provides vTPM access to a Linux-based DomU.
71
72 * mini-os/tpmback: Mini-os TPM backend driver. The Linux frontend driver
73 connects to this backend driver to facilitate communications
74 between the Linux DomU and its vTPM. This driver is also
75 used by vtpmmgr-stubdom to communicate with vtpm-stubdom.
76
77 * vtpm-stubdom: A mini-os stub domain that implements a vTPM. There is a
78 one to one mapping between running vtpm-stubdom instances and
79 logical vtpms on the system. The vTPM Platform Configuration
80 Registers (PCRs) are normally all initialized to zero.
81
82 * mini-os/tpmfront: Mini-os TPM frontend driver. The vTPM mini-os domain
83 vtpm-stubdom uses this driver to communicate with
84 vtpmmgr-stubdom. This driver is also used in mini-os
85 domains such as pv-grub that talk to the vTPM domain.
86
87 * vtpmmgr-stubdom: A mini-os domain that implements the vTPM manager. There is
88 only one vTPM manager and it should be running during the
89 entire lifetime of the machine. This domain regulates
90 access to the physical TPM on the system and secures the
91 persistent state of each vTPM.
92
93 * mini-os/tpm_tis: Mini-os TPM version 1.2 TPM Interface Specification (TIS)
94 driver. This driver used by vtpmmgr-stubdom to talk directly to
95 the hardware TPM. Communication is facilitated by mapping
96 hardware memory pages into vtpmmgr-stubdom.
97
98 * Hardware TPM: The physical TPM that is soldered onto the motherboard.
99
100
101INTEGRATION WITH XEN
102--------------------
103
104Support for the vTPM driver was added in Xen using the libxl toolstack in Xen
1054.3. See the Xen documentation (docs/misc/vtpm.txt) for details on setting up
106the vTPM and vTPM Manager stub domains. Once the stub domains are running, a
107vTPM device is set up in the same manner as a disk or network device in the
108domain's configuration file.
109
110In order to use features such as IMA that require a TPM to be loaded prior to
111the initrd, the xen-tpmfront driver must be compiled in to the kernel. If not
112using such features, the driver can be compiled as a module and will be loaded
113as usual.
diff --git a/Documentation/trace/ftrace.txt b/Documentation/trace/ftrace.txt
index b937c6e2163c..ea2d35d64d26 100644
--- a/Documentation/trace/ftrace.txt
+++ b/Documentation/trace/ftrace.txt
@@ -735,7 +735,7 @@ Here are the available options:
735 function as well as the function being traced. 735 function as well as the function being traced.
736 736
737 print-parent: 737 print-parent:
738 bash-4000 [01] 1477.606694: simple_strtoul <-strict_strtoul 738 bash-4000 [01] 1477.606694: simple_strtoul <-kstrtoul
739 739
740 noprint-parent: 740 noprint-parent:
741 bash-4000 [01] 1477.606694: simple_strtoul 741 bash-4000 [01] 1477.606694: simple_strtoul
@@ -759,7 +759,7 @@ Here are the available options:
759 latency-format option is enabled. 759 latency-format option is enabled.
760 760
761 bash 4000 1 0 00000000 00010a95 [58127d26] 1720.415ms \ 761 bash 4000 1 0 00000000 00010a95 [58127d26] 1720.415ms \
762 (+0.000ms): simple_strtoul (strict_strtoul) 762 (+0.000ms): simple_strtoul (kstrtoul)
763 763
764 raw - This will display raw numbers. This option is best for 764 raw - This will display raw numbers. This option is best for
765 use with user applications that can translate the raw 765 use with user applications that can translate the raw
diff --git a/Documentation/trace/tracepoints.txt b/Documentation/trace/tracepoints.txt
index da49437d5aeb..ac4170dd0f24 100644
--- a/Documentation/trace/tracepoints.txt
+++ b/Documentation/trace/tracepoints.txt
@@ -40,7 +40,13 @@ Two elements are required for tracepoints :
40 40
41In order to use tracepoints, you should include linux/tracepoint.h. 41In order to use tracepoints, you should include linux/tracepoint.h.
42 42
43In include/trace/subsys.h : 43In include/trace/events/subsys.h :
44
45#undef TRACE_SYSTEM
46#define TRACE_SYSTEM subsys
47
48#if !defined(_TRACE_SUBSYS_H) || defined(TRACE_HEADER_MULTI_READ)
49#define _TRACE_SUBSYS_H
44 50
45#include <linux/tracepoint.h> 51#include <linux/tracepoint.h>
46 52
@@ -48,10 +54,16 @@ DECLARE_TRACE(subsys_eventname,
48 TP_PROTO(int firstarg, struct task_struct *p), 54 TP_PROTO(int firstarg, struct task_struct *p),
49 TP_ARGS(firstarg, p)); 55 TP_ARGS(firstarg, p));
50 56
57#endif /* _TRACE_SUBSYS_H */
58
59/* This part must be outside protection */
60#include <trace/define_trace.h>
61
51In subsys/file.c (where the tracing statement must be added) : 62In subsys/file.c (where the tracing statement must be added) :
52 63
53#include <trace/subsys.h> 64#include <trace/events/subsys.h>
54 65
66#define CREATE_TRACE_POINTS
55DEFINE_TRACE(subsys_eventname); 67DEFINE_TRACE(subsys_eventname);
56 68
57void somefct(void) 69void somefct(void)
@@ -72,6 +84,9 @@ Where :
72- TP_ARGS(firstarg, p) are the parameters names, same as found in the 84- TP_ARGS(firstarg, p) are the parameters names, same as found in the
73 prototype. 85 prototype.
74 86
87- if you use the header in multiple source files, #define CREATE_TRACE_POINTS
88 should appear only in one source file.
89
75Connecting a function (probe) to a tracepoint is done by providing a 90Connecting a function (probe) to a tracepoint is done by providing a
76probe (function to call) for the specific tracepoint through 91probe (function to call) for the specific tracepoint through
77register_trace_subsys_eventname(). Removing a probe is done through 92register_trace_subsys_eventname(). Removing a probe is done through
diff --git a/Documentation/usb/URB.txt b/Documentation/usb/URB.txt
index 00d2c644068e..50da0d455444 100644
--- a/Documentation/usb/URB.txt
+++ b/Documentation/usb/URB.txt
@@ -195,13 +195,12 @@ by the completion handler.
195 195
196The handler is of the following type: 196The handler is of the following type:
197 197
198 typedef void (*usb_complete_t)(struct urb *, struct pt_regs *) 198 typedef void (*usb_complete_t)(struct urb *)
199 199
200I.e., it gets the URB that caused the completion call, plus the 200I.e., it gets the URB that caused the completion call. In the completion
201register values at the time of the corresponding interrupt (if any). 201handler, you should have a look at urb->status to detect any USB errors.
202In the completion handler, you should have a look at urb->status to 202Since the context parameter is included in the URB, you can pass
203detect any USB errors. Since the context parameter is included in the URB, 203information to the completion handler.
204you can pass information to the completion handler.
205 204
206Note that even when an error (or unlink) is reported, data may have been 205Note that even when an error (or unlink) is reported, data may have been
207transferred. That's because USB transfers are packetized; it might take 206transferred. That's because USB transfers are packetized; it might take
@@ -210,12 +209,12 @@ have transferred successfully before the completion was called.
210 209
211 210
212NOTE: ***** WARNING ***** 211NOTE: ***** WARNING *****
213NEVER SLEEP IN A COMPLETION HANDLER. These are normally called 212NEVER SLEEP IN A COMPLETION HANDLER. These are often called in atomic
214during hardware interrupt processing. If you can, defer substantial 213context.
215work to a tasklet (bottom half) to keep system latencies low. You'll
216probably need to use spinlocks to protect data structures you manipulate
217in completion handlers.
218 214
215In the current kernel, completion handlers run with local interrupts
216disabled, but in the future this will be changed, so don't assume that
217local IRQs are always disabled inside completion handlers.
219 218
2201.8. How to do isochronous (ISO) transfers? 2191.8. How to do isochronous (ISO) transfers?
221 220
diff --git a/Documentation/usb/proc_usb_info.txt b/Documentation/usb/proc_usb_info.txt
index c9c3f0f5ad7b..98be91982677 100644
--- a/Documentation/usb/proc_usb_info.txt
+++ b/Documentation/usb/proc_usb_info.txt
@@ -54,9 +54,12 @@ it and 002/048 sometime later.
54 54
55These files can be read as binary data. The binary data consists 55These files can be read as binary data. The binary data consists
56of first the device descriptor, then the descriptors for each 56of first the device descriptor, then the descriptors for each
57configuration of the device. Multi-byte fields in the device and 57configuration of the device. Multi-byte fields in the device descriptor
58configuration descriptors, but not other descriptors, are converted 58are converted to host endianness by the kernel. The configuration
59to host endianness by the kernel. This information is also shown 59descriptors are in bus endian format! The configuration descriptor
60are wTotalLength bytes apart. If a device returns less configuration
61descriptor data than indicated by wTotalLength there will be a hole in
62the file for the missing bytes. This information is also shown
60in text form by the /proc/bus/usb/devices file, described later. 63in text form by the /proc/bus/usb/devices file, described later.
61 64
62These files may also be used to write user-level drivers for the USB 65These files may also be used to write user-level drivers for the USB
diff --git a/Documentation/vfio.txt b/Documentation/vfio.txt
index d7993dcf8537..b9ca02370d46 100644
--- a/Documentation/vfio.txt
+++ b/Documentation/vfio.txt
@@ -167,8 +167,8 @@ group and can access them as follows:
167 int container, group, device, i; 167 int container, group, device, i;
168 struct vfio_group_status group_status = 168 struct vfio_group_status group_status =
169 { .argsz = sizeof(group_status) }; 169 { .argsz = sizeof(group_status) };
170 struct vfio_iommu_x86_info iommu_info = { .argsz = sizeof(iommu_info) }; 170 struct vfio_iommu_type1_info iommu_info = { .argsz = sizeof(iommu_info) };
171 struct vfio_iommu_x86_dma_map dma_map = { .argsz = sizeof(dma_map) }; 171 struct vfio_iommu_type1_dma_map dma_map = { .argsz = sizeof(dma_map) };
172 struct vfio_device_info device_info = { .argsz = sizeof(device_info) }; 172 struct vfio_device_info device_info = { .argsz = sizeof(device_info) };
173 173
174 /* Create a new container */ 174 /* Create a new container */
@@ -193,7 +193,7 @@ group and can access them as follows:
193 ioctl(group, VFIO_GROUP_SET_CONTAINER, &container); 193 ioctl(group, VFIO_GROUP_SET_CONTAINER, &container);
194 194
195 /* Enable the IOMMU model we want */ 195 /* Enable the IOMMU model we want */
196 ioctl(container, VFIO_SET_IOMMU, VFIO_TYPE1_IOMMU) 196 ioctl(container, VFIO_SET_IOMMU, VFIO_TYPE1_IOMMU);
197 197
198 /* Get addition IOMMU info */ 198 /* Get addition IOMMU info */
199 ioctl(container, VFIO_IOMMU_GET_INFO, &iommu_info); 199 ioctl(container, VFIO_IOMMU_GET_INFO, &iommu_info);
@@ -229,7 +229,7 @@ group and can access them as follows:
229 229
230 irq.index = i; 230 irq.index = i;
231 231
232 ioctl(device, VFIO_DEVICE_GET_IRQ_INFO, &reg); 232 ioctl(device, VFIO_DEVICE_GET_IRQ_INFO, &irq);
233 233
234 /* Setup IRQs... eventfds, VFIO_DEVICE_SET_IRQS */ 234 /* Setup IRQs... eventfds, VFIO_DEVICE_SET_IRQS */
235 } 235 }
diff --git a/Documentation/video4linux/v4l2-controls.txt b/Documentation/video4linux/v4l2-controls.txt
index 676f87366025..06cf3ac83631 100644
--- a/Documentation/video4linux/v4l2-controls.txt
+++ b/Documentation/video4linux/v4l2-controls.txt
@@ -124,26 +124,27 @@ You add non-menu controls by calling v4l2_ctrl_new_std:
124 const struct v4l2_ctrl_ops *ops, 124 const struct v4l2_ctrl_ops *ops,
125 u32 id, s32 min, s32 max, u32 step, s32 def); 125 u32 id, s32 min, s32 max, u32 step, s32 def);
126 126
127Menu controls are added by calling v4l2_ctrl_new_std_menu: 127Menu and integer menu controls are added by calling v4l2_ctrl_new_std_menu:
128 128
129 struct v4l2_ctrl *v4l2_ctrl_new_std_menu(struct v4l2_ctrl_handler *hdl, 129 struct v4l2_ctrl *v4l2_ctrl_new_std_menu(struct v4l2_ctrl_handler *hdl,
130 const struct v4l2_ctrl_ops *ops, 130 const struct v4l2_ctrl_ops *ops,
131 u32 id, s32 max, s32 skip_mask, s32 def); 131 u32 id, s32 max, s32 skip_mask, s32 def);
132 132
133Or alternatively for integer menu controls, by calling v4l2_ctrl_new_int_menu: 133Menu controls with a driver specific menu are added by calling
134v4l2_ctrl_new_std_menu_items:
135
136 struct v4l2_ctrl *v4l2_ctrl_new_std_menu_items(
137 struct v4l2_ctrl_handler *hdl,
138 const struct v4l2_ctrl_ops *ops, u32 id, s32 max,
139 s32 skip_mask, s32 def, const char * const *qmenu);
140
141Integer menu controls with a driver specific menu can be added by calling
142v4l2_ctrl_new_int_menu:
134 143
135 struct v4l2_ctrl *v4l2_ctrl_new_int_menu(struct v4l2_ctrl_handler *hdl, 144 struct v4l2_ctrl *v4l2_ctrl_new_int_menu(struct v4l2_ctrl_handler *hdl,
136 const struct v4l2_ctrl_ops *ops, 145 const struct v4l2_ctrl_ops *ops,
137 u32 id, s32 max, s32 def, const s64 *qmenu_int); 146 u32 id, s32 max, s32 def, const s64 *qmenu_int);
138 147
139Standard menu controls with a driver specific menu are added by calling
140v4l2_ctrl_new_std_menu_items:
141
142 struct v4l2_ctrl *v4l2_ctrl_new_std_menu_items(
143 struct v4l2_ctrl_handler *hdl,
144 const struct v4l2_ctrl_ops *ops, u32 id, s32 max,
145 s32 skip_mask, s32 def, const char * const *qmenu);
146
147These functions are typically called right after the v4l2_ctrl_handler_init: 148These functions are typically called right after the v4l2_ctrl_handler_init:
148 149
149 static const s64 exp_bias_qmenu[] = { 150 static const s64 exp_bias_qmenu[] = {
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index ef925eaa1460..858aecf21db2 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -53,7 +53,7 @@ incompatible change are allowed. However, there is an extension
53facility that allows backward-compatible extensions to the API to be 53facility that allows backward-compatible extensions to the API to be
54queried and used. 54queried and used.
55 55
56The extension mechanism is not based on on the Linux version number. 56The extension mechanism is not based on the Linux version number.
57Instead, kvm defines extension identifiers and a facility to query 57Instead, kvm defines extension identifiers and a facility to query
58whether a particular extension identifier is available. If it is, a 58whether a particular extension identifier is available. If it is, a
59set of ioctls is available for application use. 59set of ioctls is available for application use.
diff --git a/Documentation/virtual/kvm/cpuid.txt b/Documentation/virtual/kvm/cpuid.txt
index 83afe65d4966..22ff659bc0fb 100644
--- a/Documentation/virtual/kvm/cpuid.txt
+++ b/Documentation/virtual/kvm/cpuid.txt
@@ -43,6 +43,10 @@ KVM_FEATURE_CLOCKSOURCE2 || 3 || kvmclock available at msrs
43KVM_FEATURE_ASYNC_PF || 4 || async pf can be enabled by 43KVM_FEATURE_ASYNC_PF || 4 || async pf can be enabled by
44 || || writing to msr 0x4b564d02 44 || || writing to msr 0x4b564d02
45------------------------------------------------------------------------------ 45------------------------------------------------------------------------------
46KVM_FEATURE_PV_UNHALT || 7 || guest checks this feature bit
47 || || before enabling paravirtualized
48 || || spinlock support.
49------------------------------------------------------------------------------
46KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side 50KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side
47 || || per-cpu warps are expected in 51 || || per-cpu warps are expected in
48 || || kvmclock. 52 || || kvmclock.
diff --git a/Documentation/virtual/kvm/hypercalls.txt b/Documentation/virtual/kvm/hypercalls.txt
index ea113b5d87a4..022198e389d7 100644
--- a/Documentation/virtual/kvm/hypercalls.txt
+++ b/Documentation/virtual/kvm/hypercalls.txt
@@ -64,3 +64,17 @@ Purpose: To enable communication between the hypervisor and guest there is a
64shared page that contains parts of supervisor visible register state. 64shared page that contains parts of supervisor visible register state.
65The guest can map this shared page to access its supervisor register through 65The guest can map this shared page to access its supervisor register through
66memory using this hypercall. 66memory using this hypercall.
67
685. KVM_HC_KICK_CPU
69------------------------
70Architecture: x86
71Status: active
72Purpose: Hypercall used to wakeup a vcpu from HLT state
73Usage example : A vcpu of a paravirtualized guest that is busywaiting in guest
74kernel mode for an event to occur (ex: a spinlock to become available) can
75execute HLT instruction once it has busy-waited for more than a threshold
76time-interval. Execution of HLT instruction would cause the hypervisor to put
77the vcpu to sleep until occurence of an appropriate event. Another vcpu of the
78same guest can wakeup the sleeping vcpu by issuing KVM_HC_KICK_CPU hypercall,
79specifying APIC ID (a1) of the vcpu to be woken up. An additional argument (a0)
80is used in the hypercall for future use.
diff --git a/Documentation/vm/hugetlbpage.txt b/Documentation/vm/hugetlbpage.txt
index 4ac359b7aa17..bdd4bb97fff7 100644
--- a/Documentation/vm/hugetlbpage.txt
+++ b/Documentation/vm/hugetlbpage.txt
@@ -165,6 +165,7 @@ which function as described above for the default huge page-sized case.
165 165
166 166
167Interaction of Task Memory Policy with Huge Page Allocation/Freeing 167Interaction of Task Memory Policy with Huge Page Allocation/Freeing
168===================================================================
168 169
169Whether huge pages are allocated and freed via the /proc interface or 170Whether huge pages are allocated and freed via the /proc interface or
170the /sysfs interface using the nr_hugepages_mempolicy attribute, the NUMA 171the /sysfs interface using the nr_hugepages_mempolicy attribute, the NUMA
@@ -229,6 +230,7 @@ resulting effect on persistent huge page allocation is as follows:
229 of huge pages over all on-lines nodes with memory. 230 of huge pages over all on-lines nodes with memory.
230 231
231Per Node Hugepages Attributes 232Per Node Hugepages Attributes
233=============================
232 234
233A subset of the contents of the root huge page control directory in sysfs, 235A subset of the contents of the root huge page control directory in sysfs,
234described above, will be replicated under each the system device of each 236described above, will be replicated under each the system device of each
@@ -258,6 +260,7 @@ applied, from which node the huge page allocation will be attempted.
258 260
259 261
260Using Huge Pages 262Using Huge Pages
263================
261 264
262If the user applications are going to request huge pages using mmap system 265If the user applications are going to request huge pages using mmap system
263call, then it is required that system administrator mount a file system of 266call, then it is required that system administrator mount a file system of
@@ -296,20 +299,16 @@ calls, though the mount of filesystem will be required for using mmap calls
296without MAP_HUGETLB. For an example of how to use mmap with MAP_HUGETLB see 299without MAP_HUGETLB. For an example of how to use mmap with MAP_HUGETLB see
297map_hugetlb.c. 300map_hugetlb.c.
298 301
299******************************************************************* 302Examples
303========
300 304
301/* 3051) map_hugetlb: see tools/testing/selftests/vm/map_hugetlb.c
302 * map_hugetlb: see tools/testing/selftests/vm/map_hugetlb.c
303 */
304 306
305******************************************************************* 3072) hugepage-shm: see tools/testing/selftests/vm/hugepage-shm.c
306 308
307/* 3093) hugepage-mmap: see tools/testing/selftests/vm/hugepage-mmap.c
308 * hugepage-shm: see tools/testing/selftests/vm/hugepage-shm.c
309 */
310 310
311******************************************************************* 3114) The libhugetlbfs (http://libhugetlbfs.sourceforge.net) library provides a
312 312 wide range of userspace tools to help with huge page usability, environment
313/* 313 setup, and control. Furthermore it provides useful test cases that should be
314 * hugepage-mmap: see tools/testing/selftests/vm/hugepage-mmap.c 314 used when modifying code to ensure no regressions are introduced.
315 */
diff --git a/Documentation/vm/soft-dirty.txt b/Documentation/vm/soft-dirty.txt
index 9a12a5956bc0..55684d11a1e8 100644
--- a/Documentation/vm/soft-dirty.txt
+++ b/Documentation/vm/soft-dirty.txt
@@ -28,6 +28,13 @@ This is so, since the pages are still mapped to physical memory, and thus all
28the kernel does is finds this fact out and puts both writable and soft-dirty 28the kernel does is finds this fact out and puts both writable and soft-dirty
29bits on the PTE. 29bits on the PTE.
30 30
31 While in most cases tracking memory changes by #PF-s is more than enough
32there is still a scenario when we can lose soft dirty bits -- a task
33unmaps a previously mapped memory region and then maps a new one at exactly
34the same place. When unmap is called, the kernel internally clears PTE values
35including soft dirty bits. To notify user space application about such
36memory region renewal the kernel always marks new memory regions (and
37expanded regions) as soft dirty.
31 38
32 This feature is actively used by the checkpoint-restore project. You 39 This feature is actively used by the checkpoint-restore project. You
33can find more details about it on http://criu.org 40can find more details about it on http://criu.org
diff --git a/Documentation/workqueue.txt b/Documentation/workqueue.txt
index a6ab4b62d926..f81a65b54c29 100644
--- a/Documentation/workqueue.txt
+++ b/Documentation/workqueue.txt
@@ -85,32 +85,31 @@ workqueue.
85Special purpose threads, called worker threads, execute the functions 85Special purpose threads, called worker threads, execute the functions
86off of the queue, one after the other. If no work is queued, the 86off of the queue, one after the other. If no work is queued, the
87worker threads become idle. These worker threads are managed in so 87worker threads become idle. These worker threads are managed in so
88called thread-pools. 88called worker-pools.
89 89
90The cmwq design differentiates between the user-facing workqueues that 90The cmwq design differentiates between the user-facing workqueues that
91subsystems and drivers queue work items on and the backend mechanism 91subsystems and drivers queue work items on and the backend mechanism
92which manages thread-pools and processes the queued work items. 92which manages worker-pools and processes the queued work items.
93 93
94The backend is called gcwq. There is one gcwq for each possible CPU 94There are two worker-pools, one for normal work items and the other
95and one gcwq to serve work items queued on unbound workqueues. Each 95for high priority ones, for each possible CPU and some extra
96gcwq has two thread-pools - one for normal work items and the other 96worker-pools to serve work items queued on unbound workqueues - the
97for high priority ones. 97number of these backing pools is dynamic.
98 98
99Subsystems and drivers can create and queue work items through special 99Subsystems and drivers can create and queue work items through special
100workqueue API functions as they see fit. They can influence some 100workqueue API functions as they see fit. They can influence some
101aspects of the way the work items are executed by setting flags on the 101aspects of the way the work items are executed by setting flags on the
102workqueue they are putting the work item on. These flags include 102workqueue they are putting the work item on. These flags include
103things like CPU locality, reentrancy, concurrency limits, priority and 103things like CPU locality, concurrency limits, priority and more. To
104more. To get a detailed overview refer to the API description of 104get a detailed overview refer to the API description of
105alloc_workqueue() below. 105alloc_workqueue() below.
106 106
107When a work item is queued to a workqueue, the target gcwq and 107When a work item is queued to a workqueue, the target worker-pool is
108thread-pool is determined according to the queue parameters and 108determined according to the queue parameters and workqueue attributes
109workqueue attributes and appended on the shared worklist of the 109and appended on the shared worklist of the worker-pool. For example,
110thread-pool. For example, unless specifically overridden, a work item 110unless specifically overridden, a work item of a bound workqueue will
111of a bound workqueue will be queued on the worklist of either normal 111be queued on the worklist of either normal or highpri worker-pool that
112or highpri thread-pool of the gcwq that is associated to the CPU the 112is associated to the CPU the issuer is running on.
113issuer is running on.
114 113
115For any worker pool implementation, managing the concurrency level 114For any worker pool implementation, managing the concurrency level
116(how many execution contexts are active) is an important issue. cmwq 115(how many execution contexts are active) is an important issue. cmwq
@@ -118,14 +117,14 @@ tries to keep the concurrency at a minimal but sufficient level.
118Minimal to save resources and sufficient in that the system is used at 117Minimal to save resources and sufficient in that the system is used at
119its full capacity. 118its full capacity.
120 119
121Each thread-pool bound to an actual CPU implements concurrency 120Each worker-pool bound to an actual CPU implements concurrency
122management by hooking into the scheduler. The thread-pool is notified 121management by hooking into the scheduler. The worker-pool is notified
123whenever an active worker wakes up or sleeps and keeps track of the 122whenever an active worker wakes up or sleeps and keeps track of the
124number of the currently runnable workers. Generally, work items are 123number of the currently runnable workers. Generally, work items are
125not expected to hog a CPU and consume many cycles. That means 124not expected to hog a CPU and consume many cycles. That means
126maintaining just enough concurrency to prevent work processing from 125maintaining just enough concurrency to prevent work processing from
127stalling should be optimal. As long as there are one or more runnable 126stalling should be optimal. As long as there are one or more runnable
128workers on the CPU, the thread-pool doesn't start execution of a new 127workers on the CPU, the worker-pool doesn't start execution of a new
129work, but, when the last running worker goes to sleep, it immediately 128work, but, when the last running worker goes to sleep, it immediately
130schedules a new worker so that the CPU doesn't sit idle while there 129schedules a new worker so that the CPU doesn't sit idle while there
131are pending work items. This allows using a minimal number of workers 130are pending work items. This allows using a minimal number of workers
@@ -135,19 +134,20 @@ Keeping idle workers around doesn't cost other than the memory space
135for kthreads, so cmwq holds onto idle ones for a while before killing 134for kthreads, so cmwq holds onto idle ones for a while before killing
136them. 135them.
137 136
138For an unbound wq, the above concurrency management doesn't apply and 137For unbound workqueues, the number of backing pools is dynamic.
139the thread-pools for the pseudo unbound CPU try to start executing all 138Unbound workqueue can be assigned custom attributes using
140work items as soon as possible. The responsibility of regulating 139apply_workqueue_attrs() and workqueue will automatically create
141concurrency level is on the users. There is also a flag to mark a 140backing worker pools matching the attributes. The responsibility of
142bound wq to ignore the concurrency management. Please refer to the 141regulating concurrency level is on the users. There is also a flag to
143API section for details. 142mark a bound wq to ignore the concurrency management. Please refer to
143the API section for details.
144 144
145Forward progress guarantee relies on that workers can be created when 145Forward progress guarantee relies on that workers can be created when
146more execution contexts are necessary, which in turn is guaranteed 146more execution contexts are necessary, which in turn is guaranteed
147through the use of rescue workers. All work items which might be used 147through the use of rescue workers. All work items which might be used
148on code paths that handle memory reclaim are required to be queued on 148on code paths that handle memory reclaim are required to be queued on
149wq's that have a rescue-worker reserved for execution under memory 149wq's that have a rescue-worker reserved for execution under memory
150pressure. Else it is possible that the thread-pool deadlocks waiting 150pressure. Else it is possible that the worker-pool deadlocks waiting
151for execution contexts to free up. 151for execution contexts to free up.
152 152
153 153
@@ -166,25 +166,15 @@ resources, scheduled and executed.
166 166
167@flags: 167@flags:
168 168
169 WQ_NON_REENTRANT
170
171 By default, a wq guarantees non-reentrance only on the same
172 CPU. A work item may not be executed concurrently on the same
173 CPU by multiple workers but is allowed to be executed
174 concurrently on multiple CPUs. This flag makes sure
175 non-reentrance is enforced across all CPUs. Work items queued
176 to a non-reentrant wq are guaranteed to be executed by at most
177 one worker system-wide at any given time.
178
179 WQ_UNBOUND 169 WQ_UNBOUND
180 170
181 Work items queued to an unbound wq are served by a special 171 Work items queued to an unbound wq are served by the special
182 gcwq which hosts workers which are not bound to any specific 172 woker-pools which host workers which are not bound to any
183 CPU. This makes the wq behave as a simple execution context 173 specific CPU. This makes the wq behave as a simple execution
184 provider without concurrency management. The unbound gcwq 174 context provider without concurrency management. The unbound
185 tries to start execution of work items as soon as possible. 175 worker-pools try to start execution of work items as soon as
186 Unbound wq sacrifices locality but is useful for the following 176 possible. Unbound wq sacrifices locality but is useful for
187 cases. 177 the following cases.
188 178
189 * Wide fluctuation in the concurrency level requirement is 179 * Wide fluctuation in the concurrency level requirement is
190 expected and using bound wq may end up creating large number 180 expected and using bound wq may end up creating large number
@@ -209,10 +199,10 @@ resources, scheduled and executed.
209 WQ_HIGHPRI 199 WQ_HIGHPRI
210 200
211 Work items of a highpri wq are queued to the highpri 201 Work items of a highpri wq are queued to the highpri
212 thread-pool of the target gcwq. Highpri thread-pools are 202 worker-pool of the target cpu. Highpri worker-pools are
213 served by worker threads with elevated nice level. 203 served by worker threads with elevated nice level.
214 204
215 Note that normal and highpri thread-pools don't interact with 205 Note that normal and highpri worker-pools don't interact with
216 each other. Each maintain its separate pool of workers and 206 each other. Each maintain its separate pool of workers and
217 implements concurrency management among its workers. 207 implements concurrency management among its workers.
218 208
@@ -221,7 +211,7 @@ resources, scheduled and executed.
221 Work items of a CPU intensive wq do not contribute to the 211 Work items of a CPU intensive wq do not contribute to the
222 concurrency level. In other words, runnable CPU intensive 212 concurrency level. In other words, runnable CPU intensive
223 work items will not prevent other work items in the same 213 work items will not prevent other work items in the same
224 thread-pool from starting execution. This is useful for bound 214 worker-pool from starting execution. This is useful for bound
225 work items which are expected to hog CPU cycles so that their 215 work items which are expected to hog CPU cycles so that their
226 execution is regulated by the system scheduler. 216 execution is regulated by the system scheduler.
227 217
@@ -233,6 +223,10 @@ resources, scheduled and executed.
233 223
234 This flag is meaningless for unbound wq. 224 This flag is meaningless for unbound wq.
235 225
226Note that the flag WQ_NON_REENTRANT no longer exists as all workqueues
227are now non-reentrant - any work item is guaranteed to be executed by
228at most one worker system-wide at any given time.
229
236@max_active: 230@max_active:
237 231
238@max_active determines the maximum number of execution contexts per 232@max_active determines the maximum number of execution contexts per
@@ -254,9 +248,9 @@ recommended.
254 248
255Some users depend on the strict execution ordering of ST wq. The 249Some users depend on the strict execution ordering of ST wq. The
256combination of @max_active of 1 and WQ_UNBOUND is used to achieve this 250combination of @max_active of 1 and WQ_UNBOUND is used to achieve this
257behavior. Work items on such wq are always queued to the unbound gcwq 251behavior. Work items on such wq are always queued to the unbound
258and only one work item can be active at any given time thus achieving 252worker-pools and only one work item can be active at any given time thus
259the same ordering property as ST wq. 253achieving the same ordering property as ST wq.
260 254
261 255
2625. Example Execution Scenarios 2565. Example Execution Scenarios
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt
index fc66d42422ee..f4f268c2b826 100644
--- a/Documentation/x86/boot.txt
+++ b/Documentation/x86/boot.txt
@@ -58,7 +58,7 @@ Protocol 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 60Protocol 2.12: (Kernel 3.8) Added the xloadflags field and extension fields
61 to struct boot_params for for loading bzImage and ramdisk 61 to struct boot_params for loading bzImage and ramdisk
62 above 4G in 64bit. 62 above 4G in 64bit.
63 63
64**** MEMORY LAYOUT 64**** MEMORY LAYOUT
diff --git a/Documentation/x86/x86_64/boot-options.txt b/Documentation/x86/x86_64/boot-options.txt
index e9e8ddbbf376..1228b22e142b 100644
--- a/Documentation/x86/x86_64/boot-options.txt
+++ b/Documentation/x86/x86_64/boot-options.txt
@@ -176,6 +176,11 @@ ACPI
176 176
177 acpi=noirq Don't route interrupts 177 acpi=noirq Don't route interrupts
178 178
179 acpi=nocmcff Disable firmware first mode for corrected errors. This
180 disables parsing the HEST CMC error source to check if
181 firmware has set the FF flag. This may result in
182 duplicate corrected error reports.
183
179PCI 184PCI
180 185
181 pci=off Don't use PCI 186 pci=off Don't use PCI
diff --git a/Documentation/zh_CN/SubmittingPatches b/Documentation/zh_CN/SubmittingPatches
index 0f4385a62a49..be0bd4725062 100644
--- a/Documentation/zh_CN/SubmittingPatches
+++ b/Documentation/zh_CN/SubmittingPatches
@@ -146,7 +146,7 @@ Majordomo lists of VGER.KERNEL.ORG at:
146 <http://vger.kernel.org/vger-lists.html> 146 <http://vger.kernel.org/vger-lists.html>
147 147
148如果改动影响了用户空间和内核之间的接口,请给 MAN-PAGES 的维护者(列在 148如果改动影响了用户空间和内核之间的接口,请给 MAN-PAGES 的维护者(列在
149MAITAINERS 文件里的)发送一个手册页(man-pages)补丁,或者至少通知一下改 149MAINTAINERS 文件里的)发送一个手册页(man-pages)补丁,或者至少通知一下改
150变,让一些信息有途径进入手册页。 150变,让一些信息有途径进入手册页。
151 151
152即使在第四步的时候,维护者没有作出回应,也要确认在修改他们的代码的时候 152即使在第四步的时候,维护者没有作出回应,也要确认在修改他们的代码的时候