€•ókŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ/translations/zh_CN/fb/modedb”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/zh_TW/fb/modedb”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/it_IT/fb/modedb”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ja_JP/fb/modedb”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ko_KR/fb/modedb”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/sp_SP/fb/modedb”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ!modedb default video mode support”h]”hŒ!modedb default video mode support”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒ7/var/lib/git/docbuild/linux/Documentation/fb/modedb.rst”h KubhŒ paragraph”“”)”}”(hŒ›Currently all frame buffer device drivers have their own video mode databases, which is a mess and a waste of resources. The main idea of modedb is to have”h]”hŒ›Currently all frame buffer device drivers have their own video mode databases, which is a mess and a waste of resources. The main idea of modedb is to have”…””}”(hh¹hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubhŒ block_quote”“”)”}”(hXf- one routine to probe for video modes, which can be used by all frame buffer devices - one generic video mode database with a fair amount of standard videomodes (taken from XFree86) - the possibility to supply your own mode database for graphics hardware that needs non-standard modes, like amifb and Mac frame buffer drivers (which use macmodes.c) ”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒSone routine to probe for video modes, which can be used by all frame buffer devices”h]”h¸)”}”(hŒSone routine to probe for video modes, which can be used by all frame buffer devices”h]”hŒSone routine to probe for video modes, which can be used by all frame buffer devices”…””}”(hhØhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hhÔubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhhÏubhÓ)”}”(hŒ^one generic video mode database with a fair amount of standard videomodes (taken from XFree86)”h]”h¸)”}”(hŒ^one generic video mode database with a fair amount of standard videomodes (taken from XFree86)”h]”hŒ^one generic video mode database with a fair amount of standard videomodes (taken from XFree86)”…””}”(hhðhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hhìubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhhÏubhÓ)”}”(hŒ¥the possibility to supply your own mode database for graphics hardware that needs non-standard modes, like amifb and Mac frame buffer drivers (which use macmodes.c) ”h]”h¸)”}”(hŒ¤the possibility to supply your own mode database for graphics hardware that needs non-standard modes, like amifb and Mac frame buffer drivers (which use macmodes.c)”h]”hŒ¤the possibility to supply your own mode database for graphics hardware that needs non-standard modes, like amifb and Mac frame buffer drivers (which use macmodes.c)”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhhÏubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1hÍhŸh¶h K hhÉubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K hh£hžhubh¸)”}”(hŒéWhen a frame buffer device receives a video= option it doesn't know, it should consider that to be a video mode option. If no frame buffer device is specified in a video= option, fbmem considers that to be a global video mode option.”h]”hŒëWhen a frame buffer device receives a video= option it doesn’t know, it should consider that to be a video mode option. If no frame buffer device is specified in a video= option, fbmem considers that to be a global video mode option.”…””}”(hj*hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hŒ.Valid mode specifiers (mode_option argument)::”h]”hŒ-Valid mode specifiers (mode_option argument):”…””}”(hj8hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubhŒ literal_block”“”)”}”(hŒMx[M][R][-][@][i][m][eDd] [-][@]”h]”hŒMx[M][R][-][@][i][m][eDd] [-][@]”…””}”hjHsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jFhŸh¶h Khh£hžhubh¸)”}”(hŒzwith , , and decimal numbers and a string. Things between square brackets are optional.”h]”hŒzwith , , and decimal numbers and a string. Things between square brackets are optional.”…””}”(hjXhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hŒValid names are::”h]”hŒValid names are:”…””}”(hjfhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubjG)”}”(hXb- NSTC: 480i output, with the CCIR System-M TV mode and NTSC color encoding - NTSC-J: 480i output, with the CCIR System-M TV mode, the NTSC color encoding, and a black level equal to the blanking level. - PAL: 576i output, with the CCIR System-B TV mode and PAL color encoding - PAL-M: 480i output, with the CCIR System-M TV mode and PAL color encoding”h]”hXb- NSTC: 480i output, with the CCIR System-M TV mode and NTSC color encoding - NTSC-J: 480i output, with the CCIR System-M TV mode, the NTSC color encoding, and a black level equal to the blanking level. - PAL: 576i output, with the CCIR System-B TV mode and PAL color encoding - PAL-M: 480i output, with the CCIR System-M TV mode and PAL color encoding”…””}”hjtsbah}”(h]”h ]”h"]”h$]”h&]”jVjWuh1jFhŸh¶h Khh£hžhubh¸)”}”(hXÙIf 'M' is specified in the mode_option argument (after and before and , if specified) the timings will be calculated using VESA(TM) Coordinated Video Timings instead of looking up the mode from a table. If 'R' is specified, do a 'reduced blanking' calculation for digital displays. If 'i' is specified, calculate for an interlaced mode. And if 'm' is specified, add margins to the calculation (1.8% of xres rounded down to 8 pixels and 1.8% of yres).”h]”hXíIf ‘M’ is specified in the mode_option argument (after and before and , if specified) the timings will be calculated using VESA(TM) Coordinated Video Timings instead of looking up the mode from a table. If ‘R’ is specified, do a ‘reduced blanking’ calculation for digital displays. If ‘i’ is specified, calculate for an interlaced mode. And if ‘m’ is specified, add margins to the calculation (1.8% of xres rounded down to 8 pixels and 1.8% of yres).”…””}”(hj‚hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K%hh£hžhubhÈ)”}”(hŒ6Sample usage: 1024x768M@60m - CVT timing with margins ”h]”h¸)”}”(hŒ5Sample usage: 1024x768M@60m - CVT timing with margins”h]”(hŒSample usage: ”…””}”(hj”hžhhŸNh NubhŒ reference”“”)”}”(hŒ 1024x768M@60m”h]”hŒ 1024x768M@60m”…””}”(hjžhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:1024x768M@60m”uh1jœhj”ubhŒ - CVT timing with margins”…””}”(hj”hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K-hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K-hh£hžhubh¸)”}”(hŒ:DRM drivers also add options to enable or disable outputs:”h]”hŒ:DRM drivers also add options to enable or disable outputs:”…””}”(hj¾hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K/hh£hžhubh¸)”}”(hXX'e' will force the display to be enabled, i.e. it will override the detection if a display is connected. 'D' will force the display to be enabled and use digital output. This is useful for outputs that have both analog and digital signals (e.g. HDMI and DVI-I). For other outputs it behaves like 'e'. If 'd' is specified the output is disabled.”h]”hXh‘e’ will force the display to be enabled, i.e. it will override the detection if a display is connected. ‘D’ will force the display to be enabled and use digital output. This is useful for outputs that have both analog and digital signals (e.g. HDMI and DVI-I). For other outputs it behaves like ‘e’. If ‘d’ is specified the output is disabled.”…””}”(hjÌhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K1hh£hžhubh¸)”}”(hŒ‡You can additionally specify which output the options matches to. To force the VGA output to be enabled and drive a specific mode say::”h]”hŒ†You can additionally specify which output the options matches to. To force the VGA output to be enabled and drive a specific mode say:”…””}”(hjÚhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K7hh£hžhubjG)”}”(hŒvideo=VGA-1:1280x1024@60me”h]”hŒvideo=VGA-1:1280x1024@60me”…””}”hjèsbah}”(h]”h ]”h"]”h$]”h&]”jVjWuh1jFhŸh¶h K:hh£hžhubh¸)”}”(hŒLSpecifying the option multiple times for different ports is possible, e.g.::”h]”hŒKSpecifying the option multiple times for different ports is possible, e.g.:”…””}”(hjöhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hŒEOptions can also be passed after the mode, using commas as separator.”h]”hŒEOptions can also be passed after the mode, using commas as separator.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K@hh£hžhubhÈ)”}”(hŒHSample usage: 720x480,rotate=180 - 720x480 mode, rotated by 180 degrees ”h]”h¸)”}”(hŒGSample usage: 720x480,rotate=180 - 720x480 mode, rotated by 180 degrees”h]”hŒGSample usage: 720x480,rotate=180 - 720x480 mode, rotated by 180 degrees”…””}”(hj$hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KBhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h KBhh£hžhubh¸)”}”(hŒValid options are::”h]”hŒValid options are:”…””}”(hj8hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KDhh£hžhubjG)”}”(hX¢- margin_top, margin_bottom, margin_left, margin_right (integer): Number of pixels in the margins, typically to deal with overscan on TVs - reflect_x (boolean): Perform an axial symmetry on the X axis - reflect_y (boolean): Perform an axial symmetry on the Y axis - rotate (integer): Rotate the initial framebuffer by x degrees. Valid values are 0, 90, 180 and 270. - tv_mode: Analog TV mode. One of "NTSC", "NTSC-443", "NTSC-J", "PAL", "PAL-M", "PAL-N", or "SECAM". - panel_orientation, one of "normal", "upside_down", "left_side_up", or "right_side_up". For KMS drivers only, this sets the "panel orientation" property on the kms connector as hint for kms users.”h]”hX¢- margin_top, margin_bottom, margin_left, margin_right (integer): Number of pixels in the margins, typically to deal with overscan on TVs - reflect_x (boolean): Perform an axial symmetry on the X axis - reflect_y (boolean): Perform an axial symmetry on the Y axis - rotate (integer): Rotate the initial framebuffer by x degrees. Valid values are 0, 90, 180 and 270. - tv_mode: Analog TV mode. One of "NTSC", "NTSC-443", "NTSC-J", "PAL", "PAL-M", "PAL-N", or "SECAM". - panel_orientation, one of "normal", "upside_down", "left_side_up", or "right_side_up". For KMS drivers only, this sets the "panel orientation" property on the kms connector as hint for kms users.”…””}”hjFsbah}”(h]”h ]”h"]”h$]”h&]”jVjWuh1jFhŸh¶h KFhh£hžhubhŒ transition”“”)”}”(hŒM-----------------------------------------------------------------------------”h]”h}”(h]”h ]”h"]”h$]”h&]”uh1jThŸh¶h KShh£hžhubh¢)”}”(hhh]”(h§)”}”(hŒ5What is the VESA(TM) Coordinated Video Timings (CVT)?”h]”hŒ5What is the VESA(TM) Coordinated Video Timings (CVT)?”…””}”(hjchžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj`hžhhŸh¶h KVubh¸)”}”(hŒFrom the VESA(TM) Website:”h]”hŒFrom the VESA(TM) Website:”…””}”(hjqhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KXhj`hžhubhÈ)”}”(hXË"The purpose of CVT is to provide a method for generating a consistent and coordinated set of standard formats, display refresh rates, and timing specifications for computer display products, both those employing CRTs, and those using other display technologies. The intention of CVT is to give both source and display manufacturers a common set of tools to enable new timings to be developed in a consistent manner that ensures greater compatibility." ”h]”hŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hXÅ"The purpose of CVT is to provide a method for generating a consistent and coordinated set of standard formats, display refresh rates, and timing specifications for computer display products, both those employing CRTs, and those using other display technologies. The intention of CVT is to give both source and display manufacturers a common set of tools to enable new timings to be developed in a consistent manner that ensures greater compatibility." ”h]”(hŒterm”“”)”}”(hŒF"The purpose of CVT is to provide a method for generating a consistent”h]”hŒH“The purpose of CVT is to provide a method for generating a consistent”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽhŸh¶h K`hjŠubhŒ definition”“”)”}”(hhh]”h¸)”}”(hX}and coordinated set of standard formats, display refresh rates, and timing specifications for computer display products, both those employing CRTs, and those using other display technologies. The intention of CVT is to give both source and display manufacturers a common set of tools to enable new timings to be developed in a consistent manner that ensures greater compatibility."”h]”hXand coordinated set of standard formats, display refresh rates, and timing specifications for computer display products, both those employing CRTs, and those using other display technologies. The intention of CVT is to give both source and display manufacturers a common set of tools to enable new timings to be developed in a consistent manner that ensures greater compatibility.—…””}”(hj£hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K[hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆhŸh¶h K`hj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jƒhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h KZhj`hžhubh¸)”}”(hXrThis is the third standard approved by VESA(TM) concerning video timings. The first was the Discrete Video Timings (DVT) which is a collection of pre-defined modes approved by VESA(TM). The second is the Generalized Timing Formula (GTF) which is an algorithm to calculate the timings, given the pixelclock, the horizontal sync frequency, or the vertical refresh rate.”h]”hXrThis is the third standard approved by VESA(TM) concerning video timings. The first was the Discrete Video Timings (DVT) which is a collection of pre-defined modes approved by VESA(TM). The second is the Generalized Timing Formula (GTF) which is an algorithm to calculate the timings, given the pixelclock, the horizontal sync frequency, or the vertical refresh rate.”…””}”(hjÉhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kbhj`hžhubh¸)”}”(hXuThe GTF is limited by the fact that it is designed mainly for CRT displays. It artificially increases the pixelclock because of its high blanking requirement. This is inappropriate for digital display interface with its high data rate which requires that it conserves the pixelclock as much as possible. Also, GTF does not take into account the aspect ratio of the display.”h]”hXuThe GTF is limited by the fact that it is designed mainly for CRT displays. It artificially increases the pixelclock because of its high blanking requirement. This is inappropriate for digital display interface with its high data rate which requires that it conserves the pixelclock as much as possible. Also, GTF does not take into account the aspect ratio of the display.”…””}”(hj×hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khhj`hžhubh¸)”}”(hŒËThe CVT addresses these limitations. If used with CRT's, the formula used is a derivation of GTF with a few modifications. If used with digital displays, the "reduced blanking" calculation can be used.”h]”hŒÑThe CVT addresses these limitations. If used with CRT’s, the formula used is a derivation of GTF with a few modifications. If used with digital displays, the “reduced blanking†calculation can be used.”…””}”(hjåhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Knhj`hžhubh¸)”}”(hXGFrom the framebuffer subsystem perspective, new formats need not be added to the global mode database whenever a new mode is released by display manufacturers. Specifying for CVT will work for most, if not all, relatively new CRT displays and probably with most flatpanels, if 'reduced blanking' calculation is specified. (The CVT compatibility of the display can be determined from its EDID. The version 1.3 of the EDID has extra 128-byte blocks where additional timing information is placed. As of this time, there is no support yet in the layer to parse this additional blocks.)”h]”hXKFrom the framebuffer subsystem perspective, new formats need not be added to the global mode database whenever a new mode is released by display manufacturers. Specifying for CVT will work for most, if not all, relatively new CRT displays and probably with most flatpanels, if ‘reduced blanking’ calculation is specified. (The CVT compatibility of the display can be determined from its EDID. The version 1.3 of the EDID has extra 128-byte blocks where additional timing information is placed. As of this time, there is no support yet in the layer to parse this additional blocks.)”…””}”(hjóhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Krhj`hžhubh¸)”}”(hŒPCVT also introduced a new naming convention (should be seen from dmesg output)::”h]”hŒOCVT also introduced a new naming convention (should be seen from dmesg output):”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K{hj`hžhubjG)”}”(hXM[-R] where: pix = total amount of pixels in MB (xres x yres) M = always present a = aspect ratio (3 - 4:3; 4 - 5:4; 9 - 15:9, 16:9; A - 16:10) -R = reduced blanking example: .48M3-R - 800x600 with reduced blanking”h]”hXM[-R] where: pix = total amount of pixels in MB (xres x yres) M = always present a = aspect ratio (3 - 4:3; 4 - 5:4; 9 - 15:9, 16:9; A - 16:10) -R = reduced blanking example: .48M3-R - 800x600 with reduced blanking”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jVjWuh1jFhŸh¶h K}hj`hžhubh¸)”}”(hŒANote: VESA(TM) has restrictions on what is a standard CVT timing:”h]”hŒANote: VESA(TM) has restrictions on what is a standard CVT timing:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K†hj`hžhubhÈ)”}”(hŒ£- aspect ratio can only be one of the above values - acceptable refresh rates are 50, 60, 70 or 85 Hz only - if reduced blanking, the refresh rate must be at 60Hz ”h]”hÎ)”}”(hhh]”(hÓ)”}”(hŒ0aspect ratio can only be one of the above values”h]”h¸)”}”(hj4h]”hŒ0aspect ratio can only be one of the above values”…””}”(hj6hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kˆhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj/ubhÓ)”}”(hŒ5acceptable refresh rates are 50, 60, 70 or 85 Hz only”h]”h¸)”}”(hjKh]”hŒ5acceptable refresh rates are 50, 60, 70 or 85 Hz only”…””}”(hjMhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K‰hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj/ubhÓ)”}”(hŒ6if reduced blanking, the refresh rate must be at 60Hz ”h]”h¸)”}”(hŒ5if reduced blanking, the refresh rate must be at 60Hz”h]”hŒ5if reduced blanking, the refresh rate must be at 60Hz”…””}”(hjdhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KŠhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj/ubeh}”(h]”h ]”h"]”h$]”h&]”j"j#uh1hÍhŸh¶h Kˆhj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h Kˆhj`hžhubh¸)”}”(hŒpIf one of the above are not satisfied, the kernel will print a warning but the timings will still be calculated.”h]”hŒpIf one of the above are not satisfied, the kernel will print a warning but the timings will still be calculated.”…””}”(hj„hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KŒhj`hžhubjU)”}”(hŒM-----------------------------------------------------------------------------”h]”h}”(h]”h ]”h"]”h$]”h&]”uh1jThŸh¶h Khj`hžhubh¸)”}”(hŒ.To find a suitable video mode, you just call::”h]”hŒ-To find a suitable video mode, you just call:”…””}”(hjœhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K‘hj`hžhubjG)”}”(hX<int __init fb_find_mode(struct fb_var_screeninfo *var, struct fb_info *info, const char *mode_option, const struct fb_videomode *db, unsigned int dbsize, const struct fb_videomode *default_mode, unsigned int default_bpp)”h]”hX<int __init fb_find_mode(struct fb_var_screeninfo *var, struct fb_info *info, const char *mode_option, const struct fb_videomode *db, unsigned int dbsize, const struct fb_videomode *default_mode, unsigned int default_bpp)”…””}”hjªsbah}”(h]”h ]”h"]”h$]”h&]”jVjWuh1jFhŸh¶h K“hj`hžhubh¸)”}”(hŒfwith db/dbsize your non-standard video mode database, or NULL to use the standard video mode database.”h]”hŒfwith db/dbsize your non-standard video mode database, or NULL to use the standard video mode database.”…””}”(hj¸hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K™hj`hžhubh¸)”}”(hŒâfb_find_mode() first tries the specified video mode (or any mode that matches, e.g. there can be multiple 640x480 modes, each of them is tried). If that fails, the default mode is tried. If that fails, it walks over all modes.”h]”hŒâfb_find_mode() first tries the specified video mode (or any mode that matches, e.g. there can be multiple 640x480 modes, each of them is tried). If that fails, the default mode is tried. If that fails, it walks over all modes.”…””}”(hjÆhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kœhj`hžhubh¸)”}”(hŒCTo specify a video mode at bootup, use the following boot options::”h]”hŒBTo specify a video mode at bootup, use the following boot options:”…””}”(hjÔhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hj`hžhubjG)”}”(hŒ.video=:x[-][@refresh]”h]”hŒ.video=:x[-][@refresh]”…””}”hjâsbah}”(h]”h ]”h"]”h$]”h&]”jVjWuh1jFhŸh¶h K¢hj`hžhubh¸)”}”(hŒ´where is a name from the table below. Valid default modes can be found in drivers/video/fbdev/core/modedb.c. Check your driver's documentation. There may be more modes::”h]”hŒµwhere is a name from the table below. Valid default modes can be found in drivers/video/fbdev/core/modedb.c. Check your driver’s documentation. There may be more modes:”…””}”(hjðhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K¤hj`hžhubjG)”}”(hXÄDrivers that support modedb boot options Boot Name Cards Supported amifb - Amiga chipset frame buffer aty128fb - ATI Rage128 / Pro frame buffer atyfb - ATI Mach64 frame buffer pm2fb - Permedia 2/2V frame buffer pm3fb - Permedia 3 frame buffer sstfb - Voodoo 1/2 (SST1) chipset frame buffer tdfxfb - 3D Fx frame buffer tridentfb - Trident (Cyber)blade chipset frame buffer vt8623fb - VIA 8623 frame buffer”h]”hXÄDrivers that support modedb boot options Boot Name Cards Supported amifb - Amiga chipset frame buffer aty128fb - ATI Rage128 / Pro frame buffer atyfb - ATI Mach64 frame buffer pm2fb - Permedia 2/2V frame buffer pm3fb - Permedia 3 frame buffer sstfb - Voodoo 1/2 (SST1) chipset frame buffer tdfxfb - 3D Fx frame buffer tridentfb - Trident (Cyber)blade chipset frame buffer vt8623fb - VIA 8623 frame buffer”…””}”hjþsbah}”(h]”h ]”h"]”h$]”h&]”jVjWuh1jFhŸh¶h K¨hj`hžhubh¸)”}”(hŒ‡BTW, only a few fb drivers use this at the moment. Others are to follow (feel free to send patches). The DRM drivers also support this.”h]”hŒ‡BTW, only a few fb drivers use this at the moment. Others are to follow (feel free to send patches). The DRM drivers also support this.”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kµhj`hžhubeh}”(h]”Œ1what-is-the-vesa-tm-coordinated-video-timings-cvt”ah ]”h"]”Œ5what is the vesa(tm) coordinated video timings (cvt)?”ah$]”h&]”uh1h¡hh£hžhhŸh¶h KVubeh}”(h]”Œ!modedb-default-video-mode-support”ah ]”h"]”Œ!modedb default video mode support”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jMŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j'j$jjuŒ nametypes”}”(j'‰j‰uh}”(j$h£jj`uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.