€•o)Œ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”Œ/translations/zh_CN/gpu/mcde”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/zh_TW/gpu/mcde”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/it_IT/gpu/mcde”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ja_JP/gpu/mcde”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ko_KR/gpu/mcde”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/sp_SP/gpu/mcde”Œ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ŸŒ6/var/lib/git/docbuild/linux/Documentation/gpu/mcde.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ6drm/mcde ST-Ericsson MCDE Multi-channel display engine”h]”hŒ6drm/mcde ST-Ericsson MCDE Multi-channel display engine”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h KubhŒ paragraph”“”)”}”(hXoThe MCDE (short for multi-channel display engine) is a graphics controller found in the Ux500 chipsets, such as NovaThor U8500. It was initially conceptualized by ST Microelectronics for the successor of the Nomadik line, STn8500 but productified in the ST-Ericsson U8500 where is was used for mass-market deployments in Android phones from Samsung and Sony Ericsson.”h]”hXoThe MCDE (short for multi-channel display engine) is a graphics controller found in the Ux500 chipsets, such as NovaThor U8500. It was initially conceptualized by ST Microelectronics for the successor of the Nomadik line, STn8500 but productified in the ST-Ericsson U8500 where is was used for mass-market deployments in Android phones from Samsung and Sony Ericsson.”…””}”(hhËhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h K hh¶hžhubhÊ)”}”(hŒ¬It can do 1080p30 on SDTV CCIR656, DPI-2, DBI-2 or DSI for panels with or without frame buffering and can convert most input formats including most variants of RGB and YUV.”h]”hŒ¬It can do 1080p30 on SDTV CCIR656, DPI-2, DBI-2 or DSI for panels with or without frame buffering and can convert most input formats including most variants of RGB and YUV.”…””}”(hhÚhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h Khh¶hžhubhÊ)”}”(hŒOThe hardware has four display pipes, and the layout is a little bit like this::”h]”hŒNThe hardware has four display pipes, and the layout is a little bit like this:”…””}”(hhéhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h Khh¶hžhubhŒ literal_block”“”)”}”(hŒºMemory -> Overlay -> Channel -> FIFO -> 8 formatters -> DSI/DPI External 0..5 0..3 A,B, 6 x DSI bridge source 0..9 C0,C1 2 x DPI”h]”hŒºMemory -> Overlay -> Channel -> FIFO -> 8 formatters -> DSI/DPI External 0..5 0..3 A,B, 6 x DSI bridge source 0..9 C0,C1 2 x DPI”…””}”hhúsbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1høhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h Khh¶hžhubhÊ)”}”(hŒ¼FIFOs A and B are for LCD and HDMI while FIFO CO/C1 are for panels with embedded buffer. 6 of the formatters are for DSI, 3 pairs for VID/CMD respectively. 2 of the formatters are for DPI.”h]”hŒ¼FIFOs A and B are for LCD and HDMI while FIFO CO/C1 are for panels with embedded buffer. 6 of the formatters are for DSI, 3 pairs for VID/CMD respectively. 2 of the formatters are for DPI.”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h Khh¶hžhubhÊ)”}”(hŒòBehind the formatters are the DSI or DPI ports that route to the external pins of the chip. As there are 3 DSI ports and one DPI port, it is possible to configure up to 4 display pipelines (effectively using channels 0..3) for concurrent use.”h]”hŒòBehind the formatters are the DSI or DPI ports that route to the external pins of the chip. As there are 3 DSI ports and one DPI port, it is possible to configure up to 4 display pipelines (effectively using channels 0..3) for concurrent use.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h K hh¶hžhubhÊ)”}”(hX]In the current DRM/KMS setup, we use one external source, one overlay, one FIFO and one formatter which we connect to the simple DMA framebuffer helpers. We then provide a bridge to the DSI port, and on the DSI port bridge we connect hang a panel bridge or other bridge. This may be subject to change as we exploit more of the hardware capabilities.”h]”hX]In the current DRM/KMS setup, we use one external source, one overlay, one FIFO and one formatter which we connect to the simple DMA framebuffer helpers. We then provide a bridge to the DSI port, and on the DSI port bridge we connect hang a panel bridge or other bridge. This may be subject to change as we exploit more of the hardware capabilities.”…””}”(hj'hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h K%hh¶hžhubhÊ)”}”(hŒTODO:”h]”hŒTODO:”…””}”(hj6hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h K+hh¶hžhubhŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ“Enabled damaged rectangles using drm_plane_enable_fb_damage_clips() so we can selectively just transmit the damaged area to a command-only display.”h]”hÊ)”}”(hŒ“Enabled damaged rectangles using drm_plane_enable_fb_damage_clips() so we can selectively just transmit the damaged area to a command-only display.”h]”hŒ“Enabled damaged rectangles using drm_plane_enable_fb_damage_clips() so we can selectively just transmit the damaged area to a command-only display.”…””}”(hjPhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h K-hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjGubjK)”}”(hŒmEnable mixing of more planes, possibly at the cost of moving away from using the simple framebuffer pipeline.”h]”hÊ)”}”(hŒmEnable mixing of more planes, possibly at the cost of moving away from using the simple framebuffer pipeline.”h]”hŒmEnable mixing of more planes, possibly at the cost of moving away from using the simple framebuffer pipeline.”…””}”(hjihžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h K0hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjGubjK)”}”(hŒNEnable output to bridges such as the AV8100 HDMI encoder from the DSI bridge. ”h]”hÊ)”}”(hŒMEnable output to bridges such as the AV8100 HDMI encoder from the DSI bridge.”h]”hŒMEnable output to bridges such as the AV8100 HDMI encoder from the DSI bridge.”…””}”(hj‚hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸŒW/var/lib/git/docbuild/linux/Documentation/gpu/mcde:7: ./drivers/gpu/drm/mcde/mcde_drv.c”h K2hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjGubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jEhŸj^h K-hh¶hžhubeh}”(h]”Œ6drm-mcde-st-ericsson-mcde-multi-channel-display-engine”ah ]”h"]”Œ6drm/mcde st-ericsson mcde multi-channel display engine”ah$]”h&]”uh1h´hhhžhhŸh³h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h³uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¹NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jÊŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h³Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”j¤j¡sŒ nametypes”}”j¤‰sh}”j¡h¶sŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.