diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-02-02 14:12:23 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-02-02 14:12:23 -0500 |
commit | a77dcc437c1c3bc73887ecac8a304e4adcabb9b7 (patch) | |
tree | f4e87dd4be440be29f819dff169d5c9b6724558a /drivers/ide/Kconfig | |
parent | 9f6514c1c5b55ab90f3ad1f3fc18b9daa5bd9c8c (diff) |
ide: add CS5536 host driver (v3)
This is a port of libata's pata_cs5536.c (written by Martin K. Petersen)
to IDE subsystem.
Changes done while at it:
* Reprogram PIO/MWDMA timings if needed before and after DMA transfer
(chipset uses shared PIO/MWDMA timings).
* Fix cable detection to report 80-wires cable if BIOS set it for any
device on a port (IDE core will do drive-side cable detection later).
* Don't disable UDMA while programming PIO timings.
* Simplify PCI/MSR support.
Pros of having IDE host driver in addition to libata's one:
* IDE is much lighter than SCSI+libata, the host driver itself is also
a bit smaller:
text data bss dec hex filename
1261 496 4 1761 6e1 drivers/ata/pata_cs5536.o
1242 128 4 1374 55e drivers/ide/cs5536.o
* This allows use of IDE features which are unavailable under libata.
v2:
* Fixes per review from Sergei:
- simplify dependency check in Kconfig
- use IDE_DRV_MASK also for ->drive_data
- disable UDMA when programming MWDMA
- program new DTC timings only when necessary
- fix printk() level in cs5536_init_one()
* Fix patch description according to comments from Alan and Sergei.
v3:
* Smarter masking of UDMA bits per Sergei's suggestion.
Cc: Martin K. Petersen <mkp@mkp.net>
Cc: Karl Auerbach <karl@iwl.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/Kconfig')
-rw-r--r-- | drivers/ide/Kconfig | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index b1c6f68d98ce..3dad2299d9c5 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
@@ -465,6 +465,16 @@ config BLK_DEV_CS5535 | |||
465 | 465 | ||
466 | It is safe to say Y to this question. | 466 | It is safe to say Y to this question. |
467 | 467 | ||
468 | config BLK_DEV_CS5536 | ||
469 | tristate "CS5536 chipset support" | ||
470 | depends on X86_32 | ||
471 | select BLK_DEV_IDEDMA_PCI | ||
472 | help | ||
473 | This option enables support for the AMD CS5536 | ||
474 | companion chip used with the Geode LX processor family. | ||
475 | |||
476 | If unsure, say N. | ||
477 | |||
468 | config BLK_DEV_HPT366 | 478 | config BLK_DEV_HPT366 |
469 | tristate "HPT36X/37X chipset support" | 479 | tristate "HPT36X/37X chipset support" |
470 | select BLK_DEV_IDEDMA_PCI | 480 | select BLK_DEV_IDEDMA_PCI |