diff options
Diffstat (limited to 'Documentation')
79 files changed, 2869 insertions, 278 deletions
diff --git a/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus b/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus new file mode 100644 index 00000000000..c2a270b45b0 --- /dev/null +++ b/Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus | |||
@@ -0,0 +1,10 @@ | |||
1 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/startup_profile | ||
2 | Date: October 2010 | ||
3 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
4 | Description: The integer value of this attribute ranges from 0-4. | ||
5 | When read, this attribute returns the number of the actual | ||
6 | profile. This value is persistent, so its equivalent to the | ||
7 | profile that's active when the mouse is powered on next time. | ||
8 | When written, this file sets the number of the startup profile | ||
9 | and the mouse activates this profile immediately. | ||
10 | Please use actual_profile, it does the same thing. | ||
diff --git a/Documentation/ABI/testing/sysfs-block b/Documentation/ABI/testing/sysfs-block index 4873c759d53..c1eb41cb987 100644 --- a/Documentation/ABI/testing/sysfs-block +++ b/Documentation/ABI/testing/sysfs-block | |||
@@ -142,3 +142,67 @@ Description: | |||
142 | with the previous I/O request are enabled. When set to 2, | 142 | with the previous I/O request are enabled. When set to 2, |
143 | all merge tries are disabled. The default value is 0 - | 143 | all merge tries are disabled. The default value is 0 - |
144 | which enables all types of merge tries. | 144 | which enables all types of merge tries. |
145 | |||
146 | What: /sys/block/<disk>/discard_alignment | ||
147 | Date: May 2011 | ||
148 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | ||
149 | Description: | ||
150 | Devices that support discard functionality may | ||
151 | internally allocate space in units that are bigger than | ||
152 | the exported logical block size. The discard_alignment | ||
153 | parameter indicates how many bytes the beginning of the | ||
154 | device is offset from the internal allocation unit's | ||
155 | natural alignment. | ||
156 | |||
157 | What: /sys/block/<disk>/<partition>/discard_alignment | ||
158 | Date: May 2011 | ||
159 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | ||
160 | Description: | ||
161 | Devices that support discard functionality may | ||
162 | internally allocate space in units that are bigger than | ||
163 | the exported logical block size. The discard_alignment | ||
164 | parameter indicates how many bytes the beginning of the | ||
165 | partition is offset from the internal allocation unit's | ||
166 | natural alignment. | ||
167 | |||
168 | What: /sys/block/<disk>/queue/discard_granularity | ||
169 | Date: May 2011 | ||
170 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | ||
171 | Description: | ||
172 | Devices that support discard functionality may | ||
173 | internally allocate space using units that are bigger | ||
174 | than the logical block size. The discard_granularity | ||
175 | parameter indicates the size of the internal allocation | ||
176 | unit in bytes if reported by the device. Otherwise the | ||
177 | discard_granularity will be set to match the device's | ||
178 | physical block size. A discard_granularity of 0 means | ||
179 | that the device does not support discard functionality. | ||
180 | |||
181 | What: /sys/block/<disk>/queue/discard_max_bytes | ||
182 | Date: May 2011 | ||
183 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | ||
184 | Description: | ||
185 | Devices that support discard functionality may have | ||
186 | internal limits on the number of bytes that can be | ||
187 | trimmed or unmapped in a single operation. Some storage | ||
188 | protocols also have inherent limits on the number of | ||
189 | blocks that can be described in a single command. The | ||
190 | discard_max_bytes parameter is set by the device driver | ||
191 | to the maximum number of bytes that can be discarded in | ||
192 | a single operation. Discard requests issued to the | ||
193 | device must not exceed this limit. A discard_max_bytes | ||
194 | value of 0 means that the device does not support | ||
195 | discard functionality. | ||
196 | |||
197 | What: /sys/block/<disk>/queue/discard_zeroes_data | ||
198 | Date: May 2011 | ||
199 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | ||
200 | Description: | ||
201 | Devices that support discard functionality may return | ||
202 | stale or random data when a previously discarded block | ||
203 | is read back. This can cause problems if the filesystem | ||
204 | expects discarded blocks to be explicitly cleared. If a | ||
205 | device reports that it deterministically returns zeroes | ||
206 | when a discarded area is read the discard_zeroes_data | ||
207 | parameter will be set to one. Otherwise it will be 0 and | ||
208 | the result of reading a discarded area is undefined. | ||
diff --git a/Documentation/ABI/testing/sysfs-bus-pci b/Documentation/ABI/testing/sysfs-bus-pci index 36bf454ba85..349ecf26ce1 100644 --- a/Documentation/ABI/testing/sysfs-bus-pci +++ b/Documentation/ABI/testing/sysfs-bus-pci | |||
@@ -74,6 +74,15 @@ Description: | |||
74 | hot-remove the PCI device and any of its children. | 74 | hot-remove the PCI device and any of its children. |
75 | Depends on CONFIG_HOTPLUG. | 75 | Depends on CONFIG_HOTPLUG. |
76 | 76 | ||
77 | What: /sys/bus/pci/devices/.../pci_bus/.../rescan | ||
78 | Date: May 2011 | ||
79 | Contact: Linux PCI developers <linux-pci@vger.kernel.org> | ||
80 | Description: | ||
81 | Writing a non-zero value to this attribute will | ||
82 | force a rescan of the bus and all child buses, | ||
83 | and re-discover devices removed earlier from this | ||
84 | part of the device tree. Depends on CONFIG_HOTPLUG. | ||
85 | |||
77 | What: /sys/bus/pci/devices/.../rescan | 86 | What: /sys/bus/pci/devices/.../rescan |
78 | Date: January 2009 | 87 | Date: January 2009 |
79 | Contact: Linux PCI developers <linux-pci@vger.kernel.org> | 88 | Contact: Linux PCI developers <linux-pci@vger.kernel.org> |
diff --git a/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus b/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus index 326e05452da..c1b53b8bc2a 100644 --- a/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus +++ b/Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus | |||
@@ -1,9 +1,12 @@ | |||
1 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/actual_profile | 1 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/actual_profile |
2 | Date: October 2010 | 2 | Date: October 2010 |
3 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | 3 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> |
4 | Description: When read, this file returns the number of the actual profile in | 4 | Description: The integer value of this attribute ranges from 0-4. |
5 | range 0-4. | 5 | When read, this attribute returns the number of the actual |
6 | This file is readonly. | 6 | profile. This value is persistent, so its equivalent to the |
7 | profile that's active when the mouse is powered on next time. | ||
8 | When written, this file sets the number of the startup profile | ||
9 | and the mouse activates this profile immediately. | ||
7 | Users: http://roccat.sourceforge.net | 10 | Users: http://roccat.sourceforge.net |
8 | 11 | ||
9 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/firmware_version | 12 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/firmware_version |
@@ -89,16 +92,6 @@ Description: The mouse has a tracking- and a distance-control-unit. These | |||
89 | This file is writeonly. | 92 | This file is writeonly. |
90 | Users: http://roccat.sourceforge.net | 93 | Users: http://roccat.sourceforge.net |
91 | 94 | ||
92 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/startup_profile | ||
93 | Date: October 2010 | ||
94 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
95 | Description: The integer value of this attribute ranges from 0-4. | ||
96 | When read, this attribute returns the number of the profile | ||
97 | that's active when the mouse is powered on. | ||
98 | When written, this file sets the number of the startup profile | ||
99 | and the mouse activates this profile immediately. | ||
100 | Users: http://roccat.sourceforge.net | ||
101 | |||
102 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu | 95 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu |
103 | Date: October 2010 | 96 | Date: October 2010 |
104 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | 97 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> |
diff --git a/Documentation/ABI/testing/sysfs-ptp b/Documentation/ABI/testing/sysfs-ptp new file mode 100644 index 00000000000..d40d2b55050 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-ptp | |||
@@ -0,0 +1,98 @@ | |||
1 | What: /sys/class/ptp/ | ||
2 | Date: September 2010 | ||
3 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
4 | Description: | ||
5 | This directory contains files and directories | ||
6 | providing a standardized interface to the ancillary | ||
7 | features of PTP hardware clocks. | ||
8 | |||
9 | What: /sys/class/ptp/ptpN/ | ||
10 | Date: September 2010 | ||
11 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
12 | Description: | ||
13 | This directory contains the attributes of the Nth PTP | ||
14 | hardware clock registered into the PTP class driver | ||
15 | subsystem. | ||
16 | |||
17 | What: /sys/class/ptp/ptpN/clock_name | ||
18 | Date: September 2010 | ||
19 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
20 | Description: | ||
21 | This file contains the name of the PTP hardware clock | ||
22 | as a human readable string. | ||
23 | |||
24 | What: /sys/class/ptp/ptpN/max_adjustment | ||
25 | Date: September 2010 | ||
26 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
27 | Description: | ||
28 | This file contains the PTP hardware clock's maximum | ||
29 | frequency adjustment value (a positive integer) in | ||
30 | parts per billion. | ||
31 | |||
32 | What: /sys/class/ptp/ptpN/n_alarms | ||
33 | Date: September 2010 | ||
34 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
35 | Description: | ||
36 | This file contains the number of periodic or one shot | ||
37 | alarms offer by the PTP hardware clock. | ||
38 | |||
39 | What: /sys/class/ptp/ptpN/n_external_timestamps | ||
40 | Date: September 2010 | ||
41 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
42 | Description: | ||
43 | This file contains the number of external timestamp | ||
44 | channels offered by the PTP hardware clock. | ||
45 | |||
46 | What: /sys/class/ptp/ptpN/n_periodic_outputs | ||
47 | Date: September 2010 | ||
48 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
49 | Description: | ||
50 | This file contains the number of programmable periodic | ||
51 | output channels offered by the PTP hardware clock. | ||
52 | |||
53 | What: /sys/class/ptp/ptpN/pps_avaiable | ||
54 | Date: September 2010 | ||
55 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
56 | Description: | ||
57 | This file indicates whether the PTP hardware clock | ||
58 | supports a Pulse Per Second to the host CPU. Reading | ||
59 | "1" means that the PPS is supported, while "0" means | ||
60 | not supported. | ||
61 | |||
62 | What: /sys/class/ptp/ptpN/extts_enable | ||
63 | Date: September 2010 | ||
64 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
65 | Description: | ||
66 | This write-only file enables or disables external | ||
67 | timestamps. To enable external timestamps, write the | ||
68 | channel index followed by a "1" into the file. | ||
69 | To disable external timestamps, write the channel | ||
70 | index followed by a "0" into the file. | ||
71 | |||
72 | What: /sys/class/ptp/ptpN/fifo | ||
73 | Date: September 2010 | ||
74 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
75 | Description: | ||
76 | This file provides timestamps on external events, in | ||
77 | the form of three integers: channel index, seconds, | ||
78 | and nanoseconds. | ||
79 | |||
80 | What: /sys/class/ptp/ptpN/period | ||
81 | Date: September 2010 | ||
82 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
83 | Description: | ||
84 | This write-only file enables or disables periodic | ||
85 | outputs. To enable a periodic output, write five | ||
86 | integers into the file: channel index, start time | ||
87 | seconds, start time nanoseconds, period seconds, and | ||
88 | period nanoseconds. To disable a periodic output, set | ||
89 | all the seconds and nanoseconds values to zero. | ||
90 | |||
91 | What: /sys/class/ptp/ptpN/pps_enable | ||
92 | Date: September 2010 | ||
93 | Contact: Richard Cochran <richardcochran@gmail.com> | ||
94 | Description: | ||
95 | This write-only file enables or disables delivery of | ||
96 | PPS events to the Linux PPS subsystem. To enable PPS | ||
97 | events, write a "1" into the file. To disable events, | ||
98 | write a "0" into the file. | ||
diff --git a/Documentation/DocBook/.gitignore b/Documentation/DocBook/.gitignore index c6def352fe3..679034cbd68 100644 --- a/Documentation/DocBook/.gitignore +++ b/Documentation/DocBook/.gitignore | |||
@@ -8,3 +8,4 @@ | |||
8 | *.dvi | 8 | *.dvi |
9 | *.log | 9 | *.log |
10 | *.out | 10 | *.out |
11 | media/ | ||
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile index 8436b018c28..3cebfa0d161 100644 --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile | |||
@@ -73,7 +73,7 @@ installmandocs: mandocs | |||
73 | ### | 73 | ### |
74 | #External programs used | 74 | #External programs used |
75 | KERNELDOC = $(srctree)/scripts/kernel-doc | 75 | KERNELDOC = $(srctree)/scripts/kernel-doc |
76 | DOCPROC = $(objtree)/scripts/basic/docproc | 76 | DOCPROC = $(objtree)/scripts/docproc |
77 | 77 | ||
78 | XMLTOFLAGS = -m $(srctree)/Documentation/DocBook/stylesheet.xsl | 78 | XMLTOFLAGS = -m $(srctree)/Documentation/DocBook/stylesheet.xsl |
79 | XMLTOFLAGS += --skip-validation | 79 | XMLTOFLAGS += --skip-validation |
diff --git a/Documentation/DocBook/dvb/dvbapi.xml b/Documentation/DocBook/dvb/dvbapi.xml index ad8678d4891..9fad86ce7f5 100644 --- a/Documentation/DocBook/dvb/dvbapi.xml +++ b/Documentation/DocBook/dvb/dvbapi.xml | |||
@@ -35,6 +35,14 @@ | |||
35 | <revhistory> | 35 | <revhistory> |
36 | <!-- Put document revisions here, newest first. --> | 36 | <!-- Put document revisions here, newest first. --> |
37 | <revision> | 37 | <revision> |
38 | <revnumber>2.0.4</revnumber> | ||
39 | <date>2011-05-06</date> | ||
40 | <authorinitials>mcc</authorinitials> | ||
41 | <revremark> | ||
42 | Add more information about DVB APIv5, better describing the frontend GET/SET props ioctl's. | ||
43 | </revremark> | ||
44 | </revision> | ||
45 | <revision> | ||
38 | <revnumber>2.0.3</revnumber> | 46 | <revnumber>2.0.3</revnumber> |
39 | <date>2010-07-03</date> | 47 | <date>2010-07-03</date> |
40 | <authorinitials>mcc</authorinitials> | 48 | <authorinitials>mcc</authorinitials> |
diff --git a/Documentation/DocBook/dvb/dvbproperty.xml b/Documentation/DocBook/dvb/dvbproperty.xml index 97f397e2fb3..52d5e3c7cf6 100644 --- a/Documentation/DocBook/dvb/dvbproperty.xml +++ b/Documentation/DocBook/dvb/dvbproperty.xml | |||
@@ -1,6 +1,327 @@ | |||
1 | <section id="FE_GET_PROPERTY"> | 1 | <section id="FE_GET_SET_PROPERTY"> |
2 | <title>FE_GET_PROPERTY/FE_SET_PROPERTY</title> | 2 | <title>FE_GET_PROPERTY/FE_SET_PROPERTY</title> |
3 | 3 | ||
4 | <programlisting> | ||
5 | /* Reserved fields should be set to 0 */ | ||
6 | struct dtv_property { | ||
7 | __u32 cmd; | ||
8 | union { | ||
9 | __u32 data; | ||
10 | struct { | ||
11 | __u8 data[32]; | ||
12 | __u32 len; | ||
13 | __u32 reserved1[3]; | ||
14 | void *reserved2; | ||
15 | } buffer; | ||
16 | } u; | ||
17 | int result; | ||
18 | } __attribute__ ((packed)); | ||
19 | |||
20 | /* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ | ||
21 | #define DTV_IOCTL_MAX_MSGS 64 | ||
22 | |||
23 | struct dtv_properties { | ||
24 | __u32 num; | ||
25 | struct dtv_property *props; | ||
26 | }; | ||
27 | </programlisting> | ||
28 | |||
29 | <section id="FE_GET_PROPERTY"> | ||
30 | <title>FE_GET_PROPERTY</title> | ||
31 | <para>DESCRIPTION | ||
32 | </para> | ||
33 | <informaltable><tgroup cols="1"><tbody><row><entry | ||
34 | align="char"> | ||
35 | <para>This ioctl call returns one or more frontend properties. This call only | ||
36 | requires read-only access to the device.</para> | ||
37 | </entry> | ||
38 | </row></tbody></tgroup></informaltable> | ||
39 | <para>SYNOPSIS | ||
40 | </para> | ||
41 | <informaltable><tgroup cols="1"><tbody><row><entry | ||
42 | align="char"> | ||
43 | <para>int ioctl(int fd, int request = <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>, | ||
44 | dtv_properties ⋆props);</para> | ||
45 | </entry> | ||
46 | </row></tbody></tgroup></informaltable> | ||
47 | <para>PARAMETERS | ||
48 | </para> | ||
49 | <informaltable><tgroup cols="2"><tbody><row><entry align="char"> | ||
50 | <para>int fd</para> | ||
51 | </entry><entry | ||
52 | align="char"> | ||
53 | <para>File descriptor returned by a previous call to open().</para> | ||
54 | </entry> | ||
55 | </row><row><entry | ||
56 | align="char"> | ||
57 | <para>int num</para> | ||
58 | </entry><entry | ||
59 | align="char"> | ||
60 | <para>Equals <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link> for this command.</para> | ||
61 | </entry> | ||
62 | </row><row><entry | ||
63 | align="char"> | ||
64 | <para>struct dtv_property *props</para> | ||
65 | </entry><entry | ||
66 | align="char"> | ||
67 | <para>Points to the location where the front-end property commands are stored.</para> | ||
68 | </entry> | ||
69 | </row></tbody></tgroup></informaltable> | ||
70 | <para>ERRORS</para> | ||
71 | <informaltable><tgroup cols="2"><tbody><row> | ||
72 | <entry align="char"><para>EINVAL</para></entry> | ||
73 | <entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry> | ||
74 | </row><row> | ||
75 | <entry align="char"><para>ENOMEM</para></entry> | ||
76 | <entry align="char"><para>Out of memory.</para></entry> | ||
77 | </row><row> | ||
78 | <entry align="char"><para>EFAULT</para></entry> | ||
79 | <entry align="char"><para>Failure while copying data from/to userspace.</para></entry> | ||
80 | </row><row> | ||
81 | <entry align="char"><para>EOPNOTSUPP</para></entry> | ||
82 | <entry align="char"><para>Property type not supported.</para></entry> | ||
83 | </row></tbody></tgroup></informaltable> | ||
84 | </section> | ||
85 | |||
86 | <section id="FE_SET_PROPERTY"> | ||
87 | <title>FE_SET_PROPERTY</title> | ||
88 | <para>DESCRIPTION | ||
89 | </para> | ||
90 | <informaltable><tgroup cols="1"><tbody><row><entry | ||
91 | align="char"> | ||
92 | <para>This ioctl call sets one or more frontend properties. This call only | ||
93 | requires read-only access to the device.</para> | ||
94 | </entry> | ||
95 | </row></tbody></tgroup></informaltable> | ||
96 | <para>SYNOPSIS | ||
97 | </para> | ||
98 | <informaltable><tgroup cols="1"><tbody><row><entry | ||
99 | align="char"> | ||
100 | <para>int ioctl(int fd, int request = <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>, | ||
101 | dtv_properties ⋆props);</para> | ||
102 | </entry> | ||
103 | </row></tbody></tgroup></informaltable> | ||
104 | <para>PARAMETERS | ||
105 | </para> | ||
106 | <informaltable><tgroup cols="2"><tbody><row><entry align="char"> | ||
107 | <para>int fd</para> | ||
108 | </entry><entry | ||
109 | align="char"> | ||
110 | <para>File descriptor returned by a previous call to open().</para> | ||
111 | </entry> | ||
112 | </row><row><entry | ||
113 | align="char"> | ||
114 | <para>int num</para> | ||
115 | </entry><entry | ||
116 | align="char"> | ||
117 | <para>Equals <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link> for this command.</para> | ||
118 | </entry> | ||
119 | </row><row><entry | ||
120 | align="char"> | ||
121 | <para>struct dtv_property *props</para> | ||
122 | </entry><entry | ||
123 | align="char"> | ||
124 | <para>Points to the location where the front-end property commands are stored.</para> | ||
125 | </entry> | ||
126 | </row></tbody></tgroup></informaltable> | ||
127 | <para>ERRORS | ||
128 | </para> | ||
129 | <informaltable><tgroup cols="2"><tbody><row> | ||
130 | <entry align="char"><para>EINVAL</para></entry> | ||
131 | <entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry> | ||
132 | </row><row> | ||
133 | <entry align="char"><para>ENOMEM</para></entry> | ||
134 | <entry align="char"><para>Out of memory.</para></entry> | ||
135 | </row><row> | ||
136 | <entry align="char"><para>EFAULT</para></entry> | ||
137 | <entry align="char"><para>Failure while copying data from/to userspace.</para></entry> | ||
138 | </row><row> | ||
139 | <entry align="char"><para>EOPNOTSUPP</para></entry> | ||
140 | <entry align="char"><para>Property type not supported.</para></entry> | ||
141 | </row></tbody></tgroup></informaltable> | ||
142 | </section> | ||
143 | |||
144 | <para> | ||
145 | On <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>/<link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>, | ||
146 | the actual action is determined by the dtv_property cmd/data pairs. With one single ioctl, is possible to | ||
147 | get/set up to 64 properties. The actual meaning of each property is described on the next sections. | ||
148 | </para> | ||
149 | |||
150 | <para>The Available frontend property types are:</para> | ||
151 | <programlisting> | ||
152 | #define DTV_UNDEFINED 0 | ||
153 | #define DTV_TUNE 1 | ||
154 | #define DTV_CLEAR 2 | ||
155 | #define DTV_FREQUENCY 3 | ||
156 | #define DTV_MODULATION 4 | ||
157 | #define DTV_BANDWIDTH_HZ 5 | ||
158 | #define DTV_INVERSION 6 | ||
159 | #define DTV_DISEQC_MASTER 7 | ||
160 | #define DTV_SYMBOL_RATE 8 | ||
161 | #define DTV_INNER_FEC 9 | ||
162 | #define DTV_VOLTAGE 10 | ||
163 | #define DTV_TONE 11 | ||
164 | #define DTV_PILOT 12 | ||
165 | #define DTV_ROLLOFF 13 | ||
166 | #define DTV_DISEQC_SLAVE_REPLY 14 | ||
167 | #define DTV_FE_CAPABILITY_COUNT 15 | ||
168 | #define DTV_FE_CAPABILITY 16 | ||
169 | #define DTV_DELIVERY_SYSTEM 17 | ||
170 | #define DTV_ISDBT_PARTIAL_RECEPTION 18 | ||
171 | #define DTV_ISDBT_SOUND_BROADCASTING 19 | ||
172 | #define DTV_ISDBT_SB_SUBCHANNEL_ID 20 | ||
173 | #define DTV_ISDBT_SB_SEGMENT_IDX 21 | ||
174 | #define DTV_ISDBT_SB_SEGMENT_COUNT 22 | ||
175 | #define DTV_ISDBT_LAYERA_FEC 23 | ||
176 | #define DTV_ISDBT_LAYERA_MODULATION 24 | ||
177 | #define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25 | ||
178 | #define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26 | ||
179 | #define DTV_ISDBT_LAYERB_FEC 27 | ||
180 | #define DTV_ISDBT_LAYERB_MODULATION 28 | ||
181 | #define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29 | ||
182 | #define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30 | ||
183 | #define DTV_ISDBT_LAYERC_FEC 31 | ||
184 | #define DTV_ISDBT_LAYERC_MODULATION 32 | ||
185 | #define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33 | ||
186 | #define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34 | ||
187 | #define DTV_API_VERSION 35 | ||
188 | #define DTV_CODE_RATE_HP 36 | ||
189 | #define DTV_CODE_RATE_LP 37 | ||
190 | #define DTV_GUARD_INTERVAL 38 | ||
191 | #define DTV_TRANSMISSION_MODE 39 | ||
192 | #define DTV_HIERARCHY 40 | ||
193 | #define DTV_ISDBT_LAYER_ENABLED 41 | ||
194 | #define DTV_ISDBS_TS_ID 42 | ||
195 | </programlisting> | ||
196 | |||
197 | <section id="fe_property_common"> | ||
198 | <title>Parameters that are common to all Digital TV standards</title> | ||
199 | <section id="DTV_FREQUENCY"> | ||
200 | <title><constant>DTV_FREQUENCY</constant></title> | ||
201 | |||
202 | <para>Central frequency of the channel, in HZ.</para> | ||
203 | |||
204 | <para>Notes:</para> | ||
205 | <para>1)For ISDB-T, the channels are usually transmitted with an offset of 143kHz. | ||
206 | E.g. a valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of | ||
207 | the channel which is 6MHz.</para> | ||
208 | |||
209 | <para>2)As in ISDB-Tsb the channel consists of only one or three segments the | ||
210 | frequency step is 429kHz, 3*429 respectively. As for ISDB-T the | ||
211 | central frequency of the channel is expected.</para> | ||
212 | </section> | ||
213 | |||
214 | <section id="DTV_BANDWIDTH_HZ"> | ||
215 | <title><constant>DTV_BANDWIDTH_HZ</constant></title> | ||
216 | |||
217 | <para>Bandwidth for the channel, in HZ.</para> | ||
218 | |||
219 | <para>Possible values: | ||
220 | <constant>1712000</constant>, | ||
221 | <constant>5000000</constant>, | ||
222 | <constant>6000000</constant>, | ||
223 | <constant>7000000</constant>, | ||
224 | <constant>8000000</constant>, | ||
225 | <constant>10000000</constant>. | ||
226 | </para> | ||
227 | |||
228 | <para>Notes:</para> | ||
229 | |||
230 | <para>1) For ISDB-T it should be always 6000000Hz (6MHz)</para> | ||
231 | <para>2) For ISDB-Tsb it can vary depending on the number of connected segments</para> | ||
232 | <para>3) Bandwidth doesn't apply for DVB-C transmissions, as the bandwidth | ||
233 | for DVB-C depends on the symbol rate</para> | ||
234 | <para>4) Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from | ||
235 | other parameters (DTV_ISDBT_SB_SEGMENT_IDX, | ||
236 | DTV_ISDBT_SB_SEGMENT_COUNT).</para> | ||
237 | <para>5) DVB-T supports 6, 7 and 8MHz.</para> | ||
238 | <para>6) In addition, DVB-T2 supports 1.172, 5 and 10MHz.</para> | ||
239 | </section> | ||
240 | |||
241 | <section id="DTV_DELIVERY_SYSTEM"> | ||
242 | <title><constant>DTV_DELIVERY_SYSTEM</constant></title> | ||
243 | |||
244 | <para>Specifies the type of Delivery system</para> | ||
245 | |||
246 | <para>Possible values: </para> | ||
247 | <programlisting> | ||
248 | typedef enum fe_delivery_system { | ||
249 | SYS_UNDEFINED, | ||
250 | SYS_DVBC_ANNEX_AC, | ||
251 | SYS_DVBC_ANNEX_B, | ||
252 | SYS_DVBT, | ||
253 | SYS_DSS, | ||
254 | SYS_DVBS, | ||
255 | SYS_DVBS2, | ||
256 | SYS_DVBH, | ||
257 | SYS_ISDBT, | ||
258 | SYS_ISDBS, | ||
259 | SYS_ISDBC, | ||
260 | SYS_ATSC, | ||
261 | SYS_ATSCMH, | ||
262 | SYS_DMBTH, | ||
263 | SYS_CMMB, | ||
264 | SYS_DAB, | ||
265 | SYS_DVBT2, | ||
266 | } fe_delivery_system_t; | ||
267 | </programlisting> | ||
268 | |||
269 | </section> | ||
270 | |||
271 | <section id="DTV_TRANSMISSION_MODE"> | ||
272 | <title><constant>DTV_TRANSMISSION_MODE</constant></title> | ||
273 | |||
274 | <para>Specifies the number of carriers used by the standard</para> | ||
275 | |||
276 | <para>Possible values are:</para> | ||
277 | <programlisting> | ||
278 | typedef enum fe_transmit_mode { | ||
279 | TRANSMISSION_MODE_2K, | ||
280 | TRANSMISSION_MODE_8K, | ||
281 | TRANSMISSION_MODE_AUTO, | ||
282 | TRANSMISSION_MODE_4K, | ||
283 | TRANSMISSION_MODE_1K, | ||
284 | TRANSMISSION_MODE_16K, | ||
285 | TRANSMISSION_MODE_32K, | ||
286 | } fe_transmit_mode_t; | ||
287 | </programlisting> | ||
288 | |||
289 | <para>Notes:</para> | ||
290 | <para>1) ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called | ||
291 | 'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para> | ||
292 | |||
293 | <para>2) If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the | ||
294 | hardware will try to find the correct FFT-size (if capable) and will | ||
295 | use TMCC to fill in the missing parameters.</para> | ||
296 | <para>3) DVB-T specifies 2K and 8K as valid sizes.</para> | ||
297 | <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para> | ||
298 | </section> | ||
299 | |||
300 | <section id="DTV_GUARD_INTERVAL"> | ||
301 | <title><constant>DTV_GUARD_INTERVAL</constant></title> | ||
302 | |||
303 | <para>Possible values are:</para> | ||
304 | <programlisting> | ||
305 | typedef enum fe_guard_interval { | ||
306 | GUARD_INTERVAL_1_32, | ||
307 | GUARD_INTERVAL_1_16, | ||
308 | GUARD_INTERVAL_1_8, | ||
309 | GUARD_INTERVAL_1_4, | ||
310 | GUARD_INTERVAL_AUTO, | ||
311 | GUARD_INTERVAL_1_128, | ||
312 | GUARD_INTERVAL_19_128, | ||
313 | GUARD_INTERVAL_19_256, | ||
314 | } fe_guard_interval_t; | ||
315 | </programlisting> | ||
316 | |||
317 | <para>Notes:</para> | ||
318 | <para>1) If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will | ||
319 | try to find the correct guard interval (if capable) and will use TMCC to fill | ||
320 | in the missing parameters.</para> | ||
321 | <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para> | ||
322 | </section> | ||
323 | </section> | ||
324 | |||
4 | <section id="isdbt"> | 325 | <section id="isdbt"> |
5 | <title>ISDB-T frontend</title> | 326 | <title>ISDB-T frontend</title> |
6 | <para>This section describes shortly what are the possible parameters in the Linux | 327 | <para>This section describes shortly what are the possible parameters in the Linux |
@@ -32,73 +353,6 @@ | |||
32 | 353 | ||
33 | <para>Parameters used by ISDB-T and ISDB-Tsb.</para> | 354 | <para>Parameters used by ISDB-T and ISDB-Tsb.</para> |
34 | 355 | ||
35 | <section id="isdbt-parms"> | ||
36 | <title>Parameters that are common with DVB-T and ATSC</title> | ||
37 | |||
38 | <section id="isdbt-freq"> | ||
39 | <title><constant>DTV_FREQUENCY</constant></title> | ||
40 | |||
41 | <para>Central frequency of the channel.</para> | ||
42 | |||
43 | <para>For ISDB-T the channels are usually transmitted with an offset of 143kHz. E.g. a | ||
44 | valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of | ||
45 | the channel which is 6MHz.</para> | ||
46 | |||
47 | <para>As in ISDB-Tsb the channel consists of only one or three segments the | ||
48 | frequency step is 429kHz, 3*429 respectively. As for ISDB-T the | ||
49 | central frequency of the channel is expected.</para> | ||
50 | </section> | ||
51 | |||
52 | <section id="isdbt-bw"> | ||
53 | <title><constant>DTV_BANDWIDTH_HZ</constant> (optional)</title> | ||
54 | |||
55 | <para>Possible values:</para> | ||
56 | |||
57 | <para>For ISDB-T it should be always 6000000Hz (6MHz)</para> | ||
58 | <para>For ISDB-Tsb it can vary depending on the number of connected segments</para> | ||
59 | |||
60 | <para>Note: Hardware specific values might be given here, but standard | ||
61 | applications should not bother to set a value to this field as | ||
62 | standard demods are ignoring it anyway.</para> | ||
63 | |||
64 | <para>Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from | ||
65 | other parameters (DTV_ISDBT_SB_SEGMENT_IDX, | ||
66 | DTV_ISDBT_SB_SEGMENT_COUNT).</para> | ||
67 | </section> | ||
68 | |||
69 | <section id="isdbt-delivery-sys"> | ||
70 | <title><constant>DTV_DELIVERY_SYSTEM</constant></title> | ||
71 | |||
72 | <para>Possible values: <constant>SYS_ISDBT</constant></para> | ||
73 | </section> | ||
74 | |||
75 | <section id="isdbt-tx-mode"> | ||
76 | <title><constant>DTV_TRANSMISSION_MODE</constant></title> | ||
77 | |||
78 | <para>ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called | ||
79 | 'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para> | ||
80 | |||
81 | <para>Possible values: <constant>TRANSMISSION_MODE_2K</constant>, <constant>TRANSMISSION_MODE_8K</constant>, | ||
82 | <constant>TRANSMISSION_MODE_AUTO</constant>, <constant>TRANSMISSION_MODE_4K</constant></para> | ||
83 | |||
84 | <para>If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the | ||
85 | hardware will try to find the correct FFT-size (if capable) and will | ||
86 | use TMCC to fill in the missing parameters.</para> | ||
87 | |||
88 | <para><constant>TRANSMISSION_MODE_4K</constant> is added at the same time as the other new parameters.</para> | ||
89 | </section> | ||
90 | |||
91 | <section id="isdbt-guard-interval"> | ||
92 | <title><constant>DTV_GUARD_INTERVAL</constant></title> | ||
93 | |||
94 | <para>Possible values: <constant>GUARD_INTERVAL_1_32</constant>, <constant>GUARD_INTERVAL_1_16</constant>, <constant>GUARD_INTERVAL_1_8</constant>, | ||
95 | <constant>GUARD_INTERVAL_1_4</constant>, <constant>GUARD_INTERVAL_AUTO</constant></para> | ||
96 | |||
97 | <para>If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will | ||
98 | try to find the correct guard interval (if capable) and will use TMCC to fill | ||
99 | in the missing parameters.</para> | ||
100 | </section> | ||
101 | </section> | ||
102 | <section id="isdbt-new-parms"> | 356 | <section id="isdbt-new-parms"> |
103 | <title>ISDB-T only parameters</title> | 357 | <title>ISDB-T only parameters</title> |
104 | 358 | ||
@@ -314,5 +568,20 @@ | |||
314 | </section> | 568 | </section> |
315 | </section> | 569 | </section> |
316 | </section> | 570 | </section> |
571 | <section id="dvbt2-params"> | ||
572 | <title>DVB-T2 parameters</title> | ||
573 | |||
574 | <para>This section covers parameters that apply only to the DVB-T2 delivery method. DVB-T2 | ||
575 | support is currently in the early stages development so expect this section to grow | ||
576 | and become more detailed with time.</para> | ||
577 | |||
578 | <section id="dvbt2-plp-id"> | ||
579 | <title><constant>DTV_DVBT2_PLP_ID</constant></title> | ||
580 | |||
581 | <para>DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of | ||
582 | many data types via a single multiplex. The API will soon support this | ||
583 | at which point this section will be expanded.</para> | ||
584 | </section> | ||
585 | </section> | ||
317 | </section> | 586 | </section> |
318 | </section> | 587 | </section> |
diff --git a/Documentation/DocBook/dvb/frontend.h.xml b/Documentation/DocBook/dvb/frontend.h.xml index d08e0d40141..d792f789ad3 100644 --- a/Documentation/DocBook/dvb/frontend.h.xml +++ b/Documentation/DocBook/dvb/frontend.h.xml | |||
@@ -176,14 +176,20 @@ typedef enum fe_transmit_mode { | |||
176 | TRANSMISSION_MODE_2K, | 176 | TRANSMISSION_MODE_2K, |
177 | TRANSMISSION_MODE_8K, | 177 | TRANSMISSION_MODE_8K, |
178 | TRANSMISSION_MODE_AUTO, | 178 | TRANSMISSION_MODE_AUTO, |
179 | TRANSMISSION_MODE_4K | 179 | TRANSMISSION_MODE_4K, |
180 | TRANSMISSION_MODE_1K, | ||
181 | TRANSMISSION_MODE_16K, | ||
182 | TRANSMISSION_MODE_32K, | ||
180 | } fe_transmit_mode_t; | 183 | } fe_transmit_mode_t; |
181 | 184 | ||
182 | typedef enum fe_bandwidth { | 185 | typedef enum fe_bandwidth { |
183 | BANDWIDTH_8_MHZ, | 186 | BANDWIDTH_8_MHZ, |
184 | BANDWIDTH_7_MHZ, | 187 | BANDWIDTH_7_MHZ, |
185 | BANDWIDTH_6_MHZ, | 188 | BANDWIDTH_6_MHZ, |
186 | BANDWIDTH_AUTO | 189 | BANDWIDTH_AUTO, |
190 | BANDWIDTH_5_MHZ, | ||
191 | BANDWIDTH_10_MHZ, | ||
192 | BANDWIDTH_1_712_MHZ, | ||
187 | } fe_bandwidth_t; | 193 | } fe_bandwidth_t; |
188 | 194 | ||
189 | 195 | ||
@@ -192,7 +198,10 @@ typedef enum fe_guard_interval { | |||
192 | GUARD_INTERVAL_1_16, | 198 | GUARD_INTERVAL_1_16, |
193 | GUARD_INTERVAL_1_8, | 199 | GUARD_INTERVAL_1_8, |
194 | GUARD_INTERVAL_1_4, | 200 | GUARD_INTERVAL_1_4, |
195 | GUARD_INTERVAL_AUTO | 201 | GUARD_INTERVAL_AUTO, |
202 | GUARD_INTERVAL_1_128, | ||
203 | GUARD_INTERVAL_19_128, | ||
204 | GUARD_INTERVAL_19_256, | ||
196 | } fe_guard_interval_t; | 205 | } fe_guard_interval_t; |
197 | 206 | ||
198 | 207 | ||
@@ -306,7 +315,9 @@ struct dvb_frontend_event { | |||
306 | 315 | ||
307 | #define DTV_ISDBS_TS_ID 42 | 316 | #define DTV_ISDBS_TS_ID 42 |
308 | 317 | ||
309 | #define DTV_MAX_COMMAND DTV_ISDBS_TS_ID | 318 | #define DTV_DVBT2_PLP_ID 43 |
319 | |||
320 | #define DTV_MAX_COMMAND DTV_DVBT2_PLP_ID | ||
310 | 321 | ||
311 | typedef enum fe_pilot { | 322 | typedef enum fe_pilot { |
312 | PILOT_ON, | 323 | PILOT_ON, |
@@ -338,6 +349,7 @@ typedef enum fe_delivery_system { | |||
338 | SYS_DMBTH, | 349 | SYS_DMBTH, |
339 | SYS_CMMB, | 350 | SYS_CMMB, |
340 | SYS_DAB, | 351 | SYS_DAB, |
352 | SYS_DVBT2, | ||
341 | } fe_delivery_system_t; | 353 | } fe_delivery_system_t; |
342 | 354 | ||
343 | struct dtv_cmds_h { | 355 | struct dtv_cmds_h { |
diff --git a/Documentation/DocBook/media-entities.tmpl b/Documentation/DocBook/media-entities.tmpl index fea63b45471..c8abb23ef1e 100644 --- a/Documentation/DocBook/media-entities.tmpl +++ b/Documentation/DocBook/media-entities.tmpl | |||
@@ -270,6 +270,7 @@ | |||
270 | <!ENTITY sub-write SYSTEM "v4l/func-write.xml"> | 270 | <!ENTITY sub-write SYSTEM "v4l/func-write.xml"> |
271 | <!ENTITY sub-io SYSTEM "v4l/io.xml"> | 271 | <!ENTITY sub-io SYSTEM "v4l/io.xml"> |
272 | <!ENTITY sub-grey SYSTEM "v4l/pixfmt-grey.xml"> | 272 | <!ENTITY sub-grey SYSTEM "v4l/pixfmt-grey.xml"> |
273 | <!ENTITY sub-m420 SYSTEM "v4l/pixfmt-m420.xml"> | ||
273 | <!ENTITY sub-nv12 SYSTEM "v4l/pixfmt-nv12.xml"> | 274 | <!ENTITY sub-nv12 SYSTEM "v4l/pixfmt-nv12.xml"> |
274 | <!ENTITY sub-nv12m SYSTEM "v4l/pixfmt-nv12m.xml"> | 275 | <!ENTITY sub-nv12m SYSTEM "v4l/pixfmt-nv12m.xml"> |
275 | <!ENTITY sub-nv12mt SYSTEM "v4l/pixfmt-nv12mt.xml"> | 276 | <!ENTITY sub-nv12mt SYSTEM "v4l/pixfmt-nv12mt.xml"> |
@@ -295,6 +296,7 @@ | |||
295 | <!ENTITY sub-srggb8 SYSTEM "v4l/pixfmt-srggb8.xml"> | 296 | <!ENTITY sub-srggb8 SYSTEM "v4l/pixfmt-srggb8.xml"> |
296 | <!ENTITY sub-y10 SYSTEM "v4l/pixfmt-y10.xml"> | 297 | <!ENTITY sub-y10 SYSTEM "v4l/pixfmt-y10.xml"> |
297 | <!ENTITY sub-y12 SYSTEM "v4l/pixfmt-y12.xml"> | 298 | <!ENTITY sub-y12 SYSTEM "v4l/pixfmt-y12.xml"> |
299 | <!ENTITY sub-y10b SYSTEM "v4l/pixfmt-y10b.xml"> | ||
298 | <!ENTITY sub-pixfmt SYSTEM "v4l/pixfmt.xml"> | 300 | <!ENTITY sub-pixfmt SYSTEM "v4l/pixfmt.xml"> |
299 | <!ENTITY sub-cropcap SYSTEM "v4l/vidioc-cropcap.xml"> | 301 | <!ENTITY sub-cropcap SYSTEM "v4l/vidioc-cropcap.xml"> |
300 | <!ENTITY sub-dbg-g-register SYSTEM "v4l/vidioc-dbg-g-register.xml"> | 302 | <!ENTITY sub-dbg-g-register SYSTEM "v4l/vidioc-dbg-g-register.xml"> |
diff --git a/Documentation/DocBook/v4l/pixfmt-m420.xml b/Documentation/DocBook/v4l/pixfmt-m420.xml new file mode 100644 index 00000000000..ce4bc019e5c --- /dev/null +++ b/Documentation/DocBook/v4l/pixfmt-m420.xml | |||
@@ -0,0 +1,147 @@ | |||
1 | <refentry id="V4L2-PIX-FMT-M420"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>V4L2_PIX_FMT_M420 ('M420')</refentrytitle> | ||
4 | &manvol; | ||
5 | </refmeta> | ||
6 | <refnamediv> | ||
7 | <refname><constant>V4L2_PIX_FMT_M420</constant></refname> | ||
8 | <refpurpose>Format with ½ horizontal and vertical chroma | ||
9 | resolution, also known as YUV 4:2:0. Hybrid plane line-interleaved | ||
10 | layout.</refpurpose> | ||
11 | </refnamediv> | ||
12 | <refsect1> | ||
13 | <title>Description</title> | ||
14 | |||
15 | <para>M420 is a YUV format with ½ horizontal and vertical chroma | ||
16 | subsampling (YUV 4:2:0). Pixels are organized as interleaved luma and | ||
17 | chroma planes. Two lines of luma data are followed by one line of chroma | ||
18 | data.</para> | ||
19 | <para>The luma plane has one byte per pixel. The chroma plane contains | ||
20 | interleaved CbCr pixels subsampled by ½ in the horizontal and | ||
21 | vertical directions. Each CbCr pair belongs to four pixels. For example, | ||
22 | Cb<subscript>0</subscript>/Cr<subscript>0</subscript> belongs to | ||
23 | Y'<subscript>00</subscript>, Y'<subscript>01</subscript>, | ||
24 | Y'<subscript>10</subscript>, Y'<subscript>11</subscript>.</para> | ||
25 | |||
26 | <para>All line lengths are identical: if the Y lines include pad bytes | ||
27 | so do the CbCr lines.</para> | ||
28 | |||
29 | <example> | ||
30 | <title><constant>V4L2_PIX_FMT_M420</constant> 4 × 4 | ||
31 | pixel image</title> | ||
32 | |||
33 | <formalpara> | ||
34 | <title>Byte Order.</title> | ||
35 | <para>Each cell is one byte. | ||
36 | <informaltable frame="none"> | ||
37 | <tgroup cols="5" align="center"> | ||
38 | <colspec align="left" colwidth="2*" /> | ||
39 | <tbody valign="top"> | ||
40 | <row> | ||
41 | <entry>start + 0:</entry> | ||
42 | <entry>Y'<subscript>00</subscript></entry> | ||
43 | <entry>Y'<subscript>01</subscript></entry> | ||
44 | <entry>Y'<subscript>02</subscript></entry> | ||
45 | <entry>Y'<subscript>03</subscript></entry> | ||
46 | </row> | ||
47 | <row> | ||
48 | <entry>start + 4:</entry> | ||
49 | <entry>Y'<subscript>10</subscript></entry> | ||
50 | <entry>Y'<subscript>11</subscript></entry> | ||
51 | <entry>Y'<subscript>12</subscript></entry> | ||
52 | <entry>Y'<subscript>13</subscript></entry> | ||
53 | </row> | ||
54 | <row> | ||
55 | <entry>start + 8:</entry> | ||
56 | <entry>Cb<subscript>00</subscript></entry> | ||
57 | <entry>Cr<subscript>00</subscript></entry> | ||
58 | <entry>Cb<subscript>01</subscript></entry> | ||
59 | <entry>Cr<subscript>01</subscript></entry> | ||
60 | </row> | ||
61 | <row> | ||
62 | <entry>start + 16:</entry> | ||
63 | <entry>Y'<subscript>20</subscript></entry> | ||
64 | <entry>Y'<subscript>21</subscript></entry> | ||
65 | <entry>Y'<subscript>22</subscript></entry> | ||
66 | <entry>Y'<subscript>23</subscript></entry> | ||
67 | </row> | ||
68 | <row> | ||
69 | <entry>start + 20:</entry> | ||
70 | <entry>Y'<subscript>30</subscript></entry> | ||
71 | <entry>Y'<subscript>31</subscript></entry> | ||
72 | <entry>Y'<subscript>32</subscript></entry> | ||
73 | <entry>Y'<subscript>33</subscript></entry> | ||
74 | </row> | ||
75 | <row> | ||
76 | <entry>start + 24:</entry> | ||
77 | <entry>Cb<subscript>10</subscript></entry> | ||
78 | <entry>Cr<subscript>10</subscript></entry> | ||
79 | <entry>Cb<subscript>11</subscript></entry> | ||
80 | <entry>Cr<subscript>11</subscript></entry> | ||
81 | </row> | ||
82 | </tbody> | ||
83 | </tgroup> | ||
84 | </informaltable> | ||
85 | </para> | ||
86 | </formalpara> | ||
87 | |||
88 | <formalpara> | ||
89 | <title>Color Sample Location.</title> | ||
90 | <para> | ||
91 | <informaltable frame="none"> | ||
92 | <tgroup cols="7" align="center"> | ||
93 | <tbody valign="top"> | ||
94 | <row> | ||
95 | <entry></entry> | ||
96 | <entry>0</entry><entry></entry><entry>1</entry><entry></entry> | ||
97 | <entry>2</entry><entry></entry><entry>3</entry> | ||
98 | </row> | ||
99 | <row> | ||
100 | <entry>0</entry> | ||
101 | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | ||
102 | <entry>Y</entry><entry></entry><entry>Y</entry> | ||
103 | </row> | ||
104 | <row> | ||
105 | <entry></entry> | ||
106 | <entry></entry><entry>C</entry><entry></entry><entry></entry> | ||
107 | <entry></entry><entry>C</entry><entry></entry> | ||
108 | </row> | ||
109 | <row> | ||
110 | <entry>1</entry> | ||
111 | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | ||
112 | <entry>Y</entry><entry></entry><entry>Y</entry> | ||
113 | </row> | ||
114 | <row> | ||
115 | <entry></entry> | ||
116 | </row> | ||
117 | <row> | ||
118 | <entry>2</entry> | ||
119 | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | ||
120 | <entry>Y</entry><entry></entry><entry>Y</entry> | ||
121 | </row> | ||
122 | <row> | ||
123 | <entry></entry> | ||
124 | <entry></entry><entry>C</entry><entry></entry><entry></entry> | ||
125 | <entry></entry><entry>C</entry><entry></entry> | ||
126 | </row> | ||
127 | <row> | ||
128 | <entry>3</entry> | ||
129 | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | ||
130 | <entry>Y</entry><entry></entry><entry>Y</entry> | ||
131 | </row> | ||
132 | </tbody> | ||
133 | </tgroup> | ||
134 | </informaltable> | ||
135 | </para> | ||
136 | </formalpara> | ||
137 | </example> | ||
138 | </refsect1> | ||
139 | </refentry> | ||
140 | |||
141 | <!-- | ||
142 | Local Variables: | ||
143 | mode: sgml | ||
144 | sgml-parent-document: "pixfmt.sgml" | ||
145 | indent-tabs-mode: nil | ||
146 | End: | ||
147 | --> | ||
diff --git a/Documentation/DocBook/v4l/pixfmt-y10b.xml b/Documentation/DocBook/v4l/pixfmt-y10b.xml new file mode 100644 index 00000000000..adb0ad808c9 --- /dev/null +++ b/Documentation/DocBook/v4l/pixfmt-y10b.xml | |||
@@ -0,0 +1,43 @@ | |||
1 | <refentry id="V4L2-PIX-FMT-Y10BPACK"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>V4L2_PIX_FMT_Y10BPACK ('Y10B')</refentrytitle> | ||
4 | &manvol; | ||
5 | </refmeta> | ||
6 | <refnamediv> | ||
7 | <refname><constant>V4L2_PIX_FMT_Y10BPACK</constant></refname> | ||
8 | <refpurpose>Grey-scale image as a bit-packed array</refpurpose> | ||
9 | </refnamediv> | ||
10 | <refsect1> | ||
11 | <title>Description</title> | ||
12 | |||
13 | <para>This is a packed grey-scale image format with a depth of 10 bits per | ||
14 | pixel. Pixels are stored in a bit-packed array of 10bit bits per pixel, | ||
15 | with no padding between them and with the most significant bits coming | ||
16 | first from the left.</para> | ||
17 | |||
18 | <example> | ||
19 | <title><constant>V4L2_PIX_FMT_Y10BPACK</constant> 4 pixel data stream taking 5 bytes</title> | ||
20 | |||
21 | <formalpara> | ||
22 | <title>Bit-packed representation</title> | ||
23 | <para>pixels cross the byte boundary and have a ratio of 5 bytes for each 4 | ||
24 | pixels. | ||
25 | <informaltable frame="all"> | ||
26 | <tgroup cols="5" align="center"> | ||
27 | <colspec align="left" colwidth="2*" /> | ||
28 | <tbody valign="top"> | ||
29 | <row> | ||
30 | <entry>Y'<subscript>00[9:2]</subscript></entry> | ||
31 | <entry>Y'<subscript>00[1:0]</subscript>Y'<subscript>01[9:4]</subscript></entry> | ||
32 | <entry>Y'<subscript>01[3:0]</subscript>Y'<subscript>02[9:6]</subscript></entry> | ||
33 | <entry>Y'<subscript>02[5:0]</subscript>Y'<subscript>03[9:8]</subscript></entry> | ||
34 | <entry>Y'<subscript>03[7:0]</subscript></entry> | ||
35 | </row> | ||
36 | </tbody> | ||
37 | </tgroup> | ||
38 | </informaltable> | ||
39 | </para> | ||
40 | </formalpara> | ||
41 | </example> | ||
42 | </refsect1> | ||
43 | </refentry> | ||
diff --git a/Documentation/DocBook/v4l/pixfmt.xml b/Documentation/DocBook/v4l/pixfmt.xml index 40af4beb48b..dbfe3b08435 100644 --- a/Documentation/DocBook/v4l/pixfmt.xml +++ b/Documentation/DocBook/v4l/pixfmt.xml | |||
@@ -697,6 +697,7 @@ information.</para> | |||
697 | &sub-grey; | 697 | &sub-grey; |
698 | &sub-y10; | 698 | &sub-y10; |
699 | &sub-y12; | 699 | &sub-y12; |
700 | &sub-y10b; | ||
700 | &sub-y16; | 701 | &sub-y16; |
701 | &sub-yuyv; | 702 | &sub-yuyv; |
702 | &sub-uyvy; | 703 | &sub-uyvy; |
@@ -712,6 +713,7 @@ information.</para> | |||
712 | &sub-nv12m; | 713 | &sub-nv12m; |
713 | &sub-nv12mt; | 714 | &sub-nv12mt; |
714 | &sub-nv16; | 715 | &sub-nv16; |
716 | &sub-m420; | ||
715 | </section> | 717 | </section> |
716 | 718 | ||
717 | <section> | 719 | <section> |
diff --git a/Documentation/DocBook/v4l/subdev-formats.xml b/Documentation/DocBook/v4l/subdev-formats.xml index d7ccd25edcc..a26b10c0785 100644 --- a/Documentation/DocBook/v4l/subdev-formats.xml +++ b/Documentation/DocBook/v4l/subdev-formats.xml | |||
@@ -2522,5 +2522,51 @@ | |||
2522 | </tgroup> | 2522 | </tgroup> |
2523 | </table> | 2523 | </table> |
2524 | </section> | 2524 | </section> |
2525 | |||
2526 | <section> | ||
2527 | <title>JPEG Compressed Formats</title> | ||
2528 | |||
2529 | <para>Those data formats consist of an ordered sequence of 8-bit bytes | ||
2530 | obtained from JPEG compression process. Additionally to the | ||
2531 | <constant>_JPEG</constant> prefix the format code is made of | ||
2532 | the following information. | ||
2533 | <itemizedlist> | ||
2534 | <listitem>The number of bus samples per entropy encoded byte.</listitem> | ||
2535 | <listitem>The bus width.</listitem> | ||
2536 | </itemizedlist> | ||
2537 | |||
2538 | <para>For instance, for a JPEG baseline process and an 8-bit bus width | ||
2539 | the format will be named <constant>V4L2_MBUS_FMT_JPEG_1X8</constant>. | ||
2540 | </para> | ||
2541 | </para> | ||
2542 | |||
2543 | <para>The following table lists existing JPEG compressed formats.</para> | ||
2544 | |||
2545 | <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-jpeg"> | ||
2546 | <title>JPEG Formats</title> | ||
2547 | <tgroup cols="3"> | ||
2548 | <colspec colname="id" align="left" /> | ||
2549 | <colspec colname="code" align="left"/> | ||
2550 | <colspec colname="remarks" align="left"/> | ||
2551 | <thead> | ||
2552 | <row> | ||
2553 | <entry>Identifier</entry> | ||
2554 | <entry>Code</entry> | ||
2555 | <entry>Remarks</entry> | ||
2556 | </row> | ||
2557 | </thead> | ||
2558 | <tbody valign="top"> | ||
2559 | <row id="V4L2-MBUS-FMT-JPEG-1X8"> | ||
2560 | <entry>V4L2_MBUS_FMT_JPEG_1X8</entry> | ||
2561 | <entry>0x4001</entry> | ||
2562 | <entry>Besides of its usage for the parallel bus this format is | ||
2563 | recommended for transmission of JPEG data over MIPI CSI bus | ||
2564 | using the User Defined 8-bit Data types. | ||
2565 | </entry> | ||
2566 | </row> | ||
2567 | </tbody> | ||
2568 | </tgroup> | ||
2569 | </table> | ||
2570 | </section> | ||
2525 | </section> | 2571 | </section> |
2526 | </section> | 2572 | </section> |
diff --git a/Documentation/DocBook/v4l/videodev2.h.xml b/Documentation/DocBook/v4l/videodev2.h.xml index 2b796a2ee98..c50536a4f59 100644 --- a/Documentation/DocBook/v4l/videodev2.h.xml +++ b/Documentation/DocBook/v4l/videodev2.h.xml | |||
@@ -311,6 +311,9 @@ struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> { | |||
311 | #define <link linkend="V4L2-PIX-FMT-Y10">V4L2_PIX_FMT_Y10</link> v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ | 311 | #define <link linkend="V4L2-PIX-FMT-Y10">V4L2_PIX_FMT_Y10</link> v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ |
312 | #define <link linkend="V4L2-PIX-FMT-Y16">V4L2_PIX_FMT_Y16</link> v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ | 312 | #define <link linkend="V4L2-PIX-FMT-Y16">V4L2_PIX_FMT_Y16</link> v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ |
313 | 313 | ||
314 | /* Grey bit-packed formats */ | ||
315 | #define <link linkend="V4L2-PIX-FMT-Y10BPACK">V4L2_PIX_FMT_Y10BPACK</link> v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ | ||
316 | |||
314 | /* Palette formats */ | 317 | /* Palette formats */ |
315 | #define <link linkend="V4L2-PIX-FMT-PAL8">V4L2_PIX_FMT_PAL8</link> v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ | 318 | #define <link linkend="V4L2-PIX-FMT-PAL8">V4L2_PIX_FMT_PAL8</link> v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ |
316 | 319 | ||
@@ -333,6 +336,7 @@ struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> { | |||
333 | #define <link linkend="V4L2-PIX-FMT-YUV420">V4L2_PIX_FMT_YUV420</link> v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ | 336 | #define <link linkend="V4L2-PIX-FMT-YUV420">V4L2_PIX_FMT_YUV420</link> v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ |
334 | #define <link linkend="V4L2-PIX-FMT-HI240">V4L2_PIX_FMT_HI240</link> v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ | 337 | #define <link linkend="V4L2-PIX-FMT-HI240">V4L2_PIX_FMT_HI240</link> v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ |
335 | #define <link linkend="V4L2-PIX-FMT-HM12">V4L2_PIX_FMT_HM12</link> v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ | 338 | #define <link linkend="V4L2-PIX-FMT-HM12">V4L2_PIX_FMT_HM12</link> v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ |
339 | #define <link linkend="V4L2-PIX-FMT-M420">V4L2_PIX_FMT_M420</link> v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */ | ||
336 | 340 | ||
337 | /* two planes -- one Y, one Cr + Cb interleaved */ | 341 | /* two planes -- one Y, one Cr + Cb interleaved */ |
338 | #define <link linkend="V4L2-PIX-FMT-NV12">V4L2_PIX_FMT_NV12</link> v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ | 342 | #define <link linkend="V4L2-PIX-FMT-NV12">V4L2_PIX_FMT_NV12</link> v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ |
diff --git a/Documentation/HOWTO b/Documentation/HOWTO index 365bda9a0d9..81bc1a9ab9d 100644 --- a/Documentation/HOWTO +++ b/Documentation/HOWTO | |||
@@ -209,7 +209,7 @@ tools. One such tool that is particularly recommended is the Linux | |||
209 | Cross-Reference project, which is able to present source code in a | 209 | Cross-Reference project, which is able to present source code in a |
210 | self-referential, indexed webpage format. An excellent up-to-date | 210 | self-referential, indexed webpage format. An excellent up-to-date |
211 | repository of the kernel code may be found at: | 211 | repository of the kernel code may be found at: |
212 | http://users.sosdg.org/~qiyong/lxr/ | 212 | http://lxr.linux.no/+trees |
213 | 213 | ||
214 | 214 | ||
215 | The development process | 215 | The development process |
diff --git a/Documentation/IRQ-affinity.txt b/Documentation/IRQ-affinity.txt index b4a615b7840..7890fae1852 100644 --- a/Documentation/IRQ-affinity.txt +++ b/Documentation/IRQ-affinity.txt | |||
@@ -4,10 +4,11 @@ ChangeLog: | |||
4 | 4 | ||
5 | SMP IRQ affinity | 5 | SMP IRQ affinity |
6 | 6 | ||
7 | /proc/irq/IRQ#/smp_affinity specifies which target CPUs are permitted | 7 | /proc/irq/IRQ#/smp_affinity and /proc/irq/IRQ#/smp_affinity_list specify |
8 | for a given IRQ source. It's a bitmask of allowed CPUs. It's not allowed | 8 | which target CPUs are permitted for a given IRQ source. It's a bitmask |
9 | to turn off all CPUs, and if an IRQ controller does not support IRQ | 9 | (smp_affinity) or cpu list (smp_affinity_list) of allowed CPUs. It's not |
10 | affinity then the value will not change from the default 0xffffffff. | 10 | allowed to turn off all CPUs, and if an IRQ controller does not support |
11 | IRQ affinity then the value will not change from the default of all cpus. | ||
11 | 12 | ||
12 | /proc/irq/default_smp_affinity specifies default affinity mask that applies | 13 | /proc/irq/default_smp_affinity specifies default affinity mask that applies |
13 | to all non-active IRQs. Once IRQ is allocated/activated its affinity bitmask | 14 | to all non-active IRQs. Once IRQ is allocated/activated its affinity bitmask |
@@ -54,3 +55,11 @@ round-trip min/avg/max = 0.1/0.5/585.4 ms | |||
54 | This time around IRQ44 was delivered only to the last four processors. | 55 | This time around IRQ44 was delivered only to the last four processors. |
55 | i.e counters for the CPU0-3 did not change. | 56 | i.e counters for the CPU0-3 did not change. |
56 | 57 | ||
58 | Here is an example of limiting that same irq (44) to cpus 1024 to 1031: | ||
59 | |||
60 | [root@moon 44]# echo 1024-1031 > smp_affinity | ||
61 | [root@moon 44]# cat smp_affinity | ||
62 | 1024-1031 | ||
63 | |||
64 | Note that to do this with a bitmask would require 32 bitmasks of zero | ||
65 | to follow the pertinent one. | ||
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index e439cd0d337..569f3532e13 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches | |||
@@ -714,10 +714,11 @@ Jeff Garzik, "Linux kernel patch submission format". | |||
714 | <http://linux.yyz.us/patch-format.html> | 714 | <http://linux.yyz.us/patch-format.html> |
715 | 715 | ||
716 | Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer". | 716 | Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer". |
717 | <http://www.kroah.com/log/2005/03/31/> | 717 | <http://www.kroah.com/log/linux/maintainer.html> |
718 | <http://www.kroah.com/log/2005/07/08/> | 718 | <http://www.kroah.com/log/linux/maintainer-02.html> |
719 | <http://www.kroah.com/log/2005/10/19/> | 719 | <http://www.kroah.com/log/linux/maintainer-03.html> |
720 | <http://www.kroah.com/log/2006/01/11/> | 720 | <http://www.kroah.com/log/linux/maintainer-04.html> |
721 | <http://www.kroah.com/log/linux/maintainer-05.html> | ||
721 | 722 | ||
722 | NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! | 723 | NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! |
723 | <http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2> | 724 | <http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2> |
diff --git a/Documentation/blockdev/cciss.txt b/Documentation/blockdev/cciss.txt index 89698e8df7d..c00c6a5ab21 100644 --- a/Documentation/blockdev/cciss.txt +++ b/Documentation/blockdev/cciss.txt | |||
@@ -169,3 +169,18 @@ is issued which positions the tape to a known position. Typically you | |||
169 | must rewind the tape (by issuing "mt -f /dev/st0 rewind" for example) | 169 | must rewind the tape (by issuing "mt -f /dev/st0 rewind" for example) |
170 | before i/o can proceed again to a tape drive which was reset. | 170 | before i/o can proceed again to a tape drive which was reset. |
171 | 171 | ||
172 | There is a cciss_tape_cmds module parameter which can be used to make cciss | ||
173 | allocate more commands for use by tape drives. Ordinarily only a few commands | ||
174 | (6) are allocated for tape drives because tape drives are slow and | ||
175 | infrequently used and the primary purpose of Smart Array controllers is to | ||
176 | act as a RAID controller for disk drives, so the vast majority of commands | ||
177 | are allocated for disk devices. However, if you have more than a few tape | ||
178 | drives attached to a smart array, the default number of commands may not be | ||
179 | enought (for example, if you have 8 tape drives, you could only rewind 6 | ||
180 | at one time with the default number of commands.) The cciss_tape_cmds module | ||
181 | parameter allows more commands (up to 16 more) to be allocated for use by | ||
182 | tape drives. For example: | ||
183 | |||
184 | insmod cciss.ko cciss_tape_cmds=16 | ||
185 | |||
186 | Or, as a kernel boot parameter passed in via grub: cciss.cciss_tape_cmds=8 | ||
diff --git a/Documentation/cachetlb.txt b/Documentation/cachetlb.txt index 9164ae3b83b..9b728dc1753 100644 --- a/Documentation/cachetlb.txt +++ b/Documentation/cachetlb.txt | |||
@@ -16,7 +16,7 @@ on all processors in the system. Don't let this scare you into | |||
16 | thinking SMP cache/tlb flushing must be so inefficient, this is in | 16 | thinking SMP cache/tlb flushing must be so inefficient, this is in |
17 | fact an area where many optimizations are possible. For example, | 17 | fact an area where many optimizations are possible. For example, |
18 | if it can be proven that a user address space has never executed | 18 | if it can be proven that a user address space has never executed |
19 | on a cpu (see vma->cpu_vm_mask), one need not perform a flush | 19 | on a cpu (see mm_cpumask()), one need not perform a flush |
20 | for this address space on that cpu. | 20 | for this address space on that cpu. |
21 | 21 | ||
22 | First, the TLB flushing interfaces, since they are the simplest. The | 22 | First, the TLB flushing interfaces, since they are the simplest. The |
diff --git a/Documentation/devicetree/bindings/net/fsl-tsec-phy.txt b/Documentation/devicetree/bindings/net/fsl-tsec-phy.txt index edb7ae19e86..2c6be0377f5 100644 --- a/Documentation/devicetree/bindings/net/fsl-tsec-phy.txt +++ b/Documentation/devicetree/bindings/net/fsl-tsec-phy.txt | |||
@@ -74,3 +74,57 @@ Example: | |||
74 | interrupt-parent = <&mpic>; | 74 | interrupt-parent = <&mpic>; |
75 | phy-handle = <&phy0> | 75 | phy-handle = <&phy0> |
76 | }; | 76 | }; |
77 | |||
78 | * Gianfar PTP clock nodes | ||
79 | |||
80 | General Properties: | ||
81 | |||
82 | - compatible Should be "fsl,etsec-ptp" | ||
83 | - reg Offset and length of the register set for the device | ||
84 | - interrupts There should be at least two interrupts. Some devices | ||
85 | have as many as four PTP related interrupts. | ||
86 | |||
87 | Clock Properties: | ||
88 | |||
89 | - fsl,tclk-period Timer reference clock period in nanoseconds. | ||
90 | - fsl,tmr-prsc Prescaler, divides the output clock. | ||
91 | - fsl,tmr-add Frequency compensation value. | ||
92 | - fsl,tmr-fiper1 Fixed interval period pulse generator. | ||
93 | - fsl,tmr-fiper2 Fixed interval period pulse generator. | ||
94 | - fsl,max-adj Maximum frequency adjustment in parts per billion. | ||
95 | |||
96 | These properties set the operational parameters for the PTP | ||
97 | clock. You must choose these carefully for the clock to work right. | ||
98 | Here is how to figure good values: | ||
99 | |||
100 | TimerOsc = system clock MHz | ||
101 | tclk_period = desired clock period nanoseconds | ||
102 | NominalFreq = 1000 / tclk_period MHz | ||
103 | FreqDivRatio = TimerOsc / NominalFreq (must be greater that 1.0) | ||
104 | tmr_add = ceil(2^32 / FreqDivRatio) | ||
105 | OutputClock = NominalFreq / tmr_prsc MHz | ||
106 | PulseWidth = 1 / OutputClock microseconds | ||
107 | FiperFreq1 = desired frequency in Hz | ||
108 | FiperDiv1 = 1000000 * OutputClock / FiperFreq1 | ||
109 | tmr_fiper1 = tmr_prsc * tclk_period * FiperDiv1 - tclk_period | ||
110 | max_adj = 1000000000 * (FreqDivRatio - 1.0) - 1 | ||
111 | |||
112 | The calculation for tmr_fiper2 is the same as for tmr_fiper1. The | ||
113 | driver expects that tmr_fiper1 will be correctly set to produce a 1 | ||
114 | Pulse Per Second (PPS) signal, since this will be offered to the PPS | ||
115 | subsystem to synchronize the Linux clock. | ||
116 | |||
117 | Example: | ||
118 | |||
119 | ptp_clock@24E00 { | ||
120 | compatible = "fsl,etsec-ptp"; | ||
121 | reg = <0x24E00 0xB0>; | ||
122 | interrupts = <12 0x8 13 0x8>; | ||
123 | interrupt-parent = < &ipic >; | ||
124 | fsl,tclk-period = <10>; | ||
125 | fsl,tmr-prsc = <100>; | ||
126 | fsl,tmr-add = <0x999999A4>; | ||
127 | fsl,tmr-fiper1 = <0x3B9AC9F6>; | ||
128 | fsl,tmr-fiper2 = <0x00018696>; | ||
129 | fsl,max-adj = <659999998>; | ||
130 | }; | ||
diff --git a/Documentation/devicetree/bindings/powerpc/nintendo/wii.txt b/Documentation/devicetree/bindings/powerpc/nintendo/wii.txt index a7e155a023b..36afa322b04 100644 --- a/Documentation/devicetree/bindings/powerpc/nintendo/wii.txt +++ b/Documentation/devicetree/bindings/powerpc/nintendo/wii.txt | |||
@@ -127,7 +127,7 @@ Nintendo Wii device tree | |||
127 | - reg : should contain the SDHCI registers location and length | 127 | - reg : should contain the SDHCI registers location and length |
128 | - interrupts : should contain the SDHCI interrupt | 128 | - interrupts : should contain the SDHCI interrupt |
129 | 129 | ||
130 | 1.j) The Inter-Processsor Communication (IPC) node | 130 | 1.j) The Inter-Processor Communication (IPC) node |
131 | 131 | ||
132 | Represent the Inter-Processor Communication interface. This interface | 132 | Represent the Inter-Processor Communication interface. This interface |
133 | enables communications between the Broadway and the Starlet processors. | 133 | enables communications between the Broadway and the Starlet processors. |
diff --git a/Documentation/dontdiff b/Documentation/dontdiff index 470d3dba1a6..dfa6fc6e4b2 100644 --- a/Documentation/dontdiff +++ b/Documentation/dontdiff | |||
@@ -1,6 +1,8 @@ | |||
1 | *.a | 1 | *.a |
2 | *.aux | 2 | *.aux |
3 | *.bin | 3 | *.bin |
4 | *.bz2 | ||
5 | *.cis | ||
4 | *.cpio | 6 | *.cpio |
5 | *.csp | 7 | *.csp |
6 | *.dsp | 8 | *.dsp |
@@ -8,6 +10,8 @@ | |||
8 | *.elf | 10 | *.elf |
9 | *.eps | 11 | *.eps |
10 | *.fw | 12 | *.fw |
13 | *.gcno | ||
14 | *.gcov | ||
11 | *.gen.S | 15 | *.gen.S |
12 | *.gif | 16 | *.gif |
13 | *.grep | 17 | *.grep |
@@ -19,14 +23,20 @@ | |||
19 | *.ko | 23 | *.ko |
20 | *.log | 24 | *.log |
21 | *.lst | 25 | *.lst |
26 | *.lzma | ||
27 | *.lzo | ||
28 | *.mo | ||
22 | *.moc | 29 | *.moc |
23 | *.mod.c | 30 | *.mod.c |
24 | *.o | 31 | *.o |
25 | *.o.* | 32 | *.o.* |
33 | *.order | ||
26 | *.orig | 34 | *.orig |
27 | *.out | 35 | *.out |
36 | *.patch | ||
28 | 37 | ||
29 | *.png | 38 | *.png |
39 | *.pot | ||
30 | *.ps | 40 | *.ps |
31 | *.rej | 41 | *.rej |
32 | *.s | 42 | *.s |
@@ -39,16 +49,22 @@ | |||
39 | *.tex | 49 | *.tex |
40 | *.ver | 50 | *.ver |
41 | *.xml | 51 | *.xml |
52 | *.xz | ||
42 | *_MODULES | 53 | *_MODULES |
43 | *_vga16.c | 54 | *_vga16.c |
44 | *~ | 55 | *~ |
56 | \#*# | ||
45 | *.9 | 57 | *.9 |
46 | *.9.gz | ||
47 | .* | 58 | .* |
59 | .*.d | ||
48 | .mm | 60 | .mm |
49 | 53c700_d.h | 61 | 53c700_d.h |
50 | CVS | 62 | CVS |
51 | ChangeSet | 63 | ChangeSet |
64 | GPATH | ||
65 | GRTAGS | ||
66 | GSYMS | ||
67 | GTAGS | ||
52 | Image | 68 | Image |
53 | Kerntypes | 69 | Kerntypes |
54 | Module.markers | 70 | Module.markers |
@@ -57,15 +73,14 @@ PENDING | |||
57 | SCCS | 73 | SCCS |
58 | System.map* | 74 | System.map* |
59 | TAGS | 75 | TAGS |
76 | aconf | ||
77 | af_names.h | ||
60 | aic7*reg.h* | 78 | aic7*reg.h* |
61 | aic7*reg_print.c* | 79 | aic7*reg_print.c* |
62 | aic7*seq.h* | 80 | aic7*seq.h* |
63 | aicasm | 81 | aicasm |
64 | aicdb.h* | 82 | aicdb.h* |
65 | altivec1.c | 83 | altivec*.c |
66 | altivec2.c | ||
67 | altivec4.c | ||
68 | altivec8.c | ||
69 | asm-offsets.h | 84 | asm-offsets.h |
70 | asm_offsets.h | 85 | asm_offsets.h |
71 | autoconf.h* | 86 | autoconf.h* |
@@ -80,6 +95,7 @@ btfixupprep | |||
80 | build | 95 | build |
81 | bvmlinux | 96 | bvmlinux |
82 | bzImage* | 97 | bzImage* |
98 | capability_names.h | ||
83 | capflags.c | 99 | capflags.c |
84 | classlist.h* | 100 | classlist.h* |
85 | comp*.log | 101 | comp*.log |
@@ -88,7 +104,8 @@ conf | |||
88 | config | 104 | config |
89 | config-* | 105 | config-* |
90 | config_data.h* | 106 | config_data.h* |
91 | config_data.gz* | 107 | config.mak |
108 | config.mak.autogen | ||
92 | conmakehash | 109 | conmakehash |
93 | consolemap_deftbl.c* | 110 | consolemap_deftbl.c* |
94 | cpustr.h | 111 | cpustr.h |
@@ -96,7 +113,9 @@ crc32table.h* | |||
96 | cscope.* | 113 | cscope.* |
97 | defkeymap.c | 114 | defkeymap.c |
98 | devlist.h* | 115 | devlist.h* |
116 | dnotify_test | ||
99 | docproc | 117 | docproc |
118 | dslm | ||
100 | elf2ecoff | 119 | elf2ecoff |
101 | elfconfig.h* | 120 | elfconfig.h* |
102 | evergreen_reg_safe.h | 121 | evergreen_reg_safe.h |
@@ -105,6 +124,7 @@ flask.h | |||
105 | fore200e_mkfirm | 124 | fore200e_mkfirm |
106 | fore200e_pca_fw.c* | 125 | fore200e_pca_fw.c* |
107 | gconf | 126 | gconf |
127 | gconf.glade.h | ||
108 | gen-devlist | 128 | gen-devlist |
109 | gen_crc32table | 129 | gen_crc32table |
110 | gen_init_cpio | 130 | gen_init_cpio |
@@ -112,11 +132,12 @@ generated | |||
112 | genheaders | 132 | genheaders |
113 | genksyms | 133 | genksyms |
114 | *_gray256.c | 134 | *_gray256.c |
135 | hpet_example | ||
136 | hugepage-mmap | ||
137 | hugepage-shm | ||
115 | ihex2fw | 138 | ihex2fw |
116 | ikconfig.h* | 139 | ikconfig.h* |
117 | inat-tables.c | 140 | inat-tables.c |
118 | initramfs_data.cpio | ||
119 | initramfs_data.cpio.gz | ||
120 | initramfs_list | 141 | initramfs_list |
121 | int16.c | 142 | int16.c |
122 | int1.c | 143 | int1.c |
@@ -133,15 +154,19 @@ kxgettext | |||
133 | lkc_defs.h | 154 | lkc_defs.h |
134 | lex.c | 155 | lex.c |
135 | lex.*.c | 156 | lex.*.c |
157 | linux | ||
136 | logo_*.c | 158 | logo_*.c |
137 | logo_*_clut224.c | 159 | logo_*_clut224.c |
138 | logo_*_mono.c | 160 | logo_*_mono.c |
139 | lxdialog | 161 | lxdialog |
162 | mach | ||
140 | mach-types | 163 | mach-types |
141 | mach-types.h | 164 | mach-types.h |
142 | machtypes.h | 165 | machtypes.h |
143 | map | 166 | map |
167 | map_hugetlb | ||
144 | maui_boot.h | 168 | maui_boot.h |
169 | media | ||
145 | mconf | 170 | mconf |
146 | miboot* | 171 | miboot* |
147 | mk_elfconfig | 172 | mk_elfconfig |
@@ -150,23 +175,29 @@ mkbugboot | |||
150 | mkcpustr | 175 | mkcpustr |
151 | mkdep | 176 | mkdep |
152 | mkprep | 177 | mkprep |
178 | mkregtable | ||
153 | mktables | 179 | mktables |
154 | mktree | 180 | mktree |
155 | modpost | 181 | modpost |
156 | modules.builtin | 182 | modules.builtin |
157 | modules.order | 183 | modules.order |
158 | modversions.h* | 184 | modversions.h* |
185 | nconf | ||
159 | ncscope.* | 186 | ncscope.* |
160 | offset.h | 187 | offset.h |
161 | offsets.h | 188 | offsets.h |
162 | oui.c* | 189 | oui.c* |
190 | page-types | ||
163 | parse.c | 191 | parse.c |
164 | parse.h | 192 | parse.h |
165 | patches* | 193 | patches* |
166 | pca200e.bin | 194 | pca200e.bin |
167 | pca200e_ecd.bin2 | 195 | pca200e_ecd.bin2 |
168 | piggy.gz | 196 | perf.data |
197 | perf.data.old | ||
198 | perf-archive | ||
169 | piggyback | 199 | piggyback |
200 | piggy.gzip | ||
170 | piggy.S | 201 | piggy.S |
171 | pnmtologo | 202 | pnmtologo |
172 | ppc_defs.h* | 203 | ppc_defs.h* |
@@ -177,10 +208,9 @@ r200_reg_safe.h | |||
177 | r300_reg_safe.h | 208 | r300_reg_safe.h |
178 | r420_reg_safe.h | 209 | r420_reg_safe.h |
179 | r600_reg_safe.h | 210 | r600_reg_safe.h |
180 | raid6altivec*.c | 211 | recordmcount |
181 | raid6int*.c | ||
182 | raid6tables.c | ||
183 | relocs | 212 | relocs |
213 | rlim_names.h | ||
184 | rn50_reg_safe.h | 214 | rn50_reg_safe.h |
185 | rs600_reg_safe.h | 215 | rs600_reg_safe.h |
186 | rv515_reg_safe.h | 216 | rv515_reg_safe.h |
@@ -194,6 +224,7 @@ split-include | |||
194 | syscalltab.h | 224 | syscalltab.h |
195 | tables.c | 225 | tables.c |
196 | tags | 226 | tags |
227 | test_get_len | ||
197 | tftpboot.img | 228 | tftpboot.img |
198 | timeconst.h | 229 | timeconst.h |
199 | times.h* | 230 | times.h* |
@@ -210,10 +241,13 @@ vdso32.so.dbg | |||
210 | vdso64.lds | 241 | vdso64.lds |
211 | vdso64.so.dbg | 242 | vdso64.so.dbg |
212 | version.h* | 243 | version.h* |
244 | vmImage | ||
213 | vmlinux | 245 | vmlinux |
214 | vmlinux-* | 246 | vmlinux-* |
215 | vmlinux.aout | 247 | vmlinux.aout |
248 | vmlinux.bin.all | ||
216 | vmlinux.lds | 249 | vmlinux.lds |
250 | vmlinuz | ||
217 | voffset.h | 251 | voffset.h |
218 | vsyscall.lds | 252 | vsyscall.lds |
219 | vsyscall_32.lds | 253 | vsyscall_32.lds |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 4cba260e305..95788ad2506 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -215,7 +215,7 @@ Who: Zhang Rui <rui.zhang@intel.com> | |||
215 | What: CONFIG_ACPI_PROCFS_POWER | 215 | What: CONFIG_ACPI_PROCFS_POWER |
216 | When: 2.6.39 | 216 | When: 2.6.39 |
217 | Why: sysfs I/F for ACPI power devices, including AC and Battery, | 217 | Why: sysfs I/F for ACPI power devices, including AC and Battery, |
218 | has been working in upstream kenrel since 2.6.24, Sep 2007. | 218 | has been working in upstream kernel since 2.6.24, Sep 2007. |
219 | In 2.6.37, we make the sysfs I/F always built in and this option | 219 | In 2.6.37, we make the sysfs I/F always built in and this option |
220 | disabled by default. | 220 | disabled by default. |
221 | Remove this option and the ACPI power procfs interface in 2.6.39. | 221 | Remove this option and the ACPI power procfs interface in 2.6.39. |
@@ -551,3 +551,26 @@ Why: These legacy callbacks should no longer be used as i2c-core offers | |||
551 | Who: Jean Delvare <khali@linux-fr.org> | 551 | Who: Jean Delvare <khali@linux-fr.org> |
552 | 552 | ||
553 | ---------------------------- | 553 | ---------------------------- |
554 | |||
555 | What: Support for UVCIOC_CTRL_ADD in the uvcvideo driver | ||
556 | When: 2.6.42 | ||
557 | Why: The information passed to the driver by this ioctl is now queried | ||
558 | dynamically from the device. | ||
559 | Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
560 | |||
561 | ---------------------------- | ||
562 | |||
563 | What: Support for UVCIOC_CTRL_MAP_OLD in the uvcvideo driver | ||
564 | When: 2.6.42 | ||
565 | Why: Used only by applications compiled against older driver versions. | ||
566 | Superseded by UVCIOC_CTRL_MAP which supports V4L2 menu controls. | ||
567 | Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
568 | |||
569 | ---------------------------- | ||
570 | |||
571 | What: Support for UVCIOC_CTRL_GET and UVCIOC_CTRL_SET in the uvcvideo driver | ||
572 | When: 2.6.42 | ||
573 | Why: Superseded by the UVCIOC_CTRL_QUERY ioctl. | ||
574 | Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
575 | |||
576 | ---------------------------- | ||
diff --git a/Documentation/filesystems/9p.txt b/Documentation/filesystems/9p.txt index b22abba78fe..13de64c7f0a 100644 --- a/Documentation/filesystems/9p.txt +++ b/Documentation/filesystems/9p.txt | |||
@@ -25,6 +25,8 @@ Other applications are described in the following papers: | |||
25 | http://xcpu.org/papers/cellfs-talk.pdf | 25 | http://xcpu.org/papers/cellfs-talk.pdf |
26 | * PROSE I/O: Using 9p to enable Application Partitions | 26 | * PROSE I/O: Using 9p to enable Application Partitions |
27 | http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf | 27 | http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf |
28 | * VirtFS: A Virtualization Aware File System pass-through | ||
29 | http://goo.gl/3WPDg | ||
28 | 30 | ||
29 | USAGE | 31 | USAGE |
30 | ===== | 32 | ===== |
@@ -130,31 +132,20 @@ OPTIONS | |||
130 | RESOURCES | 132 | RESOURCES |
131 | ========= | 133 | ========= |
132 | 134 | ||
133 | Our current recommendation is to use Inferno (http://www.vitanuova.com/nferno/index.html) | 135 | Protocol specifications are maintained on github: |
134 | as the 9p server. You can start a 9p server under Inferno by issuing the | 136 | http://ericvh.github.com/9p-rfc/ |
135 | following command: | ||
136 | ; styxlisten -A tcp!*!564 export '#U*' | ||
137 | 137 | ||
138 | The -A specifies an unauthenticated export. The 564 is the port # (you may | 138 | 9p client and server implementations are listed on |
139 | have to choose a higher port number if running as a normal user). The '#U*' | 139 | http://9p.cat-v.org/implementations |
140 | specifies exporting the root of the Linux name space. You may specify a | ||
141 | subset of the namespace by extending the path: '#U*'/tmp would just export | ||
142 | /tmp. For more information, see the Inferno manual pages covering styxlisten | ||
143 | and export. | ||
144 | 140 | ||
145 | A Linux version of the 9p server is now maintained under the npfs project | 141 | A 9p2000.L server is being developed by LLNL and can be found |
146 | on sourceforge (http://sourceforge.net/projects/npfs). The currently | 142 | at http://code.google.com/p/diod/ |
147 | maintained version is the single-threaded version of the server (named spfs) | ||
148 | available from the same SVN repository. | ||
149 | 143 | ||
150 | There are user and developer mailing lists available through the v9fs project | 144 | There are user and developer mailing lists available through the v9fs project |
151 | on sourceforge (http://sourceforge.net/projects/v9fs). | 145 | on sourceforge (http://sourceforge.net/projects/v9fs). |
152 | 146 | ||
153 | A stand-alone version of the module (which should build for any 2.6 kernel) | 147 | News and other information is maintained on a Wiki. |
154 | is available via (http://github.com/ericvh/9p-sac/tree/master) | 148 | (http://sf.net/apps/mediawiki/v9fs/index.php). |
155 | |||
156 | News and other information is maintained on SWiK (http://swik.net/v9fs) | ||
157 | and the Wiki (http://sf.net/apps/mediawiki/v9fs/index.php). | ||
158 | 149 | ||
159 | Bug reports may be issued through the kernel.org bugzilla | 150 | Bug reports may be issued through the kernel.org bugzilla |
160 | (http://bugzilla.kernel.org) | 151 | (http://bugzilla.kernel.org) |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 60740e8ecb3..f4817802406 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -574,6 +574,12 @@ The contents of each smp_affinity file is the same by default: | |||
574 | > cat /proc/irq/0/smp_affinity | 574 | > cat /proc/irq/0/smp_affinity |
575 | ffffffff | 575 | ffffffff |
576 | 576 | ||
577 | There is an alternate interface, smp_affinity_list which allows specifying | ||
578 | a cpu range instead of a bitmask: | ||
579 | |||
580 | > cat /proc/irq/0/smp_affinity_list | ||
581 | 1024-1031 | ||
582 | |||
577 | The default_smp_affinity mask applies to all non-active IRQs, which are the | 583 | The default_smp_affinity mask applies to all non-active IRQs, which are the |
578 | IRQs which have not yet been allocated/activated, and hence which lack a | 584 | IRQs which have not yet been allocated/activated, and hence which lack a |
579 | /proc/irq/[0-9]* directory. | 585 | /proc/irq/[0-9]* directory. |
@@ -583,12 +589,13 @@ reports itself as being attached. This hardware locality information does not | |||
583 | include information about any possible driver locality preference. | 589 | include information about any possible driver locality preference. |
584 | 590 | ||
585 | prof_cpu_mask specifies which CPUs are to be profiled by the system wide | 591 | prof_cpu_mask specifies which CPUs are to be profiled by the system wide |
586 | profiler. Default value is ffffffff (all cpus). | 592 | profiler. Default value is ffffffff (all cpus if there are only 32 of them). |
587 | 593 | ||
588 | The way IRQs are routed is handled by the IO-APIC, and it's Round Robin | 594 | The way IRQs are routed is handled by the IO-APIC, and it's Round Robin |
589 | between all the CPUs which are allowed to handle it. As usual the kernel has | 595 | between all the CPUs which are allowed to handle it. As usual the kernel has |
590 | more info than you and does a better job than you, so the defaults are the | 596 | more info than you and does a better job than you, so the defaults are the |
591 | best choice for almost everyone. | 597 | best choice for almost everyone. [Note this applies only to those IO-APIC's |
598 | that support "Round Robin" interrupt distribution.] | ||
592 | 599 | ||
593 | There are three more important subdirectories in /proc: net, scsi, and sys. | 600 | There are three more important subdirectories in /proc: net, scsi, and sys. |
594 | The general rule is that the contents, or even the existence of these | 601 | The general rule is that the contents, or even the existence of these |
diff --git a/Documentation/filesystems/ubifs.txt b/Documentation/filesystems/ubifs.txt index d7b13b01e98..8e4fab639d9 100644 --- a/Documentation/filesystems/ubifs.txt +++ b/Documentation/filesystems/ubifs.txt | |||
@@ -115,28 +115,8 @@ ubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs | |||
115 | Module Parameters for Debugging | 115 | Module Parameters for Debugging |
116 | =============================== | 116 | =============================== |
117 | 117 | ||
118 | When UBIFS has been compiled with debugging enabled, there are 3 module | 118 | When UBIFS has been compiled with debugging enabled, there are 2 module |
119 | parameters that are available to control aspects of testing and debugging. | 119 | parameters that are available to control aspects of testing and debugging. |
120 | The parameters are unsigned integers where each bit controls an option. | ||
121 | The parameters are: | ||
122 | |||
123 | debug_msgs Selects which debug messages to display, as follows: | ||
124 | |||
125 | Message Type Flag value | ||
126 | |||
127 | General messages 1 | ||
128 | Journal messages 2 | ||
129 | Mount messages 4 | ||
130 | Commit messages 8 | ||
131 | LEB search messages 16 | ||
132 | Budgeting messages 32 | ||
133 | Garbage collection messages 64 | ||
134 | Tree Node Cache (TNC) messages 128 | ||
135 | LEB properties (lprops) messages 256 | ||
136 | Input/output messages 512 | ||
137 | Log messages 1024 | ||
138 | Scan messages 2048 | ||
139 | Recovery messages 4096 | ||
140 | 120 | ||
141 | debug_chks Selects extra checks that UBIFS can do while running: | 121 | debug_chks Selects extra checks that UBIFS can do while running: |
142 | 122 | ||
@@ -154,11 +134,9 @@ debug_tsts Selects a mode of testing, as follows: | |||
154 | 134 | ||
155 | Test mode Flag value | 135 | Test mode Flag value |
156 | 136 | ||
157 | Force in-the-gaps method 2 | ||
158 | Failure mode for recovery testing 4 | 137 | Failure mode for recovery testing 4 |
159 | 138 | ||
160 | For example, set debug_msgs to 5 to display General messages and Mount | 139 | For example, set debug_chks to 3 to enable general and TNC checks. |
161 | messages. | ||
162 | 140 | ||
163 | 141 | ||
164 | References | 142 | References |
diff --git a/Documentation/usb/hiddev.txt b/Documentation/hid/hiddev.txt index 6e8c9f1d2f2..6e8c9f1d2f2 100644 --- a/Documentation/usb/hiddev.txt +++ b/Documentation/hid/hiddev.txt | |||
diff --git a/Documentation/hid/hidraw.txt b/Documentation/hid/hidraw.txt new file mode 100644 index 00000000000..029e6cb9a7e --- /dev/null +++ b/Documentation/hid/hidraw.txt | |||
@@ -0,0 +1,119 @@ | |||
1 | HIDRAW - Raw Access to USB and Bluetooth Human Interface Devices | ||
2 | ================================================================== | ||
3 | |||
4 | The hidraw driver provides a raw interface to USB and Bluetooth Human | ||
5 | Interface Devices (HIDs). It differs from hiddev in that reports sent and | ||
6 | received are not parsed by the HID parser, but are sent to and received from | ||
7 | the device unmodified. | ||
8 | |||
9 | Hidraw should be used if the userspace application knows exactly how to | ||
10 | communicate with the hardware device, and is able to construct the HID | ||
11 | reports manually. This is often the case when making userspace drivers for | ||
12 | custom HID devices. | ||
13 | |||
14 | Hidraw is also useful for communicating with non-conformant HID devices | ||
15 | which send and receive data in a way that is inconsistent with their report | ||
16 | descriptors. Because hiddev parses reports which are sent and received | ||
17 | through it, checking them against the device's report descriptor, such | ||
18 | communication with these non-conformant devices is impossible using hiddev. | ||
19 | Hidraw is the only alternative, short of writing a custom kernel driver, for | ||
20 | these non-conformant devices. | ||
21 | |||
22 | A benefit of hidraw is that its use by userspace applications is independent | ||
23 | of the underlying hardware type. Currently, Hidraw is implemented for USB | ||
24 | and Bluetooth. In the future, as new hardware bus types are developed which | ||
25 | use the HID specification, hidraw will be expanded to add support for these | ||
26 | new bus types. | ||
27 | |||
28 | Hidraw uses a dynamic major number, meaning that udev should be relied on to | ||
29 | create hidraw device nodes. Udev will typically create the device nodes | ||
30 | directly under /dev (eg: /dev/hidraw0). As this location is distribution- | ||
31 | and udev rule-dependent, applications should use libudev to locate hidraw | ||
32 | devices attached to the system. There is a tutorial on libudev with a | ||
33 | working example at: | ||
34 | http://www.signal11.us/oss/udev/ | ||
35 | |||
36 | The HIDRAW API | ||
37 | --------------- | ||
38 | |||
39 | read() | ||
40 | ------- | ||
41 | read() will read a queued report received from the HID device. On USB | ||
42 | devices, the reports read using read() are the reports sent from the device | ||
43 | on the INTERRUPT IN endpoint. By default, read() will block until there is | ||
44 | a report available to be read. read() can be made non-blocking, by passing | ||
45 | the O_NONBLOCK flag to open(), or by setting the O_NONBLOCK flag using | ||
46 | fcntl(). | ||
47 | |||
48 | On a device which uses numbered reports, the first byte of the returned data | ||
49 | will be the report number; the report data follows, beginning in the second | ||
50 | byte. For devices which do not use numbered reports, the report data | ||
51 | will begin at the first byte. | ||
52 | |||
53 | write() | ||
54 | -------- | ||
55 | The write() function will write a report to the device. For USB devices, if | ||
56 | the device has an INTERRUPT OUT endpoint, the report will be sent on that | ||
57 | endpoint. If it does not, the report will be sent over the control endpoint, | ||
58 | using a SET_REPORT transfer. | ||
59 | |||
60 | The first byte of the buffer passed to write() should be set to the report | ||
61 | number. If the device does not use numbered reports, the first byte should | ||
62 | be set to 0. The report data itself should begin at the second byte. | ||
63 | |||
64 | ioctl() | ||
65 | -------- | ||
66 | Hidraw supports the following ioctls: | ||
67 | |||
68 | HIDIOCGRDESCSIZE: Get Report Descriptor Size | ||
69 | This ioctl will get the size of the device's report descriptor. | ||
70 | |||
71 | HIDIOCGRDESC: Get Report Descriptor | ||
72 | This ioctl returns the device's report descriptor using a | ||
73 | hidraw_report_descriptor struct. Make sure to set the size field of the | ||
74 | hidraw_report_descriptor struct to the size returned from HIDIOCGRDESCSIZE. | ||
75 | |||
76 | HIDIOCGRAWINFO: Get Raw Info | ||
77 | This ioctl will return a hidraw_devinfo struct containing the bus type, the | ||
78 | vendor ID (VID), and product ID (PID) of the device. The bus type can be one | ||
79 | of: | ||
80 | BUS_USB | ||
81 | BUS_HIL | ||
82 | BUS_BLUETOOTH | ||
83 | BUS_VIRTUAL | ||
84 | which are defined in linux/input.h. | ||
85 | |||
86 | HIDIOCGRAWNAME(len): Get Raw Name | ||
87 | This ioctl returns a string containing the vendor and product strings of | ||
88 | the device. The returned string is Unicode, UTF-8 encoded. | ||
89 | |||
90 | HIDIOCGRAWPHYS(len): Get Physical Address | ||
91 | This ioctl returns a string representing the physical address of the device. | ||
92 | For USB devices, the string contains the physical path to the device (the | ||
93 | USB controller, hubs, ports, etc). For Bluetooth devices, the string | ||
94 | contains the hardware (MAC) address of the device. | ||
95 | |||
96 | HIDIOCSFEATURE(len): Send a Feature Report | ||
97 | This ioctl will send a feature report to the device. Per the HID | ||
98 | specification, feature reports are always sent using the control endpoint. | ||
99 | Set the first byte of the supplied buffer to the report number. For devices | ||
100 | which do not use numbered reports, set the first byte to 0. The report data | ||
101 | begins in the second byte. Make sure to set len accordingly, to one more | ||
102 | than the length of the report (to account for the report number). | ||
103 | |||
104 | HIDIOCGFEATURE(len): Get a Feature Report | ||
105 | This ioctl will request a feature report from the device using the control | ||
106 | endpoint. The first byte of the supplied buffer should be set to the report | ||
107 | number of the requested report. For devices which do not use numbered | ||
108 | reports, set the first byte to 0. The report will be returned starting at | ||
109 | the first byte of the buffer (ie: the report number is not returned). | ||
110 | |||
111 | Example | ||
112 | --------- | ||
113 | In samples/, find hid-example.c, which shows examples of read(), write(), | ||
114 | and all the ioctls for hidraw. The code may be used by anyone for any | ||
115 | purpose, and can serve as a starting point for developing applications using | ||
116 | hidraw. | ||
117 | |||
118 | Document by: | ||
119 | Alan Ott <alan@signal11.us>, Signal 11 Software | ||
diff --git a/Documentation/hwmon/adm1275 b/Documentation/hwmon/adm1275 new file mode 100644 index 00000000000..6a3a6476cf2 --- /dev/null +++ b/Documentation/hwmon/adm1275 | |||
@@ -0,0 +1,60 @@ | |||
1 | Kernel driver adm1275 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Analog Devices ADM1275 | ||
6 | Prefix: 'adm1275' | ||
7 | Addresses scanned: - | ||
8 | Datasheet: www.analog.com/static/imported-files/data_sheets/ADM1275.pdf | ||
9 | |||
10 | Author: Guenter Roeck <guenter.roeck@ericsson.com> | ||
11 | |||
12 | |||
13 | Description | ||
14 | ----------- | ||
15 | |||
16 | This driver supports hardware montoring for Analog Devices ADM1275 Hot-Swap | ||
17 | Controller and Digital Power Monitor. | ||
18 | |||
19 | The ADM1275 is a hot-swap controller that allows a circuit board to be removed | ||
20 | from or inserted into a live backplane. It also features current and voltage | ||
21 | readback via an integrated 12-bit analog-to-digital converter (ADC), accessed | ||
22 | using a PMBus. interface. | ||
23 | |||
24 | The driver is a client driver to the core PMBus driver. Please see | ||
25 | Documentation/hwmon/pmbus for details on PMBus client drivers. | ||
26 | |||
27 | |||
28 | Usage Notes | ||
29 | ----------- | ||
30 | |||
31 | This driver does not auto-detect devices. You will have to instantiate the | ||
32 | devices explicitly. Please see Documentation/i2c/instantiating-devices for | ||
33 | details. | ||
34 | |||
35 | |||
36 | Platform data support | ||
37 | --------------------- | ||
38 | |||
39 | The driver supports standard PMBus driver platform data. Please see | ||
40 | Documentation/hwmon/pmbus for details. | ||
41 | |||
42 | |||
43 | Sysfs entries | ||
44 | ------------- | ||
45 | |||
46 | The following attributes are supported. Limits are read-write; all other | ||
47 | attributes are read-only. | ||
48 | |||
49 | in1_label "vin1" or "vout1" depending on chip variant and | ||
50 | configuration. | ||
51 | in1_input Measured voltage. From READ_VOUT register. | ||
52 | in1_min Minumum Voltage. From VOUT_UV_WARN_LIMIT register. | ||
53 | in1_max Maximum voltage. From VOUT_OV_WARN_LIMIT register. | ||
54 | in1_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status. | ||
55 | in1_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status. | ||
56 | |||
57 | curr1_label "iout1" | ||
58 | curr1_input Measured current. From READ_IOUT register. | ||
59 | curr1_max Maximum current. From IOUT_OC_WARN_LIMIT register. | ||
60 | curr1_max_alarm Current high alarm. From IOUT_OC_WARN_LIMIT register. | ||
diff --git a/Documentation/hwmon/coretemp b/Documentation/hwmon/coretemp index 25568f84480..f85e913a340 100644 --- a/Documentation/hwmon/coretemp +++ b/Documentation/hwmon/coretemp | |||
@@ -15,8 +15,13 @@ Author: Rudolf Marek | |||
15 | 15 | ||
16 | Description | 16 | Description |
17 | ----------- | 17 | ----------- |
18 | This driver permits reading the DTS (Digital Temperature Sensor) embedded | ||
19 | inside Intel CPUs. This driver can read both the per-core and per-package | ||
20 | temperature using the appropriate sensors. The per-package sensor is new; | ||
21 | as of now, it is present only in the SandyBridge platform. The driver will | ||
22 | show the temperature of all cores inside a package under a single device | ||
23 | directory inside hwmon. | ||
18 | 24 | ||
19 | This driver permits reading temperature sensor embedded inside Intel Core CPU. | ||
20 | Temperature is measured in degrees Celsius and measurement resolution is | 25 | Temperature is measured in degrees Celsius and measurement resolution is |
21 | 1 degree C. Valid temperatures are from 0 to TjMax degrees C, because | 26 | 1 degree C. Valid temperatures are from 0 to TjMax degrees C, because |
22 | the actual value of temperature register is in fact a delta from TjMax. | 27 | the actual value of temperature register is in fact a delta from TjMax. |
@@ -27,13 +32,15 @@ mechanism will perform actions to forcibly cool down the processor. Alarm | |||
27 | may be raised, if the temperature grows enough (more than TjMax) to trigger | 32 | may be raised, if the temperature grows enough (more than TjMax) to trigger |
28 | the Out-Of-Spec bit. Following table summarizes the exported sysfs files: | 33 | the Out-Of-Spec bit. Following table summarizes the exported sysfs files: |
29 | 34 | ||
30 | temp1_input - Core temperature (in millidegrees Celsius). | 35 | All Sysfs entries are named with their core_id (represented here by 'X'). |
31 | temp1_max - All cooling devices should be turned on (on Core2). | 36 | tempX_input - Core temperature (in millidegrees Celsius). |
32 | temp1_crit - Maximum junction temperature (in millidegrees Celsius). | 37 | tempX_max - All cooling devices should be turned on (on Core2). |
33 | temp1_crit_alarm - Set when Out-of-spec bit is set, never clears. | 38 | tempX_crit - Maximum junction temperature (in millidegrees Celsius). |
39 | tempX_crit_alarm - Set when Out-of-spec bit is set, never clears. | ||
34 | Correct CPU operation is no longer guaranteed. | 40 | Correct CPU operation is no longer guaranteed. |
35 | temp1_label - Contains string "Core X", where X is processor | 41 | tempX_label - Contains string "Core X", where X is processor |
36 | number. | 42 | number. For Package temp, this will be "Physical id Y", |
43 | where Y is the package number. | ||
37 | 44 | ||
38 | The TjMax temperature is set to 85 degrees C if undocumented model specific | 45 | The TjMax temperature is set to 85 degrees C if undocumented model specific |
39 | register (UMSR) 0xee has bit 30 set. If not the TjMax is 100 degrees C as | 46 | register (UMSR) 0xee has bit 30 set. If not the TjMax is 100 degrees C as |
diff --git a/Documentation/hwmon/emc6w201 b/Documentation/hwmon/emc6w201 new file mode 100644 index 00000000000..32f355aaf56 --- /dev/null +++ b/Documentation/hwmon/emc6w201 | |||
@@ -0,0 +1,42 @@ | |||
1 | Kernel driver emc6w201 | ||
2 | ====================== | ||
3 | |||
4 | Supported chips: | ||
5 | * SMSC EMC6W201 | ||
6 | Prefix: 'emc6w201' | ||
7 | Addresses scanned: I2C 0x2c, 0x2d, 0x2e | ||
8 | Datasheet: Not public | ||
9 | |||
10 | Author: Jean Delvare <khali@linux-fr.org> | ||
11 | |||
12 | |||
13 | Description | ||
14 | ----------- | ||
15 | |||
16 | From the datasheet: | ||
17 | |||
18 | "The EMC6W201 is an environmental monitoring device with automatic fan | ||
19 | control capability and enhanced system acoustics for noise suppression. | ||
20 | This ACPI compliant device provides hardware monitoring for up to six | ||
21 | voltages (including its own VCC) and five external thermal sensors, | ||
22 | measures the speed of up to five fans, and controls the speed of | ||
23 | multiple DC fans using three Pulse Width Modulator (PWM) outputs. Note | ||
24 | that it is possible to control more than three fans by connecting two | ||
25 | fans to one PWM output. The EMC6W201 will be available in a 36-pin | ||
26 | QFN package." | ||
27 | |||
28 | The device is functionally close to the EMC6D100 series, but is | ||
29 | register-incompatible. | ||
30 | |||
31 | The driver currently only supports the monitoring of the voltages, | ||
32 | temperatures and fan speeds. Limits can be changed. Alarms are not | ||
33 | supported, and neither is fan speed control. | ||
34 | |||
35 | |||
36 | Known Systems With EMC6W201 | ||
37 | --------------------------- | ||
38 | |||
39 | The EMC6W201 is a rare device, only found on a few systems, made in | ||
40 | 2005 and 2006. Known systems with this device: | ||
41 | * Dell Precision 670 workstation | ||
42 | * Gigabyte 2CEWH mainboard | ||
diff --git a/Documentation/hwmon/f71882fg b/Documentation/hwmon/f71882fg index df02245d141..84d2623810f 100644 --- a/Documentation/hwmon/f71882fg +++ b/Documentation/hwmon/f71882fg | |||
@@ -6,6 +6,10 @@ Supported chips: | |||
6 | Prefix: 'f71808e' | 6 | Prefix: 'f71808e' |
7 | Addresses scanned: none, address read from Super I/O config space | 7 | Addresses scanned: none, address read from Super I/O config space |
8 | Datasheet: Not public | 8 | Datasheet: Not public |
9 | * Fintek F71808A | ||
10 | Prefix: 'f71808a' | ||
11 | Addresses scanned: none, address read from Super I/O config space | ||
12 | Datasheet: Not public | ||
9 | * Fintek F71858FG | 13 | * Fintek F71858FG |
10 | Prefix: 'f71858fg' | 14 | Prefix: 'f71858fg' |
11 | Addresses scanned: none, address read from Super I/O config space | 15 | Addresses scanned: none, address read from Super I/O config space |
diff --git a/Documentation/hwmon/fam15h_power b/Documentation/hwmon/fam15h_power new file mode 100644 index 00000000000..a92918e0bd6 --- /dev/null +++ b/Documentation/hwmon/fam15h_power | |||
@@ -0,0 +1,37 @@ | |||
1 | Kernel driver fam15h_power | ||
2 | ========================== | ||
3 | |||
4 | Supported chips: | ||
5 | * AMD Family 15h Processors | ||
6 | |||
7 | Prefix: 'fam15h_power' | ||
8 | Addresses scanned: PCI space | ||
9 | Datasheets: | ||
10 | BIOS and Kernel Developer's Guide (BKDG) For AMD Family 15h Processors | ||
11 | (not yet published) | ||
12 | |||
13 | Author: Andreas Herrmann <andreas.herrmann3@amd.com> | ||
14 | |||
15 | Description | ||
16 | ----------- | ||
17 | |||
18 | This driver permits reading of registers providing power information | ||
19 | of AMD Family 15h processors. | ||
20 | |||
21 | For AMD Family 15h processors the following power values can be | ||
22 | calculated using different processor northbridge function registers: | ||
23 | |||
24 | * BasePwrWatts: Specifies in watts the maximum amount of power | ||
25 | consumed by the processor for NB and logic external to the core. | ||
26 | * ProcessorPwrWatts: Specifies in watts the maximum amount of power | ||
27 | the processor can support. | ||
28 | * CurrPwrWatts: Specifies in watts the current amount of power being | ||
29 | consumed by the processor. | ||
30 | |||
31 | This driver provides ProcessorPwrWatts and CurrPwrWatts: | ||
32 | * power1_crit (ProcessorPwrWatts) | ||
33 | * power1_input (CurrPwrWatts) | ||
34 | |||
35 | On multi-node processors the calculated value is for the entire | ||
36 | package and not for a single node. Thus the driver creates sysfs | ||
37 | attributes only for internal node0 of a multi-node processor. | ||
diff --git a/Documentation/hwmon/k10temp b/Documentation/hwmon/k10temp index d2b56a4fd1f..0393c89277c 100644 --- a/Documentation/hwmon/k10temp +++ b/Documentation/hwmon/k10temp | |||
@@ -11,6 +11,7 @@ Supported chips: | |||
11 | Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra) | 11 | Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra) |
12 | * AMD Family 12h processors: "Llano" | 12 | * AMD Family 12h processors: "Llano" |
13 | * AMD Family 14h processors: "Brazos" (C/E/G-Series) | 13 | * AMD Family 14h processors: "Brazos" (C/E/G-Series) |
14 | * AMD Family 15h processors: "Bulldozer" | ||
14 | 15 | ||
15 | Prefix: 'k10temp' | 16 | Prefix: 'k10temp' |
16 | Addresses scanned: PCI space | 17 | Addresses scanned: PCI space |
@@ -40,7 +41,7 @@ Description | |||
40 | ----------- | 41 | ----------- |
41 | 42 | ||
42 | This driver permits reading of the internal temperature sensor of AMD | 43 | This driver permits reading of the internal temperature sensor of AMD |
43 | Family 10h/11h/12h/14h processors. | 44 | Family 10h/11h/12h/14h/15h processors. |
44 | 45 | ||
45 | All these processors have a sensor, but on those for Socket F or AM2+, | 46 | All these processors have a sensor, but on those for Socket F or AM2+, |
46 | the sensor may return inconsistent values (erratum 319). The driver | 47 | the sensor may return inconsistent values (erratum 319). The driver |
diff --git a/Documentation/hwmon/max16065 b/Documentation/hwmon/max16065 new file mode 100644 index 00000000000..44b4f61e04f --- /dev/null +++ b/Documentation/hwmon/max16065 | |||
@@ -0,0 +1,98 @@ | |||
1 | Kernel driver max16065 | ||
2 | ====================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Maxim MAX16065, MAX16066 | ||
6 | Prefixes: 'max16065', 'max16066' | ||
7 | Addresses scanned: - | ||
8 | Datasheet: | ||
9 | http://datasheets.maxim-ic.com/en/ds/MAX16065-MAX16066.pdf | ||
10 | * Maxim MAX16067 | ||
11 | Prefix: 'max16067' | ||
12 | Addresses scanned: - | ||
13 | Datasheet: | ||
14 | http://datasheets.maxim-ic.com/en/ds/MAX16067.pdf | ||
15 | * Maxim MAX16068 | ||
16 | Prefix: 'max16068' | ||
17 | Addresses scanned: - | ||
18 | Datasheet: | ||
19 | http://datasheets.maxim-ic.com/en/ds/MAX16068.pdf | ||
20 | * Maxim MAX16070/MAX16071 | ||
21 | Prefixes: 'max16070', 'max16071' | ||
22 | Addresses scanned: - | ||
23 | Datasheet: | ||
24 | http://datasheets.maxim-ic.com/en/ds/MAX16070-MAX16071.pdf | ||
25 | |||
26 | |||
27 | Author: Guenter Roeck <guenter.roeck@ericsson.com> | ||
28 | |||
29 | |||
30 | Description | ||
31 | ----------- | ||
32 | |||
33 | [From datasheets] The MAX16065/MAX16066 flash-configurable system managers | ||
34 | monitor and sequence multiple system voltages. The MAX16065/MAX16066 can also | ||
35 | accurately monitor (+/-2.5%) one current channel using a dedicated high-side | ||
36 | current-sense amplifier. The MAX16065 manages up to twelve system voltages | ||
37 | simultaneously, and the MAX16066 manages up to eight supply voltages. | ||
38 | |||
39 | The MAX16067 flash-configurable system manager monitors and sequences multiple | ||
40 | system voltages. The MAX16067 manages up to six system voltages simultaneously. | ||
41 | |||
42 | The MAX16068 flash-configurable system manager monitors and manages up to six | ||
43 | system voltages simultaneously. | ||
44 | |||
45 | The MAX16070/MAX16071 flash-configurable system monitors supervise multiple | ||
46 | system voltages. The MAX16070/MAX16071 can also accurately monitor (+/-2.5%) | ||
47 | one current channel using a dedicated high-side current-sense amplifier. The | ||
48 | MAX16070 monitors up to twelve system voltages simultaneously, and the MAX16071 | ||
49 | monitors up to eight supply voltages. | ||
50 | |||
51 | Each monitored channel has its own low and high critical limits. MAX16065, | ||
52 | MAX16066, MAX16070, and MAX16071 support an additional limit which is | ||
53 | configurable as either low or high secondary limit. MAX16065, MAX16066, | ||
54 | MAX16070, and MAX16071 also support supply current monitoring. | ||
55 | |||
56 | |||
57 | Usage Notes | ||
58 | ----------- | ||
59 | |||
60 | This driver does not probe for devices, since there is no register which | ||
61 | can be safely used to identify the chip. You will have to instantiate | ||
62 | the devices explicitly. Please see Documentation/i2c/instantiating-devices for | ||
63 | details. | ||
64 | |||
65 | |||
66 | Sysfs entries | ||
67 | ------------- | ||
68 | |||
69 | in[0-11]_input Input voltage measurements. | ||
70 | |||
71 | in12_input Voltage on CSP (Current Sense Positive) pin. | ||
72 | Only if the chip supports current sensing and if | ||
73 | current sensing is enabled. | ||
74 | |||
75 | in[0-11]_min Low warning limit. | ||
76 | Supported on MAX16065, MAX16066, MAX16070, and MAX16071 | ||
77 | only. | ||
78 | |||
79 | in[0-11]_max High warning limit. | ||
80 | Supported on MAX16065, MAX16066, MAX16070, and MAX16071 | ||
81 | only. | ||
82 | |||
83 | Either low or high warning limits are supported | ||
84 | (depending on chip configuration), but not both. | ||
85 | |||
86 | in[0-11]_lcrit Low critical limit. | ||
87 | |||
88 | in[0-11]_crit High critical limit. | ||
89 | |||
90 | in[0-11]_alarm Input voltage alarm. | ||
91 | |||
92 | curr1_input Current sense input; only if the chip supports current | ||
93 | sensing and if current sensing is enabled. | ||
94 | Displayed current assumes 0.001 Ohm current sense | ||
95 | resistor. | ||
96 | |||
97 | curr1_alarm Overcurrent alarm; only if the chip supports current | ||
98 | sensing and if current sensing is enabled. | ||
diff --git a/Documentation/hwmon/max6642 b/Documentation/hwmon/max6642 new file mode 100644 index 00000000000..afbd3e4942e --- /dev/null +++ b/Documentation/hwmon/max6642 | |||
@@ -0,0 +1,21 @@ | |||
1 | Kernel driver max6642 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Maxim MAX6642 | ||
6 | Prefix: 'max6642' | ||
7 | Addresses scanned: I2C 0x48-0x4f | ||
8 | Datasheet: Publicly available at the Maxim website | ||
9 | http://datasheets.maxim-ic.com/en/ds/MAX6642.pdf | ||
10 | |||
11 | Authors: | ||
12 | Per Dalen <per.dalen@appeartv.com> | ||
13 | |||
14 | Description | ||
15 | ----------- | ||
16 | |||
17 | The MAX6642 is a digital temperature sensor. It senses its own temperature as | ||
18 | well as the temperature on one external diode. | ||
19 | |||
20 | All temperature values are given in degrees Celsius. Resolution | ||
21 | is 0.25 degree for the local temperature and for the remote temperature. | ||
diff --git a/Documentation/hwmon/max6650 b/Documentation/hwmon/max6650 index c565650fcfc..58d9644a2bd 100644 --- a/Documentation/hwmon/max6650 +++ b/Documentation/hwmon/max6650 | |||
@@ -2,9 +2,13 @@ Kernel driver max6650 | |||
2 | ===================== | 2 | ===================== |
3 | 3 | ||
4 | Supported chips: | 4 | Supported chips: |
5 | * Maxim 6650 / 6651 | 5 | * Maxim MAX6650 |
6 | Prefix: 'max6650' | 6 | Prefix: 'max6650' |
7 | Addresses scanned: I2C 0x1b, 0x1f, 0x48, 0x4b | 7 | Addresses scanned: none |
8 | Datasheet: http://pdfserv.maxim-ic.com/en/ds/MAX6650-MAX6651.pdf | ||
9 | * Maxim MAX6651 | ||
10 | Prefix: 'max6651' | ||
11 | Addresses scanned: none | ||
8 | Datasheet: http://pdfserv.maxim-ic.com/en/ds/MAX6650-MAX6651.pdf | 12 | Datasheet: http://pdfserv.maxim-ic.com/en/ds/MAX6650-MAX6651.pdf |
9 | 13 | ||
10 | Authors: | 14 | Authors: |
@@ -15,10 +19,10 @@ Authors: | |||
15 | Description | 19 | Description |
16 | ----------- | 20 | ----------- |
17 | 21 | ||
18 | This driver implements support for the Maxim 6650/6651 | 22 | This driver implements support for the Maxim MAX6650 and MAX6651. |
19 | 23 | ||
20 | The 2 devices are very similar, but the Maxim 6550 has a reduced feature | 24 | The 2 devices are very similar, but the MAX6550 has a reduced feature |
21 | set, e.g. only one fan-input, instead of 4 for the 6651. | 25 | set, e.g. only one fan-input, instead of 4 for the MAX6651. |
22 | 26 | ||
23 | The driver is not able to distinguish between the 2 devices. | 27 | The driver is not able to distinguish between the 2 devices. |
24 | 28 | ||
@@ -36,6 +40,13 @@ fan1_div rw sets the speed range the inputs can handle. Legal | |||
36 | values are 1, 2, 4, and 8. Use lower values for | 40 | values are 1, 2, 4, and 8. Use lower values for |
37 | faster fans. | 41 | faster fans. |
38 | 42 | ||
43 | Usage notes | ||
44 | ----------- | ||
45 | |||
46 | This driver does not auto-detect devices. You will have to instantiate the | ||
47 | devices explicitly. Please see Documentation/i2c/instantiating-devices for | ||
48 | details. | ||
49 | |||
39 | Module parameters | 50 | Module parameters |
40 | ----------------- | 51 | ----------------- |
41 | 52 | ||
diff --git a/Documentation/hwmon/pkgtemp b/Documentation/hwmon/pkgtemp deleted file mode 100644 index c8e1fb0fadd..00000000000 --- a/Documentation/hwmon/pkgtemp +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | Kernel driver pkgtemp | ||
2 | ====================== | ||
3 | |||
4 | Supported chips: | ||
5 | * Intel family | ||
6 | Prefix: 'pkgtemp' | ||
7 | CPUID: | ||
8 | Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual | ||
9 | Volume 3A: System Programming Guide | ||
10 | |||
11 | Author: Fenghua Yu | ||
12 | |||
13 | Description | ||
14 | ----------- | ||
15 | |||
16 | This driver permits reading package level temperature sensor embedded inside | ||
17 | Intel CPU package. The sensors can be in core, uncore, memory controller, or | ||
18 | other components in a package. The feature is first implemented in Intel Sandy | ||
19 | Bridge platform. | ||
20 | |||
21 | Temperature is measured in degrees Celsius and measurement resolution is | ||
22 | 1 degree C. Valid temperatures are from 0 to TjMax degrees C, because the actual | ||
23 | value of temperature register is in fact a delta from TjMax. | ||
24 | |||
25 | Temperature known as TjMax is the maximum junction temperature of package. | ||
26 | We get this from MSR_IA32_TEMPERATURE_TARGET. If the MSR is not accessible, | ||
27 | we define TjMax as 100 degrees Celsius. At this temperature, protection | ||
28 | mechanism will perform actions to forcibly cool down the package. Alarm | ||
29 | may be raised, if the temperature grows enough (more than TjMax) to trigger | ||
30 | the Out-Of-Spec bit. Following table summarizes the exported sysfs files: | ||
31 | |||
32 | temp1_input - Package temperature (in millidegrees Celsius). | ||
33 | temp1_max - All cooling devices should be turned on. | ||
34 | temp1_crit - Maximum junction temperature (in millidegrees Celsius). | ||
35 | temp1_crit_alarm - Set when Out-of-spec bit is set, never clears. | ||
36 | Correct CPU operation is no longer guaranteed. | ||
diff --git a/Documentation/hwmon/sht15 b/Documentation/hwmon/sht15 new file mode 100644 index 00000000000..02850bdfac1 --- /dev/null +++ b/Documentation/hwmon/sht15 | |||
@@ -0,0 +1,74 @@ | |||
1 | Kernel driver sht15 | ||
2 | =================== | ||
3 | |||
4 | Authors: | ||
5 | * Wouter Horre | ||
6 | * Jonathan Cameron | ||
7 | * Vivien Didelot <vivien.didelot@savoirfairelinux.com> | ||
8 | * Jerome Oufella <jerome.oufella@savoirfairelinux.com> | ||
9 | |||
10 | Supported chips: | ||
11 | * Sensirion SHT10 | ||
12 | Prefix: 'sht10' | ||
13 | |||
14 | * Sensirion SHT11 | ||
15 | Prefix: 'sht11' | ||
16 | |||
17 | * Sensirion SHT15 | ||
18 | Prefix: 'sht15' | ||
19 | |||
20 | * Sensirion SHT71 | ||
21 | Prefix: 'sht71' | ||
22 | |||
23 | * Sensirion SHT75 | ||
24 | Prefix: 'sht75' | ||
25 | |||
26 | Datasheet: Publicly available at the Sensirion website | ||
27 | http://www.sensirion.ch/en/pdf/product_information/Datasheet-humidity-sensor-SHT1x.pdf | ||
28 | |||
29 | Description | ||
30 | ----------- | ||
31 | |||
32 | The SHT10, SHT11, SHT15, SHT71, and SHT75 are humidity and temperature | ||
33 | sensors. | ||
34 | |||
35 | The devices communicate using two GPIO lines. | ||
36 | |||
37 | Supported resolutions for the measurements are 14 bits for temperature and 12 | ||
38 | bits for humidity, or 12 bits for temperature and 8 bits for humidity. | ||
39 | |||
40 | The humidity calibration coefficients are programmed into an OTP memory on the | ||
41 | chip. These coefficients are used to internally calibrate the signals from the | ||
42 | sensors. Disabling the reload of those coefficients allows saving 10ms for each | ||
43 | measurement and decrease power consumption, while loosing on precision. | ||
44 | |||
45 | Some options may be set directly in the sht15_platform_data structure | ||
46 | or via sysfs attributes. | ||
47 | |||
48 | Notes: | ||
49 | * The regulator supply name is set to "vcc". | ||
50 | * If a CRC validation fails, a soft reset command is sent, which resets | ||
51 | status register to its hardware default value, but the driver will try to | ||
52 | restore the previous device configuration. | ||
53 | |||
54 | Platform data | ||
55 | ------------- | ||
56 | |||
57 | * checksum: | ||
58 | set it to true to enable CRC validation of the readings (default to false). | ||
59 | * no_otp_reload: | ||
60 | flag to indicate not to reload from OTP (default to false). | ||
61 | * low_resolution: | ||
62 | flag to indicate the temp/humidity resolution to use (default to false). | ||
63 | |||
64 | Sysfs interface | ||
65 | --------------- | ||
66 | |||
67 | * temp1_input: temperature input | ||
68 | * humidity1_input: humidity input | ||
69 | * heater_enable: write 1 in this attribute to enable the on-chip heater, | ||
70 | 0 to disable it. Be careful not to enable the heater | ||
71 | for too long. | ||
72 | * temp1_fault: if 1, this means that the voltage is low (below 2.47V) and | ||
73 | measurement may be invalid. | ||
74 | * humidity1_fault: same as temp1_fault. | ||
diff --git a/Documentation/hwmon/ucd9000 b/Documentation/hwmon/ucd9000 new file mode 100644 index 00000000000..40ca6db50c4 --- /dev/null +++ b/Documentation/hwmon/ucd9000 | |||
@@ -0,0 +1,110 @@ | |||
1 | Kernel driver ucd9000 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * TI UCD90120, UCD90124, UCD9090, and UCD90910 | ||
6 | Prefixes: 'ucd90120', 'ucd90124', 'ucd9090', 'ucd90910' | ||
7 | Addresses scanned: - | ||
8 | Datasheets: | ||
9 | http://focus.ti.com/lit/ds/symlink/ucd90120.pdf | ||
10 | http://focus.ti.com/lit/ds/symlink/ucd90124.pdf | ||
11 | http://focus.ti.com/lit/ds/symlink/ucd9090.pdf | ||
12 | http://focus.ti.com/lit/ds/symlink/ucd90910.pdf | ||
13 | |||
14 | Author: Guenter Roeck <guenter.roeck@ericsson.com> | ||
15 | |||
16 | |||
17 | Description | ||
18 | ----------- | ||
19 | |||
20 | From datasheets: | ||
21 | |||
22 | The UCD90120 Power Supply Sequencer and System Health Monitor monitors and | ||
23 | sequences up to 12 independent voltage rails. The device integrates a 12-bit | ||
24 | ADC with a 2.5V internal reference for monitoring up to 13 power supply voltage, | ||
25 | current, or temperature inputs. | ||
26 | |||
27 | The UCD90124 is a 12-rail PMBus/I2C addressable power-supply sequencer and | ||
28 | system-health monitor. The device integrates a 12-bit ADC for monitoring up to | ||
29 | 13 power-supply voltage, current, or temperature inputs. Twenty-six GPIO pins | ||
30 | can be used for power supply enables, power-on reset signals, external | ||
31 | interrupts, cascading, or other system functions. Twelve of these pins offer PWM | ||
32 | functionality. Using these pins, the UCD90124 offers support for fan control, | ||
33 | margining, and general-purpose PWM functions. | ||
34 | |||
35 | The UCD9090 is a 10-rail PMBus/I2C addressable power-supply sequencer and | ||
36 | monitor. The device integrates a 12-bit ADC for monitoring up to 10 power-supply | ||
37 | voltage inputs. Twenty-three GPIO pins can be used for power supply enables, | ||
38 | power-on reset signals, external interrupts, cascading, or other system | ||
39 | functions. Ten of these pins offer PWM functionality. Using these pins, the | ||
40 | UCD9090 offers support for margining, and general-purpose PWM functions. | ||
41 | |||
42 | The UCD90910 is a ten-rail I2C / PMBus addressable power-supply sequencer and | ||
43 | system-health monitor. The device integrates a 12-bit ADC for monitoring up to | ||
44 | 13 power-supply voltage, current, or temperature inputs. | ||
45 | |||
46 | This driver is a client driver to the core PMBus driver. Please see | ||
47 | Documentation/hwmon/pmbus for details on PMBus client drivers. | ||
48 | |||
49 | |||
50 | Usage Notes | ||
51 | ----------- | ||
52 | |||
53 | This driver does not auto-detect devices. You will have to instantiate the | ||
54 | devices explicitly. Please see Documentation/i2c/instantiating-devices for | ||
55 | details. | ||
56 | |||
57 | |||
58 | Platform data support | ||
59 | --------------------- | ||
60 | |||
61 | The driver supports standard PMBus driver platform data. Please see | ||
62 | Documentation/hwmon/pmbus for details. | ||
63 | |||
64 | |||
65 | Sysfs entries | ||
66 | ------------- | ||
67 | |||
68 | The following attributes are supported. Limits are read-write; all other | ||
69 | attributes are read-only. | ||
70 | |||
71 | in[1-12]_label "vout[1-12]". | ||
72 | in[1-12]_input Measured voltage. From READ_VOUT register. | ||
73 | in[1-12]_min Minumum Voltage. From VOUT_UV_WARN_LIMIT register. | ||
74 | in[1-12]_max Maximum voltage. From VOUT_OV_WARN_LIMIT register. | ||
75 | in[1-12]_lcrit Critical minumum Voltage. VOUT_UV_FAULT_LIMIT register. | ||
76 | in[1-12]_crit Critical maximum voltage. From VOUT_OV_FAULT_LIMIT register. | ||
77 | in[1-12]_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status. | ||
78 | in[1-12]_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status. | ||
79 | in[1-12]_lcrit_alarm Voltage critical low alarm. From VOLTAGE_UV_FAULT status. | ||
80 | in[1-12]_crit_alarm Voltage critical high alarm. From VOLTAGE_OV_FAULT status. | ||
81 | |||
82 | curr[1-12]_label "iout[1-12]". | ||
83 | curr[1-12]_input Measured current. From READ_IOUT register. | ||
84 | curr[1-12]_max Maximum current. From IOUT_OC_WARN_LIMIT register. | ||
85 | curr[1-12]_lcrit Critical minumum output current. From IOUT_UC_FAULT_LIMIT | ||
86 | register. | ||
87 | curr[1-12]_crit Critical maximum current. From IOUT_OC_FAULT_LIMIT register. | ||
88 | curr[1-12]_max_alarm Current high alarm. From IOUT_OC_WARNING status. | ||
89 | curr[1-12]_crit_alarm Current critical high alarm. From IOUT_OC_FAULT status. | ||
90 | |||
91 | For each attribute index, either voltage or current is | ||
92 | reported, but not both. If voltage or current is | ||
93 | reported depends on the chip configuration. | ||
94 | |||
95 | temp[1-2]_input Measured temperatures. From READ_TEMPERATURE_1 and | ||
96 | READ_TEMPERATURE_2 registers. | ||
97 | temp[1-2]_max Maximum temperature. From OT_WARN_LIMIT register. | ||
98 | temp[1-2]_crit Critical high temperature. From OT_FAULT_LIMIT register. | ||
99 | temp[1-2]_max_alarm Temperature high alarm. | ||
100 | temp[1-2]_crit_alarm Temperature critical high alarm. | ||
101 | |||
102 | fan[1-4]_input Fan RPM. | ||
103 | fan[1-4]_alarm Fan alarm. | ||
104 | fan[1-4]_fault Fan fault. | ||
105 | |||
106 | Fan attributes are only available on chips supporting | ||
107 | fan control (UCD90124, UCD90910). Attribute files are | ||
108 | created only for enabled fans. | ||
109 | Note that even though UCD90910 supports up to 10 fans, | ||
110 | only up to four fans are currently supported. | ||
diff --git a/Documentation/hwmon/ucd9200 b/Documentation/hwmon/ucd9200 new file mode 100644 index 00000000000..3c58607f72f --- /dev/null +++ b/Documentation/hwmon/ucd9200 | |||
@@ -0,0 +1,112 @@ | |||
1 | Kernel driver ucd9200 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * TI UCD9220, UCD9222, UCD9224, UCD9240, UCD9244, UCD9246, and UCD9248 | ||
6 | Prefixes: 'ucd9220', 'ucd9222', 'ucd9224', 'ucd9240', 'ucd9244', 'ucd9246', | ||
7 | 'ucd9248' | ||
8 | Addresses scanned: - | ||
9 | Datasheets: | ||
10 | http://focus.ti.com/lit/ds/symlink/ucd9220.pdf | ||
11 | http://focus.ti.com/lit/ds/symlink/ucd9222.pdf | ||
12 | http://focus.ti.com/lit/ds/symlink/ucd9224.pdf | ||
13 | http://focus.ti.com/lit/ds/symlink/ucd9240.pdf | ||
14 | http://focus.ti.com/lit/ds/symlink/ucd9244.pdf | ||
15 | http://focus.ti.com/lit/ds/symlink/ucd9246.pdf | ||
16 | http://focus.ti.com/lit/ds/symlink/ucd9248.pdf | ||
17 | |||
18 | Author: Guenter Roeck <guenter.roeck@ericsson.com> | ||
19 | |||
20 | |||
21 | Description | ||
22 | ----------- | ||
23 | |||
24 | [From datasheets] UCD9220, UCD9222, UCD9224, UCD9240, UCD9244, UCD9246, and | ||
25 | UCD9248 are multi-rail, multi-phase synchronous buck digital PWM controllers | ||
26 | designed for non-isolated DC/DC power applications. The devices integrate | ||
27 | dedicated circuitry for DC/DC loop management with flash memory and a serial | ||
28 | interface to support configuration, monitoring and management. | ||
29 | |||
30 | This driver is a client driver to the core PMBus driver. Please see | ||
31 | Documentation/hwmon/pmbus for details on PMBus client drivers. | ||
32 | |||
33 | |||
34 | Usage Notes | ||
35 | ----------- | ||
36 | |||
37 | This driver does not auto-detect devices. You will have to instantiate the | ||
38 | devices explicitly. Please see Documentation/i2c/instantiating-devices for | ||
39 | details. | ||
40 | |||
41 | |||
42 | Platform data support | ||
43 | --------------------- | ||
44 | |||
45 | The driver supports standard PMBus driver platform data. Please see | ||
46 | Documentation/hwmon/pmbus for details. | ||
47 | |||
48 | |||
49 | Sysfs entries | ||
50 | ------------- | ||
51 | |||
52 | The following attributes are supported. Limits are read-write; all other | ||
53 | attributes are read-only. | ||
54 | |||
55 | in1_label "vin". | ||
56 | in1_input Measured voltage. From READ_VIN register. | ||
57 | in1_min Minumum Voltage. From VIN_UV_WARN_LIMIT register. | ||
58 | in1_max Maximum voltage. From VIN_OV_WARN_LIMIT register. | ||
59 | in1_lcrit Critical minumum Voltage. VIN_UV_FAULT_LIMIT register. | ||
60 | in1_crit Critical maximum voltage. From VIN_OV_FAULT_LIMIT register. | ||
61 | in1_min_alarm Voltage low alarm. From VIN_UV_WARNING status. | ||
62 | in1_max_alarm Voltage high alarm. From VIN_OV_WARNING status. | ||
63 | in1_lcrit_alarm Voltage critical low alarm. From VIN_UV_FAULT status. | ||
64 | in1_crit_alarm Voltage critical high alarm. From VIN_OV_FAULT status. | ||
65 | |||
66 | in[2-5]_label "vout[1-4]". | ||
67 | in[2-5]_input Measured voltage. From READ_VOUT register. | ||
68 | in[2-5]_min Minumum Voltage. From VOUT_UV_WARN_LIMIT register. | ||
69 | in[2-5]_max Maximum voltage. From VOUT_OV_WARN_LIMIT register. | ||
70 | in[2-5]_lcrit Critical minumum Voltage. VOUT_UV_FAULT_LIMIT register. | ||
71 | in[2-5]_crit Critical maximum voltage. From VOUT_OV_FAULT_LIMIT register. | ||
72 | in[2-5]_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status. | ||
73 | in[2-5]_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status. | ||
74 | in[2-5]_lcrit_alarm Voltage critical low alarm. From VOLTAGE_UV_FAULT status. | ||
75 | in[2-5]_crit_alarm Voltage critical high alarm. From VOLTAGE_OV_FAULT status. | ||
76 | |||
77 | curr1_label "iin". | ||
78 | curr1_input Measured current. From READ_IIN register. | ||
79 | |||
80 | curr[2-5]_label "iout[1-4]". | ||
81 | curr[2-5]_input Measured current. From READ_IOUT register. | ||
82 | curr[2-5]_max Maximum current. From IOUT_OC_WARN_LIMIT register. | ||
83 | curr[2-5]_lcrit Critical minumum output current. From IOUT_UC_FAULT_LIMIT | ||
84 | register. | ||
85 | curr[2-5]_crit Critical maximum current. From IOUT_OC_FAULT_LIMIT register. | ||
86 | curr[2-5]_max_alarm Current high alarm. From IOUT_OC_WARNING status. | ||
87 | curr[2-5]_crit_alarm Current critical high alarm. From IOUT_OC_FAULT status. | ||
88 | |||
89 | power1_input Measured input power. From READ_PIN register. | ||
90 | power1_label "pin" | ||
91 | |||
92 | power[2-5]_input Measured output power. From READ_POUT register. | ||
93 | power[2-5]_label "pout[1-4]" | ||
94 | |||
95 | The number of output voltage, current, and power | ||
96 | attribute sets is determined by the number of enabled | ||
97 | rails. See chip datasheets for details. | ||
98 | |||
99 | temp[1-5]_input Measured temperatures. From READ_TEMPERATURE_1 and | ||
100 | READ_TEMPERATURE_2 registers. | ||
101 | temp1 is the chip internal temperature. temp[2-5] are | ||
102 | rail temperatures. temp[2-5] attributes are only | ||
103 | created for enabled rails. See chip datasheets for | ||
104 | details. | ||
105 | temp[1-5]_max Maximum temperature. From OT_WARN_LIMIT register. | ||
106 | temp[1-5]_crit Critical high temperature. From OT_FAULT_LIMIT register. | ||
107 | temp[1-5]_max_alarm Temperature high alarm. | ||
108 | temp[1-5]_crit_alarm Temperature critical high alarm. | ||
109 | |||
110 | fan1_input Fan RPM. ucd9240 only. | ||
111 | fan1_alarm Fan alarm. ucd9240 only. | ||
112 | fan1_fault Fan fault. ucd9240 only. | ||
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801 index 6df69765ccb..2871fd50034 100644 --- a/Documentation/i2c/busses/i2c-i801 +++ b/Documentation/i2c/busses/i2c-i801 | |||
@@ -19,6 +19,7 @@ Supported adapters: | |||
19 | * Intel 6 Series (PCH) | 19 | * Intel 6 Series (PCH) |
20 | * Intel Patsburg (PCH) | 20 | * Intel Patsburg (PCH) |
21 | * Intel DH89xxCC (PCH) | 21 | * Intel DH89xxCC (PCH) |
22 | * Intel Panther Point (PCH) | ||
22 | Datasheets: Publicly available at the Intel website | 23 | Datasheets: Publicly available at the Intel website |
23 | 24 | ||
24 | On Intel Patsburg and later chipsets, both the normal host SMBus controller | 25 | On Intel Patsburg and later chipsets, both the normal host SMBus controller |
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients index 5ebf5af1d71..5aa53374ea2 100644 --- a/Documentation/i2c/writing-clients +++ b/Documentation/i2c/writing-clients | |||
@@ -38,7 +38,7 @@ static struct i2c_driver foo_driver = { | |||
38 | .name = "foo", | 38 | .name = "foo", |
39 | }, | 39 | }, |
40 | 40 | ||
41 | .id_table = foo_ids, | 41 | .id_table = foo_idtable, |
42 | .probe = foo_probe, | 42 | .probe = foo_probe, |
43 | .remove = foo_remove, | 43 | .remove = foo_remove, |
44 | /* if device autodetection is needed: */ | 44 | /* if device autodetection is needed: */ |
diff --git a/Documentation/input/elantech.txt b/Documentation/input/elantech.txt index 56941ae1f5d..db798af5ef9 100644 --- a/Documentation/input/elantech.txt +++ b/Documentation/input/elantech.txt | |||
@@ -34,7 +34,8 @@ Contents | |||
34 | Currently the Linux Elantech touchpad driver is aware of two different | 34 | Currently the Linux Elantech touchpad driver is aware of two different |
35 | hardware versions unimaginatively called version 1 and version 2. Version 1 | 35 | hardware versions unimaginatively called version 1 and version 2. Version 1 |
36 | is found in "older" laptops and uses 4 bytes per packet. Version 2 seems to | 36 | is found in "older" laptops and uses 4 bytes per packet. Version 2 seems to |
37 | be introduced with the EeePC and uses 6 bytes per packet. | 37 | be introduced with the EeePC and uses 6 bytes per packet, and provides |
38 | additional features such as position of two fingers, and width of the touch. | ||
38 | 39 | ||
39 | The driver tries to support both hardware versions and should be compatible | 40 | The driver tries to support both hardware versions and should be compatible |
40 | with the Xorg Synaptics touchpad driver and its graphical configuration | 41 | with the Xorg Synaptics touchpad driver and its graphical configuration |
@@ -94,18 +95,44 @@ Currently the Linux Elantech touchpad driver provides two extra knobs under | |||
94 | can check these bits and reject any packet that appears corrupted. Using | 95 | can check these bits and reject any packet that appears corrupted. Using |
95 | this knob you can bypass that check. | 96 | this knob you can bypass that check. |
96 | 97 | ||
97 | It is not known yet whether hardware version 2 provides the same parity | 98 | Hardware version 2 does not provide the same parity bits. Only some basic |
98 | bits. Hence checking is disabled by default. Currently even turning it on | 99 | data consistency checking can be done. For now checking is disabled by |
99 | will do nothing. | 100 | default. Currently even turning it on will do nothing. |
100 | |||
101 | 101 | ||
102 | ///////////////////////////////////////////////////////////////////////////// | 102 | ///////////////////////////////////////////////////////////////////////////// |
103 | 103 | ||
104 | 3. Differentiating hardware versions | ||
105 | ================================= | ||
106 | |||
107 | To detect the hardware version, read the version number as param[0].param[1].param[2] | ||
108 | |||
109 | 4 bytes version: (after the arrow is the name given in the Dell-provided driver) | ||
110 | 02.00.22 => EF013 | ||
111 | 02.06.00 => EF019 | ||
112 | In the wild, there appear to be more versions, such as 00.01.64, 01.00.21, | ||
113 | 02.00.00, 02.00.04, 02.00.06. | ||
114 | |||
115 | 6 bytes: | ||
116 | 02.00.30 => EF113 | ||
117 | 02.08.00 => EF023 | ||
118 | 02.08.XX => EF123 | ||
119 | 02.0B.00 => EF215 | ||
120 | 04.01.XX => Scroll_EF051 | ||
121 | 04.02.XX => EF051 | ||
122 | In the wild, there appear to be more versions, such as 04.03.01, 04.04.11. There | ||
123 | appears to be almost no difference, except for EF113, which does not report | ||
124 | pressure/width and has different data consistency checks. | ||
125 | |||
126 | Probably all the versions with param[0] <= 01 can be considered as | ||
127 | 4 bytes/firmware 1. The versions < 02.08.00, with the exception of 02.00.30, as | ||
128 | 4 bytes/firmware 2. Everything >= 02.08.00 can be considered as 6 bytes. | ||
129 | |||
130 | ///////////////////////////////////////////////////////////////////////////// | ||
104 | 131 | ||
105 | 3. Hardware version 1 | 132 | 4. Hardware version 1 |
106 | ================== | 133 | ================== |
107 | 134 | ||
108 | 3.1 Registers | 135 | 4.1 Registers |
109 | ~~~~~~~~~ | 136 | ~~~~~~~~~ |
110 | 137 | ||
111 | By echoing a hexadecimal value to a register it contents can be altered. | 138 | By echoing a hexadecimal value to a register it contents can be altered. |
@@ -168,7 +195,7 @@ For example: | |||
168 | smart edge activation area width? | 195 | smart edge activation area width? |
169 | 196 | ||
170 | 197 | ||
171 | 3.2 Native relative mode 4 byte packet format | 198 | 4.2 Native relative mode 4 byte packet format |
172 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 199 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
173 | 200 | ||
174 | byte 0: | 201 | byte 0: |
@@ -226,9 +253,13 @@ byte 3: | |||
226 | positive = down | 253 | positive = down |
227 | 254 | ||
228 | 255 | ||
229 | 3.3 Native absolute mode 4 byte packet format | 256 | 4.3 Native absolute mode 4 byte packet format |
230 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 257 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
231 | 258 | ||
259 | EF013 and EF019 have a special behaviour (due to a bug in the firmware?), and | ||
260 | when 1 finger is touching, the first 2 position reports must be discarded. | ||
261 | This counting is reset whenever a different number of fingers is reported. | ||
262 | |||
232 | byte 0: | 263 | byte 0: |
233 | firmware version 1.x: | 264 | firmware version 1.x: |
234 | 265 | ||
@@ -279,11 +310,11 @@ byte 3: | |||
279 | ///////////////////////////////////////////////////////////////////////////// | 310 | ///////////////////////////////////////////////////////////////////////////// |
280 | 311 | ||
281 | 312 | ||
282 | 4. Hardware version 2 | 313 | 5. Hardware version 2 |
283 | ================== | 314 | ================== |
284 | 315 | ||
285 | 316 | ||
286 | 4.1 Registers | 317 | 5.1 Registers |
287 | ~~~~~~~~~ | 318 | ~~~~~~~~~ |
288 | 319 | ||
289 | By echoing a hexadecimal value to a register it contents can be altered. | 320 | By echoing a hexadecimal value to a register it contents can be altered. |
@@ -316,16 +347,41 @@ For example: | |||
316 | 0x7f = never i.e. tap again to release) | 347 | 0x7f = never i.e. tap again to release) |
317 | 348 | ||
318 | 349 | ||
319 | 4.2 Native absolute mode 6 byte packet format | 350 | 5.2 Native absolute mode 6 byte packet format |
320 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 351 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
321 | 352 | 5.2.1 Parity checking and packet re-synchronization | |
322 | 4.2.1 One finger touch | 353 | There is no parity checking, however some consistency checks can be performed. |
354 | |||
355 | For instance for EF113: | ||
356 | SA1= packet[0]; | ||
357 | A1 = packet[1]; | ||
358 | B1 = packet[2]; | ||
359 | SB1= packet[3]; | ||
360 | C1 = packet[4]; | ||
361 | D1 = packet[5]; | ||
362 | if( (((SA1 & 0x3C) != 0x3C) && ((SA1 & 0xC0) != 0x80)) || // check Byte 1 | ||
363 | (((SA1 & 0x0C) != 0x0C) && ((SA1 & 0xC0) == 0x80)) || // check Byte 1 (one finger pressed) | ||
364 | (((SA1 & 0xC0) != 0x80) && (( A1 & 0xF0) != 0x00)) || // check Byte 2 | ||
365 | (((SB1 & 0x3E) != 0x38) && ((SA1 & 0xC0) != 0x80)) || // check Byte 4 | ||
366 | (((SB1 & 0x0E) != 0x08) && ((SA1 & 0xC0) == 0x80)) || // check Byte 4 (one finger pressed) | ||
367 | (((SA1 & 0xC0) != 0x80) && (( C1 & 0xF0) != 0x00)) ) // check Byte 5 | ||
368 | // error detected | ||
369 | |||
370 | For all the other ones, there are just a few constant bits: | ||
371 | if( ((packet[0] & 0x0C) != 0x04) || | ||
372 | ((packet[3] & 0x0f) != 0x02) ) | ||
373 | // error detected | ||
374 | |||
375 | |||
376 | In case an error is detected, all the packets are shifted by one (and packet[0] is discarded). | ||
377 | |||
378 | 5.2.1 One/Three finger touch | ||
323 | ~~~~~~~~~~~~~~~~ | 379 | ~~~~~~~~~~~~~~~~ |
324 | 380 | ||
325 | byte 0: | 381 | byte 0: |
326 | 382 | ||
327 | bit 7 6 5 4 3 2 1 0 | 383 | bit 7 6 5 4 3 2 1 0 |
328 | n1 n0 . . . . R L | 384 | n1 n0 w3 w2 . . R L |
329 | 385 | ||
330 | L, R = 1 when Left, Right mouse button pressed | 386 | L, R = 1 when Left, Right mouse button pressed |
331 | n1..n0 = numbers of fingers on touchpad | 387 | n1..n0 = numbers of fingers on touchpad |
@@ -333,24 +389,40 @@ byte 0: | |||
333 | byte 1: | 389 | byte 1: |
334 | 390 | ||
335 | bit 7 6 5 4 3 2 1 0 | 391 | bit 7 6 5 4 3 2 1 0 |
336 | . . . . . x10 x9 x8 | 392 | p7 p6 p5 p4 . x10 x9 x8 |
337 | 393 | ||
338 | byte 2: | 394 | byte 2: |
339 | 395 | ||
340 | bit 7 6 5 4 3 2 1 0 | 396 | bit 7 6 5 4 3 2 1 0 |
341 | x7 x6 x5 x4 x4 x2 x1 x0 | 397 | x7 x6 x5 x4 x3 x2 x1 x0 |
342 | 398 | ||
343 | x10..x0 = absolute x value (horizontal) | 399 | x10..x0 = absolute x value (horizontal) |
344 | 400 | ||
345 | byte 3: | 401 | byte 3: |
346 | 402 | ||
347 | bit 7 6 5 4 3 2 1 0 | 403 | bit 7 6 5 4 3 2 1 0 |
348 | . . . . . . . . | 404 | n4 vf w1 w0 . . . b2 |
405 | |||
406 | n4 = set if more than 3 fingers (only in 3 fingers mode) | ||
407 | vf = a kind of flag ? (only on EF123, 0 when finger is over one | ||
408 | of the buttons, 1 otherwise) | ||
409 | w3..w0 = width of the finger touch (not EF113) | ||
410 | b2 (on EF113 only, 0 otherwise), b2.R.L indicates one button pressed: | ||
411 | 0 = none | ||
412 | 1 = Left | ||
413 | 2 = Right | ||
414 | 3 = Middle (Left and Right) | ||
415 | 4 = Forward | ||
416 | 5 = Back | ||
417 | 6 = Another one | ||
418 | 7 = Another one | ||
349 | 419 | ||
350 | byte 4: | 420 | byte 4: |
351 | 421 | ||
352 | bit 7 6 5 4 3 2 1 0 | 422 | bit 7 6 5 4 3 2 1 0 |
353 | . . . . . . y9 y8 | 423 | p3 p1 p2 p0 . . y9 y8 |
424 | |||
425 | p7..p0 = pressure (not EF113) | ||
354 | 426 | ||
355 | byte 5: | 427 | byte 5: |
356 | 428 | ||
@@ -363,6 +435,11 @@ byte 5: | |||
363 | 4.2.2 Two finger touch | 435 | 4.2.2 Two finger touch |
364 | ~~~~~~~~~~~~~~~~ | 436 | ~~~~~~~~~~~~~~~~ |
365 | 437 | ||
438 | Note that the two pairs of coordinates are not exactly the coordinates of the | ||
439 | two fingers, but only the pair of the lower-left and upper-right coordinates. | ||
440 | So the actual fingers might be situated on the other diagonal of the square | ||
441 | defined by these two points. | ||
442 | |||
366 | byte 0: | 443 | byte 0: |
367 | 444 | ||
368 | bit 7 6 5 4 3 2 1 0 | 445 | bit 7 6 5 4 3 2 1 0 |
@@ -376,14 +453,14 @@ byte 1: | |||
376 | bit 7 6 5 4 3 2 1 0 | 453 | bit 7 6 5 4 3 2 1 0 |
377 | ax7 ax6 ax5 ax4 ax3 ax2 ax1 ax0 | 454 | ax7 ax6 ax5 ax4 ax3 ax2 ax1 ax0 |
378 | 455 | ||
379 | ax8..ax0 = first finger absolute x value | 456 | ax8..ax0 = lower-left finger absolute x value |
380 | 457 | ||
381 | byte 2: | 458 | byte 2: |
382 | 459 | ||
383 | bit 7 6 5 4 3 2 1 0 | 460 | bit 7 6 5 4 3 2 1 0 |
384 | ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 | 461 | ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 |
385 | 462 | ||
386 | ay8..ay0 = first finger absolute y value | 463 | ay8..ay0 = lower-left finger absolute y value |
387 | 464 | ||
388 | byte 3: | 465 | byte 3: |
389 | 466 | ||
@@ -395,11 +472,11 @@ byte 4: | |||
395 | bit 7 6 5 4 3 2 1 0 | 472 | bit 7 6 5 4 3 2 1 0 |
396 | bx7 bx6 bx5 bx4 bx3 bx2 bx1 bx0 | 473 | bx7 bx6 bx5 bx4 bx3 bx2 bx1 bx0 |
397 | 474 | ||
398 | bx8..bx0 = second finger absolute x value | 475 | bx8..bx0 = upper-right finger absolute x value |
399 | 476 | ||
400 | byte 5: | 477 | byte 5: |
401 | 478 | ||
402 | bit 7 6 5 4 3 2 1 0 | 479 | bit 7 6 5 4 3 2 1 0 |
403 | by7 by8 by5 by4 by3 by2 by1 by0 | 480 | by7 by8 by5 by4 by3 by2 by1 by0 |
404 | 481 | ||
405 | by8..by0 = second finger absolute y value | 482 | by8..by0 = upper-right finger absolute y value |
diff --git a/Documentation/input/rotary-encoder.txt b/Documentation/input/rotary-encoder.txt index 943e8f6f2b1..92e68bce13a 100644 --- a/Documentation/input/rotary-encoder.txt +++ b/Documentation/input/rotary-encoder.txt | |||
@@ -9,6 +9,9 @@ peripherals with two wires. The outputs are phase-shifted by 90 degrees | |||
9 | and by triggering on falling and rising edges, the turn direction can | 9 | and by triggering on falling and rising edges, the turn direction can |
10 | be determined. | 10 | be determined. |
11 | 11 | ||
12 | Some encoders have both outputs low in stable states, whereas others also have | ||
13 | a stable state with both outputs high (half-period mode). | ||
14 | |||
12 | The phase diagram of these two outputs look like this: | 15 | The phase diagram of these two outputs look like this: |
13 | 16 | ||
14 | _____ _____ _____ | 17 | _____ _____ _____ |
@@ -26,6 +29,8 @@ The phase diagram of these two outputs look like this: | |||
26 | |<-------->| | 29 | |<-------->| |
27 | one step | 30 | one step |
28 | 31 | ||
32 | |<-->| | ||
33 | one step (half-period mode) | ||
29 | 34 | ||
30 | For more information, please see | 35 | For more information, please see |
31 | http://en.wikipedia.org/wiki/Rotary_encoder | 36 | http://en.wikipedia.org/wiki/Rotary_encoder |
@@ -34,6 +39,13 @@ For more information, please see | |||
34 | 1. Events / state machine | 39 | 1. Events / state machine |
35 | ------------------------- | 40 | ------------------------- |
36 | 41 | ||
42 | In half-period mode, state a) and c) above are used to determine the | ||
43 | rotational direction based on the last stable state. Events are reported in | ||
44 | states b) and d) given that the new stable state is different from the last | ||
45 | (i.e. the rotation was not reversed half-way). | ||
46 | |||
47 | Otherwise, the following apply: | ||
48 | |||
37 | a) Rising edge on channel A, channel B in low state | 49 | a) Rising edge on channel A, channel B in low state |
38 | This state is used to recognize a clockwise turn | 50 | This state is used to recognize a clockwise turn |
39 | 51 | ||
@@ -96,6 +108,7 @@ static struct rotary_encoder_platform_data my_rotary_encoder_info = { | |||
96 | .gpio_b = GPIO_ROTARY_B, | 108 | .gpio_b = GPIO_ROTARY_B, |
97 | .inverted_a = 0, | 109 | .inverted_a = 0, |
98 | .inverted_b = 0, | 110 | .inverted_b = 0, |
111 | .half_period = false, | ||
99 | }; | 112 | }; |
100 | 113 | ||
101 | static struct platform_device rotary_encoder_device = { | 114 | static struct platform_device rotary_encoder_device = { |
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt index a0a5d82b6b0..3a46e360496 100644 --- a/Documentation/ioctl/ioctl-number.txt +++ b/Documentation/ioctl/ioctl-number.txt | |||
@@ -166,7 +166,6 @@ Code Seq#(hex) Include File Comments | |||
166 | 'T' all arch/x86/include/asm/ioctls.h conflict! | 166 | 'T' all arch/x86/include/asm/ioctls.h conflict! |
167 | 'T' C0-DF linux/if_tun.h conflict! | 167 | 'T' C0-DF linux/if_tun.h conflict! |
168 | 'U' all sound/asound.h conflict! | 168 | 'U' all sound/asound.h conflict! |
169 | 'U' 00-0F drivers/media/video/uvc/uvcvideo.h conflict! | ||
170 | 'U' 00-CF linux/uinput.h conflict! | 169 | 'U' 00-CF linux/uinput.h conflict! |
171 | 'U' 00-EF linux/usbdevice_fs.h | 170 | 'U' 00-EF linux/usbdevice_fs.h |
172 | 'U' C0-CF drivers/bluetooth/hci_uart.h | 171 | 'U' C0-CF drivers/bluetooth/hci_uart.h |
@@ -259,6 +258,7 @@ Code Seq#(hex) Include File Comments | |||
259 | 't' 80-8F linux/isdn_ppp.h | 258 | 't' 80-8F linux/isdn_ppp.h |
260 | 't' 90 linux/toshiba.h | 259 | 't' 90 linux/toshiba.h |
261 | 'u' 00-1F linux/smb_fs.h gone | 260 | 'u' 00-1F linux/smb_fs.h gone |
261 | 'u' 20-3F linux/uvcvideo.h USB video class host driver | ||
262 | 'v' 00-1F linux/ext2_fs.h conflict! | 262 | 'v' 00-1F linux/ext2_fs.h conflict! |
263 | 'v' 00-1F linux/fs.h conflict! | 263 | 'v' 00-1F linux/fs.h conflict! |
264 | 'v' 00-0F linux/sonypi.h conflict! | 264 | 'v' 00-0F linux/sonypi.h conflict! |
@@ -304,6 +304,7 @@ Code Seq#(hex) Include File Comments | |||
304 | 0xB0 all RATIO devices in development: | 304 | 0xB0 all RATIO devices in development: |
305 | <mailto:vgo@ratio.de> | 305 | <mailto:vgo@ratio.de> |
306 | 0xB1 00-1F PPPoX <mailto:mostrows@styx.uwaterloo.ca> | 306 | 0xB1 00-1F PPPoX <mailto:mostrows@styx.uwaterloo.ca> |
307 | 0xB3 00 linux/mmc/ioctl.h | ||
307 | 0xC0 00-0F linux/usb/iowarrior.h | 308 | 0xC0 00-0F linux/usb/iowarrior.h |
308 | 0xCB 00-1F CBM serial IEC bus in development: | 309 | 0xCB 00-1F CBM serial IEC bus in development: |
309 | <mailto:michael.klein@puffin.lb.shuttle.de> | 310 | <mailto:michael.klein@puffin.lb.shuttle.de> |
diff --git a/Documentation/kbuild/kbuild.txt b/Documentation/kbuild/kbuild.txt index 7c2a89ba674..68e32bb6bd8 100644 --- a/Documentation/kbuild/kbuild.txt +++ b/Documentation/kbuild/kbuild.txt | |||
@@ -201,3 +201,16 @@ KBUILD_ENABLE_EXTRA_GCC_CHECKS | |||
201 | -------------------------------------------------- | 201 | -------------------------------------------------- |
202 | If enabled over the make command line with "W=1", it turns on additional | 202 | If enabled over the make command line with "W=1", it turns on additional |
203 | gcc -W... options for more extensive build-time checking. | 203 | gcc -W... options for more extensive build-time checking. |
204 | |||
205 | KBUILD_BUILD_TIMESTAMP | ||
206 | -------------------------------------------------- | ||
207 | Setting this to a date string overrides the timestamp used in the | ||
208 | UTS_VERSION definition (uname -v in the running kernel). The value has to | ||
209 | be a string that can be passed to date -d. The default value | ||
210 | is the output of the date command at one point during build. | ||
211 | |||
212 | KBUILD_BUILD_USER, KBUILD_BUILD_HOST | ||
213 | -------------------------------------------------- | ||
214 | These two variables allow to override the user@host string displayed during | ||
215 | boot and in /proc/version. The default value is the output of the commands | ||
216 | whoami and host, respectively. | ||
diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt index b507d61fd41..44e2649fbb2 100644 --- a/Documentation/kbuild/kconfig-language.txt +++ b/Documentation/kbuild/kconfig-language.txt | |||
@@ -113,6 +113,13 @@ applicable everywhere (see syntax). | |||
113 | That will limit the usefulness but on the other hand avoid | 113 | That will limit the usefulness but on the other hand avoid |
114 | the illegal configurations all over. | 114 | the illegal configurations all over. |
115 | 115 | ||
116 | - limiting menu display: "visible if" <expr> | ||
117 | This attribute is only applicable to menu blocks, if the condition is | ||
118 | false, the menu block is not displayed to the user (the symbols | ||
119 | contained there can still be selected by other symbols, though). It is | ||
120 | similar to a conditional "prompt" attribude for individual menu | ||
121 | entries. Default value of "visible" is true. | ||
122 | |||
116 | - numerical ranges: "range" <symbol> <symbol> ["if" <expr>] | 123 | - numerical ranges: "range" <symbol> <symbol> ["if" <expr>] |
117 | This allows to limit the range of possible input values for int | 124 | This allows to limit the range of possible input values for int |
118 | and hex symbols. The user can only input a value which is larger than | 125 | and hex symbols. The user can only input a value which is larger than |
@@ -303,7 +310,8 @@ menu: | |||
303 | "endmenu" | 310 | "endmenu" |
304 | 311 | ||
305 | This defines a menu block, see "Menu structure" above for more | 312 | This defines a menu block, see "Menu structure" above for more |
306 | information. The only possible options are dependencies. | 313 | information. The only possible options are dependencies and "visible" |
314 | attributes. | ||
307 | 315 | ||
308 | if: | 316 | if: |
309 | 317 | ||
@@ -381,3 +389,25 @@ config FOO | |||
381 | 389 | ||
382 | limits FOO to module (=m) or disabled (=n). | 390 | limits FOO to module (=m) or disabled (=n). |
383 | 391 | ||
392 | Kconfig symbol existence | ||
393 | ~~~~~~~~~~~~~~~~~~~~~~~~ | ||
394 | The following two methods produce the same kconfig symbol dependencies | ||
395 | but differ greatly in kconfig symbol existence (production) in the | ||
396 | generated config file. | ||
397 | |||
398 | case 1: | ||
399 | |||
400 | config FOO | ||
401 | tristate "about foo" | ||
402 | depends on BAR | ||
403 | |||
404 | vs. case 2: | ||
405 | |||
406 | if BAR | ||
407 | config FOO | ||
408 | tristate "about foo" | ||
409 | endif | ||
410 | |||
411 | In case 1, the symbol FOO will always exist in the config file (given | ||
412 | no other dependencies). In case 2, the symbol FOO will only exist in | ||
413 | the config file if BAR is enabled. | ||
diff --git a/Documentation/kbuild/kconfig.txt b/Documentation/kbuild/kconfig.txt index cca46b1a0f6..c313d71324b 100644 --- a/Documentation/kbuild/kconfig.txt +++ b/Documentation/kbuild/kconfig.txt | |||
@@ -48,11 +48,6 @@ KCONFIG_OVERWRITECONFIG | |||
48 | If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not | 48 | If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not |
49 | break symlinks when .config is a symlink to somewhere else. | 49 | break symlinks when .config is a symlink to somewhere else. |
50 | 50 | ||
51 | KCONFIG_NOTIMESTAMP | ||
52 | -------------------------------------------------- | ||
53 | If this environment variable exists and is non-null, the timestamp line | ||
54 | in generated .config files is omitted. | ||
55 | |||
56 | ______________________________________________________________________ | 51 | ______________________________________________________________________ |
57 | Environment variables for '{allyes/allmod/allno/rand}config' | 52 | Environment variables for '{allyes/allmod/allno/rand}config' |
58 | 53 | ||
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index 5d145bb443c..47435e56c5d 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt | |||
@@ -40,11 +40,13 @@ This document describes the Linux kernel Makefiles. | |||
40 | --- 6.6 Commands useful for building a boot image | 40 | --- 6.6 Commands useful for building a boot image |
41 | --- 6.7 Custom kbuild commands | 41 | --- 6.7 Custom kbuild commands |
42 | --- 6.8 Preprocessing linker scripts | 42 | --- 6.8 Preprocessing linker scripts |
43 | --- 6.9 Generic header files | ||
43 | 44 | ||
44 | === 7 Kbuild syntax for exported headers | 45 | === 7 Kbuild syntax for exported headers |
45 | --- 7.1 header-y | 46 | --- 7.1 header-y |
46 | --- 7.2 objhdr-y | 47 | --- 7.2 objhdr-y |
47 | --- 7.3 destination-y | 48 | --- 7.3 destination-y |
49 | --- 7.4 generic-y | ||
48 | 50 | ||
49 | === 8 Kbuild Variables | 51 | === 8 Kbuild Variables |
50 | === 9 Makefile language | 52 | === 9 Makefile language |
@@ -499,6 +501,18 @@ more details, with real examples. | |||
499 | gcc >= 3.00. For gcc < 3.00, -malign-functions=4 is used. | 501 | gcc >= 3.00. For gcc < 3.00, -malign-functions=4 is used. |
500 | Note: cc-option-align uses KBUILD_CFLAGS for $(CC) options | 502 | Note: cc-option-align uses KBUILD_CFLAGS for $(CC) options |
501 | 503 | ||
504 | cc-disable-warning | ||
505 | cc-disable-warning checks if gcc supports a given warning and returns | ||
506 | the commandline switch to disable it. This special function is needed, | ||
507 | because gcc 4.4 and later accept any unknown -Wno-* option and only | ||
508 | warn about it if there is another warning in the source file. | ||
509 | |||
510 | Example: | ||
511 | KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) | ||
512 | |||
513 | In the above example, -Wno-unused-but-set-variable will be added to | ||
514 | KBUILD_CFLAGS only if gcc really accepts it. | ||
515 | |||
502 | cc-version | 516 | cc-version |
503 | cc-version returns a numerical version of the $(CC) compiler version. | 517 | cc-version returns a numerical version of the $(CC) compiler version. |
504 | The format is <major><minor> where both are two digits. So for example | 518 | The format is <major><minor> where both are two digits. So for example |
@@ -955,6 +969,11 @@ When kbuild executes, the following steps are followed (roughly): | |||
955 | used when linking modules. This is often a linker script. | 969 | used when linking modules. This is often a linker script. |
956 | From commandline LDFLAGS_MODULE shall be used (see kbuild.txt). | 970 | From commandline LDFLAGS_MODULE shall be used (see kbuild.txt). |
957 | 971 | ||
972 | KBUILD_ARFLAGS Options for $(AR) when creating archives | ||
973 | |||
974 | $(KBUILD_ARFLAGS) set by the top level Makefile to "D" (deterministic | ||
975 | mode) if this option is supported by $(AR). | ||
976 | |||
958 | --- 6.2 Add prerequisites to archprepare: | 977 | --- 6.2 Add prerequisites to archprepare: |
959 | 978 | ||
960 | The archprepare: rule is used to list prerequisites that need to be | 979 | The archprepare: rule is used to list prerequisites that need to be |
@@ -1209,6 +1228,14 @@ When kbuild executes, the following steps are followed (roughly): | |||
1209 | The kbuild infrastructure for *lds file are used in several | 1228 | The kbuild infrastructure for *lds file are used in several |
1210 | architecture-specific files. | 1229 | architecture-specific files. |
1211 | 1230 | ||
1231 | --- 6.9 Generic header files | ||
1232 | |||
1233 | The directory include/asm-generic contains the header files | ||
1234 | that may be shared between individual architectures. | ||
1235 | The recommended approach how to use a generic header file is | ||
1236 | to list the file in the Kbuild file. | ||
1237 | See "7.4 generic-y" for further info on syntax etc. | ||
1238 | |||
1212 | === 7 Kbuild syntax for exported headers | 1239 | === 7 Kbuild syntax for exported headers |
1213 | 1240 | ||
1214 | The kernel include a set of headers that is exported to userspace. | 1241 | The kernel include a set of headers that is exported to userspace. |
@@ -1265,6 +1292,32 @@ See subsequent chapter for the syntax of the Kbuild file. | |||
1265 | In the example above all exported headers in the Kbuild file | 1292 | In the example above all exported headers in the Kbuild file |
1266 | will be located in the directory "include/linux" when exported. | 1293 | will be located in the directory "include/linux" when exported. |
1267 | 1294 | ||
1295 | --- 7.4 generic-y | ||
1296 | |||
1297 | If an architecture uses a verbatim copy of a header from | ||
1298 | include/asm-generic then this is listed in the file | ||
1299 | arch/$(ARCH)/include/asm/Kbuild like this: | ||
1300 | |||
1301 | Example: | ||
1302 | #arch/x86/include/asm/Kbuild | ||
1303 | generic-y += termios.h | ||
1304 | generic-y += rtc.h | ||
1305 | |||
1306 | During the prepare phase of the build a wrapper include | ||
1307 | file is generated in the directory: | ||
1308 | |||
1309 | arch/$(ARCH)/include/generated/asm | ||
1310 | |||
1311 | When a header is exported where the architecture uses | ||
1312 | the generic header a similar wrapper is generated as part | ||
1313 | of the set of exported headers in the directory: | ||
1314 | |||
1315 | usr/include/asm | ||
1316 | |||
1317 | The generated wrapper will in both cases look like the following: | ||
1318 | |||
1319 | Example: termios.h | ||
1320 | #include <asm-generic/termios.h> | ||
1268 | 1321 | ||
1269 | === 8 Kbuild Variables | 1322 | === 8 Kbuild Variables |
1270 | 1323 | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index c603ef7b056..5438a2d7907 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -1777,9 +1777,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1777 | 1777 | ||
1778 | nosoftlockup [KNL] Disable the soft-lockup detector. | 1778 | nosoftlockup [KNL] Disable the soft-lockup detector. |
1779 | 1779 | ||
1780 | noswapaccount [KNL] Disable accounting of swap in memory resource | ||
1781 | controller. (See Documentation/cgroups/memory.txt) | ||
1782 | |||
1783 | nosync [HW,M68K] Disables sync negotiation for all devices. | 1780 | nosync [HW,M68K] Disables sync negotiation for all devices. |
1784 | 1781 | ||
1785 | notsc [BUGS=X86-32] Disable Time Stamp Counter | 1782 | notsc [BUGS=X86-32] Disable Time Stamp Counter |
@@ -2585,6 +2582,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
2585 | bytes of sense data); | 2582 | bytes of sense data); |
2586 | c = FIX_CAPACITY (decrease the reported | 2583 | c = FIX_CAPACITY (decrease the reported |
2587 | device capacity by one sector); | 2584 | device capacity by one sector); |
2585 | d = NO_READ_DISC_INFO (don't use | ||
2586 | READ_DISC_INFO command); | ||
2587 | e = NO_READ_CAPACITY_16 (don't use | ||
2588 | READ_CAPACITY_16 command); | ||
2588 | h = CAPACITY_HEURISTICS (decrease the | 2589 | h = CAPACITY_HEURISTICS (decrease the |
2589 | reported device capacity by one | 2590 | reported device capacity by one |
2590 | sector if the number is odd); | 2591 | sector if the number is odd); |
diff --git a/Documentation/lockstat.txt b/Documentation/lockstat.txt index 65f4c795015..9c0a80d17a2 100644 --- a/Documentation/lockstat.txt +++ b/Documentation/lockstat.txt | |||
@@ -136,7 +136,7 @@ View the top contending locks: | |||
136 | dcache_lock: 1037 1161 0.38 45.32 774.51 6611 243371 0.15 306.48 77387.24 | 136 | dcache_lock: 1037 1161 0.38 45.32 774.51 6611 243371 0.15 306.48 77387.24 |
137 | &inode->i_mutex: 161 286 18446744073709 62882.54 1244614.55 3653 20598 18446744073709 62318.60 1693822.74 | 137 | &inode->i_mutex: 161 286 18446744073709 62882.54 1244614.55 3653 20598 18446744073709 62318.60 1693822.74 |
138 | &zone->lru_lock: 94 94 0.53 7.33 92.10 4366 32690 0.29 59.81 16350.06 | 138 | &zone->lru_lock: 94 94 0.53 7.33 92.10 4366 32690 0.29 59.81 16350.06 |
139 | &inode->i_data.i_mmap_lock: 79 79 0.40 3.77 53.03 11779 87755 0.28 116.93 29898.44 | 139 | &inode->i_data.i_mmap_mutex: 79 79 0.40 3.77 53.03 11779 87755 0.28 116.93 29898.44 |
140 | &q->__queue_lock: 48 50 0.52 31.62 86.31 774 13131 0.17 113.08 12277.52 | 140 | &q->__queue_lock: 48 50 0.52 31.62 86.31 774 13131 0.17 113.08 12277.52 |
141 | &rq->rq_lock_key: 43 47 0.74 68.50 170.63 3706 33929 0.22 107.99 17460.62 | 141 | &rq->rq_lock_key: 43 47 0.74 68.50 170.63 3706 33929 0.22 107.99 17460.62 |
142 | &rq->rq_lock_key#2: 39 46 0.75 6.68 49.03 2979 32292 0.17 125.17 17137.63 | 142 | &rq->rq_lock_key#2: 39 46 0.75 6.68 49.03 2979 32292 0.17 125.17 17137.63 |
diff --git a/Documentation/mmc/00-INDEX b/Documentation/mmc/00-INDEX index fca586f5b85..93dd7a71407 100644 --- a/Documentation/mmc/00-INDEX +++ b/Documentation/mmc/00-INDEX | |||
@@ -2,3 +2,5 @@ | |||
2 | - this file | 2 | - this file |
3 | mmc-dev-attrs.txt | 3 | mmc-dev-attrs.txt |
4 | - info on SD and MMC device attributes | 4 | - info on SD and MMC device attributes |
5 | mmc-dev-parts.txt | ||
6 | - info on SD and MMC device partitions | ||
diff --git a/Documentation/mmc/mmc-dev-attrs.txt b/Documentation/mmc/mmc-dev-attrs.txt index ff2bd685bce..8898a95b41e 100644 --- a/Documentation/mmc/mmc-dev-attrs.txt +++ b/Documentation/mmc/mmc-dev-attrs.txt | |||
@@ -1,3 +1,13 @@ | |||
1 | SD and MMC Block Device Attributes | ||
2 | ================================== | ||
3 | |||
4 | These attributes are defined for the block devices associated with the | ||
5 | SD or MMC device. | ||
6 | |||
7 | The following attributes are read/write. | ||
8 | |||
9 | force_ro Enforce read-only access even if write protect switch is off. | ||
10 | |||
1 | SD and MMC Device Attributes | 11 | SD and MMC Device Attributes |
2 | ============================ | 12 | ============================ |
3 | 13 | ||
diff --git a/Documentation/mmc/mmc-dev-parts.txt b/Documentation/mmc/mmc-dev-parts.txt new file mode 100644 index 00000000000..2db28b8e662 --- /dev/null +++ b/Documentation/mmc/mmc-dev-parts.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | SD and MMC Device Partitions | ||
2 | ============================ | ||
3 | |||
4 | Device partitions are additional logical block devices present on the | ||
5 | SD/MMC device. | ||
6 | |||
7 | As of this writing, MMC boot partitions as supported and exposed as | ||
8 | /dev/mmcblkXboot0 and /dev/mmcblkXboot1, where X is the index of the | ||
9 | parent /dev/mmcblkX. | ||
10 | |||
11 | MMC Boot Partitions | ||
12 | =================== | ||
13 | |||
14 | Read and write access is provided to the two MMC boot partitions. Due to | ||
15 | the sensitive nature of the boot partition contents, which often store | ||
16 | a bootloader or bootloader configuration tables crucial to booting the | ||
17 | platform, write access is disabled by default to reduce the chance of | ||
18 | accidental bricking. | ||
19 | |||
20 | To enable write access to /dev/mmcblkXbootY, disable the forced read-only | ||
21 | access with: | ||
22 | |||
23 | echo 0 > /sys/block/mmcblkXbootY/force_ro | ||
24 | |||
25 | To re-enable read-only access: | ||
26 | |||
27 | echo 1 > /sys/block/mmcblkXbootY/force_ro | ||
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index 1f45bd887d6..675612ff41a 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
@@ -770,8 +770,17 @@ resend_igmp | |||
770 | a failover event. One membership report is issued immediately after | 770 | a failover event. One membership report is issued immediately after |
771 | the failover, subsequent packets are sent in each 200ms interval. | 771 | the failover, subsequent packets are sent in each 200ms interval. |
772 | 772 | ||
773 | The valid range is 0 - 255; the default value is 1. This option | 773 | The valid range is 0 - 255; the default value is 1. A value of 0 |
774 | was added for bonding version 3.7.0. | 774 | prevents the IGMP membership report from being issued in response |
775 | to the failover event. | ||
776 | |||
777 | This option is useful for bonding modes balance-rr (0), active-backup | ||
778 | (1), balance-tlb (5) and balance-alb (6), in which a failover can | ||
779 | switch the IGMP traffic from one slave to another. Therefore a fresh | ||
780 | IGMP report must be issued to cause the switch to forward the incoming | ||
781 | IGMP traffic over the newly selected slave. | ||
782 | |||
783 | This option was added for bonding version 3.7.0. | ||
775 | 784 | ||
776 | 3. Configuring Bonding Devices | 785 | 3. Configuring Bonding Devices |
777 | ============================== | 786 | ============================== |
diff --git a/Documentation/pti/pti_intel_mid.txt b/Documentation/pti/pti_intel_mid.txt new file mode 100644 index 00000000000..e7a5b6d1f7a --- /dev/null +++ b/Documentation/pti/pti_intel_mid.txt | |||
@@ -0,0 +1,99 @@ | |||
1 | The Intel MID PTI project is HW implemented in Intel Atom | ||
2 | system-on-a-chip designs based on the Parallel Trace | ||
3 | Interface for MIPI P1149.7 cJTAG standard. The kernel solution | ||
4 | for this platform involves the following files: | ||
5 | |||
6 | ./include/linux/pti.h | ||
7 | ./drivers/.../n_tracesink.h | ||
8 | ./drivers/.../n_tracerouter.c | ||
9 | ./drivers/.../n_tracesink.c | ||
10 | ./drivers/.../pti.c | ||
11 | |||
12 | pti.c is the driver that enables various debugging features | ||
13 | popular on platforms from certain mobile manufacturers. | ||
14 | n_tracerouter.c and n_tracesink.c allow extra system information to | ||
15 | be collected and routed to the pti driver, such as trace | ||
16 | debugging data from a modem. Although n_tracerouter | ||
17 | and n_tracesink are a part of the complete PTI solution, | ||
18 | these two line disciplines can work separately from | ||
19 | pti.c and route any data stream from one /dev/tty node | ||
20 | to another /dev/tty node via kernel-space. This provides | ||
21 | a stable, reliable connection that will not break unless | ||
22 | the user-space application shuts down (plus avoids | ||
23 | kernel->user->kernel context switch overheads of routing | ||
24 | data). | ||
25 | |||
26 | An example debugging usage for this driver system: | ||
27 | *Hook /dev/ttyPTI0 to syslogd. Opening this port will also start | ||
28 | a console device to further capture debugging messages to PTI. | ||
29 | *Hook /dev/ttyPTI1 to modem debugging data to write to PTI HW. | ||
30 | This is where n_tracerouter and n_tracesink are used. | ||
31 | *Hook /dev/pti to a user-level debugging application for writing | ||
32 | to PTI HW. | ||
33 | *Use mipi_* Kernel Driver API in other device drivers for | ||
34 | debugging to PTI by first requesting a PTI write address via | ||
35 | mipi_request_masterchannel(1). | ||
36 | |||
37 | Below is example pseudo-code on how a 'privileged' application | ||
38 | can hook up n_tracerouter and n_tracesink to any tty on | ||
39 | a system. 'Privileged' means the application has enough | ||
40 | privileges to successfully manipulate the ldisc drivers | ||
41 | but is not just blindly executing as 'root'. Keep in mind | ||
42 | the use of ioctl(,TIOCSETD,) is not specific to the n_tracerouter | ||
43 | and n_tracesink line discpline drivers but is a generic | ||
44 | operation for a program to use a line discpline driver | ||
45 | on a tty port other than the default n_tty. | ||
46 | |||
47 | /////////// To hook up n_tracerouter and n_tracesink ///////// | ||
48 | |||
49 | // Note that n_tracerouter depends on n_tracesink. | ||
50 | #include <errno.h> | ||
51 | #define ONE_TTY "/dev/ttyOne" | ||
52 | #define TWO_TTY "/dev/ttyTwo" | ||
53 | |||
54 | // needed global to hand onto ldisc connection | ||
55 | static int g_fd_source = -1; | ||
56 | static int g_fd_sink = -1; | ||
57 | |||
58 | // these two vars used to grab LDISC values from loaded ldisc drivers | ||
59 | // in OS. Look at /proc/tty/ldiscs to get the right numbers from | ||
60 | // the ldiscs loaded in the system. | ||
61 | int source_ldisc_num, sink_ldisc_num = -1; | ||
62 | int retval; | ||
63 | |||
64 | g_fd_source = open(ONE_TTY, O_RDWR); // must be R/W | ||
65 | g_fd_sink = open(TWO_TTY, O_RDWR); // must be R/W | ||
66 | |||
67 | if (g_fd_source <= 0) || (g_fd_sink <= 0) { | ||
68 | // doubt you'll want to use these exact error lines of code | ||
69 | printf("Error on open(). errno: %d\n",errno); | ||
70 | return errno; | ||
71 | } | ||
72 | |||
73 | retval = ioctl(g_fd_sink, TIOCSETD, &sink_ldisc_num); | ||
74 | if (retval < 0) { | ||
75 | printf("Error on ioctl(). errno: %d\n", errno); | ||
76 | return errno; | ||
77 | } | ||
78 | |||
79 | retval = ioctl(g_fd_source, TIOCSETD, &source_ldisc_num); | ||
80 | if (retval < 0) { | ||
81 | printf("Error on ioctl(). errno: %d\n", errno); | ||
82 | return errno; | ||
83 | } | ||
84 | |||
85 | /////////// To disconnect n_tracerouter and n_tracesink //////// | ||
86 | |||
87 | // First make sure data through the ldiscs has stopped. | ||
88 | |||
89 | // Second, disconnect ldiscs. This provides a | ||
90 | // little cleaner shutdown on tty stack. | ||
91 | sink_ldisc_num = 0; | ||
92 | source_ldisc_num = 0; | ||
93 | ioctl(g_fd_uart, TIOCSETD, &sink_ldisc_num); | ||
94 | ioctl(g_fd_gadget, TIOCSETD, &source_ldisc_num); | ||
95 | |||
96 | // Three, program closes connection, and cleanup: | ||
97 | close(g_fd_uart); | ||
98 | close(g_fd_gadget); | ||
99 | g_fd_uart = g_fd_gadget = NULL; | ||
diff --git a/Documentation/ptp/ptp.txt b/Documentation/ptp/ptp.txt new file mode 100644 index 00000000000..ae8fef86b83 --- /dev/null +++ b/Documentation/ptp/ptp.txt | |||
@@ -0,0 +1,89 @@ | |||
1 | |||
2 | * PTP hardware clock infrastructure for Linux | ||
3 | |||
4 | This patch set introduces support for IEEE 1588 PTP clocks in | ||
5 | Linux. Together with the SO_TIMESTAMPING socket options, this | ||
6 | presents a standardized method for developing PTP user space | ||
7 | programs, synchronizing Linux with external clocks, and using the | ||
8 | ancillary features of PTP hardware clocks. | ||
9 | |||
10 | A new class driver exports a kernel interface for specific clock | ||
11 | drivers and a user space interface. The infrastructure supports a | ||
12 | complete set of PTP hardware clock functionality. | ||
13 | |||
14 | + Basic clock operations | ||
15 | - Set time | ||
16 | - Get time | ||
17 | - Shift the clock by a given offset atomically | ||
18 | - Adjust clock frequency | ||
19 | |||
20 | + Ancillary clock features | ||
21 | - One short or periodic alarms, with signal delivery to user program | ||
22 | - Time stamp external events | ||
23 | - Period output signals configurable from user space | ||
24 | - Synchronization of the Linux system time via the PPS subsystem | ||
25 | |||
26 | ** PTP hardware clock kernel API | ||
27 | |||
28 | A PTP clock driver registers itself with the class driver. The | ||
29 | class driver handles all of the dealings with user space. The | ||
30 | author of a clock driver need only implement the details of | ||
31 | programming the clock hardware. The clock driver notifies the class | ||
32 | driver of asynchronous events (alarms and external time stamps) via | ||
33 | a simple message passing interface. | ||
34 | |||
35 | The class driver supports multiple PTP clock drivers. In normal use | ||
36 | cases, only one PTP clock is needed. However, for testing and | ||
37 | development, it can be useful to have more than one clock in a | ||
38 | single system, in order to allow performance comparisons. | ||
39 | |||
40 | ** PTP hardware clock user space API | ||
41 | |||
42 | The class driver also creates a character device for each | ||
43 | registered clock. User space can use an open file descriptor from | ||
44 | the character device as a POSIX clock id and may call | ||
45 | clock_gettime, clock_settime, and clock_adjtime. These calls | ||
46 | implement the basic clock operations. | ||
47 | |||
48 | User space programs may control the clock using standardized | ||
49 | ioctls. A program may query, enable, configure, and disable the | ||
50 | ancillary clock features. User space can receive time stamped | ||
51 | events via blocking read() and poll(). One shot and periodic | ||
52 | signals may be configured via the POSIX timer_settime() system | ||
53 | call. | ||
54 | |||
55 | ** Writing clock drivers | ||
56 | |||
57 | Clock drivers include include/linux/ptp_clock_kernel.h and register | ||
58 | themselves by presenting a 'struct ptp_clock_info' to the | ||
59 | registration method. Clock drivers must implement all of the | ||
60 | functions in the interface. If a clock does not offer a particular | ||
61 | ancillary feature, then the driver should just return -EOPNOTSUPP | ||
62 | from those functions. | ||
63 | |||
64 | Drivers must ensure that all of the methods in interface are | ||
65 | reentrant. Since most hardware implementations treat the time value | ||
66 | as a 64 bit integer accessed as two 32 bit registers, drivers | ||
67 | should use spin_lock_irqsave/spin_unlock_irqrestore to protect | ||
68 | against concurrent access. This locking cannot be accomplished in | ||
69 | class driver, since the lock may also be needed by the clock | ||
70 | driver's interrupt service routine. | ||
71 | |||
72 | ** Supported hardware | ||
73 | |||
74 | + Freescale eTSEC gianfar | ||
75 | - 2 Time stamp external triggers, programmable polarity (opt. interrupt) | ||
76 | - 2 Alarm registers (optional interrupt) | ||
77 | - 3 Periodic signals (optional interrupt) | ||
78 | |||
79 | + National DP83640 | ||
80 | - 6 GPIOs programmable as inputs or outputs | ||
81 | - 6 GPIOs with dedicated functions (LED/JTAG/clock) can also be | ||
82 | used as general inputs or outputs | ||
83 | - GPIO inputs can time stamp external triggers | ||
84 | - GPIO outputs can produce periodic signals | ||
85 | - 1 interrupt pin | ||
86 | |||
87 | + Intel IXP465 | ||
88 | - Auxiliary Slave/Master Mode Snapshot (optional interrupt) | ||
89 | - Target Time (optional interrupt) | ||
diff --git a/Documentation/ptp/testptp.c b/Documentation/ptp/testptp.c new file mode 100644 index 00000000000..f59ded06610 --- /dev/null +++ b/Documentation/ptp/testptp.c | |||
@@ -0,0 +1,381 @@ | |||
1 | /* | ||
2 | * PTP 1588 clock support - User space test program | ||
3 | * | ||
4 | * Copyright (C) 2010 OMICRON electronics GmbH | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | #include <errno.h> | ||
21 | #include <fcntl.h> | ||
22 | #include <math.h> | ||
23 | #include <signal.h> | ||
24 | #include <stdio.h> | ||
25 | #include <stdlib.h> | ||
26 | #include <string.h> | ||
27 | #include <sys/ioctl.h> | ||
28 | #include <sys/mman.h> | ||
29 | #include <sys/stat.h> | ||
30 | #include <sys/time.h> | ||
31 | #include <sys/timex.h> | ||
32 | #include <sys/types.h> | ||
33 | #include <time.h> | ||
34 | #include <unistd.h> | ||
35 | |||
36 | #include <linux/ptp_clock.h> | ||
37 | |||
38 | #define DEVICE "/dev/ptp0" | ||
39 | |||
40 | #ifndef ADJ_SETOFFSET | ||
41 | #define ADJ_SETOFFSET 0x0100 | ||
42 | #endif | ||
43 | |||
44 | #ifndef CLOCK_INVALID | ||
45 | #define CLOCK_INVALID -1 | ||
46 | #endif | ||
47 | |||
48 | /* When glibc offers the syscall, this will go away. */ | ||
49 | #include <sys/syscall.h> | ||
50 | static int clock_adjtime(clockid_t id, struct timex *tx) | ||
51 | { | ||
52 | return syscall(__NR_clock_adjtime, id, tx); | ||
53 | } | ||
54 | |||
55 | static clockid_t get_clockid(int fd) | ||
56 | { | ||
57 | #define CLOCKFD 3 | ||
58 | #define FD_TO_CLOCKID(fd) ((~(clockid_t) (fd) << 3) | CLOCKFD) | ||
59 | |||
60 | return FD_TO_CLOCKID(fd); | ||
61 | } | ||
62 | |||
63 | static void handle_alarm(int s) | ||
64 | { | ||
65 | printf("received signal %d\n", s); | ||
66 | } | ||
67 | |||
68 | static int install_handler(int signum, void (*handler)(int)) | ||
69 | { | ||
70 | struct sigaction action; | ||
71 | sigset_t mask; | ||
72 | |||
73 | /* Unblock the signal. */ | ||
74 | sigemptyset(&mask); | ||
75 | sigaddset(&mask, signum); | ||
76 | sigprocmask(SIG_UNBLOCK, &mask, NULL); | ||
77 | |||
78 | /* Install the signal handler. */ | ||
79 | action.sa_handler = handler; | ||
80 | action.sa_flags = 0; | ||
81 | sigemptyset(&action.sa_mask); | ||
82 | sigaction(signum, &action, NULL); | ||
83 | |||
84 | return 0; | ||
85 | } | ||
86 | |||
87 | static long ppb_to_scaled_ppm(int ppb) | ||
88 | { | ||
89 | /* | ||
90 | * The 'freq' field in the 'struct timex' is in parts per | ||
91 | * million, but with a 16 bit binary fractional field. | ||
92 | * Instead of calculating either one of | ||
93 | * | ||
94 | * scaled_ppm = (ppb / 1000) << 16 [1] | ||
95 | * scaled_ppm = (ppb << 16) / 1000 [2] | ||
96 | * | ||
97 | * we simply use double precision math, in order to avoid the | ||
98 | * truncation in [1] and the possible overflow in [2]. | ||
99 | */ | ||
100 | return (long) (ppb * 65.536); | ||
101 | } | ||
102 | |||
103 | static void usage(char *progname) | ||
104 | { | ||
105 | fprintf(stderr, | ||
106 | "usage: %s [options]\n" | ||
107 | " -a val request a one-shot alarm after 'val' seconds\n" | ||
108 | " -A val request a periodic alarm every 'val' seconds\n" | ||
109 | " -c query the ptp clock's capabilities\n" | ||
110 | " -d name device to open\n" | ||
111 | " -e val read 'val' external time stamp events\n" | ||
112 | " -f val adjust the ptp clock frequency by 'val' ppb\n" | ||
113 | " -g get the ptp clock time\n" | ||
114 | " -h prints this message\n" | ||
115 | " -p val enable output with a period of 'val' nanoseconds\n" | ||
116 | " -P val enable or disable (val=1|0) the system clock PPS\n" | ||
117 | " -s set the ptp clock time from the system time\n" | ||
118 | " -S set the system time from the ptp clock time\n" | ||
119 | " -t val shift the ptp clock time by 'val' seconds\n", | ||
120 | progname); | ||
121 | } | ||
122 | |||
123 | int main(int argc, char *argv[]) | ||
124 | { | ||
125 | struct ptp_clock_caps caps; | ||
126 | struct ptp_extts_event event; | ||
127 | struct ptp_extts_request extts_request; | ||
128 | struct ptp_perout_request perout_request; | ||
129 | struct timespec ts; | ||
130 | struct timex tx; | ||
131 | |||
132 | static timer_t timerid; | ||
133 | struct itimerspec timeout; | ||
134 | struct sigevent sigevent; | ||
135 | |||
136 | char *progname; | ||
137 | int c, cnt, fd; | ||
138 | |||
139 | char *device = DEVICE; | ||
140 | clockid_t clkid; | ||
141 | int adjfreq = 0x7fffffff; | ||
142 | int adjtime = 0; | ||
143 | int capabilities = 0; | ||
144 | int extts = 0; | ||
145 | int gettime = 0; | ||
146 | int oneshot = 0; | ||
147 | int periodic = 0; | ||
148 | int perout = -1; | ||
149 | int pps = -1; | ||
150 | int settime = 0; | ||
151 | |||
152 | progname = strrchr(argv[0], '/'); | ||
153 | progname = progname ? 1+progname : argv[0]; | ||
154 | while (EOF != (c = getopt(argc, argv, "a:A:cd:e:f:ghp:P:sSt:v"))) { | ||
155 | switch (c) { | ||
156 | case 'a': | ||
157 | oneshot = atoi(optarg); | ||
158 | break; | ||
159 | case 'A': | ||
160 | periodic = atoi(optarg); | ||
161 | break; | ||
162 | case 'c': | ||
163 | capabilities = 1; | ||
164 | break; | ||
165 | case 'd': | ||
166 | device = optarg; | ||
167 | break; | ||
168 | case 'e': | ||
169 | extts = atoi(optarg); | ||
170 | break; | ||
171 | case 'f': | ||
172 | adjfreq = atoi(optarg); | ||
173 | break; | ||
174 | case 'g': | ||
175 | gettime = 1; | ||
176 | break; | ||
177 | case 'p': | ||
178 | perout = atoi(optarg); | ||
179 | break; | ||
180 | case 'P': | ||
181 | pps = atoi(optarg); | ||
182 | break; | ||
183 | case 's': | ||
184 | settime = 1; | ||
185 | break; | ||
186 | case 'S': | ||
187 | settime = 2; | ||
188 | break; | ||
189 | case 't': | ||
190 | adjtime = atoi(optarg); | ||
191 | break; | ||
192 | case 'h': | ||
193 | usage(progname); | ||
194 | return 0; | ||
195 | case '?': | ||
196 | default: | ||
197 | usage(progname); | ||
198 | return -1; | ||
199 | } | ||
200 | } | ||
201 | |||
202 | fd = open(device, O_RDWR); | ||
203 | if (fd < 0) { | ||
204 | fprintf(stderr, "opening %s: %s\n", device, strerror(errno)); | ||
205 | return -1; | ||
206 | } | ||
207 | |||
208 | clkid = get_clockid(fd); | ||
209 | if (CLOCK_INVALID == clkid) { | ||
210 | fprintf(stderr, "failed to read clock id\n"); | ||
211 | return -1; | ||
212 | } | ||
213 | |||
214 | if (capabilities) { | ||
215 | if (ioctl(fd, PTP_CLOCK_GETCAPS, &caps)) { | ||
216 | perror("PTP_CLOCK_GETCAPS"); | ||
217 | } else { | ||
218 | printf("capabilities:\n" | ||
219 | " %d maximum frequency adjustment (ppb)\n" | ||
220 | " %d programmable alarms\n" | ||
221 | " %d external time stamp channels\n" | ||
222 | " %d programmable periodic signals\n" | ||
223 | " %d pulse per second\n", | ||
224 | caps.max_adj, | ||
225 | caps.n_alarm, | ||
226 | caps.n_ext_ts, | ||
227 | caps.n_per_out, | ||
228 | caps.pps); | ||
229 | } | ||
230 | } | ||
231 | |||
232 | if (0x7fffffff != adjfreq) { | ||
233 | memset(&tx, 0, sizeof(tx)); | ||
234 | tx.modes = ADJ_FREQUENCY; | ||
235 | tx.freq = ppb_to_scaled_ppm(adjfreq); | ||
236 | if (clock_adjtime(clkid, &tx)) { | ||
237 | perror("clock_adjtime"); | ||
238 | } else { | ||
239 | puts("frequency adjustment okay"); | ||
240 | } | ||
241 | } | ||
242 | |||
243 | if (adjtime) { | ||
244 | memset(&tx, 0, sizeof(tx)); | ||
245 | tx.modes = ADJ_SETOFFSET; | ||
246 | tx.time.tv_sec = adjtime; | ||
247 | tx.time.tv_usec = 0; | ||
248 | if (clock_adjtime(clkid, &tx) < 0) { | ||
249 | perror("clock_adjtime"); | ||
250 | } else { | ||
251 | puts("time shift okay"); | ||
252 | } | ||
253 | } | ||
254 | |||
255 | if (gettime) { | ||
256 | if (clock_gettime(clkid, &ts)) { | ||
257 | perror("clock_gettime"); | ||
258 | } else { | ||
259 | printf("clock time: %ld.%09ld or %s", | ||
260 | ts.tv_sec, ts.tv_nsec, ctime(&ts.tv_sec)); | ||
261 | } | ||
262 | } | ||
263 | |||
264 | if (settime == 1) { | ||
265 | clock_gettime(CLOCK_REALTIME, &ts); | ||
266 | if (clock_settime(clkid, &ts)) { | ||
267 | perror("clock_settime"); | ||
268 | } else { | ||
269 | puts("set time okay"); | ||
270 | } | ||
271 | } | ||
272 | |||
273 | if (settime == 2) { | ||
274 | clock_gettime(clkid, &ts); | ||
275 | if (clock_settime(CLOCK_REALTIME, &ts)) { | ||
276 | perror("clock_settime"); | ||
277 | } else { | ||
278 | puts("set time okay"); | ||
279 | } | ||
280 | } | ||
281 | |||
282 | if (extts) { | ||
283 | memset(&extts_request, 0, sizeof(extts_request)); | ||
284 | extts_request.index = 0; | ||
285 | extts_request.flags = PTP_ENABLE_FEATURE; | ||
286 | if (ioctl(fd, PTP_EXTTS_REQUEST, &extts_request)) { | ||
287 | perror("PTP_EXTTS_REQUEST"); | ||
288 | extts = 0; | ||
289 | } else { | ||
290 | puts("external time stamp request okay"); | ||
291 | } | ||
292 | for (; extts; extts--) { | ||
293 | cnt = read(fd, &event, sizeof(event)); | ||
294 | if (cnt != sizeof(event)) { | ||
295 | perror("read"); | ||
296 | break; | ||
297 | } | ||
298 | printf("event index %u at %lld.%09u\n", event.index, | ||
299 | event.t.sec, event.t.nsec); | ||
300 | fflush(stdout); | ||
301 | } | ||
302 | /* Disable the feature again. */ | ||
303 | extts_request.flags = 0; | ||
304 | if (ioctl(fd, PTP_EXTTS_REQUEST, &extts_request)) { | ||
305 | perror("PTP_EXTTS_REQUEST"); | ||
306 | } | ||
307 | } | ||
308 | |||
309 | if (oneshot) { | ||
310 | install_handler(SIGALRM, handle_alarm); | ||
311 | /* Create a timer. */ | ||
312 | sigevent.sigev_notify = SIGEV_SIGNAL; | ||
313 | sigevent.sigev_signo = SIGALRM; | ||
314 | if (timer_create(clkid, &sigevent, &timerid)) { | ||
315 | perror("timer_create"); | ||
316 | return -1; | ||
317 | } | ||
318 | /* Start the timer. */ | ||
319 | memset(&timeout, 0, sizeof(timeout)); | ||
320 | timeout.it_value.tv_sec = oneshot; | ||
321 | if (timer_settime(timerid, 0, &timeout, NULL)) { | ||
322 | perror("timer_settime"); | ||
323 | return -1; | ||
324 | } | ||
325 | pause(); | ||
326 | timer_delete(timerid); | ||
327 | } | ||
328 | |||
329 | if (periodic) { | ||
330 | install_handler(SIGALRM, handle_alarm); | ||
331 | /* Create a timer. */ | ||
332 | sigevent.sigev_notify = SIGEV_SIGNAL; | ||
333 | sigevent.sigev_signo = SIGALRM; | ||
334 | if (timer_create(clkid, &sigevent, &timerid)) { | ||
335 | perror("timer_create"); | ||
336 | return -1; | ||
337 | } | ||
338 | /* Start the timer. */ | ||
339 | memset(&timeout, 0, sizeof(timeout)); | ||
340 | timeout.it_interval.tv_sec = periodic; | ||
341 | timeout.it_value.tv_sec = periodic; | ||
342 | if (timer_settime(timerid, 0, &timeout, NULL)) { | ||
343 | perror("timer_settime"); | ||
344 | return -1; | ||
345 | } | ||
346 | while (1) { | ||
347 | pause(); | ||
348 | } | ||
349 | timer_delete(timerid); | ||
350 | } | ||
351 | |||
352 | if (perout >= 0) { | ||
353 | if (clock_gettime(clkid, &ts)) { | ||
354 | perror("clock_gettime"); | ||
355 | return -1; | ||
356 | } | ||
357 | memset(&perout_request, 0, sizeof(perout_request)); | ||
358 | perout_request.index = 0; | ||
359 | perout_request.start.sec = ts.tv_sec + 2; | ||
360 | perout_request.start.nsec = 0; | ||
361 | perout_request.period.sec = 0; | ||
362 | perout_request.period.nsec = perout; | ||
363 | if (ioctl(fd, PTP_PEROUT_REQUEST, &perout_request)) { | ||
364 | perror("PTP_PEROUT_REQUEST"); | ||
365 | } else { | ||
366 | puts("periodic output request okay"); | ||
367 | } | ||
368 | } | ||
369 | |||
370 | if (pps != -1) { | ||
371 | int enable = pps ? 1 : 0; | ||
372 | if (ioctl(fd, PTP_ENABLE_PPS, enable)) { | ||
373 | perror("PTP_ENABLE_PPS"); | ||
374 | } else { | ||
375 | puts("pps for system time request okay"); | ||
376 | } | ||
377 | } | ||
378 | |||
379 | close(fd); | ||
380 | return 0; | ||
381 | } | ||
diff --git a/Documentation/ptp/testptp.mk b/Documentation/ptp/testptp.mk new file mode 100644 index 00000000000..4ef2d975542 --- /dev/null +++ b/Documentation/ptp/testptp.mk | |||
@@ -0,0 +1,33 @@ | |||
1 | # PTP 1588 clock support - User space test program | ||
2 | # | ||
3 | # Copyright (C) 2010 OMICRON electronics GmbH | ||
4 | # | ||
5 | # This program is free software; you can redistribute it and/or modify | ||
6 | # it under the terms of the GNU General Public License as published by | ||
7 | # the Free Software Foundation; either version 2 of the License, or | ||
8 | # (at your option) any later version. | ||
9 | # | ||
10 | # This program is distributed in the hope that it will be useful, | ||
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | # GNU General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with this program; if not, write to the Free Software | ||
17 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | |||
19 | CC = $(CROSS_COMPILE)gcc | ||
20 | INC = -I$(KBUILD_OUTPUT)/usr/include | ||
21 | CFLAGS = -Wall $(INC) | ||
22 | LDLIBS = -lrt | ||
23 | PROGS = testptp | ||
24 | |||
25 | all: $(PROGS) | ||
26 | |||
27 | testptp: testptp.o | ||
28 | |||
29 | clean: | ||
30 | rm -f testptp.o | ||
31 | |||
32 | distclean: clean | ||
33 | rm -f $(PROGS) | ||
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 9822afb6313..89757012c7f 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -1230,6 +1230,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1230 | This module supports multiple cards. | 1230 | This module supports multiple cards. |
1231 | The driver requires the firmware loader support on kernel. | 1231 | The driver requires the firmware loader support on kernel. |
1232 | 1232 | ||
1233 | Module snd-lola | ||
1234 | --------------- | ||
1235 | |||
1236 | Module for Digigram Lola PCI-e boards | ||
1237 | |||
1238 | This module supports multiple cards. | ||
1239 | |||
1233 | Module snd-lx6464es | 1240 | Module snd-lx6464es |
1234 | ------------------- | 1241 | ------------------- |
1235 | 1242 | ||
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt index 0caf77e59be..d70c93bdcad 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt | |||
@@ -94,7 +94,7 @@ ALC662/663/272 | |||
94 | 3stack-dig 3-stack (2-channel) with SPDIF | 94 | 3stack-dig 3-stack (2-channel) with SPDIF |
95 | 3stack-6ch 3-stack (6-channel) | 95 | 3stack-6ch 3-stack (6-channel) |
96 | 3stack-6ch-dig 3-stack (6-channel) with SPDIF | 96 | 3stack-6ch-dig 3-stack (6-channel) with SPDIF |
97 | 6stack-dig 6-stack with SPDIF | 97 | 5stack-dig 5-stack with SPDIF |
98 | lenovo-101e Lenovo laptop | 98 | lenovo-101e Lenovo laptop |
99 | eeepc-p701 ASUS Eeepc P701 | 99 | eeepc-p701 ASUS Eeepc P701 |
100 | eeepc-ep20 ASUS Eeepc EP20 | 100 | eeepc-ep20 ASUS Eeepc EP20 |
diff --git a/Documentation/stable_api_nonsense.txt b/Documentation/stable_api_nonsense.txt index 847b342b7b2..db3be892afb 100644 --- a/Documentation/stable_api_nonsense.txt +++ b/Documentation/stable_api_nonsense.txt | |||
@@ -122,7 +122,7 @@ operating system to suffer. | |||
122 | 122 | ||
123 | In both of these instances, all developers agreed that these were | 123 | In both of these instances, all developers agreed that these were |
124 | important changes that needed to be made, and they were made, with | 124 | important changes that needed to be made, and they were made, with |
125 | relatively little pain. If Linux had to ensure that it preserve a | 125 | relatively little pain. If Linux had to ensure that it will preserve a |
126 | stable source interface, a new interface would have been created, and | 126 | stable source interface, a new interface would have been created, and |
127 | the older, broken one would have had to be maintained over time, leading | 127 | the older, broken one would have had to be maintained over time, leading |
128 | to extra work for the USB developers. Since all Linux USB developers do | 128 | to extra work for the USB developers. Since all Linux USB developers do |
diff --git a/Documentation/sysctl/fs.txt b/Documentation/sysctl/fs.txt index 4af0614147e..88fd7f5c8dc 100644 --- a/Documentation/sysctl/fs.txt +++ b/Documentation/sysctl/fs.txt | |||
@@ -231,13 +231,6 @@ its creation). | |||
231 | 231 | ||
232 | This directory contains configuration options for the epoll(7) interface. | 232 | This directory contains configuration options for the epoll(7) interface. |
233 | 233 | ||
234 | max_user_instances | ||
235 | ------------------ | ||
236 | |||
237 | This is the maximum number of epoll file descriptors that a single user can | ||
238 | have open at a given time. The default value is 128, and should be enough | ||
239 | for normal users. | ||
240 | |||
241 | max_user_watches | 234 | max_user_watches |
242 | ---------------- | 235 | ---------------- |
243 | 236 | ||
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt index 30289fab86e..96f0ee825be 100644 --- a/Documentation/sysctl/vm.txt +++ b/Documentation/sysctl/vm.txt | |||
@@ -481,10 +481,10 @@ the DMA zone. | |||
481 | Type(A) is called as "Node" order. Type (B) is "Zone" order. | 481 | Type(A) is called as "Node" order. Type (B) is "Zone" order. |
482 | 482 | ||
483 | "Node order" orders the zonelists by node, then by zone within each node. | 483 | "Node order" orders the zonelists by node, then by zone within each node. |
484 | Specify "[Nn]ode" for zone order | 484 | Specify "[Nn]ode" for node order |
485 | 485 | ||
486 | "Zone Order" orders the zonelists by zone type, then by node within each | 486 | "Zone Order" orders the zonelists by zone type, then by node within each |
487 | zone. Specify "[Zz]one"for zode order. | 487 | zone. Specify "[Zz]one" for zone order. |
488 | 488 | ||
489 | Specify "[Dd]efault" to request automatic configuration. Autoconfiguration | 489 | Specify "[Dd]efault" to request automatic configuration. Autoconfiguration |
490 | will select "node" order in following case. | 490 | will select "node" order in following case. |
diff --git a/Documentation/timers/timers-howto.txt b/Documentation/timers/timers-howto.txt index c9ef29d2ede..038f8c77a07 100644 --- a/Documentation/timers/timers-howto.txt +++ b/Documentation/timers/timers-howto.txt | |||
@@ -24,7 +24,7 @@ ATOMIC CONTEXT: | |||
24 | 24 | ||
25 | ndelay(unsigned long nsecs) | 25 | ndelay(unsigned long nsecs) |
26 | udelay(unsigned long usecs) | 26 | udelay(unsigned long usecs) |
27 | mdelay(unsgined long msecs) | 27 | mdelay(unsigned long msecs) |
28 | 28 | ||
29 | udelay is the generally preferred API; ndelay-level | 29 | udelay is the generally preferred API; ndelay-level |
30 | precision may not actually exist on many non-PC devices. | 30 | precision may not actually exist on many non-PC devices. |
diff --git a/Documentation/usb/callbacks.txt b/Documentation/usb/callbacks.txt index bfb36b34b79..9e85846bdb9 100644 --- a/Documentation/usb/callbacks.txt +++ b/Documentation/usb/callbacks.txt | |||
@@ -95,9 +95,11 @@ pre_reset | |||
95 | 95 | ||
96 | int (*pre_reset)(struct usb_interface *intf); | 96 | int (*pre_reset)(struct usb_interface *intf); |
97 | 97 | ||
98 | Another driver or user space is triggering a reset on the device which | 98 | A driver or user space is triggering a reset on the device which |
99 | contains the interface passed as an argument. Cease IO and save any | 99 | contains the interface passed as an argument. Cease IO, wait for all |
100 | device state you need to restore. | 100 | outstanding URBs to complete, and save any device state you need to |
101 | restore. No more URBs may be submitted until the post_reset method | ||
102 | is called. | ||
101 | 103 | ||
102 | If you need to allocate memory here, use GFP_NOIO or GFP_ATOMIC, if you | 104 | If you need to allocate memory here, use GFP_NOIO or GFP_ATOMIC, if you |
103 | are in atomic context. | 105 | are in atomic context. |
diff --git a/Documentation/usb/linux-cdc-acm.inf b/Documentation/usb/linux-cdc-acm.inf index 612e7220fb2..37a02ce5484 100644 --- a/Documentation/usb/linux-cdc-acm.inf +++ b/Documentation/usb/linux-cdc-acm.inf | |||
@@ -90,10 +90,10 @@ ServiceBinary=%12%\USBSER.sys | |||
90 | [SourceDisksFiles] | 90 | [SourceDisksFiles] |
91 | [SourceDisksNames] | 91 | [SourceDisksNames] |
92 | [DeviceList] | 92 | [DeviceList] |
93 | %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02 | 93 | %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02 |
94 | 94 | ||
95 | [DeviceList.NTamd64] | 95 | [DeviceList.NTamd64] |
96 | %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02 | 96 | %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02 |
97 | 97 | ||
98 | 98 | ||
99 | ;------------------------------------------------------------------------------ | 99 | ;------------------------------------------------------------------------------ |
diff --git a/Documentation/usb/linux.inf b/Documentation/usb/linux.inf index 4dee9585122..4ffa715b0ae 100644 --- a/Documentation/usb/linux.inf +++ b/Documentation/usb/linux.inf | |||
@@ -18,15 +18,15 @@ DriverVer = 06/21/2006,6.0.6000.16384 | |||
18 | 18 | ||
19 | ; Decoration for x86 architecture | 19 | ; Decoration for x86 architecture |
20 | [LinuxDevices.NTx86] | 20 | [LinuxDevices.NTx86] |
21 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 | 21 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 |
22 | 22 | ||
23 | ; Decoration for x64 architecture | 23 | ; Decoration for x64 architecture |
24 | [LinuxDevices.NTamd64] | 24 | [LinuxDevices.NTamd64] |
25 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 | 25 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 |
26 | 26 | ||
27 | ; Decoration for ia64 architecture | 27 | ; Decoration for ia64 architecture |
28 | [LinuxDevices.NTia64] | 28 | [LinuxDevices.NTia64] |
29 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 | 29 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 |
30 | 30 | ||
31 | ;@@@ This is the common setting for setup | 31 | ;@@@ This is the common setting for setup |
32 | [ControlFlags] | 32 | [ControlFlags] |
diff --git a/Documentation/vgaarbiter.txt b/Documentation/vgaarbiter.txt index 43a9b0694fd..b7d401e0eae 100644 --- a/Documentation/vgaarbiter.txt +++ b/Documentation/vgaarbiter.txt | |||
@@ -14,11 +14,10 @@ the legacy VGA arbitration task (besides other bus management tasks) when more | |||
14 | than one legacy device co-exists on the same machine. But the problem happens | 14 | than one legacy device co-exists on the same machine. But the problem happens |
15 | when these devices are trying to be accessed by different userspace clients | 15 | when these devices are trying to be accessed by different userspace clients |
16 | (e.g. two server in parallel). Their address assignments conflict. Moreover, | 16 | (e.g. two server in parallel). Their address assignments conflict. Moreover, |
17 | ideally, being an userspace application, it is not the role of the the X | 17 | ideally, being a userspace application, it is not the role of the X server to |
18 | server to control bus resources. Therefore an arbitration scheme outside of | 18 | control bus resources. Therefore an arbitration scheme outside of the X server |
19 | the X server is needed to control the sharing of these resources. This | 19 | is needed to control the sharing of these resources. This document introduces |
20 | document introduces the operation of the VGA arbiter implemented for Linux | 20 | the operation of the VGA arbiter implemented for the Linux kernel. |
21 | kernel. | ||
22 | 21 | ||
23 | ---------------------------------------------------------------------------- | 22 | ---------------------------------------------------------------------------- |
24 | 23 | ||
@@ -39,7 +38,7 @@ I.1 vgaarb | |||
39 | The vgaarb is a module of the Linux Kernel. When it is initially loaded, it | 38 | The vgaarb is a module of the Linux Kernel. When it is initially loaded, it |
40 | scans all PCI devices and adds the VGA ones inside the arbitration. The | 39 | scans all PCI devices and adds the VGA ones inside the arbitration. The |
41 | arbiter then enables/disables the decoding on different devices of the VGA | 40 | arbiter then enables/disables the decoding on different devices of the VGA |
42 | legacy instructions. Device which do not want/need to use the arbiter may | 41 | legacy instructions. Devices which do not want/need to use the arbiter may |
43 | explicitly tell it by calling vga_set_legacy_decoding(). | 42 | explicitly tell it by calling vga_set_legacy_decoding(). |
44 | 43 | ||
45 | The kernel exports a char device interface (/dev/vga_arbiter) to the clients, | 44 | The kernel exports a char device interface (/dev/vga_arbiter) to the clients, |
@@ -95,8 +94,8 @@ In the case of devices hot-{un,}plugged, there is a hook - pci_notify() - to | |||
95 | notify them being added/removed in the system and automatically added/removed | 94 | notify them being added/removed in the system and automatically added/removed |
96 | in the arbiter. | 95 | in the arbiter. |
97 | 96 | ||
98 | There's also a in-kernel API of the arbiter in the case of DRM, vgacon and | 97 | There is also an in-kernel API of the arbiter in case DRM, vgacon, or other |
99 | others which may use the arbiter. | 98 | drivers want to use it. |
100 | 99 | ||
101 | 100 | ||
102 | I.2 libpciaccess | 101 | I.2 libpciaccess |
@@ -117,9 +116,8 @@ Besides it, in pci_system were added: | |||
117 | struct pci_device *vga_default_dev; | 116 | struct pci_device *vga_default_dev; |
118 | 117 | ||
119 | 118 | ||
120 | The vga_count is usually need to keep informed how many cards are being | 119 | The vga_count is used to track how many cards are being arbitrated, so for |
121 | arbitrated, so for instance if there's only one then it can totally escape the | 120 | instance, if there is only one card, then it can completely escape arbitration. |
122 | scheme. | ||
123 | 121 | ||
124 | 122 | ||
125 | These functions below acquire VGA resources for the given card and mark those | 123 | These functions below acquire VGA resources for the given card and mark those |
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx index 31b485723bc..9aae449440d 100644 --- a/Documentation/video4linux/CARDLIST.em28xx +++ b/Documentation/video4linux/CARDLIST.em28xx | |||
@@ -54,7 +54,7 @@ | |||
54 | 53 -> Pinnacle Hybrid Pro (em2881) | 54 | 53 -> Pinnacle Hybrid Pro (em2881) |
55 | 54 -> Kworld VS-DVB-T 323UR (em2882) [eb1a:e323] | 55 | 54 -> Kworld VS-DVB-T 323UR (em2882) [eb1a:e323] |
56 | 55 -> Terratec Cinnergy Hybrid T USB XS (em2882) (em2882) [0ccd:005e,0ccd:0042] | 56 | 55 -> Terratec Cinnergy Hybrid T USB XS (em2882) (em2882) [0ccd:005e,0ccd:0042] |
57 | 56 -> Pinnacle Hybrid Pro (2) (em2882) [2304:0226] | 57 | 56 -> Pinnacle Hybrid Pro (330e) (em2882) [2304:0226] |
58 | 57 -> Kworld PlusTV HD Hybrid 330 (em2883) [eb1a:a316] | 58 | 57 -> Kworld PlusTV HD Hybrid 330 (em2883) [eb1a:a316] |
59 | 58 -> Compro VideoMate ForYou/Stereo (em2820/em2840) [185b:2041] | 59 | 58 -> Compro VideoMate ForYou/Stereo (em2820/em2840) [185b:2041] |
60 | 60 -> Hauppauge WinTV HVR 850 (em2883) [2040:651f] | 60 | 60 -> Hauppauge WinTV HVR 850 (em2883) [2040:651f] |
diff --git a/Documentation/video4linux/Zoran b/Documentation/video4linux/Zoran index c40e3bab08f..9ed629d4874 100644 --- a/Documentation/video4linux/Zoran +++ b/Documentation/video4linux/Zoran | |||
@@ -130,7 +130,6 @@ Card number: 4 | |||
130 | 130 | ||
131 | Note: No module for the mse3000 is available yet | 131 | Note: No module for the mse3000 is available yet |
132 | Note: No module for the vpx3224 is available yet | 132 | Note: No module for the vpx3224 is available yet |
133 | Note: use encoder=X or decoder=X for non-default i2c chips | ||
134 | 133 | ||
135 | =========================== | 134 | =========================== |
136 | 135 | ||
diff --git a/Documentation/video4linux/gspca.txt b/Documentation/video4linux/gspca.txt index 5c542e60f51..5bfa9a777d2 100644 --- a/Documentation/video4linux/gspca.txt +++ b/Documentation/video4linux/gspca.txt | |||
@@ -275,6 +275,7 @@ pac7302 093a:2629 Genious iSlim 300 | |||
275 | pac7302 093a:262a Webcam 300k | 275 | pac7302 093a:262a Webcam 300k |
276 | pac7302 093a:262c Philips SPC 230 NC | 276 | pac7302 093a:262c Philips SPC 230 NC |
277 | jeilinj 0979:0280 Sakar 57379 | 277 | jeilinj 0979:0280 Sakar 57379 |
278 | jeilinj 0979:0280 Sportscam DV15 | ||
278 | zc3xx 0ac8:0302 Z-star Vimicro zc0302 | 279 | zc3xx 0ac8:0302 Z-star Vimicro zc0302 |
279 | vc032x 0ac8:0321 Vimicro generic vc0321 | 280 | vc032x 0ac8:0321 Vimicro generic vc0321 |
280 | vc032x 0ac8:0323 Vimicro Vc0323 | 281 | vc032x 0ac8:0323 Vimicro Vc0323 |
diff --git a/Documentation/video4linux/uvcvideo.txt b/Documentation/video4linux/uvcvideo.txt new file mode 100644 index 00000000000..848d620dcc5 --- /dev/null +++ b/Documentation/video4linux/uvcvideo.txt | |||
@@ -0,0 +1,239 @@ | |||
1 | Linux USB Video Class (UVC) driver | ||
2 | ================================== | ||
3 | |||
4 | This file documents some driver-specific aspects of the UVC driver, such as | ||
5 | driver-specific ioctls and implementation notes. | ||
6 | |||
7 | Questions and remarks can be sent to the Linux UVC development mailing list at | ||
8 | linux-uvc-devel@lists.berlios.de. | ||
9 | |||
10 | |||
11 | Extension Unit (XU) support | ||
12 | --------------------------- | ||
13 | |||
14 | 1. Introduction | ||
15 | |||
16 | The UVC specification allows for vendor-specific extensions through extension | ||
17 | units (XUs). The Linux UVC driver supports extension unit controls (XU controls) | ||
18 | through two separate mechanisms: | ||
19 | |||
20 | - through mappings of XU controls to V4L2 controls | ||
21 | - through a driver-specific ioctl interface | ||
22 | |||
23 | The first one allows generic V4L2 applications to use XU controls by mapping | ||
24 | certain XU controls onto V4L2 controls, which then show up during ordinary | ||
25 | control enumeration. | ||
26 | |||
27 | The second mechanism requires uvcvideo-specific knowledge for the application to | ||
28 | access XU controls but exposes the entire UVC XU concept to user space for | ||
29 | maximum flexibility. | ||
30 | |||
31 | Both mechanisms complement each other and are described in more detail below. | ||
32 | |||
33 | |||
34 | 2. Control mappings | ||
35 | |||
36 | The UVC driver provides an API for user space applications to define so-called | ||
37 | control mappings at runtime. These allow for individual XU controls or byte | ||
38 | ranges thereof to be mapped to new V4L2 controls. Such controls appear and | ||
39 | function exactly like normal V4L2 controls (i.e. the stock controls, such as | ||
40 | brightness, contrast, etc.). However, reading or writing of such a V4L2 controls | ||
41 | triggers a read or write of the associated XU control. | ||
42 | |||
43 | The ioctl used to create these control mappings is called UVCIOC_CTRL_MAP. | ||
44 | Previous driver versions (before 0.2.0) required another ioctl to be used | ||
45 | beforehand (UVCIOC_CTRL_ADD) to pass XU control information to the UVC driver. | ||
46 | This is no longer necessary as newer uvcvideo versions query the information | ||
47 | directly from the device. | ||
48 | |||
49 | For details on the UVCIOC_CTRL_MAP ioctl please refer to the section titled | ||
50 | "IOCTL reference" below. | ||
51 | |||
52 | |||
53 | 3. Driver specific XU control interface | ||
54 | |||
55 | For applications that need to access XU controls directly, e.g. for testing | ||
56 | purposes, firmware upload, or accessing binary controls, a second mechanism to | ||
57 | access XU controls is provided in the form of a driver-specific ioctl, namely | ||
58 | UVCIOC_CTRL_QUERY. | ||
59 | |||
60 | A call to this ioctl allows applications to send queries to the UVC driver that | ||
61 | directly map to the low-level UVC control requests. | ||
62 | |||
63 | In order to make such a request the UVC unit ID of the control's extension unit | ||
64 | and the control selector need to be known. This information either needs to be | ||
65 | hardcoded in the application or queried using other ways such as by parsing the | ||
66 | UVC descriptor or, if available, using the media controller API to enumerate a | ||
67 | device's entities. | ||
68 | |||
69 | Unless the control size is already known it is necessary to first make a | ||
70 | UVC_GET_LEN requests in order to be able to allocate a sufficiently large buffer | ||
71 | and set the buffer size to the correct value. Similarly, to find out whether | ||
72 | UVC_GET_CUR or UVC_SET_CUR are valid requests for a given control, a | ||
73 | UVC_GET_INFO request should be made. The bits 0 (GET supported) and 1 (SET | ||
74 | supported) of the resulting byte indicate which requests are valid. | ||
75 | |||
76 | With the addition of the UVCIOC_CTRL_QUERY ioctl the UVCIOC_CTRL_GET and | ||
77 | UVCIOC_CTRL_SET ioctls have become obsolete since their functionality is a | ||
78 | subset of the former ioctl. For the time being they are still supported but | ||
79 | application developers are encouraged to use UVCIOC_CTRL_QUERY instead. | ||
80 | |||
81 | For details on the UVCIOC_CTRL_QUERY ioctl please refer to the section titled | ||
82 | "IOCTL reference" below. | ||
83 | |||
84 | |||
85 | 4. Security | ||
86 | |||
87 | The API doesn't currently provide a fine-grained access control facility. The | ||
88 | UVCIOC_CTRL_ADD and UVCIOC_CTRL_MAP ioctls require super user permissions. | ||
89 | |||
90 | Suggestions on how to improve this are welcome. | ||
91 | |||
92 | |||
93 | 5. Debugging | ||
94 | |||
95 | In order to debug problems related to XU controls or controls in general it is | ||
96 | recommended to enable the UVC_TRACE_CONTROL bit in the module parameter 'trace'. | ||
97 | This causes extra output to be written into the system log. | ||
98 | |||
99 | |||
100 | 6. IOCTL reference | ||
101 | |||
102 | ---- UVCIOC_CTRL_MAP - Map a UVC control to a V4L2 control ---- | ||
103 | |||
104 | Argument: struct uvc_xu_control_mapping | ||
105 | |||
106 | Description: | ||
107 | This ioctl creates a mapping between a UVC control or part of a UVC | ||
108 | control and a V4L2 control. Once mappings are defined, userspace | ||
109 | applications can access vendor-defined UVC control through the V4L2 | ||
110 | control API. | ||
111 | |||
112 | To create a mapping, applications fill the uvc_xu_control_mapping | ||
113 | structure with information about an existing UVC control defined with | ||
114 | UVCIOC_CTRL_ADD and a new V4L2 control. | ||
115 | |||
116 | A UVC control can be mapped to several V4L2 controls. For instance, | ||
117 | a UVC pan/tilt control could be mapped to separate pan and tilt V4L2 | ||
118 | controls. The UVC control is divided into non overlapping fields using | ||
119 | the 'size' and 'offset' fields and are then independantly mapped to | ||
120 | V4L2 control. | ||
121 | |||
122 | For signed integer V4L2 controls the data_type field should be set to | ||
123 | UVC_CTRL_DATA_TYPE_SIGNED. Other values are currently ignored. | ||
124 | |||
125 | Return value: | ||
126 | On success 0 is returned. On error -1 is returned and errno is set | ||
127 | appropriately. | ||
128 | |||
129 | ENOMEM | ||
130 | Not enough memory to perform the operation. | ||
131 | EPERM | ||
132 | Insufficient privileges (super user privileges are required). | ||
133 | EINVAL | ||
134 | No such UVC control. | ||
135 | EOVERFLOW | ||
136 | The requested offset and size would overflow the UVC control. | ||
137 | EEXIST | ||
138 | Mapping already exists. | ||
139 | |||
140 | Data types: | ||
141 | * struct uvc_xu_control_mapping | ||
142 | |||
143 | __u32 id V4L2 control identifier | ||
144 | __u8 name[32] V4L2 control name | ||
145 | __u8 entity[16] UVC extension unit GUID | ||
146 | __u8 selector UVC control selector | ||
147 | __u8 size V4L2 control size (in bits) | ||
148 | __u8 offset V4L2 control offset (in bits) | ||
149 | enum v4l2_ctrl_type | ||
150 | v4l2_type V4L2 control type | ||
151 | enum uvc_control_data_type | ||
152 | data_type UVC control data type | ||
153 | struct uvc_menu_info | ||
154 | *menu_info Array of menu entries (for menu controls only) | ||
155 | __u32 menu_count Number of menu entries (for menu controls only) | ||
156 | |||
157 | * struct uvc_menu_info | ||
158 | |||
159 | __u32 value Menu entry value used by the device | ||
160 | __u8 name[32] Menu entry name | ||
161 | |||
162 | |||
163 | * enum uvc_control_data_type | ||
164 | |||
165 | UVC_CTRL_DATA_TYPE_RAW Raw control (byte array) | ||
166 | UVC_CTRL_DATA_TYPE_SIGNED Signed integer | ||
167 | UVC_CTRL_DATA_TYPE_UNSIGNED Unsigned integer | ||
168 | UVC_CTRL_DATA_TYPE_BOOLEAN Boolean | ||
169 | UVC_CTRL_DATA_TYPE_ENUM Enumeration | ||
170 | UVC_CTRL_DATA_TYPE_BITMASK Bitmask | ||
171 | |||
172 | |||
173 | ---- UVCIOC_CTRL_QUERY - Query a UVC XU control ---- | ||
174 | |||
175 | Argument: struct uvc_xu_control_query | ||
176 | |||
177 | Description: | ||
178 | This ioctl queries a UVC XU control identified by its extension unit ID | ||
179 | and control selector. | ||
180 | |||
181 | There are a number of different queries available that closely | ||
182 | correspond to the low-level control requests described in the UVC | ||
183 | specification. These requests are: | ||
184 | |||
185 | UVC_GET_CUR | ||
186 | Obtain the current value of the control. | ||
187 | UVC_GET_MIN | ||
188 | Obtain the minimum value of the control. | ||
189 | UVC_GET_MAX | ||
190 | Obtain the maximum value of the control. | ||
191 | UVC_GET_DEF | ||
192 | Obtain the default value of the control. | ||
193 | UVC_GET_RES | ||
194 | Query the resolution of the control, i.e. the step size of the | ||
195 | allowed control values. | ||
196 | UVC_GET_LEN | ||
197 | Query the size of the control in bytes. | ||
198 | UVC_GET_INFO | ||
199 | Query the control information bitmap, which indicates whether | ||
200 | get/set requests are supported. | ||
201 | UVC_SET_CUR | ||
202 | Update the value of the control. | ||
203 | |||
204 | Applications must set the 'size' field to the correct length for the | ||
205 | control. Exceptions are the UVC_GET_LEN and UVC_GET_INFO queries, for | ||
206 | which the size must be set to 2 and 1, respectively. The 'data' field | ||
207 | must point to a valid writable buffer big enough to hold the indicated | ||
208 | number of data bytes. | ||
209 | |||
210 | Data is copied directly from the device without any driver-side | ||
211 | processing. Applications are responsible for data buffer formatting, | ||
212 | including little-endian/big-endian conversion. This is particularly | ||
213 | important for the result of the UVC_GET_LEN requests, which is always | ||
214 | returned as a little-endian 16-bit integer by the device. | ||
215 | |||
216 | Return value: | ||
217 | On success 0 is returned. On error -1 is returned and errno is set | ||
218 | appropriately. | ||
219 | |||
220 | ENOENT | ||
221 | The device does not support the given control or the specified | ||
222 | extension unit could not be found. | ||
223 | ENOBUFS | ||
224 | The specified buffer size is incorrect (too big or too small). | ||
225 | EINVAL | ||
226 | An invalid request code was passed. | ||
227 | EBADRQC | ||
228 | The given request is not supported by the given control. | ||
229 | EFAULT | ||
230 | The data pointer references an inaccessible memory area. | ||
231 | |||
232 | Data types: | ||
233 | * struct uvc_xu_control_query | ||
234 | |||
235 | __u8 unit Extension unit ID | ||
236 | __u8 selector Control selector | ||
237 | __u8 query Request code to send to the device | ||
238 | __u16 size Control data size (in bytes) | ||
239 | __u8 *data Control value | ||
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 9bef4e4cec5..42542eb802c 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
@@ -175,7 +175,10 @@ Parameters: vcpu id (apic id on x86) | |||
175 | Returns: vcpu fd on success, -1 on error | 175 | Returns: vcpu fd on success, -1 on error |
176 | 176 | ||
177 | This API adds a vcpu to a virtual machine. The vcpu id is a small integer | 177 | This API adds a vcpu to a virtual machine. The vcpu id is a small integer |
178 | in the range [0, max_vcpus). | 178 | in the range [0, max_vcpus). You can use KVM_CAP_NR_VCPUS of the |
179 | KVM_CHECK_EXTENSION ioctl() to determine the value for max_vcpus at run-time. | ||
180 | If the KVM_CAP_NR_VCPUS does not exist, you should assume that max_vcpus is 4 | ||
181 | cpus max. | ||
179 | 182 | ||
180 | 4.8 KVM_GET_DIRTY_LOG (vm ioctl) | 183 | 4.8 KVM_GET_DIRTY_LOG (vm ioctl) |
181 | 184 | ||
@@ -261,7 +264,7 @@ See KVM_GET_REGS for the data structure. | |||
261 | 4.13 KVM_GET_SREGS | 264 | 4.13 KVM_GET_SREGS |
262 | 265 | ||
263 | Capability: basic | 266 | Capability: basic |
264 | Architectures: x86 | 267 | Architectures: x86, ppc |
265 | Type: vcpu ioctl | 268 | Type: vcpu ioctl |
266 | Parameters: struct kvm_sregs (out) | 269 | Parameters: struct kvm_sregs (out) |
267 | Returns: 0 on success, -1 on error | 270 | Returns: 0 on success, -1 on error |
@@ -279,6 +282,8 @@ struct kvm_sregs { | |||
279 | __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; | 282 | __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; |
280 | }; | 283 | }; |
281 | 284 | ||
285 | /* ppc -- see arch/powerpc/include/asm/kvm.h */ | ||
286 | |||
282 | interrupt_bitmap is a bitmap of pending external interrupts. At most | 287 | interrupt_bitmap is a bitmap of pending external interrupts. At most |
283 | one bit may be set. This interrupt has been acknowledged by the APIC | 288 | one bit may be set. This interrupt has been acknowledged by the APIC |
284 | but not yet injected into the cpu core. | 289 | but not yet injected into the cpu core. |
@@ -286,7 +291,7 @@ but not yet injected into the cpu core. | |||
286 | 4.14 KVM_SET_SREGS | 291 | 4.14 KVM_SET_SREGS |
287 | 292 | ||
288 | Capability: basic | 293 | Capability: basic |
289 | Architectures: x86 | 294 | Architectures: x86, ppc |
290 | Type: vcpu ioctl | 295 | Type: vcpu ioctl |
291 | Parameters: struct kvm_sregs (in) | 296 | Parameters: struct kvm_sregs (in) |
292 | Returns: 0 on success, -1 on error | 297 | Returns: 0 on success, -1 on error |
@@ -1263,6 +1268,29 @@ struct kvm_assigned_msix_entry { | |||
1263 | __u16 padding[3]; | 1268 | __u16 padding[3]; |
1264 | }; | 1269 | }; |
1265 | 1270 | ||
1271 | 4.54 KVM_SET_TSC_KHZ | ||
1272 | |||
1273 | Capability: KVM_CAP_TSC_CONTROL | ||
1274 | Architectures: x86 | ||
1275 | Type: vcpu ioctl | ||
1276 | Parameters: virtual tsc_khz | ||
1277 | Returns: 0 on success, -1 on error | ||
1278 | |||
1279 | Specifies the tsc frequency for the virtual machine. The unit of the | ||
1280 | frequency is KHz. | ||
1281 | |||
1282 | 4.55 KVM_GET_TSC_KHZ | ||
1283 | |||
1284 | Capability: KVM_CAP_GET_TSC_KHZ | ||
1285 | Architectures: x86 | ||
1286 | Type: vcpu ioctl | ||
1287 | Parameters: none | ||
1288 | Returns: virtual tsc-khz on success, negative value on error | ||
1289 | |||
1290 | Returns the tsc frequency of the guest. The unit of the return value is | ||
1291 | KHz. If the host has unstable tsc this ioctl returns -EIO instead as an | ||
1292 | error. | ||
1293 | |||
1266 | 5. The kvm_run structure | 1294 | 5. The kvm_run structure |
1267 | 1295 | ||
1268 | Application code obtains a pointer to the kvm_run structure by | 1296 | Application code obtains a pointer to the kvm_run structure by |
diff --git a/Documentation/virtual/uml/UserModeLinux-HOWTO.txt b/Documentation/virtual/uml/UserModeLinux-HOWTO.txt index 9b7e1904db1..5d0fc8bfcdb 100644 --- a/Documentation/virtual/uml/UserModeLinux-HOWTO.txt +++ b/Documentation/virtual/uml/UserModeLinux-HOWTO.txt | |||
@@ -1182,6 +1182,16 @@ | |||
1182 | forge.net/> and explains these in detail, as well as | 1182 | forge.net/> and explains these in detail, as well as |
1183 | some other issues. | 1183 | some other issues. |
1184 | 1184 | ||
1185 | There is also a related point-to-point only "ucast" transport. | ||
1186 | This is useful when your network does not support multicast, and | ||
1187 | all network connections are simple point to point links. | ||
1188 | |||
1189 | The full set of command line options for this transport are | ||
1190 | |||
1191 | |||
1192 | ethn=ucast,ethernet address,remote address,listen port,remote port | ||
1193 | |||
1194 | |||
1185 | 1195 | ||
1186 | 1196 | ||
1187 | 66..66.. TTUUNN//TTAAPP wwiitthh tthhee uummll__nneett hheellppeerr | 1197 | 66..66.. TTUUNN//TTAAPP wwiitthh tthhee uummll__nneett hheellppeerr |
diff --git a/Documentation/vm/locking b/Documentation/vm/locking index 25fadb44876..f61228bd639 100644 --- a/Documentation/vm/locking +++ b/Documentation/vm/locking | |||
@@ -66,7 +66,7 @@ in some cases it is not really needed. Eg, vm_start is modified by | |||
66 | expand_stack(), it is hard to come up with a destructive scenario without | 66 | expand_stack(), it is hard to come up with a destructive scenario without |
67 | having the vmlist protection in this case. | 67 | having the vmlist protection in this case. |
68 | 68 | ||
69 | The page_table_lock nests with the inode i_mmap_lock and the kmem cache | 69 | The page_table_lock nests with the inode i_mmap_mutex and the kmem cache |
70 | c_spinlock spinlocks. This is okay, since the kmem code asks for pages after | 70 | c_spinlock spinlocks. This is okay, since the kmem code asks for pages after |
71 | dropping c_spinlock. The page_table_lock also nests with pagecache_lock and | 71 | dropping c_spinlock. The page_table_lock also nests with pagecache_lock and |
72 | pagemap_lru_lock spinlocks, and no code asks for memory with these locks | 72 | pagemap_lru_lock spinlocks, and no code asks for memory with these locks |