Skip to contentSkip to conversation

fdomain: Resurrect driver

PATCH Applied Ondrej Zary 2 participants 5 messages May 14, 2019 SCSI

lore
Share & tools
lore
#0 lore raw

v2 cover 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.

This is a modularized version with core separated from bus-specific drivers (PCI, ISA and PCMCIA). Only PCI and ISA drivers are submitted for now.

Changes in v2:
- BIOS-related code moved to ISA driver and simplified
- fixed (un)locking in fdomain_host_reset

Signature · 1 line
Ondrej Zary
#1 lore raw

PATCH v2 1/3 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 | 586 +++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/fdomain.h |  53 +++++
 4 files changed, 644 insertions(+)
 create mode 100644 drivers/scsi/fdomain.c
 create mode 100644 drivers/scsi/fdomain.h
drivers/scsi/Kconfig +4 -0
index d528018e6fa8..3d6b1f47cbb5 100644
@@ -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
index 8826111fdf4a..b8fbc6d2de54 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_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 +586 -0

586 lines not on this page · raw message

drivers/scsi/fdomain.h new file +53 -0

53 lines not on this page · raw message

Signature · 1 line
Ondrej Zary
#2 lore raw

PATCH v2 2/3 fdomain: Resurrect driver (PCI support)

In reply to Ondrej Zary

Future 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
index 3d6b1f47cbb5..f9d058a07e2a 100644
@@ -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
index b8fbc6d2de54..f6cc4fbe6957 100644
@@ -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
#3 lore raw

PATCH v2 3/3 fdomain: Resurrect driver (ISA support)

In reply to Ondrej Zary

Future Domain 16xx ISA SCSI support card support.

Tested on IBM 92F0330 card (18C50 chip) with v1.00 BIOS.

---
 drivers/scsi/Kconfig       |  14 +++
 drivers/scsi/Makefile      |   1 +
 drivers/scsi/fdomain_isa.c | 222 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 237 insertions(+)
 create mode 100644 drivers/scsi/fdomain_isa.c
drivers/scsi/Kconfig +14 -0
index f9d058a07e2a..2ea77dafbc00 100644
@@ -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
index f6cc4fbe6957..2e2cffff777d 100644
@@ -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 +222 -0

222 lines not on this page · raw message

Signature · 1 line
Ondrej Zary
#4 lore raw
In reply to Ondrej Zary

Ondrej,

Quoted 8 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 and ISA drivers are submitted for now.

Applied to 5.3/scsi-queue. Thanks!

Signature · 1 line
Martin K. Petersen	Oracle Linux Engineering