Skip to contentSkip to conversation

fdomain: Remove BIOS-related code from core

PATCH In review Ondrej Zary 3 participants 6 messages May 10, 2019 – May 13, 2019 SCSI

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 fdomain: Remove BIOS-related code from core

Move all BIOS signature and base handling to (currently not merged) ISA bus driver.

---
 drivers/scsi/fdomain.c     | 18 ++----------------
 drivers/scsi/fdomain.h     | 10 ----------
 drivers/scsi/fdomain_pci.c |  2 +-
 3 files changed, 3 insertions(+), 27 deletions(-)
drivers/scsi/fdomain.c +2 -16
index e43fdd1ab3a8..f0fda2ad1c7d 100644
@@ -494,7 +494,6 @@ static struct scsi_host_template fdomain_template = {
 };
 
 struct Scsi_Host *fdomain_create(int base, int irq, int this_id,
-				 unsigned long bios_base, struct signature *sig,
 				 struct device *dev)
 {
 	struct Scsi_Host *sh;
@@ -524,9 +523,6 @@ struct Scsi_Host *fdomain_create(int base, int irq, int this_id,
 
 	if (this_id)
 		sh->this_id = this_id & 0x07;
-	else if (sig && sig->bios_major > 0 &&
-		(sig->bios_major < 3 || sig->bios_minor < 2))
-		sh->this_id = 6;
 
 	sh->irq = irq;
 	sh->io_port = base;
@@ -541,19 +537,9 @@ struct Scsi_Host *fdomain_create(int base, int irq, int this_id,
 			  "fdomain", fd))
 		goto fail_put;
 
-	if (!sig || (sig->bios_major < 0 && sig->bios_minor < 0))
-		shost_printk(KERN_INFO, sh, "No BIOS; using SCSI ID %d\n",
-			     sh->this_id);
-	else {
-		char v1 = (sig->bios_major >= 0) ? '0' + sig->bios_major : '?';
-		char v2 = (sig->bios_minor >= 0) ? '0' + sig->bios_minor : '?';
-
-		shost_printk(KERN_INFO, sh, "BIOS version %c.%c at 0x%lx using SCSI ID %d\n",
-			     v1, v2, bios_base, sh->this_id);
-	}
-	shost_printk(KERN_INFO, sh, "%s chip at 0x%x irq %d\n",
+	shost_printk(KERN_INFO, sh, "%s chip at 0x%x irq %d SCSI ID %d\n",
 		     dev_is_pci(dev) ? "TMC-36C70 (PCI bus)" : chip_names[chip],
-		     base, irq);
+		     base, irq, sh->this_id);
 
 	if (scsi_add_host(sh, dev))
 		goto fail_free_irq;
drivers/scsi/fdomain.h +0 -10
index a124a95764d6..fabb2e49461f 100644
@@ -41,15 +41,6 @@ enum out_port_type {
 	Write_FIFO	= 12
 };
 
-struct signature {
-	const char *signature;
-	int offset;
-	int length;
-	int bios_major;
-	int bios_minor;
-	int flag; /* 1 = PCI_bus, 2 = ISA_200S, 3 = ISA_250MG, 4 = ISA_200S */
-};
-
 #ifdef CONFIG_PM_SLEEP
 static const struct dev_pm_ops fdomain_pm_ops;
 #define FDOMAIN_PM_OPS	(&fdomain_pm_ops)
@@ -58,6 +49,5 @@ static const struct dev_pm_ops fdomain_pm_ops;
 #endif /* CONFIG_PM_SLEEP */
 
 struct Scsi_Host *fdomain_create(int base, int irq, int this_id,
-				 unsigned long bios_base, struct signature *sig,
 				 struct device *dev);
 int fdomain_destroy(struct Scsi_Host *sh);
drivers/scsi/fdomain_pci.c +1 -1
index 381a7157c078..3e05ce7b89e5 100644
@@ -22,7 +22,7 @@ static int fdomain_pci_probe(struct pci_dev *pdev,
 	if (pci_resource_len(pdev, 0) == 0)
 		goto release_region;
 
-	sh = fdomain_create(pci_resource_start(pdev, 0), pdev->irq, 7, 0, NULL,
+	sh = fdomain_create(pci_resource_start(pdev, 0), pdev->irq, 7,
 			    &pdev->dev);
 	if (!sh)
 		goto release_region;
Signature · 1 line
Ondrej Zary
#1 lore raw

PATCH 2/2 fdomain: Add ISA bus support

Add 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
#3 lore raw

Re: [PATCH 2/2] fdomain: Add ISA bus support

Quoted 6 lines · On Monday 13 May 2019 09:09:04 Christoph Hellwig wrote:
Quoted 3 lines · Ondrej Zary

Add Future Domain 16xx ISA SCSI support card support.

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

Where did you find that thing? :)

eBay :) There are also some PCMCIA cards there.

Quoted 7 lines
Quoted 2 lines

The driver looks fine to me:

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

Hi Ondrej,

Quoted 2 lines

Move all BIOS signature and base handling to (currently not merged) ISA bus driver.

Please submit a complete (core/PCI/ISA) series with the kbuild warnings addressed and Christoph's tags added.

Thanks!

Signature · 1 line
Martin K. Petersen	Oracle Linux Engineering