]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
UBUNTU: SAUCE: ahci: thunderx2: Fix for errata that affects stop engine
authorJayachandran C <jnair@caviumnetworks.com>
Fri, 22 Sep 2017 21:46:50 +0000 (15:46 -0600)
committerSeth Forshee <seth.forshee@canonical.com>
Mon, 25 Sep 2017 21:18:24 +0000 (17:18 -0400)
commitc84aac195f8d61431df93eedfafa201a88b9e08e
treea7b132b9da89d311ded32e0578eede5dc3118994
parent7e77058c111dcdbe97fef72d2d38d22f988bbbad
UBUNTU: SAUCE: ahci: thunderx2: Fix for errata that affects stop engine

BugLink: https://bugs.launchpad.net/bugs/1719031
Apply workaround for this errata:
  Synopsis: Resetting PxCMD.ST may hang the SATA device

  Description: An internal ping-pong buffer state is not reset
  correctly for an PxCMD.ST=0 command for a SATA channel. This
  may cause the SATA interface to hang when a PxCMD.ST=0 command
  is received.

  Workaround: A SATA_BIU_CORE_ENABLE.sw_init_bsi must be asserted
  by the driver whenever the PxCMD.ST needs to be de-asserted. This
  will reset both the ports. So, it may not always work in a 2
  channel SATA system.

  Resolution: Fix in B0.

Add the code to ahci_stop_engine() to do this. It is not easy to
stop the other "port" since it is associated with a different AHCI
interface. Please note that with this fix, SATA reset does not
hang any more, but it can cause failures on the other interface
if that is in active use.

Unfortunately, we have nothing other the the CPU ID to check if the
SATA block has this issue.

Signed-off-by: Jayachandran C <jnair@caviumnetworks.com>
[ dannf: *** There is no need to carry this forward beyond artful *** ]
Signed-off-by: dann frazier <dann.frazier@canonical.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
drivers/ata/libahci.c