Claim the memory resource associated with the Cyber2000 SPARC MMIO
aperture before accessing it.
This is part of the effort to request memory regions in fbdev drivers.
Signed-off-by: Chintan Patel <redacted>
---
v2:
- Use pci_err() for error reporting instead of printk().
drivers/video/fbdev/cyber2000fb.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
index 2d12f8e96c7e..0b362842cab3 100644
--- a/drivers/video/fbdev/cyber2000fb.c
+++ b/drivers/video/fbdev/cyber2000fb.c
@@ -47,6 +47,7 @@
#include <linux/io.h>
#include <linux/i2c.h>
#include <linux/i2c-algo-bit.h>
+#include <linux/ioport.h>
#ifdef __arm__
#include <asm/mach-types.h>
@@ -1620,9 +1621,14 @@ static int cyberpro_pci_enable_mmio(struct cfb_info *cfb)
*/
unsigned char __iomem *iop;
+ if (!request_mem_region(0x3000000, 0x5000, "cyber2000fb iop")) {
+ pci_err(cfb->dev, "cannot reserve I/O area 0x3000000\n");
+ return -EBUSY;
+ }
iop = ioremap(0x3000000, 0x5000);
if (iop == NULL) {
- printk(KERN_ERR "iga5000: cannot map I/O\n");
+ pci_err(cfb->dev, "cannot map I/O area\n");
+ release_mem_region(0x3000000, 0x5000);
return -ENOMEM;
}
@@ -1633,6 +1639,7 @@ static int cyberpro_pci_enable_mmio(struct cfb_info *cfb)
writeb(EXT_BIU_MISC_LIN_ENABLE, iop + 0x3cf);
iounmap(iop);
+ release_mem_region(0x3000000, 0x5000);
#else
/*
* Most other machine types are "normal", so
--
2.43.0