]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ata/pata_ixp4xx_cf.c
ATA/IDE: fix platform driver hotplug/coldplug
[linux-2.6-omap-h63xx.git] / drivers / ata / pata_ixp4xx_cf.c
index b7e8e825a8691c4fc8e735adee9d5849cb291d06..de8d186f5abf01ba6c2e6dccfd0477e0e9fb4619 100644 (file)
@@ -92,29 +92,10 @@ static struct scsi_host_template ixp4xx_sht = {
 };
 
 static struct ata_port_operations ixp4xx_port_ops = {
-       .set_mode               = ixp4xx_set_mode,
-
-       .tf_load                = ata_tf_load,
-       .tf_read                = ata_tf_read,
-       .exec_command           = ata_exec_command,
-       .check_status           = ata_check_status,
-       .dev_select             = ata_std_dev_select,
-
-       .freeze                 = ata_bmdma_freeze,
-       .thaw                   = ata_bmdma_thaw,
-       .error_handler          = ata_bmdma_error_handler,
-       .post_internal_cmd      = ata_bmdma_post_internal_cmd,
-
-       .qc_prep                = ata_qc_prep,
-       .qc_issue               = ata_qc_issue_prot,
-       .data_xfer              = ixp4xx_mmio_data_xfer,
+       .inherits               = &ata_sff_port_ops,
+       .sff_data_xfer          = ixp4xx_mmio_data_xfer,
        .cable_detect           = ata_cable_40wire,
-
-       .irq_handler            = ata_interrupt,
-       .irq_clear              = ata_noop_irq_clear,
-       .irq_on                 = ata_irq_on,
-
-       .port_start             = ata_sff_port_start,
+       .set_mode               = ixp4xx_set_mode,
 };
 
 static void ixp4xx_setup_port(struct ata_port *ap,
@@ -129,7 +110,7 @@ static void ixp4xx_setup_port(struct ata_port *ap,
        ioaddr->altstatus_addr  = data->cs1 + 0x06;
        ioaddr->ctl_addr        = data->cs1 + 0x06;
 
-       ata_std_ports(ioaddr);
+       ata_sff_std_ports(ioaddr);
 
 #ifndef __ARMEB__
 
@@ -205,7 +186,7 @@ static __devinit int ixp4xx_pata_probe(struct platform_device *pdev)
        dev_printk(KERN_INFO, &pdev->dev, "version " DRV_VERSION "\n");
 
        /* activate host */
-       return ata_host_activate(host, irq, ata_interrupt, 0, &ixp4xx_sht);
+       return ata_host_activate(host, irq, ata_sff_interrupt, 0, &ixp4xx_sht);
 }
 
 static __devexit int ixp4xx_pata_remove(struct platform_device *dev)
@@ -240,6 +221,7 @@ MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
 MODULE_DESCRIPTION("low-level driver for ixp4xx Compact Flash PATA");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_VERSION);
+MODULE_ALIAS("platform:" DRV_NAME);
 
 module_init(ixp4xx_pata_init);
 module_exit(ixp4xx_pata_exit);