]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/scsi/fd_mcs.c
[PATCH] ata_piix: add map 01b for ICH7M
[linux-2.6-omap-h63xx.git] / drivers / scsi / fd_mcs.c
index d59d449a9e4dd46f1155e5f468e70ebb58ddc946..dde3edf35c03667ed2762119dca8bcb9344327a7 100644 (file)
@@ -279,7 +279,7 @@ static struct fd_mcs_adapters_struct fd_mcs_adapters[] = {
         2},
 };
 
-#define FD_BRDS sizeof(fd_mcs_adapters)/sizeof(struct fd_mcs_adapters_struct)
+#define FD_BRDS ARRAY_SIZE(fd_mcs_adapters)
 
 static irqreturn_t fd_mcs_intr(int irq, void *dev_id, struct pt_regs *regs);
 
@@ -343,7 +343,7 @@ static void fd_mcs_make_bus_idle(struct Scsi_Host *shpnt)
                outb(0x01 | PARITY_MASK, TMC_Cntl_port);
 }
 
-static int fd_mcs_detect(Scsi_Host_Template * tpnt)
+static int fd_mcs_detect(struct scsi_host_template * tpnt)
 {
        int loop;
        struct Scsi_Host *shpnt;
@@ -400,7 +400,7 @@ static int fd_mcs_detect(Scsi_Host_Template * tpnt)
                                mca_set_adapter_name(slot - 1, fd_mcs_adapters[loop].name);
 
                                /* check irq/region */
-                               if (request_irq(irq, fd_mcs_intr, SA_SHIRQ, "fd_mcs", hosts)) {
+                               if (request_irq(irq, fd_mcs_intr, IRQF_SHARED, "fd_mcs", hosts)) {
                                        printk(KERN_ERR "fd_mcs: interrupt is not available, skipping...\n");
                                        continue;
                                }
@@ -671,7 +671,7 @@ static irqreturn_t fd_mcs_intr(int irq, void *dev_id, struct pt_regs *regs)
                outb(0x40 | FIFO_COUNT, Interrupt_Cntl_port);
 
                outb(0x82, SCSI_Cntl_port);     /* Bus Enable + Select */
-               outb(adapter_mask | (1 << current_SC->device->id), SCSI_Data_NoACK_port);
+               outb(adapter_mask | (1 << scmd_id(current_SC)), SCSI_Data_NoACK_port);
 
                /* Stop arbitration and enable parity */
                outb(0x10 | PARITY_MASK, TMC_Cntl_port);
@@ -683,7 +683,7 @@ static irqreturn_t fd_mcs_intr(int irq, void *dev_id, struct pt_regs *regs)
                status = inb(SCSI_Status_port);
                if (!(status & 0x01)) {
                        /* Try again, for slow devices */
-                       if (fd_mcs_select(shpnt, current_SC->device->id)) {
+                       if (fd_mcs_select(shpnt, scmd_id(current_SC))) {
 #if EVERY_ACCESS
                                printk(" SFAIL ");
 #endif
@@ -1343,7 +1343,7 @@ static int fd_mcs_biosparam(struct scsi_device * disk, struct block_device *bdev
        return 0;
 }
 
-static Scsi_Host_Template driver_template = {
+static struct scsi_host_template driver_template = {
        .proc_name                      = "fd_mcs",
        .proc_info                      = fd_mcs_proc_info,
        .detect                         = fd_mcs_detect,