Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
[sfrench/cifs-2.6.git] / drivers / scsi / dec_esp.c
index 4f39890b44ac59c0867418c2562e9e73bc835bbc..eb32062f7e683271eb6c79c698dc74cd0fb34dc0 100644 (file)
@@ -18,7 +18,7 @@
  * 20001005    - Initialization fixes for 2.4.0-test9
  *                       Florian Lohoff <flo@rfc822.org>
  *
- *     Copyright (C) 2002, 2003  Maciej W. Rozycki
+ *     Copyright (C) 2002, 2003, 2005  Maciej W. Rozycki
  */
 
 #include <linux/kernel.h>
@@ -41,6 +41,7 @@
 #include <asm/dec/ioasic_addrs.h>
 #include <asm/dec/ioasic_ints.h>
 #include <asm/dec/machtype.h>
+#include <asm/dec/system.h>
 #include <asm/dec/tc.h>
 
 #define DEC_SCSI_SREG 0
@@ -132,7 +133,7 @@ static struct scsi_host_template driver_template = {
 #include "scsi_module.c"
 
 /***************************************************************** Detection */
-static int dec_esp_detect(Scsi_Host_Template * tpnt)
+static int dec_esp_detect(struct scsi_host_template * tpnt)
 {
        struct NCR_ESP *esp;
        struct ConfigDev *esp_dev;
@@ -183,7 +184,8 @@ static int dec_esp_detect(Scsi_Host_Template * tpnt)
                esp->dregs = 0;
 
                /* ESP register base */
-               esp->eregs = (struct ESP_regs *) (system_base + IOASIC_SCSI);
+               esp->eregs = (void *)CKSEG1ADDR(dec_kn_slot_base +
+                                               IOASIC_SCSI);
 
                /* Set the command buffer */
                esp->esp_command = (volatile unsigned char *) cmd_buffer;
@@ -200,19 +202,19 @@ static int dec_esp_detect(Scsi_Host_Template * tpnt)
 
                esp_initialize(esp);
 
-               if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
+               if (request_irq(esp->irq, esp_intr, IRQF_DISABLED,
                                "ncr53c94", esp->ehost))
                        goto err_dealloc;
                if (request_irq(dec_interrupt[DEC_IRQ_ASC_MERR],
-                               scsi_dma_merr_int, SA_INTERRUPT,
+                               scsi_dma_merr_int, IRQF_DISABLED,
                                "ncr53c94 error", esp->ehost))
                        goto err_free_irq;
                if (request_irq(dec_interrupt[DEC_IRQ_ASC_ERR],
-                               scsi_dma_err_int, SA_INTERRUPT,
+                               scsi_dma_err_int, IRQF_DISABLED,
                                "ncr53c94 overrun", esp->ehost))
                        goto err_free_irq_merr;
                if (request_irq(dec_interrupt[DEC_IRQ_ASC_DMA],
-                               scsi_dma_int, SA_INTERRUPT,
+                               scsi_dma_int, IRQF_DISABLED,
                                "ncr53c94 dma", esp->ehost))
                        goto err_free_irq_err;
 
@@ -231,7 +233,8 @@ static int dec_esp_detect(Scsi_Host_Template * tpnt)
                        esp->slot = CPHYSADDR(mem_start);
 
                        esp->dregs = 0;
-                       esp->eregs = (struct ESP_regs *) (mem_start + DEC_SCSI_SREG);
+                       esp->eregs = (void *)CKSEG1ADDR(mem_start +
+                                                       DEC_SCSI_SREG);
                        esp->do_pio_cmds = 1;
 
                        /* Set the command buffer */
@@ -273,7 +276,7 @@ static int dec_esp_detect(Scsi_Host_Template * tpnt)
                        esp->dma_mmu_release_scsi_sgl = 0;
                        esp->dma_advance_sg = 0;
 
-                       if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
+                       if (request_irq(esp->irq, esp_intr, IRQF_DISABLED,
                                         "PMAZ_AA", esp->ehost)) {
                                esp_deallocate(esp);
                                release_tc_card(slot);
@@ -513,14 +516,15 @@ static void dma_advance_sg(struct scsi_cmnd * sp)
 static void pmaz_dma_drain(struct NCR_ESP *esp)
 {
        memcpy(phys_to_virt(esp_virt_buffer),
-               (void *)KSEG1ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
-               scsi_current_length);
+              (void *)CKSEG1ADDR(esp->slot + DEC_SCSI_SRAM +
+                                 ESP_TGT_DMA_SIZE),
+              scsi_current_length);
 }
 
 static void pmaz_dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length)
 {
        volatile u32 *dmareg =
-               (volatile u32 *)KSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);
+               (volatile u32 *)CKSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);
 
        if (length > ESP_TGT_DMA_SIZE)
                length = ESP_TGT_DMA_SIZE;
@@ -536,9 +540,10 @@ static void pmaz_dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length)
 static void pmaz_dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length)
 {
        volatile u32 *dmareg =
-               (volatile u32 *)KSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);
+               (volatile u32 *)CKSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);
 
-       memcpy((void *)KSEG1ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
+       memcpy((void *)CKSEG1ADDR(esp->slot + DEC_SCSI_SRAM +
+                                 ESP_TGT_DMA_SIZE),
               phys_to_virt(vaddress), length);
 
        wmb();