| From: |
| Kashyap Desai <kashyap.desai-AT-broadcom.com> |
| To: |
| linux-scsi-AT-vger.kernel.org |
| Subject: |
| [PATCH v6 00/24] Introducing mpi3mr driver |
| Date: |
| Thu, 20 May 2021 20:55:21 +0530 |
| Message-ID: |
| <20210520152545.2710479-1-kashyap.desai@broadcom.com> |
| Cc: |
| jejb-AT-linux.ibm.com, martin.petersen-AT-oracle.com, steve.hagan-AT-broadcom.com, peter.rivera-AT-broadcom.com, mpi3mr-linuxdrv.pdl-AT-broadcom.com, Kashyap Desai <kashyap.desai-AT-broadcom.com> |
| Archive-link: |
| Article |
v5->v6:
- Removed special case handling of REPORT_LUN (Patch #5) - comment
provided by Hannes.
- Added Reviewed-by tag from Hannes,Tomas and Himanshu to appropriate patches.
Addressed below feedback from Christoph H
- Removed meta-header mpi30_api.h
- Drop the leading underscore from the various type names.
- Removed history and extra information from Copyright headers.
v4->v5:
- Fix error reported by kernel test robot <lkp@intel.com> in Patch #6.
v3->v4
- Addressed comments from Christoph Hellwig and Bart Van Assche to make
MPI headers compliant with Linux kernel coding guidelines.
- Added Reviewed-by tag from Hannes and Himanshu to appropriate patches.
- Use correct return type in scsi error handler (Patch #6) - comment
provided by Hannes.
- Fix array overflow while printing ioc info(Patch #11) -
comment provided by Hannes.
- Remove redundant kfree of dev_rmhs_cmds (Patch #13) -
comment provided by Tomas.
- Replaced few strcpy with strncpy to avoid string overflow.
- Updated Copyright.
v2->v3
- further removed unused pointer typedef from mpi30_type.h
- Add Tomas Henzl's reviewed-tag to appropriate patches
- Fix added which is Reported-by kernel test robot <lkp@intel.com>
- Removed .eh_abort_handler suggested by Hannes.
v1->v2
- removed undefined entries from mpi30_type.h
- removed DRV_CMD_CALLBACK typedef
- Use IRQF_SHARED instead of IRQF_ONESHOT
- Use READ_ONCE, WRITE_ONCE while accessing operational request
queue consumer index
- removed in_interrup()
- remove pr_cont.
- move some code from error handling to device handling patch.
- used direct values instead of macro MPI3_SECTOR_SIZE_XYZ
- Add Hannes's reviewed-tag to appropriate patches
- Add Reported-by kernel test robot <lkp@intel.com> to appropriate
patches.
This patch series covers logical patches of the new device driver for the
MPI3MR high performance storage I/O & RAID controllers (Avenger series).
The mpi3mr has true multiple h/w queue interfacing like nvme.
See more info -
https://www.spinics.net/lists/linux-scsi/msg147868.html
The controllers managed by the mpi3mr driver are capable of reaching a
very high performance numbers compared to existing controller due to the
new hardware architectures. This Driver is tested with the internal
versions of the MPI3MR I/O & RAID controllers.
Patches are logical split mainly for better code review. Full patch set is
required for functional stability of this new driver.
You can find the source at -
https://github.com/kadesai16/mpi3mr
Kashyap Desai (24):
mpi3mr: add mpi30 Rev-R headers and Kconfig
mpi3mr: base driver code
mpi3mr: create operational request and reply queue pair
mpi3mr: add support of queue command processing
mpi3mr: add support of internal watchdog thread
mpi3mr: add support of event handling part-1
mpi3mr: add support of event handling pcie devices part-2
mpi3mr: add support of event handling part-3
mpi3mr: add support for recovering controller
mpi3mr: add support of timestamp sync with firmware
mpi3mr: print ioc info for debugging
mpi3mr: add bios_param shost template hook
mpi3mr: implement scsi error handler hooks
mpi3mr: add change queue depth support
mpi3mr: allow certain commands during pci-remove hook
mpi3mr: hardware workaround for UNMAP commands to nvme drives
mpi3mr: add support of threaded isr
mpi3mr: add complete support of soft reset
mpi3mr: print pending host ios for debug
mpi3mr: wait for pending IO completions upon detection of VD IO
timeout
mpi3mr: add support of PM suspend and resume
mpi3mr: add support of DSN secure fw check
mpi3mr: add eedp dif dix support
mpi3mr: add event handling debug prints
drivers/scsi/Kconfig | 1 +
drivers/scsi/Makefile | 1 +
drivers/scsi/mpi3mr/Kconfig | 7 +
drivers/scsi/mpi3mr/Makefile | 4 +
drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h | 1880 ++++++++++
drivers/scsi/mpi3mr/mpi/mpi30_image.h | 216 ++
drivers/scsi/mpi3mr/mpi/mpi30_init.h | 159 +
drivers/scsi/mpi3mr/mpi/mpi30_ioc.h | 1004 +++++
drivers/scsi/mpi3mr/mpi/mpi30_sas.h | 33 +
drivers/scsi/mpi3mr/mpi/mpi30_transport.h | 463 +++
drivers/scsi/mpi3mr/mpi3mr.h | 900 +++++
drivers/scsi/mpi3mr/mpi3mr_debug.h | 60 +
drivers/scsi/mpi3mr/mpi3mr_fw.c | 3956 ++++++++++++++++++++
drivers/scsi/mpi3mr/mpi3mr_os.c | 4054 +++++++++++++++++++++
14 files changed, 12738 insertions(+)
create mode 100644 drivers/scsi/mpi3mr/Kconfig
create mode 100644 drivers/scsi/mpi3mr/Makefile
create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h
create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_image.h
create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_init.h
create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_ioc.h
create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_sas.h
create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_transport.h
create mode 100644 drivers/scsi/mpi3mr/mpi3mr.h
create mode 100644 drivers/scsi/mpi3mr/mpi3mr_debug.h
create mode 100644 drivers/scsi/mpi3mr/mpi3mr_fw.c
create mode 100644 drivers/scsi/mpi3mr/mpi3mr_os.c
--
2.18.1