sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget4/translations/zh_CN/driver-api/media/v4l2-dv-timingsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/zh_TW/driver-api/media/v4l2-dv-timingsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/it_IT/driver-api/media/v4l2-dv-timingsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/ja_JP/driver-api/media/v4l2-dv-timingsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/ko_KR/driver-api/media/v4l2-dv-timingsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/sp_SP/driver-api/media/v4l2-dv-timingsmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhN/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings.rsthKubhsection)}(hhh](htitle)}(hV4L2 DV Timings functionsh]hV4L2 DV Timings functions}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single#v4l2_calc_timeperframe (C function)c.v4l2_calc_timeperframehNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hJstruct v4l2_fract v4l2_calc_timeperframe (const struct v4l2_dv_timings *t)h]hdesc_signature_line)}(hIstruct v4l2_fract v4l2_calc_timeperframe(const struct v4l2_dv_timings *t)h](hdesc_sig_keyword)}(hstructh]hstruct}(hhhhhNhNubah}(h]h ]kah"]h$]h&]uh1hhhhhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKubhdesc_sig_space)}(h h]h }(hhhhhNhNubah}(h]h ]wah"]h$]h&]uh1hhhhhhhhKubh)}(hhh]h desc_sig_name)}(h v4l2_fracth]h v4l2_fract}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j0 ASTIdentifier)}j+v4l2_calc_timeperframesbc.v4l2_calc_timeperframeasbuh1hhhhhhhhKubh)}(h h]h }(hj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhhhhhhhKubh desc_name)}(hv4l2_calc_timeperframeh]j)}(hj;h]hv4l2_calc_timeperframe}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jLhhhhhhhKubhdesc_parameterlist)}(h!(const struct v4l2_dv_timings *t)h]hdesc_parameter)}(hconst struct v4l2_dv_timings *th](h)}(hconsth]hconst}(hjshhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjoubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjoubh)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjoubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjoubh)}(hhh]j)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjmodnameN classnameNj/j2)}j5]j9c.v4l2_calc_timeperframeasbuh1hhjoubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjoubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjoubj)}(hth]ht}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjiubah}(h]h ]h"]h$]h&]hhuh1jghhhhhhhKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1hsphinx_line_type declaratorhhhhhhhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhhhKhhhhubh desc_content)}(hhh]h paragraph)}(hGhelper function to calculate timeperframe based v4l2_dv_timings fields.h]hGhelper function to calculate timeperframe based v4l2_dv_timings fields.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhhhhhhhKubeh}(h]h ](j)functioneh"]h$]h&]domainj)objtypej8desctypej8noindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(hX**Parameters** ``const struct v4l2_dv_timings *t`` Timings for the video mode. **Description** Calculates the expected timeperframe using the pixel clock value and horizontal/vertical measures. This means that v4l2_dv_timings structure must be correctly and fully filled.h](j)}(h**Parameters**h]hstrong)}(hjJh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjHubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjDubhdefinition_list)}(hhh]hdefinition_list_item)}(h@``const struct v4l2_dv_timings *t`` Timings for the video mode. h](hterm)}(h#``const struct v4l2_dv_timings *t``h]hliteral)}(hjqh]hconst struct v4l2_dv_timings *t}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjoubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjiubh definition)}(hhh]j)}(hTimings for the video mode.h]hTimings for the video mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jghjhKhjdubah}(h]h ]h"]h$]h&]uh1jbhjDubj)}(h**Description**h]jM)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjDubj)}(hCalculates the expected timeperframe using the pixel clock value and horizontal/vertical measures. This means that v4l2_dv_timings structure must be correctly and fully filled.h]hCalculates the expected timeperframe using the pixel clock value and horizontal/vertical measures. This means that v4l2_dv_timings structure must be correctly and fully filled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌#v4l2_check_dv_timings_fnc (C macro)c.v4l2_check_dv_timings_fnchNtauh1hhhhhhNhNubh)}(hhh](h)}(hv4l2_check_dv_timings_fnch]h)}(hv4l2_check_dv_timings_fnch]jM)}(hv4l2_check_dv_timings_fnch]j)}(hjh]hv4l2_check_dv_timings_fnc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKubah}(h]h ]h"]h$]h&]hhj uh1hj j hjhhhj hKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhj hKhjhhubj)}(hhh]j)}(h#**Typedef**: timings check callbackh](jM)}(h **Typedef**h]hTypedef}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubh: timings check callback}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj hKubeh}(h]h ](j)macroeh"]h$]h&]j<j)j=jBj>jBj?j@jAuh1hhhhhhNhNubj)}(h **Syntax**h]jM)}(hjHh]hSyntax}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjFubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK"hhhhubh block_quote)}(hS``bool v4l2_check_dv_timings_fnc (const struct v4l2_dv_timings *t, void *handle)`` h]j)}(hR``bool v4l2_check_dv_timings_fnc (const struct v4l2_dv_timings *t, void *handle)``h]jt)}(hjfh]hNbool v4l2_check_dv_timings_fnc (const struct v4l2_dv_timings *t, void *handle)}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjdubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK$hj`ubah}(h]h ]h"]h$]h&]uh1j^hj{hK$hhhhubjC)}(h**Parameters** ``const struct v4l2_dv_timings *t`` the v4l2_dv_timings struct. ``void *handle`` a handle from the driver. **Description** Returns true if the given timings are valid.h](j)}(h**Parameters**h]jM)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK(hjubjc)}(hhh](jh)}(h@``const struct v4l2_dv_timings *t`` the v4l2_dv_timings struct. h](jn)}(h#``const struct v4l2_dv_timings *t``h]jt)}(hjh]hconst struct v4l2_dv_timings *t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK!hjubj)}(hhh]j)}(hthe v4l2_dv_timings struct.h]hthe v4l2_dv_timings struct.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK!hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhK!hjubjh)}(h+``void *handle`` a handle from the driver. h](jn)}(h``void *handle``h]jt)}(hjh]h void *handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK"hjubj)}(hhh]j)}(ha handle from the driver.h]ha handle from the driver.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK"hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhK"hjubeh}(h]h ]h"]h$]h&]uh1jbhjubj)}(h**Description**h]jM)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK$hjubj)}(h,Returns true if the given timings are valid.h]h,Returns true if the given timings are valid.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK$hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌"v4l2_valid_dv_timings (C function)c.v4l2_valid_dv_timingshNtauh1hhhhhhNhNubh)}(hhh](h)}(hbool v4l2_valid_dv_timings (const struct v4l2_dv_timings *t, const struct v4l2_dv_timings_cap *cap, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h]h)}(hbool v4l2_valid_dv_timings(const struct v4l2_dv_timings *t, const struct v4l2_dv_timings_cap *cap, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h](hdesc_sig_keyword_type)}(hboolh]hbool}(hjbhhhNhNubah}(h]h ]ktah"]h$]h&]uh1j`hj\hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK4ubh)}(h h]h }(hjrhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj\hhhjqhK4ubjM)}(hv4l2_valid_dv_timingsh]j)}(hv4l2_valid_dv_timingsh]hv4l2_valid_dv_timings}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhj\hhhjqhK4ubjh)}(hy(const struct v4l2_dv_timings *t, const struct v4l2_dv_timings_cap *cap, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h](jn)}(hconst struct v4l2_dv_timings *th](h)}(hjuh]hconst}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjmodnameN classnameNj/j2)}j5]j8)}j+jsbc.v4l2_valid_dv_timingsasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]ht}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(h%const struct v4l2_dv_timings_cap *caph](h)}(hjuh]hconst}(hj,hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj(ubh)}(h h]h }(hj9hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj(ubh)}(hhh]hstruct}(hjGhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj(ubh)}(h h]h }(hjThhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj(ubh)}(hhh]j)}(hv4l2_dv_timings_caph]hv4l2_dv_timings_cap}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjgmodnameN classnameNj/j2)}j5]jc.v4l2_valid_dv_timingsasbuh1hhj(ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj(ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj)}(hcaph]hcap}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hv4l2_check_dv_timings_fnc fnch](h)}(hhh]j)}(hv4l2_check_dv_timings_fnch]hv4l2_check_dv_timings_fnc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjmodnameN classnameNj/j2)}j5]jc.v4l2_valid_dv_timingsasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hfnch]hfnc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hvoid *fnc_handleh](ja)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h fnc_handleh]h fnc_handle}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubeh}(h]h ]h"]h$]h&]hhuh1jghj\hhhjqhK4ubeh}(h]h ]h"]h$]h&]hhj uh1hj j hjXhhhjqhK4ubah}(h]jSah ](jjeh"]h$]h&]jj)jhuh1hhjqhK4hjUhhubj)}(hhh]j)}(hare these timings valid?h]hare these timings valid?}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK)hjOhhubah}(h]h ]h"]h$]h&]uh1jhjUhhhjqhK4ubeh}(h]h ](j)functioneh"]h$]h&]j<j)j=jjj>jjj?j@jAuh1hhhhhhNhNubjC)}(hX**Parameters** ``const struct v4l2_dv_timings *t`` the v4l2_dv_timings struct. ``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. ``v4l2_check_dv_timings_fnc fnc`` callback to check if this timing is OK. May be NULL. ``void *fnc_handle`` a handle that is passed on to **fnc**. **Description** Returns true if the given dv_timings struct is supported by the hardware capabilities and the callback function (if non-NULL), returns false otherwise.h](j)}(h**Parameters**h]jM)}(hjth]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjrubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK-hjnubjc)}(hhh](jh)}(h@``const struct v4l2_dv_timings *t`` the v4l2_dv_timings struct. h](jn)}(h#``const struct v4l2_dv_timings *t``h]jt)}(hjh]hconst struct v4l2_dv_timings *t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK+hjubj)}(hhh]j)}(hthe v4l2_dv_timings struct.h]hthe v4l2_dv_timings struct.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK+hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhK+hjubjh)}(hP``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. h](jn)}(h)``const struct v4l2_dv_timings_cap *cap``h]jt)}(hjh]h%const struct v4l2_dv_timings_cap *cap}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK,hjubj)}(hhh]j)}(h%the v4l2_dv_timings_cap capabilities.h]h%the v4l2_dv_timings_cap capabilities.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK,hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhK,hjubjh)}(hW``v4l2_check_dv_timings_fnc fnc`` callback to check if this timing is OK. May be NULL. h](jn)}(h!``v4l2_check_dv_timings_fnc fnc``h]jt)}(hjh]hv4l2_check_dv_timings_fnc fnc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK-hjubj)}(hhh]j)}(h4callback to check if this timing is OK. May be NULL.h]h4callback to check if this timing is OK. May be NULL.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhK-hjubjh)}(h<``void *fnc_handle`` a handle that is passed on to **fnc**. h](jn)}(h``void *fnc_handle``h]jt)}(hj>h]hvoid *fnc_handle}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj<ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK.hj8ubj)}(hhh]j)}(h&a handle that is passed on to **fnc**.h](ha handle that is passed on to }(hjWhhhNhNubjM)}(h**fnc**h]hfnc}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjWubh.}(hjWhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjShK.hjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jghjShK.hjubeh}(h]h ]h"]h$]h&]uh1jbhjnubj)}(h**Description**h]jM)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK0hjnubj)}(hReturns true if the given dv_timings struct is supported by the hardware capabilities and the callback function (if non-NULL), returns false otherwise.h]hReturns true if the given dv_timings struct is supported by the hardware capabilities and the callback function (if non-NULL), returns false otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK0hjnubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌%v4l2_enum_dv_timings_cap (C function)c.v4l2_enum_dv_timings_caphNtauh1hhhhhhNhNubh)}(hhh](h)}(hint v4l2_enum_dv_timings_cap (struct v4l2_enum_dv_timings *t, const struct v4l2_dv_timings_cap *cap, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h]h)}(hint v4l2_enum_dv_timings_cap(struct v4l2_enum_dv_timings *t, const struct v4l2_dv_timings_cap *cap, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h](ja)}(hinth]hint}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKIubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhKIubjM)}(hv4l2_enum_dv_timings_caph]j)}(hv4l2_enum_dv_timings_caph]hv4l2_enum_dv_timings_cap}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhjhhhjhKIubjh)}(hx(struct v4l2_enum_dv_timings *t, const struct v4l2_dv_timings_cap *cap, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h](jn)}(hstruct v4l2_enum_dv_timings *th](h)}(hhh]hstruct}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(hv4l2_enum_dv_timingsh]hv4l2_enum_dv_timings}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetj-modnameN classnameNj/j2)}j5]j8)}j+jsbc.v4l2_enum_dv_timings_capasbuh1hhj ubh)}(h h]h }(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]ht}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(h%const struct v4l2_dv_timings_cap *caph](h)}(hjuh]hconst}(hj~hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjzubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjzubh)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjzubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjzubh)}(hhh]j)}(hv4l2_dv_timings_caph]hv4l2_dv_timings_cap}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjmodnameN classnameNj/j2)}j5]jGc.v4l2_enum_dv_timings_capasbuh1hhjzubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjzubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj)}(hcaph]hcap}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hv4l2_check_dv_timings_fnc fnch](h)}(hhh]j)}(hv4l2_check_dv_timings_fnch]hv4l2_check_dv_timings_fnc}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetj modnameN classnameNj/j2)}j5]jGc.v4l2_enum_dv_timings_capasbuh1hhj ubh)}(h h]h }(hj* hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hfnch]hfnc}(hj8 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hvoid *fnc_handleh](ja)}(hvoidh]hvoid}(hjQ hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjM ubh)}(h h]h }(hj_ hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjM ubj)}(hjh]h*}(hjm hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM ubj)}(h fnc_handleh]h fnc_handle}(hjz hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubeh}(h]h ]h"]h$]h&]hhuh1jghjhhhjhKIubeh}(h]h ]h"]h$]h&]hhj uh1hj j hjhhhjhKIubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhKIhjhhubj)}(hhh]j)}(hFHelper function to enumerate possible DV timings based on capabilitiesh]hFHelper function to enumerate possible DV timings based on capabilities}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK:hj hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKIubeh}(h]h ](j)functioneh"]h$]h&]j<j)j=j j>j j?j@jAuh1hhhhhhNhNubjC)}(hX**Parameters** ``struct v4l2_enum_dv_timings *t`` the v4l2_enum_dv_timings struct. ``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. ``v4l2_check_dv_timings_fnc fnc`` callback to check if this timing is OK. May be NULL. ``void *fnc_handle`` a handle that is passed on to **fnc**. **Description** This enumerates dv_timings using the full list of possible CEA-861 and DMT timings, filtering out any timings that are not supported based on the hardware capabilities and the callback function (if non-NULL). If a valid timing for the given index is found, it will fill in **t** and return 0, otherwise it returns -EINVAL.h](j)}(h**Parameters**h]jM)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK>hj ubjc)}(hhh](jh)}(hD``struct v4l2_enum_dv_timings *t`` the v4l2_enum_dv_timings struct. h](jn)}(h"``struct v4l2_enum_dv_timings *t``h]jt)}(hj h]hstruct v4l2_enum_dv_timings *t}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK=hj ubj)}(hhh]j)}(h the v4l2_enum_dv_timings struct.h]h the v4l2_enum_dv_timings struct.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hK=hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hK=hj ubjh)}(hP``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. h](jn)}(h)``const struct v4l2_dv_timings_cap *cap``h]jt)}(hj h]h%const struct v4l2_dv_timings_cap *cap}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK>hj ubj)}(hhh]j)}(h%the v4l2_dv_timings_cap capabilities.h]h%the v4l2_dv_timings_cap capabilities.}(hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3 hK>hj4 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj3 hK>hj ubjh)}(hW``v4l2_check_dv_timings_fnc fnc`` callback to check if this timing is OK. May be NULL. h](jn)}(h!``v4l2_check_dv_timings_fnc fnc``h]jt)}(hjW h]hv4l2_check_dv_timings_fnc fnc}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1jshjU ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK?hjQ ubj)}(hhh]j)}(h4callback to check if this timing is OK. May be NULL.h]h4callback to check if this timing is OK. May be NULL.}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl hK?hjm ubah}(h]h ]h"]h$]h&]uh1jhjQ ubeh}(h]h ]h"]h$]h&]uh1jghjl hK?hj ubjh)}(h<``void *fnc_handle`` a handle that is passed on to **fnc**. h](jn)}(h``void *fnc_handle``h]jt)}(hj h]hvoid *fnc_handle}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK@hj ubj)}(hhh]j)}(h&a handle that is passed on to **fnc**.h](ha handle that is passed on to }(hj hhhNhNubjM)}(h**fnc**h]hfnc}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj hK@hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hK@hj ubeh}(h]h ]h"]h$]h&]uh1jbhj ubj)}(h**Description**h]jM)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKBhj ubj)}(hThis enumerates dv_timings using the full list of possible CEA-861 and DMT timings, filtering out any timings that are not supported based on the hardware capabilities and the callback function (if non-NULL).h]hThis enumerates dv_timings using the full list of possible CEA-861 and DMT timings, filtering out any timings that are not supported based on the hardware capabilities and the callback function (if non-NULL).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKBhj ubj)}(hqIf a valid timing for the given index is found, it will fill in **t** and return 0, otherwise it returns -EINVAL.h](h@If a valid timing for the given index is found, it will fill in }(hj hhhNhNubjM)}(h**t**h]ht}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj ubh, and return 0, otherwise it returns -EINVAL.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKFhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌%v4l2_find_dv_timings_cap (C function)c.v4l2_find_dv_timings_caphNtauh1hhhhhhNhNubh)}(hhh](h)}(hbool v4l2_find_dv_timings_cap (struct v4l2_dv_timings *t, const struct v4l2_dv_timings_cap *cap, unsigned pclock_delta, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h]h)}(hbool v4l2_find_dv_timings_cap(struct v4l2_dv_timings *t, const struct v4l2_dv_timings_cap *cap, unsigned pclock_delta, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h](ja)}(hjdh]hbool}(hjC hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj? hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK`ubh)}(h h]h }(hjQ hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj? hhhjP hK`ubjM)}(hv4l2_find_dv_timings_caph]j)}(hv4l2_find_dv_timings_caph]hv4l2_find_dv_timings_cap}(hjc hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ ubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhj? hhhjP hK`ubjh)}(h(struct v4l2_dv_timings *t, const struct v4l2_dv_timings_cap *cap, unsigned pclock_delta, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h](jn)}(hstruct v4l2_dv_timings *th](h)}(hhh]hstruct}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj{ ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj{ ubh)}(hhh]j)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetj modnameN classnameNj/j2)}j5]j8)}j+je sbc.v4l2_find_dv_timings_capasbuh1hhj{ ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj{ ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ ubj)}(hjh]ht}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjw ubjn)}(h%const struct v4l2_dv_timings_cap *caph](h)}(hjuh]hconst}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]hstruct}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(hv4l2_dv_timings_caph]hv4l2_dv_timings_cap}(hj) hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj& ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetj+ modnameN classnameNj/j2)}j5]j c.v4l2_find_dv_timings_capasbuh1hhj ubh)}(h h]h }(hjG hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hjU hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hcaph]hcap}(hjb hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjw ubjn)}(hunsigned pclock_deltah](ja)}(hunsignedh]hunsigned}(hj{ hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjw ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjw ubj)}(h pclock_deltah]h pclock_delta}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjw ubjn)}(hv4l2_check_dv_timings_fnc fnch](h)}(hhh]j)}(hv4l2_check_dv_timings_fnch]hv4l2_check_dv_timings_fnc}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetj modnameN classnameNj/j2)}j5]j c.v4l2_find_dv_timings_capasbuh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hfnch]hfnc}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjw ubjn)}(hvoid *fnc_handleh](ja)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h fnc_handleh]h fnc_handle}(hj! hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjw ubeh}(h]h ]h"]h$]h&]hhuh1jghj? hhhjP hK`ubeh}(h]h ]h"]h$]h&]hhj uh1hj j hj; hhhjP hK`ubah}(h]j6 ah ](jjeh"]h$]h&]jj)jhuh1hhjP hK`hj8 hhubj)}(hhh]j)}(hFind the closest timings structh]hFind the closest timings struct}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKOhjH hhubah}(h]h ]h"]h$]h&]uh1jhj8 hhhjP hK`ubeh}(h]h ](j)functioneh"]h$]h&]j<j)j=jc j>jc j?j@jAuh1hhhhhhNhNubjC)}(hX"**Parameters** ``struct v4l2_dv_timings *t`` the v4l2_enum_dv_timings struct. ``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. ``unsigned pclock_delta`` maximum delta between t->pixelclock and the timing struct under consideration. ``v4l2_check_dv_timings_fnc fnc`` callback to check if a given timings struct is OK. May be NULL. ``void *fnc_handle`` a handle that is passed on to **fnc**. **Description** This function tries to map the given timings to an entry in the full list of possible CEA-861 and DMT timings, filtering out any timings that are not supported based on the hardware capabilities and the callback function (if non-NULL). On success it will fill in **t** with the found timings and it returns true. On failure it will return false.h](j)}(h**Parameters**h]jM)}(hjm h]h Parameters}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjk ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKShjg ubjc)}(hhh](jh)}(h?``struct v4l2_dv_timings *t`` the v4l2_enum_dv_timings struct. h](jn)}(h``struct v4l2_dv_timings *t``h]jt)}(hj h]hstruct v4l2_dv_timings *t}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKQhj ubj)}(hhh]j)}(h the v4l2_enum_dv_timings struct.h]h the v4l2_enum_dv_timings struct.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKQhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKQhj ubjh)}(hP``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. h](jn)}(h)``const struct v4l2_dv_timings_cap *cap``h]jt)}(hj h]h%const struct v4l2_dv_timings_cap *cap}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKRhj ubj)}(hhh]j)}(h%the v4l2_dv_timings_cap capabilities.h]h%the v4l2_dv_timings_cap capabilities.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKRhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKRhj ubjh)}(hi``unsigned pclock_delta`` maximum delta between t->pixelclock and the timing struct under consideration. h](jn)}(h``unsigned pclock_delta``h]jt)}(hj h]hunsigned pclock_delta}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshj ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKThj ubj)}(hhh]j)}(hNmaximum delta between t->pixelclock and the timing struct under consideration.h]hNmaximum delta between t->pixelclock and the timing struct under consideration.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKShjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghjhKThj ubjh)}(hb``v4l2_check_dv_timings_fnc fnc`` callback to check if a given timings struct is OK. May be NULL. h](jn)}(h!``v4l2_check_dv_timings_fnc fnc``h]jt)}(hj8h]hv4l2_check_dv_timings_fnc fnc}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj6ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKUhj2ubj)}(hhh]j)}(h?callback to check if a given timings struct is OK. May be NULL.h]h?callback to check if a given timings struct is OK. May be NULL.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMhKUhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jghjMhKUhj ubjh)}(h<``void *fnc_handle`` a handle that is passed on to **fnc**. h](jn)}(h``void *fnc_handle``h]jt)}(hjqh]hvoid *fnc_handle}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jshjoubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKVhjkubj)}(hhh]j)}(h&a handle that is passed on to **fnc**.h](ha handle that is passed on to }(hjhhhNhNubjM)}(h**fnc**h]hfnc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhKVhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jghjhKVhj ubeh}(h]h ]h"]h$]h&]uh1jbhjg ubj)}(h**Description**h]jM)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKXhjg ubj)}(hThis function tries to map the given timings to an entry in the full list of possible CEA-861 and DMT timings, filtering out any timings that are not supported based on the hardware capabilities and the callback function (if non-NULL).h]hThis function tries to map the given timings to an entry in the full list of possible CEA-861 and DMT timings, filtering out any timings that are not supported based on the hardware capabilities and the callback function (if non-NULL).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKXhjg ubj)}(hmOn success it will fill in **t** with the found timings and it returns true. On failure it will return false.h](hOn success it will fill in }(hjhhhNhNubjM)}(h**t**h]ht}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubhM with the found timings and it returns true. On failure it will return false.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK]hjg ubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌,v4l2_find_dv_timings_cea861_vic (C function)!c.v4l2_find_dv_timings_cea861_vichNtauh1hhhhhhNhNubh)}(hhh](h)}(hHbool v4l2_find_dv_timings_cea861_vic (struct v4l2_dv_timings *t, u8 vic)h]h)}(hGbool v4l2_find_dv_timings_cea861_vic(struct v4l2_dv_timings *t, u8 vic)h](ja)}(hjdh]hbool}(hj$hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKnubh)}(h h]h }(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj1hKnubjM)}(hv4l2_find_dv_timings_cea861_vich]j)}(hv4l2_find_dv_timings_cea861_vich]hv4l2_find_dv_timings_cea861_vic}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhj hhhj1hKnubjh)}(h#(struct v4l2_dv_timings *t, u8 vic)h](jn)}(hstruct v4l2_dv_timings *th](h)}(hhh]hstruct}(hj`hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj\ubh)}(h h]h }(hjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj\ubh)}(hhh]j)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjmodnameN classnameNj/j2)}j5]j8)}j+jFsb!c.v4l2_find_dv_timings_cea861_vicasbuh1hhj\ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj\ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(hjh]ht}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjXubjn)}(hu8 vich](h)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjmodnameN classnameNj/j2)}j5]j!c.v4l2_find_dv_timings_cea861_vicasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hvich]hvic}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjXubeh}(h]h ]h"]h$]h&]hhuh1jghj hhhj1hKnubeh}(h]h ]h"]h$]h&]hhj uh1hj j hjhhhj1hKnubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhj1hKnhjhhubj)}(hhh]j)}(h!find timings based on CEA-861 VICh]h!find timings based on CEA-861 VIC}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKghj'hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj1hKnubeh}(h]h ](j)functioneh"]h$]h&]j<j)j=jBj>jBj?j@jAuh1hhhhhhNhNubjC)}(h**Parameters** ``struct v4l2_dv_timings *t`` the timings data. ``u8 vic`` CEA-861 VIC code **Description** On success it will fill in **t** with the found timings and it returns true. On failure it will return false.h](j)}(h**Parameters**h]jM)}(hjLh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjJubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKkhjFubjc)}(hhh](jh)}(h0``struct v4l2_dv_timings *t`` the timings data. h](jn)}(h``struct v4l2_dv_timings *t``h]jt)}(hjkh]hstruct v4l2_dv_timings *t}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjiubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhhjeubj)}(hhh]j)}(hthe timings data.h]hthe timings data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jghjhKhhjbubjh)}(h``u8 vic`` CEA-861 VIC code h](jn)}(h ``u8 vic``h]jt)}(hjh]hu8 vic}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKihjubj)}(hhh]j)}(hCEA-861 VIC codeh]hCEA-861 VIC code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKihjbubeh}(h]h ]h"]h$]h&]uh1jbhjFubj)}(h**Description**h]jM)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKkhjFubj)}(hmOn success it will fill in **t** with the found timings and it returns true. On failure it will return false.h](hOn success it will fill in }(hjhhhNhNubjM)}(h**t**h]ht}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubhM with the found timings and it returns true. On failure it will return false.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKkhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌"v4l2_match_dv_timings (C function)c.v4l2_match_dv_timingshNtauh1hhhhhhNhNubh)}(hhh](h)}(hbool v4l2_match_dv_timings (const struct v4l2_dv_timings *measured, const struct v4l2_dv_timings *standard, unsigned pclock_delta, bool match_reduced_fps)h]h)}(hbool v4l2_match_dv_timings(const struct v4l2_dv_timings *measured, const struct v4l2_dv_timings *standard, unsigned pclock_delta, bool match_reduced_fps)h](ja)}(hjdh]hbool}(hj6hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj2hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK|ubh)}(h h]h }(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj2hhhjChK|ubjM)}(hv4l2_match_dv_timingsh]j)}(hv4l2_match_dv_timingsh]hv4l2_match_dv_timings}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhj2hhhjChK|ubjh)}(h(const struct v4l2_dv_timings *measured, const struct v4l2_dv_timings *standard, unsigned pclock_delta, bool match_reduced_fps)h](jn)}(h&const struct v4l2_dv_timings *measuredh](h)}(hjuh]hconst}(hjrhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjnubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjnubh)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjnubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjnubh)}(hhh]j)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjmodnameN classnameNj/j2)}j5]j8)}j+jXsbc.v4l2_match_dv_timingsasbuh1hhjnubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjnubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(hmeasuredh]hmeasured}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjjubjn)}(h&const struct v4l2_dv_timings *standardh](h)}(hjuh]hconst}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetj:modnameN classnameNj/j2)}j5]jc.v4l2_match_dv_timingsasbuh1hhjubh)}(h h]h }(hjVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hstandardh]hstandard}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjjubjn)}(hunsigned pclock_deltah](ja)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h pclock_deltah]h pclock_delta}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjjubjn)}(hbool match_reduced_fpsh](ja)}(hjdh]hbool}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hmatch_reduced_fpsh]hmatch_reduced_fps}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjjubeh}(h]h ]h"]h$]h&]hhuh1jghj2hhhjChK|ubeh}(h]h ]h"]h$]h&]hhj uh1hj j hj.hhhjChK|ubah}(h]j)ah ](jjeh"]h$]h&]jj)jhuh1hhjChK|hj+hhubj)}(hhh]j)}(hdo two timings match?h]hdo two timings match?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKqhjhhubah}(h]h ]h"]h$]h&]uh1jhj+hhhjChK|ubeh}(h]h ](j)functioneh"]h$]h&]j<j)j=jj>jj?j@jAuh1hhhhhhNhNubjC)}(hX**Parameters** ``const struct v4l2_dv_timings *measured`` the measured timings data. ``const struct v4l2_dv_timings *standard`` the timings according to the standard. ``unsigned pclock_delta`` maximum delta in Hz between standard->pixelclock and the measured timings. ``bool match_reduced_fps`` if true, then fail if V4L2_DV_FL_REDUCED_FPS does not match. **Description** Returns true if the two timings match, returns false otherwise.h](j)}(h**Parameters**h]jM)}(hj&h]h Parameters}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj$ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKuhj ubjc)}(hhh](jh)}(hF``const struct v4l2_dv_timings *measured`` the measured timings data. h](jn)}(h*``const struct v4l2_dv_timings *measured``h]jt)}(hjEh]h&const struct v4l2_dv_timings *measured}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjCubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKshj?ubj)}(hhh]j)}(hthe measured timings data.h]hthe measured timings data.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZhKshj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jghjZhKshj<ubjh)}(hR``const struct v4l2_dv_timings *standard`` the timings according to the standard. h](jn)}(h*``const struct v4l2_dv_timings *standard``h]jt)}(hj~h]h&const struct v4l2_dv_timings *standard}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshj|ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKthjxubj)}(hhh]j)}(h&the timings according to the standard.h]h&the timings according to the standard.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKthjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jghjhKthj<ubjh)}(he``unsigned pclock_delta`` maximum delta in Hz between standard->pixelclock and the measured timings. h](jn)}(h``unsigned pclock_delta``h]jt)}(hjh]hunsigned pclock_delta}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKvhjubj)}(hhh]j)}(hJmaximum delta in Hz between standard->pixelclock and the measured timings.h]hJmaximum delta in Hz between standard->pixelclock and the measured timings.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKuhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKvhj<ubjh)}(hX``bool match_reduced_fps`` if true, then fail if V4L2_DV_FL_REDUCED_FPS does not match. h](jn)}(h``bool match_reduced_fps``h]jt)}(hjh]hbool match_reduced_fps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKxhjubj)}(hhh]j)}(hjRj?j@jAuh1hhhhhhNhNubjC)}(hX**Parameters** ``const char *dev_prefix`` device prefix for each log line. ``const char *prefix`` additional prefix for each log line, may be NULL. ``const struct v4l2_dv_timings *t`` the timings data. ``bool detailed`` if true, give a detailed log.h](j)}(h**Parameters**h]jM)}(hj\h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjZubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjVubjc)}(hhh](jh)}(h<``const char *dev_prefix`` device prefix for each log line. h](jn)}(h``const char *dev_prefix``h]jt)}(hj{h]hconst char *dev_prefix}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jshjyubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjuubj)}(hhh]j)}(h device prefix for each log line.h]h device prefix for each log line.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jghjhKhjrubjh)}(hI``const char *prefix`` additional prefix for each log line, may be NULL. h](jn)}(h``const char *prefix``h]jt)}(hjh]hconst char *prefix}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjubj)}(hhh]j)}(h1additional prefix for each log line, may be NULL.h]h1additional prefix for each log line, may be NULL.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhjrubjh)}(h6``const struct v4l2_dv_timings *t`` the timings data. h](jn)}(h#``const struct v4l2_dv_timings *t``h]jt)}(hjh]hconst struct v4l2_dv_timings *t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjubj)}(hhh]j)}(hthe timings data.h]hthe timings data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhjrubjh)}(h/``bool detailed`` if true, give a detailed log.h](jn)}(h``bool detailed``h]jt)}(hj&h]h bool detailed}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj$ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj ubj)}(hhh]j)}(hif true, give a detailed log.h]hif true, give a detailed log.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj;hKhjrubeh}(h]h ]h"]h$]h&]uh1jbhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌v4l2_detect_cvt (C function)c.v4l2_detect_cvthNtauh1hhhhhhNhNubh)}(hhh](h)}(hbool v4l2_detect_cvt (unsigned int frame_height, unsigned int hfreq, unsigned int vsync, unsigned int active_width, u32 polarities, bool interlaced, const struct v4l2_dv_timings_cap *cap, struct v4l2_dv_timings *fmt)h]h)}(hbool v4l2_detect_cvt(unsigned int frame_height, unsigned int hfreq, unsigned int vsync, unsigned int active_width, u32 polarities, bool interlaced, const struct v4l2_dv_timings_cap *cap, struct v4l2_dv_timings *fmt)h](ja)}(hjdh]hbool}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj|hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj|hhhjhKubjM)}(hv4l2_detect_cvth]j)}(hv4l2_detect_cvth]hv4l2_detect_cvt}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhj|hhhjhKubjh)}(h(unsigned int frame_height, unsigned int hfreq, unsigned int vsync, unsigned int active_width, u32 polarities, bool interlaced, const struct v4l2_dv_timings_cap *cap, struct v4l2_dv_timings *fmt)h](jn)}(hunsigned int frame_heighth](ja)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubja)}(hinth]hint}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h frame_heighth]h frame_height}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hunsigned int hfreqh](ja)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubja)}(hinth]hint}(hj)hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubh)}(h h]h }(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hhfreqh]hhfreq}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hunsigned int vsynch](ja)}(hunsignedh]hunsigned}(hj^hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjZubh)}(h h]h }(hjlhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjZubja)}(hinth]hint}(hjzhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjZubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjZubj)}(hvsynch]hvsync}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hunsigned int active_widthh](ja)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubja)}(hinth]hint}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h active_widthh]h active_width}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hu32 polaritiesh](h)}(hhh]j)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjmodnameN classnameNj/j2)}j5]j8)}j+jsbc.v4l2_detect_cvtasbuh1hhjubh)}(h h]h }(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h polaritiesh]h polarities}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hbool interlacedh](ja)}(hjdh]hbool}(hjJhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjFubh)}(h h]h }(hjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjFubj)}(h interlacedh]h interlaced}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(h%const struct v4l2_dv_timings_cap *caph](h)}(hjuh]hconst}(hj~hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjzubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjzubh)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjzubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjzubh)}(hhh]j)}(hv4l2_dv_timings_caph]hv4l2_dv_timings_cap}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjmodnameN classnameNj/j2)}j5]jc.v4l2_detect_cvtasbuh1hhjzubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjzubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj)}(hcaph]hcap}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hstruct v4l2_dv_timings *fmth](h)}(hhh]hstruct}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetj)modnameN classnameNj/j2)}j5]jc.v4l2_detect_cvtasbuh1hhjubh)}(h h]h }(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hfmth]hfmt}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubeh}(h]h ]h"]h$]h&]hhuh1jghj|hhhjhKubeh}(h]h ]h"]h$]h&]hhj uh1hj j hjxhhhjhKubah}(h]jsah ](jjeh"]h$]h&]jj)jhuh1hhjhKhjuhhubj)}(hhh]j)}(h3detect if the given timings follow the CVT standardh]h3detect if the given timings follow the CVT standard}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjuhhhjhKubeh}(h]h ](j)functioneh"]h$]h&]j<j)j=jj>jj?j@jAuh1hhhhhhNhNubjC)}(hX**Parameters** ``unsigned int frame_height`` the total height of the frame (including blanking) in lines. ``unsigned int hfreq`` the horizontal frequency in Hz. ``unsigned int vsync`` the height of the vertical sync in lines. ``unsigned int active_width`` active width of image (does not include blanking). This information is needed only in case of version 2 of reduced blanking. In other cases, this parameter does not have any effect on timings. ``u32 polarities`` the horizontal and vertical polarities (same as struct v4l2_bt_timings polarities). ``bool interlaced`` if this flag is true, it indicates interlaced format ``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. ``struct v4l2_dv_timings *fmt`` the resulting timings. **Description** This function will attempt to detect if the given values correspond to a valid CVT format. If so, then it will return true, and fmt will be filled in with the found CVT timings.h](j)}(h**Parameters**h]jM)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjubjc)}(hhh](jh)}(h[``unsigned int frame_height`` the total height of the frame (including blanking) in lines. h](jn)}(h``unsigned int frame_height``h]jt)}(hjh]hunsigned int frame_height}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjubj)}(hhh]j)}(hj j?j@jAuh1hhhhhhNhNubjC)}(hX8**Parameters** ``unsigned int frame_height`` the total height of the frame (including blanking) in lines. ``unsigned int hfreq`` the horizontal frequency in Hz. ``unsigned int vsync`` the height of the vertical sync in lines. ``u32 polarities`` the horizontal and vertical polarities (same as struct v4l2_bt_timings polarities). ``bool interlaced`` if this flag is true, it indicates interlaced format ``struct v4l2_fract aspect`` preferred aspect ratio. GTF has no method of determining the aspect ratio in order to derive the image width from the image height, so it has to be passed explicitly. Usually the native screen aspect ratio is used for this. If it is not filled in correctly, then 16:9 will be assumed. ``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. ``struct v4l2_dv_timings *fmt`` the resulting timings. **Description** This function will attempt to detect if the given values correspond to a valid GTF format. If so, then it will return true, and fmt will be filled in with the found GTF timings.h](j)}(h**Parameters**h]jM)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj ubjc)}(hhh](jh)}(h[``unsigned int frame_height`` the total height of the frame (including blanking) in lines. h](jn)}(h``unsigned int frame_height``h]jt)}(hj9 h]hunsigned int frame_height}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj7 ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj3 ubj)}(hhh]j)}(hjp#j?j@jAuh1hhhhhhNhNubjC)}(hX%**Parameters** ``u8 hor_landscape`` byte 0x15 from the EDID. ``u8 vert_portrait`` byte 0x16 from the EDID. **Description** Determines the aspect ratio from the EDID. See VESA Enhanced EDID standard, release A, rev 2, section 3.6.2: "Horizontal and Vertical Screen Size or Aspect Ratio"h](j)}(h**Parameters**h]jM)}(hjz#h]h Parameters}(hj|#hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjx#ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjt#ubjc)}(hhh](jh)}(h.``u8 hor_landscape`` byte 0x15 from the EDID. h](jn)}(h``u8 hor_landscape``h]jt)}(hj#h]hu8 hor_landscape}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj#ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj#ubj)}(hhh]j)}(hbyte 0x15 from the EDID.h]hbyte 0x15 from the EDID.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#hKhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jghj#hKhj#ubjh)}(h.``u8 vert_portrait`` byte 0x16 from the EDID. h](jn)}(h``u8 vert_portrait``h]jt)}(hj#h]hu8 vert_portrait}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj#ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj#ubj)}(hhh]j)}(hbyte 0x16 from the EDID.h]hbyte 0x16 from the EDID.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#hKhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jghj#hKhj#ubeh}(h]h ]h"]h$]h&]uh1jbhjt#ubj)}(h**Description**h]jM)}(hj $h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj $ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjt#ubj)}(hDetermines the aspect ratio from the EDID. See VESA Enhanced EDID standard, release A, rev 2, section 3.6.2: "Horizontal and Vertical Screen Size or Aspect Ratio"h]hDetermines the aspect ratio from the EDID. See VESA Enhanced EDID standard, release A, rev 2, section 3.6.2: “Horizontal and Vertical Screen Size or Aspect Ratio”}(hj#$hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjt#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌)v4l2_dv_timings_aspect_ratio (C function)c.v4l2_dv_timings_aspect_ratiohNtauh1hhhhhhNhNubh)}(hhh](h)}(hPstruct v4l2_fract v4l2_dv_timings_aspect_ratio (const struct v4l2_dv_timings *t)h]h)}(hOstruct v4l2_fract v4l2_dv_timings_aspect_ratio(const struct v4l2_dv_timings *t)h](h)}(hhh]hstruct}(hjR$hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjN$hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKubh)}(h h]h }(hj`$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjN$hhhj_$hKubh)}(hhh]j)}(h v4l2_fracth]h v4l2_fract}(hjq$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn$ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjs$modnameN classnameNj/j2)}j5]j8)}j+v4l2_dv_timings_aspect_ratiosbc.v4l2_dv_timings_aspect_ratioasbuh1hhjN$hhhj_$hKubh)}(h h]h }(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjN$hhhj_$hKubjM)}(hv4l2_dv_timings_aspect_ratioh]j)}(hj$h]hv4l2_dv_timings_aspect_ratio}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhjN$hhhj_$hKubjh)}(h!(const struct v4l2_dv_timings *t)h]jn)}(hconst struct v4l2_dv_timings *th](h)}(hjuh]hconst}(hj$hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj$ubh)}(h h]h }(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj$ubh)}(hhh]hstruct}(hj$hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj$ubh)}(h h]h }(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj$ubh)}(hhh]j)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetj$modnameN classnameNj/j2)}j5]j$c.v4l2_dv_timings_aspect_ratioasbuh1hhj$ubh)}(h h]h }(hj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj$ubj)}(hjh]h*}(hj$%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj)}(hjh]ht}(hj1%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj$ubah}(h]h ]h"]h$]h&]hhuh1jghjN$hhhj_$hKubeh}(h]h ]h"]h$]h&]hhj uh1hj j hjJ$hhhj_$hKubah}(h]jE$ah ](jjeh"]h$]h&]jj)jhuh1hhj_$hKhjG$hhubj)}(hhh]j)}(hDcalculate the aspect ratio based on the v4l2_dv_timings information.h]hDcalculate the aspect ratio based on the v4l2_dv_timings information.}(hjZ%hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjW%hhubah}(h]h ]h"]h$]h&]uh1jhjG$hhhj_$hKubeh}(h]h ](j)functioneh"]h$]h&]j<j)j=jr%j>jr%j?j@jAuh1hhhhhhNhNubjC)}(hG**Parameters** ``const struct v4l2_dv_timings *t`` the timings data.h](j)}(h**Parameters**h]jM)}(hj|%h]h Parameters}(hj~%hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjz%ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjv%ubjc)}(hhh]jh)}(h5``const struct v4l2_dv_timings *t`` the timings data.h](jn)}(h#``const struct v4l2_dv_timings *t``h]jt)}(hj%h]hconst struct v4l2_dv_timings *t}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj%ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj%ubj)}(hhh]j)}(hthe timings data.h]hthe timings data.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jghj%hKhj%ubah}(h]h ]h"]h$]h&]uh1jbhjv%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌can_reduce_fps (C function)c.can_reduce_fpshNtauh1hhhhhhNhNubh)}(hhh](h)}(h0bool can_reduce_fps (struct v4l2_bt_timings *bt)h]h)}(h/bool can_reduce_fps(struct v4l2_bt_timings *bt)h](ja)}(hjdh]hbool}(hj%hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj%hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKubh)}(h h]h }(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj%hhhj&hKubjM)}(hcan_reduce_fpsh]j)}(hcan_reduce_fpsh]hcan_reduce_fps}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhj%hhhj&hKubjh)}(h(struct v4l2_bt_timings *bt)h]jn)}(hstruct v4l2_bt_timings *bth](h)}(hhh]hstruct}(hj1&hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj-&ubh)}(h h]h }(hj>&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj-&ubh)}(hhh]j)}(hv4l2_bt_timingsh]hv4l2_bt_timings}(hjO&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL&ubah}(h]h ]h"]h$]h&] refdomainj)reftypej+ reftargetjQ&modnameN classnameNj/j2)}j5]j8)}j+j&sbc.can_reduce_fpsasbuh1hhj-&ubh)}(h h]h }(hjo&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj-&ubj)}(hjh]h*}(hj}&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-&ubj)}(hbth]hbt}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj)&ubah}(h]h ]h"]h$]h&]hhuh1jghj%hhhj&hKubeh}(h]h ]h"]h$]h&]hhj uh1hj j hj%hhhj&hKubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1hhj&hKhj%hhubj)}(hhh]j)}(h-check if conditions for reduced fps are true.h]h-check if conditions for reduced fps are true.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj&hhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj&hKubeh}(h]h ](j)functioneh"]h$]h&]j<j)j=j&j>j&j?j@jAuh1hhhhhhNhNubjC)}(hX4**Parameters** ``struct v4l2_bt_timings *bt`` v4l2 timing structure **Description** For different timings reduced fps is allowed if the following conditions are met: - For CVT timings: if reduced blanking v2 (vsync == 8) is true. - For CEA861 timings: if ``V4L2_DV_FL_CAN_REDUCE_FPS`` flag is true.h](j)}(h**Parameters**h]jM)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj&ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj&ubjc)}(hhh]jh)}(h5``struct v4l2_bt_timings *bt`` v4l2 timing structure h](jn)}(h``struct v4l2_bt_timings *bt``h]jt)}(hj&h]hstruct v4l2_bt_timings *bt}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj&ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj&ubj)}(hhh]j)}(hv4l2 timing structureh]hv4l2 timing structure}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 'hKhj 'ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jghj 'hKhj&ubah}(h]h ]h"]h$]h&]uh1jbhj&ubj)}(h**Description**h]jM)}(hj0'h]h Description}(hj2'hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj.'ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj&ubj)}(hQFor different timings reduced fps is allowed if the following conditions are met:h]hQFor different timings reduced fps is allowed if the following conditions are met:}(hjF'hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj&ubj_)}(h- For CVT timings: if reduced blanking v2 (vsync == 8) is true. - For CEA861 timings: if ``V4L2_DV_FL_CAN_REDUCE_FPS`` flag is true.h]h bullet_list)}(hhh](h list_item)}(h=For CVT timings: if reduced blanking v2 (vsync == 8) is true.h]j)}(hjb'h]h=For CVT timings: if reduced blanking v2 (vsync == 8) is true.}(hjd'hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj`'ubah}(h]h ]h"]h$]h&]uh1j^'hj['ubj_')}(hBFor CEA861 timings: if ``V4L2_DV_FL_CAN_REDUCE_FPS`` flag is true.h]j)}(hjz'h](hFor CEA861 timings: if }(hj|'hhhNhNubjt)}(h``V4L2_DV_FL_CAN_REDUCE_FPS``h]hV4L2_DV_FL_CAN_REDUCE_FPS}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj|'ubh flag is true.}(hj|'hhhNhNubeh}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjx'ubah}(h]h ]h"]h$]h&]uh1j^'hj['ubeh}(h]h ]h"]h$]h&]bullet-uh1jY'hjq'hKhjU'ubah}(h]h ]h"]h$]h&]uh1j^hjq'hKhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌ v4l2_hdmi_colorimetry (C struct)c.v4l2_hdmi_colorimetryhNtauh1hhhhhhNhNubh)}(hhh](h)}(hv4l2_hdmi_colorimetryh]h)}(hstruct v4l2_hdmi_colorimetryh](h)}(hhh]hstruct}(hj'hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj'hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKubh)}(h h]h }(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj'hhhj'hKubjM)}(hv4l2_hdmi_colorimetryh]j)}(hj'h]hv4l2_hdmi_colorimetry}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ](jbjceh"]h$]h&]hhuh1jLhj'hhhj'hKubeh}(h]h ]h"]h$]h&]hhj uh1hj j hj'hhhj'hKubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1hhj'hKhj'hhubj)}(hhh]j)}(h*describes the HDMI colorimetry informationh]h*describes the HDMI colorimetry information}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj(hhubah}(h]h ]h"]h$]h&]uh1jhj'hhhj'hKubeh}(h]h ](j)structeh"]h$]h&]j<j)j=j*(j>j*(j?j@jAuh1hhhhhhNhNubjC)}(hX**Definition**:: struct v4l2_hdmi_colorimetry { enum v4l2_colorspace colorspace; enum v4l2_ycbcr_encoding ycbcr_enc; enum v4l2_quantization quantization; enum v4l2_xfer_func xfer_func; }; **Members** ``colorspace`` enum v4l2_colorspace, the colorspace ``ycbcr_enc`` enum v4l2_ycbcr_encoding, Y'CbCr encoding ``quantization`` enum v4l2_quantization, colorspace quantization ``xfer_func`` enum v4l2_xfer_func, colorspace transfer functionh](j)}(h**Definition**::h](jM)}(h**Definition**h]h Definition}(hj6(hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj2(ubh:}(hj2(hhhNhNubeh}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj.(ubh literal_block)}(hstruct v4l2_hdmi_colorimetry { enum v4l2_colorspace colorspace; enum v4l2_ycbcr_encoding ycbcr_enc; enum v4l2_quantization quantization; enum v4l2_xfer_func xfer_func; };h]hstruct v4l2_hdmi_colorimetry { enum v4l2_colorspace colorspace; enum v4l2_ycbcr_encoding ycbcr_enc; enum v4l2_quantization quantization; enum v4l2_xfer_func xfer_func; };}hjQ(sbah}(h]h ]h"]h$]h&]hhuh1jO(ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj.(ubj)}(h **Members**h]jM)}(hjb(h]hMembers}(hjd(hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj`(ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj.(ubjc)}(hhh](jh)}(h4``colorspace`` enum v4l2_colorspace, the colorspace h](jn)}(h``colorspace``h]jt)}(hj(h]h colorspace}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj(ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj{(ubj)}(hhh]j)}(h$enum v4l2_colorspace, the colorspaceh]h$enum v4l2_colorspace, the colorspace}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(hKhj(ubah}(h]h ]h"]h$]h&]uh1jhj{(ubeh}(h]h ]h"]h$]h&]uh1jghj(hKhjx(ubjh)}(h8``ycbcr_enc`` enum v4l2_ycbcr_encoding, Y'CbCr encoding h](jn)}(h ``ycbcr_enc``h]jt)}(hj(h]h ycbcr_enc}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj(ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj(ubj)}(hhh]j)}(h)enum v4l2_ycbcr_encoding, Y'CbCr encodingh]h+enum v4l2_ycbcr_encoding, Y’CbCr encoding}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(hKhj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jghj(hKhjx(ubjh)}(hA``quantization`` enum v4l2_quantization, colorspace quantization h](jn)}(h``quantization``h]jt)}(hj(h]h quantization}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj(ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj(ubj)}(hhh]j)}(h/enum v4l2_quantization, colorspace quantizationh]h/enum v4l2_quantization, colorspace quantization}(hj )hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)hKhj )ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jghj)hKhjx(ubjh)}(h?``xfer_func`` enum v4l2_xfer_func, colorspace transfer functionh](jn)}(h ``xfer_func``h]jt)}(hj,)h]h xfer_func}(hj.)hhhNhNubah}(h]h ]h"]h$]h&]uh1jshj*)ubah}(h]h ]h"]h$]h&]uh1jmho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj&)ubj)}(hhh]j)}(h1enum v4l2_xfer_func, colorspace transfer functionh]h1enum v4l2_xfer_func, colorspace transfer function}(hjE)hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjB)ubah}(h]h ]h"]h$]h&]uh1jhj&)ubeh}(h]h ]h"]h$]h&]uh1jghjA)hKhjx(ubeh}(h]h ]h"]h$]h&]uh1jbhj.(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jBhhhhhNhNubeh}(h]v4l2-dv-timings-functionsah ]h"]v4l2 dv timings functionsah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj)error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}jr)jo)s nametypes}jr)sh}(jo)hhhjjjSjXjjj6 j; jjj)j.jejjjsjxjjj="jB"jE$jJ$j%j%j'j'u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.