sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget*/translations/zh_CN/admin-guide/media/fimcmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/zh_TW/admin-guide/media/fimcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/it_IT/admin-guide/media/fimcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ja_JP/admin-guide/media/fimcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ko_KR/admin-guide/media/fimcmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/sp_SP/admin-guide/media/fimcmodnameN 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:spacepreserveuh1hhhhhhD/var/lib/git/docbuild/linux/Documentation/admin-guide/media/fimc.rsthKubh)}(h4This data file has been placed in the public domain.h]h4This data file has been placed in the public domain.}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhho/srv/docbuild/lib/venvs/build-kernel-docs/lib64/python3.9/site-packages/docutils/parsers/rst/include/isonum.txthKubh)}(hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .h]hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhsubstitution_definition)}(h*.. |amp| unicode:: U+00026 .. AMPERSANDh]h&}hhsbah}(h]h ]h"]ampah$]h&]uh1hhhhKhhhhubh)}(h+.. |apos| unicode:: U+00027 .. APOSTROPHEh]h'}hhsbah}(h]h ]h"]aposah$]h&]uh1hhhhKhhhhubh)}(h).. |ast| unicode:: U+0002A .. ASTERISKh]h*}hhsbah}(h]h ]h"]astah$]h&]uh1hhhhK hhhhubh)}(h+.. |brvbar| unicode:: U+000A6 .. BROKEN BARh]h¦}hjsbah}(h]h ]h"]brvbarah$]h&]uh1hhhhK hhhhubh)}(h0.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUSh]h\}hjsbah}(h]h ]h"]bsolah$]h&]uh1hhhhK hhhhubh)}(h*.. |cent| unicode:: U+000A2 .. CENT SIGNh]h¢}hjsbah}(h]h ]h"]centah$]h&]uh1hhhhK hhhhubh)}(h&.. |colon| unicode:: U+0003A .. COLONh]h:}hj-sbah}(h]h ]h"]colonah$]h&]uh1hhhhK hhhhubh)}(h&.. |comma| unicode:: U+0002C .. COMMAh]h,}hj<sbah}(h]h ]h"]commaah$]h&]uh1hhhhKhhhhubh)}(h... |commat| unicode:: U+00040 .. COMMERCIAL ATh]h@}hjKsbah}(h]h ]h"]commatah$]h&]uh1hhhhKhhhhubh)}(h/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGNh]h©}hjZsbah}(h]h ]h"]copyah$]h&]uh1hhhhKhhhhubh)}(h... |curren| unicode:: U+000A4 .. CURRENCY SIGNh]h¤}hjisbah}(h]h ]h"]currenah$]h&]uh1hhhhKhhhhubh)}(h0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROWh]h↓}hjxsbah}(h]h ]h"]darrah$]h&]uh1hhhhKhhhhubh)}(h,.. |deg| unicode:: U+000B0 .. DEGREE SIGNh]h°}hjsbah}(h]h ]h"]degah$]h&]uh1hhhhKhhhhubh)}(h... |divide| unicode:: U+000F7 .. DIVISION SIGNh]h÷}hjsbah}(h]h ]h"]divideah$]h&]uh1hhhhKhhhhubh)}(h,.. |dollar| unicode:: U+00024 .. DOLLAR SIGNh]h$}hjsbah}(h]h ]h"]dollarah$]h&]uh1hhhhKhhhhubh)}(h,.. |equals| unicode:: U+0003D .. EQUALS SIGNh]h=}hjsbah}(h]h ]h"]equalsah$]h&]uh1hhhhKhhhhubh)}(h1.. |excl| unicode:: U+00021 .. EXCLAMATION MARKh]h!}hjsbah}(h]h ]h"]exclah$]h&]uh1hhhhKhhhhubh)}(h9.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjsbah}(h]h ]h"]frac12ah$]h&]uh1hhhhKhhhhubh)}(h<.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTERh]h¼}hjsbah}(h]h ]h"]frac14ah$]h&]uh1hhhhKhhhhubh)}(h;.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTHh]h⅛}hjsbah}(h]h ]h"]frac18ah$]h&]uh1hhhhKhhhhubh)}(h?.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERSh]h¾}hjsbah}(h]h ]h"]frac34ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHSh]h⅜}hjsbah}(h]h ]h"]frac38ah$]h&]uh1hhhhKhhhhubh)}(h=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHSh]h⅝}hjsbah}(h]h ]h"]frac58ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHSh]h⅞}hj,sbah}(h]h ]h"]frac78ah$]h&]uh1hhhhKhhhhubh)}(h2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGNh]h>}hj;sbah}(h]h ]h"]gtah$]h&]uh1hhhhKhhhhubh)}(h9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjJsbah}(h]h ]h"]halfah$]h&]uh1hhhhK hhhhubh)}(h/.. |horbar| unicode:: U+02015 .. HORIZONTAL BARh]h―}hjYsbah}(h]h ]h"]horbarah$]h&]uh1hhhhK!hhhhubh)}(h'.. |hyphen| unicode:: U+02010 .. HYPHENh]h‐}hjhsbah}(h]h ]h"]hyphenah$]h&]uh1hhhhK"hhhhubh)}(h:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARKh]h¡}hjwsbah}(h]h ]h"]iexclah$]h&]uh1hhhhK#hhhhubh)}(h7.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARKh]h¿}hjsbah}(h]h ]h"]iquestah$]h&]uh1hhhhK$hhhhubh)}(hJ.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARKh]h«}hjsbah}(h]h ]h"]laquoah$]h&]uh1hhhhK%hhhhubh)}(h0.. |larr| unicode:: U+02190 .. LEFTWARDS ARROWh]h←}hjsbah}(h]h ]h"]larrah$]h&]uh1hhhhK&hhhhubh)}(h3.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKETh]h{}hjsbah}(h]h ]h"]lcubah$]h&]uh1hhhhK'hhhhubh)}(h;.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARKh]h“}hjsbah}(h]h ]h"]ldquoah$]h&]uh1hhhhK(hhhhubh)}(h).. |lowbar| unicode:: U+0005F .. LOW LINEh]h_}hjsbah}(h]h ]h"]lowbarah$]h&]uh1hhhhK)hhhhubh)}(h1.. |lpar| unicode:: U+00028 .. LEFT PARENTHESISh]h(}hjsbah}(h]h ]h"]lparah$]h&]uh1hhhhK*hhhhubh)}(h4.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKETh]h[}hjsbah}(h]h ]h"]lsqbah$]h&]uh1hhhhK+hhhhubh)}(h;.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARKh]h‘}hjsbah}(h]h ]h"]lsquoah$]h&]uh1hhhhK,hhhhubh)}(h/.. |lt| unicode:: U+0003C .. LESS-THAN SIGNh]h<}hj sbah}(h]h ]h"]ltah$]h&]uh1hhhhK-hhhhubh)}(h+.. |micro| unicode:: U+000B5 .. MICRO SIGNh]hµ}hjsbah}(h]h ]h"]microah$]h&]uh1hhhhK.hhhhubh)}(h+.. |middot| unicode:: U+000B7 .. MIDDLE DOTh]h·}hj+sbah}(h]h ]h"]middotah$]h&]uh1hhhhK/hhhhubh)}(h/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACEh]h }hj:sbah}(h]h ]h"]nbspah$]h&]uh1hhhhK0hhhhubh)}(h).. |not| unicode:: U+000AC .. NOT SIGNh]h¬}hjIsbah}(h]h ]h"]notah$]h&]uh1hhhhK1hhhhubh)}(h,.. |num| unicode:: U+00023 .. NUMBER SIGNh]h#}hjXsbah}(h]h ]h"]numah$]h&]uh1hhhhK2hhhhubh)}(h).. |ohm| unicode:: U+02126 .. OHM SIGNh]hΩ}hjgsbah}(h]h ]h"]ohmah$]h&]uh1hhhhK3hhhhubh)}(h;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATORh]hª}hjvsbah}(h]h ]h"]ordfah$]h&]uh1hhhhK4hhhhubh)}(h<.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATORh]hº}hjsbah}(h]h ]h"]ordmah$]h&]uh1hhhhK5hhhhubh)}(h-.. |para| unicode:: U+000B6 .. PILCROW SIGNh]h¶}hjsbah}(h]h ]h"]paraah$]h&]uh1hhhhK6hhhhubh)}(h-.. |percnt| unicode:: U+00025 .. PERCENT SIGNh]h%}hjsbah}(h]h ]h"]percntah$]h&]uh1hhhhK7hhhhubh)}(h*.. |period| unicode:: U+0002E .. FULL STOPh]h.}hjsbah}(h]h ]h"]periodah$]h&]uh1hhhhK8hhhhubh)}(h*.. |plus| unicode:: U+0002B .. PLUS SIGNh]h+}hjsbah}(h]h ]h"]plusah$]h&]uh1hhhhK9hhhhubh)}(h0.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGNh]h±}hjsbah}(h]h ]h"]plusmnah$]h&]uh1hhhhK:hhhhubh)}(h+.. |pound| unicode:: U+000A3 .. POUND SIGNh]h£}hjsbah}(h]h ]h"]poundah$]h&]uh1hhhhK;hhhhubh)}(h... |quest| unicode:: U+0003F .. QUESTION MARKh]h?}hjsbah}(h]h ]h"]questah$]h&]uh1hhhhKhhhhubh)}(h1.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROWh]h→}hjsbah}(h]h ]h"]rarrah$]h&]uh1hhhhK?hhhhubh)}(h4.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKETh]h}}hj*sbah}(h]h ]h"]rcubah$]h&]uh1hhhhK@hhhhubh)}(h<.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARKh]h”}hj9sbah}(h]h ]h"]rdquoah$]h&]uh1hhhhKAhhhhubh)}(h0.. |reg| unicode:: U+000AE .. REGISTERED SIGNh]h®}hjHsbah}(h]h ]h"]regah$]h&]uh1hhhhKBhhhhubh)}(h2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESISh]h)}hjWsbah}(h]h ]h"]rparah$]h&]uh1hhhhKChhhhubh)}(h5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKETh]h]}hjfsbah}(h]h ]h"]rsqbah$]h&]uh1hhhhKDhhhhubh)}(h<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARKh]h’}hjusbah}(h]h ]h"]rsquoah$]h&]uh1hhhhKEhhhhubh)}(h-.. |sect| unicode:: U+000A7 .. SECTION SIGNh]h§}hjsbah}(h]h ]h"]sectah$]h&]uh1hhhhKFhhhhubh)}(h*.. |semi| unicode:: U+0003B .. SEMICOLONh]h;}hjsbah}(h]h ]h"]semiah$]h&]uh1hhhhKGhhhhubh)}(h,.. |shy| unicode:: U+000AD .. SOFT HYPHENh]h­}hjsbah}(h]h ]h"]shyah$]h&]uh1hhhhKHhhhhubh)}(h(.. |sol| unicode:: U+0002F .. SOLIDUSh]h/}hjsbah}(h]h ]h"]solah$]h&]uh1hhhhKIhhhhubh)}(h,.. |sung| unicode:: U+0266A .. EIGHTH NOTEh]h♪}hjsbah}(h]h ]h"]sungah$]h&]uh1hhhhKJhhhhubh)}(h0.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONEh]h¹}hjsbah}(h]h ]h"]sup1ah$]h&]uh1hhhhKKhhhhubh)}(h0.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWOh]h²}hjsbah}(h]h ]h"]sup2ah$]h&]uh1hhhhKLhhhhubh)}(h2.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREEh]h³}hjsbah}(h]h ]h"]sup3ah$]h&]uh1hhhhKMhhhhubh)}(h4.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGNh]h×}hjsbah}(h]h ]h"]timesah$]h&]uh1hhhhKNhhhhubh)}(h0.. |trade| unicode:: U+02122 .. TRADE MARK SIGNh]h™}hj sbah}(h]h ]h"]tradeah$]h&]uh1hhhhKOhhhhubh)}(h... |uarr| unicode:: U+02191 .. UPWARDS ARROWh]h↑}hjsbah}(h]h ]h"]uarrah$]h&]uh1hhhhKPhhhhubh)}(h... |verbar| unicode:: U+0007C .. VERTICAL LINEh]h|}hj)sbah}(h]h ]h"]verbarah$]h&]uh1hhhhKQhhhhubh)}(h*.. |yen| unicode:: U+000A5 .. YEN SIGN h]h¥}hj8sbah}(h]h ]h"]yenah$]h&]uh1hhhhKRhhhhubhsection)}(hhh](htitle)}(h#The Samsung S5P/Exynos4 FIMC driverh]h#The Samsung S5P/Exynos4 FIMC driver}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjIhhhhhKubh paragraph)}(h:Copyright |copy| 2012 - 2013 Samsung Electronics Co., Ltd.h](h Copyright }(hj^hhhNhNubh©}(hj^hhhNhNubh* 2012 - 2013 Samsung Electronics Co., Ltd.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhKhjIhhubj])}(hX-The FIMC (Fully Interactive Mobile Camera) device available in Samsung SoC Application Processors is an integrated camera host interface, color space converter, image resizer and rotator. It's also capable of capturing data from LCD controller (FIMD) through the SoC internal writeback data path. There are multiple FIMC instances in the SoCs (up to 4), having slightly different capabilities, like pixel alignment constraints, rotator availability, LCD writeback support, etc. The driver is located at drivers/media/platform/samsung/exynos4-is directory.h]hX/The FIMC (Fully Interactive Mobile Camera) device available in Samsung SoC Application Processors is an integrated camera host interface, color space converter, image resizer and rotator. It’s also capable of capturing data from LCD controller (FIMD) through the SoC internal writeback data path. There are multiple FIMC instances in the SoCs (up to 4), having slightly different capabilities, like pixel alignment constraints, rotator availability, LCD writeback support, etc. The driver is located at drivers/media/platform/samsung/exynos4-is directory.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK hjIhhubjH)}(hhh](jM)}(hSupported SoCsh]hSupported SoCs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKubj])}(h.S5PC100 (mem-to-mem only), S5PV210, Exynos4210h]h.S5PC100 (mem-to-mem only), S5PV210, Exynos4210}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjhhubeh}(h]supported-socsah ]h"]supported socsah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(hSupported featuresh]hSupported features}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKubh bullet_list)}(hhh](h list_item)}(h4camera parallel interface capture (ITU-R.BT601/565);h]j])}(hjh]h4camera parallel interface capture (ITU-R.BT601/565);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h,camera serial interface capture (MIPI-CSI2);h]j])}(hjh]h,camera serial interface capture (MIPI-CSI2);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hSmemory-to-memory processing (color space conversion, scaling, mirror and rotation);h]j])}(hSmemory-to-memory processing (color space conversion, scaling, mirror and rotation);h]hSmemory-to-memory processing (color space conversion, scaling, mirror and rotation);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hdynamic pipeline re-configuration at runtime (re-attachment of any FIMC instance to any parallel video input or any MIPI-CSI front-end);h]j])}(hdynamic pipeline re-configuration at runtime (re-attachment of any FIMC instance to any parallel video input or any MIPI-CSI front-end);h]hdynamic pipeline re-configuration at runtime (re-attachment of any FIMC instance to any parallel video input or any MIPI-CSI front-end);}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h*runtime PM and system wide suspend/resume h]j])}(h)runtime PM and system wide suspend/resumeh]h)runtime PM and system wide suspend/resume}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK!hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjhhubeh}(h]supported-featuresah ]h"]supported featuresah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(hNot currently supportedh]hNot currently supported}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjGhhhhhK$ubj)}(hhh](j)}(hLCD writeback inputh]j])}(hj]h]hLCD writeback input}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK&hj[ubah}(h]h ]h"]h$]h&]uh1jhjXhhhhhNubj)}(h$per frame clock gating (mem-to-mem) h]j])}(h#per frame clock gating (mem-to-mem)h]h#per frame clock gating (mem-to-mem)}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK'hjrubah}(h]h ]h"]h$]h&]uh1jhjXhhhhhNubeh}(h]h ]h"]h$]h&]j=j>uh1jhhhK&hjGhhubeh}(h]not-currently-supportedah ]h"]not currently supportedah$]h&]uh1jGhjIhhhhhK$ubjH)}(hhh](jM)}(hUser space interfacesh]hUser space interfaces}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK*ubjH)}(hhh](jM)}(hMedia device interfaceh]hMedia device interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK-ubj])}(hThe driver supports Media Controller API as defined at :ref:`media_controller`. The media device driver name is "Samsung S5P FIMC".h](h7The driver supports Media Controller API as defined at }(hjhhhNhNubh)}(h:ref:`media_controller`h]hinline)}(hjh]hmedia_controller}(hjhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocadmin-guide/media/fimc refdomainjreftyperef refexplicitrefwarn reftargetmedia_controlleruh1hhhhK/hjubh9. The media device driver name is “Samsung S5P FIMC”.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhK/hjhhubj])}(hThe purpose of this interface is to allow changing assignment of FIMC instances to the SoC peripheral camera input at runtime and optionally to control internal connections of the MIPI-CSIS device(s) to the FIMC entities.h]hThe purpose of this interface is to allow changing assignment of FIMC instances to the SoC peripheral camera input at runtime and optionally to control internal connections of the MIPI-CSIS device(s) to the FIMC entities.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK2hjhhubj])}(hThe media device interface allows to configure the SoC for capturing image data from the sensor through more than one FIMC instance (e.g. for simultaneous viewfinder and still capture setup).h]hThe media device interface allows to configure the SoC for capturing image data from the sensor through more than one FIMC instance (e.g. for simultaneous viewfinder and still capture setup).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK6hjhhubj])}(hReconfiguration is done by enabling/disabling media links created by the driver during initialization. The internal device topology can be easily discovered through media entity and links enumeration.h]hReconfiguration is done by enabling/disabling media links created by the driver during initialization. The internal device topology can be easily discovered through media entity and links enumeration.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK:hjhhubeh}(h]media-device-interfaceah ]h"]media device interfaceah$]h&]uh1jGhjhhhhhK-ubjH)}(hhh](jM)}(hMemory-to-memory video nodeh]hMemory-to-memory video node}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj#hhhhhK?ubj])}(hXFV4L2 memory-to-memory interface at /dev/video? device node. This is standalone video device, it has no media pads. However please note the mem-to-mem and capture video node operation on same FIMC instance is not allowed. The driver detects such cases but the applications should prevent them to avoid an undefined behaviour.h]hXFV4L2 memory-to-memory interface at /dev/video? device node. This is standalone video device, it has no media pads. However please note the mem-to-mem and capture video node operation on same FIMC instance is not allowed. The driver detects such cases but the applications should prevent them to avoid an undefined behaviour.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKAhj#hhubeh}(h]memory-to-memory-video-nodeah ]h"]memory-to-memory video nodeah$]h&]uh1jGhjhhhhhK?ubjH)}(hhh](jM)}(hCapture video nodeh]hCapture video node}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjJhhhhhKHubj])}(hNThe driver supports V4L2 Video Capture Interface as defined at :ref:`devices`.h](h?The driver supports V4L2 Video Capture Interface as defined at }(hj[hhhNhNubh)}(h:ref:`devices`h]j)}(hjeh]hdevices}(hjghhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]refdocj refdomainjqreftyperef refexplicitrefwarnjdevicesuh1hhhhKJhj[ubh.}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhKJhjJhhubj])}(h{At the capture and mem-to-mem video nodes only the multi-planar API is supported. For more details see: :ref:`planar-apis`.h](hhAt the capture and mem-to-mem video nodes only the multi-planar API is supported. For more details see: }(hjhhhNhNubh)}(h:ref:`planar-apis`h]j)}(hjh]h planar-apis}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnj planar-apisuh1hhhhKMhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhKMhjJhhubeh}(h]capture-video-nodeah ]h"]capture video nodeah$]h&]uh1jGhjhhhhhKHubjH)}(hhh](jM)}(hCamera capture subdevsh]hCamera capture subdevs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKQubj])}(hEach FIMC instance exports a sub-device node (/dev/v4l-subdev?), a sub-device node is also created per each available and enabled at the platform level MIPI-CSI receiver device (currently up to two).h]hEach FIMC instance exports a sub-device node (/dev/v4l-subdev?), a sub-device node is also created per each available and enabled at the platform level MIPI-CSI receiver device (currently up to two).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKShjhhubeh}(h]camera-capture-subdevsah ]h"]camera capture subdevsah$]h&]uh1jGhjhhhhhKQubjH)}(hhh](jM)}(hsysfsh]hsysfs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKXubj])}(hIn order to enable more precise camera pipeline control through the sub-device API the driver creates a sysfs entry associated with "s5p-fimc-md" platform device. The entry path is: /sys/platform/devices/s5p-fimc-md/subdev_conf_mode.h]hIn order to enable more precise camera pipeline control through the sub-device API the driver creates a sysfs entry associated with “s5p-fimc-md” platform device. The entry path is: /sys/platform/devices/s5p-fimc-md/subdev_conf_mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKZhjhhubj])}(hIn typical use case there could be a following capture pipeline configuration: sensor subdev -> mipi-csi subdev -> fimc subdev -> video nodeh]hIn typical use case there could be a following capture pipeline configuration: sensor subdev -> mipi-csi subdev -> fimc subdev -> video node}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK^hjhhubj])}(hWhen we configure these devices through sub-device API at user space, the configuration flow must be from left to right, and the video node is configured as last one.h]hWhen we configure these devices through sub-device API at user space, the configuration flow must be from left to right, and the video node is configured as last one.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKahjhhubj])}(hXjWhen we don't use sub-device user space API the whole configuration of all devices belonging to the pipeline is done at the video node driver. The sysfs entry allows to instruct the capture node driver not to configure the sub-devices (format, crop), to avoid resetting the subdevs' configuration when the last configuration steps at the video node is performed.h]hXnWhen we don’t use sub-device user space API the whole configuration of all devices belonging to the pipeline is done at the video node driver. The sysfs entry allows to instruct the capture node driver not to configure the sub-devices (format, crop), to avoid resetting the subdevs’ configuration when the last configuration steps at the video node is performed.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKehjhhubj])}(haFor full sub-device control support (subdevs configured at user space before starting streaming):h]haFor full sub-device control support (subdevs configured at user space before starting streaming):}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKkhjhhubh literal_block)}(hE# echo "sub-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_modeh]hE# echo "sub-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode}hjGsbah}(h]h ]h"]h$]h&]hhforcelanguagenonehighlight_args}uh1jEhhhKnhjhhubj])}(hTFor V4L2 video node control only (subdevs configured internally by the host driver):h]hTFor V4L2 video node control only (subdevs configured internally by the host driver):}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKrhjhhubjF)}(hE# echo "vid-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_modeh]hE# echo "vid-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode}hjhsbah}(h]h ]h"]h$]h&]hhjUjVnonejX}uh1jEhhhKuhjhhubj])}(hThis is a default option.h]hThis is a default option.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKyhjhhubeh}(h]sysfsah ]h"]sysfsah$]h&]uh1jGhjhhhhhKXubeh}(h]user-space-interfacesah ]h"]user space interfacesah$]h&]uh1jGhjIhhhhhK*ubjH)}(hhh](jM)}(h25. Device mapping to video and subdev device nodesh]h25. Device mapping to video and subdev device nodes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK|ubj])}(hXThere are associated two video device nodes with each device instance in hardware - video capture and mem-to-mem and additionally a subdev node for more precise FIMC capture subsystem control. In addition a separate v4l2 sub-device node is created per each MIPI-CSIS device.h]hXThere are associated two video device nodes with each device instance in hardware - video capture and mem-to-mem and additionally a subdev node for more precise FIMC capture subsystem control. In addition a separate v4l2 sub-device node is created per each MIPI-CSIS device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK~hjhhubj])}(hRHow to find out which /dev/video? or /dev/v4l-subdev? is assigned to which device?h]hRHow to find out which /dev/video? or /dev/v4l-subdev? is assigned to which device?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjhhubj])}(hMYou can either grep through the kernel log to find relevant information, i.e.h]hMYou can either grep through the kernel log to find relevant information, i.e.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjhhubjF)}(h# dmesg | grep -i fimch]h# dmesg | grep -i fimc}hjsbah}(h]h ]h"]h$]h&]hhjUjVnonejX}uh1jEhhhKhjhhubj])}(hJ(note that udev, if present, might still have rearranged the video nodes),h]hJ(note that udev, if present, might still have rearranged the video nodes),}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjhhubj])}(hMor retrieve the information from /dev/media? with help of the media-ctl tool:h]hMor retrieve the information from /dev/media? with help of the media-ctl tool:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjhhubjF)}(h# media-ctl -ph]h# media-ctl -p}hjsbah}(h]h ]h"]h$]h&]hhjUjVnonejX}uh1jEhhhKhjhhubeh}(h]/device-mapping-to-video-and-subdev-device-nodesah ]h"]25. device mapping to video and subdev device nodesah$]h&]uh1jGhjIhhhhhK|ubjH)}(hhh](jM)}(h7. Buildh]h7. Build}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj hhhhhKubj])}(hIf the driver is built as a loadable kernel module (CONFIG_VIDEO_SAMSUNG_S5P_FIMC=m) two modules are created (in addition to the core v4l2 modules): s5p-fimc.ko and optional s5p-csis.ko (MIPI-CSI receiver subdev).h]hIf the driver is built as a loadable kernel module (CONFIG_VIDEO_SAMSUNG_S5P_FIMC=m) two modules are created (in addition to the core v4l2 modules): s5p-fimc.ko and optional s5p-csis.ko (MIPI-CSI receiver subdev).}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubeh}(h]buildah ]h"]7. buildah$]h&]uh1jGhjIhhhhhKubeh}(h]#the-samsung-s5p-exynos4-fimc-driverah ]h"]#the samsung s5p/exynos4 fimc driverah$]h&]uh1jGhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jLN 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_handlerjg 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}(hhhhhhj jjjj*jj9j-jHj<jWjKjfjZjujijjxjjjjjjjjjjjjjjjjj jjjj)jj8j,jGj;jVjJjejYjtjhjjwjjjjjjjjjjjjjjjjj jjj j(jj7j+jFj:jUjIjdjXjsjgjjvjjjjjjjjjjjjjjjjj jjj j'jj6j*jEj9jTjHjcjWjrjfjjujjjjjjjjjjjjjjjjjjjj j&jj5j)jDj8usubstitution_names}(amphߌaposhasthbrvbarj bsoljcentj*colonj9commajHcommatjWcopyjfcurrenjudarrjdegjdividejdollarjequalsjexcljfrac12jfrac14jfrac18jfrac34j frac38jfrac58j)frac78j8gtjGhalfjVhorbarjehyphenjtiexcljiquestjlaquojlarrjlcubjldquojlowbarjlparjlsqbjlsquoj ltjmicroj(middotj7nbspjFnotjUnumjdohmjsordfjordmjparajpercntjperiodjplusjplusmnjpoundjquestjquotj raquojrarrj'rcubj6rdquojEregjTrparjcrsqbjrrsquojsectjsemijshyjsoljsungjsup1jsup2jsup3jtimesjtradejuarrj&verbarj5yenjDurefnames}refids}nameids}(jA j> jjjDjAjjjjj jjGjDjjjjjjj j j9 j6 u nametypes}(jA jjDjjj jGjjjj j9 uh}(j> jIjjjAjjjGjjjjjDj#jjJjjjjj jj6 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](Documentation/admin-guide/media/fimc.rst(NNNNta decorationNhhub.