Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f1bcaf0 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Linus Torvalds
Browse files

[PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use



VGA_MAP_MEM translates to ioremap() on some architectures.  It makes sense
to do this to vga_vram_base, because we're going to access memory between
vga_vram_base and vga_vram_end.

But it doesn't really make sense to map starting at vga_vram_end, because
we aren't going to access memory starting there.  On ia64, which always has
to be different, ioremapping vga_vram_end gives you something completely
incompatible with ioremapped vga_vram_start, so vga_vram_size ends up being
nonsense.

As a bonus, we often know the size up front, so we can use ioremap()
correctly, rather than giving it a zero size.

Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent d702ccb3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -313,8 +313,8 @@ static const char __init *mdacon_startup(void)
	mda_num_columns = 80;
	mda_num_lines   = 25;

	mda_vram_base = VGA_MAP_MEM(0xb0000);
	mda_vram_len  = 0x01000;
	mda_vram_base = VGA_MAP_MEM(0xb0000, mda_vram_len);

	mda_index_port  = 0x3b4;
	mda_value_port  = 0x3b5;
+9 −10
Original line number Diff line number Diff line
@@ -391,7 +391,7 @@ static const char __init *vgacon_startup(void)
			static struct resource ega_console_resource =
			    { "ega", 0x3B0, 0x3BF };
			vga_video_type = VIDEO_TYPE_EGAM;
			vga_vram_end = 0xb8000;
			vga_vram_size = 0x8000;
			display_desc = "EGA+";
			request_resource(&ioport_resource,
					 &ega_console_resource);
@@ -401,7 +401,7 @@ static const char __init *vgacon_startup(void)
			static struct resource mda2_console_resource =
			    { "mda", 0x3BF, 0x3BF };
			vga_video_type = VIDEO_TYPE_MDA;
			vga_vram_end = 0xb2000;
			vga_vram_size = 0x2000;
			display_desc = "*MDA";
			request_resource(&ioport_resource,
					 &mda1_console_resource);
@@ -418,7 +418,7 @@ static const char __init *vgacon_startup(void)
		if ((ORIG_VIDEO_EGA_BX & 0xff) != 0x10) {
			int i;

			vga_vram_end = 0xc0000;
			vga_vram_size = 0x8000;

			if (!ORIG_VIDEO_ISVGA) {
				static struct resource ega_console_resource
@@ -443,7 +443,7 @@ static const char __init *vgacon_startup(void)
				 * and COE=1 isn't necessarily a good idea)
				 */
				vga_vram_base = 0xa0000;
				vga_vram_end = 0xb0000;
				vga_vram_size = 0x10000;
				outb_p(6, VGA_GFX_I);
				outb_p(6, VGA_GFX_D);
#endif
@@ -475,7 +475,7 @@ static const char __init *vgacon_startup(void)
			static struct resource cga_console_resource =
			    { "cga", 0x3D4, 0x3D5 };
			vga_video_type = VIDEO_TYPE_CGA;
			vga_vram_end = 0xba000;
			vga_vram_size = 0x2000;
			display_desc = "*CGA";
			request_resource(&ioport_resource,
					 &cga_console_resource);
@@ -483,9 +483,8 @@ static const char __init *vgacon_startup(void)
		}
	}

	vga_vram_base = VGA_MAP_MEM(vga_vram_base);
	vga_vram_end = VGA_MAP_MEM(vga_vram_end);
	vga_vram_size = vga_vram_end - vga_vram_base;
	vga_vram_base = VGA_MAP_MEM(vga_vram_base, vga_vram_size);
	vga_vram_end = vga_vram_base + vga_vram_size;

	/*
	 *      Find out if there is a graphics card present.
@@ -1020,14 +1019,14 @@ static int vgacon_do_font_op(struct vgastate *state,char *arg,int set,int ch512)
	char *charmap;
	
	if (vga_video_type != VIDEO_TYPE_EGAM) {
		charmap = (char *) VGA_MAP_MEM(colourmap);
		charmap = (char *) VGA_MAP_MEM(colourmap, 0);
		beg = 0x0e;
#ifdef VGA_CAN_DO_64KB
		if (vga_video_type == VIDEO_TYPE_VGAC)
			beg = 0x06;
#endif
	} else {
		charmap = (char *) VGA_MAP_MEM(blackwmap);
		charmap = (char *) VGA_MAP_MEM(blackwmap, 0);
		beg = 0x0a;
	}

+1 −1
Original line number Diff line number Diff line
@@ -1351,7 +1351,7 @@ static int __init vga16fb_probe(struct device *device)
	}

	/* XXX share VGA_FB_PHYS and I/O region with vgacon and others */
	info->screen_base = (void __iomem *)VGA_MAP_MEM(VGA_FB_PHYS);
	info->screen_base = (void __iomem *)VGA_MAP_MEM(VGA_FB_PHYS, 0);

	if (!info->screen_base) {
		printk(KERN_ERR "vga16fb: unable to map device\n");
+1 −1
Original line number Diff line number Diff line
@@ -46,6 +46,6 @@ extern void scr_memcpyw(u16 *d, const u16 *s, unsigned int count);
#define vga_readb(a)	readb((u8 __iomem *)(a))
#define vga_writeb(v,a)	writeb(v, (u8 __iomem *)(a))

#define VGA_MAP_MEM(x)	((unsigned long) ioremap(x, 0))
#define VGA_MAP_MEM(x,s)	((unsigned long) ioremap(x, s))

#endif
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
#include <asm/hardware.h>
#include <asm/io.h>

#define VGA_MAP_MEM(x)	(PCIMEM_BASE + (x))
#define VGA_MAP_MEM(x,s)	(PCIMEM_BASE + (x))

#define vga_readb(x)	(*((volatile unsigned char *)x))
#define vga_writeb(x,y)	(*((volatile unsigned char *)y) = (x))
Loading