linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / scsi / g_NCR5380.c
index 02055ff..45756fa 100644 (file)
@@ -285,7 +285,7 @@ static int __init do_DTC3181E_setup(char *str)
  *     Locks: none
  */
 
-int __init generic_NCR5380_detect(Scsi_Host_Template * tpnt)
+int __init generic_NCR5380_detect(struct scsi_host_template * tpnt)
 {
        static int current_override = 0;
        int count, i;
@@ -355,7 +355,7 @@ int __init generic_NCR5380_detect(Scsi_Host_Template * tpnt)
                if (!(overrides[current_override].NCR5380_map_name))
                        continue;
 
-               ports = 0;
+               ports = NULL;
                switch (overrides[current_override].board) {
                case BOARD_NCR5380:
                        flags = FLAG_NO_PSEUDO_DMA;
@@ -501,6 +501,10 @@ int generic_NCR5380_release_resources(struct Scsi_Host *instance)
 {
        NCR5380_local_declare();
        NCR5380_setup(instance);
+       
+       if (instance->irq != SCSI_IRQ_NONE)
+               free_irq(instance->irq, NULL);
+       NCR5380_exit(instance);
 
 #ifndef CONFIG_SCSI_G_NCR5380_MEM
        release_region(instance->NCR5380_instance_name, instance->n_io_port);
@@ -508,8 +512,6 @@ int generic_NCR5380_release_resources(struct Scsi_Host *instance)
        release_mem_region(instance->NCR5380_instance_name, NCR5380_region_size);
 #endif
 
-       if (instance->irq != SCSI_IRQ_NONE)
-               free_irq(instance->irq, NULL);
 
        return 0;
 }
@@ -796,7 +798,7 @@ static int generic_NCR5380_proc_info(struct Scsi_Host *scsi_ptr, char *buffer, c
        Scsi_Cmnd *ptr;
        struct NCR5380_hostdata *hostdata;
 #ifdef NCR5380_STATS
-       Scsi_Device *dev;
+       struct scsi_device *dev;
        extern const char *const scsi_device_types[MAX_SCSI_DEVICE_CODE];
 #endif
 
@@ -897,7 +899,7 @@ static int generic_NCR5380_proc_info(struct Scsi_Host *scsi_ptr, char *buffer, c
 #undef PRINTP
 #undef ANDP
 
-static Scsi_Host_Template driver_template = {
+static struct scsi_host_template driver_template = {
        .proc_info              = generic_NCR5380_proc_info,
        .name                   = "Generic NCR5380/NCR53C400 Scsi Driver",
        .detect                 = generic_NCR5380_detect,
@@ -906,8 +908,6 @@ static Scsi_Host_Template driver_template = {
        .queuecommand           = generic_NCR5380_queue_command,
        .eh_abort_handler       = generic_NCR5380_abort,
        .eh_bus_reset_handler   = generic_NCR5380_bus_reset,
-       .eh_device_reset_handler = generic_NCR5380_device_reset,
-       .eh_host_reset_handler  = generic_NCR5380_host_reset,
        .bios_param             = NCR5380_BIOSPARAM,
        .can_queue              = CAN_QUEUE,
         .this_id               = 7,
@@ -918,13 +918,13 @@ static Scsi_Host_Template driver_template = {
 #include <linux/module.h>
 #include "scsi_module.c"
 
-MODULE_PARM(ncr_irq, "i");
-MODULE_PARM(ncr_dma, "i");
-MODULE_PARM(ncr_addr, "i");
-MODULE_PARM(ncr_5380, "i");
-MODULE_PARM(ncr_53c400, "i");
-MODULE_PARM(ncr_53c400a, "i");
-MODULE_PARM(dtc_3181e, "i");
+module_param(ncr_irq, int, 0);
+module_param(ncr_dma, int, 0);
+module_param(ncr_addr, int, 0);
+module_param(ncr_5380, int, 0);
+module_param(ncr_53c400, int, 0);
+module_param(ncr_53c400a, int, 0);
+module_param(dtc_3181e, int, 0);
 MODULE_LICENSE("GPL");