diff options
Diffstat (limited to 'drivers/ata/sata_sil.c')
-rw-r--r-- | drivers/ata/sata_sil.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c index 3cb69d5fb817..3a4f84219719 100644 --- a/drivers/ata/sata_sil.c +++ b/drivers/ata/sata_sil.c | |||
@@ -284,7 +284,7 @@ static void sil_bmdma_setup(struct ata_queued_cmd *qc) | |||
284 | void __iomem *bmdma = ap->ioaddr.bmdma_addr; | 284 | void __iomem *bmdma = ap->ioaddr.bmdma_addr; |
285 | 285 | ||
286 | /* load PRD table addr. */ | 286 | /* load PRD table addr. */ |
287 | iowrite32(ap->prd_dma, bmdma + ATA_DMA_TABLE_OFS); | 287 | iowrite32(ap->bmdma_prd_dma, bmdma + ATA_DMA_TABLE_OFS); |
288 | 288 | ||
289 | /* issue r/w command */ | 289 | /* issue r/w command */ |
290 | ap->ops->sff_exec_command(ap, &qc->tf); | 290 | ap->ops->sff_exec_command(ap, &qc->tf); |
@@ -311,10 +311,10 @@ static void sil_fill_sg(struct ata_queued_cmd *qc) | |||
311 | { | 311 | { |
312 | struct scatterlist *sg; | 312 | struct scatterlist *sg; |
313 | struct ata_port *ap = qc->ap; | 313 | struct ata_port *ap = qc->ap; |
314 | struct ata_prd *prd, *last_prd = NULL; | 314 | struct ata_bmdma_prd *prd, *last_prd = NULL; |
315 | unsigned int si; | 315 | unsigned int si; |
316 | 316 | ||
317 | prd = &ap->prd[0]; | 317 | prd = &ap->bmdma_prd[0]; |
318 | for_each_sg(qc->sg, sg, qc->n_elem, si) { | 318 | for_each_sg(qc->sg, sg, qc->n_elem, si) { |
319 | /* Note h/w doesn't support 64-bit, so we unconditionally | 319 | /* Note h/w doesn't support 64-bit, so we unconditionally |
320 | * truncate dma_addr_t to u32. | 320 | * truncate dma_addr_t to u32. |
@@ -503,7 +503,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2) | |||
503 | goto err_hsm; | 503 | goto err_hsm; |
504 | 504 | ||
505 | /* ack bmdma irq events */ | 505 | /* ack bmdma irq events */ |
506 | ata_sff_irq_clear(ap); | 506 | ata_bmdma_irq_clear(ap); |
507 | 507 | ||
508 | /* kick HSM in the ass */ | 508 | /* kick HSM in the ass */ |
509 | ata_sff_hsm_move(ap, qc, status, 0); | 509 | ata_sff_hsm_move(ap, qc, status, 0); |
@@ -532,9 +532,6 @@ static irqreturn_t sil_interrupt(int irq, void *dev_instance) | |||
532 | struct ata_port *ap = host->ports[i]; | 532 | struct ata_port *ap = host->ports[i]; |
533 | u32 bmdma2 = readl(mmio_base + sil_port[ap->port_no].bmdma2); | 533 | u32 bmdma2 = readl(mmio_base + sil_port[ap->port_no].bmdma2); |
534 | 534 | ||
535 | if (unlikely(ap->flags & ATA_FLAG_DISABLED)) | ||
536 | continue; | ||
537 | |||
538 | /* turn off SATA_IRQ if not supported */ | 535 | /* turn off SATA_IRQ if not supported */ |
539 | if (ap->flags & SIL_FLAG_NO_SATA_IRQ) | 536 | if (ap->flags & SIL_FLAG_NO_SATA_IRQ) |
540 | bmdma2 &= ~SIL_DMA_SATA_IRQ; | 537 | bmdma2 &= ~SIL_DMA_SATA_IRQ; |
@@ -587,7 +584,7 @@ static void sil_thaw(struct ata_port *ap) | |||
587 | 584 | ||
588 | /* clear IRQ */ | 585 | /* clear IRQ */ |
589 | ap->ops->sff_check_status(ap); | 586 | ap->ops->sff_check_status(ap); |
590 | ata_sff_irq_clear(ap); | 587 | ata_bmdma_irq_clear(ap); |
591 | 588 | ||
592 | /* turn on SATA IRQ if supported */ | 589 | /* turn on SATA IRQ if supported */ |
593 | if (!(ap->flags & SIL_FLAG_NO_SATA_IRQ)) | 590 | if (!(ap->flags & SIL_FLAG_NO_SATA_IRQ)) |