libata-sff: separate out BMDMA irq handler
[safe/jmp/linux-2.6] / drivers / ata / pata_scc.c
index 86b25fe..d9db3f8 100644 (file)
@@ -265,7 +265,7 @@ unsigned long scc_mode_filter(struct ata_device *adev, unsigned long mask)
                printk(KERN_INFO "%s: limit ATAPI UDMA to UDMA4\n", DRV_NAME);
                mask &= ~(0xE0 << ATA_SHIFT_UDMA);
        }
-       return ata_bmdma_mode_filter(adev, mask);
+       return mask;
 }
 
 /**
@@ -441,7 +441,7 @@ static void scc_bmdma_setup (struct ata_queued_cmd *qc)
        void __iomem *mmio = ap->ioaddr.bmdma_addr;
 
        /* load PRD table addr */
-       out_be32(mmio + SCC_DMA_TABLE_OFS, ap->prd_dma);
+       out_be32(mmio + SCC_DMA_TABLE_OFS, ap->bmdma_prd_dma);
 
        /* specify data direction, triple-check start bit is clear */
        dmactl = in_be32(mmio + SCC_DMA_CMD);
@@ -828,29 +828,6 @@ static unsigned int scc_data_xfer (struct ata_device *dev, unsigned char *buf,
 }
 
 /**
- *     scc_irq_on - Enable interrupts on a port.
- *     @ap: Port on which interrupts are enabled.
- *
- *     Note: Original code is ata_sff_irq_on().
- */
-
-static u8 scc_irq_on (struct ata_port *ap)
-{
-       struct ata_ioports *ioaddr = &ap->ioaddr;
-       u8 tmp;
-
-       ap->ctl &= ~ATA_NIEN;
-       ap->last_ctl = ap->ctl;
-
-       out_be32(ioaddr->ctl_addr, ap->ctl);
-       tmp = ata_wait_idle(ap);
-
-       ap->ops->sff_irq_clear(ap);
-
-       return tmp;
-}
-
-/**
  *     scc_pata_prereset - prepare for reset
  *     @ap: ATA port to be reset
  *     @deadline: deadline jiffies for the operation
@@ -898,7 +875,7 @@ static void scc_postreset(struct ata_link *link, unsigned int *classes)
  *     scc_irq_clear - Clear PCI IDE BMDMA interrupt.
  *     @ap: Port associated with this ATA transaction.
  *
- *     Note: Original code is ata_sff_irq_clear().
+ *     Note: Original code is ata_bmdma_irq_clear().
  */
 
 static void scc_irq_clear (struct ata_port *ap)
@@ -915,7 +892,7 @@ static void scc_irq_clear (struct ata_port *ap)
  *     scc_port_start - Set port up for dma.
  *     @ap: Port to initialize
  *
- *     Allocate space for PRD table using ata_port_start().
+ *     Allocate space for PRD table using ata_bmdma_port_start().
  *     Set PRD table address for PTERADD. (PRD Transfer End Read)
  */
 
@@ -924,11 +901,11 @@ static int scc_port_start (struct ata_port *ap)
        void __iomem *mmio = ap->ioaddr.bmdma_addr;
        int rc;
 
-       rc = ata_port_start(ap);
+       rc = ata_bmdma_port_start(ap);
        if (rc)
                return rc;
 
-       out_be32(mmio + SCC_DMA_PTERADD, ap->prd_dma);
+       out_be32(mmio + SCC_DMA_PTERADD, ap->bmdma_prd_dma);
        return 0;
 }
 
@@ -974,10 +951,8 @@ static struct ata_port_operations scc_pata_ops = {
        .prereset               = scc_pata_prereset,
        .softreset              = scc_softreset,
        .postreset              = scc_postreset,
-       .post_internal_cmd      = scc_bmdma_stop,
 
        .sff_irq_clear          = scc_irq_clear,
-       .sff_irq_on             = scc_irq_on,
 
        .port_start             = scc_port_start,
        .port_stop              = scc_port_stop,
@@ -1130,7 +1105,7 @@ static int scc_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
        if (rc)
                return rc;
 
-       return ata_host_activate(host, pdev->irq, ata_sff_interrupt,
+       return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt,
                                 IRQF_SHARED, &scc_sht);
 }