diff options
| author | Tejun Heo <htejun@gmail.com> | 2008-04-30 03:35:17 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@redhat.com> | 2008-05-06 11:40:57 -0400 |
| commit | 22bfc6d5e19b72d50535ce32fd6dee2ce2e75775 (patch) | |
| tree | ab0a8061ee01534fe723e89af23e71b67c5480db | |
| parent | ba66b242b1c3432b44d893c64124522b3bdce71e (diff) | |
sata_inic162x: update intro comment, up the version and drop EXPERIMENTAL
sata_inic162x is now ready for production use. Bump the version,
explain what's working and what's not and drop EXPERIMENTAL.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| -rw-r--r-- | drivers/ata/Kconfig | 4 | ||||
| -rw-r--r-- | drivers/ata/sata_inic162x.c | 36 |
2 files changed, 30 insertions, 10 deletions
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index 1a59f305f7db..9bf2986a2788 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig | |||
| @@ -205,8 +205,8 @@ config SATA_VITESSE | |||
| 205 | If unsure, say N. | 205 | If unsure, say N. |
| 206 | 206 | ||
| 207 | config SATA_INIC162X | 207 | config SATA_INIC162X |
| 208 | tristate "Initio 162x SATA support (HIGHLY EXPERIMENTAL)" | 208 | tristate "Initio 162x SATA support" |
| 209 | depends on PCI && EXPERIMENTAL | 209 | depends on PCI |
| 210 | help | 210 | help |
| 211 | This option enables support for Initio 162x Serial ATA. | 211 | This option enables support for Initio 162x Serial ATA. |
| 212 | 212 | ||
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c index 8c1f06a3c8fd..3ead02fe379e 100644 --- a/drivers/ata/sata_inic162x.c +++ b/drivers/ata/sata_inic162x.c | |||
| @@ -10,13 +10,33 @@ | |||
| 10 | * right. Documentation is available at initio's website but it only | 10 | * right. Documentation is available at initio's website but it only |
| 11 | * documents registers (not programming model). | 11 | * documents registers (not programming model). |
| 12 | * | 12 | * |
| 13 | * - ATA disks work. | 13 | * This driver has interesting history. The first version was written |
| 14 | * - Hotplug works. | 14 | * from the documentation and a 2.4 IDE driver posted on a Taiwan |
| 15 | * - ATAPI read works but burning doesn't. This thing is really | 15 | * company, which didn't use any IDMA features and couldn't handle |
| 16 | * peculiar about ATAPI and I couldn't figure out how ATAPI PIO and | 16 | * LBA48. The resulting driver couldn't handle LBA48 devices either |
| 17 | * ATAPI DMA WRITE should be programmed. If you've got a clue, be | 17 | * making it pretty useless. |
| 18 | * my guest. | 18 | * |
| 19 | * - Both STR and STD work. | 19 | * After a while, initio picked the driver up, renamed it to |
| 20 | * sata_initio162x, updated it to use IDMA for ATA DMA commands and | ||
| 21 | * posted it on their website. It only used ATA_PROT_DMA for IDMA and | ||
| 22 | * attaching both devices and issuing IDMA and !IDMA commands | ||
| 23 | * simultaneously broke it due to PIRQ masking interaction but it did | ||
| 24 | * show how to use the IDMA (ADMA + some initio specific twists) | ||
| 25 | * engine. | ||
| 26 | * | ||
| 27 | * Then, I picked up their changes again and here's the usable driver | ||
| 28 | * which uses IDMA for everything. Everything works now including | ||
| 29 | * LBA48, CD/DVD burning, suspend/resume and hotplug. There are some | ||
| 30 | * issues tho. Result Tf is not resported properly, NCQ isn't | ||
| 31 | * supported yet and CD/DVD writing works with DMA assisted PIO | ||
| 32 | * protocol (which, for native SATA devices, shouldn't cause any | ||
| 33 | * noticeable difference). | ||
| 34 | * | ||
| 35 | * Anyways, so, here's finally a working driver for inic162x. Enjoy! | ||
| 36 | * | ||
| 37 | * initio: If you guys wanna improve the driver regarding result TF | ||
| 38 | * access and other stuff, please feel free to contact me. I'll be | ||
| 39 | * happy to assist. | ||
| 20 | */ | 40 | */ |
| 21 | 41 | ||
| 22 | #include <linux/kernel.h> | 42 | #include <linux/kernel.h> |
| @@ -28,7 +48,7 @@ | |||
| 28 | #include <scsi/scsi_device.h> | 48 | #include <scsi/scsi_device.h> |
| 29 | 49 | ||
| 30 | #define DRV_NAME "sata_inic162x" | 50 | #define DRV_NAME "sata_inic162x" |
| 31 | #define DRV_VERSION "0.3" | 51 | #define DRV_VERSION "0.4" |
| 32 | 52 | ||
| 33 | enum { | 53 | enum { |
| 34 | MMIO_BAR_PCI = 5, | 54 | MMIO_BAR_PCI = 5, |
