diff options
Diffstat (limited to 'Documentation')
37 files changed, 849 insertions, 67 deletions
diff --git a/Documentation/DocBook/media/v4l/vidioc-expbuf.xml b/Documentation/DocBook/media/v4l/vidioc-expbuf.xml index e287c8fc803b..4165e7bfa4ff 100644 --- a/Documentation/DocBook/media/v4l/vidioc-expbuf.xml +++ b/Documentation/DocBook/media/v4l/vidioc-expbuf.xml | |||
@@ -73,7 +73,8 @@ range from zero to the maximal number of valid planes for the currently active | |||
73 | format. For the single-planar API, applications must set <structfield> plane | 73 | format. For the single-planar API, applications must set <structfield> plane |
74 | </structfield> to zero. Additional flags may be posted in the <structfield> | 74 | </structfield> to zero. Additional flags may be posted in the <structfield> |
75 | flags </structfield> field. Refer to a manual for open() for details. | 75 | flags </structfield> field. Refer to a manual for open() for details. |
76 | Currently only O_CLOEXEC is supported. All other fields must be set to zero. | 76 | Currently only O_CLOEXEC, O_RDONLY, O_WRONLY, and O_RDWR are supported. All |
77 | other fields must be set to zero. | ||
77 | In the case of multi-planar API, every plane is exported separately using | 78 | In the case of multi-planar API, every plane is exported separately using |
78 | multiple <constant> VIDIOC_EXPBUF </constant> calls. </para> | 79 | multiple <constant> VIDIOC_EXPBUF </constant> calls. </para> |
79 | 80 | ||
@@ -170,8 +171,9 @@ multi-planar API. Otherwise this value must be set to zero. </entry> | |||
170 | <entry>__u32</entry> | 171 | <entry>__u32</entry> |
171 | <entry><structfield>flags</structfield></entry> | 172 | <entry><structfield>flags</structfield></entry> |
172 | <entry>Flags for the newly created file, currently only <constant> | 173 | <entry>Flags for the newly created file, currently only <constant> |
173 | O_CLOEXEC </constant> is supported, refer to the manual of open() for more | 174 | O_CLOEXEC </constant>, <constant>O_RDONLY</constant>, <constant>O_WRONLY |
174 | details.</entry> | 175 | </constant>, and <constant>O_RDWR</constant> are supported, refer to the manual |
176 | of open() for more details.</entry> | ||
175 | </row> | 177 | </row> |
176 | <row> | 178 | <row> |
177 | <entry>__s32</entry> | 179 | <entry>__s32</entry> |
diff --git a/Documentation/assoc_array.txt b/Documentation/assoc_array.txt index f4faec0f66e4..2f2c6cdd73c0 100644 --- a/Documentation/assoc_array.txt +++ b/Documentation/assoc_array.txt | |||
@@ -164,10 +164,10 @@ This points to a number of methods, all of which need to be provided: | |||
164 | 164 | ||
165 | (4) Diff the index keys of two objects. | 165 | (4) Diff the index keys of two objects. |
166 | 166 | ||
167 | int (*diff_objects)(const void *a, const void *b); | 167 | int (*diff_objects)(const void *object, const void *index_key); |
168 | 168 | ||
169 | Return the bit position at which the index keys of two objects differ or | 169 | Return the bit position at which the index key of the specified object |
170 | -1 if they are the same. | 170 | differs from the given index key or -1 if they are the same. |
171 | 171 | ||
172 | 172 | ||
173 | (5) Free an object. | 173 | (5) Free an object. |
diff --git a/Documentation/block/null_blk.txt b/Documentation/block/null_blk.txt new file mode 100644 index 000000000000..b2830b435895 --- /dev/null +++ b/Documentation/block/null_blk.txt | |||
@@ -0,0 +1,72 @@ | |||
1 | Null block device driver | ||
2 | ================================================================================ | ||
3 | |||
4 | I. Overview | ||
5 | |||
6 | The null block device (/dev/nullb*) is used for benchmarking the various | ||
7 | block-layer implementations. It emulates a block device of X gigabytes in size. | ||
8 | The following instances are possible: | ||
9 | |||
10 | Single-queue block-layer | ||
11 | - Request-based. | ||
12 | - Single submission queue per device. | ||
13 | - Implements IO scheduling algorithms (CFQ, Deadline, noop). | ||
14 | Multi-queue block-layer | ||
15 | - Request-based. | ||
16 | - Configurable submission queues per device. | ||
17 | No block-layer (Known as bio-based) | ||
18 | - Bio-based. IO requests are submitted directly to the device driver. | ||
19 | - Directly accepts bio data structure and returns them. | ||
20 | |||
21 | All of them have a completion queue for each core in the system. | ||
22 | |||
23 | II. Module parameters applicable for all instances: | ||
24 | |||
25 | queue_mode=[0-2]: Default: 2-Multi-queue | ||
26 | Selects which block-layer the module should instantiate with. | ||
27 | |||
28 | 0: Bio-based. | ||
29 | 1: Single-queue. | ||
30 | 2: Multi-queue. | ||
31 | |||
32 | home_node=[0--nr_nodes]: Default: NUMA_NO_NODE | ||
33 | Selects what CPU node the data structures are allocated from. | ||
34 | |||
35 | gb=[Size in GB]: Default: 250GB | ||
36 | The size of the device reported to the system. | ||
37 | |||
38 | bs=[Block size (in bytes)]: Default: 512 bytes | ||
39 | The block size reported to the system. | ||
40 | |||
41 | nr_devices=[Number of devices]: Default: 2 | ||
42 | Number of block devices instantiated. They are instantiated as /dev/nullb0, | ||
43 | etc. | ||
44 | |||
45 | irq_mode=[0-2]: Default: 1-Soft-irq | ||
46 | The completion mode used for completing IOs to the block-layer. | ||
47 | |||
48 | 0: None. | ||
49 | 1: Soft-irq. Uses IPI to complete IOs across CPU nodes. Simulates the overhead | ||
50 | when IOs are issued from another CPU node than the home the device is | ||
51 | connected to. | ||
52 | 2: Timer: Waits a specific period (completion_nsec) for each IO before | ||
53 | completion. | ||
54 | |||
55 | completion_nsec=[ns]: Default: 10.000ns | ||
56 | Combined with irq_mode=2 (timer). The time each completion event must wait. | ||
57 | |||
58 | submit_queues=[0..nr_cpus]: | ||
59 | The number of submission queues attached to the device driver. If unset, it | ||
60 | defaults to 1 on single-queue and bio-based instances. For multi-queue, | ||
61 | it is ignored when use_per_node_hctx module parameter is 1. | ||
62 | |||
63 | hw_queue_depth=[0..qdepth]: Default: 64 | ||
64 | The hardware queue depth of the device. | ||
65 | |||
66 | III: Multi-queue specific parameters | ||
67 | |||
68 | use_per_node_hctx=[0/1]: Default: 0 | ||
69 | 0: The number of submit queues are set to the value of the submit_queues | ||
70 | parameter. | ||
71 | 1: The multi-queue block layer is instantiated with a hardware dispatch | ||
72 | queue for each CPU node in the system. | ||
diff --git a/Documentation/device-mapper/cache.txt b/Documentation/device-mapper/cache.txt index 274752f8bdf9..719320b5ed3f 100644 --- a/Documentation/device-mapper/cache.txt +++ b/Documentation/device-mapper/cache.txt | |||
@@ -266,10 +266,12 @@ E.g. | |||
266 | Invalidation is removing an entry from the cache without writing it | 266 | Invalidation is removing an entry from the cache without writing it |
267 | back. Cache blocks can be invalidated via the invalidate_cblocks | 267 | back. Cache blocks can be invalidated via the invalidate_cblocks |
268 | message, which takes an arbitrary number of cblock ranges. Each cblock | 268 | message, which takes an arbitrary number of cblock ranges. Each cblock |
269 | must be expressed as a decimal value, in the future a variant message | 269 | range's end value is "one past the end", meaning 5-10 expresses a range |
270 | that takes cblock ranges expressed in hexidecimal may be needed to | 270 | of values from 5 to 9. Each cblock must be expressed as a decimal |
271 | better support efficient invalidation of larger caches. The cache must | 271 | value, in the future a variant message that takes cblock ranges |
272 | be in passthrough mode when invalidate_cblocks is used. | 272 | expressed in hexidecimal may be needed to better support efficient |
273 | invalidation of larger caches. The cache must be in passthrough mode | ||
274 | when invalidate_cblocks is used. | ||
273 | 275 | ||
274 | invalidate_cblocks [<cblock>|<cblock begin>-<cblock end>]* | 276 | invalidate_cblocks [<cblock>|<cblock begin>-<cblock end>]* |
275 | 277 | ||
diff --git a/Documentation/devicetree/bindings/arm/omap/mpu.txt b/Documentation/devicetree/bindings/arm/omap/mpu.txt index 1a5a42ce21bb..83f405bde138 100644 --- a/Documentation/devicetree/bindings/arm/omap/mpu.txt +++ b/Documentation/devicetree/bindings/arm/omap/mpu.txt | |||
@@ -7,10 +7,18 @@ The MPU contain CPUs, GIC, L2 cache and a local PRCM. | |||
7 | Required properties: | 7 | Required properties: |
8 | - compatible : Should be "ti,omap3-mpu" for OMAP3 | 8 | - compatible : Should be "ti,omap3-mpu" for OMAP3 |
9 | Should be "ti,omap4-mpu" for OMAP4 | 9 | Should be "ti,omap4-mpu" for OMAP4 |
10 | Should be "ti,omap5-mpu" for OMAP5 | ||
10 | - ti,hwmods: "mpu" | 11 | - ti,hwmods: "mpu" |
11 | 12 | ||
12 | Examples: | 13 | Examples: |
13 | 14 | ||
15 | - For an OMAP5 SMP system: | ||
16 | |||
17 | mpu { | ||
18 | compatible = "ti,omap5-mpu"; | ||
19 | ti,hwmods = "mpu" | ||
20 | }; | ||
21 | |||
14 | - For an OMAP4 SMP system: | 22 | - For an OMAP4 SMP system: |
15 | 23 | ||
16 | mpu { | 24 | mpu { |
diff --git a/Documentation/devicetree/bindings/arm/pmu.txt b/Documentation/devicetree/bindings/arm/pmu.txt index 343781b9f246..3e1e498fea96 100644 --- a/Documentation/devicetree/bindings/arm/pmu.txt +++ b/Documentation/devicetree/bindings/arm/pmu.txt | |||
@@ -7,6 +7,7 @@ representation in the device tree should be done as under:- | |||
7 | Required properties: | 7 | Required properties: |
8 | 8 | ||
9 | - compatible : should be one of | 9 | - compatible : should be one of |
10 | "arm,armv8-pmuv3" | ||
10 | "arm,cortex-a15-pmu" | 11 | "arm,cortex-a15-pmu" |
11 | "arm,cortex-a9-pmu" | 12 | "arm,cortex-a9-pmu" |
12 | "arm,cortex-a8-pmu" | 13 | "arm,cortex-a8-pmu" |
diff --git a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt index 47ada1dff216..5d49f2b37f68 100644 --- a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt +++ b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt | |||
@@ -49,7 +49,7 @@ adc@12D10000 { | |||
49 | /* NTC thermistor is a hwmon device */ | 49 | /* NTC thermistor is a hwmon device */ |
50 | ncp15wb473@0 { | 50 | ncp15wb473@0 { |
51 | compatible = "ntc,ncp15wb473"; | 51 | compatible = "ntc,ncp15wb473"; |
52 | pullup-uV = <1800000>; | 52 | pullup-uv = <1800000>; |
53 | pullup-ohm = <47000>; | 53 | pullup-ohm = <47000>; |
54 | pulldown-ohm = <0>; | 54 | pulldown-ohm = <0>; |
55 | io-channels = <&adc 4>; | 55 | io-channels = <&adc 4>; |
diff --git a/Documentation/devicetree/bindings/clock/exynos4-clock.txt b/Documentation/devicetree/bindings/clock/exynos4-clock.txt index c6bf8a6c8f52..a2ac2d9ac71a 100644 --- a/Documentation/devicetree/bindings/clock/exynos4-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos4-clock.txt | |||
@@ -6,7 +6,7 @@ SoC's in the Exynos4 family. | |||
6 | 6 | ||
7 | Required Properties: | 7 | Required Properties: |
8 | 8 | ||
9 | - comptible: should be one of the following. | 9 | - compatible: should be one of the following. |
10 | - "samsung,exynos4210-clock" - controller compatible with Exynos4210 SoC. | 10 | - "samsung,exynos4210-clock" - controller compatible with Exynos4210 SoC. |
11 | - "samsung,exynos4412-clock" - controller compatible with Exynos4412 SoC. | 11 | - "samsung,exynos4412-clock" - controller compatible with Exynos4412 SoC. |
12 | 12 | ||
diff --git a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt index 24765c146e31..46f5c791ea0d 100644 --- a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt | |||
@@ -5,7 +5,7 @@ controllers within the Exynos5250 SoC. | |||
5 | 5 | ||
6 | Required Properties: | 6 | Required Properties: |
7 | 7 | ||
8 | - comptible: should be one of the following. | 8 | - compatible: should be one of the following. |
9 | - "samsung,exynos5250-clock" - controller compatible with Exynos5250 SoC. | 9 | - "samsung,exynos5250-clock" - controller compatible with Exynos5250 SoC. |
10 | 10 | ||
11 | - reg: physical base address of the controller and length of memory mapped | 11 | - reg: physical base address of the controller and length of memory mapped |
diff --git a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt index 32aa34ecad36..458f34789e5d 100644 --- a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt | |||
@@ -5,7 +5,7 @@ controllers within the Exynos5420 SoC. | |||
5 | 5 | ||
6 | Required Properties: | 6 | Required Properties: |
7 | 7 | ||
8 | - comptible: should be one of the following. | 8 | - compatible: should be one of the following. |
9 | - "samsung,exynos5420-clock" - controller compatible with Exynos5420 SoC. | 9 | - "samsung,exynos5420-clock" - controller compatible with Exynos5420 SoC. |
10 | 10 | ||
11 | - reg: physical base address of the controller and length of memory mapped | 11 | - reg: physical base address of the controller and length of memory mapped |
diff --git a/Documentation/devicetree/bindings/clock/exynos5440-clock.txt b/Documentation/devicetree/bindings/clock/exynos5440-clock.txt index 4499e9966bc9..9955dc9c7d96 100644 --- a/Documentation/devicetree/bindings/clock/exynos5440-clock.txt +++ b/Documentation/devicetree/bindings/clock/exynos5440-clock.txt | |||
@@ -5,7 +5,7 @@ controllers within the Exynos5440 SoC. | |||
5 | 5 | ||
6 | Required Properties: | 6 | Required Properties: |
7 | 7 | ||
8 | - comptible: should be "samsung,exynos5440-clock". | 8 | - compatible: should be "samsung,exynos5440-clock". |
9 | 9 | ||
10 | - reg: physical base address of the controller and length of memory mapped | 10 | - reg: physical base address of the controller and length of memory mapped |
11 | region. | 11 | region. |
diff --git a/Documentation/devicetree/bindings/gpio/8xxx_gpio.txt b/Documentation/devicetree/bindings/gpio/8xxx_gpio.txt index b0019eb5330e..798cfc9d3839 100644 --- a/Documentation/devicetree/bindings/gpio/8xxx_gpio.txt +++ b/Documentation/devicetree/bindings/gpio/8xxx_gpio.txt | |||
@@ -5,16 +5,42 @@ This is for the non-QE/CPM/GUTs GPIO controllers as found on | |||
5 | 5 | ||
6 | Every GPIO controller node must have #gpio-cells property defined, | 6 | Every GPIO controller node must have #gpio-cells property defined, |
7 | this information will be used to translate gpio-specifiers. | 7 | this information will be used to translate gpio-specifiers. |
8 | See bindings/gpio/gpio.txt for details of how to specify GPIO | ||
9 | information for devices. | ||
10 | |||
11 | The GPIO module usually is connected to the SoC's internal interrupt | ||
12 | controller, see bindings/interrupt-controller/interrupts.txt (the | ||
13 | interrupt client nodes section) for details how to specify this GPIO | ||
14 | module's interrupt. | ||
15 | |||
16 | The GPIO module may serve as another interrupt controller (cascaded to | ||
17 | the SoC's internal interrupt controller). See the interrupt controller | ||
18 | nodes section in bindings/interrupt-controller/interrupts.txt for | ||
19 | details. | ||
8 | 20 | ||
9 | Required properties: | 21 | Required properties: |
10 | - compatible : "fsl,<CHIP>-gpio" followed by "fsl,mpc8349-gpio" for | 22 | - compatible: "fsl,<chip>-gpio" followed by "fsl,mpc8349-gpio" |
11 | 83xx, "fsl,mpc8572-gpio" for 85xx and "fsl,mpc8610-gpio" for 86xx. | 23 | for 83xx, "fsl,mpc8572-gpio" for 85xx, or |
12 | - #gpio-cells : Should be two. The first cell is the pin number and the | 24 | "fsl,mpc8610-gpio" for 86xx. |
13 | second cell is used to specify optional parameters (currently unused). | 25 | - #gpio-cells: Should be two. The first cell is the pin number |
14 | - interrupts : Interrupt mapping for GPIO IRQ. | 26 | and the second cell is used to specify optional |
15 | - interrupt-parent : Phandle for the interrupt controller that | 27 | parameters (currently unused). |
16 | services interrupts for this device. | 28 | - interrupt-parent: Phandle for the interrupt controller that |
17 | - gpio-controller : Marks the port as GPIO controller. | 29 | services interrupts for this device. |
30 | - interrupts: Interrupt mapping for GPIO IRQ. | ||
31 | - gpio-controller: Marks the port as GPIO controller. | ||
32 | |||
33 | Optional properties: | ||
34 | - interrupt-controller: Empty boolean property which marks the GPIO | ||
35 | module as an IRQ controller. | ||
36 | - #interrupt-cells: Should be two. Defines the number of integer | ||
37 | cells required to specify an interrupt within | ||
38 | this interrupt controller. The first cell | ||
39 | defines the pin number, the second cell | ||
40 | defines additional flags (trigger type, | ||
41 | trigger polarity). Note that the available | ||
42 | set of trigger conditions supported by the | ||
43 | GPIO module depends on the actual SoC. | ||
18 | 44 | ||
19 | Example of gpio-controller nodes for a MPC8347 SoC: | 45 | Example of gpio-controller nodes for a MPC8347 SoC: |
20 | 46 | ||
@@ -22,39 +48,27 @@ Example of gpio-controller nodes for a MPC8347 SoC: | |||
22 | #gpio-cells = <2>; | 48 | #gpio-cells = <2>; |
23 | compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio"; | 49 | compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio"; |
24 | reg = <0xc00 0x100>; | 50 | reg = <0xc00 0x100>; |
25 | interrupts = <74 0x8>; | ||
26 | interrupt-parent = <&ipic>; | 51 | interrupt-parent = <&ipic>; |
52 | interrupts = <74 0x8>; | ||
27 | gpio-controller; | 53 | gpio-controller; |
54 | interrupt-controller; | ||
55 | #interrupt-cells = <2>; | ||
28 | }; | 56 | }; |
29 | 57 | ||
30 | gpio2: gpio-controller@d00 { | 58 | gpio2: gpio-controller@d00 { |
31 | #gpio-cells = <2>; | 59 | #gpio-cells = <2>; |
32 | compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio"; | 60 | compatible = "fsl,mpc8347-gpio", "fsl,mpc8349-gpio"; |
33 | reg = <0xd00 0x100>; | 61 | reg = <0xd00 0x100>; |
34 | interrupts = <75 0x8>; | ||
35 | interrupt-parent = <&ipic>; | 62 | interrupt-parent = <&ipic>; |
63 | interrupts = <75 0x8>; | ||
36 | gpio-controller; | 64 | gpio-controller; |
37 | }; | 65 | }; |
38 | 66 | ||
39 | See booting-without-of.txt for details of how to specify GPIO | 67 | Example of a peripheral using the GPIO module as an IRQ controller: |
40 | information for devices. | ||
41 | |||
42 | To use GPIO pins as interrupt sources for peripherals, specify the | ||
43 | GPIO controller as the interrupt parent and define GPIO number + | ||
44 | trigger mode using the interrupts property, which is defined like | ||
45 | this: | ||
46 | |||
47 | interrupts = <number trigger>, where: | ||
48 | - number: GPIO pin (0..31) | ||
49 | - trigger: trigger mode: | ||
50 | 2 = trigger on falling edge | ||
51 | 3 = trigger on both edges | ||
52 | |||
53 | Example of device using this is: | ||
54 | 68 | ||
55 | funkyfpga@0 { | 69 | funkyfpga@0 { |
56 | compatible = "funky-fpga"; | 70 | compatible = "funky-fpga"; |
57 | ... | 71 | ... |
58 | interrupts = <4 3>; | ||
59 | interrupt-parent = <&gpio1>; | 72 | interrupt-parent = <&gpio1>; |
73 | interrupts = <4 3>; | ||
60 | }; | 74 | }; |
diff --git a/Documentation/devicetree/bindings/mmc/ti-omap.txt b/Documentation/devicetree/bindings/mmc/ti-omap.txt new file mode 100644 index 000000000000..8de579969763 --- /dev/null +++ b/Documentation/devicetree/bindings/mmc/ti-omap.txt | |||
@@ -0,0 +1,54 @@ | |||
1 | * TI MMC host controller for OMAP1 and 2420 | ||
2 | |||
3 | The MMC Host Controller on TI OMAP1 and 2420 family provides | ||
4 | an interface for MMC, SD, and SDIO types of memory cards. | ||
5 | |||
6 | This file documents differences between the core properties described | ||
7 | by mmc.txt and the properties used by the omap mmc driver. | ||
8 | |||
9 | Note that this driver will not work with omap2430 or later omaps, | ||
10 | please see the omap hsmmc driver for the current omaps. | ||
11 | |||
12 | Required properties: | ||
13 | - compatible: Must be "ti,omap2420-mmc", for OMAP2420 controllers | ||
14 | - ti,hwmods: For 2420, must be "msdi<n>", where n is controller | ||
15 | instance starting 1 | ||
16 | |||
17 | Examples: | ||
18 | |||
19 | msdi1: mmc@4809c000 { | ||
20 | compatible = "ti,omap2420-mmc"; | ||
21 | ti,hwmods = "msdi1"; | ||
22 | reg = <0x4809c000 0x80>; | ||
23 | interrupts = <83>; | ||
24 | dmas = <&sdma 61 &sdma 62>; | ||
25 | dma-names = "tx", "rx"; | ||
26 | }; | ||
27 | |||
28 | * TI MMC host controller for OMAP1 and 2420 | ||
29 | |||
30 | The MMC Host Controller on TI OMAP1 and 2420 family provides | ||
31 | an interface for MMC, SD, and SDIO types of memory cards. | ||
32 | |||
33 | This file documents differences between the core properties described | ||
34 | by mmc.txt and the properties used by the omap mmc driver. | ||
35 | |||
36 | Note that this driver will not work with omap2430 or later omaps, | ||
37 | please see the omap hsmmc driver for the current omaps. | ||
38 | |||
39 | Required properties: | ||
40 | - compatible: Must be "ti,omap2420-mmc", for OMAP2420 controllers | ||
41 | - ti,hwmods: For 2420, must be "msdi<n>", where n is controller | ||
42 | instance starting 1 | ||
43 | |||
44 | Examples: | ||
45 | |||
46 | msdi1: mmc@4809c000 { | ||
47 | compatible = "ti,omap2420-mmc"; | ||
48 | ti,hwmods = "msdi1"; | ||
49 | reg = <0x4809c000 0x80>; | ||
50 | interrupts = <83>; | ||
51 | dmas = <&sdma 61 &sdma 62>; | ||
52 | dma-names = "tx", "rx"; | ||
53 | }; | ||
54 | |||
diff --git a/Documentation/devicetree/bindings/net/davinci_emac.txt b/Documentation/devicetree/bindings/net/davinci_emac.txt index 48b259e29e87..bad381faf036 100644 --- a/Documentation/devicetree/bindings/net/davinci_emac.txt +++ b/Documentation/devicetree/bindings/net/davinci_emac.txt | |||
@@ -4,7 +4,7 @@ This file provides information, what the device node | |||
4 | for the davinci_emac interface contains. | 4 | for the davinci_emac interface contains. |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible: "ti,davinci-dm6467-emac"; | 7 | - compatible: "ti,davinci-dm6467-emac" or "ti,am3517-emac" |
8 | - reg: Offset and length of the register set for the device | 8 | - reg: Offset and length of the register set for the device |
9 | - ti,davinci-ctrl-reg-offset: offset to control register | 9 | - ti,davinci-ctrl-reg-offset: offset to control register |
10 | - ti,davinci-ctrl-mod-reg-offset: offset to control module register | 10 | - ti,davinci-ctrl-mod-reg-offset: offset to control module register |
diff --git a/Documentation/devicetree/bindings/net/fsl-fec.txt b/Documentation/devicetree/bindings/net/fsl-fec.txt index d53639221403..845ff848d895 100644 --- a/Documentation/devicetree/bindings/net/fsl-fec.txt +++ b/Documentation/devicetree/bindings/net/fsl-fec.txt | |||
@@ -15,6 +15,7 @@ Optional properties: | |||
15 | only if property "phy-reset-gpios" is available. Missing the property | 15 | only if property "phy-reset-gpios" is available. Missing the property |
16 | will have the duration be 1 millisecond. Numbers greater than 1000 are | 16 | will have the duration be 1 millisecond. Numbers greater than 1000 are |
17 | invalid and 1 millisecond will be used instead. | 17 | invalid and 1 millisecond will be used instead. |
18 | - phy-supply: regulator that powers the Ethernet PHY. | ||
18 | 19 | ||
19 | Example: | 20 | Example: |
20 | 21 | ||
@@ -25,4 +26,5 @@ ethernet@83fec000 { | |||
25 | phy-mode = "mii"; | 26 | phy-mode = "mii"; |
26 | phy-reset-gpios = <&gpio2 14 0>; /* GPIO2_14 */ | 27 | phy-reset-gpios = <&gpio2 14 0>; /* GPIO2_14 */ |
27 | local-mac-address = [00 04 9F 01 1B B9]; | 28 | local-mac-address = [00 04 9F 01 1B B9]; |
29 | phy-supply = <®_fec_supply>; | ||
28 | }; | 30 | }; |
diff --git a/Documentation/devicetree/bindings/net/smsc-lan91c111.txt b/Documentation/devicetree/bindings/net/smsc-lan91c111.txt index 953049b4248a..5a41a8658daa 100644 --- a/Documentation/devicetree/bindings/net/smsc-lan91c111.txt +++ b/Documentation/devicetree/bindings/net/smsc-lan91c111.txt | |||
@@ -8,3 +8,7 @@ Required properties: | |||
8 | Optional properties: | 8 | Optional properties: |
9 | - phy-device : phandle to Ethernet phy | 9 | - phy-device : phandle to Ethernet phy |
10 | - local-mac-address : Ethernet mac address to use | 10 | - local-mac-address : Ethernet mac address to use |
11 | - reg-io-width : Mask of sizes (in bytes) of the IO accesses that | ||
12 | are supported on the device. Valid value for SMSC LAN91c111 are | ||
13 | 1, 2 or 4. If it's omitted or invalid, the size would be 2 meaning | ||
14 | 16-bit access only. | ||
diff --git a/Documentation/devicetree/bindings/sound/adi,axi-i2s.txt b/Documentation/devicetree/bindings/sound/adi,axi-i2s.txt new file mode 100644 index 000000000000..5875ca459ed1 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/adi,axi-i2s.txt | |||
@@ -0,0 +1,31 @@ | |||
1 | ADI AXI-I2S controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Must be "adi,axi-i2s-1.00.a" | ||
5 | - reg : Must contain I2S core's registers location and length | ||
6 | - clocks : Pairs of phandle and specifier referencing the controller's clocks. | ||
7 | The controller expects two clocks, the clock used for the AXI interface and | ||
8 | the clock used as the sampling rate reference clock sample. | ||
9 | - clock-names : "axi" for the clock to the AXI interface, "ref" for the sample | ||
10 | rate reference clock. | ||
11 | - dmas: Pairs of phandle and specifier for the DMA channels that are used by | ||
12 | the core. The core expects two dma channels, one for transmit and one for | ||
13 | receive. | ||
14 | - dma-names : "tx" for the transmit channel, "rx" for the receive channel. | ||
15 | |||
16 | For more details on the 'dma', 'dma-names', 'clock' and 'clock-names' properties | ||
17 | please check: | ||
18 | * resource-names.txt | ||
19 | * clock/clock-bindings.txt | ||
20 | * dma/dma.txt | ||
21 | |||
22 | Example: | ||
23 | |||
24 | i2s: i2s@0x77600000 { | ||
25 | compatible = "adi,axi-i2s-1.00.a"; | ||
26 | reg = <0x77600000 0x1000>; | ||
27 | clocks = <&clk 15>, <&audio_clock>; | ||
28 | clock-names = "axi", "ref"; | ||
29 | dmas = <&ps7_dma 0>, <&ps7_dma 1>; | ||
30 | dma-names = "tx", "rx"; | ||
31 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt b/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt new file mode 100644 index 000000000000..46f344965313 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt | |||
@@ -0,0 +1,30 @@ | |||
1 | ADI AXI-SPDIF controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Must be "adi,axi-spdif-1.00.a" | ||
5 | - reg : Must contain SPDIF core's registers location and length | ||
6 | - clocks : Pairs of phandle and specifier referencing the controller's clocks. | ||
7 | The controller expects two clocks, the clock used for the AXI interface and | ||
8 | the clock used as the sampling rate reference clock sample. | ||
9 | - clock-names: "axi" for the clock to the AXI interface, "ref" for the sample | ||
10 | rate reference clock. | ||
11 | - dmas: Pairs of phandle and specifier for the DMA channel that is used by | ||
12 | the core. The core expects one dma channel for transmit. | ||
13 | - dma-names : Must be "tx" | ||
14 | |||
15 | For more details on the 'dma', 'dma-names', 'clock' and 'clock-names' properties | ||
16 | please check: | ||
17 | * resource-names.txt | ||
18 | * clock/clock-bindings.txt | ||
19 | * dma/dma.txt | ||
20 | |||
21 | Example: | ||
22 | |||
23 | spdif: spdif@0x77400000 { | ||
24 | compatible = "adi,axi-spdif-tx-1.00.a"; | ||
25 | reg = <0x77600000 0x1000>; | ||
26 | clocks = <&clk 15>, <&audio_clock>; | ||
27 | clock-names = "axi", "ref"; | ||
28 | dmas = <&ps7_dma 0>; | ||
29 | dma-names = "tx"; | ||
30 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/bcm2835-i2s.txt b/Documentation/devicetree/bindings/sound/bcm2835-i2s.txt new file mode 100644 index 000000000000..65783de0aedf --- /dev/null +++ b/Documentation/devicetree/bindings/sound/bcm2835-i2s.txt | |||
@@ -0,0 +1,25 @@ | |||
1 | * Broadcom BCM2835 SoC I2S/PCM module | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "brcm,bcm2835-i2s" | ||
5 | - reg: A list of base address and size entries: | ||
6 | * The first entry should cover the PCM registers | ||
7 | * The second entry should cover the PCM clock registers | ||
8 | - dmas: List of DMA controller phandle and DMA request line ordered pairs. | ||
9 | - dma-names: Identifier string for each DMA request line in the dmas property. | ||
10 | These strings correspond 1:1 with the ordered pairs in dmas. | ||
11 | |||
12 | One of the DMA channels will be responsible for transmission (should be | ||
13 | named "tx") and one for reception (should be named "rx"). | ||
14 | |||
15 | Example: | ||
16 | |||
17 | bcm2835_i2s: i2s@7e203000 { | ||
18 | compatible = "brcm,bcm2835-i2s"; | ||
19 | reg = <0x7e203000 0x20>, | ||
20 | <0x7e101098 0x02>; | ||
21 | |||
22 | dmas = <&dma 2>, | ||
23 | <&dma 3>; | ||
24 | dma-names = "tx", "rx"; | ||
25 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/cs42l52.txt b/Documentation/devicetree/bindings/sound/cs42l52.txt new file mode 100644 index 000000000000..bc03c9312a19 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/cs42l52.txt | |||
@@ -0,0 +1,46 @@ | |||
1 | CS42L52 audio CODEC | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : "cirrus,cs42l52" | ||
6 | |||
7 | - reg : the I2C address of the device for I2C | ||
8 | |||
9 | Optional properties: | ||
10 | |||
11 | - cirrus,reset-gpio : GPIO controller's phandle and the number | ||
12 | of the GPIO used to reset the codec. | ||
13 | |||
14 | - cirrus,chgfreq-divisor : Values used to set the Charge Pump Frequency. | ||
15 | Allowable values of 0x00 through 0x0F. These are raw values written to the | ||
16 | register, not the actual frequency. The frequency is determined by the following. | ||
17 | Frequency = (64xFs)/(N+2) | ||
18 | N = chgfreq_val | ||
19 | Fs = Sample Rate (variable) | ||
20 | |||
21 | - cirrus,mica-differential-cfg : boolean, If present, then the MICA input is configured | ||
22 | as a differential input. If not present then the MICA input is configured as | ||
23 | Single-ended input. Single-ended mode allows for MIC1 or MIC2 muxing for input. | ||
24 | |||
25 | - cirrus,micb-differential-cfg : boolean, If present, then the MICB input is configured | ||
26 | as a differential input. If not present then the MICB input is configured as | ||
27 | Single-ended input. Single-ended mode allows for MIC1 or MIC2 muxing for input. | ||
28 | |||
29 | - cirrus,micbias-lvl: Set the output voltage level on the MICBIAS Pin | ||
30 | 0 = 0.5 x VA | ||
31 | 1 = 0.6 x VA | ||
32 | 2 = 0.7 x VA | ||
33 | 3 = 0.8 x VA | ||
34 | 4 = 0.83 x VA | ||
35 | 5 = 0.91 x VA | ||
36 | |||
37 | Example: | ||
38 | |||
39 | codec: codec@4a { | ||
40 | compatible = "cirrus,cs42l52"; | ||
41 | reg = <0x4a>; | ||
42 | reset-gpio = <&gpio 10 0>; | ||
43 | cirrus,chgfreq-divisor = <0x05>; | ||
44 | cirrus.mica-differential-cfg; | ||
45 | cirrus,micbias-lvl = <5>; | ||
46 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt index ed785b3f67be..569b26c4a81e 100644 --- a/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt +++ b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt | |||
@@ -4,7 +4,8 @@ Required properties: | |||
4 | - compatible : | 4 | - compatible : |
5 | "ti,dm646x-mcasp-audio" : for DM646x platforms | 5 | "ti,dm646x-mcasp-audio" : for DM646x platforms |
6 | "ti,da830-mcasp-audio" : for both DA830 & DA850 platforms | 6 | "ti,da830-mcasp-audio" : for both DA830 & DA850 platforms |
7 | "ti,am33xx-mcasp-audio" : for AM33xx platforms (AM33xx, TI81xx) | 7 | "ti,am33xx-mcasp-audio" : for AM33xx platforms (AM33xx, AM43xx, TI81xx) |
8 | "ti,dra7-mcasp-audio" : for DRA7xx platforms | ||
8 | 9 | ||
9 | - reg : Should contain reg specifiers for the entries in the reg-names property. | 10 | - reg : Should contain reg specifiers for the entries in the reg-names property. |
10 | - reg-names : Should contain: | 11 | - reg-names : Should contain: |
@@ -36,7 +37,8 @@ Optional properties: | |||
36 | - pinctrl-0: Should specify pin control group used for this controller. | 37 | - pinctrl-0: Should specify pin control group used for this controller. |
37 | - pinctrl-names: Should contain only one value - "default", for more details | 38 | - pinctrl-names: Should contain only one value - "default", for more details |
38 | please refer to pinctrl-bindings.txt | 39 | please refer to pinctrl-bindings.txt |
39 | 40 | - fck_parent : Should contain a valid clock name which will be used as parent | |
41 | for the McASP fck | ||
40 | 42 | ||
41 | Example: | 43 | Example: |
42 | 44 | ||
diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.txt b/Documentation/devicetree/bindings/sound/fsl,esai.txt new file mode 100644 index 000000000000..d7b99fa637b5 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/fsl,esai.txt | |||
@@ -0,0 +1,50 @@ | |||
1 | Freescale Enhanced Serial Audio Interface (ESAI) Controller | ||
2 | |||
3 | The Enhanced Serial Audio Interface (ESAI) provides a full-duplex serial port | ||
4 | for serial communication with a variety of serial devices, including industry | ||
5 | standard codecs, Sony/Phillips Digital Interface (S/PDIF) transceivers, and | ||
6 | other DSPs. It has up to six transmitters and four receivers. | ||
7 | |||
8 | Required properties: | ||
9 | |||
10 | - compatible : Compatible list, must contain "fsl,imx35-esai". | ||
11 | |||
12 | - reg : Offset and length of the register set for the device. | ||
13 | |||
14 | - interrupts : Contains the spdif interrupt. | ||
15 | |||
16 | - dmas : Generic dma devicetree binding as described in | ||
17 | Documentation/devicetree/bindings/dma/dma.txt. | ||
18 | |||
19 | - dma-names : Two dmas have to be defined, "tx" and "rx". | ||
20 | |||
21 | - clocks: Contains an entry for each entry in clock-names. | ||
22 | |||
23 | - clock-names : Includes the following entries: | ||
24 | "core" The core clock used to access registers | ||
25 | "extal" The esai baud clock for esai controller used to derive | ||
26 | HCK, SCK and FS. | ||
27 | "fsys" The system clock derived from ahb clock used to derive | ||
28 | HCK, SCK and FS. | ||
29 | |||
30 | - fsl,fifo-depth: The number of elements in the transmit and receive FIFOs. | ||
31 | This number is the maximum allowed value for TFCR[TFWM] or RFCR[RFWM]. | ||
32 | |||
33 | - fsl,esai-synchronous: This is a boolean property. If present, indicating | ||
34 | that ESAI would work in the synchronous mode, which means all the settings | ||
35 | for Receiving would be duplicated from Transmition related registers. | ||
36 | |||
37 | Example: | ||
38 | |||
39 | esai: esai@02024000 { | ||
40 | compatible = "fsl,imx35-esai"; | ||
41 | reg = <0x02024000 0x4000>; | ||
42 | interrupts = <0 51 0x04>; | ||
43 | clocks = <&clks 208>, <&clks 118>, <&clks 208>; | ||
44 | clock-names = "core", "extal", "fsys"; | ||
45 | dmas = <&sdma 23 21 0>, <&sdma 24 21 0>; | ||
46 | dma-names = "rx", "tx"; | ||
47 | fsl,fifo-depth = <128>; | ||
48 | fsl,esai-synchronous; | ||
49 | status = "disabled"; | ||
50 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/fsl,ssi.txt b/Documentation/devicetree/bindings/sound/fsl,ssi.txt index 4303b6ab6208..b93e9a91e30e 100644 --- a/Documentation/devicetree/bindings/sound/fsl,ssi.txt +++ b/Documentation/devicetree/bindings/sound/fsl,ssi.txt | |||
@@ -4,7 +4,12 @@ The SSI is a serial device that communicates with audio codecs. It can | |||
4 | be programmed in AC97, I2S, left-justified, or right-justified modes. | 4 | be programmed in AC97, I2S, left-justified, or right-justified modes. |
5 | 5 | ||
6 | Required properties: | 6 | Required properties: |
7 | - compatible: Compatible list, contains "fsl,ssi". | 7 | - compatible: Compatible list, should contain one of the following |
8 | compatibles: | ||
9 | fsl,mpc8610-ssi | ||
10 | fsl,imx51-ssi | ||
11 | fsl,imx35-ssi | ||
12 | fsl,imx21-ssi | ||
8 | - cell-index: The SSI, <0> = SSI1, <1> = SSI2, and so on. | 13 | - cell-index: The SSI, <0> = SSI1, <1> = SSI2, and so on. |
9 | - reg: Offset and length of the register set for the device. | 14 | - reg: Offset and length of the register set for the device. |
10 | - interrupts: <a b> where a is the interrupt number and b is a | 15 | - interrupts: <a b> where a is the interrupt number and b is a |
diff --git a/Documentation/devicetree/bindings/sound/fsl-sai.txt b/Documentation/devicetree/bindings/sound/fsl-sai.txt new file mode 100644 index 000000000000..98611a6761c0 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/fsl-sai.txt | |||
@@ -0,0 +1,40 @@ | |||
1 | Freescale Synchronous Audio Interface (SAI). | ||
2 | |||
3 | The SAI is based on I2S module that used communicating with audio codecs, | ||
4 | which provides a synchronous audio interface that supports fullduplex | ||
5 | serial interfaces with frame synchronization such as I2S, AC97, TDM, and | ||
6 | codec/DSP interfaces. | ||
7 | |||
8 | |||
9 | Required properties: | ||
10 | - compatible: Compatible list, contains "fsl,vf610-sai". | ||
11 | - reg: Offset and length of the register set for the device. | ||
12 | - clocks: Must contain an entry for each entry in clock-names. | ||
13 | - clock-names : Must include the "sai" entry. | ||
14 | - dmas : Generic dma devicetree binding as described in | ||
15 | Documentation/devicetree/bindings/dma/dma.txt. | ||
16 | - dma-names : Two dmas have to be defined, "tx" and "rx". | ||
17 | - pinctrl-names: Must contain a "default" entry. | ||
18 | - pinctrl-NNN: One property must exist for each entry in pinctrl-names. | ||
19 | See ../pinctrl/pinctrl-bindings.txt for details of the property values. | ||
20 | - big-endian-regs: If this property is absent, the little endian mode will | ||
21 | be in use as default, or the big endian mode will be in use for all the | ||
22 | device registers. | ||
23 | - big-endian-data: If this property is absent, the little endian mode will | ||
24 | be in use as default, or the big endian mode will be in use for all the | ||
25 | fifo data. | ||
26 | |||
27 | Example: | ||
28 | sai2: sai@40031000 { | ||
29 | compatible = "fsl,vf610-sai"; | ||
30 | reg = <0x40031000 0x1000>; | ||
31 | pinctrl-names = "default"; | ||
32 | pinctrl-0 = <&pinctrl_sai2_1>; | ||
33 | clocks = <&clks VF610_CLK_SAI2>; | ||
34 | clock-names = "sai"; | ||
35 | dma-names = "tx", "rx"; | ||
36 | dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>, | ||
37 | <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>; | ||
38 | big-endian-regs; | ||
39 | big-endian-data; | ||
40 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/hdmi.txt b/Documentation/devicetree/bindings/sound/hdmi.txt new file mode 100644 index 000000000000..31af7bca3099 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/hdmi.txt | |||
@@ -0,0 +1,17 @@ | |||
1 | Device-Tree bindings for dummy HDMI codec | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: should be "linux,hdmi-audio". | ||
5 | |||
6 | CODEC output pins: | ||
7 | * TX | ||
8 | |||
9 | CODEC input pins: | ||
10 | * RX | ||
11 | |||
12 | Example node: | ||
13 | |||
14 | hdmi_audio: hdmi_audio@0 { | ||
15 | compatible = "linux,hdmi-audio"; | ||
16 | status = "okay"; | ||
17 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/max98090.txt b/Documentation/devicetree/bindings/sound/max98090.txt new file mode 100644 index 000000000000..e4c8b36dcf89 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/max98090.txt | |||
@@ -0,0 +1,43 @@ | |||
1 | MAX98090 audio CODEC | ||
2 | |||
3 | This device supports I2C only. | ||
4 | |||
5 | Required properties: | ||
6 | |||
7 | - compatible : "maxim,max98090". | ||
8 | |||
9 | - reg : The I2C address of the device. | ||
10 | |||
11 | - interrupts : The CODEC's interrupt output. | ||
12 | |||
13 | Pins on the device (for linking into audio routes): | ||
14 | |||
15 | * MIC1 | ||
16 | * MIC2 | ||
17 | * DMICL | ||
18 | * DMICR | ||
19 | * IN1 | ||
20 | * IN2 | ||
21 | * IN3 | ||
22 | * IN4 | ||
23 | * IN5 | ||
24 | * IN6 | ||
25 | * IN12 | ||
26 | * IN34 | ||
27 | * IN56 | ||
28 | * HPL | ||
29 | * HPR | ||
30 | * SPKL | ||
31 | * SPKR | ||
32 | * RCVL | ||
33 | * RCVR | ||
34 | * MICBIAS | ||
35 | |||
36 | Example: | ||
37 | |||
38 | audio-codec@10 { | ||
39 | compatible = "maxim,max98090"; | ||
40 | reg = <0x10>; | ||
41 | interrupt-parent = <&gpio>; | ||
42 | interrupts = <TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>; | ||
43 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt new file mode 100644 index 000000000000..9c7c55c71370 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt | |||
@@ -0,0 +1,51 @@ | |||
1 | NVIDIA Tegra audio complex, with MAX98090 CODEC | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : "nvidia,tegra-audio-max98090" | ||
5 | - clocks : Must contain an entry for each entry in clock-names. | ||
6 | See ../clocks/clock-bindings.txt for details. | ||
7 | - clock-names : Must include the following entries: | ||
8 | - pll_a | ||
9 | - pll_a_out0 | ||
10 | - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | ||
11 | - nvidia,model : The user-visible name of this sound complex. | ||
12 | - nvidia,audio-routing : A list of the connections between audio components. | ||
13 | Each entry is a pair of strings, the first being the connection's sink, | ||
14 | the second being the connection's source. Valid names for sources and | ||
15 | sinks are the MAX98090's pins (as documented in its binding), and the jacks | ||
16 | on the board: | ||
17 | |||
18 | * Headphones | ||
19 | * Speakers | ||
20 | * Mic Jack | ||
21 | |||
22 | - nvidia,i2s-controller : The phandle of the Tegra I2S controller that's | ||
23 | connected to the CODEC. | ||
24 | - nvidia,audio-codec : The phandle of the MAX98090 audio codec. | ||
25 | |||
26 | Optional properties: | ||
27 | - nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in | ||
28 | |||
29 | Example: | ||
30 | |||
31 | sound { | ||
32 | compatible = "nvidia,tegra-audio-max98090-venice2", | ||
33 | "nvidia,tegra-audio-max98090"; | ||
34 | nvidia,model = "NVIDIA Tegra Venice2"; | ||
35 | |||
36 | nvidia,audio-routing = | ||
37 | "Headphones", "HPR", | ||
38 | "Headphones", "HPL", | ||
39 | "Speakers", "SPKR", | ||
40 | "Speakers", "SPKL", | ||
41 | "Mic Jack", "MICBIAS", | ||
42 | "IN34", "Mic Jack"; | ||
43 | |||
44 | nvidia,i2s-controller = <&tegra_i2s1>; | ||
45 | nvidia,audio-codec = <&acodec>; | ||
46 | |||
47 | clocks = <&tegra_car TEGRA124_CLK_PLL_A>, | ||
48 | <&tegra_car TEGRA124_CLK_PLL_A_OUT0>, | ||
49 | <&tegra_car TEGRA124_CLK_EXTERN1>; | ||
50 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
51 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt index 5e6040c2c2e9..9d8ea14db490 100644 --- a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt +++ b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt | |||
@@ -6,6 +6,7 @@ Required properties: | |||
6 | 6 | ||
7 | - compatible - "string" - One of: | 7 | - compatible - "string" - One of: |
8 | "ti,tlv320aic3x" - Generic TLV320AIC3x device | 8 | "ti,tlv320aic3x" - Generic TLV320AIC3x device |
9 | "ti,tlv320aic32x4" - TLV320AIC32x4 | ||
9 | "ti,tlv320aic33" - TLV320AIC33 | 10 | "ti,tlv320aic33" - TLV320AIC33 |
10 | "ti,tlv320aic3007" - TLV320AIC3007 | 11 | "ti,tlv320aic3007" - TLV320AIC3007 |
11 | "ti,tlv320aic3106" - TLV320AIC3106 | 12 | "ti,tlv320aic3106" - TLV320AIC3106 |
diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra20-spi.txt b/Documentation/devicetree/bindings/spi/nvidia,tegra20-spi.txt deleted file mode 100644 index 6b9e51896693..000000000000 --- a/Documentation/devicetree/bindings/spi/nvidia,tegra20-spi.txt +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | NVIDIA Tegra 2 SPI device | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : should be "nvidia,tegra20-spi". | ||
5 | - gpios : should specify GPIOs used for chipselect. | ||
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index ce95ed1c6d3e..edbb8d88c85e 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -32,12 +32,14 @@ est ESTeem Wireless Modems | |||
32 | fsl Freescale Semiconductor | 32 | fsl Freescale Semiconductor |
33 | GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. | 33 | GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. |
34 | gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. | 34 | gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. |
35 | gmt Global Mixed-mode Technology, Inc. | ||
35 | hisilicon Hisilicon Limited. | 36 | hisilicon Hisilicon Limited. |
36 | hp Hewlett Packard | 37 | hp Hewlett Packard |
37 | ibm International Business Machines (IBM) | 38 | ibm International Business Machines (IBM) |
38 | idt Integrated Device Technologies, Inc. | 39 | idt Integrated Device Technologies, Inc. |
39 | img Imagination Technologies Ltd. | 40 | img Imagination Technologies Ltd. |
40 | intercontrol Inter Control Group | 41 | intercontrol Inter Control Group |
42 | lg LG Corporation | ||
41 | linux Linux-specific binding | 43 | linux Linux-specific binding |
42 | lsi LSI Corp. (LSI Logic) | 44 | lsi LSI Corp. (LSI Logic) |
43 | marvell Marvell Technology Group Ltd. | 45 | marvell Marvell Technology Group Ltd. |
diff --git a/Documentation/gpio/00-INDEX b/Documentation/gpio/00-INDEX new file mode 100644 index 000000000000..1de43ae46ae6 --- /dev/null +++ b/Documentation/gpio/00-INDEX | |||
@@ -0,0 +1,14 @@ | |||
1 | 00-INDEX | ||
2 | - This file | ||
3 | gpio.txt | ||
4 | - Introduction to GPIOs and their kernel interfaces | ||
5 | consumer.txt | ||
6 | - How to obtain and use GPIOs in a driver | ||
7 | driver.txt | ||
8 | - How to write a GPIO driver | ||
9 | board.txt | ||
10 | - How to assign GPIOs to a consumer device and a function | ||
11 | sysfs.txt | ||
12 | - Information about the GPIO sysfs interface | ||
13 | gpio-legacy.txt | ||
14 | - Historical documentation of the deprecated GPIO integer interface | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 50680a59a2ff..b9e9bd854298 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -1529,6 +1529,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1529 | 1529 | ||
1530 | * atapi_dmadir: Enable ATAPI DMADIR bridge support | 1530 | * atapi_dmadir: Enable ATAPI DMADIR bridge support |
1531 | 1531 | ||
1532 | * disable: Disable this device. | ||
1533 | |||
1532 | If there are multiple matching configurations changing | 1534 | If there are multiple matching configurations changing |
1533 | the same attribute, the last one is used. | 1535 | the same attribute, the last one is used. |
1534 | 1536 | ||
diff --git a/Documentation/mic/mpssd/mpssd.c b/Documentation/mic/mpssd/mpssd.c index 0c980ad40b17..4d17487d5ad9 100644 --- a/Documentation/mic/mpssd/mpssd.c +++ b/Documentation/mic/mpssd/mpssd.c | |||
@@ -313,7 +313,7 @@ static struct mic_device_desc *get_device_desc(struct mic_info *mic, int type) | |||
313 | int i; | 313 | int i; |
314 | void *dp = get_dp(mic, type); | 314 | void *dp = get_dp(mic, type); |
315 | 315 | ||
316 | for (i = mic_aligned_size(struct mic_bootparam); i < PAGE_SIZE; | 316 | for (i = sizeof(struct mic_bootparam); i < PAGE_SIZE; |
317 | i += mic_total_desc_size(d)) { | 317 | i += mic_total_desc_size(d)) { |
318 | d = dp + i; | 318 | d = dp + i; |
319 | 319 | ||
@@ -445,8 +445,8 @@ init_vr(struct mic_info *mic, int fd, int type, | |||
445 | __func__, mic->name, vr0->va, vr0->info, vr_size, | 445 | __func__, mic->name, vr0->va, vr0->info, vr_size, |
446 | vring_size(MIC_VRING_ENTRIES, MIC_VIRTIO_RING_ALIGN)); | 446 | vring_size(MIC_VRING_ENTRIES, MIC_VIRTIO_RING_ALIGN)); |
447 | mpsslog("magic 0x%x expected 0x%x\n", | 447 | mpsslog("magic 0x%x expected 0x%x\n", |
448 | vr0->info->magic, MIC_MAGIC + type); | 448 | le32toh(vr0->info->magic), MIC_MAGIC + type); |
449 | assert(vr0->info->magic == MIC_MAGIC + type); | 449 | assert(le32toh(vr0->info->magic) == MIC_MAGIC + type); |
450 | if (vr1) { | 450 | if (vr1) { |
451 | vr1->va = (struct mic_vring *) | 451 | vr1->va = (struct mic_vring *) |
452 | &va[MIC_DEVICE_PAGE_END + vr_size]; | 452 | &va[MIC_DEVICE_PAGE_END + vr_size]; |
@@ -458,8 +458,8 @@ init_vr(struct mic_info *mic, int fd, int type, | |||
458 | __func__, mic->name, vr1->va, vr1->info, vr_size, | 458 | __func__, mic->name, vr1->va, vr1->info, vr_size, |
459 | vring_size(MIC_VRING_ENTRIES, MIC_VIRTIO_RING_ALIGN)); | 459 | vring_size(MIC_VRING_ENTRIES, MIC_VIRTIO_RING_ALIGN)); |
460 | mpsslog("magic 0x%x expected 0x%x\n", | 460 | mpsslog("magic 0x%x expected 0x%x\n", |
461 | vr1->info->magic, MIC_MAGIC + type + 1); | 461 | le32toh(vr1->info->magic), MIC_MAGIC + type + 1); |
462 | assert(vr1->info->magic == MIC_MAGIC + type + 1); | 462 | assert(le32toh(vr1->info->magic) == MIC_MAGIC + type + 1); |
463 | } | 463 | } |
464 | done: | 464 | done: |
465 | return va; | 465 | return va; |
@@ -520,7 +520,7 @@ static void * | |||
520 | virtio_net(void *arg) | 520 | virtio_net(void *arg) |
521 | { | 521 | { |
522 | static __u8 vnet_hdr[2][sizeof(struct virtio_net_hdr)]; | 522 | static __u8 vnet_hdr[2][sizeof(struct virtio_net_hdr)]; |
523 | static __u8 vnet_buf[2][MAX_NET_PKT_SIZE] __aligned(64); | 523 | static __u8 vnet_buf[2][MAX_NET_PKT_SIZE] __attribute__ ((aligned(64))); |
524 | struct iovec vnet_iov[2][2] = { | 524 | struct iovec vnet_iov[2][2] = { |
525 | { { .iov_base = vnet_hdr[0], .iov_len = sizeof(vnet_hdr[0]) }, | 525 | { { .iov_base = vnet_hdr[0], .iov_len = sizeof(vnet_hdr[0]) }, |
526 | { .iov_base = vnet_buf[0], .iov_len = sizeof(vnet_buf[0]) } }, | 526 | { .iov_base = vnet_buf[0], .iov_len = sizeof(vnet_buf[0]) } }, |
@@ -1412,6 +1412,12 @@ mic_config(void *arg) | |||
1412 | } | 1412 | } |
1413 | 1413 | ||
1414 | do { | 1414 | do { |
1415 | ret = lseek(fd, 0, SEEK_SET); | ||
1416 | if (ret < 0) { | ||
1417 | mpsslog("%s: Failed to seek to file start '%s': %s\n", | ||
1418 | mic->name, pathname, strerror(errno)); | ||
1419 | goto close_error1; | ||
1420 | } | ||
1415 | ret = read(fd, value, sizeof(value)); | 1421 | ret = read(fd, value, sizeof(value)); |
1416 | if (ret < 0) { | 1422 | if (ret < 0) { |
1417 | mpsslog("%s: Failed to read sysfs entry '%s': %s\n", | 1423 | mpsslog("%s: Failed to read sysfs entry '%s': %s\n", |
diff --git a/Documentation/module-signing.txt b/Documentation/module-signing.txt new file mode 100644 index 000000000000..2b40e04d3c49 --- /dev/null +++ b/Documentation/module-signing.txt | |||
@@ -0,0 +1,240 @@ | |||
1 | ============================== | ||
2 | KERNEL MODULE SIGNING FACILITY | ||
3 | ============================== | ||
4 | |||
5 | CONTENTS | ||
6 | |||
7 | - Overview. | ||
8 | - Configuring module signing. | ||
9 | - Generating signing keys. | ||
10 | - Public keys in the kernel. | ||
11 | - Manually signing modules. | ||
12 | - Signed modules and stripping. | ||
13 | - Loading signed modules. | ||
14 | - Non-valid signatures and unsigned modules. | ||
15 | - Administering/protecting the private key. | ||
16 | |||
17 | |||
18 | ======== | ||
19 | OVERVIEW | ||
20 | ======== | ||
21 | |||
22 | The kernel module signing facility cryptographically signs modules during | ||
23 | installation and then checks the signature upon loading the module. This | ||
24 | allows increased kernel security by disallowing the loading of unsigned modules | ||
25 | or modules signed with an invalid key. Module signing increases security by | ||
26 | making it harder to load a malicious module into the kernel. The module | ||
27 | signature checking is done by the kernel so that it is not necessary to have | ||
28 | trusted userspace bits. | ||
29 | |||
30 | This facility uses X.509 ITU-T standard certificates to encode the public keys | ||
31 | involved. The signatures are not themselves encoded in any industrial standard | ||
32 | type. The facility currently only supports the RSA public key encryption | ||
33 | standard (though it is pluggable and permits others to be used). The possible | ||
34 | hash algorithms that can be used are SHA-1, SHA-224, SHA-256, SHA-384, and | ||
35 | SHA-512 (the algorithm is selected by data in the signature). | ||
36 | |||
37 | |||
38 | ========================== | ||
39 | CONFIGURING MODULE SIGNING | ||
40 | ========================== | ||
41 | |||
42 | The module signing facility is enabled by going to the "Enable Loadable Module | ||
43 | Support" section of the kernel configuration and turning on | ||
44 | |||
45 | CONFIG_MODULE_SIG "Module signature verification" | ||
46 | |||
47 | This has a number of options available: | ||
48 | |||
49 | (1) "Require modules to be validly signed" (CONFIG_MODULE_SIG_FORCE) | ||
50 | |||
51 | This specifies how the kernel should deal with a module that has a | ||
52 | signature for which the key is not known or a module that is unsigned. | ||
53 | |||
54 | If this is off (ie. "permissive"), then modules for which the key is not | ||
55 | available and modules that are unsigned are permitted, but the kernel will | ||
56 | be marked as being tainted. | ||
57 | |||
58 | If this is on (ie. "restrictive"), only modules that have a valid | ||
59 | signature that can be verified by a public key in the kernel's possession | ||
60 | will be loaded. All other modules will generate an error. | ||
61 | |||
62 | Irrespective of the setting here, if the module has a signature block that | ||
63 | cannot be parsed, it will be rejected out of hand. | ||
64 | |||
65 | |||
66 | (2) "Automatically sign all modules" (CONFIG_MODULE_SIG_ALL) | ||
67 | |||
68 | If this is on then modules will be automatically signed during the | ||
69 | modules_install phase of a build. If this is off, then the modules must | ||
70 | be signed manually using: | ||
71 | |||
72 | scripts/sign-file | ||
73 | |||
74 | |||
75 | (3) "Which hash algorithm should modules be signed with?" | ||
76 | |||
77 | This presents a choice of which hash algorithm the installation phase will | ||
78 | sign the modules with: | ||
79 | |||
80 | CONFIG_SIG_SHA1 "Sign modules with SHA-1" | ||
81 | CONFIG_SIG_SHA224 "Sign modules with SHA-224" | ||
82 | CONFIG_SIG_SHA256 "Sign modules with SHA-256" | ||
83 | CONFIG_SIG_SHA384 "Sign modules with SHA-384" | ||
84 | CONFIG_SIG_SHA512 "Sign modules with SHA-512" | ||
85 | |||
86 | The algorithm selected here will also be built into the kernel (rather | ||
87 | than being a module) so that modules signed with that algorithm can have | ||
88 | their signatures checked without causing a dependency loop. | ||
89 | |||
90 | |||
91 | ======================= | ||
92 | GENERATING SIGNING KEYS | ||
93 | ======================= | ||
94 | |||
95 | Cryptographic keypairs are required to generate and check signatures. A | ||
96 | private key is used to generate a signature and the corresponding public key is | ||
97 | used to check it. The private key is only needed during the build, after which | ||
98 | it can be deleted or stored securely. The public key gets built into the | ||
99 | kernel so that it can be used to check the signatures as the modules are | ||
100 | loaded. | ||
101 | |||
102 | Under normal conditions, the kernel build will automatically generate a new | ||
103 | keypair using openssl if one does not exist in the files: | ||
104 | |||
105 | signing_key.priv | ||
106 | signing_key.x509 | ||
107 | |||
108 | during the building of vmlinux (the public part of the key needs to be built | ||
109 | into vmlinux) using parameters in the: | ||
110 | |||
111 | x509.genkey | ||
112 | |||
113 | file (which is also generated if it does not already exist). | ||
114 | |||
115 | It is strongly recommended that you provide your own x509.genkey file. | ||
116 | |||
117 | Most notably, in the x509.genkey file, the req_distinguished_name section | ||
118 | should be altered from the default: | ||
119 | |||
120 | [ req_distinguished_name ] | ||
121 | O = Magrathea | ||
122 | CN = Glacier signing key | ||
123 | emailAddress = slartibartfast@magrathea.h2g2 | ||
124 | |||
125 | The generated RSA key size can also be set with: | ||
126 | |||
127 | [ req ] | ||
128 | default_bits = 4096 | ||
129 | |||
130 | |||
131 | It is also possible to manually generate the key private/public files using the | ||
132 | x509.genkey key generation configuration file in the root node of the Linux | ||
133 | kernel sources tree and the openssl command. The following is an example to | ||
134 | generate the public/private key files: | ||
135 | |||
136 | openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \ | ||
137 | -config x509.genkey -outform DER -out signing_key.x509 \ | ||
138 | -keyout signing_key.priv | ||
139 | |||
140 | |||
141 | ========================= | ||
142 | PUBLIC KEYS IN THE KERNEL | ||
143 | ========================= | ||
144 | |||
145 | The kernel contains a ring of public keys that can be viewed by root. They're | ||
146 | in a keyring called ".system_keyring" that can be seen by: | ||
147 | |||
148 | [root@deneb ~]# cat /proc/keys | ||
149 | ... | ||
150 | 223c7853 I------ 1 perm 1f030000 0 0 keyring .system_keyring: 1 | ||
151 | 302d2d52 I------ 1 perm 1f010000 0 0 asymmetri Fedora kernel signing key: d69a84e6bce3d216b979e9505b3e3ef9a7118079: X509.RSA a7118079 [] | ||
152 | ... | ||
153 | |||
154 | Beyond the public key generated specifically for module signing, any file | ||
155 | placed in the kernel source root directory or the kernel build root directory | ||
156 | whose name is suffixed with ".x509" will be assumed to be an X.509 public key | ||
157 | and will be added to the keyring. | ||
158 | |||
159 | Further, the architecture code may take public keys from a hardware store and | ||
160 | add those in also (e.g. from the UEFI key database). | ||
161 | |||
162 | Finally, it is possible to add additional public keys by doing: | ||
163 | |||
164 | keyctl padd asymmetric "" [.system_keyring-ID] <[key-file] | ||
165 | |||
166 | e.g.: | ||
167 | |||
168 | keyctl padd asymmetric "" 0x223c7853 <my_public_key.x509 | ||
169 | |||
170 | Note, however, that the kernel will only permit keys to be added to | ||
171 | .system_keyring _if_ the new key's X.509 wrapper is validly signed by a key | ||
172 | that is already resident in the .system_keyring at the time the key was added. | ||
173 | |||
174 | |||
175 | ========================= | ||
176 | MANUALLY SIGNING MODULES | ||
177 | ========================= | ||
178 | |||
179 | To manually sign a module, use the scripts/sign-file tool available in | ||
180 | the Linux kernel source tree. The script requires 4 arguments: | ||
181 | |||
182 | 1. The hash algorithm (e.g., sha256) | ||
183 | 2. The private key filename | ||
184 | 3. The public key filename | ||
185 | 4. The kernel module to be signed | ||
186 | |||
187 | The following is an example to sign a kernel module: | ||
188 | |||
189 | scripts/sign-file sha512 kernel-signkey.priv \ | ||
190 | kernel-signkey.x509 module.ko | ||
191 | |||
192 | The hash algorithm used does not have to match the one configured, but if it | ||
193 | doesn't, you should make sure that hash algorithm is either built into the | ||
194 | kernel or can be loaded without requiring itself. | ||
195 | |||
196 | |||
197 | ============================ | ||
198 | SIGNED MODULES AND STRIPPING | ||
199 | ============================ | ||
200 | |||
201 | A signed module has a digital signature simply appended at the end. The string | ||
202 | "~Module signature appended~." at the end of the module's file confirms that a | ||
203 | signature is present but it does not confirm that the signature is valid! | ||
204 | |||
205 | Signed modules are BRITTLE as the signature is outside of the defined ELF | ||
206 | container. Thus they MAY NOT be stripped once the signature is computed and | ||
207 | attached. Note the entire module is the signed payload, including any and all | ||
208 | debug information present at the time of signing. | ||
209 | |||
210 | |||
211 | ====================== | ||
212 | LOADING SIGNED MODULES | ||
213 | ====================== | ||
214 | |||
215 | Modules are loaded with insmod, modprobe, init_module() or finit_module(), | ||
216 | exactly as for unsigned modules as no processing is done in userspace. The | ||
217 | signature checking is all done within the kernel. | ||
218 | |||
219 | |||
220 | ========================================= | ||
221 | NON-VALID SIGNATURES AND UNSIGNED MODULES | ||
222 | ========================================= | ||
223 | |||
224 | If CONFIG_MODULE_SIG_FORCE is enabled or enforcemodulesig=1 is supplied on | ||
225 | the kernel command line, the kernel will only load validly signed modules | ||
226 | for which it has a public key. Otherwise, it will also load modules that are | ||
227 | unsigned. Any module for which the kernel has a key, but which proves to have | ||
228 | a signature mismatch will not be permitted to load. | ||
229 | |||
230 | Any module that has an unparseable signature will be rejected. | ||
231 | |||
232 | |||
233 | ========================================= | ||
234 | ADMINISTERING/PROTECTING THE PRIVATE KEY | ||
235 | ========================================= | ||
236 | |||
237 | Since the private key is used to sign modules, viruses and malware could use | ||
238 | the private key to sign modules and compromise the operating system. The | ||
239 | private key must be either destroyed or moved to a secure location and not kept | ||
240 | in the root node of the kernel source tree. | ||
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index 3c12d9a7ed00..8a984e994e61 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
@@ -16,8 +16,12 @@ ip_default_ttl - INTEGER | |||
16 | Default: 64 (as recommended by RFC1700) | 16 | Default: 64 (as recommended by RFC1700) |
17 | 17 | ||
18 | ip_no_pmtu_disc - BOOLEAN | 18 | ip_no_pmtu_disc - BOOLEAN |
19 | Disable Path MTU Discovery. | 19 | Disable Path MTU Discovery. If enabled and a |
20 | default FALSE | 20 | fragmentation-required ICMP is received, the PMTU to this |
21 | destination will be set to min_pmtu (see below). You will need | ||
22 | to raise min_pmtu to the smallest interface MTU on your system | ||
23 | manually if you want to avoid locally generated fragments. | ||
24 | Default: FALSE | ||
21 | 25 | ||
22 | min_pmtu - INTEGER | 26 | min_pmtu - INTEGER |
23 | default 552 - minimum discovered Path MTU | 27 | default 552 - minimum discovered Path MTU |
diff --git a/Documentation/networking/packet_mmap.txt b/Documentation/networking/packet_mmap.txt index c01223628a87..8e48e3b14227 100644 --- a/Documentation/networking/packet_mmap.txt +++ b/Documentation/networking/packet_mmap.txt | |||
@@ -123,6 +123,16 @@ Transmission process is similar to capture as shown below. | |||
123 | [shutdown] close() --------> destruction of the transmission socket and | 123 | [shutdown] close() --------> destruction of the transmission socket and |
124 | deallocation of all associated resources. | 124 | deallocation of all associated resources. |
125 | 125 | ||
126 | Socket creation and destruction is also straight forward, and is done | ||
127 | the same way as in capturing described in the previous paragraph: | ||
128 | |||
129 | int fd = socket(PF_PACKET, mode, 0); | ||
130 | |||
131 | The protocol can optionally be 0 in case we only want to transmit | ||
132 | via this socket, which avoids an expensive call to packet_rcv(). | ||
133 | In this case, you also need to bind(2) the TX_RING with sll_protocol = 0 | ||
134 | set. Otherwise, htons(ETH_P_ALL) or any other protocol, for example. | ||
135 | |||
126 | Binding the socket to your network interface is mandatory (with zero copy) to | 136 | Binding the socket to your network interface is mandatory (with zero copy) to |
127 | know the header size of frames used in the circular buffer. | 137 | know the header size of frames used in the circular buffer. |
128 | 138 | ||
diff --git a/Documentation/sound/alsa/soc/overview.txt b/Documentation/sound/alsa/soc/overview.txt index 138ac88c1461..ff88f52eec98 100644 --- a/Documentation/sound/alsa/soc/overview.txt +++ b/Documentation/sound/alsa/soc/overview.txt | |||
@@ -49,18 +49,23 @@ features :- | |||
49 | * Machine specific controls: Allow machines to add controls to the sound card | 49 | * Machine specific controls: Allow machines to add controls to the sound card |
50 | (e.g. volume control for speaker amplifier). | 50 | (e.g. volume control for speaker amplifier). |
51 | 51 | ||
52 | To achieve all this, ASoC basically splits an embedded audio system into 3 | 52 | To achieve all this, ASoC basically splits an embedded audio system into |
53 | components :- | 53 | multiple re-usable component drivers :- |
54 | 54 | ||
55 | * Codec driver: The codec driver is platform independent and contains audio | 55 | * Codec class drivers: The codec class driver is platform independent and |
56 | controls, audio interface capabilities, codec DAPM definition and codec IO | 56 | contains audio controls, audio interface capabilities, codec DAPM |
57 | functions. | 57 | definition and codec IO functions. This class extends to BT, FM and MODEM |
58 | ICs if required. Codec class drivers should be generic code that can run | ||
59 | on any architecture and machine. | ||
58 | 60 | ||
59 | * Platform driver: The platform driver contains the audio DMA engine and audio | 61 | * Platform class drivers: The platform class driver includes the audio DMA |
60 | interface drivers (e.g. I2S, AC97, PCM) for that platform. | 62 | engine driver, digital audio interface (DAI) drivers (e.g. I2S, AC97, PCM) |
63 | and any audio DSP drivers for that platform. | ||
61 | 64 | ||
62 | * Machine driver: The machine driver handles any machine specific controls and | 65 | * Machine class driver: The machine driver class acts as the glue that |
63 | audio events (e.g. turning on an amp at start of playback). | 66 | decribes and binds the other component drivers together to form an ALSA |
67 | "sound card device". It handles any machine specific controls and | ||
68 | machine level audio events (e.g. turning on an amp at start of playback). | ||
64 | 69 | ||
65 | 70 | ||
66 | Documentation | 71 | Documentation |
@@ -84,3 +89,7 @@ machine.txt: Machine driver internals. | |||
84 | pop_clicks.txt: How to minimise audio artifacts. | 89 | pop_clicks.txt: How to minimise audio artifacts. |
85 | 90 | ||
86 | clocking.txt: ASoC clocking for best power performance. | 91 | clocking.txt: ASoC clocking for best power performance. |
92 | |||
93 | jack.txt: ASoC jack detection. | ||
94 | |||
95 | DPCM.txt: Dynamic PCM - Describes DPCM with DSP examples. | ||