Behold! This is the driver for the Toshiba TC86C001 GOKU-S IDE controller,
completely reworked from the original brain-damaged Toshiba's 2.4 version.
This single channel UltraDMA/66 controller is very simple in programming, yet
Toshiba managed to plant many interesting bugs in it. The particularly nasty
"limitation 5" (as they call the errata) caused me to abuse the IDE core in a
possibly most interesting way so far. However, this is still better than the
#ifdef mess in drivers/ide/ide-io.c that the original version included (well,
it had much more mess)...
Signed-off-by: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx>
drivers/ide/Kconfig | 5 drivers/ide/pci/Makefile | 1 drivers/ide/pci/tc86c001.c | 304 +++++++++++++++++++++++++++++++++++++++++++++
drivers/pci/quirks.c | 18 ++
include/linux/pci_ids.h | 1 5 files changed, 329 insertions(+)
Index: linux-2.6/drivers/ide/Kconfig
===================================================================
--- linux-2.6.orig/drivers/ide/Kconfig
+++ linux-2.6/drivers/ide/Kconfig
@@ -742,6 +742,11 @@ config BLK_DEV_VIA82CXXX
This allows the kernel to change PIO, DMA and UDMA speeds and to
configure the chip to optimum performance.
+config BLK_DEV_TC86C001
+ tristate "Toshiba TC86C001 support"
Needs something here like lots of other IDE PCI drivers have:
depends on PCI && BLK_DEV_IDEPCI
or at least: depends on PCI
+ help
+ This driver adds support for Toshiba TC86C001 GOKU-S chip.
+
endif