From 238a5060090362f26274bd2363e9ba8c42d741ff Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 18 Feb 2011 09:25:13 -0800 Subject: [PATCH] --- yaml --- r: 254326 b: refs/heads/master c: 83e514301ec73b16fb258618c9f9b443cca3744a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/isci/core/scic_phy.h | 3 +++ trunk/drivers/scsi/isci/core/scic_sds_phy.c | 5 +++++ trunk/drivers/scsi/isci/port.c | 2 ++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 54a519c53a3b..42da18380af8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 92f4f0f544a6a75979bace0c43fee9c4fb95830c +refs/heads/master: 83e514301ec73b16fb258618c9f9b443cca3744a diff --git a/trunk/drivers/scsi/isci/core/scic_phy.h b/trunk/drivers/scsi/isci/core/scic_phy.h index 13f8a304fdef..bf0d3be58eda 100644 --- a/trunk/drivers/scsi/isci/core/scic_phy.h +++ b/trunk/drivers/scsi/isci/core/scic_phy.h @@ -72,6 +72,9 @@ struct scic_sds_phy; struct scic_sds_port; + +enum sas_linkrate sci_phy_linkrate(struct scic_sds_phy *sci_phy); + /** * struct scic_phy_properties - This structure defines the properties common to * all phys that can be retrieved. diff --git a/trunk/drivers/scsi/isci/core/scic_sds_phy.c b/trunk/drivers/scsi/isci/core/scic_sds_phy.c index d9213e215beb..743e5a6b7409 100644 --- a/trunk/drivers/scsi/isci/core/scic_sds_phy.c +++ b/trunk/drivers/scsi/isci/core/scic_sds_phy.c @@ -73,6 +73,11 @@ /* Maximum arbitration wait time in micro-seconds */ #define SCIC_SDS_PHY_MAX_ARBITRATION_WAIT_TIME (700) +enum sas_linkrate sci_phy_linkrate(struct scic_sds_phy *sci_phy) +{ + return sci_phy->max_negotiated_speed; +} + /* * ***************************************************************************** * * SCIC SDS PHY Internal Methods diff --git a/trunk/drivers/scsi/isci/port.c b/trunk/drivers/scsi/isci/port.c index 2343f6556428..446da20521c9 100644 --- a/trunk/drivers/scsi/isci/port.c +++ b/trunk/drivers/scsi/isci/port.c @@ -263,6 +263,8 @@ void isci_port_link_up( success = false; } + isci_phy->sas_phy.phy->negotiated_linkrate = sci_phy_linkrate(phy); + spin_unlock_irqrestore(&isci_phy->sas_phy.frame_rcvd_lock, flags); /* Notify libsas that we have an address frame, if indeed