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/userspace-api/media/drivers/omap3isp-uapimodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/zh_TW/userspace-api/media/drivers/omap3isp-uapimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/it_IT/userspace-api/media/drivers/omap3isp-uapimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/ja_JP/userspace-api/media/drivers/omap3isp-uapimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/ko_KR/userspace-api/media/drivers/omap3isp-uapimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/sp_SP/userspace-api/media/drivers/omap3isp-uapimodnameN 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:spacepreserveuh1hhhhhhW/var/lib/git/docbuild/linux/Documentation/userspace-api/media/drivers/omap3isp-uapi.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*OMAP 3 Image Signal Processor (ISP) driverh]h*OMAP 3 Image Signal Processor (ISP) driver}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjIhhhhhKubh paragraph)}(h'Copyright |copy| 2010 Nokia Corporationh](h Copyright }(hj^hhhNhNubh©}(hj^hhhNhNubh 2010 Nokia Corporation}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhKhjIhhubj])}(h-Copyright |copy| 2009 Texas Instruments, Inc.h](h Copyright }(hjthhhNhNubh©}(hjthhhNhNubh 2009 Texas Instruments, Inc.}(hjthhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhK hjIhhubj])}(hContacts: Laurent Pinchart , Sakari Ailus , David Cohen h](hContacts: Laurent Pinchart <}(hjhhhNhNubh reference)}(h!laurent.pinchart@ideasonboard.comh]h!laurent.pinchart@ideasonboard.com}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri(mailto:laurent.pinchart@ideasonboard.comuh1jhjubh>, Sakari Ailus <}(hjhhhNhNubj)}(hsakari.ailus@iki.fih]hsakari.ailus@iki.fi}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:sakari.ailus@iki.fiuh1jhjubh>, David Cohen <}(hjhhhNhNubj)}(hdacohen@gmail.comh]hdacohen@gmail.com}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:dacohen@gmail.comuh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhK hjIhhubjH)}(hhh](jM)}(hEventsh]hEvents}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKubj])}(htThe OMAP 3 ISP driver does support the V4L2 event interface on CCDC and statistics (AEWB, AF and histogram) subdevs.h]htThe OMAP 3 ISP driver does support the V4L2 event interface on CCDC and statistics (AEWB, AF and histogram) subdevs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjhhubj])}(hX]The CCDC subdev produces V4L2_EVENT_FRAME_SYNC type event on HS_VS interrupt which is used to signal frame start. Earlier version of this driver used V4L2_EVENT_OMAP3ISP_HS_VS for this purpose. The event is triggered exactly when the reception of the first line of the frame starts in the CCDC module. The event can be subscribed on the CCDC subdev.h]hX]The CCDC subdev produces V4L2_EVENT_FRAME_SYNC type event on HS_VS interrupt which is used to signal frame start. Earlier version of this driver used V4L2_EVENT_OMAP3ISP_HS_VS for this purpose. The event is triggered exactly when the reception of the first line of the frame starts in the CCDC module. The event can be subscribed on the CCDC subdev.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjhhubj])}(h(When using parallel interface one must pay account to correct configuration of the VS signal polarity. This is automatically correct when using the serial receivers.)h]h(When using parallel interface one must pay account to correct configuration of the VS signal polarity. This is automatically correct when using the serial receivers.)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjhhubj])}(hEach of the statistics subdevs is able to produce events. An event is generated whenever a statistics buffer can be dequeued by a user space application using the VIDIOC_OMAP3ISP_STAT_REQ IOCTL. The events available are:h]hEach of the statistics subdevs is able to produce events. An event is generated whenever a statistics buffer can be dequeued by a user space application using the VIDIOC_OMAP3ISP_STAT_REQ IOCTL. The events available are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK hjhhubh bullet_list)}(hhh](h list_item)}(hV4L2_EVENT_OMAP3ISP_AEWBh]j])}(hj(h]hV4L2_EVENT_OMAP3ISP_AEWB}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK%hj&ubah}(h]h ]h"]h$]h&]uh1j$hj!hhhhhNubj%)}(hV4L2_EVENT_OMAP3ISP_AFh]j])}(hj?h]hV4L2_EVENT_OMAP3ISP_AF}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK&hj=ubah}(h]h ]h"]h$]h&]uh1j$hj!hhhhhNubj%)}(hV4L2_EVENT_OMAP3ISP_HIST h]j])}(hV4L2_EVENT_OMAP3ISP_HISTh]hV4L2_EVENT_OMAP3ISP_HIST}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK'hjTubah}(h]h ]h"]h$]h&]uh1j$hj!hhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhK%hjhhubj])}(hX The type of the event data is struct omap3isp_stat_event_status for these ioctls. If there is an error calculating the statistics, there will be an event as usual, but no related statistics buffer. In this case omap3isp_stat_event_status.buf_err is set to non-zero.h]hX The type of the event data is struct omap3isp_stat_event_status for these ioctls. If there is an error calculating the statistics, there will be an event as usual, but no related statistics buffer. In this case omap3isp_stat_event_status.buf_err is set to non-zero.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK)hjhhubeh}(h]eventsah ]h"]eventsah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(hPrivate IOCTLsh]hPrivate IOCTLs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK0ubj])}(hX The OMAP 3 ISP driver supports standard V4L2 IOCTLs and controls where possible and practical. Much of the functions provided by the ISP, however, does not fall under the standard IOCTLs --- gamma tables and configuration of statistics collection are examples of such.h]hX The OMAP 3 ISP driver supports standard V4L2 IOCTLs and controls where possible and practical. Much of the functions provided by the ISP, however, does not fall under the standard IOCTLs --- gamma tables and configuration of statistics collection are examples of such.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK2hjhhubj])}(hpIn general, there is a private ioctl for configuring each of the blocks containing hardware-dependent functions.h]hpIn general, there is a private ioctl for configuring each of the blocks containing hardware-dependent functions.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK7hjhhubj])}(h+The following private IOCTLs are supported:h]h+The following private IOCTLs are supported:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK:hjhhubj )}(hhh](j%)}(hVIDIOC_OMAP3ISP_CCDC_CFGh]j])}(hjh]hVIDIOC_OMAP3ISP_CCDC_CFG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hVIDIOC_OMAP3ISP_HIST_CFGh]j])}(hjh]hVIDIOC_OMAP3ISP_HIST_CFG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK?hj ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hVIDIOC_OMAP3ISP_AF_CFGh]j])}(hj&h]hVIDIOC_OMAP3ISP_AF_CFG}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK@hj$ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hVIDIOC_OMAP3ISP_STAT_REQh]j])}(hj=h]hVIDIOC_OMAP3ISP_STAT_REQ}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKAhj;ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hVIDIOC_OMAP3ISP_STAT_EN h]j])}(hVIDIOC_OMAP3ISP_STAT_ENh]hVIDIOC_OMAP3ISP_STAT_EN}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKBhjRubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubeh}(h]h ]h"]h$]h&]jrjsuh1jhhhK ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_BLKADJh]j])}(hjW h]hOMAP3ISP_PREV_BLKADJ}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKxhjU ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_RGB2RGBh]j])}(hjn h]hOMAP3ISP_PREV_RGB2RGB}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKyhjl ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_COLOR_CONVh]j])}(hj h]hOMAP3ISP_PREV_COLOR_CONV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKzhj ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_YC_LIMITh]j])}(hj h]hOMAP3ISP_PREV_YC_LIMIT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK{hj ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_DEFECT_CORh]j])}(hj h]hOMAP3ISP_PREV_DEFECT_COR}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK|hj ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_GAMMABYPASSh]j])}(hj h]hOMAP3ISP_PREV_GAMMABYPASS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK}hj ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_DRK_FRM_CAPTUREh]j])}(hj h]hOMAP3ISP_PREV_DRK_FRM_CAPTURE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK~hj ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_DRK_FRM_SUBTRACTh]j])}(hj h]hOMAP3ISP_PREV_DRK_FRM_SUBTRACT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_LENS_SHADINGh]j])}(hj h]hOMAP3ISP_PREV_LENS_SHADING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_NFh]j])}(hj& h]hOMAP3ISP_PREV_NF}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj$ ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubj%)}(hOMAP3ISP_PREV_GAMMA h]j])}(hOMAP3ISP_PREV_GAMMAh]hOMAP3ISP_PREV_GAMMA}(hj? hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj; ubah}(h]h ]h"]h$]h&]uh1j$hjhhhhhNubeh}(h]h ]h"]h$]h&]jrjsuh1jhhhKrhjhhubj])}(hThe associated configuration pointer for the function may not be NULL when enabling the function. When disabling a function the configuration pointer is ignored.h]hThe associated configuration pointer for the function may not be NULL when enabling the function. When disabling a function the configuration pointer is ignored.}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjhhubeh}(h]ccdc-and-preview-block-ioctlsah ]h"]ccdc and preview block ioctlsah$]h&]uh1jGhjIhhhhhKPubjH)}(hhh](jM)}(hStatistic blocks IOCTLsh]hStatistic blocks IOCTLs}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjo hhhhhKubj])}(hThe statistics subdevs do offer more dynamic configuration options than the other subdevs. They can be enabled, disable and reconfigured when the pipeline is in streaming state.h]hThe statistics subdevs do offer more dynamic configuration options than the other subdevs. They can be enabled, disable and reconfigured when the pipeline is in streaming state.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjo hhubj])}(hThe statistics blocks always get the input image data from the CCDC (as the histogram memory read isn't implemented). The statistics are dequeueable by the user from the statistics subdev nodes using private IOCTLs.h]hThe statistics blocks always get the input image data from the CCDC (as the histogram memory read isn’t implemented). The statistics are dequeueable by the user from the statistics subdev nodes using private IOCTLs.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjo hhubj])}(hThe private IOCTLs offered by the AEWB, AF and histogram subdevs are heavily reflected by the register level interface offered by the ISP hardware. There are aspects that are purely related to the driver implementation and these are discussed next.h]hThe private IOCTLs offered by the AEWB, AF and histogram subdevs are heavily reflected by the register level interface offered by the ISP hardware. There are aspects that are purely related to the driver implementation and these are discussed next.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjo hhubeh}(h]statistic-blocks-ioctlsah ]h"]statistic blocks ioctlsah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(hVIDIOC_OMAP3ISP_STAT_ENh]hVIDIOC_OMAP3ISP_STAT_EN}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj hhhhhKubj])}(hThis private IOCTL enables/disables a statistic module. If this request is done before streaming, it will take effect as soon as the pipeline starts to stream. If the pipeline is already streaming, it will take effect as soon as the CCDC becomes idle.h]hThis private IOCTL enables/disables a statistic module. If this request is done before streaming, it will take effect as soon as the pipeline starts to stream. If the pipeline is already streaming, it will take effect as soon as the CCDC becomes idle.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubeh}(h]vidioc-omap3isp-stat-enah ]h"]vidioc_omap3isp_stat_enah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(hMVIDIOC_OMAP3ISP_AEWB_CFG, VIDIOC_OMAP3ISP_HIST_CFG and VIDIOC_OMAP3ISP_AF_CFGh]hMVIDIOC_OMAP3ISP_AEWB_CFG, VIDIOC_OMAP3ISP_HIST_CFG and VIDIOC_OMAP3ISP_AF_CFG}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj hhhhhKubj])}(hXQThose IOCTLs are used to configure the modules. They require user applications to have an in-depth knowledge of the hardware. Most of the fields explanation can be found on OMAP's TRMs. The two following fields common to all the above configure private IOCTLs require explanation for better understanding as they are not part of the TRM.h]hXSThose IOCTLs are used to configure the modules. They require user applications to have an in-depth knowledge of the hardware. Most of the fields explanation can be found on OMAP’s TRMs. The two following fields common to all the above configure private IOCTLs require explanation for better understanding as they are not part of the TRM.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubj])}(h1omap3isp_[h3a_af/h3a_aewb/hist]\_config.buf_size:h]h1omap3isp_[h3a_af/h3a_aewb/hist]_config.buf_size:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubj])}(hX*The modules handle their buffers internally. The necessary buffer size for the module's data output depends on the requested configuration. Although the driver supports reconfiguration while streaming, it does not support a reconfiguration which requires bigger buffer size than what is already internally allocated if the module is enabled. It will return -EBUSY on this case. In order to avoid such condition, either disable/reconfigure/enable the module or request the necessary buffer size during the first configuration while the module is disabled.h]hX,The modules handle their buffers internally. The necessary buffer size for the module’s data output depends on the requested configuration. Although the driver supports reconfiguration while streaming, it does not support a reconfiguration which requires bigger buffer size than what is already internally allocated if the module is enabled. It will return -EBUSY on this case. In order to avoid such condition, either disable/reconfigure/enable the module or request the necessary buffer size during the first configuration while the module is disabled.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubj])}(hXQThe internal buffer size allocation considers the requested configuration's minimum buffer size and the value set on buf_size field. If buf_size field is out of [minimum, maximum] buffer size range, it's clamped to fit in there. The driver then selects the biggest value. The corrected buf_size value is written back to user application.h]hXUThe internal buffer size allocation considers the requested configuration’s minimum buffer size and the value set on buf_size field. If buf_size field is out of [minimum, maximum] buffer size range, it’s clamped to fit in there. The driver then selects the biggest value. The corrected buf_size value is written back to user application.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubj])}(h7omap3isp_[h3a_af/h3a_aewb/hist]\_config.config_counter:h]h7omap3isp_[h3a_af/h3a_aewb/hist]_config.config_counter:}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubj])}(hXAs the configuration doesn't take effect synchronously to the request, the driver must provide a way to track this information to provide more accurate data. After a configuration is requested, the config_counter returned to user space application will be an unique value associated to that request. When user application receives an event for buffer availability or when a new buffer is requested, this config_counter is used to match a buffer data and a configuration.h]hXAs the configuration doesn’t take effect synchronously to the request, the driver must provide a way to track this information to provide more accurate data. After a configuration is requested, the config_counter returned to user space application will be an unique value associated to that request. When user application receives an event for buffer availability or when a new buffer is requested, this config_counter is used to match a buffer data and a configuration.}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubeh}(h]Lvidioc-omap3isp-aewb-cfg-vidioc-omap3isp-hist-cfg-and-vidioc-omap3isp-af-cfgah ]h"]Mvidioc_omap3isp_aewb_cfg, vidioc_omap3isp_hist_cfg and vidioc_omap3isp_af_cfgah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(hVIDIOC_OMAP3ISP_STAT_REQh]hVIDIOC_OMAP3ISP_STAT_REQ}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjF hhhhhKubj])}(hSend to user space the oldest data available in the internal buffer queue and discards such buffer afterwards. The field omap3isp_stat_data.frame_number matches with the video buffer's field_count.h]hSend to user space the oldest data available in the internal buffer queue and discards such buffer afterwards. The field omap3isp_stat_data.frame_number matches with the video buffer’s field_count.}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjF hhubeh}(h]vidioc-omap3isp-stat-reqah ]h"]vidioc_omap3isp_stat_reqah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(h Referencesh]h References}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjm hhhhhKubhfootnote)}(hinclude/linux/omap3isp.hh](hlabel)}(hhh]h1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj hhhNhNubj])}(hj h]hinclude/linux/omap3isp.h}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj ubeh}(h]jah ]h"]1ah$]h&]jajKjjuh1j~ hhhKhjm hhubeh}(h] referencesah ]h"] referencesah$]h&]uh1jGhjIhhhhhKubeh}(h](omap-3-image-signal-processor-isp-driverah ]h"]*omap 3 image signal processor (isp) 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_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}(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}j]jasnameids}(j j jjjjjl ji j j j j jC j@ jj jg j j j ju nametypes}(j jjjl j j jC jj j j uh}(j jIjjjjji jjjj jo j j j@ j jg jF j jm jj u footnote_refs} citation_refs} autofootnotes]j aautofootnote_refs]jasymbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j KsRparse_messages]transform_messages] transformerN include_log];Documentation/userspace-api/media/drivers/omap3isp-uapi.rst(NNNNta decorationNhhub.