]> git.baikalelectronics.ru Git - kernel.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)
commit1211fa7467b83993d22504449f5764e754c796a1
tree770c1e46c705f0c3efc3af125df3010defb91ba2
parent4d7989e358da68015850db5a28caef0a709e1a79
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