diff options
-rw-r--r-- | drivers/scsi/megaraid.c | 13 | ||||
-rw-r--r-- | drivers/scsi/megaraid.h | 3 |
2 files changed, 10 insertions, 6 deletions
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index 86099fde1b2a..77d9d3804ccf 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
@@ -73,10 +73,10 @@ static unsigned short int max_mbox_busy_wait = MBOX_BUSY_WAIT; | |||
73 | module_param(max_mbox_busy_wait, ushort, 0); | 73 | module_param(max_mbox_busy_wait, ushort, 0); |
74 | MODULE_PARM_DESC(max_mbox_busy_wait, "Maximum wait for mailbox in microseconds if busy (default=MBOX_BUSY_WAIT=10)"); | 74 | MODULE_PARM_DESC(max_mbox_busy_wait, "Maximum wait for mailbox in microseconds if busy (default=MBOX_BUSY_WAIT=10)"); |
75 | 75 | ||
76 | #define RDINDOOR(adapter) readl((adapter)->base + 0x20) | 76 | #define RDINDOOR(adapter) readl((adapter)->mmio_base + 0x20) |
77 | #define RDOUTDOOR(adapter) readl((adapter)->base + 0x2C) | 77 | #define RDOUTDOOR(adapter) readl((adapter)->mmio_base + 0x2C) |
78 | #define WRINDOOR(adapter,value) writel(value, (adapter)->base + 0x20) | 78 | #define WRINDOOR(adapter,value) writel(value, (adapter)->mmio_base + 0x20) |
79 | #define WROUTDOOR(adapter,value) writel(value, (adapter)->base + 0x2C) | 79 | #define WROUTDOOR(adapter,value) writel(value, (adapter)->mmio_base + 0x2C) |
80 | 80 | ||
81 | /* | 81 | /* |
82 | * Global variables | 82 | * Global variables |
@@ -1386,7 +1386,8 @@ megaraid_isr_memmapped(int irq, void *devp) | |||
1386 | 1386 | ||
1387 | handled = 1; | 1387 | handled = 1; |
1388 | 1388 | ||
1389 | while( RDINDOOR(adapter) & 0x02 ) cpu_relax(); | 1389 | while( RDINDOOR(adapter) & 0x02 ) |
1390 | cpu_relax(); | ||
1390 | 1391 | ||
1391 | mega_cmd_done(adapter, completed, nstatus, status); | 1392 | mega_cmd_done(adapter, completed, nstatus, status); |
1392 | 1393 | ||
@@ -4668,6 +4669,8 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) | |||
4668 | host->host_no, mega_baseport, irq); | 4669 | host->host_no, mega_baseport, irq); |
4669 | 4670 | ||
4670 | adapter->base = mega_baseport; | 4671 | adapter->base = mega_baseport; |
4672 | if (flag & BOARD_MEMMAP) | ||
4673 | adapter->mmio_base = (void __iomem *) mega_baseport; | ||
4671 | 4674 | ||
4672 | INIT_LIST_HEAD(&adapter->free_list); | 4675 | INIT_LIST_HEAD(&adapter->free_list); |
4673 | INIT_LIST_HEAD(&adapter->pending_list); | 4676 | INIT_LIST_HEAD(&adapter->pending_list); |
diff --git a/drivers/scsi/megaraid.h b/drivers/scsi/megaraid.h index 66529f11d23c..c6e74643abe2 100644 --- a/drivers/scsi/megaraid.h +++ b/drivers/scsi/megaraid.h | |||
@@ -801,7 +801,8 @@ typedef struct { | |||
801 | clustering is available */ | 801 | clustering is available */ |
802 | u32 flag; | 802 | u32 flag; |
803 | 803 | ||
804 | unsigned long base; | 804 | unsigned long base; |
805 | void __iomem *mmio_base; | ||
805 | 806 | ||
806 | /* mbox64 with mbox not aligned on 16-byte boundry */ | 807 | /* mbox64 with mbox not aligned on 16-byte boundry */ |
807 | mbox64_t *una_mbox64; | 808 | mbox64_t *una_mbox64; |