€•iBŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ9/translations/zh_CN/admin-guide/media/raspberrypi-rp1-cfe”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/zh_TW/admin-guide/media/raspberrypi-rp1-cfe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/it_IT/admin-guide/media/raspberrypi-rp1-cfe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/ja_JP/admin-guide/media/raspberrypi-rp1-cfe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/ko_KR/admin-guide/media/raspberrypi-rp1-cfe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/sp_SP/admin-guide/media/raspberrypi-rp1-cfe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h¡hhhžhhŸŒS/var/lib/git/docbuild/linux/Documentation/admin-guide/media/raspberrypi-rp1-cfe.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ,Raspberry Pi PiSP Camera Front End (rp1-cfe)”h]”hŒ,Raspberry Pi PiSP Camera Front End (rp1-cfe)”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒThe PiSP Camera Front End”h]”hŒThe PiSP Camera Front End”…””}”(hhÌhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hhÉhžhhŸh³h KubhŒ paragraph”“”)”}”(hŒyThe PiSP Camera Front End (CFE) is a module which combines a CSI-2 receiver with a simple ISP, called the Front End (FE).”h]”hŒyThe PiSP Camera Front End (CFE) is a module which combines a CSI-2 receiver with a simple ISP, called the Front End (FE).”…””}”(hhÜhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K hhÉhžhubhÛ)”}”(hXcThe CFE has four DMA engines and can write frames from four separate streams received from the CSI-2 to the memory. One of those streams can also be routed directly to the FE, which can do minimal image processing, write two versions (e.g. non-scaled and downscaled versions) of the received frames to memory and provide statistics of the received frames.”h]”hXcThe CFE has four DMA engines and can write frames from four separate streams received from the CSI-2 to the memory. One of those streams can also be routed directly to the FE, which can do minimal image processing, write two versions (e.g. non-scaled and downscaled versions) of the received frames to memory and provide statistics of the received frames.”…””}”(hhêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K hhÉhžhubhÛ)”}”(hX*The FE registers are documented in the `Raspberry Pi Image Signal Processor (ISP) Specification document `_, and example code for FE can be found in `libpisp `_.”h]”(hŒ'The FE registers are documented in the ”…””}”(hhøhžhhŸNh NubhŒ reference”“”)”}”(hŒ¥`Raspberry Pi Image Signal Processor (ISP) Specification document `_”h]”hŒ@Raspberry Pi Image Signal Processor (ISP) Specification document”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ@Raspberry Pi Image Signal Processor (ISP) Specification document”Œrefuri”Œ_https://datasheets.raspberrypi.com/camera/raspberry-pi-image-signal-processor-specification.pdf”uh1jhhøubhŒtarget”“”)”}”(hŒb ”h]”h}”(h]”Œ>raspberry-pi-image-signal-processor-isp-specification-document”ah ]”h"]”Œ@raspberry pi image signal processor (isp) specification document”ah$]”h&]”Œrefuri”juh1jŒ referenced”KhhøubhŒ*, and example code for FE can be found in ”…””}”(hhøhžhhŸNh Nubj)”}”(hŒ3`libpisp `_”h]”hŒlibpisp”…””}”(hj(hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œlibpisp”jŒ&https://github.com/raspberrypi/libpisp”uh1jhhøubj)”}”(hŒ) ”h]”h}”(h]”Œlibpisp”ah ]”h"]”Œlibpisp”ah$]”h&]”Œrefuri”j8uh1jj#KhhøubhŒ.”…””}”(hhøhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h KhhÉhžhubeh}”(h]”Œthe-pisp-camera-front-end”ah ]”h"]”Œthe pisp camera front end”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒThe rp1-cfe driver”h]”hŒThe rp1-cfe driver”…””}”(hj[hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjXhžhhŸh³h KubhÛ)”}”(hX|The Raspberry Pi PiSP Camera Front End (rp1-cfe) driver is located under drivers/media/platform/raspberrypi/rp1-cfe. It uses the `V4L2 API` to register a number of video capture and output devices, the `V4L2 subdev API` to register subdevices for the CSI-2 received and the FE that connects the video devices in a single media graph realized using the `Media Controller (MC) API`.”h]”(hŒThe Raspberry Pi PiSP Camera Front End (rp1-cfe) driver is located under drivers/media/platform/raspberrypi/rp1-cfe. It uses the ”…””}”(hjihžhhŸNh NubhŒtitle_reference”“”)”}”(hŒ `V4L2 API`”h]”hŒV4L2 API”…””}”(hjshžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjiubhŒ? to register a number of video capture and output devices, the ”…””}”(hjihžhhŸNh Nubjr)”}”(hŒ`V4L2 subdev API`”h]”hŒV4L2 subdev API”…””}”(hj…hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjiubhŒ… to register subdevices for the CSI-2 received and the FE that connects the video devices in a single media graph realized using the ”…””}”(hjihžhhŸNh Nubjr)”}”(hŒ`Media Controller (MC) API`”h]”hŒMedia Controller (MC) API”…””}”(hj—hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjiubhŒ.”…””}”(hjihžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h KhjXhžhubhÛ)”}”(hŒ†The media topology registered by the `rp1-cfe` driver, in this particular example connected to an imx219 sensor, is the following one:”h]”(hŒ%The media topology registered by the ”…””}”(hj¯hžhhŸNh Nubjr)”}”(hŒ `rp1-cfe`”h]”hŒrp1-cfe”…””}”(hj·hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj¯ubhŒX driver, in this particular example connected to an imx219 sensor, is the following one:”…””}”(hj¯hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K"hjXhžhubj)”}”(hŒ.. _rp1-cfe-topology:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œrp1-cfe-topology”uh1jh K%hjXhžhhŸh³ubŒkfigure”Œ kernel_figure”“”)”}”(hhh]”hŒfigure”“”)”}”(hhh]”hŒimage”“”)”}”(hŒx.. kernel-figure:: raspberrypi-rp1-cfe.dot :alt: Diagram of an example media pipeline topology :align: center ”h]”h}”(h]”h ]”h"]”h$]”h&]”Œalt”Œ-Diagram of an example media pipeline topology”Œuri”Œ)admin-guide/media/raspberrypi-rp1-cfe.dot”Œ candidates”}”Œ*”jõsuh1jæhjãhŸh³h Kubah}”(h]”h ]”h"]”h$]”h&]”Œalign”Œcenter”uh1jáhjÞubah}”(h]”jÚah ]”h"]”Œrp1-cfe-topology”ah$]”h&]”uh1jÜhjXhžhhŸh³h NŒexpect_referenced_by_name”}”jjÏsŒexpect_referenced_by_id”}”jÚjÏsubhÛ)”}”(hŒ:The media graph contains the following video device nodes:”h]”hŒ:The media graph contains the following video device nodes:”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K+hjXhžhubhŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ;rp1-cfe-csi2-ch0: capture device for the first CSI-2 stream”h]”hÛ)”}”(hj#h]”hŒ;rp1-cfe-csi2-ch0: capture device for the first CSI-2 stream”…””}”(hj%hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K-hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh³h Nubj )”}”(hŒ