Deprecate DAC960 driver
Subsystems (2)
v2 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 v1:
- Split into two drivers
- Improve scanning for V1 firmware interface
Hannes Reinecke (5):
raid_class: Add 'JBOD' RAID level
scsi: Add VENDOR_SPECIFIC sense code definitions
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 | 28 + drivers/scsi/Makefile | 2 + drivers/scsi/myrb.c | 3249 +++++++++++++++ drivers/scsi/myrb.h | 1891 +++++++++ drivers/scsi/myrs.c | 2947 ++++++++++++++ drivers/scsi/myrs.h | 2042 ++++++++++ drivers/scsi/raid_class.c | 1 + include/linux/raid_class.h | 1 + include/scsi/scsi_proto.h | 1 + 14 files changed, 10162 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
PATCH v2 1/5 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
@@ -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
@@ -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
PATCH v2 2/5 scsi: Add VENDOR_SPECIFIC sense code definitions
In reply to Hannes ReineckeSome older devices will return vendor specific sense codes, so we should be adding a definition for it.
--- include/scsi/scsi_proto.h | 1 + 1 file changed, 1 insertion(+)
include/scsi/scsi_proto.h +1 -0
@@ -236,6 +236,7 @@ struct scsi_varlen_cdb_hdr {#define UNIT_ATTENTION 0x06#define DATA_PROTECT 0x07#define BLANK_CHECK 0x08 +#define VENDOR_SPECIFIC 0x09#define COPY_ABORTED 0x0a#define ABORTED_COMMAND 0x0b#define VOLUME_OVERFLOW 0x0d
Signature · 1 line
2.12.3
Re: [PATCH 2/5] scsi: Add VENDOR_SPECIFIC sense code definitions
Quoted 13 lines · Hannes Reinecke
Some older devices will return vendor specific sense codes, so we should be adding a definition for it.
Signed-off-by Hannes Reinecke <[email protected]>--- include/scsi/scsi_proto.h | 1 + 1 file changed, 1 insertion(+)include/scsi/scsi_proto.h +0
-0
include/scsi/scsi_proto.h struct scsi_varlen_cdb_hdr { · line 242
Quoted 7 lines
include/scsi/scsi_proto.h +1
-0@@ -236,6 +236,7 @@ struct scsi_varlen_cdb_hdr {#define UNIT_ATTENTION 0x06#define DATA_PROTECT 0x07#define BLANK_CHECK 0x08 +#define VENDOR_SPECIFIC 0x09#define COPY_ABORTED 0x0a#define ABORTED_COMMAND 0x0b#define VOLUME_OVERFLOW 0x0d
Martin K. Petersen
AppliedRe: [PATCH 2/5] scsi: Add VENDOR_SPECIFIC sense code definitions
In reply to Hannes ReineckeHannes,
Quoted 2 lines
Some older devices will return vendor specific sense codes, so we should be adding a definition for it.
Applied to 4.16/scsi-queue. Thanks!
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering
PATCH v2 3/5 myrb: Add Mylex RAID controller (block interface)
In reply to Hannes ReineckeThis 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 | 14 + drivers/scsi/Makefile | 1 + drivers/scsi/myrb.c | 3249 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/myrb.h | 1891 ++++++++++++++++++++++++++++ 4 files changed, 5155 insertions(+) create mode 100644 drivers/scsi/myrb.c create mode 100644 drivers/scsi/myrb.h
drivers/scsi/Kconfig +14 -0
@@ -556,6 +556,20 @@ 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 + 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
@@ -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 +3249 -0
2,973 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.
PATCH v2 4/5 myrs: Add Mylex RAID controller (SCSI interface)
In reply to Hannes ReineckeThis 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 | 14 + drivers/scsi/Makefile | 1 + drivers/scsi/myrs.c | 2947 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/myrs.h | 2042 ++++++++++++++++++++++++++++++++++ 4 files changed, 5004 insertions(+) create mode 100644 drivers/scsi/myrs.c create mode 100644 drivers/scsi/myrs.h
drivers/scsi/Kconfig +14 -0
@@ -570,6 +570,20 @@ 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 + 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
@@ -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 +2947 -0
2,947 lines not on this page · raw message
drivers/scsi/myrs.h new file +2042 -0
26 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.