diff --git a/Makefile b/Makefile
index ba5dd08..faa8e58 100644
--- a/Makefile
+++ b/Makefile
@@ -325,11 +325,6 @@
 else
 override CONFIG_ATAHPT = no
 endif
-ifeq ($(CONFIG_ATAVIA), yes)
-UNSUPPORTED_FEATURES += CONFIG_ATAVIA=yes
-else
-override CONFIG_ATAVIA = no
-endif
 ifeq ($(CONFIG_SATAMV), yes)
 UNSUPPORTED_FEATURES += CONFIG_SATAMV=yes
 else
diff --git a/atavia.c b/atavia.c
index 952a860..ef71dfa 100644
--- a/atavia.c
+++ b/atavia.c
@@ -72,7 +72,7 @@
 };
 
 static void *atavia_offset = NULL;
-struct pci_dev *dev = NULL;
+static struct pci_dev *dev = NULL;
 
 static void atavia_prettyprint_access(uint8_t access)
 {
@@ -118,7 +118,7 @@
 	return ready;
 }
 
-void *atavia_map(const char *descr, unsigned long phys_addr, size_t len)
+void *atavia_map(const char *descr, uintptr_t phys_addr, size_t len)
 {
 	return (atavia_offset != 0) ? atavia_offset : (void *)phys_addr;
 }
@@ -146,7 +146,6 @@
 	if (rget_io_perms())
 		return 1;
 
-	/* No need to check for errors, pcidev_init() will not return in case of errors. */
 	dev = pcidev_init(ata_via, PCI_ROM_ADDRESS); /* Acutally no BAR setup needed at all. */
 	if (!dev)
 		return 1;
@@ -172,7 +171,7 @@
 
 static void atavia_chip_writeb(const struct flashctx *flash, uint8_t val, const chipaddr addr)
 {
-	msg_pspew("%s: 0x%02x to 0x%08lx.\n", __func__, val, addr);
+	msg_pspew("%s: 0x%02x to 0x%*" PRIxPTR ".\n", __func__, val, PRIxPTR_WIDTH, addr);
 	pci_write_long(dev, BROM_ADDR, (addr & ~3));
 	pci_write_long(dev, BROM_DATA, val << BYTE_OFFSET(addr));
 	pci_write_byte(dev, BROM_ACCESS, BROM_TRIGGER | BROM_WRITE | ENABLE_BYTE(addr));
@@ -192,6 +191,6 @@
 	}
 
 	uint8_t val = (pci_read_long(dev, BROM_DATA) >> BYTE_OFFSET(addr)) & 0xff;
-	msg_pspew("%s: 0x%02x from 0x%08lx.\n", __func__, val, addr);
+	msg_pspew("%s: 0x%02x from 0x%*" PRIxPTR ".\n", __func__, val, PRIxPTR_WIDTH, addr);
 	return val;
 }
diff --git a/flashrom.8.tmpl b/flashrom.8.tmpl
index ed0160b..956e4f5 100644
--- a/flashrom.8.tmpl
+++ b/flashrom.8.tmpl
@@ -192,7 +192,7 @@
 .sp
 .BR "* atahpt" " (for flash ROMs on Highpoint ATA/RAID controllers)"
 .sp
-.BR "* atavia" " (for flash ROMs on VIA VT6421A ATA controllers)"
+.BR "* atavia" " (for flash ROMs on VIA VT6421A SATA controllers)"
 .sp
 .BR "* ft2232_spi" " (for SPI flash ROMs attached to an FT2232/FT4232H/FT232H family \
 based USB SPI programmer), including the DLP Design DLP-USB1232H, \
