diff options
author | James Smart <James.Smart@Emulex.Com> | 2006-12-02 13:34:56 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-12-03 10:31:04 -0500 |
commit | 4ff43246e45943200ae3233732adf8708c2faef6 (patch) | |
tree | 28204d5a11c4ca0de54c36a9e0bca9cfd3317f1c /drivers/scsi/lpfc/lpfc_attr.c | |
parent | c7743956f8cb7b496c05d8444050eba908662a14 (diff) |
[SCSI] lpfc 8.1.11 : Add MSI (Message Signalled Interrupts) support
Add MSI (Message Signalled Interrupts) support
Actual use must be enabled via the new module parameter "lpfc_use_msi"
Defaults to no use
Many thanks to Frederic Temporelli who implemented the initial patch.
Signed-off-by: Frederic Temporelli <frederic.temporelli@ext.bull.net>
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_attr.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_attr.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index 73d3afc72de2..e2ac7ba3d8ad 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c | |||
@@ -961,6 +961,15 @@ LPFC_ATTR_R(max_luns, 255, 0, 65535, | |||
961 | LPFC_ATTR_RW(poll_tmo, 10, 1, 255, | 961 | LPFC_ATTR_RW(poll_tmo, 10, 1, 255, |
962 | "Milliseconds driver will wait between polling FCP ring"); | 962 | "Milliseconds driver will wait between polling FCP ring"); |
963 | 963 | ||
964 | /* | ||
965 | # lpfc_use_msi: Use MSI (Message Signaled Interrupts) in systems that | ||
966 | # support this feature | ||
967 | # 0 = MSI disabled (default) | ||
968 | # 1 = MSI enabled | ||
969 | # Value range is [0,1]. Default value is 0. | ||
970 | */ | ||
971 | LPFC_ATTR_R(use_msi, 0, 0, 1, "Use Message Signaled Interrupts, if possible"); | ||
972 | |||
964 | 973 | ||
965 | struct class_device_attribute *lpfc_host_attrs[] = { | 974 | struct class_device_attribute *lpfc_host_attrs[] = { |
966 | &class_device_attr_info, | 975 | &class_device_attr_info, |
@@ -999,6 +1008,7 @@ struct class_device_attribute *lpfc_host_attrs[] = { | |||
999 | &class_device_attr_issue_reset, | 1008 | &class_device_attr_issue_reset, |
1000 | &class_device_attr_lpfc_poll, | 1009 | &class_device_attr_lpfc_poll, |
1001 | &class_device_attr_lpfc_poll_tmo, | 1010 | &class_device_attr_lpfc_poll_tmo, |
1011 | &class_device_attr_lpfc_use_msi, | ||
1002 | &class_device_attr_lpfc_soft_wwpn, | 1012 | &class_device_attr_lpfc_soft_wwpn, |
1003 | &class_device_attr_lpfc_soft_wwpn_enable, | 1013 | &class_device_attr_lpfc_soft_wwpn_enable, |
1004 | NULL, | 1014 | NULL, |
@@ -1801,6 +1811,7 @@ lpfc_get_cfgparam(struct lpfc_hba *phba) | |||
1801 | lpfc_discovery_threads_init(phba, lpfc_discovery_threads); | 1811 | lpfc_discovery_threads_init(phba, lpfc_discovery_threads); |
1802 | lpfc_max_luns_init(phba, lpfc_max_luns); | 1812 | lpfc_max_luns_init(phba, lpfc_max_luns); |
1803 | lpfc_poll_tmo_init(phba, lpfc_poll_tmo); | 1813 | lpfc_poll_tmo_init(phba, lpfc_poll_tmo); |
1814 | lpfc_use_msi_init(phba, lpfc_use_msi); | ||
1804 | lpfc_devloss_tmo_init(phba, lpfc_devloss_tmo); | 1815 | lpfc_devloss_tmo_init(phba, lpfc_devloss_tmo); |
1805 | lpfc_nodev_tmo_init(phba, lpfc_nodev_tmo); | 1816 | lpfc_nodev_tmo_init(phba, lpfc_nodev_tmo); |
1806 | phba->cfg_poll = lpfc_poll; | 1817 | phba->cfg_poll = lpfc_poll; |