diff options
author | Tejun Heo <tj@kernel.org> | 2010-05-19 16:10:24 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2010-05-25 19:41:12 -0400 |
commit | 9a7780c9acb821fe1c2b6fc53f74cc2556ff5364 (patch) | |
tree | 9590f79a1a0631120322ecfa8a86f610859d7aec | |
parent | d6b0de8c28ef32d081cfee938e443ce2a2429cfe (diff) |
libata-sff: make BMDMA optional
Make BMDMA optional depending on new config variable CONFIG_ATA_BMDMA.
In Kconfig, drivers are grouped into five groups - non-SFF native, SFF
w/ custom DMA interface, SFF w/ BMDMA, PIO-only SFF, and generic
fallback / legacy ones. Kconfig and Makefile are reorganized
according to the groups and ordered alphabetically inside each group.
ata_ioports.bmdma_addr and ata_port.bmdma_prd[_dma] are put into
CONFIG_ATA_BMDMA, as are all bmdma related ops, variables and
functions.
This increase the binary size slightly when BMDMA is enabled but on
both native-only and PIO-only configurations the size is slightly
reduced. Either way, the size difference is insignificant. This
change is more meaningful to signify the separation between SFF and
BMDMA and as a tool to verify the separation.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r-- | drivers/ata/Kconfig | 511 | ||||
-rw-r--r-- | drivers/ata/Makefile | 83 | ||||
-rw-r--r-- | drivers/ata/libata-sff.c | 11 | ||||
-rw-r--r-- | include/linux/libata.h | 22 |
4 files changed, 341 insertions, 286 deletions
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index e68541f662b9..73f883333a0d 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig | |||
@@ -57,6 +57,8 @@ config SATA_PMP | |||
57 | This option adds support for SATA Port Multipliers | 57 | This option adds support for SATA Port Multipliers |
58 | (the SATA version of an ethernet hub, or SAS expander). | 58 | (the SATA version of an ethernet hub, or SAS expander). |
59 | 59 | ||
60 | comment "Controllers with non-SFF native interface" | ||
61 | |||
60 | config SATA_AHCI | 62 | config SATA_AHCI |
61 | tristate "AHCI SATA support" | 63 | tristate "AHCI SATA support" |
62 | depends on PCI | 64 | depends on PCI |
@@ -73,11 +75,12 @@ config SATA_AHCI_PLATFORM | |||
73 | 75 | ||
74 | If unsure, say N. | 76 | If unsure, say N. |
75 | 77 | ||
76 | config SATA_SIL24 | 78 | config SATA_FSL |
77 | tristate "Silicon Image 3124/3132 SATA support" | 79 | tristate "Freescale 3.0Gbps SATA support" |
78 | depends on PCI | 80 | depends on FSL_SOC |
79 | help | 81 | help |
80 | This option enables support for Silicon Image 3124/3132 Serial ATA. | 82 | This option enables support for Freescale 3.0Gbps SATA controller. |
83 | It can be found on MPC837x and MPC8315. | ||
81 | 84 | ||
82 | If unsure, say N. | 85 | If unsure, say N. |
83 | 86 | ||
@@ -87,12 +90,11 @@ config SATA_INIC162X | |||
87 | help | 90 | help |
88 | This option enables support for Initio 162x Serial ATA. | 91 | This option enables support for Initio 162x Serial ATA. |
89 | 92 | ||
90 | config SATA_FSL | 93 | config SATA_SIL24 |
91 | tristate "Freescale 3.0Gbps SATA support" | 94 | tristate "Silicon Image 3124/3132 SATA support" |
92 | depends on FSL_SOC | 95 | depends on PCI |
93 | help | 96 | help |
94 | This option enables support for Freescale 3.0Gbps SATA controller. | 97 | This option enables support for Silicon Image 3124/3132 Serial ATA. |
95 | It can be found on MPC837x and MPC8315. | ||
96 | 98 | ||
97 | If unsure, say N. | 99 | If unsure, say N. |
98 | 100 | ||
@@ -116,15 +118,65 @@ config ATA_SFF | |||
116 | 118 | ||
117 | if ATA_SFF | 119 | if ATA_SFF |
118 | 120 | ||
119 | config SATA_SVW | 121 | comment "SFF controllers with custom DMA interface" |
120 | tristate "ServerWorks Frodo / Apple K2 SATA support" | 122 | |
123 | config PDC_ADMA | ||
124 | tristate "Pacific Digital ADMA support" | ||
121 | depends on PCI | 125 | depends on PCI |
122 | help | 126 | help |
123 | This option enables support for Broadcom/Serverworks/Apple K2 | 127 | This option enables support for Pacific Digital ADMA controllers |
124 | SATA support. | 128 | |
129 | If unsure, say N. | ||
130 | |||
131 | config PATA_MPC52xx | ||
132 | tristate "Freescale MPC52xx SoC internal IDE" | ||
133 | depends on PPC_MPC52xx && PPC_BESTCOMM | ||
134 | select PPC_BESTCOMM_ATA | ||
135 | help | ||
136 | This option enables support for integrated IDE controller | ||
137 | of the Freescale MPC52xx SoC. | ||
138 | |||
139 | If unsure, say N. | ||
140 | |||
141 | config PATA_OCTEON_CF | ||
142 | tristate "OCTEON Boot Bus Compact Flash support" | ||
143 | depends on CPU_CAVIUM_OCTEON | ||
144 | help | ||
145 | This option enables a polled compact flash driver for use with | ||
146 | compact flash cards attached to the OCTEON boot bus. | ||
147 | |||
148 | If unsure, say N. | ||
149 | |||
150 | config SATA_QSTOR | ||
151 | tristate "Pacific Digital SATA QStor support" | ||
152 | depends on PCI | ||
153 | help | ||
154 | This option enables support for Pacific Digital Serial ATA QStor. | ||
155 | |||
156 | If unsure, say N. | ||
157 | |||
158 | config SATA_SX4 | ||
159 | tristate "Promise SATA SX4 support (Experimental)" | ||
160 | depends on PCI && EXPERIMENTAL | ||
161 | help | ||
162 | This option enables support for Promise Serial ATA SX4. | ||
125 | 163 | ||
126 | If unsure, say N. | 164 | If unsure, say N. |
127 | 165 | ||
166 | config ATA_BMDMA | ||
167 | bool "ATA BMDMA support" | ||
168 | default y | ||
169 | help | ||
170 | This option adds support for SFF ATA controllers with BMDMA | ||
171 | capability. BMDMA stands for bus-master DMA and the | ||
172 | de-facto DMA interface for SFF controllers. | ||
173 | |||
174 | If unuser, say Y. | ||
175 | |||
176 | if ATA_BMDMA | ||
177 | |||
178 | comment "SATA SFF controllers with BMDMA" | ||
179 | |||
128 | config ATA_PIIX | 180 | config ATA_PIIX |
129 | tristate "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support" | 181 | tristate "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support" |
130 | depends on PCI | 182 | depends on PCI |
@@ -152,22 +204,6 @@ config SATA_NV | |||
152 | 204 | ||
153 | If unsure, say N. | 205 | If unsure, say N. |
154 | 206 | ||
155 | config PDC_ADMA | ||
156 | tristate "Pacific Digital ADMA support" | ||
157 | depends on PCI | ||
158 | help | ||
159 | This option enables support for Pacific Digital ADMA controllers | ||
160 | |||
161 | If unsure, say N. | ||
162 | |||
163 | config SATA_QSTOR | ||
164 | tristate "Pacific Digital SATA QStor support" | ||
165 | depends on PCI | ||
166 | help | ||
167 | This option enables support for Pacific Digital Serial ATA QStor. | ||
168 | |||
169 | If unsure, say N. | ||
170 | |||
171 | config SATA_PROMISE | 207 | config SATA_PROMISE |
172 | tristate "Promise SATA TX2/TX4 support" | 208 | tristate "Promise SATA TX2/TX4 support" |
173 | depends on PCI | 209 | depends on PCI |
@@ -176,14 +212,6 @@ config SATA_PROMISE | |||
176 | 212 | ||
177 | If unsure, say N. | 213 | If unsure, say N. |
178 | 214 | ||
179 | config SATA_SX4 | ||
180 | tristate "Promise SATA SX4 support (Experimental)" | ||
181 | depends on PCI && EXPERIMENTAL | ||
182 | help | ||
183 | This option enables support for Promise Serial ATA SX4. | ||
184 | |||
185 | If unsure, say N. | ||
186 | |||
187 | config SATA_SIL | 215 | config SATA_SIL |
188 | tristate "Silicon Image SATA support" | 216 | tristate "Silicon Image SATA support" |
189 | depends on PCI | 217 | depends on PCI |
@@ -203,6 +231,15 @@ config SATA_SIS | |||
203 | enable the PATA_SIS driver in the config. | 231 | enable the PATA_SIS driver in the config. |
204 | If unsure, say N. | 232 | If unsure, say N. |
205 | 233 | ||
234 | config SATA_SVW | ||
235 | tristate "ServerWorks Frodo / Apple K2 SATA support" | ||
236 | depends on PCI | ||
237 | help | ||
238 | This option enables support for Broadcom/Serverworks/Apple K2 | ||
239 | SATA support. | ||
240 | |||
241 | If unsure, say N. | ||
242 | |||
206 | config SATA_ULI | 243 | config SATA_ULI |
207 | tristate "ULi Electronics SATA support" | 244 | tristate "ULi Electronics SATA support" |
208 | depends on PCI | 245 | depends on PCI |
@@ -227,14 +264,7 @@ config SATA_VITESSE | |||
227 | 264 | ||
228 | If unsure, say N. | 265 | If unsure, say N. |
229 | 266 | ||
230 | config PATA_ACPI | 267 | comment "PATA SFF controllers with BMDMA" |
231 | tristate "ACPI firmware driver for PATA" | ||
232 | depends on ATA_ACPI | ||
233 | help | ||
234 | This option enables an ACPI method driver which drives | ||
235 | motherboard PATA controller interfaces through the ACPI | ||
236 | firmware in the BIOS. This driver can sometimes handle | ||
237 | otherwise unsupported hardware. | ||
238 | 268 | ||
239 | config PATA_ALI | 269 | config PATA_ALI |
240 | tristate "ALi PATA support" | 270 | tristate "ALi PATA support" |
@@ -262,40 +292,30 @@ config PATA_ARTOP | |||
262 | 292 | ||
263 | If unsure, say N. | 293 | If unsure, say N. |
264 | 294 | ||
265 | config PATA_ATP867X | 295 | config PATA_ATIIXP |
266 | tristate "ARTOP/Acard ATP867X PATA support" | 296 | tristate "ATI PATA support" |
267 | depends on PCI | 297 | depends on PCI |
268 | help | 298 | help |
269 | This option enables support for ARTOP/Acard ATP867X PATA | 299 | This option enables support for the ATI ATA interfaces |
270 | controllers. | 300 | found on the many ATI chipsets. |
271 | |||
272 | If unsure, say N. | ||
273 | |||
274 | config PATA_AT32 | ||
275 | tristate "Atmel AVR32 PATA support (Experimental)" | ||
276 | depends on AVR32 && PLATFORM_AT32AP && EXPERIMENTAL | ||
277 | help | ||
278 | This option enables support for the IDE devices on the | ||
279 | Atmel AT32AP platform. | ||
280 | 301 | ||
281 | If unsure, say N. | 302 | If unsure, say N. |
282 | 303 | ||
283 | config PATA_ATIIXP | 304 | config PATA_ATP867X |
284 | tristate "ATI PATA support" | 305 | tristate "ARTOP/Acard ATP867X PATA support" |
285 | depends on PCI | 306 | depends on PCI |
286 | help | 307 | help |
287 | This option enables support for the ATI ATA interfaces | 308 | This option enables support for ARTOP/Acard ATP867X PATA |
288 | found on the many ATI chipsets. | 309 | controllers. |
289 | 310 | ||
290 | If unsure, say N. | 311 | If unsure, say N. |
291 | 312 | ||
292 | config PATA_CMD640_PCI | 313 | config PATA_BF54X |
293 | tristate "CMD640 PCI PATA support (Experimental)" | 314 | tristate "Blackfin 54x ATAPI support" |
294 | depends on PCI && EXPERIMENTAL | 315 | depends on BF542 || BF548 || BF549 |
295 | help | 316 | help |
296 | This option enables support for the CMD640 PCI IDE | 317 | This option enables support for the built-in ATAPI controller on |
297 | interface chip. Only the primary channel is currently | 318 | Blackfin 54x family chips. |
298 | supported. | ||
299 | 319 | ||
300 | If unsure, say N. | 320 | If unsure, say N. |
301 | 321 | ||
@@ -362,15 +382,6 @@ config PATA_EFAR | |||
362 | 382 | ||
363 | If unsure, say N. | 383 | If unsure, say N. |
364 | 384 | ||
365 | config ATA_GENERIC | ||
366 | tristate "Generic ATA support" | ||
367 | depends on PCI | ||
368 | help | ||
369 | This option enables support for generic BIOS configured | ||
370 | ATA controllers via the new ATA layer | ||
371 | |||
372 | If unsure, say N. | ||
373 | |||
374 | config PATA_HPT366 | 385 | config PATA_HPT366 |
375 | tristate "HPT 366/368 PATA support" | 386 | tristate "HPT 366/368 PATA support" |
376 | depends on PCI | 387 | depends on PCI |
@@ -415,12 +426,20 @@ config PATA_HPT3X3_DMA | |||
415 | controllers. Enable with care as there are still some | 426 | controllers. Enable with care as there are still some |
416 | problems with DMA on this chipset. | 427 | problems with DMA on this chipset. |
417 | 428 | ||
418 | config PATA_ISAPNP | 429 | config PATA_ICSIDE |
419 | tristate "ISA Plug and Play PATA support" | 430 | tristate "Acorn ICS PATA support" |
420 | depends on ISAPNP | 431 | depends on ARM && ARCH_ACORN |
421 | help | 432 | help |
422 | This option enables support for ISA plug & play ATA | 433 | On Acorn systems, say Y here if you wish to use the ICS PATA |
423 | controllers such as those found on old soundcards. | 434 | interface card. This is not required for ICS partition support. |
435 | If you are unsure, say N to this. | ||
436 | |||
437 | config PATA_IT8213 | ||
438 | tristate "IT8213 PATA support (Experimental)" | ||
439 | depends on PCI && EXPERIMENTAL | ||
440 | help | ||
441 | This option enables support for the ITE 821 PATA | ||
442 | controllers via the new ATA layer. | ||
424 | 443 | ||
425 | If unsure, say N. | 444 | If unsure, say N. |
426 | 445 | ||
@@ -434,15 +453,6 @@ config PATA_IT821X | |||
434 | 453 | ||
435 | If unsure, say N. | 454 | If unsure, say N. |
436 | 455 | ||
437 | config PATA_IT8213 | ||
438 | tristate "IT8213 PATA support (Experimental)" | ||
439 | depends on PCI && EXPERIMENTAL | ||
440 | help | ||
441 | This option enables support for the ITE 821 PATA | ||
442 | controllers via the new ATA layer. | ||
443 | |||
444 | If unsure, say N. | ||
445 | |||
446 | config PATA_JMICRON | 456 | config PATA_JMICRON |
447 | tristate "JMicron PATA support" | 457 | tristate "JMicron PATA support" |
448 | depends on PCI | 458 | depends on PCI |
@@ -452,23 +462,14 @@ config PATA_JMICRON | |||
452 | 462 | ||
453 | If unsure, say N. | 463 | If unsure, say N. |
454 | 464 | ||
455 | config PATA_LEGACY | 465 | config PATA_MACIO |
456 | tristate "Legacy ISA PATA support (Experimental)" | 466 | tristate "Apple PowerMac/PowerBook internal 'MacIO' IDE" |
457 | depends on (ISA || PCI) && EXPERIMENTAL | 467 | depends on PPC_PMAC |
458 | help | ||
459 | This option enables support for ISA/VLB/PCI bus legacy PATA | ||
460 | ports and allows them to be accessed via the new ATA layer. | ||
461 | |||
462 | If unsure, say N. | ||
463 | |||
464 | config PATA_TRIFLEX | ||
465 | tristate "Compaq Triflex PATA support" | ||
466 | depends on PCI | ||
467 | help | 468 | help |
468 | Enable support for the Compaq 'Triflex' IDE controller as found | 469 | Most IDE capable PowerMacs have IDE busses driven by a variant |
469 | on many Compaq Pentium-Pro systems, via the new ATA layer. | 470 | of this controller which is part of the Apple chipset used on |
470 | 471 | most PowerMac models. Some models have multiple busses using | |
471 | If unsure, say N. | 472 | different chipsets, though generally, MacIO is one of them. |
472 | 473 | ||
473 | config PATA_MARVELL | 474 | config PATA_MARVELL |
474 | tristate "Marvell PATA support via legacy mode" | 475 | tristate "Marvell PATA support via legacy mode" |
@@ -481,32 +482,6 @@ config PATA_MARVELL | |||
481 | 482 | ||
482 | If unsure, say N. | 483 | If unsure, say N. |
483 | 484 | ||
484 | config PATA_MPC52xx | ||
485 | tristate "Freescale MPC52xx SoC internal IDE" | ||
486 | depends on PPC_MPC52xx && PPC_BESTCOMM | ||
487 | select PPC_BESTCOMM_ATA | ||
488 | help | ||
489 | This option enables support for integrated IDE controller | ||
490 | of the Freescale MPC52xx SoC. | ||
491 | |||
492 | If unsure, say N. | ||
493 | |||
494 | config PATA_MPIIX | ||
495 | tristate "Intel PATA MPIIX support" | ||
496 | depends on PCI | ||
497 | help | ||
498 | This option enables support for MPIIX PATA support. | ||
499 | |||
500 | If unsure, say N. | ||
501 | |||
502 | config PATA_OLDPIIX | ||
503 | tristate "Intel PATA old PIIX support" | ||
504 | depends on PCI | ||
505 | help | ||
506 | This option enables support for early PIIX PATA support. | ||
507 | |||
508 | If unsure, say N. | ||
509 | |||
510 | config PATA_NETCELL | 485 | config PATA_NETCELL |
511 | tristate "NETCELL Revolution RAID support" | 486 | tristate "NETCELL Revolution RAID support" |
512 | depends on PCI | 487 | depends on PCI |
@@ -525,15 +500,6 @@ config PATA_NINJA32 | |||
525 | 500 | ||
526 | If unsure, say N. | 501 | If unsure, say N. |
527 | 502 | ||
528 | config PATA_NS87410 | ||
529 | tristate "Nat Semi NS87410 PATA support" | ||
530 | depends on PCI | ||
531 | help | ||
532 | This option enables support for the National Semiconductor | ||
533 | NS87410 PCI-IDE controller. | ||
534 | |||
535 | If unsure, say N. | ||
536 | |||
537 | config PATA_NS87415 | 503 | config PATA_NS87415 |
538 | tristate "Nat Semi NS87415 PATA support" | 504 | tristate "Nat Semi NS87415 PATA support" |
539 | depends on PCI | 505 | depends on PCI |
@@ -543,12 +509,11 @@ config PATA_NS87415 | |||
543 | 509 | ||
544 | If unsure, say N. | 510 | If unsure, say N. |
545 | 511 | ||
546 | config PATA_OPTI | 512 | config PATA_OLDPIIX |
547 | tristate "OPTI621/6215 PATA support (Very Experimental)" | 513 | tristate "Intel PATA old PIIX support" |
548 | depends on PCI && EXPERIMENTAL | 514 | depends on PCI |
549 | help | 515 | help |
550 | This option enables full PIO support for the early Opti ATA | 516 | This option enables support for early PIIX PATA support. |
551 | controllers found on some old motherboards. | ||
552 | 517 | ||
553 | If unsure, say N. | 518 | If unsure, say N. |
554 | 519 | ||
@@ -562,24 +527,6 @@ config PATA_OPTIDMA | |||
562 | 527 | ||
563 | If unsure, say N. | 528 | If unsure, say N. |
564 | 529 | ||
565 | config PATA_PALMLD | ||
566 | tristate "Palm LifeDrive PATA support" | ||
567 | depends on MACH_PALMLD | ||
568 | help | ||
569 | This option enables support for Palm LifeDrive's internal ATA | ||
570 | port via the new ATA layer. | ||
571 | |||
572 | If unsure, say N. | ||
573 | |||
574 | config PATA_PCMCIA | ||
575 | tristate "PCMCIA PATA support" | ||
576 | depends on PCMCIA | ||
577 | help | ||
578 | This option enables support for PCMCIA ATA interfaces, including | ||
579 | compact flash card adapters via the new ATA layer. | ||
580 | |||
581 | If unsure, say N. | ||
582 | |||
583 | config PATA_PDC2027X | 530 | config PATA_PDC2027X |
584 | tristate "Promise PATA 2027x support" | 531 | tristate "Promise PATA 2027x support" |
585 | depends on PCI | 532 | depends on PCI |
@@ -597,12 +544,6 @@ config PATA_PDC_OLD | |||
597 | 544 | ||
598 | If unsure, say N. | 545 | If unsure, say N. |
599 | 546 | ||
600 | config PATA_QDI | ||
601 | tristate "QDI VLB PATA support" | ||
602 | depends on ISA | ||
603 | help | ||
604 | Support for QDI 6500 and 6580 PATA controllers on VESA local bus. | ||
605 | |||
606 | config PATA_RADISYS | 547 | config PATA_RADISYS |
607 | tristate "RADISYS 82600 PATA support (Experimental)" | 548 | tristate "RADISYS 82600 PATA support (Experimental)" |
608 | depends on PCI && EXPERIMENTAL | 549 | depends on PCI && EXPERIMENTAL |
@@ -612,15 +553,6 @@ config PATA_RADISYS | |||
612 | 553 | ||
613 | If unsure, say N. | 554 | If unsure, say N. |
614 | 555 | ||
615 | config PATA_RB532 | ||
616 | tristate "RouterBoard 532 PATA CompactFlash support" | ||
617 | depends on MIKROTIK_RB532 | ||
618 | help | ||
619 | This option enables support for the RouterBoard 532 | ||
620 | PATA CompactFlash controller. | ||
621 | |||
622 | If unsure, say N. | ||
623 | |||
624 | config PATA_RDC | 556 | config PATA_RDC |
625 | tristate "RDC PATA support" | 557 | tristate "RDC PATA support" |
626 | depends on PCI | 558 | depends on PCI |
@@ -631,21 +563,30 @@ config PATA_RDC | |||
631 | 563 | ||
632 | If unsure, say N. | 564 | If unsure, say N. |
633 | 565 | ||
634 | config PATA_RZ1000 | 566 | config PATA_SC1200 |
635 | tristate "PC Tech RZ1000 PATA support" | 567 | tristate "SC1200 PATA support" |
636 | depends on PCI | 568 | depends on PCI |
637 | help | 569 | help |
638 | This option enables basic support for the PC Tech RZ1000/1 | 570 | This option enables support for the NatSemi/AMD SC1200 SoC |
639 | PATA controllers via the new ATA layer | 571 | companion chip used with the Geode processor family. |
640 | 572 | ||
641 | If unsure, say N. | 573 | If unsure, say N. |
642 | 574 | ||
643 | config PATA_SC1200 | 575 | config PATA_SCC |
644 | tristate "SC1200 PATA support" | 576 | tristate "Toshiba's Cell Reference Set IDE support" |
577 | depends on PCI && PPC_CELLEB | ||
578 | help | ||
579 | This option enables support for the built-in IDE controller on | ||
580 | Toshiba Cell Reference Board. | ||
581 | |||
582 | If unsure, say N. | ||
583 | |||
584 | config PATA_SCH | ||
585 | tristate "Intel SCH PATA support" | ||
645 | depends on PCI | 586 | depends on PCI |
646 | help | 587 | help |
647 | This option enables support for the NatSemi/AMD SC1200 SoC | 588 | This option enables support for Intel SCH PATA on the Intel |
648 | companion chip used with the Geode processor family. | 589 | SCH (US15W, US15L, UL11L) series host controllers. |
649 | 590 | ||
650 | If unsure, say N. | 591 | If unsure, say N. |
651 | 592 | ||
@@ -683,6 +624,15 @@ config PATA_TOSHIBA | |||
683 | 624 | ||
684 | If unsure, say N. | 625 | If unsure, say N. |
685 | 626 | ||
627 | config PATA_TRIFLEX | ||
628 | tristate "Compaq Triflex PATA support" | ||
629 | depends on PCI | ||
630 | help | ||
631 | Enable support for the Compaq 'Triflex' IDE controller as found | ||
632 | on many Compaq Pentium-Pro systems, via the new ATA layer. | ||
633 | |||
634 | If unsure, say N. | ||
635 | |||
686 | config PATA_VIA | 636 | config PATA_VIA |
687 | tristate "VIA PATA support" | 637 | tristate "VIA PATA support" |
688 | depends on PCI | 638 | depends on PCI |
@@ -701,12 +651,99 @@ config PATA_WINBOND | |||
701 | 651 | ||
702 | If unsure, say N. | 652 | If unsure, say N. |
703 | 653 | ||
704 | config PATA_WINBOND_VLB | 654 | endif # ATA_BMDMA |
705 | tristate "Winbond W83759A VLB PATA support (Experimental)" | 655 | |
706 | depends on ISA && EXPERIMENTAL | 656 | comment "PIO-only SFF controllers" |
657 | |||
658 | config PATA_AT32 | ||
659 | tristate "Atmel AVR32 PATA support (Experimental)" | ||
660 | depends on AVR32 && PLATFORM_AT32AP && EXPERIMENTAL | ||
707 | help | 661 | help |
708 | Support for the Winbond W83759A controller on Vesa Local Bus | 662 | This option enables support for the IDE devices on the |
709 | systems. | 663 | Atmel AT32AP platform. |
664 | |||
665 | If unsure, say N. | ||
666 | |||
667 | config PATA_AT91 | ||
668 | tristate "PATA support for AT91SAM9260" | ||
669 | depends on ARM && ARCH_AT91 | ||
670 | help | ||
671 | This option enables support for IDE devices on the Atmel AT91SAM9260 SoC. | ||
672 | |||
673 | If unsure, say N. | ||
674 | |||
675 | config PATA_CMD640_PCI | ||
676 | tristate "CMD640 PCI PATA support (Experimental)" | ||
677 | depends on PCI && EXPERIMENTAL | ||
678 | help | ||
679 | This option enables support for the CMD640 PCI IDE | ||
680 | interface chip. Only the primary channel is currently | ||
681 | supported. | ||
682 | |||
683 | If unsure, say N. | ||
684 | |||
685 | config PATA_ISAPNP | ||
686 | tristate "ISA Plug and Play PATA support" | ||
687 | depends on ISAPNP | ||
688 | help | ||
689 | This option enables support for ISA plug & play ATA | ||
690 | controllers such as those found on old soundcards. | ||
691 | |||
692 | If unsure, say N. | ||
693 | |||
694 | config PATA_IXP4XX_CF | ||
695 | tristate "IXP4XX Compact Flash support" | ||
696 | depends on ARCH_IXP4XX | ||
697 | help | ||
698 | This option enables support for a Compact Flash connected on | ||
699 | the ixp4xx expansion bus. This driver had been written for | ||
700 | Loft/Avila boards in mind but can work with others. | ||
701 | |||
702 | If unsure, say N. | ||
703 | |||
704 | config PATA_MPIIX | ||
705 | tristate "Intel PATA MPIIX support" | ||
706 | depends on PCI | ||
707 | help | ||
708 | This option enables support for MPIIX PATA support. | ||
709 | |||
710 | If unsure, say N. | ||
711 | |||
712 | config PATA_NS87410 | ||
713 | tristate "Nat Semi NS87410 PATA support" | ||
714 | depends on PCI | ||
715 | help | ||
716 | This option enables support for the National Semiconductor | ||
717 | NS87410 PCI-IDE controller. | ||
718 | |||
719 | If unsure, say N. | ||
720 | |||
721 | config PATA_OPTI | ||
722 | tristate "OPTI621/6215 PATA support (Very Experimental)" | ||
723 | depends on PCI && EXPERIMENTAL | ||
724 | help | ||
725 | This option enables full PIO support for the early Opti ATA | ||
726 | controllers found on some old motherboards. | ||
727 | |||
728 | If unsure, say N. | ||
729 | |||
730 | config PATA_PALMLD | ||
731 | tristate "Palm LifeDrive PATA support" | ||
732 | depends on MACH_PALMLD | ||
733 | help | ||
734 | This option enables support for Palm LifeDrive's internal ATA | ||
735 | port via the new ATA layer. | ||
736 | |||
737 | If unsure, say N. | ||
738 | |||
739 | config PATA_PCMCIA | ||
740 | tristate "PCMCIA PATA support" | ||
741 | depends on PCMCIA | ||
742 | help | ||
743 | This option enables support for PCMCIA ATA interfaces, including | ||
744 | compact flash card adapters via the new ATA layer. | ||
745 | |||
746 | If unsure, say N. | ||
710 | 747 | ||
711 | config HAVE_PATA_PLATFORM | 748 | config HAVE_PATA_PLATFORM |
712 | bool | 749 | bool |
@@ -725,14 +762,6 @@ config PATA_PLATFORM | |||
725 | 762 | ||
726 | If unsure, say N. | 763 | If unsure, say N. |
727 | 764 | ||
728 | config PATA_AT91 | ||
729 | tristate "PATA support for AT91SAM9260" | ||
730 | depends on ARM && ARCH_AT91 | ||
731 | help | ||
732 | This option enables support for IDE devices on the Atmel AT91SAM9260 SoC. | ||
733 | |||
734 | If unsure, say N. | ||
735 | |||
736 | config PATA_OF_PLATFORM | 765 | config PATA_OF_PLATFORM |
737 | tristate "OpenFirmware platform device PATA support" | 766 | tristate "OpenFirmware platform device PATA support" |
738 | depends on PATA_PLATFORM && PPC_OF | 767 | depends on PATA_PLATFORM && PPC_OF |
@@ -743,69 +772,65 @@ config PATA_OF_PLATFORM | |||
743 | 772 | ||
744 | If unsure, say N. | 773 | If unsure, say N. |
745 | 774 | ||
746 | config PATA_ICSIDE | 775 | config PATA_QDI |
747 | tristate "Acorn ICS PATA support" | 776 | tristate "QDI VLB PATA support" |
748 | depends on ARM && ARCH_ACORN | 777 | depends on ISA |
749 | help | 778 | help |
750 | On Acorn systems, say Y here if you wish to use the ICS PATA | 779 | Support for QDI 6500 and 6580 PATA controllers on VESA local bus. |
751 | interface card. This is not required for ICS partition support. | ||
752 | If you are unsure, say N to this. | ||
753 | 780 | ||
754 | config PATA_IXP4XX_CF | 781 | config PATA_RB532 |
755 | tristate "IXP4XX Compact Flash support" | 782 | tristate "RouterBoard 532 PATA CompactFlash support" |
756 | depends on ARCH_IXP4XX | 783 | depends on MIKROTIK_RB532 |
757 | help | 784 | help |
758 | This option enables support for a Compact Flash connected on | 785 | This option enables support for the RouterBoard 532 |
759 | the ixp4xx expansion bus. This driver had been written for | 786 | PATA CompactFlash controller. |
760 | Loft/Avila boards in mind but can work with others. | ||
761 | 787 | ||
762 | If unsure, say N. | 788 | If unsure, say N. |
763 | 789 | ||
764 | config PATA_OCTEON_CF | 790 | config PATA_RZ1000 |
765 | tristate "OCTEON Boot Bus Compact Flash support" | 791 | tristate "PC Tech RZ1000 PATA support" |
766 | depends on CPU_CAVIUM_OCTEON | 792 | depends on PCI |
767 | help | 793 | help |
768 | This option enables a polled compact flash driver for use with | 794 | This option enables basic support for the PC Tech RZ1000/1 |
769 | compact flash cards attached to the OCTEON boot bus. | 795 | PATA controllers via the new ATA layer |
770 | 796 | ||
771 | If unsure, say N. | 797 | If unsure, say N. |
772 | 798 | ||
773 | config PATA_SCC | 799 | config PATA_WINBOND_VLB |
774 | tristate "Toshiba's Cell Reference Set IDE support" | 800 | tristate "Winbond W83759A VLB PATA support (Experimental)" |
775 | depends on PCI && PPC_CELLEB | 801 | depends on ISA && EXPERIMENTAL |
776 | help | 802 | help |
777 | This option enables support for the built-in IDE controller on | 803 | Support for the Winbond W83759A controller on Vesa Local Bus |
778 | Toshiba Cell Reference Board. | 804 | systems. |
779 | 805 | ||
780 | If unsure, say N. | 806 | comment "Generic fallback / legacy drivers" |
781 | 807 | ||
782 | config PATA_SCH | 808 | config PATA_ACPI |
783 | tristate "Intel SCH PATA support" | 809 | tristate "ACPI firmware driver for PATA" |
784 | depends on PCI | 810 | depends on ATA_ACPI && ATA_BMDMA |
785 | help | 811 | help |
786 | This option enables support for Intel SCH PATA on the Intel | 812 | This option enables an ACPI method driver which drives |
787 | SCH (US15W, US15L, UL11L) series host controllers. | 813 | motherboard PATA controller interfaces through the ACPI |
788 | 814 | firmware in the BIOS. This driver can sometimes handle | |
789 | If unsure, say N. | 815 | otherwise unsupported hardware. |
790 | 816 | ||
791 | config PATA_BF54X | 817 | config ATA_GENERIC |
792 | tristate "Blackfin 54x ATAPI support" | 818 | tristate "Generic ATA support" |
793 | depends on BF542 || BF548 || BF549 | 819 | depends on PCI && ATA_BMDMA |
794 | help | 820 | help |
795 | This option enables support for the built-in ATAPI controller on | 821 | This option enables support for generic BIOS configured |
796 | Blackfin 54x family chips. | 822 | ATA controllers via the new ATA layer |
797 | 823 | ||
798 | If unsure, say N. | 824 | If unsure, say N. |
799 | 825 | ||
800 | config PATA_MACIO | 826 | config PATA_LEGACY |
801 | tristate "Apple PowerMac/PowerBook internal 'MacIO' IDE" | 827 | tristate "Legacy ISA PATA support (Experimental)" |
802 | depends on PPC_PMAC | 828 | depends on (ISA || PCI) && EXPERIMENTAL |
803 | help | 829 | help |
804 | Most IDE capable PowerMacs have IDE busses driven by a variant | 830 | This option enables support for ISA/VLB/PCI bus legacy PATA |
805 | of this controller which is part of the Apple chipset used on | 831 | ports and allows them to be accessed via the new ATA layer. |
806 | most PowerMac models. Some models have multiple busses using | ||
807 | different chipsets, though generally, MacIO is one of them. | ||
808 | 832 | ||
833 | If unsure, say N. | ||
809 | 834 | ||
810 | endif # ATA_SFF | 835 | endif # ATA_SFF |
811 | endif # ATA | 836 | endif # ATA |
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile index d0a93c4ad3ec..7ef89d73df63 100644 --- a/drivers/ata/Makefile +++ b/drivers/ata/Makefile | |||
@@ -1,33 +1,39 @@ | |||
1 | 1 | ||
2 | obj-$(CONFIG_ATA) += libata.o | 2 | obj-$(CONFIG_ATA) += libata.o |
3 | 3 | ||
4 | # non-SFF interface | ||
4 | obj-$(CONFIG_SATA_AHCI) += ahci.o libahci.o | 5 | obj-$(CONFIG_SATA_AHCI) += ahci.o libahci.o |
5 | obj-$(CONFIG_SATA_AHCI_PLATFORM) += ahci_platform.o libahci.o | 6 | obj-$(CONFIG_SATA_AHCI_PLATFORM) += ahci_platform.o libahci.o |
6 | obj-$(CONFIG_SATA_SVW) += sata_svw.o | 7 | obj-$(CONFIG_SATA_FSL) += sata_fsl.o |
8 | obj-$(CONFIG_SATA_INIC162X) += sata_inic162x.o | ||
9 | obj-$(CONFIG_SATA_SIL24) += sata_sil24.o | ||
10 | |||
11 | # SFF w/ custom DMA | ||
12 | obj-$(CONFIG_PDC_ADMA) += pdc_adma.o | ||
13 | obj-$(CONFIG_PATA_MPC52xx) += pata_mpc52xx.o | ||
14 | obj-$(CONFIG_PATA_OCTEON_CF) += pata_octeon_cf.o | ||
15 | obj-$(CONFIG_SATA_QSTOR) += sata_qstor.o | ||
16 | obj-$(CONFIG_SATA_SX4) += sata_sx4.o | ||
17 | |||
18 | # SFF SATA w/ BMDMA | ||
7 | obj-$(CONFIG_ATA_PIIX) += ata_piix.o | 19 | obj-$(CONFIG_ATA_PIIX) += ata_piix.o |
20 | obj-$(CONFIG_SATA_MV) += sata_mv.o | ||
21 | obj-$(CONFIG_SATA_NV) += sata_nv.o | ||
8 | obj-$(CONFIG_SATA_PROMISE) += sata_promise.o | 22 | obj-$(CONFIG_SATA_PROMISE) += sata_promise.o |
9 | obj-$(CONFIG_SATA_QSTOR) += sata_qstor.o | ||
10 | obj-$(CONFIG_SATA_SIL) += sata_sil.o | 23 | obj-$(CONFIG_SATA_SIL) += sata_sil.o |
11 | obj-$(CONFIG_SATA_SIL24) += sata_sil24.o | ||
12 | obj-$(CONFIG_SATA_VIA) += sata_via.o | ||
13 | obj-$(CONFIG_SATA_VITESSE) += sata_vsc.o | ||
14 | obj-$(CONFIG_SATA_SIS) += sata_sis.o | 24 | obj-$(CONFIG_SATA_SIS) += sata_sis.o |
15 | obj-$(CONFIG_SATA_SX4) += sata_sx4.o | 25 | obj-$(CONFIG_SATA_SVW) += sata_svw.o |
16 | obj-$(CONFIG_SATA_NV) += sata_nv.o | ||
17 | obj-$(CONFIG_SATA_ULI) += sata_uli.o | 26 | obj-$(CONFIG_SATA_ULI) += sata_uli.o |
18 | obj-$(CONFIG_SATA_MV) += sata_mv.o | 27 | obj-$(CONFIG_SATA_VIA) += sata_via.o |
19 | obj-$(CONFIG_SATA_INIC162X) += sata_inic162x.o | 28 | obj-$(CONFIG_SATA_VITESSE) += sata_vsc.o |
20 | obj-$(CONFIG_PDC_ADMA) += pdc_adma.o | ||
21 | obj-$(CONFIG_SATA_FSL) += sata_fsl.o | ||
22 | obj-$(CONFIG_PATA_MACIO) += pata_macio.o | ||
23 | 29 | ||
30 | # SFF PATA w/ BMDMA | ||
24 | obj-$(CONFIG_PATA_ALI) += pata_ali.o | 31 | obj-$(CONFIG_PATA_ALI) += pata_ali.o |
25 | obj-$(CONFIG_PATA_AMD) += pata_amd.o | 32 | obj-$(CONFIG_PATA_AMD) += pata_amd.o |
26 | obj-$(CONFIG_PATA_ARTOP) += pata_artop.o | 33 | obj-$(CONFIG_PATA_ARTOP) += pata_artop.o |
27 | obj-$(CONFIG_PATA_ATP867X) += pata_atp867x.o | ||
28 | obj-$(CONFIG_PATA_AT32) += pata_at32.o | ||
29 | obj-$(CONFIG_PATA_ATIIXP) += pata_atiixp.o | 34 | obj-$(CONFIG_PATA_ATIIXP) += pata_atiixp.o |
30 | obj-$(CONFIG_PATA_CMD640_PCI) += pata_cmd640.o | 35 | obj-$(CONFIG_PATA_ATP867X) += pata_atp867x.o |
36 | obj-$(CONFIG_PATA_BF54X) += pata_bf54x.o | ||
31 | obj-$(CONFIG_PATA_CMD64X) += pata_cmd64x.o | 37 | obj-$(CONFIG_PATA_CMD64X) += pata_cmd64x.o |
32 | obj-$(CONFIG_PATA_CS5520) += pata_cs5520.o | 38 | obj-$(CONFIG_PATA_CS5520) += pata_cs5520.o |
33 | obj-$(CONFIG_PATA_CS5530) += pata_cs5530.o | 39 | obj-$(CONFIG_PATA_CS5530) += pata_cs5530.o |
@@ -39,47 +45,50 @@ obj-$(CONFIG_PATA_HPT366) += pata_hpt366.o | |||
39 | obj-$(CONFIG_PATA_HPT37X) += pata_hpt37x.o | 45 | obj-$(CONFIG_PATA_HPT37X) += pata_hpt37x.o |
40 | obj-$(CONFIG_PATA_HPT3X2N) += pata_hpt3x2n.o | 46 | obj-$(CONFIG_PATA_HPT3X2N) += pata_hpt3x2n.o |
41 | obj-$(CONFIG_PATA_HPT3X3) += pata_hpt3x3.o | 47 | obj-$(CONFIG_PATA_HPT3X3) += pata_hpt3x3.o |
42 | obj-$(CONFIG_PATA_ISAPNP) += pata_isapnp.o | 48 | obj-$(CONFIG_PATA_ICSIDE) += pata_icside.o |
43 | obj-$(CONFIG_PATA_IT821X) += pata_it821x.o | ||
44 | obj-$(CONFIG_PATA_IT8213) += pata_it8213.o | 49 | obj-$(CONFIG_PATA_IT8213) += pata_it8213.o |
50 | obj-$(CONFIG_PATA_IT821X) += pata_it821x.o | ||
45 | obj-$(CONFIG_PATA_JMICRON) += pata_jmicron.o | 51 | obj-$(CONFIG_PATA_JMICRON) += pata_jmicron.o |
52 | obj-$(CONFIG_PATA_MACIO) += pata_macio.o | ||
53 | obj-$(CONFIG_PATA_MARVELL) += pata_marvell.o | ||
46 | obj-$(CONFIG_PATA_NETCELL) += pata_netcell.o | 54 | obj-$(CONFIG_PATA_NETCELL) += pata_netcell.o |
47 | obj-$(CONFIG_PATA_NINJA32) += pata_ninja32.o | 55 | obj-$(CONFIG_PATA_NINJA32) += pata_ninja32.o |
48 | obj-$(CONFIG_PATA_NS87410) += pata_ns87410.o | ||
49 | obj-$(CONFIG_PATA_NS87415) += pata_ns87415.o | 56 | obj-$(CONFIG_PATA_NS87415) += pata_ns87415.o |
50 | obj-$(CONFIG_PATA_OPTI) += pata_opti.o | ||
51 | obj-$(CONFIG_PATA_OPTIDMA) += pata_optidma.o | ||
52 | obj-$(CONFIG_PATA_MPC52xx) += pata_mpc52xx.o | ||
53 | obj-$(CONFIG_PATA_MARVELL) += pata_marvell.o | ||
54 | obj-$(CONFIG_PATA_MPIIX) += pata_mpiix.o | ||
55 | obj-$(CONFIG_PATA_OLDPIIX) += pata_oldpiix.o | 57 | obj-$(CONFIG_PATA_OLDPIIX) += pata_oldpiix.o |
56 | obj-$(CONFIG_PATA_PALMLD) += pata_palmld.o | 58 | obj-$(CONFIG_PATA_OPTIDMA) += pata_optidma.o |
57 | obj-$(CONFIG_PATA_PCMCIA) += pata_pcmcia.o | ||
58 | obj-$(CONFIG_PATA_PDC2027X) += pata_pdc2027x.o | 59 | obj-$(CONFIG_PATA_PDC2027X) += pata_pdc2027x.o |
59 | obj-$(CONFIG_PATA_PDC_OLD) += pata_pdc202xx_old.o | 60 | obj-$(CONFIG_PATA_PDC_OLD) += pata_pdc202xx_old.o |
60 | obj-$(CONFIG_PATA_QDI) += pata_qdi.o | ||
61 | obj-$(CONFIG_PATA_RADISYS) += pata_radisys.o | 61 | obj-$(CONFIG_PATA_RADISYS) += pata_radisys.o |
62 | obj-$(CONFIG_PATA_RB532) += pata_rb532_cf.o | ||
63 | obj-$(CONFIG_PATA_RDC) += pata_rdc.o | 62 | obj-$(CONFIG_PATA_RDC) += pata_rdc.o |
64 | obj-$(CONFIG_PATA_RZ1000) += pata_rz1000.o | ||
65 | obj-$(CONFIG_PATA_SC1200) += pata_sc1200.o | 63 | obj-$(CONFIG_PATA_SC1200) += pata_sc1200.o |
64 | obj-$(CONFIG_PATA_SCC) += pata_scc.o | ||
65 | obj-$(CONFIG_PATA_SCH) += pata_sch.o | ||
66 | obj-$(CONFIG_PATA_SERVERWORKS) += pata_serverworks.o | 66 | obj-$(CONFIG_PATA_SERVERWORKS) += pata_serverworks.o |
67 | obj-$(CONFIG_PATA_SIL680) += pata_sil680.o | 67 | obj-$(CONFIG_PATA_SIL680) += pata_sil680.o |
68 | obj-$(CONFIG_PATA_SIS) += pata_sis.o | ||
68 | obj-$(CONFIG_PATA_TOSHIBA) += pata_piccolo.o | 69 | obj-$(CONFIG_PATA_TOSHIBA) += pata_piccolo.o |
70 | obj-$(CONFIG_PATA_TRIFLEX) += pata_triflex.o | ||
69 | obj-$(CONFIG_PATA_VIA) += pata_via.o | 71 | obj-$(CONFIG_PATA_VIA) += pata_via.o |
70 | obj-$(CONFIG_PATA_WINBOND) += pata_sl82c105.o | 72 | obj-$(CONFIG_PATA_WINBOND) += pata_sl82c105.o |
71 | obj-$(CONFIG_PATA_WINBOND_VLB) += pata_winbond.o | 73 | |
72 | obj-$(CONFIG_PATA_SIS) += pata_sis.o | 74 | # SFF PIO only |
73 | obj-$(CONFIG_PATA_TRIFLEX) += pata_triflex.o | 75 | obj-$(CONFIG_PATA_AT32) += pata_at32.o |
76 | obj-$(CONFIG_PATA_AT91) += pata_at91.o | ||
77 | obj-$(CONFIG_PATA_CMD640_PCI) += pata_cmd640.o | ||
78 | obj-$(CONFIG_PATA_ISAPNP) += pata_isapnp.o | ||
74 | obj-$(CONFIG_PATA_IXP4XX_CF) += pata_ixp4xx_cf.o | 79 | obj-$(CONFIG_PATA_IXP4XX_CF) += pata_ixp4xx_cf.o |
75 | obj-$(CONFIG_PATA_SCC) += pata_scc.o | 80 | obj-$(CONFIG_PATA_MPIIX) += pata_mpiix.o |
76 | obj-$(CONFIG_PATA_SCH) += pata_sch.o | 81 | obj-$(CONFIG_PATA_NS87410) += pata_ns87410.o |
77 | obj-$(CONFIG_PATA_BF54X) += pata_bf54x.o | 82 | obj-$(CONFIG_PATA_OPTI) += pata_opti.o |
78 | obj-$(CONFIG_PATA_OCTEON_CF) += pata_octeon_cf.o | 83 | obj-$(CONFIG_PATA_PCMCIA) += pata_pcmcia.o |
84 | obj-$(CONFIG_PATA_PALMLD) += pata_palmld.o | ||
79 | obj-$(CONFIG_PATA_PLATFORM) += pata_platform.o | 85 | obj-$(CONFIG_PATA_PLATFORM) += pata_platform.o |
80 | obj-$(CONFIG_PATA_AT91) += pata_at91.o | ||
81 | obj-$(CONFIG_PATA_OF_PLATFORM) += pata_of_platform.o | 86 | obj-$(CONFIG_PATA_OF_PLATFORM) += pata_of_platform.o |
82 | obj-$(CONFIG_PATA_ICSIDE) += pata_icside.o | 87 | obj-$(CONFIG_PATA_QDI) += pata_qdi.o |
88 | obj-$(CONFIG_PATA_RB532) += pata_rb532_cf.o | ||
89 | obj-$(CONFIG_PATA_RZ1000) += pata_rz1000.o | ||
90 | obj-$(CONFIG_PATA_WINBOND_VLB) += pata_winbond.o | ||
91 | |||
83 | # Should be last but two libata driver | 92 | # Should be last but two libata driver |
84 | obj-$(CONFIG_PATA_ACPI) += pata_acpi.o | 93 | obj-$(CONFIG_PATA_ACPI) += pata_acpi.o |
85 | # Should be last but one libata driver | 94 | # Should be last but one libata driver |
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index c29f1468e164..efa4a18cfb9d 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
@@ -798,11 +798,15 @@ static void atapi_send_cdb(struct ata_port *ap, struct ata_queued_cmd *qc) | |||
798 | case ATAPI_PROT_NODATA: | 798 | case ATAPI_PROT_NODATA: |
799 | ap->hsm_task_state = HSM_ST_LAST; | 799 | ap->hsm_task_state = HSM_ST_LAST; |
800 | break; | 800 | break; |
801 | #ifdef CONFIG_ATA_BMDMA | ||
801 | case ATAPI_PROT_DMA: | 802 | case ATAPI_PROT_DMA: |
802 | ap->hsm_task_state = HSM_ST_LAST; | 803 | ap->hsm_task_state = HSM_ST_LAST; |
803 | /* initiate bmdma */ | 804 | /* initiate bmdma */ |
804 | ap->ops->bmdma_start(qc); | 805 | ap->ops->bmdma_start(qc); |
805 | break; | 806 | break; |
807 | #endif /* CONFIG_ATA_BMDMA */ | ||
808 | default: | ||
809 | BUG(); | ||
806 | } | 810 | } |
807 | } | 811 | } |
808 | 812 | ||
@@ -2535,6 +2539,12 @@ EXPORT_SYMBOL_GPL(ata_pci_sff_init_one); | |||
2535 | 2539 | ||
2536 | #endif /* CONFIG_PCI */ | 2540 | #endif /* CONFIG_PCI */ |
2537 | 2541 | ||
2542 | /* | ||
2543 | * BMDMA support | ||
2544 | */ | ||
2545 | |||
2546 | #ifdef CONFIG_ATA_BMDMA | ||
2547 | |||
2538 | const struct ata_port_operations ata_bmdma_port_ops = { | 2548 | const struct ata_port_operations ata_bmdma_port_ops = { |
2539 | .inherits = &ata_sff_port_ops, | 2549 | .inherits = &ata_sff_port_ops, |
2540 | 2550 | ||
@@ -3287,6 +3297,7 @@ int ata_pci_bmdma_init_one(struct pci_dev *pdev, | |||
3287 | EXPORT_SYMBOL_GPL(ata_pci_bmdma_init_one); | 3297 | EXPORT_SYMBOL_GPL(ata_pci_bmdma_init_one); |
3288 | 3298 | ||
3289 | #endif /* CONFIG_PCI */ | 3299 | #endif /* CONFIG_PCI */ |
3300 | #endif /* CONFIG_ATA_BMDMA */ | ||
3290 | 3301 | ||
3291 | /** | 3302 | /** |
3292 | * ata_sff_port_init - Initialize SFF/BMDMA ATA port | 3303 | * ata_sff_port_init - Initialize SFF/BMDMA ATA port |
diff --git a/include/linux/libata.h b/include/linux/libata.h index fe2be88bc266..4c5eca4e663b 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -513,7 +513,9 @@ struct ata_ioports { | |||
513 | void __iomem *command_addr; | 513 | void __iomem *command_addr; |
514 | void __iomem *altstatus_addr; | 514 | void __iomem *altstatus_addr; |
515 | void __iomem *ctl_addr; | 515 | void __iomem *ctl_addr; |
516 | #ifdef CONFIG_ATA_BMDMA | ||
516 | void __iomem *bmdma_addr; | 517 | void __iomem *bmdma_addr; |
518 | #endif /* CONFIG_ATA_BMDMA */ | ||
517 | void __iomem *scr_addr; | 519 | void __iomem *scr_addr; |
518 | }; | 520 | }; |
519 | #endif /* CONFIG_ATA_SFF */ | 521 | #endif /* CONFIG_ATA_SFF */ |
@@ -721,8 +723,10 @@ struct ata_port { | |||
721 | u8 ctl; /* cache of ATA control register */ | 723 | u8 ctl; /* cache of ATA control register */ |
722 | u8 last_ctl; /* Cache last written value */ | 724 | u8 last_ctl; /* Cache last written value */ |
723 | struct delayed_work sff_pio_task; | 725 | struct delayed_work sff_pio_task; |
726 | #ifdef CONFIG_ATA_BMDMA | ||
724 | struct ata_bmdma_prd *bmdma_prd; /* BMDMA SG list */ | 727 | struct ata_bmdma_prd *bmdma_prd; /* BMDMA SG list */ |
725 | dma_addr_t bmdma_prd_dma; /* and its DMA mapping */ | 728 | dma_addr_t bmdma_prd_dma; /* and its DMA mapping */ |
729 | #endif /* CONFIG_ATA_BMDMA */ | ||
726 | #endif /* CONFIG_ATA_SFF */ | 730 | #endif /* CONFIG_ATA_SFF */ |
727 | 731 | ||
728 | unsigned int pio_mask; | 732 | unsigned int pio_mask; |
@@ -856,10 +860,12 @@ struct ata_port_operations { | |||
856 | void (*sff_irq_clear)(struct ata_port *); | 860 | void (*sff_irq_clear)(struct ata_port *); |
857 | void (*sff_drain_fifo)(struct ata_queued_cmd *qc); | 861 | void (*sff_drain_fifo)(struct ata_queued_cmd *qc); |
858 | 862 | ||
863 | #ifdef CONFIG_ATA_BMDMA | ||
859 | void (*bmdma_setup)(struct ata_queued_cmd *qc); | 864 | void (*bmdma_setup)(struct ata_queued_cmd *qc); |
860 | void (*bmdma_start)(struct ata_queued_cmd *qc); | 865 | void (*bmdma_start)(struct ata_queued_cmd *qc); |
861 | void (*bmdma_stop)(struct ata_queued_cmd *qc); | 866 | void (*bmdma_stop)(struct ata_queued_cmd *qc); |
862 | u8 (*bmdma_status)(struct ata_port *ap); | 867 | u8 (*bmdma_status)(struct ata_port *ap); |
868 | #endif /* CONFIG_ATA_BMDMA */ | ||
863 | #endif /* CONFIG_ATA_SFF */ | 869 | #endif /* CONFIG_ATA_SFF */ |
864 | 870 | ||
865 | ssize_t (*em_show)(struct ata_port *ap, char *buf); | 871 | ssize_t (*em_show)(struct ata_port *ap, char *buf); |
@@ -1555,7 +1561,6 @@ extern void sata_pmp_error_handler(struct ata_port *ap); | |||
1555 | #ifdef CONFIG_ATA_SFF | 1561 | #ifdef CONFIG_ATA_SFF |
1556 | 1562 | ||
1557 | extern const struct ata_port_operations ata_sff_port_ops; | 1563 | extern const struct ata_port_operations ata_sff_port_ops; |
1558 | extern const struct ata_port_operations ata_bmdma_port_ops; | ||
1559 | extern const struct ata_port_operations ata_bmdma32_port_ops; | 1564 | extern const struct ata_port_operations ata_bmdma32_port_ops; |
1560 | 1565 | ||
1561 | /* PIO only, sg_tablesize and dma_boundary limits can be removed */ | 1566 | /* PIO only, sg_tablesize and dma_boundary limits can be removed */ |
@@ -1564,11 +1569,6 @@ extern const struct ata_port_operations ata_bmdma32_port_ops; | |||
1564 | .sg_tablesize = LIBATA_MAX_PRD, \ | 1569 | .sg_tablesize = LIBATA_MAX_PRD, \ |
1565 | .dma_boundary = ATA_DMA_BOUNDARY | 1570 | .dma_boundary = ATA_DMA_BOUNDARY |
1566 | 1571 | ||
1567 | #define ATA_BMDMA_SHT(drv_name) \ | ||
1568 | ATA_BASE_SHT(drv_name), \ | ||
1569 | .sg_tablesize = LIBATA_MAX_PRD, \ | ||
1570 | .dma_boundary = ATA_DMA_BOUNDARY | ||
1571 | |||
1572 | extern void ata_sff_dev_select(struct ata_port *ap, unsigned int device); | 1572 | extern void ata_sff_dev_select(struct ata_port *ap, unsigned int device); |
1573 | extern u8 ata_sff_check_status(struct ata_port *ap); | 1573 | extern u8 ata_sff_check_status(struct ata_port *ap); |
1574 | extern void ata_sff_pause(struct ata_port *ap); | 1574 | extern void ata_sff_pause(struct ata_port *ap); |
@@ -1625,6 +1625,15 @@ extern int ata_pci_sff_init_one(struct pci_dev *pdev, | |||
1625 | struct scsi_host_template *sht, void *host_priv, int hflags); | 1625 | struct scsi_host_template *sht, void *host_priv, int hflags); |
1626 | #endif /* CONFIG_PCI */ | 1626 | #endif /* CONFIG_PCI */ |
1627 | 1627 | ||
1628 | #ifdef CONFIG_ATA_BMDMA | ||
1629 | |||
1630 | extern const struct ata_port_operations ata_bmdma_port_ops; | ||
1631 | |||
1632 | #define ATA_BMDMA_SHT(drv_name) \ | ||
1633 | ATA_BASE_SHT(drv_name), \ | ||
1634 | .sg_tablesize = LIBATA_MAX_PRD, \ | ||
1635 | .dma_boundary = ATA_DMA_BOUNDARY | ||
1636 | |||
1628 | extern void ata_bmdma_qc_prep(struct ata_queued_cmd *qc); | 1637 | extern void ata_bmdma_qc_prep(struct ata_queued_cmd *qc); |
1629 | extern unsigned int ata_bmdma_qc_issue(struct ata_queued_cmd *qc); | 1638 | extern unsigned int ata_bmdma_qc_issue(struct ata_queued_cmd *qc); |
1630 | extern void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc); | 1639 | extern void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc); |
@@ -1652,6 +1661,7 @@ extern int ata_pci_bmdma_init_one(struct pci_dev *pdev, | |||
1652 | struct scsi_host_template *sht, | 1661 | struct scsi_host_template *sht, |
1653 | void *host_priv, int hflags); | 1662 | void *host_priv, int hflags); |
1654 | #endif /* CONFIG_PCI */ | 1663 | #endif /* CONFIG_PCI */ |
1664 | #endif /* CONFIG_ATA_BMDMA */ | ||
1655 | 1665 | ||
1656 | /** | 1666 | /** |
1657 | * ata_sff_busy_wait - Wait for a port status register | 1667 | * ata_sff_busy_wait - Wait for a port status register |