Skip to contentSkip to conversation

Deprecate DAC960 driver

PATCH Superseded Hannes Reinecke 2 participants 5 messages Jan 24, 2018 – Feb 7, 2018

Subsystems (2)

v3 of 6 Superseded Latest is v6 →

lore
Share & tools
lore
#0 lore raw

v3 cover Deprecate DAC960 driver

Hi all,

as we're trying to get rid of the remaining request_fn drivers here's a patchset to move the DAC960 driver to the SCSI stack.
As per request from hch I've split up the driver into two new SCSI drivers called 'myrb' and 'myrs'.

The 'myrb' driver only supports the earlier (V1) firmware interface, which doesn't have a SCSI interface for the logical drives; for those I've added a (pretty rudimentary, admittedly) SCSI translation for them.

The 'myrs' driver supports the newer (V2) firmware interface, which is SCSI based and doesn't need the translation layer.

And the weird proc interface from DAC960 has been converted to sysfs attributes.

Tested with eXtremeRAID 1100 (for V1 Firmware) and Mylex AcceleRAID 170 (for V2 Firmware).

Changes to v2:
- Move to dma_pool API
- Fixup 0-day build issues
- Add myrb_biosparam
- Dropped patch merged with upstream

Changes to v1:
- Split into two drivers
- Improve scanning for V1 firmware interface

Hannes Reinecke (4):
raid_class: Add 'JBOD' RAID level
myrb: Add Mylex RAID controller (block interface)
myrs: Add Mylex RAID controller (SCSI interface) drivers/block: Remove DAC960 driver

 Documentation/blockdev/README.DAC960 |  756 ----
 drivers/block/DAC960.c               | 7244 ----------------------------------
 drivers/block/DAC960.h               | 4415 ---------------------
 drivers/block/Kconfig                |   12 -
 drivers/block/Makefile               |    1 -
 drivers/scsi/Kconfig                 |   30 +
 drivers/scsi/Makefile                |    2 +
 drivers/scsi/myrb.c                  | 3263 +++++++++++++++
 drivers/scsi/myrb.h                  | 1891 +++++++++
 drivers/scsi/myrs.c                  | 2950 ++++++++++++++
 drivers/scsi/myrs.h                  | 2042 ++++++++++
 drivers/scsi/raid_class.c            |    1 +
 include/linux/raid_class.h           |    1 +
 13 files changed, 10180 insertions(+), 12428 deletions(-)
 delete mode 100644 Documentation/blockdev/README.DAC960
 delete mode 100644 drivers/block/DAC960.c
 delete mode 100644 drivers/block/DAC960.h
 create mode 100644 drivers/scsi/myrb.c
 create mode 100644 drivers/scsi/myrb.h
 create mode 100644 drivers/scsi/myrs.c
 create mode 100644 drivers/scsi/myrs.h
Signature · 1 line
2.12.3
#1 lore raw

PATCH v3 1/4 raid_class: Add 'JBOD' RAID level

Not a real RAID level, but some HBAs support JBOD in addition to the 'classical' RAID levels.

---
 drivers/scsi/raid_class.c  | 1 +
 include/linux/raid_class.h | 1 +
 2 files changed, 2 insertions(+)
drivers/scsi/raid_class.c +1 -0
index 2c146b44d95f..ea88906d2cc5 100644
@@ -157,6 +157,7 @@ static struct {
 	{ RAID_LEVEL_5, "raid5" },
 	{ RAID_LEVEL_50, "raid50" },
 	{ RAID_LEVEL_6, "raid6" },
+	{ RAID_LEVEL_JBOD, "jbod" },
 };
 
 static const char *raid_level_name(enum raid_level level)
include/linux/raid_class.h +1 -0
index 31e1ff69efc8..ec8655514283 100644
@@ -38,6 +38,7 @@ enum raid_level {
 	RAID_LEVEL_5,
 	RAID_LEVEL_50,
 	RAID_LEVEL_6,
+	RAID_LEVEL_JBOD,
 };
 
 struct raid_data {
Signature · 1 line
2.12.3
#2 lore raw

PATCH v3 2/4 myrb: Add Mylex RAID controller (block interface)

In reply to Hannes Reinecke

This patch adds support for the Mylex DAC960 RAID controller, supporting the older, block-based interface only.
The driver is a re-implementation of the original DAC960 driver.

---
 drivers/scsi/Kconfig  |   15 +
 drivers/scsi/Makefile |    1 +
 drivers/scsi/myrb.c   | 3263 +++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/myrb.h   | 1891 ++++++++++++++++++++++++++++
 4 files changed, 5170 insertions(+)
 create mode 100644 drivers/scsi/myrb.c
 create mode 100644 drivers/scsi/myrb.h
drivers/scsi/Kconfig +15 -0
index 8a739b74cfb7..0b629579536c 100644
@@ -556,6 +556,21 @@ config SCSI_FLASHPOINT
 	  substantial, so users of MultiMaster Host Adapters may not
 	  wish to include it.
 
+config SCSI_MYRB
+	tristate "Mylex DAC960/DAC1100 PCI RAID Controller (Block Interface)"
+	depends on PCI
+	select RAID_ATTRS
+	help
+	  This driver adds support for the Mylex DAC960, AcceleRAID, and
+	  eXtremeRAID PCI RAID controllers. This driver supports the
+	  older, block based interface.
+	  This driver is a reimplementation of the original DAC960
+	  driver. If you have used the DAC960 driver you should enable
+	  this module.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called myrb.
+
 config VMWARE_PVSCSI
 	tristate "VMware PVSCSI driver support"
 	depends on PCI && SCSI && X86
drivers/scsi/Makefile +1 -0
index fcfd28d2884c..62466761c25e 100644
@@ -111,6 +111,7 @@ obj-$(CONFIG_SCSI_INIA100)	+= a100u2w.o
 obj-$(CONFIG_SCSI_QLOGICPTI)	+= qlogicpti.o
 obj-$(CONFIG_SCSI_MESH)		+= mesh.o
 obj-$(CONFIG_SCSI_MAC53C94)	+= mac53c94.o
+obj-$(CONFIG_SCSI_MYRB)		+= myrb.o
 obj-$(CONFIG_BLK_DEV_3W_XXXX_RAID) += 3w-xxxx.o
 obj-$(CONFIG_SCSI_3W_9XXX)	+= 3w-9xxx.o
 obj-$(CONFIG_SCSI_3W_SAS)	+= 3w-sas.o
drivers/scsi/myrb.c new file +3263 -0

2,972 lines not on this page · raw message

drivers/scsi/myrb.h new file +1891 -0

1,891 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.12.3

Part of the diff is not shown here. View the raw message.

#3 lore raw

PATCH v3 3/4 myrs: Add Mylex RAID controller (SCSI interface)

In reply to Hannes Reinecke

This patch adds support for the Mylex DAC960 RAID controller, supporting the newer, SCSI-based interface.
The driver is a re-implementation of the original DAC960 driver.

---
 drivers/scsi/Kconfig  |   15 +
 drivers/scsi/Makefile |    1 +
 drivers/scsi/myrs.c   | 2950 +++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/myrs.h   | 2042 ++++++++++++++++++++++++++++++++++
 4 files changed, 5008 insertions(+)
 create mode 100644 drivers/scsi/myrs.c
 create mode 100644 drivers/scsi/myrs.h
drivers/scsi/Kconfig +15 -0
index 0b629579536c..27a0b05fb855 100644
@@ -571,6 +571,21 @@ config SCSI_MYRB
 	  To compile this driver as a module, choose M here: the
 	  module will be called myrb.
 
+config SCSI_MYRS
+	tristate "Mylex DAC960/DAC1100 PCI RAID Controller (SCSI Interface)"
+	depends on PCI
+	select RAID_ATTRS
+	help
+	  This driver adds support for the Mylex DAC960, AcceleRAID, and
+	  eXtremeRAID PCI RAID controllers.  This driver supports the
+	  newer, SCSI-based interface only.
+	  This driver is a reimplementation of the original DAC960
+	  driver. If you have used the DAC960 driver you should enable
+	  this module.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called myrs.
+
 config VMWARE_PVSCSI
 	tristate "VMware PVSCSI driver support"
 	depends on PCI && SCSI && X86
drivers/scsi/Makefile +1 -0
index 62466761c25e..18511d3823d5 100644
@@ -112,6 +112,7 @@ obj-$(CONFIG_SCSI_QLOGICPTI)	+= qlogicpti.o
 obj-$(CONFIG_SCSI_MESH)		+= mesh.o
 obj-$(CONFIG_SCSI_MAC53C94)	+= mac53c94.o
 obj-$(CONFIG_SCSI_MYRB)		+= myrb.o
+obj-$(CONFIG_SCSI_MYRS)		+= myrs.o
 obj-$(CONFIG_BLK_DEV_3W_XXXX_RAID) += 3w-xxxx.o
 obj-$(CONFIG_SCSI_3W_9XXX)	+= 3w-9xxx.o
 obj-$(CONFIG_SCSI_3W_SAS)	+= 3w-sas.o
drivers/scsi/myrs.c new file +2950 -0

2,950 lines not on this page · raw message

drivers/scsi/myrs.h new file +2042 -0

22 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.12.3

Part of the diff is not shown here. View the raw message.

#4 lore raw
In reply to Hannes Reinecke

Hannes,

Quoted 10 lines

as we're trying to get rid of the remaining request_fn drivers here's a patchset to move the DAC960 driver to the SCSI stack. As per request from hch I've split up the driver into two new SCSI drivers called 'myrb' and 'myrs'.

The 'myrb' driver only supports the earlier (V1) firmware interface, which doesn't have a SCSI interface for the logical drives; for those I've added a (pretty rudimentary, admittedly) SCSI translation for them.

Quoted 5 lines

The 'myrs' driver supports the newer (V2) firmware interface, which is SCSI based and doesn't need the translation layer.

And the weird proc interface from DAC960 has been converted to sysfs attributes.

Thanks for doing this. I merged these into 4.17/scsi-queue.

Signature · 1 line
Martin K. Petersen	Oracle Linux Engineering