]> asedeno.scripts.mit.edu Git - linux.git/commit
scsi: hisi_sas: workaround a v3 hw hilink bug
authorXiaofei Tan <tanxiaofei@huawei.com>
Wed, 2 May 2018 15:56:34 +0000 (23:56 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 8 May 2018 05:10:44 +0000 (01:10 -0400)
commitf70c1251deb5ab17dec70119c03f2428288ebada
tree770c1e46c705f0c3efc3af125df3010defb91ba2
parent9b8addf3024eb57a215d0af2e1c95cd44b94ccab
scsi: hisi_sas: workaround a v3 hw hilink bug

There is an SoC bug of v3 hw development version. When hot- unplugging a
directly attached disk, the PHY down interrupt may not happen. It is
very easy to appear on some boards.

When this issue occurs, the controller will receive many invalid dword
frames, and the "alos" fields of register HILINK_ERR_DFX can indicate
that disk was unplugged.

As an workaround solution, this patch detects this issue in the channel
interrupt, and workaround it by following steps:

 - Disable the PHY
 - Clear error code and interrupt
 - Enable the PHY

Then the HW will reissue PHY down interrupt.

Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c