1 ================================= 2 modedb default video mode support 3 ================================= 4 5 6 Currently all frame buffer device drivers have 7 which is a mess and a waste of resources. The 8 9 - one routine to probe for video modes, whic 10 devices 11 - one generic video mode database with a fai 12 (taken from XFree86) 13 - the possibility to supply your own mode da 14 needs non-standard modes, like amifb and M 15 use macmodes.c) 16 17 When a frame buffer device receives a video= o 18 consider that to be a video mode option. If no 19 in a video= option, fbmem considers that to be 20 21 Valid mode specifiers (mode_option argument):: 22 23 <xres>x<yres>[M][R][-<bpp>][@<refresh>][i][ 24 <name>[-<bpp>][@<refresh>] 25 26 with <xres>, <yres>, <bpp> and <refresh> decim 27 Things between square brackets are optional. 28 29 Valid names are:: 30 31 - NSTC: 480i output, with the CCIR System-M 32 - NTSC-J: 480i output, with the CCIR System- 33 encoding, and a black level equal to the b 34 - PAL: 576i output, with the CCIR System-B T 35 - PAL-M: 480i output, with the CCIR System-M 36 37 If 'M' is specified in the mode_option argumen 38 <bpp> and <refresh>, if specified) the timings 39 VESA(TM) Coordinated Video Timings instead of 40 If 'R' is specified, do a 'reduced blanking' c 41 If 'i' is specified, calculate for an interlac 42 specified, add margins to the calculation (1.8 43 pixels and 1.8% of yres). 44 45 Sample usage: 1024x768M@60m - CVT timin 46 47 DRM drivers also add options to enable or disa 48 49 'e' will force the display to be enabled, i.e. 50 if a display is connected. 'D' will force the 51 digital output. This is useful for outputs tha 52 signals (e.g. HDMI and DVI-I). For other outpu 53 is specified the output is disabled. 54 55 You can additionally specify which output the 56 To force the VGA output to be enabled and driv 57 58 video=VGA-1:1280x1024@60me 59 60 Specifying the option multiple times for diffe 61 62 video=LVDS-1:d video=HDMI-1:D 63 64 Options can also be passed after the mode, usi 65 66 Sample usage: 720x480,rotate=180 - 720x 67 68 Valid options are:: 69 70 - margin_top, margin_bottom, margin_left, ma 71 Number of pixels in the margins, typically 72 - reflect_x (boolean): Perform an axial symm 73 - reflect_y (boolean): Perform an axial symm 74 - rotate (integer): Rotate the initial frame 75 degrees. Valid values are 0, 90, 180 and 2 76 - tv_mode: Analog TV mode. One of "NTSC", "N 77 "PAL-M", "PAL-N", or "SECAM". 78 - panel_orientation, one of "normal", "upsid 79 "right_side_up". For KMS drivers only, thi 80 property on the kms connector as hint for 81 82 83 ---------------------------------------------- 84 85 What is the VESA(TM) Coordinated Video Timings 86 ============================================== 87 88 From the VESA(TM) Website: 89 90 "The purpose of CVT is to provide a metho 91 and coordinated set of standard formats, 92 timing specifications for computer displ 93 employing CRTs, and those using other di 94 intention of CVT is to give both source 95 common set of tools to enable new timing 96 consistent manner that ensures greater c 97 98 This is the third standard approved by VESA(TM 99 first was the Discrete Video Timings (DVT) whi 100 pre-defined modes approved by VESA(TM). The s 101 Formula (GTF) which is an algorithm to calcula 102 pixelclock, the horizontal sync frequency, or 103 104 The GTF is limited by the fact that it is desi 105 It artificially increases the pixelclock becau 106 requirement. This is inappropriate for digital 107 data rate which requires that it conserves the 108 Also, GTF does not take into account the aspec 109 110 The CVT addresses these limitations. If used 111 is a derivation of GTF with a few modification 112 displays, the "reduced blanking" calculation c 113 114 From the framebuffer subsystem perspective, ne 115 to the global mode database whenever a new mod 116 manufacturers. Specifying for CVT will work fo 117 new CRT displays and probably with most flatpa 118 calculation is specified. (The CVT compatibil 119 determined from its EDID. The version 1.3 of t 120 blocks where additional timing information is 121 is no support yet in the layer to parse this a 122 123 CVT also introduced a new naming convention (s 124 125 <pix>M<a>[-R] 126 127 where: pix = total amount of pixels in MB 128 M = always present 129 a = aspect ratio (3 - 4:3; 4 - 5: 130 -R = reduced blanking 131 132 example: .48M3-R - 800x600 with red 133 134 Note: VESA(TM) has restrictions on what is a s 135 136 - aspect ratio can only be one of the ab 137 - acceptable refresh rates are 50, 60, 7 138 - if reduced blanking, the refresh rate 139 140 If one of the above are not satisfied, the ker 141 timings will still be calculated. 142 143 ---------------------------------------------- 144 145 To find a suitable video mode, you just call:: 146 147 int __init fb_find_mode(struct fb_var_screen 148 struct fb_info *info 149 const struct fb_vide 150 const struct fb_vide 151 unsigned int default 152 153 with db/dbsize your non-standard video mode da 154 standard video mode database. 155 156 fb_find_mode() first tries the specified video 157 e.g. there can be multiple 640x480 modes, each 158 fails, the default mode is tried. If that fail 159 160 To specify a video mode at bootup, use the fol 161 162 video=<driver>:<xres>x<yres>[-<bpp>][@refr 163 164 where <driver> is a name from the table below. 165 found in drivers/video/fbdev/core/modedb.c. C 166 There may be more modes:: 167 168 Drivers that support modedb boot options 169 Boot Name Cards Supported 170 171 amifb - Amiga chipset frame buffer 172 aty128fb - ATI Rage128 / Pro frame buff 173 atyfb - ATI Mach64 frame buffer 174 pm2fb - Permedia 2/2V frame buffer 175 pm3fb - Permedia 3 frame buffer 176 sstfb - Voodoo 1/2 (SST1) chipset fr 177 tdfxfb - 3D Fx frame buffer 178 tridentfb - Trident (Cyber)blade chipset 179 vt8623fb - VIA 8623 frame buffer 180 181 BTW, only a few fb drivers use this at the mom 182 (feel free to send patches). The DRM drivers a
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.