aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2011-02-10 01:20:39 -0500
committerJames Bottomley <James.Bottomley@suse.de>2011-02-12 14:57:28 -0500
commitd75733d51fdab5c99a0d9491b25f22e13b39cdc1 (patch)
treee5aff7828c3306b172281244544e1ffb729dd432 /drivers/message/fusion
parent8597ae8bfe35f5e438b00ba5df852e97ebe1ac23 (diff)
[SCSI] mptfusion: Support SAS2.0 Devices with SAS1.0 Controllers
SAS1.0 Controller was not able to detect SAS2.0 Expanders due to Link RATE detection was limited to 1.5 Gbps and 3.0 Gbps for SAS1 controllers. Added detection for 6.0 Gbps link. Now, user can mix-up 6.0 Gpbs links with SAS1.0 controller. e.g SAS1.0 HBA <----> SAS2.0 Expander <------> SAS2.0 Expander <--------> SAS1.0 Drive. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/message/fusion')
-rw-r--r--drivers/message/fusion/lsi/mpi_cnfg.h1
-rw-r--r--drivers/message/fusion/lsi/mpi_ioc.h1
-rw-r--r--drivers/message/fusion/mptbase.c7
-rw-r--r--drivers/message/fusion/mptsas.c6
4 files changed, 13 insertions, 2 deletions
diff --git a/drivers/message/fusion/lsi/mpi_cnfg.h b/drivers/message/fusion/lsi/mpi_cnfg.h
index 013c7d881948..22027e7946f7 100644
--- a/drivers/message/fusion/lsi/mpi_cnfg.h
+++ b/drivers/message/fusion/lsi/mpi_cnfg.h
@@ -2593,6 +2593,7 @@ typedef struct _CONFIG_PAGE_SAS_IO_UNIT_0
2593#define MPI_SAS_IOUNIT0_RATE_SATA_OOB_COMPLETE (0x03) 2593#define MPI_SAS_IOUNIT0_RATE_SATA_OOB_COMPLETE (0x03)
2594#define MPI_SAS_IOUNIT0_RATE_1_5 (0x08) 2594#define MPI_SAS_IOUNIT0_RATE_1_5 (0x08)
2595#define MPI_SAS_IOUNIT0_RATE_3_0 (0x09) 2595#define MPI_SAS_IOUNIT0_RATE_3_0 (0x09)
2596#define MPI_SAS_IOUNIT0_RATE_6_0 (0x0A)
2596 2597
2597/* see mpi_sas.h for values for SAS IO Unit Page 0 ControllerPhyDeviceInfo values */ 2598/* see mpi_sas.h for values for SAS IO Unit Page 0 ControllerPhyDeviceInfo values */
2598 2599
diff --git a/drivers/message/fusion/lsi/mpi_ioc.h b/drivers/message/fusion/lsi/mpi_ioc.h
index 8faa4fab7b89..fd6222882a0e 100644
--- a/drivers/message/fusion/lsi/mpi_ioc.h
+++ b/drivers/message/fusion/lsi/mpi_ioc.h
@@ -841,6 +841,7 @@ typedef struct _EVENT_DATA_SAS_PHY_LINK_STATUS
841#define MPI_EVENT_SAS_PLS_LR_RATE_SATA_OOB_COMPLETE (0x03) 841#define MPI_EVENT_SAS_PLS_LR_RATE_SATA_OOB_COMPLETE (0x03)
842#define MPI_EVENT_SAS_PLS_LR_RATE_1_5 (0x08) 842#define MPI_EVENT_SAS_PLS_LR_RATE_1_5 (0x08)
843#define MPI_EVENT_SAS_PLS_LR_RATE_3_0 (0x09) 843#define MPI_EVENT_SAS_PLS_LR_RATE_3_0 (0x09)
844#define MPI_EVENT_SAS_PLS_LR_RATE_6_0 (0x0A)
844 845
845/* SAS Discovery Event data */ 846/* SAS Discovery Event data */
846 847
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index 3358c0af3466..ec8080c98081 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -7418,7 +7418,12 @@ mpt_display_event_info(MPT_ADAPTER *ioc, EventNotificationReply_t *pEventReply)
7418 case MPI_EVENT_SAS_PLS_LR_RATE_3_0: 7418 case MPI_EVENT_SAS_PLS_LR_RATE_3_0:
7419 snprintf(evStr, EVENT_DESCR_STR_SZ, 7419 snprintf(evStr, EVENT_DESCR_STR_SZ,
7420 "SAS PHY Link Status: Phy=%d:" 7420 "SAS PHY Link Status: Phy=%d:"
7421 " Rate 3.0 Gpbs",PhyNumber); 7421 " Rate 3.0 Gbps", PhyNumber);
7422 break;
7423 case MPI_EVENT_SAS_PLS_LR_RATE_6_0:
7424 snprintf(evStr, EVENT_DESCR_STR_SZ,
7425 "SAS PHY Link Status: Phy=%d:"
7426 " Rate 6.0 Gbps", PhyNumber);
7422 break; 7427 break;
7423 default: 7428 default:
7424 snprintf(evStr, EVENT_DESCR_STR_SZ, 7429 snprintf(evStr, EVENT_DESCR_STR_SZ,
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 8aefb1829fcd..518cfcaaaa4e 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -3063,6 +3063,9 @@ static int mptsas_probe_one_phy(struct device *dev,
3063 case MPI_SAS_IOUNIT0_RATE_3_0: 3063 case MPI_SAS_IOUNIT0_RATE_3_0:
3064 phy->negotiated_linkrate = SAS_LINK_RATE_3_0_GBPS; 3064 phy->negotiated_linkrate = SAS_LINK_RATE_3_0_GBPS;
3065 break; 3065 break;
3066 case MPI_SAS_IOUNIT0_RATE_6_0:
3067 phy->negotiated_linkrate = SAS_LINK_RATE_6_0_GBPS;
3068 break;
3066 case MPI_SAS_IOUNIT0_RATE_SATA_OOB_COMPLETE: 3069 case MPI_SAS_IOUNIT0_RATE_SATA_OOB_COMPLETE:
3067 case MPI_SAS_IOUNIT0_RATE_UNKNOWN: 3070 case MPI_SAS_IOUNIT0_RATE_UNKNOWN:
3068 default: 3071 default:
@@ -3691,7 +3694,8 @@ mptsas_send_link_status_event(struct fw_event_work *fw_event)
3691 } 3694 }
3692 3695
3693 if (link_rate == MPI_SAS_IOUNIT0_RATE_1_5 || 3696 if (link_rate == MPI_SAS_IOUNIT0_RATE_1_5 ||
3694 link_rate == MPI_SAS_IOUNIT0_RATE_3_0) { 3697 link_rate == MPI_SAS_IOUNIT0_RATE_3_0 ||
3698 link_rate == MPI_SAS_IOUNIT0_RATE_6_0) {
3695 3699
3696 if (!port_info) { 3700 if (!port_info) {
3697 if (ioc->old_sas_discovery_protocal) { 3701 if (ioc->old_sas_discovery_protocal) {