linux-old/include/video/sbusfb.h
<<
>>
Prefs
   1#include <linux/timer.h>
   2#include <asm/sbus.h>
   3#include <asm/oplib.h>
   4#include <asm/fbio.h>
   5
   6#include <video/fbcon.h>
   7
   8struct bt_regs {
   9        volatile unsigned int addr;           /* address register */
  10        volatile unsigned int color_map;      /* color map */
  11        volatile unsigned int control;        /* control register */
  12        volatile unsigned int cursor;         /* cursor map register */
  13};
  14
  15struct fb_info_creator {
  16        struct ffb_fbc *fbc;
  17        struct ffb_dac *dac;
  18        int xy_margin;
  19        int fifo_cache;
  20        u64 yx_margin;
  21        int fg_cache;
  22        int bg_cache;
  23        int dac_rev;
  24};
  25struct fb_info_cgsix {
  26        struct bt_regs *bt;
  27        struct cg6_fbc *fbc;
  28        struct cg6_thc *thc;
  29        struct cg6_tec *tec;
  30        volatile u32 *fhc;
  31};
  32struct fb_info_bwtwo {
  33        struct bw2_regs *regs;
  34};
  35struct fb_info_cgthree {
  36        struct cg3_regs *regs;
  37};
  38struct fb_info_tcx {
  39        struct bt_regs *bt;
  40        struct tcx_thc *thc;
  41        struct tcx_tec *tec;
  42        u32 *cplane;
  43};
  44struct fb_info_leo {
  45        struct leo_lx_krn *lx_krn;
  46        struct leo_lc_ss0_usr *lc_ss0_usr;
  47        struct leo_ld_ss0 *ld_ss0;
  48        struct leo_ld_ss1 *ld_ss1;
  49        struct leo_cursor *cursor;
  50        unsigned int extent;
  51};
  52struct fb_info_cgfourteen {
  53        struct cg14_regs *regs;
  54        struct cg14_cursor *cursor;
  55        struct cg14_clut *clut;
  56        int ramsize;
  57        int mode;
  58};
  59struct fb_info_p9100 {
  60        struct p9100_ctrl *ctrl;
  61        volatile u32 *fbmem;
  62};
  63
  64struct cg_cursor {
  65        char    enable;         /* cursor is enabled */
  66        char    mode;           /* cursor mode */
  67        struct  fbcurpos cpos;  /* position */
  68        struct  fbcurpos chot;  /* hot-spot */
  69        struct  fbcurpos size;  /* size of mask & image fields */
  70        struct  fbcurpos hwsize; /* hw max size */
  71        int     bits[2][128];   /* space for mask & image bits */
  72        char    color [6];      /* cursor colors */
  73        struct  timer_list timer; /* cursor timer */
  74        int     blink_rate;     /* cursor blink rate */
  75};
  76
  77struct sbus_mmap_map {
  78        unsigned long voff;
  79        unsigned long poff;
  80        unsigned long size;
  81};
  82
  83#define SBUS_MMAP_FBSIZE(n) (-n)
  84#define SBUS_MMAP_EMPTY 0x80000000
  85
  86struct fb_info_sbusfb {
  87        struct fb_info info;
  88        struct fb_fix_screeninfo fix;
  89        struct fb_var_screeninfo var;
  90        struct display disp;
  91        struct display_switch dispsw;
  92        struct fbtype type;
  93        struct sbus_dev *sbdp;
  94        spinlock_t lock;
  95        int prom_node, prom_parent;
  96        union {
  97                struct fb_info_creator ffb;
  98                struct fb_info_cgsix cg6;
  99                struct fb_info_bwtwo bw2;
 100                struct fb_info_cgthree cg3;
 101                struct fb_info_tcx tcx;
 102                struct fb_info_leo leo;
 103                struct fb_info_cgfourteen cg14;
 104                struct fb_info_p9100 p9100;
 105        } s;
 106        unsigned char *color_map;
 107        struct cg_cursor cursor;
 108        unsigned char open;
 109        unsigned char mmaped;
 110        unsigned char blanked;
 111        int x_margin;
 112        int y_margin;
 113        int vtconsole;
 114        int consolecnt;
 115        int graphmode;
 116        int emulations[4];
 117        struct sbus_mmap_map *mmap_map;
 118        unsigned long physbase;
 119        int iospace;
 120        /* Methods */
 121        void (*setup)(struct display *);
 122        void (*setcursor)(struct fb_info_sbusfb *);
 123        void (*setcurshape)(struct fb_info_sbusfb *);
 124        void (*setcursormap)(struct fb_info_sbusfb *, unsigned char *, unsigned char *, unsigned char *);
 125        void (*loadcmap)(struct fb_info_sbusfb *, struct display *, int, int);
 126        void (*blank)(struct fb_info_sbusfb *);
 127        void (*unblank)(struct fb_info_sbusfb *);
 128        void (*margins)(struct fb_info_sbusfb *, struct display *, int, int);
 129        void (*reset)(struct fb_info_sbusfb *);
 130        void (*fill)(struct fb_info_sbusfb *, struct display *, int, int, unsigned short *);
 131        void (*switch_from_graph)(struct fb_info_sbusfb *);
 132        void (*restore_palette)(struct fb_info_sbusfb *);
 133        int (*ioctl)(struct fb_info_sbusfb *, unsigned int, unsigned long);
 134};
 135
 136extern char *creatorfb_init(struct fb_info_sbusfb *);
 137extern char *cgsixfb_init(struct fb_info_sbusfb *);
 138extern char *cgthreefb_init(struct fb_info_sbusfb *);
 139extern char *tcxfb_init(struct fb_info_sbusfb *);
 140extern char *leofb_init(struct fb_info_sbusfb *);
 141extern char *bwtwofb_init(struct fb_info_sbusfb *);
 142extern char *cgfourteenfb_init(struct fb_info_sbusfb *);
 143extern char *p9100fb_init(struct fb_info_sbusfb *);
 144
 145#define sbusfbinfod(disp) ((struct fb_info_sbusfb *)(disp->fb_info))
 146#define sbusfbinfo(info) ((struct fb_info_sbusfb *)(info))
 147#define CM(i, j) [3*(i)+(j)]
 148
 149#define SBUSFBINIT_SIZECHANGE ((char *)-1)
 150
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.