]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/ata/sata_nv.c
Merge staging-next tree into Linus's latest version
[karo-tx-linux.git] / drivers / ata / sata_nv.c
index 20cc510595dbe991498d08aad967bed2b502a75d..baa8f0d2c86fad6f06ba72d8d02b3b6fcc1958b9 100644 (file)
@@ -272,7 +272,7 @@ enum ncq_saw_flag_list {
 };
 
 struct nv_swncq_port_priv {
-       struct ata_prd  *prd;    /* our SG list */
+       struct ata_bmdma_prd *prd;       /* our SG list */
        dma_addr_t      prd_dma; /* and its DMA mapping */
        void __iomem    *sactive_block;
        void __iomem    *irq_block;
@@ -1131,7 +1131,7 @@ static void nv_adma_post_internal_cmd(struct ata_queued_cmd *qc)
        struct nv_adma_port_priv *pp = qc->ap->private_data;
 
        if (pp->flags & NV_ADMA_PORT_REGISTER_MODE)
-               ata_sff_post_internal_cmd(qc);
+               ata_bmdma_post_internal_cmd(qc);
 }
 
 static int nv_adma_port_start(struct ata_port *ap)
@@ -1156,7 +1156,8 @@ static int nv_adma_port_start(struct ata_port *ap)
        if (rc)
                return rc;
 
-       rc = ata_port_start(ap);
+       /* we might fallback to bmdma, allocate bmdma resources */
+       rc = ata_bmdma_port_start(ap);
        if (rc)
                return rc;
 
@@ -1408,7 +1409,7 @@ static void nv_adma_qc_prep(struct ata_queued_cmd *qc)
                BUG_ON(!(pp->flags & NV_ADMA_ATAPI_SETUP_COMPLETE) &&
                        (qc->flags & ATA_QCFLAG_DMAMAP));
                nv_adma_register_mode(qc->ap);
-               ata_sff_qc_prep(qc);
+               ata_bmdma_qc_prep(qc);
                return;
        }
 
@@ -1467,7 +1468,7 @@ static unsigned int nv_adma_qc_issue(struct ata_queued_cmd *qc)
                BUG_ON(!(pp->flags & NV_ADMA_ATAPI_SETUP_COMPLETE) &&
                        (qc->flags & ATA_QCFLAG_DMAMAP));
                nv_adma_register_mode(qc->ap);
-               return ata_sff_qc_issue(qc);
+               return ata_bmdma_qc_issue(qc);
        } else
                nv_adma_mode(qc->ap);
 
@@ -1738,7 +1739,7 @@ static void nv_adma_error_handler(struct ata_port *ap)
                readw(mmio + NV_ADMA_CTL);      /* flush posted write */
        }
 
-       ata_sff_error_handler(ap);
+       ata_bmdma_error_handler(ap);
 }
 
 static void nv_swncq_qc_to_dq(struct ata_port *ap, struct ata_queued_cmd *qc)
@@ -1864,7 +1865,7 @@ static void nv_swncq_error_handler(struct ata_port *ap)
                ehc->i.action |= ATA_EH_RESET;
        }
 
-       ata_sff_error_handler(ap);
+       ata_bmdma_error_handler(ap);
 }
 
 #ifdef CONFIG_PM
@@ -1985,7 +1986,8 @@ static int nv_swncq_port_start(struct ata_port *ap)
        struct nv_swncq_port_priv *pp;
        int rc;
 
-       rc = ata_port_start(ap);
+       /* we might fallback to bmdma, allocate bmdma resources */
+       rc = ata_bmdma_port_start(ap);
        if (rc)
                return rc;
 
@@ -2010,7 +2012,7 @@ static int nv_swncq_port_start(struct ata_port *ap)
 static void nv_swncq_qc_prep(struct ata_queued_cmd *qc)
 {
        if (qc->tf.protocol != ATA_PROT_NCQ) {
-               ata_sff_qc_prep(qc);
+               ata_bmdma_qc_prep(qc);
                return;
        }
 
@@ -2025,7 +2027,7 @@ static void nv_swncq_fill_sg(struct ata_queued_cmd *qc)
        struct ata_port *ap = qc->ap;
        struct scatterlist *sg;
        struct nv_swncq_port_priv *pp = ap->private_data;
-       struct ata_prd *prd;
+       struct ata_bmdma_prd *prd;
        unsigned int si, idx;
 
        prd = pp->prd + ATA_MAX_PRD * qc->tag;
@@ -2086,7 +2088,7 @@ static unsigned int nv_swncq_qc_issue(struct ata_queued_cmd *qc)
        struct nv_swncq_port_priv *pp = ap->private_data;
 
        if (qc->tf.protocol != ATA_PROT_NCQ)
-               return ata_sff_qc_issue(qc);
+               return ata_bmdma_qc_issue(qc);
 
        DPRINTK("Enter\n");