]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ata/sata_via.c
Merge branch 'core/rcu' into core/rcu-for-linus
[linux-2.6-omap-h63xx.git] / drivers / ata / sata_via.c
index 6326bcf8ea5df715da13991898d66bfd41e452c7..96deeb354e16f24918a6d76608d09b39adb0fd56 100644 (file)
@@ -71,7 +71,7 @@ static int svia_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static int svia_scr_read(struct ata_port *ap, unsigned int sc_reg, u32 *val);
 static int svia_scr_write(struct ata_port *ap, unsigned int sc_reg, u32 val);
 static void svia_noop_freeze(struct ata_port *ap);
-static void vt6420_error_handler(struct ata_port *ap);
+static int vt6420_prereset(struct ata_link *link, unsigned long deadline);
 static int vt6421_pata_cable_detect(struct ata_port *ap);
 static void vt6421_set_pio_mode(struct ata_port *ap, struct ata_device *adev);
 static void vt6421_set_dma_mode(struct ata_port *ap, struct ata_device *adev);
@@ -106,7 +106,7 @@ static struct scsi_host_template svia_sht = {
 static struct ata_port_operations vt6420_sata_ops = {
        .inherits               = &ata_bmdma_port_ops,
        .freeze                 = svia_noop_freeze,
-       .error_handler          = vt6420_error_handler,
+       .prereset               = vt6420_prereset,
 };
 
 static struct ata_port_operations vt6421_pata_ops = {
@@ -173,8 +173,8 @@ static void svia_noop_freeze(struct ata_port *ap)
        /* Some VIA controllers choke if ATA_NIEN is manipulated in
         * certain way.  Leave it alone and just clear pending IRQ.
         */
-       ata_chk_status(ap);
-       ata_bmdma_irq_clear(ap);
+       ap->ops->sff_check_status(ap);
+       ata_sff_irq_clear(ap);
 }
 
 /**
@@ -242,17 +242,11 @@ static int vt6420_prereset(struct ata_link *link, unsigned long deadline)
 
  skip_scr:
        /* wait for !BSY */
-       ata_wait_ready(ap, deadline);
+       ata_sff_wait_ready(link, deadline);
 
        return 0;
 }
 
-static void vt6420_error_handler(struct ata_port *ap)
-{
-       ata_bmdma_drive_eh(ap, vt6420_prereset, ata_std_softreset, NULL,
-                          ata_std_postreset);
-}
-
 static int vt6421_pata_cable_detect(struct ata_port *ap)
 {
        struct pci_dev *pdev = to_pci_dev(ap->host->dev);
@@ -310,7 +304,7 @@ static void vt6421_init_addrs(struct ata_port *ap)
        ioaddr->bmdma_addr = bmdma_addr;
        ioaddr->scr_addr = vt6421_scr_addr(iomap[5], ap->port_no);
 
-       ata_std_ports(ioaddr);
+       ata_sff_std_ports(ioaddr);
 
        ata_port_pbar_desc(ap, ap->port_no, -1, "port");
        ata_port_pbar_desc(ap, 4, ap->port_no * 8, "bmdma");
@@ -322,7 +316,7 @@ static int vt6420_prepare_host(struct pci_dev *pdev, struct ata_host **r_host)
        struct ata_host *host;
        int rc;
 
-       rc = ata_pci_prepare_sff_host(pdev, ppi, &host);
+       rc = ata_pci_sff_prepare_host(pdev, ppi, &host);
        if (rc)
                return rc;
        *r_host = host;
@@ -454,8 +448,8 @@ static int svia_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        svia_configure(pdev);
 
        pci_set_master(pdev);
-       return ata_host_activate(host, pdev->irq, ata_interrupt, IRQF_SHARED,
-                                &svia_sht);
+       return ata_host_activate(host, pdev->irq, ata_sff_interrupt,
+                                IRQF_SHARED, &svia_sht);
 }
 
 static int __init svia_init(void)