fdomain: Resurrect driver (modular version)
cover fdomain: Resurrect driver (modular version)
Resurrect previously removed fdomain driver, in modern style. Initialization is rewritten completely, with support for multiple cards, no more global state variables.
Most of the code from interrupt handler is moved to a workqueue.
This is a modularized version with core separated from bus-specific drivers (PCI, ISA and PCMCIA). Only PCI driver is tested for now. The other two could be dropped until they get tested.
Changes since RFC:
- multi-line comment style, some coding style
- usage of scsi_k(un)map_atomic_sg for buffer access
- static marking of fdomain_host_reset and fdomain_template
- IRQ lookup moved to ISA bus driver
- EXPORT_SYMBOL_GPL
Signature · 1 line
Ondrej Zary
PATCH 1/4 fdomain: Resurrect driver (core)
Future Domain TMC-16xx/TMC-3260 SCSI driver.
This is the core driver, common for PCI, ISA and PCMCIA cards.
--- drivers/scsi/Kconfig | 4 + drivers/scsi/Makefile | 1 + drivers/scsi/fdomain.c | 600 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/fdomain.h | 63 ++++++ 4 files changed, 668 insertions(+) create mode 100644 drivers/scsi/fdomain.c create mode 100644 drivers/scsi/fdomain.h
drivers/scsi/Kconfig +4 -0
@@ -663,6 +663,10 @@ config SCSI_DMX3191D To compile this driver as a module, choose M here: the module will be called dmx3191d. +config SCSI_FDOMAIN + tristate + depends on SCSI + config SCSI_GDTH tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support" depends on PCI && SCSI
drivers/scsi/Makefile +1 -0
@@ -76,6 +76,7 @@ obj-$(CONFIG_SCSI_AIC94XX) += aic94xx/ obj-$(CONFIG_SCSI_PM8001) += pm8001/ obj-$(CONFIG_SCSI_ISCI) += isci/ obj-$(CONFIG_SCSI_IPS) += ips.o +obj-$(CONFIG_SCSI_FDOMAIN) += fdomain.o obj-$(CONFIG_SCSI_GENERIC_NCR5380) += g_NCR5380.o obj-$(CONFIG_SCSI_QLOGIC_FAS) += qlogicfas408.o qlogicfas.o obj-$(CONFIG_PCMCIA_QLOGIC) += qlogicfas408.o
drivers/scsi/fdomain.c new file +600 -0
600 lines not on this page · raw message
drivers/scsi/fdomain.h new file +63 -0
63 lines not on this page · raw message
Signature · 1 line
Ondrej Zary
Re: [PATCH 1/4] fdomain: Resurrect driver (core)
Quoted 1 line
+void
fdomain_reset(int base)
Should be marked static.
Otherwise looks fine:
PATCH v2 1/4 fdomain: Resurrect driver (core)
Future Domain TMC-16xx/TMC-3260 SCSI driver.
This is the core driver, common for PCI, ISA and PCMCIA cards.
---
Changes in v2:
- fdomain_reset marked static
--- drivers/scsi/Kconfig | 4 + drivers/scsi/Makefile | 1 + drivers/scsi/fdomain.c | 600 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/fdomain.h | 63 ++++++ 4 files changed, 668 insertions(+) create mode 100644 drivers/scsi/fdomain.c create mode 100644 drivers/scsi/fdomain.h
drivers/scsi/Kconfig +4 -0
@@ -663,6 +663,10 @@ config SCSI_DMX3191D To compile this driver as a module, choose M here: the module will be called dmx3191d. +config SCSI_FDOMAIN + tristate + depends on SCSI + config SCSI_GDTH tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support" depends on PCI && SCSI
drivers/scsi/Makefile +1 -0
@@ -76,6 +76,7 @@ obj-$(CONFIG_SCSI_AIC94XX) += aic94xx/ obj-$(CONFIG_SCSI_PM8001) += pm8001/ obj-$(CONFIG_SCSI_ISCI) += isci/ obj-$(CONFIG_SCSI_IPS) += ips.o +obj-$(CONFIG_SCSI_FDOMAIN) += fdomain.o obj-$(CONFIG_SCSI_GENERIC_NCR5380) += g_NCR5380.o obj-$(CONFIG_SCSI_QLOGIC_FAS) += qlogicfas408.o qlogicfas.o obj-$(CONFIG_PCMCIA_QLOGIC) += qlogicfas408.o
drivers/scsi/fdomain.c new file +600 -0
600 lines not on this page · raw message
drivers/scsi/fdomain.h new file +63 -0
63 lines not on this page · raw message
Signature · 1 line
Ondrej Zary
PATCH 2/4 fdomain: Resurrect driver (PCI support)
In reply to Ondrej ZaryFuture Domain TMC-3260/AHA-2920A PCI card support.
Tested on Adaptec AHA-2920A PCI card.
--- drivers/scsi/Kconfig | 17 ++++++++++++ drivers/scsi/Makefile | 1 + drivers/scsi/fdomain_pci.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 drivers/scsi/fdomain_pci.c
drivers/scsi/Kconfig +17 -0
@@ -667,6 +667,23 @@ config SCSI_FDOMAIN tristate depends on SCSI +config SCSI_FDOMAIN_PCI + tristate "Future Domain TMC-3260/AHA-2920A PCI SCSI support" + depends on PCI && SCSI + select SCSI_FDOMAIN + help + This is support for Future Domain's PCI SCSI host adapters (TMC-3260) + and other adapters with PCI bus based on the Future Domain chipsets + (Adaptec AHA-2920A). + + NOTE: Newer Adaptec AHA-2920C boards use the Adaptec AIC-7850 chip + and should use the aic7xxx driver ("Adaptec AIC7xxx chipset SCSI + controller support"). This Future Domain driver works with the older + Adaptec AHA-2920A boards with a Future Domain chip on them. + + To compile this driver as a module, choose M here: the + module will be called fdomain_pci. + config SCSI_GDTH tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support" depends on PCI && SCSI
drivers/scsi/Makefile +1 -0
@@ -77,6 +77,7 @@ obj-$(CONFIG_SCSI_PM8001) += pm8001/ obj-$(CONFIG_SCSI_ISCI) += isci/ obj-$(CONFIG_SCSI_IPS) += ips.o obj-$(CONFIG_SCSI_FDOMAIN) += fdomain.o +obj-$(CONFIG_SCSI_FDOMAIN_PCI) += fdomain_pci.o obj-$(CONFIG_SCSI_GENERIC_NCR5380) += g_NCR5380.o obj-$(CONFIG_SCSI_QLOGIC_FAS) += qlogicfas408.o qlogicfas.o obj-$(CONFIG_PCMCIA_QLOGIC) += qlogicfas408.o
drivers/scsi/fdomain_pci.c new file +68 -0
68 lines not on this page · raw message
Signature · 1 line
Ondrej Zary
Re: [PATCH 2/4] fdomain: Resurrect driver (PCI support)
Quoted 5 lines · Ondrej Zary
Future Domain TMC-3260/AHA-2920A PCI card support.
Tested on Adaptec AHA-2920A PCI card.
Signed-off-by Ondrej Zary <[email protected]>
Looks fine:
PATCH 3/4 fdomain: Resurrect driver (ISA support)
In reply to Ondrej ZaryFuture Domain 16xx ISA SCSI support card support.
Currently untested.
--- drivers/scsi/Kconfig | 14 +++ drivers/scsi/Makefile | 1 + drivers/scsi/fdomain_isa.c | 231 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 246 insertions(+) create mode 100644 drivers/scsi/fdomain_isa.c
drivers/scsi/Kconfig +14 -0
@@ -684,6 +684,20 @@ config SCSI_FDOMAIN_PCI To compile this driver as a module, choose M here: the module will be called fdomain_pci. +config SCSI_FDOMAIN_ISA + tristate "Future Domain 16xx ISA SCSI support" + depends on ISA && SCSI + select CHECK_SIGNATURE + select SCSI_FDOMAIN + help + This is support for Future Domain's 16-bit SCSI host adapters + (TMC-1660/1680, TMC-1650/1670, TMC-1610M/MER/MEX) and other adapters + with ISA bus based on the Future Domain chipsets (Quantum ISA-200S, + ISA-250MG; and at least one IBM board). + + To compile this driver as a module, choose M here: the + module will be called fdomain_isa. + config SCSI_GDTH tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support" depends on PCI && SCSI
drivers/scsi/Makefile +1 -0
@@ -78,6 +78,7 @@ obj-$(CONFIG_SCSI_ISCI) += isci/ obj-$(CONFIG_SCSI_IPS) += ips.o obj-$(CONFIG_SCSI_FDOMAIN) += fdomain.o obj-$(CONFIG_SCSI_FDOMAIN_PCI) += fdomain_pci.o +obj-$(CONFIG_SCSI_FDOMAIN_ISA) += fdomain_isa.o obj-$(CONFIG_SCSI_GENERIC_NCR5380) += g_NCR5380.o obj-$(CONFIG_SCSI_QLOGIC_FAS) += qlogicfas408.o qlogicfas.o obj-$(CONFIG_PCMCIA_QLOGIC) += qlogicfas408.o
drivers/scsi/fdomain_isa.c new file +231 -0
231 lines not on this page · raw message
Signature · 1 line
Ondrej Zary
PATCH 4/4 fdomain: Resurrect driver (PCMCIA support)
In reply to Ondrej ZaryFuture Domain PCMCIA SCSI support card support.
Currently untested.
--- drivers/scsi/pcmcia/Kconfig | 10 +++++ drivers/scsi/pcmcia/Makefile | 1 + drivers/scsi/pcmcia/fdomain_cs.c | 89 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 drivers/scsi/pcmcia/fdomain_cs.c
drivers/scsi/pcmcia/Kconfig +10 -0
@@ -19,6 +19,16 @@ config PCMCIA_AHA152X To compile this driver as a module, choose M here: the module will be called aha152x_cs. +config PCMCIA_FDOMAIN + tristate "Future Domain PCMCIA support" + select SCSI_FDOMAIN + help + Say Y here if you intend to attach this type of PCMCIA SCSI host + adapter to your computer. + + To compile this driver as a module, choose M here: the + module will be called fdomain_cs. + config PCMCIA_NINJA_SCSI tristate "NinjaSCSI-3 / NinjaSCSI-32Bi (16bit) PCMCIA support" depends on !64BIT
drivers/scsi/pcmcia/Makefile +1 -0
@@ -4,6 +4,7 @@ ccflags-y := -I $(srctree)/drivers/scsi # 16-bit client drivers obj-$(CONFIG_PCMCIA_QLOGIC) += qlogic_cs.o +obj-$(CONFIG_PCMCIA_FDOMAIN) += fdomain_cs.o obj-$(CONFIG_PCMCIA_AHA152X) += aha152x_cs.o obj-$(CONFIG_PCMCIA_NINJA_SCSI) += nsp_cs.o obj-$(CONFIG_PCMCIA_SYM53C500) += sym53c500_cs.o
drivers/scsi/pcmcia/fdomain_cs.c new file +89 -0
89 lines not on this page · raw message
Signature · 1 line
Ondrej Zary
Ondrej,
Quoted 7 lines
Resurrect previously removed fdomain driver, in modern style. Initialization is rewritten completely, with support for multiple cards, no more global state variables. Most of the code from interrupt handler is moved to a workqueue.
This is a modularized version with core separated from bus-specific drivers (PCI, ISA and PCMCIA). Only PCI driver is tested for now.
I applied patches #1(v2) and #2 to 5.2/scsi-queue with a few tweaks.
Thanks for your work on this!
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering