From: Hannes Reinecke <hare@xxxxxxx>
Subject: AHCI suspend / resume fixes.
The current ahci driver has the problem that it doesn't resume properly.
Or rather, that resuming is unstable.
Reason being is that AHCI has 4 registers containing the DMA address it
should write things to. Of course there is no guarantee that Linux has
assigned the same address to the DMA area across reboots.
So we should better re-initialize those registers after resume.
The patch also improves the port_start / port_stop routines to be more
closely modelled after the spec. This also avoids a nasty msleep(500)
during initialisation.
Signed-off-by: Hannes Reinecke <hare@xxxxxxx>