Vsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget3/translations/zh_CN/userspace-api/media/drivers/ccsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/zh_TW/userspace-api/media/drivers/ccsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/it_IT/userspace-api/media/drivers/ccsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ja_JP/userspace-api/media/drivers/ccsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ko_KR/userspace-api/media/drivers/ccsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/sp_SP/userspace-api/media/drivers/ccsmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h%SPDX-License-Identifier: GPL-2.0-onlyh]h%SPDX-License-Identifier: GPL-2.0-only}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhM/var/lib/git/docbuild/linux/Documentation/userspace-api/media/drivers/ccs.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&]uh1hhhhKRhhhhubhtarget)}(h.. _media-ccs-uapi:h]h}(h]h ]h"]h$]h&]refidmedia-ccs-uapiuh1jGhK[hhhhhhubhsection)}(hhh](htitle)}(hMIPI CCS camera sensor driverh]hMIPI CCS camera sensor driver}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjWhhhhhKubh paragraph)}(hThe MIPI CCS camera sensor driver is a generic driver for `MIPI CCS `_ compliant camera sensors. It exposes three sub-devices representing the pixel array, the binner and the scaler.h](h:The MIPI CCS camera sensor driver is a generic driver for }(hjlhhhNhNubh reference)}(hD`MIPI CCS `_h]hMIPI CCS}(hjvhhhNhNubah}(h]h ]h"]h$]h&]nameMIPI CCSrefuri6https://www.mipi.org/specifications/camera-command-setuh1jthjlubjH)}(h9 h]h}(h]mipi-ccsah ]h"]mipi ccsah$]h&]refurijuh1jG referencedKhjlubhp compliant camera sensors. It exposes three sub-devices representing the pixel array, the binner and the scaler.}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhK hjWhhubjk)}(hAs the capabilities of individual devices vary, the driver exposes interfaces based on the capabilities that exist in hardware.h]hAs the capabilities of individual devices vary, the driver exposes interfaces based on the capabilities that exist in hardware.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhKhjWhhubjk)}(hGAlso see :ref:`the CCS driver kernel documentation `.h](h Also see }(hjhhhNhNubh)}(h=:ref:`the CCS driver kernel documentation `h]hinline)}(hjh]h#the CCS driver kernel documentation}(hjhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocuserspace-api/media/drivers/ccs refdomainjreftyperef refexplicitrefwarn reftargetmedia-ccs-driveruh1hhhhKhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhKhjWhhubjV)}(hhh](j[)}(hPixel Array sub-deviceh]hPixel Array sub-device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhhhhhKubjk)}(hXWThe pixel array sub-device represents the camera sensor's pixel matrix, as well as analogue crop functionality present in many compliant devices. The analogue crop is configured using the ``V4L2_SEL_TGT_CROP`` on the source pad (0) of the entity. The size of the pixel matrix can be obtained by getting the ``V4L2_SEL_TGT_NATIVE_SIZE`` target.h](hThe pixel array sub-device represents the camera sensor’s pixel matrix, as well as analogue crop functionality present in many compliant devices. The analogue crop is configured using the }(hjhhhNhNubhliteral)}(h``V4L2_SEL_TGT_CROP``h]hV4L2_SEL_TGT_CROP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhb on the source pad (0) of the entity. The size of the pixel matrix can be obtained by getting the }(hjhhhNhNubj)}(h``V4L2_SEL_TGT_NATIVE_SIZE``h]hV4L2_SEL_TGT_NATIVE_SIZE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh target.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhKhjhhubeh}(h]pixel-array-sub-deviceah ]h"]pixel array sub-deviceah$]h&]uh1jUhjWhhhhhKubjV)}(hhh](j[)}(hBinnerh]hBinner}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhj2hhhhhKubjk)}(hThe binner sub-device represents the binning functionality on the sensor. For that purpose, selection target ``V4L2_SEL_TGT_COMPOSE`` is supported on the sink pad (0).h](hmThe binner sub-device represents the binning functionality on the sensor. For that purpose, selection target }(hjChhhNhNubj)}(h``V4L2_SEL_TGT_COMPOSE``h]hV4L2_SEL_TGT_COMPOSE}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubh" is supported on the sink pad (0).}(hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhK hj2hhubjk)}(hAdditionally, if a device has no scaler or digital crop functionality, the source pad (1) exposes another digital crop selection rectangle that can only crop at the end of the lines and frames.h]hAdditionally, if a device has no scaler or digital crop functionality, the source pad (1) exposes another digital crop selection rectangle that can only crop at the end of the lines and frames.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhK$hj2hhubeh}(h]binnerah ]h"]binnerah$]h&]uh1jUhjWhhhhhKubjV)}(hhh](j[)}(hScalerh]hScaler}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjyhhhhhK)ubjk)}(hXGThe scaler sub-device represents the digital crop and scaling functionality of the sensor. The V4L2 selection target ``V4L2_SEL_TGT_CROP`` is used to configure the digital crop on the sink pad (0) when digital crop is supported. Scaling is configured using selection target ``V4L2_SEL_TGT_COMPOSE`` on the sink pad (0) as well.h](huThe scaler sub-device represents the digital crop and scaling functionality of the sensor. The V4L2 selection target }(hjhhhNhNubj)}(h``V4L2_SEL_TGT_CROP``h]hV4L2_SEL_TGT_CROP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is used to configure the digital crop on the sink pad (0) when digital crop is supported. Scaling is configured using selection target }(hjhhhNhNubj)}(h``V4L2_SEL_TGT_COMPOSE``h]hV4L2_SEL_TGT_COMPOSE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh on the sink pad (0) as well.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhK+hjyhhubjk)}(hAdditionally, if the scaler sub-device exists, its source pad (1) exposes another digital crop selection rectangle that can only crop at the end of the lines and frames.h]hAdditionally, if the scaler sub-device exists, its source pad (1) exposes another digital crop selection rectangle that can only crop at the end of the lines and frames.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhK1hjyhhubeh}(h]scalerah ]h"]scalerah$]h&]uh1jUhjWhhhhhK)ubjV)}(hhh](j[)}(hDigital and analogue croph]hDigital and analogue crop}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhhhhhK6ubjk)}(hXDigital crop functionality is referred to as cropping that effectively works by dropping some data on the floor. Analogue crop, on the other hand, means that the cropped information is never retrieved. In case of camera sensors, the analogue data is never read from the pixel matrix that are outside the configured selection rectangle that designates crop. The difference has an effect in device timing and likely also in power consumption.h]hXDigital crop functionality is referred to as cropping that effectively works by dropping some data on the floor. Analogue crop, on the other hand, means that the cropped information is never retrieved. In case of camera sensors, the analogue data is never read from the pixel matrix that are outside the configured selection rectangle that designates crop. The difference has an effect in device timing and likely also in power consumption.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhK8hjhhubeh}(h]digital-and-analogue-cropah ]h"]digital and analogue cropah$]h&]uh1jUhjWhhhhhK6ubjV)}(hhh](j[)}(hPrivate controlsh]hPrivate controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhhhhhK@ubjk)}(hThe MIPI CCS driver implements a number of private controls under ``V4L2_CID_USER_BASE_CCS`` to control the MIPI CCS compliant camera sensors.h](hBThe MIPI CCS driver implements a number of private controls under }(hj hhhNhNubj)}(h``V4L2_CID_USER_BASE_CCS``h]hV4L2_CID_USER_BASE_CCS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh2 to control the MIPI CCS compliant camera sensors.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhKBhjhhubjV)}(hhh](j[)}(hAnalogue gain modelh]hAnalogue gain model}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhj*hhhhhKFubjk)}(hdThe CCS defines an analogue gain model where the gain can be calculated using the following formula:h]hdThe CCS defines an analogue gain model where the gain can be calculated using the following formula:}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhKHhj*hhubh block_quote)}(h#gain = m0 * x + c0 / (m1 * x + c1) h]jk)}(h"gain = m0 * x + c0 / (m1 * x + c1)h]h"gain = m0 * x + c0 / (m1 * x + c1)}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhKKhjKubah}(h]h ]h"]h$]h&]uh1jIhhhKKhj*hhubjk)}(hrEither m0 or c0 will be zero. The constants that are device specific, can be obtained from the following controls:h]hrEither m0 or c0 will be zero. The constants that are device specific, can be obtained from the following controls:}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhKMhj*hhubjJ)}(hxV4L2_CID_CCS_ANALOGUE_GAIN_M0 V4L2_CID_CCS_ANALOGUE_GAIN_M1 V4L2_CID_CCS_ANALOGUE_GAIN_C0 V4L2_CID_CCS_ANALOGUE_GAIN_C1 h]jk)}(hwV4L2_CID_CCS_ANALOGUE_GAIN_M0 V4L2_CID_CCS_ANALOGUE_GAIN_M1 V4L2_CID_CCS_ANALOGUE_GAIN_C0 V4L2_CID_CCS_ANALOGUE_GAIN_C1h]hwV4L2_CID_CCS_ANALOGUE_GAIN_M0 V4L2_CID_CCS_ANALOGUE_GAIN_M1 V4L2_CID_CCS_ANALOGUE_GAIN_C0 V4L2_CID_CCS_ANALOGUE_GAIN_C1}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhKPhjqubah}(h]h ]h"]h$]h&]uh1jIhhhKPhj*hhubjk)}(hgThe analogue gain (``x`` in the formula) is controlled through ``V4L2_CID_ANALOGUE_GAIN`` in this case.h](hThe analogue gain (}(hjhhhNhNubj)}(h``x``h]hx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh' in the formula) is controlled through }(hjhhhNhNubj)}(h``V4L2_CID_ANALOGUE_GAIN``h]hV4L2_CID_ANALOGUE_GAIN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh in this case.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhKUhj*hhubeh}(h]analogue-gain-modelah ]h"]analogue gain modelah$]h&]uh1jUhjhhhhhKFubjV)}(hhh](j[)}(hAlternate analogue gain modelh]hAlternate analogue gain model}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhhhhhKYubjk)}(hThe CCS defines another analogue gain model called alternate analogue gain. In this case, the formula to calculate actual gain consists of linear and exponential parts:h]hThe CCS defines another analogue gain model called alternate analogue gain. In this case, the formula to calculate actual gain consists of linear and exponential parts:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhK[hjhhubjJ)}(hgain = linear * 2 ^ exponent h]jk)}(hgain = linear * 2 ^ exponenth]hgain = linear * 2 ^ exponent}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhK_hjubah}(h]h ]h"]h$]h&]uh1jIhhhK_hjhhubjk)}(hThe ``linear`` and ``exponent`` factors can be set using the ``V4L2_CID_CCS_ANALOGUE_LINEAR_GAIN`` and ``V4L2_CID_CCS_ANALOGUE_EXPONENTIAL_GAIN`` controls, respectivelyh](hThe }(hjhhhNhNubj)}(h ``linear``h]hlinear}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h ``exponent``h]hexponent}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh factors can be set using the }(hjhhhNhNubj)}(h%``V4L2_CID_CCS_ANALOGUE_LINEAR_GAIN``h]h!V4L2_CID_CCS_ANALOGUE_LINEAR_GAIN}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h*``V4L2_CID_CCS_ANALOGUE_EXPONENTIAL_GAIN``h]h&V4L2_CID_CCS_ANALOGUE_EXPONENTIAL_GAIN}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh controls, respectively}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhKahjhhubeh}(h]alternate-analogue-gain-modelah ]h"]alternate analogue gain modelah$]h&]uh1jUhjhhhhhKYubjV)}(hhh](j[)}(hShading correctionh]hShading correction}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjXhhhhhKfubjk)}(hXgThe CCS standard supports lens shading correction. The feature can be controlled using ``V4L2_CID_CCS_SHADING_CORRECTION``. Additionally, the luminance correction level may be changed using ``V4L2_CID_CCS_LUMINANCE_CORRECTION_LEVEL``, where value 0 indicates no correction and 128 indicates correcting the luminance in corners to 10 % less than in the centre.h](hWThe CCS standard supports lens shading correction. The feature can be controlled using }(hjihhhNhNubj)}(h#``V4L2_CID_CCS_SHADING_CORRECTION``h]hV4L2_CID_CCS_SHADING_CORRECTION}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubhD. Additionally, the luminance correction level may be changed using }(hjihhhNhNubj)}(h+``V4L2_CID_CCS_LUMINANCE_CORRECTION_LEVEL``h]h'V4L2_CID_CCS_LUMINANCE_CORRECTION_LEVEL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubh~, where value 0 indicates no correction and 128 indicates correcting the luminance in corners to 10 % less than in the centre.}(hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhKhhjXhhubjk)}(hXShading correction needs to be enabled for luminance correction level to have an effect.h]hXShading correction needs to be enabled for luminance correction level to have an effect.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhhhKohjXhhubjk)}(h+**Copyright** |copy| 2020 Intel Corporationh](hstrong)}(h **Copyright**h]h Copyright}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubh©}(hjhhhNhNubh 2020 Intel Corporation}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jjhhhKrhjXhhubeh}(h]shading-correctionah ]h"]shading correctionah$]h&]uh1jUhjhhhhhKfubeh}(h]private-controlsah ]h"]private controlsah$]h&]uh1jUhjWhhhhhK@ubeh}(h](mipi-ccs-camera-sensor-driverjTeh ]h"](mipi ccs camera sensor drivermedia-ccs-uapieh$]h&]uh1jUhhhhhhhKexpect_referenced_by_name}jjIsexpect_referenced_by_id}jTjIsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jZN 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}jT]jIasnameids}(jjTjjjjj/j,jvjsjjjjjjjjjUjRjju nametypes}(jjjj/jvjjjjjUjuh}(jTjWjjWjjj,jjsj2jjyjjjjjj*jRjjjXu 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]hsystem_message)}(hhh]jk)}(hhh]h4Hyperlink target "media-ccs-uapi" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1jjhj ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineK[uh1j uba transformerN include_log]1Documentation/userspace-api/media/drivers/ccs.rst(NNNNta decorationNhhub.