diff options
author | Ingo Molnar <mingo@elte.hu> | 2010-05-07 05:30:29 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-05-07 05:30:30 -0400 |
commit | cce913178118b0b36742eb7544c2b38a0c957ee7 (patch) | |
tree | 25a6d7b4e01fea2932e6e2962a75f7a3d8c19a4f /Documentation | |
parent | d9f599e1e6d019968b35d2dc63074b9e8964fa69 (diff) | |
parent | 4fd38e4595e2f6c9d27732c042a0e16b2753049c (diff) |
Merge branch 'perf/urgent' into perf/core
Merge reason: Resolve patch dependency
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/DocBook/libata.tmpl | 49 | ||||
-rw-r--r-- | Documentation/i2c/writing-clients | 5 | ||||
-rw-r--r-- | Documentation/input/elantech.txt | 8 | ||||
-rw-r--r-- | Documentation/spi/spidev_test.c | 2 |
4 files changed, 26 insertions, 38 deletions
diff --git a/Documentation/DocBook/libata.tmpl b/Documentation/DocBook/libata.tmpl index ba9975771503..ff3e5bec1c24 100644 --- a/Documentation/DocBook/libata.tmpl +++ b/Documentation/DocBook/libata.tmpl | |||
@@ -107,10 +107,6 @@ void (*dev_config) (struct ata_port *, struct ata_device *); | |||
107 | issue of SET FEATURES - XFER MODE, and prior to operation. | 107 | issue of SET FEATURES - XFER MODE, and prior to operation. |
108 | </para> | 108 | </para> |
109 | <para> | 109 | <para> |
110 | Called by ata_device_add() after ata_dev_identify() determines | ||
111 | a device is present. | ||
112 | </para> | ||
113 | <para> | ||
114 | This entry may be specified as NULL in ata_port_operations. | 110 | This entry may be specified as NULL in ata_port_operations. |
115 | </para> | 111 | </para> |
116 | 112 | ||
@@ -154,8 +150,8 @@ unsigned int (*mode_filter) (struct ata_port *, struct ata_device *, unsigned in | |||
154 | 150 | ||
155 | <sect2><title>Taskfile read/write</title> | 151 | <sect2><title>Taskfile read/write</title> |
156 | <programlisting> | 152 | <programlisting> |
157 | void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf); | 153 | void (*sff_tf_load) (struct ata_port *ap, struct ata_taskfile *tf); |
158 | void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); | 154 | void (*sff_tf_read) (struct ata_port *ap, struct ata_taskfile *tf); |
159 | </programlisting> | 155 | </programlisting> |
160 | 156 | ||
161 | <para> | 157 | <para> |
@@ -164,36 +160,35 @@ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); | |||
164 | hardware registers / DMA buffers, to obtain the current set of | 160 | hardware registers / DMA buffers, to obtain the current set of |
165 | taskfile register values. | 161 | taskfile register values. |
166 | Most drivers for taskfile-based hardware (PIO or MMIO) use | 162 | Most drivers for taskfile-based hardware (PIO or MMIO) use |
167 | ata_tf_load() and ata_tf_read() for these hooks. | 163 | ata_sff_tf_load() and ata_sff_tf_read() for these hooks. |
168 | </para> | 164 | </para> |
169 | 165 | ||
170 | </sect2> | 166 | </sect2> |
171 | 167 | ||
172 | <sect2><title>PIO data read/write</title> | 168 | <sect2><title>PIO data read/write</title> |
173 | <programlisting> | 169 | <programlisting> |
174 | void (*data_xfer) (struct ata_device *, unsigned char *, unsigned int, int); | 170 | void (*sff_data_xfer) (struct ata_device *, unsigned char *, unsigned int, int); |
175 | </programlisting> | 171 | </programlisting> |
176 | 172 | ||
177 | <para> | 173 | <para> |
178 | All bmdma-style drivers must implement this hook. This is the low-level | 174 | All bmdma-style drivers must implement this hook. This is the low-level |
179 | operation that actually copies the data bytes during a PIO data | 175 | operation that actually copies the data bytes during a PIO data |
180 | transfer. | 176 | transfer. |
181 | Typically the driver | 177 | Typically the driver will choose one of ata_sff_data_xfer_noirq(), |
182 | will choose one of ata_pio_data_xfer_noirq(), ata_pio_data_xfer(), or | 178 | ata_sff_data_xfer(), or ata_sff_data_xfer32(). |
183 | ata_mmio_data_xfer(). | ||
184 | </para> | 179 | </para> |
185 | 180 | ||
186 | </sect2> | 181 | </sect2> |
187 | 182 | ||
188 | <sect2><title>ATA command execute</title> | 183 | <sect2><title>ATA command execute</title> |
189 | <programlisting> | 184 | <programlisting> |
190 | void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); | 185 | void (*sff_exec_command)(struct ata_port *ap, struct ata_taskfile *tf); |
191 | </programlisting> | 186 | </programlisting> |
192 | 187 | ||
193 | <para> | 188 | <para> |
194 | causes an ATA command, previously loaded with | 189 | causes an ATA command, previously loaded with |
195 | ->tf_load(), to be initiated in hardware. | 190 | ->tf_load(), to be initiated in hardware. |
196 | Most drivers for taskfile-based hardware use ata_exec_command() | 191 | Most drivers for taskfile-based hardware use ata_sff_exec_command() |
197 | for this hook. | 192 | for this hook. |
198 | </para> | 193 | </para> |
199 | 194 | ||
@@ -218,8 +213,8 @@ command. | |||
218 | 213 | ||
219 | <sect2><title>Read specific ATA shadow registers</title> | 214 | <sect2><title>Read specific ATA shadow registers</title> |
220 | <programlisting> | 215 | <programlisting> |
221 | u8 (*check_status)(struct ata_port *ap); | 216 | u8 (*sff_check_status)(struct ata_port *ap); |
222 | u8 (*check_altstatus)(struct ata_port *ap); | 217 | u8 (*sff_check_altstatus)(struct ata_port *ap); |
223 | </programlisting> | 218 | </programlisting> |
224 | 219 | ||
225 | <para> | 220 | <para> |
@@ -227,20 +222,14 @@ u8 (*check_altstatus)(struct ata_port *ap); | |||
227 | hardware. On some hardware, reading the Status register has | 222 | hardware. On some hardware, reading the Status register has |
228 | the side effect of clearing the interrupt condition. | 223 | the side effect of clearing the interrupt condition. |
229 | Most drivers for taskfile-based hardware use | 224 | Most drivers for taskfile-based hardware use |
230 | ata_check_status() for this hook. | 225 | ata_sff_check_status() for this hook. |
231 | </para> | ||
232 | <para> | ||
233 | Note that because this is called from ata_device_add(), at | ||
234 | least a dummy function that clears device interrupts must be | ||
235 | provided for all drivers, even if the controller doesn't | ||
236 | actually have a taskfile status register. | ||
237 | </para> | 226 | </para> |
238 | 227 | ||
239 | </sect2> | 228 | </sect2> |
240 | 229 | ||
241 | <sect2><title>Select ATA device on bus</title> | 230 | <sect2><title>Select ATA device on bus</title> |
242 | <programlisting> | 231 | <programlisting> |
243 | void (*dev_select)(struct ata_port *ap, unsigned int device); | 232 | void (*sff_dev_select)(struct ata_port *ap, unsigned int device); |
244 | </programlisting> | 233 | </programlisting> |
245 | 234 | ||
246 | <para> | 235 | <para> |
@@ -251,9 +240,7 @@ void (*dev_select)(struct ata_port *ap, unsigned int device); | |||
251 | </para> | 240 | </para> |
252 | <para> | 241 | <para> |
253 | Most drivers for taskfile-based hardware use | 242 | Most drivers for taskfile-based hardware use |
254 | ata_std_dev_select() for this hook. Controllers which do not | 243 | ata_sff_dev_select() for this hook. |
255 | support second drives on a port (such as SATA contollers) will | ||
256 | use ata_noop_dev_select(). | ||
257 | </para> | 244 | </para> |
258 | 245 | ||
259 | </sect2> | 246 | </sect2> |
@@ -441,13 +428,13 @@ void (*irq_clear) (struct ata_port *); | |||
441 | to struct ata_host_set. | 428 | to struct ata_host_set. |
442 | </para> | 429 | </para> |
443 | <para> | 430 | <para> |
444 | Most legacy IDE drivers use ata_interrupt() for the | 431 | Most legacy IDE drivers use ata_sff_interrupt() for the |
445 | irq_handler hook, which scans all ports in the host_set, | 432 | irq_handler hook, which scans all ports in the host_set, |
446 | determines which queued command was active (if any), and calls | 433 | determines which queued command was active (if any), and calls |
447 | ata_host_intr(ap,qc). | 434 | ata_sff_host_intr(ap,qc). |
448 | </para> | 435 | </para> |
449 | <para> | 436 | <para> |
450 | Most legacy IDE drivers use ata_bmdma_irq_clear() for the | 437 | Most legacy IDE drivers use ata_sff_irq_clear() for the |
451 | irq_clear() hook, which simply clears the interrupt and error | 438 | irq_clear() hook, which simply clears the interrupt and error |
452 | flags in the DMA status register. | 439 | flags in the DMA status register. |
453 | </para> | 440 | </para> |
@@ -496,10 +483,6 @@ void (*host_stop) (struct ata_host_set *host_set); | |||
496 | data from port at this time. | 483 | data from port at this time. |
497 | </para> | 484 | </para> |
498 | <para> | 485 | <para> |
499 | Many drivers use ata_port_stop() as this hook, which frees the | ||
500 | PRD table. | ||
501 | </para> | ||
502 | <para> | ||
503 | ->host_stop() is called after all ->port_stop() calls | 486 | ->host_stop() is called after all ->port_stop() calls |
504 | have completed. The hook must finalize hardware shutdown, release DMA | 487 | have completed. The hook must finalize hardware shutdown, release DMA |
505 | and other resources, etc. | 488 | and other resources, etc. |
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients index 3219ee0dbfef..5ebf5af1d716 100644 --- a/Documentation/i2c/writing-clients +++ b/Documentation/i2c/writing-clients | |||
@@ -74,6 +74,11 @@ structure at all. You should use this to keep device-specific data. | |||
74 | /* retrieve the value */ | 74 | /* retrieve the value */ |
75 | void *i2c_get_clientdata(const struct i2c_client *client); | 75 | void *i2c_get_clientdata(const struct i2c_client *client); |
76 | 76 | ||
77 | Note that starting with kernel 2.6.34, you don't have to set the `data' field | ||
78 | to NULL in remove() or if probe() failed anymore. The i2c-core does this | ||
79 | automatically on these occasions. Those are also the only times the core will | ||
80 | touch this field. | ||
81 | |||
77 | 82 | ||
78 | Accessing the client | 83 | Accessing the client |
79 | ==================== | 84 | ==================== |
diff --git a/Documentation/input/elantech.txt b/Documentation/input/elantech.txt index a10c3b6ba7c4..56941ae1f5db 100644 --- a/Documentation/input/elantech.txt +++ b/Documentation/input/elantech.txt | |||
@@ -333,14 +333,14 @@ byte 0: | |||
333 | byte 1: | 333 | byte 1: |
334 | 334 | ||
335 | bit 7 6 5 4 3 2 1 0 | 335 | bit 7 6 5 4 3 2 1 0 |
336 | x15 x14 x13 x12 x11 x10 x9 x8 | 336 | . . . . . x10 x9 x8 |
337 | 337 | ||
338 | byte 2: | 338 | byte 2: |
339 | 339 | ||
340 | bit 7 6 5 4 3 2 1 0 | 340 | bit 7 6 5 4 3 2 1 0 |
341 | x7 x6 x5 x4 x4 x2 x1 x0 | 341 | x7 x6 x5 x4 x4 x2 x1 x0 |
342 | 342 | ||
343 | x15..x0 = absolute x value (horizontal) | 343 | x10..x0 = absolute x value (horizontal) |
344 | 344 | ||
345 | byte 3: | 345 | byte 3: |
346 | 346 | ||
@@ -350,14 +350,14 @@ byte 3: | |||
350 | byte 4: | 350 | byte 4: |
351 | 351 | ||
352 | bit 7 6 5 4 3 2 1 0 | 352 | bit 7 6 5 4 3 2 1 0 |
353 | y15 y14 y13 y12 y11 y10 y8 y8 | 353 | . . . . . . y9 y8 |
354 | 354 | ||
355 | byte 5: | 355 | byte 5: |
356 | 356 | ||
357 | bit 7 6 5 4 3 2 1 0 | 357 | bit 7 6 5 4 3 2 1 0 |
358 | y7 y6 y5 y4 y3 y2 y1 y0 | 358 | y7 y6 y5 y4 y3 y2 y1 y0 |
359 | 359 | ||
360 | y15..y0 = absolute y value (vertical) | 360 | y9..y0 = absolute y value (vertical) |
361 | 361 | ||
362 | 362 | ||
363 | 4.2.2 Two finger touch | 363 | 4.2.2 Two finger touch |
diff --git a/Documentation/spi/spidev_test.c b/Documentation/spi/spidev_test.c index 10abd3773e49..16feda901469 100644 --- a/Documentation/spi/spidev_test.c +++ b/Documentation/spi/spidev_test.c | |||
@@ -58,7 +58,7 @@ static void transfer(int fd) | |||
58 | }; | 58 | }; |
59 | 59 | ||
60 | ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); | 60 | ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); |
61 | if (ret == 1) | 61 | if (ret < 1) |
62 | pabort("can't send spi message"); | 62 | pabort("can't send spi message"); |
63 | 63 | ||
64 | for (ret = 0; ret < ARRAY_SIZE(tx); ret++) { | 64 | for (ret = 0; ret < ARRAY_SIZE(tx); ret++) { |