GNU Linux-libre 4.19.211-gnu1
[releases.git] / Documentation / driver-api / frame-buffer.rst
1 Frame Buffer Library
2 ====================
3
4 The frame buffer drivers depend heavily on four data structures. These
5 structures are declared in include/linux/fb.h. They are fb_info,
6 fb_var_screeninfo, fb_fix_screeninfo and fb_monospecs. The last
7 three can be made available to and from userland.
8
9 fb_info defines the current state of a particular video card. Inside
10 fb_info, there exists a fb_ops structure which is a collection of
11 needed functions to make fbdev and fbcon work. fb_info is only visible
12 to the kernel.
13
14 fb_var_screeninfo is used to describe the features of a video card
15 that are user defined. With fb_var_screeninfo, things such as depth
16 and the resolution may be defined.
17
18 The next structure is fb_fix_screeninfo. This defines the properties
19 of a card that are created when a mode is set and can't be changed
20 otherwise. A good example of this is the start of the frame buffer
21 memory. This "locks" the address of the frame buffer memory, so that it
22 cannot be changed or moved.
23
24 The last structure is fb_monospecs. In the old API, there was little
25 importance for fb_monospecs. This allowed for forbidden things such as
26 setting a mode of 800x600 on a fix frequency monitor. With the new API,
27 fb_monospecs prevents such things, and if used correctly, can prevent a
28 monitor from being cooked. fb_monospecs will not be useful until
29 kernels 2.5.x.
30
31 Frame Buffer Memory
32 -------------------
33
34 .. kernel-doc:: drivers/video/fbdev/core/fbmem.c
35    :export:
36
37 Frame Buffer Colormap
38 ---------------------
39
40 .. kernel-doc:: drivers/video/fbdev/core/fbcmap.c
41    :export:
42
43 Frame Buffer Video Mode Database
44 --------------------------------
45
46 .. kernel-doc:: drivers/video/fbdev/core/modedb.c
47    :internal:
48
49 .. kernel-doc:: drivers/video/fbdev/core/modedb.c
50    :export:
51
52 Frame Buffer Macintosh Video Mode Database
53 ------------------------------------------
54
55 .. kernel-doc:: drivers/video/fbdev/macmodes.c
56    :export:
57
58 Frame Buffer Fonts
59 ------------------
60
61 Refer to the file lib/fonts/fonts.c for more information.
62