scsi: dmx3191d: use module_pci_driver
[linux-2.6-microblaze.git] / drivers / scsi / dmx3191d.c
index 9b5a457..6af3394 100644 (file)
  * Definitions for the generic 5380 driver.
  */
 
-#define NCR5380_read(reg)              inb(instance->io_port + reg)
-#define NCR5380_write(reg, value)      outb(value, instance->io_port + reg)
+#define NCR5380_read(reg)              inb(hostdata->base + (reg))
+#define NCR5380_write(reg, value)      outb(value, hostdata->base + (reg))
 
-#define NCR5380_dma_xfer_len(instance, cmd, phase)     (0)
-#define NCR5380_dma_recv_setup(instance, dst, len)     (0)
-#define NCR5380_dma_send_setup(instance, src, len)     (0)
-#define NCR5380_dma_residual(instance)                 (0)
+#define NCR5380_dma_xfer_len           NCR5380_dma_xfer_none
+#define NCR5380_dma_recv_setup         NCR5380_dma_setup_none
+#define NCR5380_dma_send_setup         NCR5380_dma_setup_none
+#define NCR5380_dma_residual           NCR5380_dma_residual_none
 
 #define NCR5380_implementation_fields  /* none */
 
@@ -71,6 +71,7 @@ static int dmx3191d_probe_one(struct pci_dev *pdev,
                              const struct pci_device_id *id)
 {
        struct Scsi_Host *shost;
+       struct NCR5380_hostdata *hostdata;
        unsigned long io;
        int error = -ENODEV;
 
@@ -88,7 +89,9 @@ static int dmx3191d_probe_one(struct pci_dev *pdev,
                        sizeof(struct NCR5380_hostdata));
        if (!shost)
                goto out_release_region;       
-       shost->io_port = io;
+
+       hostdata = shost_priv(shost);
+       hostdata->base = io;
 
        /* This card does not seem to raise an interrupt on pdev->irq.
         * Steam-powered SCSI controllers run without an IRQ anyway.
@@ -125,7 +128,8 @@ out_host_put:
 static void dmx3191d_remove_one(struct pci_dev *pdev)
 {
        struct Scsi_Host *shost = pci_get_drvdata(pdev);
-       unsigned long io = shost->io_port;
+       struct NCR5380_hostdata *hostdata = shost_priv(shost);
+       unsigned long io = hostdata->base;
 
        scsi_remove_host(shost);
 
@@ -149,18 +153,7 @@ static struct pci_driver dmx3191d_pci_driver = {
        .remove         = dmx3191d_remove_one,
 };
 
-static int __init dmx3191d_init(void)
-{
-       return pci_register_driver(&dmx3191d_pci_driver);
-}
-
-static void __exit dmx3191d_exit(void)
-{
-       pci_unregister_driver(&dmx3191d_pci_driver);
-}
-
-module_init(dmx3191d_init);
-module_exit(dmx3191d_exit);
+module_pci_driver(dmx3191d_pci_driver);
 
 MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
 MODULE_DESCRIPTION("Domex DMX3191D SCSI driver");