2005-09-20 23:32:37 +04:00
# ifndef _ASM_POWERPC_VGA_H_
# define _ASM_POWERPC_VGA_H_
# ifdef __KERNEL__
2005-04-17 02:20:36 +04:00
/*
* Access to VGA videoram
*
* ( c ) 1998 Martin Mares < mj @ ucw . cz >
*/
# include <asm/io.h>
# if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_MDA_CONSOLE)
# define VT_BUF_HAVE_RW
/*
* These are only needed for supporting VGA or MDA text mode , which use little
* endian byte ordering .
* In other cases , we can optimize by using native byte ordering and
* < linux / vt_buffer . h > has already done the right job for us .
*/
static inline void scr_writew ( u16 val , volatile u16 * addr )
{
st_le16 ( addr , val ) ;
}
static inline u16 scr_readw ( volatile const u16 * addr )
{
return ld_le16 ( addr ) ;
}
# define VT_BUF_HAVE_MEMCPYW
# define scr_memcpyw memcpy
# endif /* !CONFIG_VGA_CONSOLE && !CONFIG_MDA_CONSOLE */
extern unsigned long vgacon_remap_base ;
2005-09-20 23:32:37 +04:00
# ifdef __powerpc64__
[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: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-23 01:47:32 +04:00
# define VGA_MAP_MEM(x,s) ((unsigned long) ioremap((x), s))
2005-09-20 23:32:37 +04:00
# else
[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: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-23 01:47:32 +04:00
# define VGA_MAP_MEM(x,s) (x + vgacon_remap_base)
2005-09-20 23:32:37 +04:00
# endif
2005-04-17 02:20:36 +04:00
# define vga_readb(x) (*(x))
# define vga_writeb(x,y) (*(y) = (x))
2005-09-20 23:32:37 +04:00
# endif /* __KERNEL__ */
# endif /* _ASM_POWERPC_VGA_H_ */