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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/pt_BR/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}(hjhhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhhhhhjhKubh)}(hhh]h desc_sig_name)}(h v4l2_fracth]h v4l2_fract}(hj'hhhNhNubah}(h]h ]nah"]h$]h&]uh1j%hj"ubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetj)modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jD ASTIdentifier)}j?v4l2_calc_timeperframesbc.v4l2_calc_timeperframeasbuh1hhhhhhjhKubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhhhhhjhKubh desc_name)}(hv4l2_calc_timeperframeh]j&)}(hjOh]hv4l2_calc_timeperframe}(hjfhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjbubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j`hhhhhjhKubhdesc_parameterlist)}(h!(const struct v4l2_dv_timings *t)h]hdesc_parameter)}(hconst struct v4l2_dv_timings *th](j)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j&)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjmodnameN classnameNjCjF)}jI]jMc.v4l2_calc_timeperframeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjubj&)}(hth]ht}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj}ubah}(h]h ]h"]h$]h&]hhuh1j{hhhhhjhKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1hsphinx_line_type declaratorhhhhhjhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhjhKhhhhubh 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.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j2ho/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&]uh1j-hhhhhjhKubeh}(h]h ](j=functioneh"]h$]h&]domainj=objtypejLdesctypejLnoindex 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](j3)}(h**Parameters**h]hstrong)}(hj^h]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj\ubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjXubhdefinition_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)}(hjh]hconst struct v4l2_dv_timings *t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(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 definition)}(hhh]j3)}(hTimings for the video mode.h]hTimings for the video mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjhKhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1j{hjhKhjxubah}(h]h ]h"]h$]h&]uh1jvhjXubj3)}(h**Description**h]ja)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjXubj3)}(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&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jVhhhhhNhNubh)}(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]ja)}(hv4l2_check_dv_timings_fnch]j&)}(hjh]hv4l2_check_dv_timings_fnc}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubah}(h]h ](jvjweh"]h$]h&]hhuh1j`hjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKubah}(h]h ]h"]h$]h&]hhjuh1hj j!hjhhhj hKubah}(h]jah ](j%j&eh"]h$]h&]j*j+)j,huh1hhj hKhjhhubj.)}(hhh]j3)}(h#**Typedef**: timings check callbackh](ja)}(h **Typedef**h]hTypedef}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj0ubh: timings check callback}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1j2ho/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&]uh1j-hjhhhj hKubeh}(h]h ](j=macroeh"]h$]h&]jPj=jQjVjRjVjSjTjUuh1hhhhhhNhNubj3)}(h **Syntax**h]ja)}(hj\h]hSyntax}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjZubah}(h]h ]h"]h$]h&]uh1j2ho/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]j3)}(hR``bool v4l2_check_dv_timings_fnc (const struct v4l2_dv_timings *t, void *handle)``h]j)}(hjzh]hNbool v4l2_check_dv_timings_fnc (const struct v4l2_dv_timings *t, void *handle)}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK&hjtubah}(h]h ]h"]h$]h&]uh1jrhjhK&hhhhubjW)}(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](j3)}(h**Parameters**h]ja)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK*hjubjw)}(hhh](j|)}(h@``const struct v4l2_dv_timings *t`` the v4l2_dv_timings struct. h](j)}(h#``const struct v4l2_dv_timings *t``h]j)}(hjh]hconst struct v4l2_dv_timings *t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(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)}(hhh]j3)}(hthe v4l2_dv_timings struct.h]hthe v4l2_dv_timings struct.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjhK!hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j{hjhK!hjubj|)}(h+``void *handle`` a handle from the driver. h](j)}(h``void *handle``h]j)}(hjh]h void *handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(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)}(hhh]j3)}(ha handle from the driver.h]ha handle from the driver.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hj hK"hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j{hj hK"hjubeh}(h]h ]h"]h$]h&]uh1jvhjubj3)}(h**Description**h]ja)}(hj/h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj-ubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK$hjubj3)}(h,Returns true if the given timings are valid.h]h,Returns true if the given timings are valid.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j2ho/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&]uh1jVhhhhhNhNubh)}(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}(hjvhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jthjphhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK)ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhhjhK)ubja)}(hv4l2_valid_dv_timingsh]j&)}(hv4l2_valid_dv_timingsh]hv4l2_valid_dv_timings}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ](jvjweh"]h$]h&]hhuh1j`hjphhhjhK)ubj|)}(hy(const struct v4l2_dv_timings *t, const struct v4l2_dv_timings_cap *cap, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h](j)}(hconst struct v4l2_dv_timings *th](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j&)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjmodnameN classnameNjCjF)}jI]jL)}j?jsbc.v4l2_valid_dv_timingsasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hjh]ht}(hj(hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h%const struct v4l2_dv_timings_cap *caph](j)}(hjh]hconst}(hj@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(hjh]hstruct}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj<ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubh)}(hhh]j&)}(hv4l2_dv_timings_caph]hv4l2_dv_timings_cap}(hjyhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjvubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetj{modnameN classnameNjCjF)}jI]j c.v4l2_valid_dv_timingsasbuh1hhj<ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj&)}(hcaph]hcap}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hv4l2_check_dv_timings_fnc fnch](h)}(hhh]j&)}(hv4l2_check_dv_timings_fnch]hv4l2_check_dv_timings_fnc}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjmodnameN classnameNjCjF)}jI]j c.v4l2_valid_dv_timingsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hfnch]hfnc}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hvoid *fnc_handleh](ju)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(h fnc_handleh]h fnc_handle}(hj<hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j{hjphhhjhK)ubeh}(h]h ]h"]h$]h&]hhjuh1hj j!hjlhhhjhK)ubah}(h]jgah ](j%j&eh"]h$]h&]j*j+)j,huh1hhjhK)hjihhubj.)}(hhh]j3)}(hare these timings valid?h]hare these timings valid?}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK)hjchhubah}(h]h ]h"]h$]h&]uh1j-hjihhhjhK)ubeh}(h]h ](j=functioneh"]h$]h&]jPj=jQj~jRj~jSjTjUuh1hhhhhhNhNubjW)}(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](j3)}(h**Parameters**h]ja)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK-hjubjw)}(hhh](j|)}(h@``const struct v4l2_dv_timings *t`` the v4l2_dv_timings struct. h](j)}(h#``const struct v4l2_dv_timings *t``h]j)}(hjh]hconst struct v4l2_dv_timings *t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(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)}(hhh]j3)}(hthe v4l2_dv_timings struct.h]hthe v4l2_dv_timings struct.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjhK+hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j{hjhK+hjubj|)}(hP``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. h](j)}(h)``const struct v4l2_dv_timings_cap *cap``h]j)}(hjh]h%const struct v4l2_dv_timings_cap *cap}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(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)}(hhh]j3)}(h%the v4l2_dv_timings_cap capabilities.h]h%the v4l2_dv_timings_cap capabilities.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjhK,hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j{hjhK,hjubj|)}(hW``v4l2_check_dv_timings_fnc fnc`` callback to check if this timing is OK. May be NULL. h](j)}(h!``v4l2_check_dv_timings_fnc fnc``h]j)}(hjh]hv4l2_check_dv_timings_fnc fnc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(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)}(hhh]j3)}(h4callback to check if this timing is OK. May be NULL.h]h4callback to check if this timing is OK. May be NULL.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hj.hK-hj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j{hj.hK-hjubj|)}(h<``void *fnc_handle`` a handle that is passed on to **fnc**. h](j)}(h``void *fnc_handle``h]j)}(hjRh]hvoid *fnc_handle}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(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.hjLubj)}(hhh]j3)}(h&a handle that is passed on to **fnc**.h](ha handle that is passed on to }(hjkhhhNhNubja)}(h**fnc**h]hfnc}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjkubh.}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1j2hjghK.hjhubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1j{hjghK.hjubeh}(h]h ]h"]h$]h&]uh1jvhjubj3)}(h**Description**h]ja)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK0hjubj3)}(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&]uh1j2ho/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&]uh1jVhhhhhNhNubh)}(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](ju)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK:ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK:ubja)}(hv4l2_enum_dv_timings_caph]j&)}(hv4l2_enum_dv_timings_caph]hv4l2_enum_dv_timings_cap}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ](jvjweh"]h$]h&]hhuh1j`hjhhhjhK:ubj|)}(hx(struct v4l2_enum_dv_timings *t, const struct v4l2_dv_timings_cap *cap, v4l2_check_dv_timings_fnc fnc, void *fnc_handle)h](j)}(hstruct v4l2_enum_dv_timings *th](j)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j&)}(hv4l2_enum_dv_timingsh]hv4l2_enum_dv_timings}(hj?hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj<ubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjAmodnameN classnameNjCjF)}jI]jL)}j?jsbc.v4l2_enum_dv_timings_capasbuh1hhjubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hjh]ht}(hjzhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h%const struct v4l2_dv_timings_cap *caph](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j&)}(hv4l2_dv_timings_caph]hv4l2_dv_timings_cap}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjmodnameN classnameNjCjF)}jI]j[c.v4l2_enum_dv_timings_capasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hcaph]hcap}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hv4l2_check_dv_timings_fnc fnch](h)}(hhh]j&)}(hv4l2_check_dv_timings_fnch]hv4l2_check_dv_timings_fnc}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetj" modnameN classnameNjCjF)}jI]j[c.v4l2_enum_dv_timings_capasbuh1hhj ubj)}(h h]h }(hj> hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(hfnch]hfnc}(hjL hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hvoid *fnc_handleh](ju)}(hvoidh]hvoid}(hje hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthja ubj)}(h h]h }(hjs hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja ubj&)}(h fnc_handleh]h fnc_handle}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hja ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j{hjhhhjhK:ubeh}(h]h ]h"]h$]h&]hhjuh1hj j!hjhhhjhK:ubah}(h]jah ](j%j&eh"]h$]h&]j*j+)j,huh1hhjhK:hjhhubj.)}(hhh]j3)}(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&]uh1j2ho/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&]uh1j-hjhhhjhK:ubeh}(h]h ](j=functioneh"]h$]h&]jPj=jQj jRj jSjTjUuh1hhhhhhNhNubjW)}(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](j3)}(h**Parameters**h]ja)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj ubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK>hj ubjw)}(hhh](j|)}(hD``struct v4l2_enum_dv_timings *t`` the v4l2_enum_dv_timings struct. h](j)}(h"``struct v4l2_enum_dv_timings *t``h]j)}(hj h]hstruct v4l2_enum_dv_timings *t}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 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 ubj)}(hhh]j3)}(h the v4l2_enum_dv_timings struct.h]h the v4l2_enum_dv_timings struct.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hj hK=hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j{hj hK=hj ubj|)}(hP``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. h](j)}(h)``const struct v4l2_dv_timings_cap *cap``h]j)}(hj2 h]h%const struct v4l2_dv_timings_cap *cap}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0 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, ubj)}(hhh]j3)}(h%the v4l2_dv_timings_cap capabilities.h]h%the v4l2_dv_timings_cap capabilities.}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjG hK>hjH ubah}(h]h ]h"]h$]h&]uh1jhj, ubeh}(h]h ]h"]h$]h&]uh1j{hjG hK>hj ubj|)}(hW``v4l2_check_dv_timings_fnc fnc`` callback to check if this timing is OK. May be NULL. h](j)}(h!``v4l2_check_dv_timings_fnc fnc``h]j)}(hjk h]hv4l2_check_dv_timings_fnc fnc}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji 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?hje ubj)}(hhh]j3)}(h4callback to check if this timing is OK. May be NULL.h]h4callback to check if this timing is OK. May be NULL.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hj hK?hj ubah}(h]h ]h"]h$]h&]uh1jhje ubeh}(h]h ]h"]h$]h&]uh1j{hj hK?hj ubj|)}(h<``void *fnc_handle`` a handle that is passed on to **fnc**. h](j)}(h``void *fnc_handle``h]j)}(hj h]hvoid *fnc_handle}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 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 ubj)}(hhh]j3)}(h&a handle that is passed on to **fnc**.h](ha handle that is passed on to }(hj hhhNhNubja)}(h**fnc**h]hfnc}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j2hj hK@hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j{hj hK@hj ubeh}(h]h ]h"]h$]h&]uh1jvhj ubj3)}(h**Description**h]ja)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj ubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKBhj ubj3)}(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&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKAhj ubj3)}(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 hhhNhNubja)}(h**t**h]ht}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj ubh, and return 0, otherwise it returns -EINVAL.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKEhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jVhhhhhNhNubh)}(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](ju)}(hjxh]hbool}(hjW hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjS hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKOubj)}(h h]h }(hje hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS hhhjd hKOubja)}(hv4l2_find_dv_timings_caph]j&)}(hv4l2_find_dv_timings_caph]hv4l2_find_dv_timings_cap}(hjw hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjs ubah}(h]h ](jvjweh"]h$]h&]hhuh1j`hjS hhhjd hKOubj|)}(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](j)}(hstruct v4l2_dv_timings *th](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j&)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetj modnameN classnameNjCjF)}jI]jL)}j?jy sbc.v4l2_find_dv_timings_capasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(hjh]ht}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h%const struct v4l2_dv_timings_cap *caph](j)}(hjh]hconst}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(h h]h }(hj, hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j&)}(hv4l2_dv_timings_caph]hv4l2_dv_timings_cap}(hj= hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj: ubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetj? modnameN classnameNjCjF)}jI]j c.v4l2_find_dv_timings_capasbuh1hhj ubj)}(h h]h }(hj[ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hji hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(hcaph]hcap}(hjv hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hunsigned pclock_deltah](ju)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(h pclock_deltah]h pclock_delta}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hv4l2_check_dv_timings_fnc fnch](h)}(hhh]j&)}(hv4l2_check_dv_timings_fnch]hv4l2_check_dv_timings_fnc}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetj modnameN classnameNjCjF)}jI]j c.v4l2_find_dv_timings_capasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(hfnch]hfnc}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hvoid *fnc_handleh](ju)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj( hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(h fnc_handleh]h fnc_handle}(hj5 hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1j{hjS hhhjd hKOubeh}(h]h ]h"]h$]h&]hhjuh1hj j!hjO hhhjd hKOubah}(h]jJ ah ](j%j&eh"]h$]h&]j*j+)j,huh1hhjd hKOhjL hhubj.)}(hhh]j3)}(hFind the closest timings structh]hFind the closest timings struct}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKOhj\ hhubah}(h]h ]h"]h$]h&]uh1j-hjL hhhjd hKOubeh}(h]h ](j=functioneh"]h$]h&]jPj=jQjw jRjw jSjTjUuh1hhhhhhNhNubjW)}(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](j3)}(h**Parameters**h]ja)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj ubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKShj{ ubjw)}(hhh](j|)}(h?``struct v4l2_dv_timings *t`` the v4l2_enum_dv_timings struct. h](j)}(h``struct v4l2_dv_timings *t``h]j)}(hj h]hstruct v4l2_dv_timings *t}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 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.hhKQhj ubj)}(hhh]j3)}(h the v4l2_enum_dv_timings struct.h]h the v4l2_enum_dv_timings struct.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hj hKQhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j{hj hKQhj ubj|)}(hP``const struct v4l2_dv_timings_cap *cap`` the v4l2_dv_timings_cap capabilities. h](j)}(h)``const struct v4l2_dv_timings_cap *cap``h]j)}(hj h]h%const struct v4l2_dv_timings_cap *cap}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 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.hhKRhj ubj)}(hhh]j3)}(h%the v4l2_dv_timings_cap capabilities.h]h%the v4l2_dv_timings_cap capabilities.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hj hKRhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j{hj hKRhj ubj|)}(hi``unsigned pclock_delta`` maximum delta between t->pixelclock and the timing struct under consideration. h](j)}(h``unsigned pclock_delta``h]j)}(hjh]hunsigned pclock_delta}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKThj ubj)}(hhh]j3)}(hNmaximum delta between t->pixelclock and the timing struct under consideration.h]hNmaximum delta between t->pixelclock and the timing struct under consideration.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKShj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j{hj'hKThj ubj|)}(hb``v4l2_check_dv_timings_fnc fnc`` callback to check if a given timings struct is OK. May be NULL. h](j)}(h!``v4l2_check_dv_timings_fnc fnc``h]j)}(hjLh]hv4l2_check_dv_timings_fnc fnc}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKUhjFubj)}(hhh]j3)}(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.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjahKUhjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1j{hjahKUhj ubj|)}(h<``void *fnc_handle`` a handle that is passed on to **fnc**. h](j)}(h``void *fnc_handle``h]j)}(hjh]hvoid *fnc_handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKVhjubj)}(hhh]j3)}(h&a handle that is passed on to **fnc**.h](ha handle that is passed on to }(hjhhhNhNubja)}(h**fnc**h]hfnc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j2hjhKVhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j{hjhKVhj ubeh}(h]h ]h"]h$]h&]uh1jvhj{ ubj3)}(h**Description**h]ja)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKXhj{ ubj3)}(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&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKWhj{ ubj3)}(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 }(hjhhhNhNubja)}(h**t**h]ht}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjubhM with the found timings and it returns true. On failure it will return false.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhK\hj{ ubeh}(h]h ] kernelindentah"]h$]h&]uh1jVhhhhhNhNubh)}(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](ju)}(hjxh]hbool}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthj4hhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKgubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4hhhjEhKgubja)}(hv4l2_find_dv_timings_cea861_vich]j&)}(hv4l2_find_dv_timings_cea861_vich]hv4l2_find_dv_timings_cea861_vic}(hjXhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjTubah}(h]h ](jvjweh"]h$]h&]hhuh1j`hj4hhhjEhKgubj|)}(h#(struct v4l2_dv_timings *t, u8 vic)h](j)}(hstruct v4l2_dv_timings *th](j)}(hjh]hstruct}(hjthhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubh)}(hhh]j&)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjmodnameN classnameNjCjF)}jI]jL)}j?jZsb!c.v4l2_find_dv_timings_cea861_vicasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj&)}(hjh]ht}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjpubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjlubj)}(hu8 vich](h)}(hhh]j&)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjmodnameN classnameNjCjF)}jI]j!c.v4l2_find_dv_timings_cea861_vicasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hvich]hvic}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjlubeh}(h]h ]h"]h$]h&]hhuh1j{hj4hhhjEhKgubeh}(h]h ]h"]h$]h&]hhjuh1hj j!hj0hhhjEhKgubah}(h]j+ah ](j%j&eh"]h$]h&]j*j+)j,huh1hhjEhKghj-hhubj.)}(hhh]j3)}(h!find timings based on CEA-861 VICh]h!find timings based on CEA-861 VIC}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j2ho/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&]uh1j-hj-hhhjEhKgubeh}(h]h ](j=functioneh"]h$]h&]jPj=jQjVjRjVjSjTjUuh1hhhhhhNhNubjW)}(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](j3)}(h**Parameters**h]ja)}(hj`h]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj^ubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKkhjZubjw)}(hhh](j|)}(h0``struct v4l2_dv_timings *t`` the timings data. h](j)}(h``struct v4l2_dv_timings *t``h]j)}(hjh]hstruct v4l2_dv_timings *t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}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.hhKhhjyubj)}(hhh]j3)}(hthe timings data.h]hthe timings data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjhKhhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1j{hjhKhhjvubj|)}(h``u8 vic`` CEA-861 VIC code h](j)}(h ``u8 vic``h]j)}(hjh]hu8 vic}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKihjubj)}(hhh]j3)}(hCEA-861 VIC codeh]hCEA-861 VIC code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjhKihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j{hjhKihjvubeh}(h]h ]h"]h$]h&]uh1jvhjZubj3)}(h**Description**h]ja)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKkhjZubj3)}(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 }(hj hhhNhNubja)}(h**t**h]ht}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj ubhM with the found timings and it returns true. On failure it will return false.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKjhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jVhhhhhNhNubh)}(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](ju)}(hjxh]hbool}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjFhhho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKqubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhjWhKqubja)}(hv4l2_match_dv_timingsh]j&)}(hv4l2_match_dv_timingsh]hv4l2_match_dv_timings}(hjjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjfubah}(h]h ](jvjweh"]h$]h&]hhuh1j`hjFhhhjWhKqubj|)}(h(const struct v4l2_dv_timings *measured, const struct v4l2_dv_timings *standard, unsigned pclock_delta, bool match_reduced_fps)h](j)}(h&const struct v4l2_dv_timings *measuredh](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j&)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjmodnameN classnameNjCjF)}jI]jL)}j?jlsbc.v4l2_match_dv_timingsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hmeasuredh]hmeasured}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj~ubj)}(h&const struct v4l2_dv_timings *standardh](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j&)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hjLhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjIubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjNmodnameN classnameNjCjF)}jI]jc.v4l2_match_dv_timingsasbuh1hhjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hstandardh]hstandard}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj~ubj)}(hunsigned pclock_deltah](ju)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(h pclock_deltah]h pclock_delta}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj~ubj)}(hbool match_reduced_fpsh](ju)}(hjxh]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hmatch_reduced_fpsh]hmatch_reduced_fps}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj~ubeh}(h]h ]h"]h$]h&]hhuh1j{hjFhhhjWhKqubeh}(h]h ]h"]h$]h&]hhjuh1hj j!hjBhhhjWhKqubah}(h]j=ah ](j%j&eh"]h$]h&]j*j+)j,huh1hhjWhKqhj?hhubj.)}(hhh]j3)}(hdo two timings match?h]hdo two timings match?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKqhjhhubah}(h]h ]h"]h$]h&]uh1j-hj?hhhjWhKqubeh}(h]h ](j=functioneh"]h$]h&]jPj=jQj0jRj0jSjTjUuh1hhhhhhNhNubjW)}(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](j3)}(h**Parameters**h]ja)}(hj:h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj8ubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKuhj4ubjw)}(hhh](j|)}(hF``const struct v4l2_dv_timings *measured`` the measured timings data. h](j)}(h*``const struct v4l2_dv_timings *measured``h]j)}(hjYh]h&const struct v4l2_dv_timings *measured}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKshjSubj)}(hhh]j3)}(hthe measured timings data.h]hthe measured timings data.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjnhKshjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1j{hjnhKshjPubj|)}(hR``const struct v4l2_dv_timings *standard`` the timings according to the standard. h](j)}(h*``const struct v4l2_dv_timings *standard``h]j)}(hjh]h&const struct v4l2_dv_timings *standard}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKthjubj)}(hhh]j3)}(h&the timings according to the standard.h]h&the timings according to the standard.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hjhKthjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j{hjhKthjPubj|)}(he``unsigned pclock_delta`` maximum delta in Hz between standard->pixelclock and the measured timings. h](j)}(h``unsigned pclock_delta``h]j)}(hjh]hunsigned pclock_delta}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKvhjubj)}(hhh]j3)}(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&]uh1j2ho/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&]uh1j{hjhKvhjPubj|)}(hX``bool match_reduced_fps`` if true, then fail if V4L2_DV_FL_REDUCED_FPS does not match. h](j)}(h``bool match_reduced_fps``h]j)}(hjh]hbool match_reduced_fps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKxhjubj)}(hhh]j3)}(hc.v4l2_detect_gtfasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(haspecth]haspect}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj$ubj)}(h%const struct v4l2_dv_timings_cap *caph](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j&)}(hv4l2_dv_timings_caph]hv4l2_dv_timings_cap}(hj9hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj6ubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetj;modnameN classnameNjCjF)}jI]j>c.v4l2_detect_gtfasbuh1hhjubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hcaph]hcap}(hjrhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj$ubj)}(hstruct v4l2_dv_timings *fmth](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j&)}(hv4l2_dv_timingsh]hv4l2_dv_timings}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubah}(h]h ]h"]h$]h&] refdomainj=reftypej? reftargetjmodnameN classnameNjCjF)}jI]j>c.v4l2_detect_gtfasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hfmth]hfmt}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj$ubeh}(h]h ]h"]h$]h&]hhuh1j{hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1hj j!hjhhhjhKubah}(h]jah ](j%j&eh"]h$]h&]j*j+)j,huh1hhjhKhjhhubj.)}(hhh]j3)}(h3detect if the given timings follow the GTF standardh]h3detect if the given timings follow the GTF standard}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j2ho/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&]uh1j-hjhhhjhKubeh}(h]h ](j=functioneh"]h$]h&]jPj=jQj$ jRj$ jSjTjUuh1hhhhhhNhNubjW)}(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](j3)}(h**Parameters**h]ja)}(hj. h]h Parameters}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj, ubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhj( ubjw)}(hhh](j|)}(h[``unsigned int frame_height`` the total height of the frame (including blanking) in lines. h](j)}(h``unsigned int frame_height``h]j)}(hjM h]hunsigned int frame_height}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK 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.hhKhjG ubj)}(hhh]j3)}(h(jRj>(jSjTjUuh1hhhhhhNhNubjW)}(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](js)}(h**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; }; h](j3)}(h**Definition**::h](ja)}(h**Definition**h]h Definition}(hjN(hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjJ(ubh:}(hjJ(hhhNhNubeh}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjF(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; };}hji(sbah}(h]h ]h"]h$]h&]hhuh1jg(ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjF(ubeh}(h]h ]h"]h$]h&]uh1jrhjf(hKhjB(ubj3)}(h **Members**h]ja)}(hj(h]hMembers}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj~(ubah}(h]h ]h"]h$]h&]uh1j2ho/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-dv-timings:6: ./include/media/v4l2-dv-timings.hhKhjB(ubjw)}(hhh](j|)}(h4``colorspace`` enum v4l2_colorspace, the colorspace h](j)}(h``colorspace``h]j)}(hj(h]h colorspace}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(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)}(hhh]j3)}(h$enum v4l2_colorspace, the colorspaceh]h$enum v4l2_colorspace, the colorspace}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hj(hKhj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1j{hj(hKhj(ubj|)}(h8``ycbcr_enc`` enum v4l2_ycbcr_encoding, Y'CbCr encoding h](j)}(h ``ycbcr_enc``h]j)}(hj(h]h ycbcr_enc}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(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)}(hhh]j3)}(h)enum v4l2_ycbcr_encoding, Y'CbCr encodingh]h+enum v4l2_ycbcr_encoding, Y’CbCr encoding}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hj(hKhj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1j{hj(hKhj(ubj|)}(hA``quantization`` enum v4l2_quantization, colorspace quantization h](j)}(h``quantization``h]j)}(hj)h]h quantization}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)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)}(hhh]j3)}(h/enum v4l2_quantization, colorspace quantizationh]h/enum v4l2_quantization, colorspace quantization}(hj*)hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hj&)hKhj')ubah}(h]h ]h"]h$]h&]uh1jhj )ubeh}(h]h ]h"]h$]h&]uh1j{hj&)hKhj(ubj|)}(h?``xfer_func`` enum v4l2_xfer_func, colorspace transfer functionh](j)}(h ``xfer_func``h]j)}(hjJ)h]h xfer_func}(hjL)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH)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.hhKhjD)ubj)}(hhh]j3)}(h1enum v4l2_xfer_func, colorspace transfer functionh]h1enum v4l2_xfer_func, colorspace transfer function}(hjc)hhhNhNubah}(h]h ]h"]h$]h&]uh1j2ho/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&]uh1jhjD)ubeh}(h]h ]h"]h$]h&]uh1j{hj_)hKhj(ubeh}(h]h ]h"]h$]h&]uh1jvhjB(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jVhhhhhNhNubeh}(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_sourcehnj _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_targetsX]substitution_defs}substitution_names}refnames}refids}nameids}j)j)s nametypes}j)sh}(j)hhhjjjgjljjjJ jO j+j0j=jBjyj~jjjjjQ"jV"jY$j^$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.