/* We needs this helper because we have up to four hosts per struct device */
struct NCR_Q720_private {
struct device *dev;
- __u32 mem_base;
+ void __iomem * mem_base;
__u32 phys_mem_base;
__u32 mem_size;
__u8 irq;
struct Scsi_Host *hosts[4];
};
-struct scsi_host_template NCR_Q720_tpnt = {
+static struct scsi_host_template NCR_Q720_tpnt = {
.module = THIS_MODULE,
.proc_name = "NCR_Q720",
};
static int __init
NCR_Q720_probe_one(struct NCR_Q720_private *p, int siop,
- int irq, int slot, __u32 paddr, __u32 vaddr)
+ int irq, int slot, __u32 paddr, void __iomem *vaddr)
{
struct ncr_device device;
__u8 scsi_id;
__u8 pos2, pos4, asr2, asr9, asr10;
__u16 io_base;
__u32 base_addr, mem_size;
- __u32 mem_base;
+ void __iomem *mem_base;
p = kmalloc(sizeof(*p), GFP_KERNEL);
if (!p)
*/
mem_base = (__u32)dma_mark_declared_memory_occupied(dev, base_addr,
1024);
- if (IS_ERR((void *)mem_base)) {
+ if (IS_ERR(mem_base)) {
printk("NCR_Q720 failed to reserve memory mapped region\n");
goto out_release;
}
}
/* disable all the siop interrupts */
for(i = 0; i < siops; i++) {
- __u32 reg_scsr1 = mem_base + NCR_Q720_CHIP_REGISTER_OFFSET
+ void __iomem *reg_scsr1 = mem_base + NCR_Q720_CHIP_REGISTER_OFFSET
+ i*NCR_Q720_SIOP_SHIFT + NCR_Q720_SCSR_OFFSET + 1;
__u8 scsr1 = readb(reg_scsr1);
scsr1 |= 0x01;
/* plumb in all 720 chips */
for (i = 0; i < siops; i++) {
- __u32 siop_v_base = mem_base + NCR_Q720_CHIP_REGISTER_OFFSET
+ void __iomem *siop_v_base = mem_base + NCR_Q720_CHIP_REGISTER_OFFSET
+ i*NCR_Q720_SIOP_SHIFT;
__u32 siop_p_base = base_addr + NCR_Q720_CHIP_REGISTER_OFFSET
+ i*NCR_Q720_SIOP_SHIFT;
static short NCR_Q720_id_table[] = { NCR_Q720_MCA_ID, 0 };
-struct mca_driver NCR_Q720_driver = {
+static struct mca_driver NCR_Q720_driver = {
.id_table = NCR_Q720_id_table,
.driver = {
.name = "NCR_Q720",
static int __init
NCR_Q720_init(void)
{
- return mca_register_driver(&NCR_Q720_driver);
+ int ret = ncr53c8xx_init();
+ if (!ret)
+ ret = mca_register_driver(&NCR_Q720_driver);
+ if (ret)
+ ncr53c8xx_exit();
+ return ret;
}
static void __exit
NCR_Q720_exit(void)
{
mca_unregister_driver(&NCR_Q720_driver);
+ ncr53c8xx_exit();
}
module_init(NCR_Q720_init);