hisi_sas: use device linkrate in MCR for v2 hw
authorJohn Garry <john.garry@huawei.com>
Fri, 8 Apr 2016 09:23:11 +0000 (17:23 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 15 Apr 2016 20:53:15 +0000 (16:53 -0400)
Contrary to the field name, the MCR (max connection rate) in the ITCT
should hold the device linkrate (linkrate of the connected phy), and not
the max linkrate.

This fixes an issue seen where some SATA drives connected through an
expander which would not attach.

Signed-off-by: John Garry <john.garry@huawei.com>
Reviewed-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c

index b7337476454b47b3ba4680ddc4219dcde0ccc576..f462fc4adc3a4707f7d975ee519583f92d4e35ba 100644 (file)
@@ -544,7 +544,7 @@ static void setup_itct_v2_hw(struct hisi_hba *hisi_hba,
        }
 
        qw0 |= ((1 << ITCT_HDR_VALID_OFF) |
-               (device->max_linkrate << ITCT_HDR_MCR_OFF) |
+               (device->linkrate << ITCT_HDR_MCR_OFF) |
                (1 << ITCT_HDR_VLN_OFF) |
                (port->id << ITCT_HDR_PORT_ID_OFF));
        itct->qw0 = cpu_to_le64(qw0);