[PATCH] sparc: vfc __iomem annotations and fixes
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 6 Dec 2005 10:50:56 +0000 (05:50 -0500)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 15 Dec 2005 18:01:28 +0000 (10:01 -0800)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/sbus/char/vfc.h
drivers/sbus/char/vfc_dev.c

index a7782e7da42ee9ce843a9a3ff79ac1a545569a8c..8045cd5e7cb3389041cdef112aac185f6d90b968 100644 (file)
@@ -125,7 +125,7 @@ struct vfc_regs {
 
 
 struct vfc_dev {
-       volatile struct vfc_regs *regs;
+       volatile struct vfc_regs __iomem *regs;
        struct vfc_regs *phys_regs;
        unsigned int control_reg;
        struct semaphore device_lock_sem;
index 7a103698fa3c3a3ea1e9023cbb55b5d7f4b8e1ab..dfdd6be551f3ecca3a878b159514ccf96c0c5dce 100644 (file)
@@ -149,7 +149,7 @@ int init_vfc_device(struct sbus_dev *sdev,struct vfc_dev *dev, int instance)
        }
        printk("Initializing vfc%d\n",instance);
        dev->regs = NULL;
-       dev->regs = (volatile struct vfc_regs *)
+       dev->regs = (volatile struct vfc_regs __iomem *)
                sbus_ioremap(&sdev->resource[0], 0,
                             sizeof(struct vfc_regs), vfcstr);
        dev->which_io = sdev->reg_addrs[0].which_io;
@@ -319,7 +319,7 @@ int vfc_capture_poll(struct vfc_dev *dev)
        int timeout = 1000;
 
        while (!timeout--) {
-               if (dev->regs->control & VFC_STATUS_CAPTURE)
+               if (sbus_readl(&dev->regs->control) & VFC_STATUS_CAPTURE)
                        break;
                vfc_i2c_delay_no_busy(dev, 100);
        }
@@ -718,7 +718,7 @@ static void deinit_vfc_device(struct vfc_dev *dev)
        if(dev == NULL)
                return;
        devfs_remove("vfc/%d", dev->instance);
-       sbus_iounmap((unsigned long)dev->regs, sizeof(struct vfc_regs));
+       sbus_iounmap(dev->regs, sizeof(struct vfc_regs));
        kfree(dev);
 }