Skip to contentSkip to conversation

fdomain: Resurrect driver

RFC PATCH In review Ondrej Zary 3 participants 3 messages Apr 20, 2019 – Apr 22, 2019 SCSI

lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/1 fdomain: Resurrect driver

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.

Tested on Adaptec AHA-2920A PCI card. ISA and PCMCIA code is untested as I don't have the hardware.

---
 drivers/scsi/Kconfig               |  18 +
 drivers/scsi/Makefile              |   1 +
 drivers/scsi/fdomain.c             | 992 +++++++++++++++++++++++++++++++++++++
 drivers/scsi/fdomain.h             |   7 +
 drivers/scsi/pcmcia/Kconfig        |   9 +
 drivers/scsi/pcmcia/Makefile       |   2 +
 drivers/scsi/pcmcia/fdomain_core.c |   2 +
 drivers/scsi/pcmcia/fdomain_stub.c |  89 ++++
 8 files changed, 1120 insertions(+)
 create mode 100644 drivers/scsi/fdomain.c
 create mode 100644 drivers/scsi/fdomain.h
 create mode 100644 drivers/scsi/pcmcia/fdomain_core.c
 create mode 100644 drivers/scsi/pcmcia/fdomain_stub.c
drivers/scsi/Kconfig +18 -0
index d528018e6fa8..90950d875f2d 100644
@@ -663,6 +663,24 @@ config SCSI_DMX3191D
 	  To compile this driver as a module, choose M here: the
 	  module will be called dmx3191d.
 
+config SCSI_FUTURE_DOMAIN
+	tristate "Future Domain 16xx SCSI/AHA-2920A support"
+	depends on (ISA || PCI) && SCSI
+	select CHECK_SIGNATURE
+	help
+	  This is support for Future Domain's 16-bit SCSI host adapters
+	  (TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and
+	  other adapters based on the Future Domain chipsets (Quantum
+	  ISA-200S, ISA-250MG; Adaptec AHA-2920A; and at least one IBM board).
+
+	  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.
+
 config SCSI_GDTH
 	tristate "Intel/ICP (former GDT SCSI Disk Array) RAID Controller support"
 	depends on PCI && SCSI
drivers/scsi/Makefile +1 -0
index 8826111fdf4a..a9f80770d989 100644
@@ -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_FUTURE_DOMAIN)+= 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 +992 -0

992 lines not on this page · raw message

drivers/scsi/fdomain.h new file +7 -0
new file mode 100644
index 000000000000..7370b836cbc1
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+extern struct Scsi_Host *fdomain_create(int port_base, int irq, int this_id,
+					int bios_base, void *sig,
+					struct device *dev);
+extern void fdomain_reset(int port_base);
+extern int fdomain_destroy(struct Scsi_Host *sh);
drivers/scsi/pcmcia/Kconfig +9 -0
index 2d435f105b16..ecc855c550aa 100644
@@ -19,6 +19,15 @@ 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"
+	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 +2 -0
index a5a24dd44e7e..ba1f126f9b17 100644
@@ -4,9 +4,11 @@ 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
 
 aha152x_cs-objs	:= aha152x_stub.o aha152x_core.o
+fdomain_cs-objs	:= fdomain_stub.o fdomain_core.o
 qlogic_cs-objs	:= qlogic_stub.o
drivers/scsi/pcmcia/fdomain_core.c new file +2 -0
new file mode 100644
index 000000000000..a48913791868
@@ -0,0 +1,2 @@
+#define PCMCIA 1
+#include "fdomain.c"
drivers/scsi/pcmcia/fdomain_stub.c new file +89 -0

89 lines not on this page · raw message

Signature · 1 line
Ondrej Zary
#1 lore raw

As mentioned before: please drop the unused ISA and PCIMCIA code. We don't need to (re-)add untested code.

#2 lore raw
Quoted 2 lines · Christoph Hellwig

As mentioned before: please drop the unused ISA and PCIMCIA code. We don't need to (re-)add untested code.

I fully agree with regard to the PCMCIA part.

Thanks,
Dominik