libata: retry link resume if necessary
authorTejun Heo <tj@kernel.org>
Mon, 11 Jan 2010 02:14:44 +0000 (11:14 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 12 Jan 2010 19:34:14 +0000 (14:34 -0500)
commit5040ab67a2c6d5710ba497dc52a8f7035729d7b0
treedea2290e50111fde938bfcbb83de0377e7c4d94a
parent0b67c7439fe2a5d76602de36854c88e2beab00b0
libata: retry link resume if necessary

Interestingly, when SIDPR is used in ata_piix, writes to DET in
SControl sometimes get ignored leading to detection failure.  Update
sata_link_resume() such that it reads back SControl after clearing DET
and retry if it's not clear.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: fengxiangjun <fengxiangjun@neusoft.com>
Reported-by: Jim Faulkner <jfaulkne@ccs.neu.edu>
Cc: stable@kernel.org
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-core.c
include/linux/libata.h