scsi: ufs: Fix hynix ufs bug with quirk on hi36xx SoC
authorWei Li <liwei213@huawei.com>
Thu, 8 Nov 2018 17:08:29 +0000 (09:08 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 9 Nov 2018 02:22:52 +0000 (21:22 -0500)
commit8e4829c6f7470722c1f5a1dc5769ebe09ef036d6
tree47d388c02b777ba93c860fecf3a5be23df8a3e5a
parentf2ffd4e5bc7b629b312be48fbe3c3a2afbd67e4a
scsi: ufs: Fix hynix ufs bug with quirk on hi36xx SoC

Hynix ufs has deviations on hi36xx platform which will result in ufs bursts
transfer failures.

To fix the problem, the Hynix device must set the register
VS_DebugSaveConfigTime to 0x10, which will set time reference for
SaveConfigTime is 250 ns. The time reference for SaveConfigTime is 40 ns by
default.

This patch is necessary to boot on HiKey960 boards that use Hynix UFS chips
(H28U62301AMR model: hB8aL1).

Cc: Vinayak Holikatti <vinholikatti@gmail.com>
Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org
Signed-off-by: Wei Li <liwei213@huawei.com>
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
[jstultz: Forward ported from older code, slight tweak to commit message]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufs-hisi.c
drivers/scsi/ufs/ufs_quirks.h
drivers/scsi/ufs/ufshcd.c