]> err.no Git - linux-2.6/blobdiff - drivers/ata/pata_hpt3x3.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy...
[linux-2.6] / drivers / ata / pata_hpt3x3.c
index a66e2c3a221b117059e892286e609c5e3a825db9..cb8bdb6887dea6322e22cdb20290311b5234bf0b 100644 (file)
@@ -52,6 +52,7 @@ static void hpt3x3_set_piomode(struct ata_port *ap, struct ata_device *adev)
        pci_write_config_dword(pdev, 0x48, r2);
 }
 
+#if defined(CONFIG_PATA_HPT3X3_DMA)
 /**
  *     hpt3x3_set_dmamode              -       DMA timing setup
  *     @ap: ATA interface
@@ -86,6 +87,7 @@ static void hpt3x3_set_dmamode(struct ata_port *ap, struct ata_device *adev)
        pci_write_config_dword(pdev, 0x44, r1);
        pci_write_config_dword(pdev, 0x48, r2);
 }
+#endif /* CONFIG_PATA_HPT3X3_DMA */
 
 /**
  *     hpt3x3_atapi_dma        -       ATAPI DMA check
@@ -118,8 +120,10 @@ static struct scsi_host_template hpt3x3_sht = {
 };
 
 static struct ata_port_operations hpt3x3_port_ops = {
-       .port_disable   = ata_port_disable,
        .set_piomode    = hpt3x3_set_piomode,
+#if defined(CONFIG_PATA_HPT3X3_DMA)
+       .set_dmamode    = hpt3x3_set_dmamode,
+#endif
        .mode_filter    = ata_pci_default_filter,
 
        .tf_load        = ata_tf_load,
@@ -148,9 +152,8 @@ static struct ata_port_operations hpt3x3_port_ops = {
        .irq_handler    = ata_interrupt,
        .irq_clear      = ata_bmdma_irq_clear,
        .irq_on         = ata_irq_on,
-       .irq_ack        = ata_irq_ack,
 
-       .port_start     = ata_port_start,
+       .port_start     = ata_sff_port_start,
 };
 
 /**
@@ -234,7 +237,8 @@ static int hpt3x3_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
        base = host->iomap[4];  /* Bus mastering base */
 
        for (i = 0; i < host->n_ports; i++) {
-               struct ata_ioports *ioaddr = &host->ports[i]->ioaddr;
+               struct ata_port *ap = host->ports[i];
+               struct ata_ioports *ioaddr = &ap->ioaddr;
 
                ioaddr->cmd_addr = base + offset_cmd[i];
                ioaddr->altstatus_addr =
@@ -242,6 +246,9 @@ static int hpt3x3_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
                ioaddr->scr_addr = NULL;
                ata_std_ports(ioaddr);
                ioaddr->bmdma_addr = base + 8 * i;
+
+               ata_port_pbar_desc(ap, 4, -1, "ioport");
+               ata_port_pbar_desc(ap, 4, offset_cmd[i], "cmd");
        }
        pci_set_master(pdev);
        return ata_host_activate(host, pdev->irq, ata_interrupt, IRQF_SHARED,