linux/arch/alpha/include/asm/vga.h
<<
>>
Prefs
   1/*
   2 *      Access to VGA videoram
   3 *
   4 *      (c) 1998 Martin Mares <mj@ucw.cz>
   5 */
   6
   7#ifndef _LINUX_ASM_VGA_H_
   8#define _LINUX_ASM_VGA_H_
   9
  10#include <asm/io.h>
  11
  12#define VT_BUF_HAVE_RW
  13#define VT_BUF_HAVE_MEMSETW
  14#define VT_BUF_HAVE_MEMCPYW
  15
  16static inline void scr_writew(u16 val, volatile u16 *addr)
  17{
  18        if (__is_ioaddr(addr))
  19                __raw_writew(val, (volatile u16 __iomem *) addr);
  20        else
  21                *addr = val;
  22}
  23
  24static inline u16 scr_readw(volatile const u16 *addr)
  25{
  26        if (__is_ioaddr(addr))
  27                return __raw_readw((volatile const u16 __iomem *) addr);
  28        else
  29                return *addr;
  30}
  31
  32static inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
  33{
  34        if (__is_ioaddr(s))
  35                memsetw_io((u16 __iomem *) s, c, count);
  36        else
  37                memsetw(s, c, count);
  38}
  39
  40/* Do not trust that the usage will be correct; analyze the arguments.  */
  41extern void scr_memcpyw(u16 *d, const u16 *s, unsigned int count);
  42
  43/* ??? These are currently only used for downloading character sets.  As
  44   such, they don't need memory barriers.  Is this all they are intended
  45   to be used for?  */
  46#define vga_readb(a)    readb((u8 __iomem *)(a))
  47#define vga_writeb(v,a) writeb(v, (u8 __iomem *)(a))
  48
  49#ifdef CONFIG_VGA_HOSE
  50#include <linux/ioport.h>
  51#include <linux/pci.h>
  52
  53extern struct pci_controller *pci_vga_hose;
  54
  55# define __is_port_vga(a)       \
  56        (((a) >= 0x3b0) && ((a) < 0x3e0) && \
  57         ((a) != 0x3b3) && ((a) != 0x3d3))
  58
  59# define __is_mem_vga(a) \
  60        (((a) >= 0xa0000) && ((a) <= 0xc0000))
  61
  62# define FIXUP_IOADDR_VGA(a) do {                       \
  63        if (pci_vga_hose && __is_port_vga(a))     \
  64                (a) += pci_vga_hose->io_space->start;     \
  65 } while(0)
  66
  67# define FIXUP_MEMADDR_VGA(a) do {                       \
  68        if (pci_vga_hose && __is_mem_vga(a))     \
  69                (a) += pci_vga_hose->mem_space->start; \
  70 } while(0)
  71
  72#else /* CONFIG_VGA_HOSE */
  73# define pci_vga_hose 0
  74# define __is_port_vga(a) 0
  75# define __is_mem_vga(a) 0
  76# define FIXUP_IOADDR_VGA(a)
  77# define FIXUP_MEMADDR_VGA(a)
  78#endif /* CONFIG_VGA_HOSE */
  79
  80#define VGA_MAP_MEM(x,s)        ((unsigned long) ioremap(x, s))
  81
  82#endif
  83