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 <[email protected]>
Reported-by: fengxiangjun <[email protected]>
Reported-by: Jim Faulkner <[email protected]>
Cc: [email protected]
Signed-off-by: Jeff Garzik <[email protected]>
2 files changed