|
@@ -737,6 +737,7 @@ static void ahci_power_down(struct ata_port *ap)
|
|
|
|
|
|
static void ahci_start_port(struct ata_port *ap)
|
|
|
{
|
|
|
+ struct ahci_host_priv *hpriv = ap->host->private_data;
|
|
|
struct ahci_port_priv *pp = ap->private_data;
|
|
|
struct ata_link *link;
|
|
|
struct ahci_em_priv *emp;
|
|
@@ -746,6 +747,10 @@ static void ahci_start_port(struct ata_port *ap)
|
|
|
/* enable FIS reception */
|
|
|
ahci_start_fis_rx(ap);
|
|
|
|
|
|
+ /* enable DMA */
|
|
|
+ if (!(hpriv->flags & AHCI_HFLAG_DELAY_ENGINE))
|
|
|
+ ahci_start_engine(ap);
|
|
|
+
|
|
|
/* turn on LEDs */
|
|
|
if (ap->flags & ATA_FLAG_EM) {
|
|
|
ata_for_each_link(link, ap, EDGE) {
|