~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/video/uvesafb.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef _UVESAFB_H
  3 #define _UVESAFB_H
  4 
  5 #include <uapi/video/uvesafb.h>
  6 
  7 
  8 /* VBE CRTC Info Block */
  9 struct vbe_crtc_ib {
 10         u16 horiz_total;
 11         u16 horiz_start;
 12         u16 horiz_end;
 13         u16 vert_total;
 14         u16 vert_start;
 15         u16 vert_end;
 16         u8  flags;
 17         u32 pixel_clock;
 18         u16 refresh_rate;
 19         u8  reserved[40];
 20 } __attribute__ ((packed));
 21 
 22 #define VBE_MODE_VGACOMPAT      0x20
 23 #define VBE_MODE_COLOR          0x08
 24 #define VBE_MODE_SUPPORTEDHW    0x01
 25 #define VBE_MODE_GRAPHICS       0x10
 26 #define VBE_MODE_LFB            0x80
 27 
 28 #define VBE_MODE_MASK           (VBE_MODE_COLOR | VBE_MODE_SUPPORTEDHW | \
 29                                 VBE_MODE_GRAPHICS | VBE_MODE_LFB)
 30 
 31 /* VBE Mode Info Block */
 32 struct vbe_mode_ib {
 33         /* for all VBE revisions */
 34         u16 mode_attr;
 35         u8  winA_attr;
 36         u8  winB_attr;
 37         u16 win_granularity;
 38         u16 win_size;
 39         u16 winA_seg;
 40         u16 winB_seg;
 41         u32 win_func_ptr;
 42         u16 bytes_per_scan_line;
 43 
 44         /* for VBE 1.2+ */
 45         u16 x_res;
 46         u16 y_res;
 47         u8  x_char_size;
 48         u8  y_char_size;
 49         u8  planes;
 50         u8  bits_per_pixel;
 51         u8  banks;
 52         u8  memory_model;
 53         u8  bank_size;
 54         u8  image_pages;
 55         u8  reserved1;
 56 
 57         /* Direct color fields for direct/6 and YUV/7 memory models. */
 58         /* Offsets are bit positions of lsb in the mask. */
 59         u8  red_len;
 60         u8  red_off;
 61         u8  green_len;
 62         u8  green_off;
 63         u8  blue_len;
 64         u8  blue_off;
 65         u8  rsvd_len;
 66         u8  rsvd_off;
 67         u8  direct_color_info;  /* direct color mode attributes */
 68 
 69         /* for VBE 2.0+ */
 70         u32 phys_base_ptr;
 71         u8  reserved2[6];
 72 
 73         /* for VBE 3.0+ */
 74         u16 lin_bytes_per_scan_line;
 75         u8  bnk_image_pages;
 76         u8  lin_image_pages;
 77         u8  lin_red_len;
 78         u8  lin_red_off;
 79         u8  lin_green_len;
 80         u8  lin_green_off;
 81         u8  lin_blue_len;
 82         u8  lin_blue_off;
 83         u8  lin_rsvd_len;
 84         u8  lin_rsvd_off;
 85         u32 max_pixel_clock;
 86         u16 mode_id;
 87         u8  depth;
 88 } __attribute__ ((packed));
 89 
 90 #define UVESAFB_DEFAULT_MODE "640x480-16"
 91 
 92 /* How long to wait for a reply from userspace [ms] */
 93 #define UVESAFB_TIMEOUT 5000
 94 
 95 /* Max number of concurrent tasks */
 96 #define UVESAFB_TASKS_MAX 16
 97 
 98 #define dac_reg (0x3c8)
 99 #define dac_val (0x3c9)
100 
101 struct uvesafb_pal_entry {
102         u_char blue, green, red, pad;
103 } __attribute__ ((packed));
104 
105 struct uvesafb_ktask {
106         struct uvesafb_task t;
107         void *buf;
108         struct completion *done;
109         u32 ack;
110 };
111 
112 #define UVESAFB_EXACT_RES       1
113 #define UVESAFB_EXACT_DEPTH     2
114 
115 struct uvesafb_par {
116         struct vbe_ib vbe_ib;           /* VBE Info Block */
117         struct vbe_mode_ib *vbe_modes;  /* list of supported VBE modes */
118         int vbe_modes_cnt;
119 
120         u8 nocrtc;
121         u8 ypan;                        /* 0 - nothing, 1 - ypan, 2 - ywrap */
122         u8 pmi_setpal;                  /* PMI for palette changes */
123         u16 *pmi_base;                  /* protected mode interface location */
124         void *pmi_start;
125         void *pmi_pal;
126         u8 *vbe_state_orig;             /*
127                                          * original hardware state, before the
128                                          * driver was loaded
129                                          */
130         u8 *vbe_state_saved;            /* state saved by fb_save_state */
131         int vbe_state_size;
132         atomic_t ref_count;
133 
134         int mode_idx;
135         struct vbe_crtc_ib crtc;
136         int mtrr_handle;
137 };
138 
139 #endif /* _UVESAFB_H */
140 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php