ahci_xgene: fix the dma state machine lockup for the IDENTIFY DEVICE PIO mode command.
authorSuman Tripathi <stripathi@apm.com>
Mon, 7 Jul 2014 17:03:05 +0000 (22:33 +0530)
committerTejun Heo <tj@kernel.org>
Tue, 8 Jul 2014 15:46:05 +0000 (11:46 -0400)
commit2a0bdff6b958d1b2523d2754b6cd5e0ea4053016
treea515c1ca35f5532f080a84cf843882c844e98429
parent39e0ee9964b1245b79ec89f6b89d8ec4ef672524
ahci_xgene: fix the dma state machine lockup for the IDENTIFY DEVICE PIO mode command.

This patch fixes the dma state machine lockup due to the processing
of IDENTIFY DEVICE PIO mode command. The X-Gene AHCI controller
has an errata in which it cannot clear the BSY bit after the PIO setup
FIS. The dma state machine enters CMFatalErrorUpdate state and locks
up. This patch also removes the dma restart workaround from the read_id
function as the read_id function is only called by libata layer for
ATA_INTERNAL commands. But for some cases eg: PORT MULTIPLIER
and udev, the framework will enumerate using SCSI commands and it will
not call read_id function.

Signed-off-by: Loc Ho <lho@apm.com>
Signed-off-by: Suman Tripathi <stripathi@apm.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/ata/ahci_xgene.c