mpt fusion: Added msi enable disable for FC,SPI,SAS [Resendig updated patch]
Subsystems (2)
Added support for MSI enable/disable for different buses FC,SPI,SAS instead of having single MSI enable/disable feature.
---
---
drivers/message/fusion/mptbase.c +37 -13
@@ -79,9 +79,22 @@ MODULE_VERSION(my_VERSION);/* * cmd line parameters */ -static int mpt_msi_enable =-1 ; -module_param (mpt_msi_enable, int,0 ); -MODULE_PARM_DESC (mpt_msi_enable," MSI Support Enable (default=0)" ); + +static int mpt_msi_enable_spi; +module_param (mpt_msi_enable_spi, int,0 ); +MODULE_PARM_DESC (mpt_msi_enable_spi," Enable MSI Support for SPI \ +controllers (default=0)" ); + +static int mpt_msi_enable_fc; +module_param (mpt_msi_enable_fc, int,0 ); +MODULE_PARM_DESC (mpt_msi_enable_fc," Enable MSI Support for FC \ +controllers (default=0)" ); + +static int mpt_msi_enable_sas; +module_param (mpt_msi_enable_sas, int,1 ); +MODULE_PARM_DESC (mpt_msi_enable_sas," Enable MSI Support for SAS \ +controllers (default=1)" ); +static int mpt_channel_mapping;module_param (mpt_channel_mapping, int,0 );
@@ -91,7 +104,9 @@ static int mpt_debug_level;static int mpt_set_debug_level (const char *val,struct kernel_param *kp);module_param_call (mpt_debug_level, mpt_set_debug_level, param_get_int, &mpt_debug_level,0600 ); -MODULE_PARM_DESC (mpt_debug_level," debug level - refer to mptdebug.h - (default=0)" ); +MODULE_PARM_DESC (mpt_debug_level," debug level - refer to mptdebug.h \ +- (default=0)" ); +#ifdef MFCNT static int mfcounter =0 ;
@@ -1751,16 +1766,25 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) ioc->bus_type =SAS ; } -if (mpt_msi_enable ==-1 ) { -/* Enable on SAS, disable on FC and SPI */ -if (ioc->bus_type ==SAS ) - ioc->msi_enable =1 ; -else - ioc->msi_enable =0 ; - }else -/* follow flag: 0 - disable; 1 - enable */ - ioc->msi_enable = mpt_msi_enable; +switch (ioc->bus_type) { + +case SAS : + ioc->msi_enable = mpt_msi_enable_sas; +break ; + +case SPI : + ioc->msi_enable = mpt_msi_enable_spi; +break ; + +case FC : + ioc->msi_enable = mpt_msi_enable_fc; +break ; + +default : + ioc->msi_enable =0 ; +break ; + }if (ioc->errata_flag_1064)pci_disable_io_access (pdev);
Quoted 2 lines · Desai
Added support for MSI enable/disable for different buses FC,SPI,SAS instead of having single MSI enable/disable feature.
Why do you think you need this?
Either the system supports MSI or it doesn't. The original reason for only enabling MSI on SPI cards was that it reduced the number of bug reports since FC and SAS cards are likely to be used on machines with functional MSI.
This is of course a horrible hack. The right thing to do is to detect that you've never received an interrupt, disable MSI, enable regular interrupts and try again.
Signature · 4 lines
Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step."
James Bottomley
maintainerQuoted 6 lines · Matthew Wilcox
Quoted 2 lines · Desai
Added support for MSI enable/disable for different buses FC,SPI,SAS instead of having single MSI enable/disable feature.
Why do you think you need this?
Quoted 8 lines
Either the system supports MSI or it doesn't. The original reason for only enabling MSI on SPI cards was that it reduced the number of bug reports since FC and SAS cards are likely to be used on machines with functional MSI.
This is of course a horrible hack. The right thing to do is to detect that you've never received an interrupt, disable MSI, enable regular interrupts and try again.
Right ... we actually had agreement on this and a set of patches to implement some of it that went via the PCI list ... I'll see if I can find them.
James