pata_cs5535: no need to program PIO0 timings during device init
[linux-2.6.git] / drivers / ata / pata_jmicron.c
index 69781af..cb3babb 100644 (file)
@@ -4,7 +4,7 @@
  *                     driven by AHCI in the usual configuration although
  *                     this driver can handle other setups if we need it.
  *
- *     (c) 2006 Red Hat  <alan@redhat.com>
+ *     (c) 2006 Red Hat
  */
 
 #include <linux/kernel.h>
@@ -102,21 +102,7 @@ static int jmicron_pre_reset(struct ata_link *link, unsigned long deadline)
                ap->cbl = ATA_CBL_SATA;
                break;
        }
-       return ata_std_prereset(link, deadline);
-}
-
-/**
- *     jmicron_error_handler - Setup and error handler
- *     @ap: Port to handle
- *
- *     LOCKING:
- *     None (inherited from caller).
- */
-
-static void jmicron_error_handler(struct ata_port *ap)
-{
-       ata_bmdma_drive_eh(ap, jmicron_pre_reset, ata_std_softreset, NULL,
-                          ata_std_postreset);
+       return ata_sff_prereset(link, deadline);
 }
 
 /* No PIO or DMA methods needed for this device */
@@ -125,36 +111,9 @@ static struct scsi_host_template jmicron_sht = {
        ATA_BMDMA_SHT(DRV_NAME),
 };
 
-static const struct ata_port_operations jmicron_ops = {
-       /* Task file is PCI ATA format, use helpers */
-       .tf_load                = ata_tf_load,
-       .tf_read                = ata_tf_read,
-       .check_status           = ata_check_status,
-       .exec_command           = ata_exec_command,
-       .dev_select             = ata_std_dev_select,
-
-       .mode_filter            = ata_pci_default_filter,
-       .freeze                 = ata_bmdma_freeze,
-       .thaw                   = ata_bmdma_thaw,
-       .error_handler          = jmicron_error_handler,
-       .post_internal_cmd      = ata_bmdma_post_internal_cmd,
-
-       /* BMDMA handling is PCI ATA format, use helpers */
-       .bmdma_setup            = ata_bmdma_setup,
-       .bmdma_start            = ata_bmdma_start,
-       .bmdma_stop             = ata_bmdma_stop,
-       .bmdma_status           = ata_bmdma_status,
-       .qc_prep                = ata_qc_prep,
-       .qc_issue               = ata_qc_issue_prot,
-       .data_xfer              = ata_data_xfer,
-
-       /* IRQ-related hooks */
-       .irq_handler            = ata_interrupt,
-       .irq_clear              = ata_bmdma_irq_clear,
-       .irq_on                 = ata_irq_on,
-
-       /* Generic PATA PCI ATA helpers */
-       .port_start             = ata_sff_port_start,
+static struct ata_port_operations jmicron_ops = {
+       .inherits               = &ata_bmdma_port_ops,
+       .prereset               = jmicron_pre_reset,
 };
 
 
@@ -175,18 +134,17 @@ static const struct ata_port_operations jmicron_ops = {
 static int jmicron_init_one (struct pci_dev *pdev, const struct pci_device_id *id)
 {
        static const struct ata_port_info info = {
-               .sht            = &jmicron_sht,
                .flags  = ATA_FLAG_SLAVE_POSS,
 
-               .pio_mask       = 0x1f,
-               .mwdma_mask     = 0x07,
+               .pio_mask       = ATA_PIO4,
+               .mwdma_mask     = ATA_MWDMA2,
                .udma_mask      = ATA_UDMA5,
 
                .port_ops       = &jmicron_ops,
        };
        const struct ata_port_info *ppi[] = { &info, NULL };
 
-       return ata_pci_init_one(pdev, ppi);
+       return ata_pci_bmdma_init_one(pdev, ppi, &jmicron_sht, NULL, 0);
 }
 
 static const struct pci_device_id jmicron_pci_tbl[] = {