1*ab42b818SMauro Carvalho Chehab============================= 2*ab42b818SMauro Carvalho ChehabFrame Buffer device internals 3*ab42b818SMauro Carvalho Chehab============================= 4*ab42b818SMauro Carvalho Chehab 5*ab42b818SMauro Carvalho ChehabThis is a first start for some documentation about frame buffer device 6*ab42b818SMauro Carvalho Chehabinternals. 7*ab42b818SMauro Carvalho Chehab 8*ab42b818SMauro Carvalho ChehabAuthors: 9*ab42b818SMauro Carvalho Chehab 10*ab42b818SMauro Carvalho Chehab- Geert Uytterhoeven <geert@linux-m68k.org>, 21 July 1998 11*ab42b818SMauro Carvalho Chehab- James Simmons <jsimmons@user.sf.net>, Nov 26 2002 12*ab42b818SMauro Carvalho Chehab 13*ab42b818SMauro Carvalho Chehab-------------------------------------------------------------------------------- 14*ab42b818SMauro Carvalho Chehab 15*ab42b818SMauro Carvalho ChehabStructures used by the frame buffer device API 16*ab42b818SMauro Carvalho Chehab============================================== 17*ab42b818SMauro Carvalho Chehab 18*ab42b818SMauro Carvalho ChehabThe following structures play a role in the game of frame buffer devices. They 19*ab42b818SMauro Carvalho Chehabare defined in <linux/fb.h>. 20*ab42b818SMauro Carvalho Chehab 21*ab42b818SMauro Carvalho Chehab1. Outside the kernel (user space) 22*ab42b818SMauro Carvalho Chehab 23*ab42b818SMauro Carvalho Chehab - struct fb_fix_screeninfo 24*ab42b818SMauro Carvalho Chehab 25*ab42b818SMauro Carvalho Chehab Device independent unchangeable information about a frame buffer device and 26*ab42b818SMauro Carvalho Chehab a specific video mode. This can be obtained using the FBIOGET_FSCREENINFO 27*ab42b818SMauro Carvalho Chehab ioctl. 28*ab42b818SMauro Carvalho Chehab 29*ab42b818SMauro Carvalho Chehab - struct fb_var_screeninfo 30*ab42b818SMauro Carvalho Chehab 31*ab42b818SMauro Carvalho Chehab Device independent changeable information about a frame buffer device and a 32*ab42b818SMauro Carvalho Chehab specific video mode. This can be obtained using the FBIOGET_VSCREENINFO 33*ab42b818SMauro Carvalho Chehab ioctl, and updated with the FBIOPUT_VSCREENINFO ioctl. If you want to pan 34*ab42b818SMauro Carvalho Chehab the screen only, you can use the FBIOPAN_DISPLAY ioctl. 35*ab42b818SMauro Carvalho Chehab 36*ab42b818SMauro Carvalho Chehab - struct fb_cmap 37*ab42b818SMauro Carvalho Chehab 38*ab42b818SMauro Carvalho Chehab Device independent colormap information. You can get and set the colormap 39*ab42b818SMauro Carvalho Chehab using the FBIOGETCMAP and FBIOPUTCMAP ioctls. 40*ab42b818SMauro Carvalho Chehab 41*ab42b818SMauro Carvalho Chehab 42*ab42b818SMauro Carvalho Chehab2. Inside the kernel 43*ab42b818SMauro Carvalho Chehab 44*ab42b818SMauro Carvalho Chehab - struct fb_info 45*ab42b818SMauro Carvalho Chehab 46*ab42b818SMauro Carvalho Chehab Generic information, API and low level information about a specific frame 47*ab42b818SMauro Carvalho Chehab buffer device instance (slot number, board address, ...). 48*ab42b818SMauro Carvalho Chehab 49*ab42b818SMauro Carvalho Chehab - struct `par` 50*ab42b818SMauro Carvalho Chehab 51*ab42b818SMauro Carvalho Chehab Device dependent information that uniquely defines the video mode for this 52*ab42b818SMauro Carvalho Chehab particular piece of hardware. 53*ab42b818SMauro Carvalho Chehab 54*ab42b818SMauro Carvalho Chehab 55*ab42b818SMauro Carvalho ChehabVisuals used by the frame buffer device API 56*ab42b818SMauro Carvalho Chehab=========================================== 57*ab42b818SMauro Carvalho Chehab 58*ab42b818SMauro Carvalho Chehab 59*ab42b818SMauro Carvalho ChehabMonochrome (FB_VISUAL_MONO01 and FB_VISUAL_MONO10) 60*ab42b818SMauro Carvalho Chehab-------------------------------------------------- 61*ab42b818SMauro Carvalho ChehabEach pixel is either black or white. 62*ab42b818SMauro Carvalho Chehab 63*ab42b818SMauro Carvalho Chehab 64*ab42b818SMauro Carvalho ChehabPseudo color (FB_VISUAL_PSEUDOCOLOR and FB_VISUAL_STATIC_PSEUDOCOLOR) 65*ab42b818SMauro Carvalho Chehab--------------------------------------------------------------------- 66*ab42b818SMauro Carvalho ChehabThe whole pixel value is fed through a programmable lookup table that has one 67*ab42b818SMauro Carvalho Chehabcolor (including red, green, and blue intensities) for each possible pixel 68*ab42b818SMauro Carvalho Chehabvalue, and that color is displayed. 69*ab42b818SMauro Carvalho Chehab 70*ab42b818SMauro Carvalho Chehab 71*ab42b818SMauro Carvalho ChehabTrue color (FB_VISUAL_TRUECOLOR) 72*ab42b818SMauro Carvalho Chehab-------------------------------- 73*ab42b818SMauro Carvalho ChehabThe pixel value is broken up into red, green, and blue fields. 74*ab42b818SMauro Carvalho Chehab 75*ab42b818SMauro Carvalho Chehab 76*ab42b818SMauro Carvalho ChehabDirect color (FB_VISUAL_DIRECTCOLOR) 77*ab42b818SMauro Carvalho Chehab------------------------------------ 78*ab42b818SMauro Carvalho ChehabThe pixel value is broken up into red, green, and blue fields, each of which 79*ab42b818SMauro Carvalho Chehabare looked up in separate red, green, and blue lookup tables. 80*ab42b818SMauro Carvalho Chehab 81*ab42b818SMauro Carvalho Chehab 82*ab42b818SMauro Carvalho ChehabGrayscale displays 83*ab42b818SMauro Carvalho Chehab------------------ 84*ab42b818SMauro Carvalho ChehabGrayscale and static grayscale are special variants of pseudo color and static 85*ab42b818SMauro Carvalho Chehabpseudo color, where the red, green and blue components are always equal to 86*ab42b818SMauro Carvalho Chehabeach other. 87