char name[32];          /* name of this device */
        struct pci_dev *pci_dev;        /* PCI device */
        unsigned char revision; /* revision of zr36057 */
-       unsigned int zr36057_adr;       /* bus address of IO mem returned by PCI BIOS */
        unsigned char __iomem *zr36057_mem;/* pointer to mapped IO memory */
 
        spinlock_t spinlock;    /* Spinlock */
        wait_queue_head_t test_q;
 };
 
-/*The following should be done in more portable way. It depends on define
-  of _ALPHA_BUZ in the Makefile.*/
-
-#ifdef _ALPHA_BUZ
-#define btwrite(dat,adr)    writel((dat), zr->zr36057_adr+(adr))
-#define btread(adr)         readl(zr->zr36057_adr+(adr))
-#else
+/* There was something called _ALPHA_BUZ that used the PCI address instead of
+ * the kernel iomapped address for btread/btwrite.  */
 #define btwrite(dat,adr)    writel((dat), zr->zr36057_mem+(adr))
 #define btread(adr)         readl(zr->zr36057_mem+(adr))
-#endif
 
 #define btand(dat,adr)      btwrite((dat) & btread(adr), adr)
 #define btor(dat,adr)       btwrite((dat) | btread(adr), adr)
 
        mutex_init(&zr->resource_lock);
        if (pci_enable_device(pdev))
                goto zr_free_mem;
-       zr->zr36057_adr = pci_resource_start(zr->pci_dev, 0);
        pci_read_config_byte(zr->pci_dev, PCI_CLASS_REVISION, &zr->revision);
 
        dprintk(1,
                KERN_INFO
-               "%s: Zoran ZR360%c7 (rev %d), irq: %d, memory: 0x%08x\n",
+               "%s: Zoran ZR360%c7 (rev %d), irq: %d, memory: 0x%08llx\n",
                ZR_DEVNAME(zr), zr->revision < 2 ? '5' : '6', zr->revision,
-               zr->pci_dev->irq, zr->zr36057_adr);
+               zr->pci_dev->irq, (uint64_t)pci_resource_start(zr->pci_dev, 0));
        if (zr->revision >= 2) {
                dprintk(1,
                        KERN_INFO
        snprintf(ZR_DEVNAME(zr), sizeof(ZR_DEVNAME(zr)),
                 "%s[%u]", zr->card.name, zr->id);
 
-       zr->zr36057_mem = ioremap_nocache(zr->zr36057_adr, 0x1000);
+       zr->zr36057_mem = pci_ioremap_bar(zr->pci_dev, 0);
        if (!zr->zr36057_mem) {
                dprintk(1,
                        KERN_ERR
-                       "%s: find_zr36057() - ioremap failed\n",
-                       ZR_DEVNAME(zr));
+                       "%s: %s() - ioremap failed\n",
+                       ZR_DEVNAME(zr), __func__);
                goto zr_free_mem;
        }