Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | |
2 | ||
3 | modedb default video mode support | |
4 | ||
5 | ||
6 | Currently all frame buffer device drivers have their own video mode databases, | |
7 | which is a mess and a waste of resources. The main idea of modedb is to have | |
8 | ||
9 | - one routine to probe for video modes, which can be used by all frame buffer | |
10 | devices | |
11 | - one generic video mode database with a fair amount of standard videomodes | |
12 | (taken from XFree86) | |
13 | - the possibility to supply your own mode database for graphics hardware that | |
14 | needs non-standard modes, like amifb and Mac frame buffer drivers (which | |
15 | use macmodes.c) | |
16 | ||
17 | When a frame buffer device receives a video= option it doesn't know, it should | |
18 | consider that to be a video mode option. If no frame buffer device is specified | |
19 | in a video= option, fbmem considers that to be a global video mode option. | |
20 | ||
21 | Valid mode specifiers (mode_option argument): | |
22 | ||
23 | <xres>x<yres>[-<bpp>][@<refresh>] | |
24 | <name>[-<bpp>][@<refresh>] | |
25 | ||
26 | with <xres>, <yres>, <bpp> and <refresh> decimal numbers and <name> a string. | |
27 | Things between square brackets are optional. | |
28 | ||
29 | To find a suitable video mode, you just call | |
30 | ||
31 | int __init fb_find_mode(struct fb_var_screeninfo *var, | |
32 | struct fb_info *info, const char *mode_option, | |
33 | const struct fb_videomode *db, unsigned int dbsize, | |
34 | const struct fb_videomode *default_mode, | |
35 | unsigned int default_bpp) | |
36 | ||
37 | with db/dbsize your non-standard video mode database, or NULL to use the | |
38 | standard video mode database. | |
39 | ||
40 | fb_find_mode() first tries the specified video mode (or any mode that matches, | |
41 | e.g. there can be multiple 640x480 modes, each of them is tried). If that | |
42 | fails, the default mode is tried. If that fails, it walks over all modes. | |
43 | ||
44 | To specify a video mode at bootup, use the following boot options: | |
45 | video=<driver>:<xres>x<yres>[-<bpp>][@refresh] | |
46 | ||
47 | where <driver> is a name from the table below. Valid default modes can be | |
48 | found in linux/drivers/video/modedb.c. Check your driver's documentation. | |
49 | There may be more modes. | |
50 | ||
51 | Drivers that support modedb boot options | |
52 | Boot Name Cards Supported | |
53 | ||
54 | amifb - Amiga chipset frame buffer | |
55 | aty128fb - ATI Rage128 / Pro frame buffer | |
56 | atyfb - ATI Mach64 frame buffer | |
57 | tdfxfb - 3D Fx frame buffer | |
58 | tridentfb - Trident (Cyber)blade chipset frame buffer | |
59 | ||
60 | BTW, only a few drivers use this at the moment. Others are to follow | |
61 | (feel free to send patches). |