Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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). |