Skip to content

Commit c84b06a

Browse files
Sreekanth Reddymartinkpetersen
authored andcommitted
mpt3sas: Single driver module which supports both SAS 2.0 & SAS 3.0 HBAs
Modified the mpt3sas driver to have a single driver module which supports both SAS 2.0 & SAS 3.0 HBA devices. * Added SAS 2.0 HBA device IDs to the mpt3sas_pci_table pci table. * Created two separate SCSI host templates for SAS2 and SAS3 HBAs so that, during the driver load time driver can use corresponding host template(based the pci device ID) while registering a scsi host adapter instance for that pci device. * Registered two IOCTL devices, mpt2ctl is for SAS2 HBAs & mpt3ctl for SAS3 HBAs. Also updated the code to make sure that mpt2ctl device processes only those ioctl cmds issued for the SAS2 HBAs and mpt3ctl device processes only those ioctl cmds issued for the SAS3 HBAs. * Added separate indexing for SAS2 and SAS3 HBAs. * Replaced compile time check 'MPT2SAS_SCSI' to run time check 'hba_mpi_version_belonged' whereever needed. * Aliased this merged driver to mpt2sas using MODULE_ALIAS. * Moved global varaible 'driver_name' to per adapter instance variable. * Created two raid function template and used corresponding raid function templates based on the run time check 'hba_mpi_version_belonged'. * Moved mpt2sas_warpdrive.c file from mpt2sas to mpt3sas folder and renamed it as mpt3sas_warpdrive.c. * Also renamed the functions in mpt3sas_warpdrive.c file to follow current driver function name convention. * Updated the Makefile to build mpt3sas_warpdrive.o file for these WarpDrive-specific functions. * Also in function mpt3sas_setup_direct_io(), used sector_div() API instead of division operator (which gives compilation errors on 32 bit machines). * Removed mpt2sas files, mpt2sas directory & mpt3sas_module.c file. * Added module parameter 'hbas_to_enumerate' which permits using this merged driver as a legacy mpt2sas driver or as a legacy mpt3sas driver. Here are the available options for this module parameter: 0 - Merged driver which enumerates both SAS 2.0 & SAS 3.0 HBAs 1 - Acts as legacy mpt2sas driver, which enumerates only SAS 2.0 HBAs 2 - Acts as legacy mpt3sas driver, which enumerates only SAS 3.0 HBAs * Removed mpt2sas entries from SCSI's Kconfig and Makefile files. Signed-off-by: Sreekanth Reddy <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Reviewed-by: Hannes Reinecke <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
1 parent d0c627a commit c84b06a

File tree

14 files changed

+566
-826
lines changed

14 files changed

+566
-826
lines changed

drivers/scsi/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,6 @@ config SCSI_ARCMSR
541541

542542
source "drivers/scsi/esas2r/Kconfig"
543543
source "drivers/scsi/megaraid/Kconfig.megaraid"
544-
source "drivers/scsi/mpt2sas/Kconfig"
545544
source "drivers/scsi/mpt3sas/Kconfig"
546545
source "drivers/scsi/ufs/Kconfig"
547546

drivers/scsi/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ obj-$(CONFIG_CXLFLASH) += cxlflash/
106106
obj-$(CONFIG_MEGARAID_LEGACY) += megaraid.o
107107
obj-$(CONFIG_MEGARAID_NEWGEN) += megaraid/
108108
obj-$(CONFIG_MEGARAID_SAS) += megaraid/
109-
obj-$(CONFIG_SCSI_MPT2SAS) += mpt2sas/
110109
obj-$(CONFIG_SCSI_MPT3SAS) += mpt3sas/
111110
obj-$(CONFIG_SCSI_UFSHCD) += ufs/
112111
obj-$(CONFIG_SCSI_ACARD) += atp870u.o

drivers/scsi/mpt2sas/Kconfig

Lines changed: 0 additions & 61 deletions
This file was deleted.

drivers/scsi/mpt2sas/Makefile

Lines changed: 0 additions & 15 deletions
This file was deleted.

drivers/scsi/mpt2sas/mpt2sas_module.c

Lines changed: 0 additions & 281 deletions
This file was deleted.

0 commit comments

Comments
 (0)