€•Œ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”Œ6/translations/zh_CN/gpu/amdgpu/display/display-manager”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/zh_TW/gpu/amdgpu/display/display-manager”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/it_IT/gpu/amdgpu/display/display-manager”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/ja_JP/gpu/amdgpu/display/display-manager”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/ko_KR/gpu/amdgpu/display/display-manager”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/pt_BR/gpu/amdgpu/display/display-manager”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/sp_SP/gpu/amdgpu/display/display-manager”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒAMDgpu Display Manager”h]”hŒAMDgpu Display Manager”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œid1”uh1hºhh·h²hh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager.rst”h´KubhŒtopic”“”)�”}”(hŒTable of Contents ”h]”(h»)�”}”(hŒTable of Contents”h]”hŒTable of Contents”…”�”}”(hhÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhÏh³hÌh´KubhŒ bullet_list”“”)�”}”(hhh]”hŒ list_item”“”)�”}”(hhh]”(hŒ paragraph”“”)�”}”(hhh]”hŒ reference”“”)�”}”(hhh]”hŒAMDgpu Display Manager”…”�”}”(hhòh²hh³Nh´Nubah}”(h]”hËah ]”h"]”h$]”h&]”Œrefid”Œamdgpu-display-manager”uh1hðhhíubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhhèubhâ)�”}”(hhh]”(hç)�”}”(hhh]”hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒ Lifecycle”…”�”}”(hjh²hh³Nh´Nubah}”(h]”Œid2”ah ]”h"]”h$]”h&]”Œrefid”Œ lifecycle”uh1hðhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjubhç)�”}”(hhh]”hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒ Interrupts”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”Œid3”ah ]”h"]”h$]”h&]”Œrefid”Œ interrupts”uh1hðhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjubhç)�”}”(hhh]”hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒAtomic Implementation”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”Œid4”ah ]”h"]”h$]”h&]”Œrefid”Œatomic-implementation”uh1hðhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjubhç)�”}”(hhh]”(hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒColor Management Properties”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”Œid5”ah ]”h"]”h$]”h&]”Œrefid”Œcolor-management-properties”uh1hðhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjpubhâ)�”}”(hhh]”(hç)�”}”(hhh]”hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒdrm_crtc Properties”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”Œid6”ah ]”h"]”h$]”h&]”Œrefid”Œdrm-crtc-properties”uh1hðhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjŒubhç)�”}”(hhh]”hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒ)AMD Private Color Management on drm_plane”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”Œid7”ah ]”h"]”h$]”h&]”Œrefid”Œ)amd-private-color-management-on-drm-plane”uh1hðhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjŒubhç)�”}”(hhh]”hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒAMD plane color pipeline”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”Œid8”ah ]”h"]”h$]”h&]”Œrefid”Œamd-plane-color-pipeline”uh1hðhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjŒubhç)�”}”(hhh]”hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒ-DC Color Capabilities between DCN generations”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”Œid9”ah ]”h"]”h$]”h&]”Œrefid”Œ-dc-color-capabilities-between-dcn-generations”uh1hðhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1háhjpubeh}”(h]”h ]”h"]”h$]”h&]”uh1hæhjubhç)�”}”(hhh]”(hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒBlend Mode Properties”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”Œid10”ah ]”h"]”h$]”h&]”Œrefid”Œblend-mode-properties”uh1hðhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj#ubhâ)�”}”(hhh]”hç)�”}”(hhh]”hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒBlend configuration flow”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”Œid11”ah ]”h"]”h$]”h&]”Œrefid”Œblend-configuration-flow”uh1hðhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjBubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1háhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hæhjubhç)�”}”(hhh]”hì)�”}”(hhh]”hñ)�”}”(hhh]”hŒDisplay Properties”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”Œid12”ah ]”h"]”h$]”h&]”Œrefid”Œdisplay-properties”uh1hðhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1háhhèubeh}”(h]”h ]”h"]”h$]”h&]”uh1hæhhãubah}”(h]”h ]”h"]”h$]”h&]”uh1háhhÏh²hh³Nh´Nubeh}”(h]”Œtable-of-contents”ah ]”Œcontents”ah"]”Œtable of contents”ah$]”h&]”uh1hÍh³hÌh´Khh·h²hubhì)�”}”(hŒÁThe AMDgpu display manager, **amdgpu_dm** (or even simpler, **dm**) sits between DRM and DC. It acts as a liaison, converting DRM requests into DC requests, and DC responses into DRM responses.”h]”(hŒThe AMDgpu display manager, ”…”�”}”(hj­h²hh³Nh´NubhŒstrong”“”)�”}”(hŒ **amdgpu_dm**”h]”hŒ amdgpu_dm”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj­ubhŒ (or even simpler, ”…”�”}”(hj­h²hh³Nh´Nubj¶)�”}”(hŒ**dm**”h]”hŒdm”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj­ubhŒ) sits between DRM and DC. It acts as a liaison, converting DRM requests into DC requests, and DC responses into DRM responses.”…”�”}”(hj­h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œƒ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:8: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´Kxhh·h²hubhì)�”}”(hŒ_The root control structure is :c:type:`struct amdgpu_display_manager `.”h]”(hŒThe root control structure is ”…”�”}”(hjâh²hh³Nh´Nubh)�”}”(hŒ@:c:type:`struct amdgpu_display_manager `”h]”hŒliteral”“”)�”}”(hjìh]”hŒstruct amdgpu_display_manager”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1jîhjêubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ"gpu/amdgpu/display/display-manager”Œ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰Œ reftarget”Œamdgpu_display_manager”uh1hh³Œƒ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:8: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´K|hjâubhŒ.”…”�”}”(hjâh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´K|hh·h²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œdm_compressor_info (C struct)”Œc.dm_compressor_info”hNt”auh1jhh·h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒdm_compressor_info”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct dm_compressor_info”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j=hj9h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jOhj9h²hh³jNh´KubhŒ desc_name”“”)�”}”(hŒdm_compressor_info”h]”hŒ desc_sig_name”“”)�”}”(hj5h]”hŒdm_compressor_info”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jfhjbubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j`hj9h²hh³jNh´Kubeh}”(h]”h ]”h"]”h$]”h&]”j~jŒ add_permalink”ˆuh1j7Œsphinx_line_type”Œ declarator”hj3h²hh³jNh´Kubah}”(h]”j)ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1j1h³jNh´Khj.h²hubhŒ desc_content”“”)�”}”(hhh]”hì)�”}”(hŒ,Buffer info used by frame buffer compression”h]”hŒ,Buffer info used by frame buffer compression”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kchj–h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj.h²hh³jNh´Kubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”Œdomain”jûŒobjtype”j±Œdesctype”j±Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j,h²hhh·h³j+h´NubhŒ container”“”)�”}”(hŒ÷**Definition**:: struct dm_compressor_info { void *cpu_addr; struct amdgpu_bo *bo_ptr; uint64_t gpu_addr; }; **Members** ``cpu_addr`` MMIO cpu addr ``bo_ptr`` Pointer to the buffer object ``gpu_addr`` MMIO gpu addr”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÁubhŒ:”…”�”}”(hjÁh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kghj½ubhŒ literal_block”“”)�”}”(hŒgstruct dm_compressor_info { void *cpu_addr; struct amdgpu_bo *bo_ptr; uint64_t gpu_addr; };”h]”hŒgstruct dm_compressor_info { void *cpu_addr; struct amdgpu_bo *bo_ptr; uint64_t gpu_addr; };”…”�”}”hjàsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kihj½ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjñh]”hŒMembers”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjïubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kohj½ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ``cpu_addr`` MMIO cpu addr ”h]”(hŒterm”“”)�”}”(hŒ ``cpu_addr``”h]”jï)�”}”(hjh]”hŒcpu_addr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KehjubhŒ definition”“”)�”}”(hhh]”hì)�”}”(hŒ MMIO cpu addr”h]”hŒ MMIO cpu addr”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j+h´Kehj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j+h´Kehj ubj )�”}”(hŒ(``bo_ptr`` Pointer to the buffer object ”h]”(j)�”}”(hŒ ``bo_ptr``”h]”jï)�”}”(hjQh]”hŒbo_ptr”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KfhjKubj-)�”}”(hhh]”hì)�”}”(hŒPointer to the buffer object”h]”hŒPointer to the buffer object”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jfh´Kfhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jfh´Kfhj ubj )�”}”(hŒ``gpu_addr`` MMIO gpu addr”h]”(j)�”}”(hŒ ``gpu_addr``”h]”jï)�”}”(hjŠh]”hŒgpu_addr”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kfhj„ubj-)�”}”(hhh]”hì)�”}”(hŒ MMIO gpu addr”h]”hŒ MMIO gpu addr”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kghj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŸh´Kfhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj½ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ dm_boot_time_crc_info (C struct)”Œc.dm_boot_time_crc_info”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdm_boot_time_crc_info”h]”j8)�”}”(hŒstruct dm_boot_time_crc_info”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjàh²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KmubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjàh²hh³jñh´Kmubja)�”}”(hŒdm_boot_time_crc_info”h]”jg)�”}”(hjÞh]”hŒdm_boot_time_crc_info”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjàh²hh³jñh´Kmubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjÜh²hh³jñh´Kmubah}”(h]”j×ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jñh´KmhjÙh²hubj•)�”}”(hhh]”hì)�”}”(hŒ!Buffer info used by boot time CRC”h]”hŒ!Buffer info used by boot time CRC”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kohj#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÙh²hh³jñh´Kmubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j>j·j>j¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hX.**Definition**:: struct dm_boot_time_crc_info { void *cpu_addr; struct amdgpu_bo *bo_ptr; uint64_t gpu_addr; uint32_t size; }; **Members** ``cpu_addr`` MMIO cpu addr ``bo_ptr`` Pointer to the buffer object ``gpu_addr`` MMIO gpu addr ``size`` Size of the buffer”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjFubhŒ:”…”�”}”(hjFh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KshjBubjß)�”}”(hŒ}struct dm_boot_time_crc_info { void *cpu_addr; struct amdgpu_bo *bo_ptr; uint64_t gpu_addr; uint32_t size; };”h]”hŒ}struct dm_boot_time_crc_info { void *cpu_addr; struct amdgpu_bo *bo_ptr; uint64_t gpu_addr; uint32_t size; };”…”�”}”hjcsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KuhjBubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjth]”hŒMembers”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K|hjBubj)�”}”(hhh]”(j )�”}”(hŒ``cpu_addr`` MMIO cpu addr ”h]”(j)�”}”(hŒ ``cpu_addr``”h]”jï)�”}”(hj“h]”hŒcpu_addr”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kqhj�ubj-)�”}”(hhh]”hì)�”}”(hŒ MMIO cpu addr”h]”hŒ MMIO cpu addr”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¨h´Kqhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¨h´KqhjŠubj )�”}”(hŒ(``bo_ptr`` Pointer to the buffer object ”h]”(j)�”}”(hŒ ``bo_ptr``”h]”jï)�”}”(hjÌh]”hŒbo_ptr”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KrhjÆubj-)�”}”(hhh]”hì)�”}”(hŒPointer to the buffer object”h]”hŒPointer to the buffer object”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jáh´Krhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jáh´KrhjŠubj )�”}”(hŒ``gpu_addr`` MMIO gpu addr ”h]”(j)�”}”(hŒ ``gpu_addr``”h]”jï)�”}”(hjh]”hŒgpu_addr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kshjÿubj-)�”}”(hhh]”hì)�”}”(hŒ MMIO gpu addr”h]”hŒ MMIO gpu addr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´Kshjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´KshjŠubj )�”}”(hŒ``size`` Size of the buffer”h]”(j)�”}”(hŒ``size``”h]”jï)�”}”(hj>h]”hŒsize”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kshj8ubj-)�”}”(hhh]”hì)�”}”(hŒSize of the buffer”h]”hŒSize of the buffer”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KthjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jSh´KshjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjBubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdmub_hpd_work (C struct)”Œc.dmub_hpd_work”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ dmub_hpd_work”h]”j8)�”}”(hŒstruct dmub_hpd_work”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj”h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KzubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj”h²hh³j¥h´Kzubja)�”}”(hŒ dmub_hpd_work”h]”jg)�”}”(hj’h]”hŒ dmub_hpd_work”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj´ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj”h²hh³j¥h´Kzubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj�h²hh³j¥h´Kzubah}”(h]”j‹ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j¥h´Kzhj�h²hubj•)�”}”(hhh]”hì)�”}”(hŒ5Handle time consuming work in low priority outbox IRQ”h]”hŒ5Handle time consuming work in low priority outbox IRQ”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Khj×h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj�h²hh³j¥h´Kzubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jòj·jòj¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hXc**Definition**:: struct dmub_hpd_work { struct work_struct handle_hpd_work; struct dmub_notification *dmub_notify; struct amdgpu_device *adev; }; **Members** ``handle_hpd_work`` Work to be executed in a separate thread to handle hpd_low_irq ``dmub_notify`` notification for callback function ``adev`` amdgpu_device pointer”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjúubhŒ:”…”�”}”(hjúh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kƒhjöubjß)�”}”(hŒŒstruct dmub_hpd_work { struct work_struct handle_hpd_work; struct dmub_notification *dmub_notify; struct amdgpu_device *adev; };”h]”hŒŒstruct dmub_hpd_work { struct work_struct handle_hpd_work; struct dmub_notification *dmub_notify; struct amdgpu_device *adev; };”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K…hjöubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hj(h]”hŒMembers”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K‹hjöubj)�”}”(hhh]”(j )�”}”(hŒS``handle_hpd_work`` Work to be executed in a separate thread to handle hpd_low_irq ”h]”(j)�”}”(hŒ``handle_hpd_work``”h]”jï)�”}”(hjGh]”hŒhandle_hpd_work”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K‚hjAubj-)�”}”(hhh]”hì)�”}”(hŒ>Work to be executed in a separate thread to handle hpd_low_irq”h]”hŒ>Work to be executed in a separate thread to handle hpd_low_irq”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j\h´K‚hj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j\h´K‚hj>ubj )�”}”(hŒ3``dmub_notify`` notification for callback function ”h]”(j)�”}”(hŒ``dmub_notify``”h]”jï)�”}”(hj€h]”hŒ dmub_notify”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kƒhjzubj-)�”}”(hhh]”hì)�”}”(hŒ"notification for callback function”h]”hŒ"notification for callback function”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j•h´Kƒhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjzubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j•h´Kƒhj>ubj )�”}”(hŒ``adev`` amdgpu_device pointer”h]”(j)�”}”(hŒ``adev``”h]”jï)�”}”(hj¹h]”hŒadev”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kƒhj³ubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K„hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÎh´Kƒhj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjöubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œvblank_control_work (C struct)”Œc.vblank_control_work”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒvblank_control_work”h]”j8)�”}”(hŒstruct vblank_control_work”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjh²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KŠubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjh²hh³j h´KŠubja)�”}”(hŒvblank_control_work”h]”jg)�”}”(hj h]”hŒvblank_control_work”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj/ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjh²hh³j h´KŠubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj h²hh³j h´KŠubah}”(h]”jah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j h´KŠhjh²hubj•)�”}”(hhh]”hì)�”}”(hŒWork data for vblank control”h]”hŒWork data for vblank control”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KŒhjRh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjh²hh³j h´KŠubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jmj·jmj¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hXÞ**Definition**:: struct vblank_control_work { struct work_struct work; struct amdgpu_display_manager *dm; struct amdgpu_crtc *acrtc; struct dc_stream_state *stream; bool enable; }; **Members** ``work`` Kernel work data for the work event ``dm`` amdgpu display manager device ``acrtc`` amdgpu CRTC instance for which the event has occurred ``stream`` DC stream for which the event has occurred ``enable`` true if enabling vblank”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjuubhŒ:”…”�”}”(hjuh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K�hjqubjß)�”}”(hŒ·struct vblank_control_work { struct work_struct work; struct amdgpu_display_manager *dm; struct amdgpu_crtc *acrtc; struct dc_stream_state *stream; bool enable; };”h]”hŒ·struct vblank_control_work { struct work_struct work; struct amdgpu_display_manager *dm; struct amdgpu_crtc *acrtc; struct dc_stream_state *stream; bool enable; };”…”�”}”hj’sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K’hjqubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hj£h]”hŒMembers”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kšhjqubj)�”}”(hhh]”(j )�”}”(hŒ-``work`` Kernel work data for the work event ”h]”(j)�”}”(hŒ``work``”h]”jï)�”}”(hjÂh]”hŒwork”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KŽhj¼ubj-)�”}”(hhh]”hì)�”}”(hŒ#Kernel work data for the work event”h]”hŒ#Kernel work data for the work event”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j×h´KŽhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j×h´KŽhj¹ubj )�”}”(hŒ%``dm`` amdgpu display manager device ”h]”(j)�”}”(hŒ``dm``”h]”jï)�”}”(hjûh]”hŒdm”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K�hjõubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu display manager device”h]”hŒamdgpu display manager device”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j h´K�hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j h´K�hj¹ubj )�”}”(hŒ@``acrtc`` amdgpu CRTC instance for which the event has occurred ”h]”(j)�”}”(hŒ ``acrtc``”h]”jï)�”}”(hj4 h]”hŒacrtc”…”�”}”(hj6 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj2 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K�hj. ubj-)�”}”(hhh]”hì)�”}”(hŒ5amdgpu CRTC instance for which the event has occurred”h]”hŒ5amdgpu CRTC instance for which the event has occurred”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jI h´K�hjJ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj. ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jI h´K�hj¹ubj )�”}”(hŒ6``stream`` DC stream for which the event has occurred ”h]”(j)�”}”(hŒ ``stream``”h]”jï)�”}”(hjm h]”hŒstream”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjk ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K‘hjg ubj-)�”}”(hhh]”hì)�”}”(hŒ*DC stream for which the event has occurred”h]”hŒ*DC stream for which the event has occurred”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‚ h´K‘hjƒ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjg ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‚ h´K‘hj¹ubj )�”}”(hŒ"``enable`` true if enabling vblank”h]”(j)�”}”(hŒ ``enable``”h]”jï)�”}”(hj¦ h]”hŒenable”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¤ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K‘hj  ubj-)�”}”(hhh]”hì)�”}”(hŒtrue if enabling vblank”h]”hŒtrue if enabling vblank”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K’hj¼ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj  ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j» h´K‘hj¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjqubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œidle_workqueue (C struct)”Œc.idle_workqueue”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒidle_workqueue”h]”j8)�”}”(hŒstruct idle_workqueue”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjü h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K˜ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjü h²hh³j h´K˜ubja)�”}”(hŒidle_workqueue”h]”jg)�”}”(hjú h]”hŒidle_workqueue”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjü h²hh³j h´K˜ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjø h²hh³j h´K˜ubah}”(h]”jó ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j h´K˜hjõ h²hubj•)�”}”(hhh]”hì)�”}”(hŒ%Work data for periodic action in idle”h]”hŒ%Work data for periodic action in idle”…”�”}”(hjB h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kœhj? h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjõ h²hh³j h´K˜ubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jZ j·jZ j¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hX_**Definition**:: struct idle_workqueue { struct work_struct work; struct amdgpu_display_manager *dm; bool enable; bool running; }; **Members** ``work`` Kernel work data for the work event ``dm`` amdgpu display manager device ``enable`` true if idle worker is enabled ``running`` true if idle worker is running”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjb ubhŒ:”…”�”}”(hjb h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K hj^ ubjß)�”}”(hŒ�struct idle_workqueue { struct work_struct work; struct amdgpu_display_manager *dm; bool enable; bool running; };”h]”hŒ�struct idle_workqueue { struct work_struct work; struct amdgpu_display_manager *dm; bool enable; bool running; };”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K¢hj^ ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hj� h]”hŒMembers”…”�”}”(hj’ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjŽ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K©hj^ ubj)�”}”(hhh]”(j )�”}”(hŒ-``work`` Kernel work data for the work event ”h]”(j)�”}”(hŒ``work``”h]”jï)�”}”(hj¯ h]”hŒwork”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj­ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kžhj© ubj-)�”}”(hhh]”hì)�”}”(hŒ#Kernel work data for the work event”h]”hŒ#Kernel work data for the work event”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÄ h´KžhjÅ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj© ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÄ h´Kžhj¦ ubj )�”}”(hŒ%``dm`` amdgpu display manager device ”h]”(j)�”}”(hŒ``dm``”h]”jï)�”}”(hjè h]”hŒdm”…”�”}”(hjê h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjæ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KŸhjâ ubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu display manager device”h]”hŒamdgpu display manager device”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jý h´KŸhjþ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjâ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jý h´KŸhj¦ ubj )�”}”(hŒ*``enable`` true if idle worker is enabled ”h]”(j)�”}”(hŒ ``enable``”h]”jï)�”}”(hj! h]”hŒenable”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K hj ubj-)�”}”(hhh]”hì)�”}”(hŒtrue if idle worker is enabled”h]”hŒtrue if idle worker is enabled”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j6 h´K hj7 ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j6 h´K hj¦ ubj )�”}”(hŒ*``running`` true if idle worker is running”h]”(j)�”}”(hŒ ``running``”h]”jï)�”}”(hjZ h]”hŒrunning”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjX ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K hjT ubj-)�”}”(hhh]”hì)�”}”(hŒtrue if idle worker is running”h]”hŒtrue if idle worker is running”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K¡hjp ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjT ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jo h´K hj¦ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj^ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œvupdate_offload_work (C struct)”Œc.vupdate_offload_work”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒvupdate_offload_work”h]”j8)�”}”(hŒstruct vupdate_offload_work”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj° h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K§ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj° h²hh³jÁ h´K§ubja)�”}”(hŒvupdate_offload_work”h]”jg)�”}”(hj® h]”hŒvupdate_offload_work”…”�”}”(hjÔ h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÐ ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj° h²hh³jÁ h´K§ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj¬ h²hh³jÁ h´K§ubah}”(h]”j§ ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jÁ h´K§hj© h²hubj•)�”}”(hhh]”hì)�”}”(hŒ2Work data for offloading task from vupdate handler”h]”hŒ2Work data for offloading task from vupdate handler”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kªhjó h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj© h²hh³jÁ h´K§ubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j j·j j¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hXœ**Definition**:: struct vupdate_offload_work { struct work_struct work; struct amdgpu_device *adev; struct dc_stream_state *stream; struct dc_crtc_timing_adjust *adjust; }; **Members** ``work`` Kernel work data for the work event ``adev`` amdgpu_device back pointer ``stream`` DC stream associated with the crtc ``adjust`` DC CRTC timing adjust to be applied to the crtc”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj ubhŒ:”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K®hj ubjß)�”}”(hŒ«struct vupdate_offload_work { struct work_struct work; struct amdgpu_device *adev; struct dc_stream_state *stream; struct dc_crtc_timing_adjust *adjust; };”h]”hŒ«struct vupdate_offload_work { struct work_struct work; struct amdgpu_device *adev; struct dc_stream_state *stream; struct dc_crtc_timing_adjust *adjust; };”…”�”}”hj3 sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K°hj ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjD h]”hŒMembers”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjB ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K·hj ubj)�”}”(hhh]”(j )�”}”(hŒ-``work`` Kernel work data for the work event ”h]”(j)�”}”(hŒ``work``”h]”jï)�”}”(hjc h]”hŒwork”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhja ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K¬hj] ubj-)�”}”(hhh]”hì)�”}”(hŒ#Kernel work data for the work event”h]”hŒ#Kernel work data for the work event”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jx h´K¬hjy ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj] ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jx h´K¬hjZ ubj )�”}”(hŒ$``adev`` amdgpu_device back pointer ”h]”(j)�”}”(hŒ``adev``”h]”jï)�”}”(hjœ h]”hŒadev”…”�”}”(hjž h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjš ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K­hj– ubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu_device back pointer”h]”hŒamdgpu_device back pointer”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j± h´K­hj² ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj– ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j± h´K­hjZ ubj )�”}”(hŒ.``stream`` DC stream associated with the crtc ”h]”(j)�”}”(hŒ ``stream``”h]”jï)�”}”(hjÕ h]”hŒstream”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÓ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K®hjÏ ubj-)�”}”(hhh]”hì)�”}”(hŒ"DC stream associated with the crtc”h]”hŒ"DC stream associated with the crtc”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jê h´K®hjë ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÏ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jê h´K®hjZ ubj )�”}”(hŒ:``adjust`` DC CRTC timing adjust to be applied to the crtc”h]”(j)�”}”(hŒ ``adjust``”h]”jï)�”}”(hj h]”hŒadjust”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K®hj ubj-)�”}”(hhh]”hì)�”}”(hŒ/DC CRTC timing adjust to be applied to the crtc”h]”hŒ/DC CRTC timing adjust to be applied to the crtc”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K¯hj$ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j# h´K®hjZ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ#amdgpu_dm_luminance_data (C struct)”Œc.amdgpu_dm_luminance_data”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒamdgpu_dm_luminance_data”h]”j8)�”}”(hŒstruct amdgpu_dm_luminance_data”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjh h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjd h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KµubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjd h²hh³ju h´Kµubja)�”}”(hŒamdgpu_dm_luminance_data”h]”jg)�”}”(hjb h]”hŒamdgpu_dm_luminance_data”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj„ ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjd h²hh³ju h´Kµubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj` h²hh³ju h´Kµubah}”(h]”j[ ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³ju h´Kµhj] h²hubj•)�”}”(hhh]”hì)�”}”(hŒCustom luminance data”h]”hŒCustom luminance data”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kºhj§ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj] h²hh³ju h´Kµubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j j·j j¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hŒÈ**Definition**:: struct amdgpu_dm_luminance_data { u8 luminance; u8 input_signal; }; **Members** ``luminance`` Luminance in percent ``input_signal`` Input signal in range 0-255”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÊ ubhŒ:”…”�”}”(hjÊ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K¾hjÆ ubjß)�”}”(hŒKstruct amdgpu_dm_luminance_data { u8 luminance; u8 input_signal; };”h]”hŒKstruct amdgpu_dm_luminance_data { u8 luminance; u8 input_signal; };”…”�”}”hjç sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÀhjÆ ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjø h]”hŒMembers”…”�”}”(hjú h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjö ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÅhjÆ ubj)�”}”(hhh]”(j )�”}”(hŒ#``luminance`` Luminance in percent ”h]”(j)�”}”(hŒ ``luminance``”h]”jï)�”}”(hjh]”hŒ luminance”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K¼hjubj-)�”}”(hhh]”hì)�”}”(hŒLuminance in percent”h]”hŒLuminance in percent”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j,h´K¼hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j,h´K¼hjubj )�”}”(hŒ,``input_signal`` Input signal in range 0-255”h]”(j)�”}”(hŒ``input_signal``”h]”jï)�”}”(hjPh]”hŒ input_signal”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K¼hjJubj-)�”}”(hhh]”hì)�”}”(hŒInput signal in range 0-255”h]”hŒInput signal in range 0-255”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´K½hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jeh´K¼hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÆ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ#amdgpu_dm_backlight_caps (C struct)”Œc.amdgpu_dm_backlight_caps”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒamdgpu_dm_backlight_caps”h]”j8)�”}”(hŒstruct amdgpu_dm_backlight_caps”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¦h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÃubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¦h²hh³j·h´KÃubja)�”}”(hŒamdgpu_dm_backlight_caps”h]”jg)�”}”(hj¤h]”hŒamdgpu_dm_backlight_caps”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÆubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj¦h²hh³j·h´KÃubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj¢h²hh³j·h´KÃubah}”(h]”j�ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j·h´KÃhjŸh²hubj•)�”}”(hhh]”hì)�”}”(hŒInformation about backlight”h]”hŒInformation about backlight”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÄhjéh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjŸh²hh³j·h´KÃubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jj·jj¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hX,**Definition**:: struct amdgpu_dm_backlight_caps { union dpcd_sink_ext_caps *ext_caps; u32 aux_min_input_signal; u32 aux_max_input_signal; int min_input_signal; int max_input_signal; bool caps_valid; bool aux_support; u32 brightness_mask; u8 ac_level; u8 dc_level; u8 data_points; struct amdgpu_dm_luminance_data luminance_data[MAX_LUMINANCE_DATA_POINTS]; }; **Members** ``ext_caps`` Keep the data struct with all the information about the display support for HDR. ``aux_min_input_signal`` Min brightness value supported by the display ``aux_max_input_signal`` Max brightness value supported by the display in nits. ``min_input_signal`` minimum possible input in range 0-255. ``max_input_signal`` maximum possible input in range 0-255. ``caps_valid`` true if these values are from the ACPI interface. ``aux_support`` Describes if the display supports AUX backlight. ``brightness_mask`` After deriving brightness, OR it with this mask. Workaround for panels with issues with certain brightness values. ``ac_level`` the default brightness if booted on AC ``dc_level`` the default brightness if booted on DC ``data_points`` the number of custom luminance data points ``luminance_data`` custom luminance data”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj ubhŒ:”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÈhjubjß)�”}”(hX…struct amdgpu_dm_backlight_caps { union dpcd_sink_ext_caps *ext_caps; u32 aux_min_input_signal; u32 aux_max_input_signal; int min_input_signal; int max_input_signal; bool caps_valid; bool aux_support; u32 brightness_mask; u8 ac_level; u8 dc_level; u8 data_points; struct amdgpu_dm_luminance_data luminance_data[MAX_LUMINANCE_DATA_POINTS]; };”h]”hX…struct amdgpu_dm_backlight_caps { union dpcd_sink_ext_caps *ext_caps; u32 aux_min_input_signal; u32 aux_max_input_signal; int min_input_signal; int max_input_signal; bool caps_valid; bool aux_support; u32 brightness_mask; u8 ac_level; u8 dc_level; u8 data_points; struct amdgpu_dm_luminance_data luminance_data[MAX_LUMINANCE_DATA_POINTS]; };”…”�”}”hj)sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÊhjubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hj:h]”hŒMembers”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÙhjubj)�”}”(hhh]”(j )�”}”(hŒ^``ext_caps`` Keep the data struct with all the information about the display support for HDR. ”h]”(j)�”}”(hŒ ``ext_caps``”h]”jï)�”}”(hjYh]”hŒext_caps”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÌhjSubj-)�”}”(hhh]”hì)�”}”(hŒPKeep the data struct with all the information about the display support for HDR.”h]”hŒPKeep the data struct with all the information about the display support for HDR.”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KËhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jnh´KÌhjPubj )�”}”(hŒG``aux_min_input_signal`` Min brightness value supported by the display ”h]”(j)�”}”(hŒ``aux_min_input_signal``”h]”jï)�”}”(hj“h]”hŒaux_min_input_signal”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÐhj�ubj-)�”}”(hhh]”hì)�”}”(hŒ-Min brightness value supported by the display”h]”hŒ-Min brightness value supported by the display”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¨h´KÐhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¨h´KÐhjPubj )�”}”(hŒP``aux_max_input_signal`` Max brightness value supported by the display in nits. ”h]”(j)�”}”(hŒ``aux_max_input_signal``”h]”jï)�”}”(hjÌh]”hŒaux_max_input_signal”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÕhjÆubj-)�”}”(hhh]”hì)�”}”(hŒ6Max brightness value supported by the display in nits.”h]”hŒ6Max brightness value supported by the display in nits.”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÔhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jáh´KÕhjPubj )�”}”(hŒ<``min_input_signal`` minimum possible input in range 0-255. ”h]”(j)�”}”(hŒ``min_input_signal``”h]”jï)�”}”(hjh]”hŒmin_input_signal”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÙhjubj-)�”}”(hhh]”hì)�”}”(hŒ&minimum possible input in range 0-255.”h]”hŒ&minimum possible input in range 0-255.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´KÙhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´KÙhjPubj )�”}”(hŒ<``max_input_signal`` maximum possible input in range 0-255. ”h]”(j)�”}”(hŒ``max_input_signal``”h]”jï)�”}”(hj?h]”hŒmax_input_signal”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÝhj9ubj-)�”}”(hhh]”hì)�”}”(hŒ&maximum possible input in range 0-255.”h]”hŒ&maximum possible input in range 0-255.”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jTh´KÝhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jTh´KÝhjPubj )�”}”(hŒA``caps_valid`` true if these values are from the ACPI interface. ”h]”(j)�”}”(hŒ``caps_valid``”h]”jï)�”}”(hjxh]”hŒ caps_valid”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Káhjrubj-)�”}”(hhh]”hì)�”}”(hŒ1true if these values are from the ACPI interface.”h]”hŒ1true if these values are from the ACPI interface.”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�h´KáhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjrubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�h´KáhjPubj )�”}”(hŒA``aux_support`` Describes if the display supports AUX backlight. ”h]”(j)�”}”(hŒ``aux_support``”h]”jï)�”}”(hj±h]”hŒ aux_support”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kåhj«ubj-)�”}”(hhh]”hì)�”}”(hŒ0Describes if the display supports AUX backlight.”h]”hŒ0Describes if the display supports AUX backlight.”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÆh´KåhjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÆh´KåhjPubj )�”}”(hŒ‡``brightness_mask`` After deriving brightness, OR it with this mask. Workaround for panels with issues with certain brightness values. ”h]”(j)�”}”(hŒ``brightness_mask``”h]”jï)�”}”(hjêh]”hŒbrightness_mask”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kêhjäubj-)�”}”(hhh]”hì)�”}”(hŒrAfter deriving brightness, OR it with this mask. Workaround for panels with issues with certain brightness values.”h]”hŒrAfter deriving brightness, OR it with this mask. Workaround for panels with issues with certain brightness values.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kéhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÿh´KêhjPubj )�”}”(hŒ4``ac_level`` the default brightness if booted on AC ”h]”(j)�”}”(hŒ ``ac_level``”h]”jï)�”}”(hj$h]”hŒac_level”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kîhjubj-)�”}”(hhh]”hì)�”}”(hŒ&the default brightness if booted on AC”h]”hŒ&the default brightness if booted on AC”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j9h´Kîhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j9h´KîhjPubj )�”}”(hŒ4``dc_level`` the default brightness if booted on DC ”h]”(j)�”}”(hŒ ``dc_level``”h]”jï)�”}”(hj]h]”hŒdc_level”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KòhjWubj-)�”}”(hhh]”hì)�”}”(hŒ&the default brightness if booted on DC”h]”hŒ&the default brightness if booted on DC”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jrh´Kòhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jrh´KòhjPubj )�”}”(hŒ;``data_points`` the number of custom luminance data points ”h]”(j)�”}”(hŒ``data_points``”h]”jï)�”}”(hj–h]”hŒ data_points”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Köhj�ubj-)�”}”(hhh]”hì)�”}”(hŒ*the number of custom luminance data points”h]”hŒ*the number of custom luminance data points”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j«h´Köhj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j«h´KöhjPubj )�”}”(hŒ(``luminance_data`` custom luminance data”h]”(j)�”}”(hŒ``luminance_data``”h]”jï)�”}”(hjÏh]”hŒluminance_data”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KùhjÉubj-)�”}”(hhh]”hì)�”}”(hŒcustom luminance data”h]”hŒcustom luminance data”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kúhjåubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jäh´KùhjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kýhh·h²hubhì)�”}”(hŒ3Describe the backlight support for ACPI or eDP AUX.”h]”hŒ3Describe the backlight support for ACPI or eDP AUX.”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÅhh·h²hubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdal_allocation (C struct)”Œc.dal_allocation”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdal_allocation”h]”j8)�”}”(hŒstruct dal_allocation”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjLh²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´KÊubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjLh²hh³j]h´KÊubja)�”}”(hŒdal_allocation”h]”jg)�”}”(hjJh]”hŒdal_allocation”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjlubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjLh²hh³j]h´KÊubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjHh²hh³j]h´KÊubah}”(h]”jCah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j]h´KÊhjEh²hubj•)�”}”(hhh]”hì)�”}”(hŒ-Tracks mapped FB memory for SMU communication”h]”hŒ-Tracks mapped FB memory for SMU communication”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Kÿhj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjEh²hh³j]h´KÊubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jªj·jªj¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hXX**Definition**:: struct dal_allocation { struct list_head list; struct amdgpu_bo *bo; void *cpu_ptr; u64 gpu_addr; }; **Members** ``list`` list of dal allocations ``bo`` GPU buffer object ``cpu_ptr`` CPU virtual address of the GPU buffer object ``gpu_addr`` GPU virtual address of the GPU buffer object”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj²ubhŒ:”…”�”}”(hj²h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhj®ubjß)�”}”(hŒtstruct dal_allocation { struct list_head list; struct amdgpu_bo *bo; void *cpu_ptr; u64 gpu_addr; };”h]”hŒtstruct dal_allocation { struct list_head list; struct amdgpu_bo *bo; void *cpu_ptr; u64 gpu_addr; };”…”�”}”hjÏsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhj®ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjàh]”hŒMembers”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”•;h´M hj®ubj)�”}”(hhh]”(j )�”}”(hŒ!``list`` list of dal allocations ”h]”(j)�”}”(hŒ``list``”h]”jï)�”}”(hjÿh]”hŒlist”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjýubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhjùubj-)�”}”(hhh]”hì)�”}”(hŒlist of dal allocations”h]”hŒlist of dal allocations”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´Mhjöubj )�”}”(hŒ``bo`` GPU buffer object ”h]”(j)�”}”(hŒ``bo``”h]”jï)�”}”(hj8h]”hŒbo”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhj2ubj-)�”}”(hhh]”hì)�”}”(hŒGPU buffer object”h]”hŒGPU buffer object”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jMh´MhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jMh´Mhjöubj )�”}”(hŒ9``cpu_ptr`` CPU virtual address of the GPU buffer object ”h]”(j)�”}”(hŒ ``cpu_ptr``”h]”jï)�”}”(hjqh]”hŒcpu_ptr”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhjkubj-)�”}”(hhh]”hì)�”}”(hŒ,CPU virtual address of the GPU buffer object”h]”hŒ,CPU virtual address of the GPU buffer object”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j†h´Mhj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjkubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j†h´Mhjöubj )�”}”(hŒ9``gpu_addr`` GPU virtual address of the GPU buffer object”h]”(j)�”}”(hŒ ``gpu_addr``”h]”jï)�”}”(hjªh]”hŒgpu_addr”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhj¤ubj-)�”}”(hhh]”hì)�”}”(hŒ,GPU virtual address of the GPU buffer object”h]”hŒ,GPU virtual address of the GPU buffer object”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¿h´Mhjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj®ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ(hpd_rx_irq_offload_work_queue (C struct)”Œc.hpd_rx_irq_offload_work_queue”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒhpd_rx_irq_offload_work_queue”h]”j8)�”}”(hŒ$struct hpd_rx_irq_offload_work_queue”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjh²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjh²hh³jh´M ubja)�”}”(hŒhpd_rx_irq_offload_work_queue”h]”jg)�”}”(hjþh]”hŒhpd_rx_irq_offload_work_queue”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjh²hh³jh´M ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjüh²hh³jh´M ubah}”(h]”j÷ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jh´M hjùh²hubj•)�”}”(hhh]”hì)�”}”(hŒ,Work queue to handle hpd_rx_irq offload work”h]”hŒ,Work queue to handle hpd_rx_irq offload work”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M hjCh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjùh²hh³jh´M ubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j^j·j^j¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hX³**Definition**:: struct hpd_rx_irq_offload_work_queue { struct workqueue_struct *wq; spinlock_t offload_lock; bool is_handling_link_loss; bool is_handling_mst_msg_rdy_event; struct amdgpu_dm_connector *aconnector; }; **Members** ``wq`` workqueue structure to queue offload work. ``offload_lock`` To protect fields of offload work queue. ``is_handling_link_loss`` Used to prevent inserting link loss event when we're handling link loss ``is_handling_mst_msg_rdy_event`` Used to prevent inserting mst message ready event when we're already handling mst message ready event ``aconnector`` The aconnector that this work queue is attached to”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjfubhŒ:”…”�”}”(hjfh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhjbubjß)�”}”(hŒÛstruct hpd_rx_irq_offload_work_queue { struct workqueue_struct *wq; spinlock_t offload_lock; bool is_handling_link_loss; bool is_handling_mst_msg_rdy_event; struct amdgpu_dm_connector *aconnector; };”h]”hŒÛstruct hpd_rx_irq_offload_work_queue { struct workqueue_struct *wq; spinlock_t offload_lock; bool is_handling_link_loss; bool is_handling_mst_msg_rdy_event; struct amdgpu_dm_connector *aconnector; };”…”�”}”hjƒsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhjbubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hj”h]”hŒMembers”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhjbubj)�”}”(hhh]”(j )�”}”(hŒ2``wq`` workqueue structure to queue offload work. ”h]”(j)�”}”(hŒ``wq``”h]”jï)�”}”(hj³h]”hŒwq”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhj­ubj-)�”}”(hhh]”hì)�”}”(hŒ*workqueue structure to queue offload work.”h]”hŒ*workqueue structure to queue offload work.”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÈh´MhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÈh´Mhjªubj )�”}”(hŒ:``offload_lock`` To protect fields of offload work queue. ”h]”(j)�”}”(hŒ``offload_lock``”h]”jï)�”}”(hjìh]”hŒ offload_lock”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhjæubj-)�”}”(hhh]”hì)�”}”(hŒ(To protect fields of offload work queue.”h]”hŒ(To protect fields of offload work queue.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´Mhjªubj )�”}”(hŒb``is_handling_link_loss`` Used to prevent inserting link loss event when we're handling link loss ”h]”(j)�”}”(hŒ``is_handling_link_loss``”h]”jï)�”}”(hj%h]”hŒis_handling_link_loss”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhjubj-)�”}”(hhh]”hì)�”}”(hŒGUsed to prevent inserting link loss event when we're handling link loss”h]”hŒIUsed to prevent inserting link loss event when we’re handling link loss”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j:h´Mhjªubj )�”}”(hŒˆ``is_handling_mst_msg_rdy_event`` Used to prevent inserting mst message ready event when we're already handling mst message ready event ”h]”(j)�”}”(hŒ!``is_handling_mst_msg_rdy_event``”h]”jï)�”}”(hj_h]”hŒis_handling_mst_msg_rdy_event”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M!hjYubj-)�”}”(hhh]”hì)�”}”(hŒeUsed to prevent inserting mst message ready event when we're already handling mst message ready event”h]”hŒgUsed to prevent inserting mst message ready event when we’re already handling mst message ready event”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jth´M!hjªubj )�”}”(hŒA``aconnector`` The aconnector that this work queue is attached to”h]”(j)�”}”(hŒ``aconnector``”h]”jï)�”}”(hj™h]”hŒ aconnector”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M$hj“ubj-)�”}”(hhh]”hì)�”}”(hŒ2The aconnector that this work queue is attached to”h]”hŒ2The aconnector that this work queue is attached to”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M%hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j®h´M$hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjbubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ"hpd_rx_irq_offload_work (C struct)”Œc.hpd_rx_irq_offload_work”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒhpd_rx_irq_offload_work”h]”j8)�”}”(hŒstruct hpd_rx_irq_offload_work”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjïh²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M+ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjïh²hh³jh´M+ubja)�”}”(hŒhpd_rx_irq_offload_work”h]”jg)�”}”(hjíh]”hŒhpd_rx_irq_offload_work”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjïh²hh³jh´M+ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjëh²hh³jh´M+ubah}”(h]”jæah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jh´M+hjèh²hubj•)�”}”(hhh]”hì)�”}”(hŒ!hpd_rx_irq offload work structure”h]”hŒ!hpd_rx_irq offload work structure”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M*hj2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjèh²hh³jh´M+ubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jMj·jMj¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hX£**Definition**:: struct hpd_rx_irq_offload_work { struct work_struct work; union hpd_irq_data data; struct hpd_rx_irq_offload_work_queue *offload_wq; struct amdgpu_device *adev; }; **Members** ``work`` offload work ``data`` reference irq data which is used while handling offload work ``offload_wq`` offload work queue that this work is queued to ``adev`` amdgpu_device pointer”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjUubhŒ:”…”�”}”(hjUh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M.hjQubjß)�”}”(hŒ³struct hpd_rx_irq_offload_work { struct work_struct work; union hpd_irq_data data; struct hpd_rx_irq_offload_work_queue *offload_wq; struct amdgpu_device *adev; };”h]”hŒ³struct hpd_rx_irq_offload_work { struct work_struct work; union hpd_irq_data data; struct hpd_rx_irq_offload_work_queue *offload_wq; struct amdgpu_device *adev; };”…”�”}”hjrsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M0hjQubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjƒh]”hŒMembers”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M7hjQubj)�”}”(hhh]”(j )�”}”(hŒ``work`` offload work ”h]”(j)�”}”(hŒ``work``”h]”jï)�”}”(hj¢h]”hŒwork”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M/hjœubj-)�”}”(hhh]”hì)�”}”(hŒ offload work”h]”hŒ offload work”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j·h´M/hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j·h´M/hj™ubj )�”}”(hŒF``data`` reference irq data which is used while handling offload work ”h]”(j)�”}”(hŒ``data``”h]”jï)�”}”(hjÛh]”hŒdata”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M3hjÕubj-)�”}”(hhh]”hì)�”}”(hŒ``offload_wq`` offload work queue that this work is queued to ”h]”(j)�”}”(hŒ``offload_wq``”h]”jï)�”}”(hjh]”hŒ offload_wq”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M7hjubj-)�”}”(hhh]”hì)�”}”(hŒ.offload work queue that this work is queued to”h]”hŒ.offload work queue that this work is queued to”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j)h´M7hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j)h´M7hj™ubj )�”}”(hŒ``adev`` amdgpu_device pointer”h]”(j)�”}”(hŒ``adev``”h]”jï)�”}”(hjMh]”hŒadev”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M:hjGubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M;hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jbh´M:hj™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ!amdgpu_display_manager (C struct)”Œc.amdgpu_display_manager”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒamdgpu_display_manager”h]”j8)�”}”(hŒstruct amdgpu_display_manager”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj£h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MAubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj£h²hh³j´h´MAubja)�”}”(hŒamdgpu_display_manager”h]”jg)�”}”(hj¡h]”hŒamdgpu_display_manager”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÃubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj£h²hh³j´h´MAubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjŸh²hh³j´h´MAubah}”(h]”jšah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j´h´MAhjœh²hubj•)�”}”(hhh]”hì)�”}”(hŒ%Central amdgpu display manager device”h]”hŒ%Central amdgpu display manager device”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M@hjæh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjœh²hh³j´h´MAubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jj·jj¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hX‚$**Definition**:: struct amdgpu_display_manager { struct dc *dc; struct dmub_srv *dmub_srv; struct dmub_notification *dmub_notify; dmub_notify_interrupt_callback_t dmub_callback[AMDGPU_DMUB_NOTIFICATION_MAX]; bool dmub_thread_offload[AMDGPU_DMUB_NOTIFICATION_MAX]; struct dmub_srv_fb_info *dmub_fb_info; const struct firmware *dmub_fw; struct amdgpu_bo *dmub_bo; u64 dmub_bo_gpu_addr; void *dmub_bo_cpu_addr; uint32_t dmcub_fw_version; uint32_t fw_inst_size; struct cgs_device *cgs_device; struct amdgpu_device *adev; struct drm_device *ddev; u16 display_indexes_num; struct drm_private_obj atomic_obj; struct mutex dc_lock; spinlock_t dmub_lock; struct mutex audio_lock; struct drm_audio_component *audio_component; bool audio_registered; struct list_head irq_handler_list_low_tab[DAL_IRQ_SOURCES_NUMBER]; struct list_head irq_handler_list_high_tab[DAL_IRQ_SOURCES_NUMBER]; struct common_irq_params pflip_params[DC_IRQ_SOURCE_PFLIP_LAST - DC_IRQ_SOURCE_PFLIP_FIRST + 1]; struct common_irq_params vblank_params[DC_IRQ_SOURCE_VBLANK6 - DC_IRQ_SOURCE_VBLANK1 + 1]; struct common_irq_params vline0_params[DC_IRQ_SOURCE_DC6_VLINE0 - DC_IRQ_SOURCE_DC1_VLINE0 + 1]; struct common_irq_params vupdate_params[DC_IRQ_SOURCE_VUPDATE6 - DC_IRQ_SOURCE_VUPDATE1 + 1]; spinlock_t irq_reg_lock; struct common_irq_params dmub_trace_params[1]; struct common_irq_params dmub_outbox_params[1]; spinlock_t irq_handler_list_table_lock; struct workqueue_struct *irq_wq; struct workqueue_struct *vmin_vmax_wq; struct backlight_device *backlight_dev[AMDGPU_DM_MAX_NUM_EDP]; const struct dc_link *backlight_link[AMDGPU_DM_MAX_NUM_EDP]; uint8_t num_of_edps; struct amdgpu_dm_backlight_caps backlight_caps[AMDGPU_DM_MAX_NUM_EDP]; struct mod_freesync *freesync_module; struct mod_power *power_module; struct hdcp_workqueue *hdcp_workqueue; struct workqueue_struct *vblank_control_workqueue; struct idle_workqueue *idle_workqueue; struct drm_atomic_commit *cached_state; struct dc_state *cached_dc_state; struct dm_compressor_info compressor; const struct firmware *fw_dmcu; uint32_t dmcu_fw_version; const struct gpu_info_soc_bounding_box_v1_0 *soc_bounding_box; uint32_t active_vblank_irq_count; #if defined(CONFIG_DRM_AMD_SECURE_DISPLAY); struct secure_display_context secure_display_ctx; #endif; struct hpd_rx_irq_offload_work_queue *hpd_rx_offload_wq; struct amdgpu_encoder mst_encoders[AMDGPU_DM_MAX_CRTC]; bool force_timing_sync; bool disable_hpd_irq; bool dmcub_trace_event_en; struct list_head da_list; struct completion dmub_aux_transfer_done; struct workqueue_struct *delayed_hpd_wq; u32 brightness[AMDGPU_DM_MAX_NUM_EDP]; u32 actual_brightness[AMDGPU_DM_MAX_NUM_EDP]; bool aux_hpd_discon_quirk; bool edp0_on_dp1_quirk; struct mutex dpia_aux_lock; void *bb_from_dmub; void *i2c_devres_group; struct amdgpu_i2c_adapter *oem_i2c; struct fused_io_sync { struct completion replied; char reply_data[0x40]; } fused_io[8]; struct workqueue_struct *hdmi_frl_status_polling_wq; struct delayed_work hdmi_frl_status_polling_work; unsigned int hdmi_frl_status_polling_delay_ms; struct dm_boot_time_crc_info boot_time_crc_info; }; **Members** ``dc`` Display Core control structure ``dmub_srv`` DMUB service, used for controlling the DMUB on hardware that supports it. The pointer to the dmub_srv will be NULL on hardware that does not support it. ``dmub_notify`` Notification from DMUB. ``dmub_callback`` Callback functions to handle notification from DMUB. ``dmub_thread_offload`` Flag to indicate if callback is offload. ``dmub_fb_info`` Framebuffer regions for the DMUB. ``dmub_fw`` DMUB firmware, required on hardware that has DMUB support. ``dmub_bo`` Buffer object for the DMUB. ``dmub_bo_gpu_addr`` GPU virtual address for the DMUB buffer object. ``dmub_bo_cpu_addr`` CPU address for the DMUB buffer object. ``dmcub_fw_version`` DMCUB firmware version. ``fw_inst_size`` Size of the firmware instruction buffer. ``cgs_device`` The Common Graphics Services device. It provides an interface for accessing registers. ``adev`` AMDGPU base driver structure ``ddev`` DRM base driver structure ``display_indexes_num`` Max number of display streams supported ``atomic_obj`` In combination with :c:type:`dm_atomic_state` it helps manage global atomic state that doesn't map cleanly into existing drm resources, like :c:type:`dc_context`. ``dc_lock`` Guards access to DC functions that can issue register write sequences. ``dmub_lock`` Guards access to DMUB command submission. ``audio_lock`` Guards access to audio instance changes. ``audio_component`` Used to notify ELD changes to sound driver. ``audio_registered`` True if the audio component has been registered successfully, false otherwise. ``irq_handler_list_low_tab`` Low priority IRQ handler table. It is a n*m table consisting of n IRQ sources, and m handlers per IRQ source. Low priority IRQ handlers are deferred to a workqueue to be processed. Hence, they can sleep. Note that handlers are called in the same order as they were registered (FIFO). ``irq_handler_list_high_tab`` High priority IRQ handler table. It is a n*m table, same as :c:type:`irq_handler_list_low_tab`. However, handlers in this table are not deferred and are called immediately. ``pflip_params`` Page flip IRQ parameters, passed to registered handlers when triggered. ``vblank_params`` Vertical blanking IRQ parameters, passed to registered handlers when triggered. ``vline0_params`` OTG vertical interrupt0 IRQ parameters, passed to registered handlers when triggered. ``vupdate_params`` Vertical update IRQ parameters, passed to registered handlers when triggered. ``irq_reg_lock`` Serializes the read-modify-writes of the HW interrupt control registers. Several interrupt sources share one register - e.g. the enable and clear bits of both VSTARTUP (vblank) and VUPDATE_NO_LOCK live in OTG_GLOBAL_SYNC_STATUS. Therefore, enabling one source must not race with acking another. Held only across amdgpu_dm_irq_set() and amdgpu_dm_irq_ack(). ``dmub_trace_params`` DMUB trace event IRQ parameters, passed to registered handlers when triggered. ``dmub_outbox_params`` DMUB Outbox parameters ``irq_handler_list_table_lock`` Synchronizes access to IRQ tables ``irq_wq`` Dedicated high-priority unbound workqueue for deferred IRQ work ``vmin_vmax_wq`` Dedicated unbound workqueue for deferred vmin/vmax updates ``backlight_dev`` Backlight control device ``backlight_link`` Link on which to control backlight ``num_of_edps`` number of backlight eDPs ``backlight_caps`` Capabilities of the backlight device ``freesync_module`` Module handling freesync calculations ``hdcp_workqueue`` AMDGPU content protection queue ``vblank_control_workqueue`` Deferred work for vblank control events. ``idle_workqueue`` Periodic work for idle events. ``cached_state`` Caches device atomic state for suspend/resume ``cached_dc_state`` Cached state of content streams ``compressor`` Frame buffer compression buffer. See :c:type:`struct dm_compressor_info ` ``fw_dmcu`` Reference to DMCU firmware ``dmcu_fw_version`` Version of the DMCU firmware ``soc_bounding_box`` gpu_info FW provided soc bounding box struct or 0 if not available in FW ``active_vblank_irq_count`` number of currently active vblank irqs ``secure_display_ctx`` Store secure display relevant info. e.g. the ROI information , the work_struct to command dmub, etc. ``hpd_rx_offload_wq`` Work queue to offload works of hpd_rx_irq ``mst_encoders`` fake encoders used for DP MST. ``force_timing_sync`` set via debugfs. When set, indicates that all connected displays will be forced to synchronize. ``disable_hpd_irq`` disables all HPD and HPD RX interrupt handling in the driver when true ``dmcub_trace_event_en`` enable dmcub trace events ``da_list`` DAL fb memory allocation list, for communication with SMU. ``dmub_aux_transfer_done`` struct completion used to indicate when DMUB transfers are done ``delayed_hpd_wq`` work queue used to delay DMUB HPD work ``brightness`` cached backlight values. ``actual_brightness`` last successfully applied backlight values. ``aux_hpd_discon_quirk`` quirk for hpd discon while aux is on-going. occurred on certain intel platform ``edp0_on_dp1_quirk`` quirk for platforms that put edp0 on DP1. ``dpia_aux_lock`` Guards access to DPIA AUX ``bb_from_dmub`` Bounding box data read from dmub during early initialization for DCN4+ Data is stored as a byte array that should be casted to the appropriate bb struct ``i2c_devres_group`` Devres group for DM i2c adapter lifetime management. ``oem_i2c`` OEM i2c bus ``fused_io`` dmub fused io interface ``hdmi_frl_status_polling_work`` workqueue for 200ms frl status polling”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj ubhŒ:”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MDhjubjß)�”}”(hX< struct amdgpu_display_manager { struct dc *dc; struct dmub_srv *dmub_srv; struct dmub_notification *dmub_notify; dmub_notify_interrupt_callback_t dmub_callback[AMDGPU_DMUB_NOTIFICATION_MAX]; bool dmub_thread_offload[AMDGPU_DMUB_NOTIFICATION_MAX]; struct dmub_srv_fb_info *dmub_fb_info; const struct firmware *dmub_fw; struct amdgpu_bo *dmub_bo; u64 dmub_bo_gpu_addr; void *dmub_bo_cpu_addr; uint32_t dmcub_fw_version; uint32_t fw_inst_size; struct cgs_device *cgs_device; struct amdgpu_device *adev; struct drm_device *ddev; u16 display_indexes_num; struct drm_private_obj atomic_obj; struct mutex dc_lock; spinlock_t dmub_lock; struct mutex audio_lock; struct drm_audio_component *audio_component; bool audio_registered; struct list_head irq_handler_list_low_tab[DAL_IRQ_SOURCES_NUMBER]; struct list_head irq_handler_list_high_tab[DAL_IRQ_SOURCES_NUMBER]; struct common_irq_params pflip_params[DC_IRQ_SOURCE_PFLIP_LAST - DC_IRQ_SOURCE_PFLIP_FIRST + 1]; struct common_irq_params vblank_params[DC_IRQ_SOURCE_VBLANK6 - DC_IRQ_SOURCE_VBLANK1 + 1]; struct common_irq_params vline0_params[DC_IRQ_SOURCE_DC6_VLINE0 - DC_IRQ_SOURCE_DC1_VLINE0 + 1]; struct common_irq_params vupdate_params[DC_IRQ_SOURCE_VUPDATE6 - DC_IRQ_SOURCE_VUPDATE1 + 1]; spinlock_t irq_reg_lock; struct common_irq_params dmub_trace_params[1]; struct common_irq_params dmub_outbox_params[1]; spinlock_t irq_handler_list_table_lock; struct workqueue_struct *irq_wq; struct workqueue_struct *vmin_vmax_wq; struct backlight_device *backlight_dev[AMDGPU_DM_MAX_NUM_EDP]; const struct dc_link *backlight_link[AMDGPU_DM_MAX_NUM_EDP]; uint8_t num_of_edps; struct amdgpu_dm_backlight_caps backlight_caps[AMDGPU_DM_MAX_NUM_EDP]; struct mod_freesync *freesync_module; struct mod_power *power_module; struct hdcp_workqueue *hdcp_workqueue; struct workqueue_struct *vblank_control_workqueue; struct idle_workqueue *idle_workqueue; struct drm_atomic_commit *cached_state; struct dc_state *cached_dc_state; struct dm_compressor_info compressor; const struct firmware *fw_dmcu; uint32_t dmcu_fw_version; const struct gpu_info_soc_bounding_box_v1_0 *soc_bounding_box; uint32_t active_vblank_irq_count; #if defined(CONFIG_DRM_AMD_SECURE_DISPLAY); struct secure_display_context secure_display_ctx; #endif; struct hpd_rx_irq_offload_work_queue *hpd_rx_offload_wq; struct amdgpu_encoder mst_encoders[AMDGPU_DM_MAX_CRTC]; bool force_timing_sync; bool disable_hpd_irq; bool dmcub_trace_event_en; struct list_head da_list; struct completion dmub_aux_transfer_done; struct workqueue_struct *delayed_hpd_wq; u32 brightness[AMDGPU_DM_MAX_NUM_EDP]; u32 actual_brightness[AMDGPU_DM_MAX_NUM_EDP]; bool aux_hpd_discon_quirk; bool edp0_on_dp1_quirk; struct mutex dpia_aux_lock; void *bb_from_dmub; void *i2c_devres_group; struct amdgpu_i2c_adapter *oem_i2c; struct fused_io_sync { struct completion replied; char reply_data[0x40]; } fused_io[8]; struct workqueue_struct *hdmi_frl_status_polling_wq; struct delayed_work hdmi_frl_status_polling_work; unsigned int hdmi_frl_status_polling_delay_ms; struct dm_boot_time_crc_info boot_time_crc_info; };”h]”hX< struct amdgpu_display_manager { struct dc *dc; struct dmub_srv *dmub_srv; struct dmub_notification *dmub_notify; dmub_notify_interrupt_callback_t dmub_callback[AMDGPU_DMUB_NOTIFICATION_MAX]; bool dmub_thread_offload[AMDGPU_DMUB_NOTIFICATION_MAX]; struct dmub_srv_fb_info *dmub_fb_info; const struct firmware *dmub_fw; struct amdgpu_bo *dmub_bo; u64 dmub_bo_gpu_addr; void *dmub_bo_cpu_addr; uint32_t dmcub_fw_version; uint32_t fw_inst_size; struct cgs_device *cgs_device; struct amdgpu_device *adev; struct drm_device *ddev; u16 display_indexes_num; struct drm_private_obj atomic_obj; struct mutex dc_lock; spinlock_t dmub_lock; struct mutex audio_lock; struct drm_audio_component *audio_component; bool audio_registered; struct list_head irq_handler_list_low_tab[DAL_IRQ_SOURCES_NUMBER]; struct list_head irq_handler_list_high_tab[DAL_IRQ_SOURCES_NUMBER]; struct common_irq_params pflip_params[DC_IRQ_SOURCE_PFLIP_LAST - DC_IRQ_SOURCE_PFLIP_FIRST + 1]; struct common_irq_params vblank_params[DC_IRQ_SOURCE_VBLANK6 - DC_IRQ_SOURCE_VBLANK1 + 1]; struct common_irq_params vline0_params[DC_IRQ_SOURCE_DC6_VLINE0 - DC_IRQ_SOURCE_DC1_VLINE0 + 1]; struct common_irq_params vupdate_params[DC_IRQ_SOURCE_VUPDATE6 - DC_IRQ_SOURCE_VUPDATE1 + 1]; spinlock_t irq_reg_lock; struct common_irq_params dmub_trace_params[1]; struct common_irq_params dmub_outbox_params[1]; spinlock_t irq_handler_list_table_lock; struct workqueue_struct *irq_wq; struct workqueue_struct *vmin_vmax_wq; struct backlight_device *backlight_dev[AMDGPU_DM_MAX_NUM_EDP]; const struct dc_link *backlight_link[AMDGPU_DM_MAX_NUM_EDP]; uint8_t num_of_edps; struct amdgpu_dm_backlight_caps backlight_caps[AMDGPU_DM_MAX_NUM_EDP]; struct mod_freesync *freesync_module; struct mod_power *power_module; struct hdcp_workqueue *hdcp_workqueue; struct workqueue_struct *vblank_control_workqueue; struct idle_workqueue *idle_workqueue; struct drm_atomic_commit *cached_state; struct dc_state *cached_dc_state; struct dm_compressor_info compressor; const struct firmware *fw_dmcu; uint32_t dmcu_fw_version; const struct gpu_info_soc_bounding_box_v1_0 *soc_bounding_box; uint32_t active_vblank_irq_count; #if defined(CONFIG_DRM_AMD_SECURE_DISPLAY); struct secure_display_context secure_display_ctx; #endif; struct hpd_rx_irq_offload_work_queue *hpd_rx_offload_wq; struct amdgpu_encoder mst_encoders[AMDGPU_DM_MAX_CRTC]; bool force_timing_sync; bool disable_hpd_irq; bool dmcub_trace_event_en; struct list_head da_list; struct completion dmub_aux_transfer_done; struct workqueue_struct *delayed_hpd_wq; u32 brightness[AMDGPU_DM_MAX_NUM_EDP]; u32 actual_brightness[AMDGPU_DM_MAX_NUM_EDP]; bool aux_hpd_discon_quirk; bool edp0_on_dp1_quirk; struct mutex dpia_aux_lock; void *bb_from_dmub; void *i2c_devres_group; struct amdgpu_i2c_adapter *oem_i2c; struct fused_io_sync { struct completion replied; char reply_data[0x40]; } fused_io[8]; struct workqueue_struct *hdmi_frl_status_polling_wq; struct delayed_work hdmi_frl_status_polling_work; unsigned int hdmi_frl_status_polling_delay_ms; struct dm_boot_time_crc_info boot_time_crc_info; };”…”�”}”hj&sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MFhjubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hj7h]”hŒMembers”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M–hjubj)�”}”(hhh]”(j )�”}”(hŒ&``dc`` Display Core control structure ”h]”(j)�”}”(hŒ``dc``”h]”jï)�”}”(hjVh]”hŒdc”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MChjPubj-)�”}”(hhh]”hì)�”}”(hŒDisplay Core control structure”h]”hŒDisplay Core control structure”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jkh´MChjlubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jkh´MChjMubj )�”}”(hŒ¦``dmub_srv`` DMUB service, used for controlling the DMUB on hardware that supports it. The pointer to the dmub_srv will be NULL on hardware that does not support it. ”h]”(j)�”}”(hŒ ``dmub_srv``”h]”jï)�”}”(hj�h]”hŒdmub_srv”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mghj‰ubj-)�”}”(hhh]”hì)�”}”(hŒ˜DMUB service, used for controlling the DMUB on hardware that supports it. The pointer to the dmub_srv will be NULL on hardware that does not support it.”h]”hŒ˜DMUB service, used for controlling the DMUB on hardware that supports it. The pointer to the dmub_srv will be NULL on hardware that does not support it.”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mehj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¤h´MghjMubj )�”}”(hŒ(``dmub_notify`` Notification from DMUB. ”h]”(j)�”}”(hŒ``dmub_notify``”h]”jï)�”}”(hjÉh]”hŒ dmub_notify”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MnhjÃubj-)�”}”(hhh]”hì)�”}”(hŒNotification from DMUB.”h]”hŒNotification from DMUB.”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÞh´Mnhjßubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÞh´MnhjMubj )�”}”(hŒG``dmub_callback`` Callback functions to handle notification from DMUB. ”h]”(j)�”}”(hŒ``dmub_callback``”h]”jï)�”}”(hjh]”hŒ dmub_callback”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mvhjüubj-)�”}”(hhh]”hì)�”}”(hŒ4Callback functions to handle notification from DMUB.”h]”hŒ4Callback functions to handle notification from DMUB.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´Mvhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´MvhjMubj )�”}”(hŒA``dmub_thread_offload`` Flag to indicate if callback is offload. ”h]”(j)�”}”(hŒ``dmub_thread_offload``”h]”jï)�”}”(hj;h]”hŒdmub_thread_offload”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M~hj5ubj-)�”}”(hhh]”hì)�”}”(hŒ(Flag to indicate if callback is offload.”h]”hŒ(Flag to indicate if callback is offload.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jPh´M~hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jPh´M~hjMubj )�”}”(hŒ3``dmub_fb_info`` Framebuffer regions for the DMUB. ”h]”(j)�”}”(hŒ``dmub_fb_info``”h]”jï)�”}”(hjth]”hŒ dmub_fb_info”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M†hjnubj-)�”}”(hhh]”hì)�”}”(hŒ!Framebuffer regions for the DMUB.”h]”hŒ!Framebuffer regions for the DMUB.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‰h´M†hjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‰h´M†hjMubj )�”}”(hŒG``dmub_fw`` DMUB firmware, required on hardware that has DMUB support. ”h]”(j)�”}”(hŒ ``dmub_fw``”h]”jï)�”}”(hj­h]”hŒdmub_fw”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M�hj§ubj-)�”}”(hhh]”hì)�”}”(hŒ:DMUB firmware, required on hardware that has DMUB support.”h]”hŒ:DMUB firmware, required on hardware that has DMUB support.”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÂh´M�hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÂh´M�hjMubj )�”}”(hŒ(``dmub_bo`` Buffer object for the DMUB. ”h]”(j)�”}”(hŒ ``dmub_bo``”h]”jï)�”}”(hjæh]”hŒdmub_bo”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjäubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M”hjàubj-)�”}”(hhh]”hì)�”}”(hŒBuffer object for the DMUB.”h]”hŒBuffer object for the DMUB.”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jûh´M”hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjàubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jûh´M”hjMubj )�”}”(hŒE``dmub_bo_gpu_addr`` GPU virtual address for the DMUB buffer object. ”h]”(j)�”}”(hŒ``dmub_bo_gpu_addr``”h]”jï)�”}”(hjh]”hŒdmub_bo_gpu_addr”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M›hjubj-)�”}”(hhh]”hì)�”}”(hŒ/GPU virtual address for the DMUB buffer object.”h]”hŒ/GPU virtual address for the DMUB buffer object.”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j4h´M›hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j4h´M›hjMubj )�”}”(hŒ=``dmub_bo_cpu_addr`` CPU address for the DMUB buffer object. ”h]”(j)�”}”(hŒ``dmub_bo_cpu_addr``”h]”jï)�”}”(hjXh]”hŒdmub_bo_cpu_addr”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M¢hjRubj-)�”}”(hhh]”hì)�”}”(hŒ'CPU address for the DMUB buffer object.”h]”hŒ'CPU address for the DMUB buffer object.”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jmh´M¢hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jmh´M¢hjMubj )�”}”(hŒ-``dmcub_fw_version`` DMCUB firmware version. ”h]”(j)�”}”(hŒ``dmcub_fw_version``”h]”jï)�”}”(hj‘h]”hŒdmcub_fw_version”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M©hj‹ubj-)�”}”(hhh]”hì)�”}”(hŒDMCUB firmware version.”h]”hŒDMCUB firmware version.”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¦h´M©hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¦h´M©hjMubj )�”}”(hŒ:``fw_inst_size`` Size of the firmware instruction buffer. ”h]”(j)�”}”(hŒ``fw_inst_size``”h]”jï)�”}”(hjÊh]”hŒ fw_inst_size”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M°hjÄubj-)�”}”(hhh]”hì)�”}”(hŒ(Size of the firmware instruction buffer.”h]”hŒ(Size of the firmware instruction buffer.”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jßh´M°hjàubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jßh´M°hjMubj )�”}”(hŒf``cgs_device`` The Common Graphics Services device. It provides an interface for accessing registers. ”h]”(j)�”}”(hŒ``cgs_device``”h]”jï)�”}”(hjh]”hŒ cgs_device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M¸hjýubj-)�”}”(hhh]”hì)�”}”(hŒVThe Common Graphics Services device. It provides an interface for accessing registers.”h]”hŒVThe Common Graphics Services device. It provides an interface for accessing registers.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M·hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjýubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´M¸hjMubj )�”}”(hŒ&``adev`` AMDGPU base driver structure ”h]”(j)�”}”(hŒ``adev``”h]”jï)�”}”(hj=h]”hŒadev”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MDhj7ubj-)�”}”(hhh]”hì)�”}”(hŒAMDGPU base driver structure”h]”hŒAMDGPU base driver structure”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jRh´MDhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jRh´MDhjMubj )�”}”(hŒ#``ddev`` DRM base driver structure ”h]”(j)�”}”(hŒ``ddev``”h]”jï)�”}”(hjvh]”hŒddev”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MEhjpubj-)�”}”(hhh]”hì)�”}”(hŒDRM base driver structure”h]”hŒDRM base driver structure”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‹h´MEhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjpubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‹h´MEhjMubj )�”}”(hŒ@``display_indexes_num`` Max number of display streams supported ”h]”(j)�”}”(hŒ``display_indexes_num``”h]”jï)�”}”(hj¯h]”hŒdisplay_indexes_num”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MFhj©ubj-)�”}”(hhh]”hì)�”}”(hŒ'Max number of display streams supported”h]”hŒ'Max number of display streams supported”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÄh´MFhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÄh´MFhjMubj )�”}”(hŒ²``atomic_obj`` In combination with :c:type:`dm_atomic_state` it helps manage global atomic state that doesn't map cleanly into existing drm resources, like :c:type:`dc_context`. ”h]”(j)�”}”(hŒ``atomic_obj``”h]”jï)�”}”(hjèh]”hŒ atomic_obj”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÅhjâubj-)�”}”(hhh]”hì)�”}”(hŒ¢In combination with :c:type:`dm_atomic_state` it helps manage global atomic state that doesn't map cleanly into existing drm resources, like :c:type:`dc_context`.”h]”(hŒIn combination with ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`dm_atomic_state`”h]”jï)�”}”(hj h]”hŒdm_atomic_state”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”sbj Œdm_atomic_state”uh1hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÃhjubhŒb it helps manage global atomic state that doesn’t map cleanly into existing drm resources, like ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`dc_context`”h]”jï)�”}”(hj7h]”hŒ dc_context”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj5ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ dc_context”uh1hh³j0h´MÃhjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j0h´MÃhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jýh´MÅhjMubj )�”}”(hŒS``dc_lock`` Guards access to DC functions that can issue register write sequences. ”h]”(j)�”}”(hŒ ``dc_lock``”h]”jï)�”}”(hjph]”hŒdc_lock”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÍhjjubj-)�”}”(hhh]”hì)�”}”(hŒFGuards access to DC functions that can issue register write sequences.”h]”hŒFGuards access to DC functions that can issue register write sequences.”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÌhj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j…h´MÍhjMubj )�”}”(hŒ8``dmub_lock`` Guards access to DMUB command submission. ”h]”(j)�”}”(hŒ ``dmub_lock``”h]”jï)�”}”(hjªh]”hŒ dmub_lock”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÔhj¤ubj-)�”}”(hhh]”hì)�”}”(hŒ)Guards access to DMUB command submission.”h]”hŒ)Guards access to DMUB command submission.”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¿h´MÔhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¿h´MÔhjMubj )�”}”(hŒ8``audio_lock`` Guards access to audio instance changes. ”h]”(j)�”}”(hŒ``audio_lock``”h]”jï)�”}”(hjãh]”hŒ audio_lock”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÛhjÝubj-)�”}”(hhh]”hì)�”}”(hŒ(Guards access to audio instance changes.”h]”hŒ(Guards access to audio instance changes.”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jøh´MÛhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jøh´MÛhjMubj )�”}”(hŒ@``audio_component`` Used to notify ELD changes to sound driver. ”h]”(j)�”}”(hŒ``audio_component``”h]”jï)�”}”(hjh]”hŒaudio_component”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mâhjubj-)�”}”(hhh]”hì)�”}”(hŒ+Used to notify ELD changes to sound driver.”h]”hŒ+Used to notify ELD changes to sound driver.”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j1h´Mâhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j1h´MâhjMubj )�”}”(hŒd``audio_registered`` True if the audio component has been registered successfully, false otherwise. ”h]”(j)�”}”(hŒ``audio_registered``”h]”jï)�”}”(hjUh]”hŒaudio_registered”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MêhjOubj-)�”}”(hhh]”hì)�”}”(hŒNTrue if the audio component has been registered successfully, false otherwise.”h]”hŒNTrue if the audio component has been registered successfully, false otherwise.”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Méhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jjh´MêhjMubj )�”}”(hX;``irq_handler_list_low_tab`` Low priority IRQ handler table. It is a n*m table consisting of n IRQ sources, and m handlers per IRQ source. Low priority IRQ handlers are deferred to a workqueue to be processed. Hence, they can sleep. Note that handlers are called in the same order as they were registered (FIFO). ”h]”(j)�”}”(hŒ``irq_handler_list_low_tab``”h]”jï)�”}”(hj�h]”hŒirq_handler_list_low_tab”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Møhj‰ubj-)�”}”(hhh]”(hì)�”}”(hŒLow priority IRQ handler table.”h]”hŒLow priority IRQ handler table.”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mñhj¥ubhì)�”}”(hŒ«It is a n*m table consisting of n IRQ sources, and m handlers per IRQ source. Low priority IRQ handlers are deferred to a workqueue to be processed. Hence, they can sleep.”h]”hŒ«It is a n*m table consisting of n IRQ sources, and m handlers per IRQ source. Low priority IRQ handlers are deferred to a workqueue to be processed. Hence, they can sleep.”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Móhj¥ubhì)�”}”(hŒONote that handlers are called in the same order as they were registered (FIFO).”h]”hŒONote that handlers are called in the same order as they were registered (FIFO).”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M÷hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¤h´MøhjMubj )�”}”(hŒÌ``irq_handler_list_high_tab`` High priority IRQ handler table. It is a n*m table, same as :c:type:`irq_handler_list_low_tab`. However, handlers in this table are not deferred and are called immediately. ”h]”(j)�”}”(hŒ``irq_handler_list_high_tab``”h]”jï)�”}”(hjçh]”hŒirq_handler_list_high_tab”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhjáubj-)�”}”(hhh]”(hì)�”}”(hŒ High priority IRQ handler table.”h]”hŒ High priority IRQ handler table.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mÿhjýubhì)�”}”(hŒ‹It is a n*m table, same as :c:type:`irq_handler_list_low_tab`. However, handlers in this table are not deferred and are called immediately.”h]”(hŒIt is a n*m table, same as ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ":c:type:`irq_handler_list_low_tab`”h]”jï)�”}”(hjh]”hŒirq_handler_list_low_tab”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œirq_handler_list_low_tab”uh1hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MhjubhŒN. However, handlers in this table are not deferred and are called immediately.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j6h´Mhjýubeh}”(h]”h ]”h"]”h$]”h&]”uh1j,hjáubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jüh´MhjMubj )�”}”(hŒY``pflip_params`` Page flip IRQ parameters, passed to registered handlers when triggered. ”h]”(j)�”}”(hŒ``pflip_params``”h]”jï)�”}”(hjSh]”hŒ pflip_params”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M hjMubj-)�”}”(hhh]”hì)�”}”(hŒGPage flip IRQ parameters, passed to registered handlers when triggered.”h]”hŒGPage flip IRQ parameters, passed to registered handlers when triggered.”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jhh´M hjMubj )�”}”(hŒb``vblank_params`` Vertical blanking IRQ parameters, passed to registered handlers when triggered. ”h]”(j)�”}”(hŒ``vblank_params``”h]”jï)�”}”(hj�h]”hŒ vblank_params”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhj‡ubj-)�”}”(hhh]”hì)�”}”(hŒOVertical blanking IRQ parameters, passed to registered handlers when triggered.”h]”hŒOVertical blanking IRQ parameters, passed to registered handlers when triggered.”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¢h´MhjMubj )�”}”(hŒh``vline0_params`` OTG vertical interrupt0 IRQ parameters, passed to registered handlers when triggered. ”h]”(j)�”}”(hŒ``vline0_params``”h]”jï)�”}”(hjÇh]”hŒ vline0_params”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MhjÁubj-)�”}”(hhh]”hì)�”}”(hŒUOTG vertical interrupt0 IRQ parameters, passed to registered handlers when triggered.”h]”hŒUOTG vertical interrupt0 IRQ parameters, passed to registered handlers when triggered.”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MhjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÜh´MhjMubj )�”}”(hŒa``vupdate_params`` Vertical update IRQ parameters, passed to registered handlers when triggered. ”h]”(j)�”}”(hŒ``vupdate_params``”h]”jï)�”}”(hjh]”hŒvupdate_params”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M%hjûubj-)�”}”(hhh]”hì)�”}”(hŒMVertical update IRQ parameters, passed to registered handlers when triggered.”h]”hŒMVertical update IRQ parameters, passed to registered handlers when triggered.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M$hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjûubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´M%hjMubj )�”}”(hXv``irq_reg_lock`` Serializes the read-modify-writes of the HW interrupt control registers. Several interrupt sources share one register - e.g. the enable and clear bits of both VSTARTUP (vblank) and VUPDATE_NO_LOCK live in OTG_GLOBAL_SYNC_STATUS. Therefore, enabling one source must not race with acking another. Held only across amdgpu_dm_irq_set() and amdgpu_dm_irq_ack(). ”h]”(j)�”}”(hŒ``irq_reg_lock``”h]”jï)�”}”(hj;h]”hŒ irq_reg_lock”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M2hj5ubj-)�”}”(hhh]”hì)�”}”(hXdSerializes the read-modify-writes of the HW interrupt control registers. Several interrupt sources share one register - e.g. the enable and clear bits of both VSTARTUP (vblank) and VUPDATE_NO_LOCK live in OTG_GLOBAL_SYNC_STATUS. Therefore, enabling one source must not race with acking another. Held only across amdgpu_dm_irq_set() and amdgpu_dm_irq_ack().”h]”hXdSerializes the read-modify-writes of the HW interrupt control registers. Several interrupt sources share one register - e.g. the enable and clear bits of both VSTARTUP (vblank) and VUPDATE_NO_LOCK live in OTG_GLOBAL_SYNC_STATUS. Therefore, enabling one source must not race with acking another. Held only across amdgpu_dm_irq_set() and amdgpu_dm_irq_ack().”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M-hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jPh´M2hjMubj )�”}”(hŒe``dmub_trace_params`` DMUB trace event IRQ parameters, passed to registered handlers when triggered. ”h]”(j)�”}”(hŒ``dmub_trace_params``”h]”jï)�”}”(hjuh]”hŒdmub_trace_params”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M:hjoubj-)�”}”(hhh]”hì)�”}”(hŒNDMUB trace event IRQ parameters, passed to registered handlers when triggered.”h]”hŒNDMUB trace event IRQ parameters, passed to registered handlers when triggered.”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M9hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŠh´M:hjMubj )�”}”(hŒ.``dmub_outbox_params`` DMUB Outbox parameters ”h]”(j)�”}”(hŒ``dmub_outbox_params``”h]”jï)�”}”(hj¯h]”hŒdmub_outbox_params”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MXhj©ubj-)�”}”(hhh]”hì)�”}”(hŒDMUB Outbox parameters”h]”hŒDMUB Outbox parameters”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÄh´MXhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÄh´MXhjMubj )�”}”(hŒB``irq_handler_list_table_lock`` Synchronizes access to IRQ tables ”h]”(j)�”}”(hŒ``irq_handler_list_table_lock``”h]”jï)�”}”(hjèh]”hŒirq_handler_list_table_lock”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MGhjâubj-)�”}”(hhh]”hì)�”}”(hŒ!Synchronizes access to IRQ tables”h]”hŒ!Synchronizes access to IRQ tables”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jýh´MGhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jýh´MGhjMubj )�”}”(hŒK``irq_wq`` Dedicated high-priority unbound workqueue for deferred IRQ work ”•h]”(j)�”}”(hŒ ``irq_wq``”h]”jï)�”}”(hj! h]”hŒirq_wq”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MHhj ubj-)�”}”(hhh]”hì)�”}”(hŒ?Dedicated high-priority unbound workqueue for deferred IRQ work”h]”hŒ?Dedicated high-priority unbound workqueue for deferred IRQ work”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j6 h´MHhj7 ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j6 h´MHhjMubj )�”}”(hŒL``vmin_vmax_wq`` Dedicated unbound workqueue for deferred vmin/vmax updates ”h]”(j)�”}”(hŒ``vmin_vmax_wq``”h]”jï)�”}”(hjZ h]”hŒ vmin_vmax_wq”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjX ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MIhjT ubj-)�”}”(hhh]”hì)�”}”(hŒ:Dedicated unbound workqueue for deferred vmin/vmax updates”h]”hŒ:Dedicated unbound workqueue for deferred vmin/vmax updates”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jo h´MIhjp ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjT ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jo h´MIhjMubj )�”}”(hŒ+``backlight_dev`` Backlight control device ”h]”(j)�”}”(hŒ``backlight_dev``”h]”jï)�”}”(hj“ h]”hŒ backlight_dev”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‘ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MJhj� ubj-)�”}”(hhh]”hì)�”}”(hŒBacklight control device”h]”hŒBacklight control device”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¨ h´MJhj© ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¨ h´MJhjMubj )�”}”(hŒ6``backlight_link`` Link on which to control backlight ”h]”(j)�”}”(hŒ``backlight_link``”h]”jï)�”}”(hjÌ h]”hŒbacklight_link”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÊ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MKhjÆ ubj-)�”}”(hhh]”hì)�”}”(hŒ"Link on which to control backlight”h]”hŒ"Link on which to control backlight”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³já h´MKhjâ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÆ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³já h´MKhjMubj )�”}”(hŒ)``num_of_edps`` number of backlight eDPs ”h]”(j)�”}”(hŒ``num_of_edps``”h]”jï)�”}”(hj!h]”hŒ num_of_edps”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MYhjÿ ubj-)�”}”(hhh]”hì)�”}”(hŒnumber of backlight eDPs”h]”hŒnumber of backlight eDPs”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j!h´MYhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÿ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j!h´MYhjMubj )�”}”(hŒ8``backlight_caps`` Capabilities of the backlight device ”h]”(j)�”}”(hŒ``backlight_caps``”h]”jï)�”}”(hj>!h]”hŒbacklight_caps”…”�”}”(hj@!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj` ”h]”(j)�”}”(hŒ``compressor``”h]”jï)�”}”(hjÍ"h]”hŒ compressor”…”�”}”(hjÏ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjË"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MThjÇ"ubj-)�”}”(hhh]”hì)�”}”(hŒ]Frame buffer compression buffer. See :c:type:`struct dm_compressor_info `”h]”(hŒ%Frame buffer compression buffer. See ”…”�”}”(hjæ"h²hh³Nh´Nubh)�”}”(hŒ8:c:type:`struct dm_compressor_info `”h]”jï)�”}”(hjð"h]”hŒstruct dm_compressor_info”…”�”}”(hjò"h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjî"ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œdm_compressor_info”uh1hh³jâ"h´MThjæ"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jâ"h´MThjã"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÇ"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jâ"h´MThjMubj )�”}”(hŒ'``fw_dmcu`` Reference to DMCU firmware ”h]”(j)�”}”(hŒ ``fw_dmcu``”h]”jï)�”}”(hj%#h]”hŒfw_dmcu”…”�”}”(hj'#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj##ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MOhj#ubj-)�”}”(hhh]”hì)�”}”(hŒReference to DMCU firmware”h]”hŒReference to DMCU firmware”…”�”}”(hj>#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j:#h´MOhj;#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j:#h´MOhjMubj )�”}”(hŒ1``dmcu_fw_version`` Version of the DMCU firmware ”h]”(j)�”}”(hŒ``dmcu_fw_version``”h]”jï)�”}”(hj^#h]”hŒdmcu_fw_version”…”�”}”(hj`#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj\#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MPhjX#ubj-)�”}”(hhh]”hì)�”}”(hŒVersion of the DMCU firmware”h]”hŒVersion of the DMCU firmware”…”�”}”(hjw#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³js#h´MPhjt#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjX#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³js#h´MPhjMubj )�”}”(hŒ^``soc_bounding_box`` gpu_info FW provided soc bounding box struct or 0 if not available in FW ”h]”(j)�”}”(hŒ``soc_bounding_box``”h]”jï)�”}”(hj—#h]”hŒsoc_bounding_box”…”�”}”(hj™#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj•#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mkhj‘#ubj-)�”}”(hhh]”hì)�”}”(hŒHgpu_info FW provided soc bounding box struct or 0 if not available in FW”h]”hŒHgpu_info FW provided soc bounding box struct or 0 if not available in FW”…”�”}”(hj°#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mjhj­#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‘#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¬#h´MkhjMubj )�”}”(hŒC``active_vblank_irq_count`` number of currently active vblank irqs ”h]”(j)�”}”(hŒ``active_vblank_irq_count``”h]”jï)�”}”(hjÑ#h]”hŒactive_vblank_irq_count”…”�”}”(hjÓ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÏ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MrhjË#ubj-)�”}”(hhh]”hì)�”}”(hŒ&number of currently active vblank irqs”h]”hŒ&number of currently active vblank irqs”…”�”}”(hjê#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jæ#h´Mrhjç#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjË#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jæ#h´MrhjMubj )�”}”(hŒ|``secure_display_ctx`` Store secure display relevant info. e.g. the ROI information , the work_struct to command dmub, etc. ”h]”(j)�”}”(hŒ``secure_display_ctx``”h]”jï)�”}”(hj $h]”hŒsecure_display_ctx”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M{hj$ubj-)�”}”(hhh]”hì)�”}”(hŒdStore secure display relevant info. e.g. the ROI information , the work_struct to command dmub, etc.”h]”hŒdStore secure display relevant info. e.g. the ROI information , the work_struct to command dmub, etc.”…”�”}”(hj#$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mzhj $ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j$h´M{hjMubj )�”}”(hŒ@``hpd_rx_offload_wq`` Work queue to offload works of hpd_rx_irq ”h]”(j)�”}”(hŒ``hpd_rx_offload_wq``”h]”jï)�”}”(hjD$h]”hŒhpd_rx_offload_wq”…”�”}”(hjF$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjB$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M‚hj>$ubj-)�”}”(hhh]”hì)�”}”(hŒ)Work queue to offload works of hpd_rx_irq”h]”hŒ)Work queue to offload works of hpd_rx_irq”…”�”}”(hj]$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jY$h´M‚hjZ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj>$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jY$h´M‚hjMubj )�”}”(hŒ0``mst_encoders`` fake encoders used for DP MST. ”h]”(j)�”}”(hŒ``mst_encoders``”h]”jï)�”}”(hj}$h]”hŒ mst_encoders”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj{$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mˆhjw$ubj-)�”}”(hhh]”hì)�”}”(hŒfake encoders used for DP MST.”h]”hŒfake encoders used for DP MST.”…”�”}”(hj–$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j’$h´Mˆhj“$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjw$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j’$h´MˆhjMubj )�”}”(hŒv``force_timing_sync`` set via debugfs. When set, indicates that all connected displays will be forced to synchronize. ”h]”(j)�”}”(hŒ``force_timing_sync``”h]”jï)�”}”(hj¶$h]”hŒforce_timing_sync”…”�”}”(hj¸$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj´$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MVhj°$ubj-)�”}”(hhh]”hì)�”}”(hŒ_set via debugfs. When set, indicates that all connected displays will be forced to synchronize.”h]”hŒ_set via debugfs. When set, indicates that all connected displays will be forced to synchronize.”…”�”}”(hjÏ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MUhjÌ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj°$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jË$h´MVhjMubj )�”}”(hŒ[``disable_hpd_irq`` disables all HPD and HPD RX interrupt handling in the driver when true ”h]”(j)�”}”(hŒ``disable_hpd_irq``”h]”jï)�”}”(hjð$h]”hŒdisable_hpd_irq”…”�”}”(hjò$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjî$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M[hjê$ubj-)�”}”(hhh]”hì)�”}”(hŒFdisables all HPD and HPD RX interrupt handling in the driver when true”h]”hŒFdisables all HPD and HPD RX interrupt handling in the driver when true”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MZhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjê$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j%h´M[hjMubj )�”}”(hŒ3``dmcub_trace_event_en`` enable dmcub trace events ”h]”(j)�”}”(hŒ``dmcub_trace_event_en``”h]”jï)�”}”(hj*%h]”hŒdmcub_trace_event_en”…”�”}”(hj,%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj(%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MWhj$%ubj-)�”}”(hhh]”hì)�”}”(hŒenable dmcub trace events”h]”hŒenable dmcub trace events”…”�”}”(hjC%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j?%h´MWhj@%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj$%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j?%h´MWhjMubj )�”}”(hŒG``da_list`` DAL fb memory allocation list, for communication with SMU. ”h]”(j)�”}”(hŒ ``da_list``”h]”jï)�”}”(hjc%h]”hŒda_list”…”�”}”(hje%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhja%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M‘hj]%ubj-)�”}”(hhh]”hì)�”}”(hŒ:DAL fb memory allocation list, for communication with SMU.”h]”hŒ:DAL fb memory allocation list, for communication with SMU.”…”�”}”(hj|%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jx%h´M‘hjy%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj]%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jx%h´M‘hjMubj )�”}”(hŒ[``dmub_aux_transfer_done`` struct completion used to indicate when DMUB transfers are done ”h]”(j)�”}”(hŒ``dmub_aux_transfer_done``”h]”jï)�”}”(hjœ%h]”hŒdmub_aux_transfer_done”…”�”}”(hjž%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjš%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M]hj–%ubj-)�”}”(hhh]”hì)�”}”(hŒ?struct completion used to indicate when DMUB transfers are done”h]”hŒ?struct completion used to indicate when DMUB transfers are done”…”�”}”(hjµ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M\hj²%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj–%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j±%h´M]hjMubj )�”}”(hŒ:``delayed_hpd_wq`` work queue used to delay DMUB HPD work ”h]”(j)�”}”(hŒ``delayed_hpd_wq``”h]”jï)�”}”(hjÖ%h]”hŒdelayed_hpd_wq”…”�”}”(hjØ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÔ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M^hjÐ%ubj-)�”}”(hhh]”hì)�”}”(hŒ&work queue used to delay DMUB HPD work”h]”hŒ&work queue used to delay DMUB HPD work”…”�”}”(hjï%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jë%h´M^hjì%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÐ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jë%h´M^hjMubj )�”}”(hŒ(``brightness`` cached backlight values. ”h]”(j)�”}”(hŒ``brightness``”h]”jï)�”}”(hj&h]”hŒ brightness”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj &ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mšhj &ubj-)�”}”(hhh]”hì)�”}”(hŒcached backlight values.”h]”hŒcached backlight values.”…”�”}”(hj(&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j$&h´Mšhj%&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj &ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j$&h´MšhjMubj )�”}”(hŒB``actual_brightness`` last successfully applied backlight values. ”h]”(j)�”}”(hŒ``actual_brightness``”h]”jï)�”}”(hjH&h]”hŒactual_brightness”…”�”}”(hjJ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjF&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M hjB&ubj-)�”}”(hhh]”hì)�”}”(hŒ+last successfully applied backlight values.”h]”hŒ+last successfully applied backlight values.”…”�”}”(hja&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j]&h´M hj^&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjB&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j]&h´M hjMubj )�”}”(hŒh``aux_hpd_discon_quirk`` quirk for hpd discon while aux is on-going. occurred on certain intel platform ”h]”(j)�”}”(hŒ``aux_hpd_discon_quirk``”h]”jï)�”}”(hj�&h]”hŒaux_hpd_discon_quirk”…”�”}”(hjƒ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M¨hj{&ubj-)�”}”(hhh]”hì)�”}”(hŒNquirk for hpd discon while aux is on-going. occurred on certain intel platform”h]”hŒNquirk for hpd discon while aux is on-going. occurred on certain intel platform”…”�”}”(hjš&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M§hj—&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj{&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j–&h´M¨hjMubj )�”}”(hŒ@``edp0_on_dp1_quirk`` quirk for platforms that put edp0 on DP1. ”h]”(j)�”}”(hŒ``edp0_on_dp1_quirk``”h]”jï)�”}”(hj»&h]”hŒedp0_on_dp1_quirk”…”�”}”(hj½&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¹&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M¯hjµ&ubj-)�”}”(hhh]”hì)�”}”(hŒ)quirk for platforms that put edp0 on DP1.”h]”hŒ)quirk for platforms that put edp0 on DP1.”…”�”}”(hjÔ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÐ&h´M¯hjÑ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjµ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÐ&h´M¯hjMubj )�”}”(hŒ,``dpia_aux_lock`` Guards access to DPIA AUX ”h]”(j)�”}”(hŒ``dpia_aux_lock``”h]”jï)�”}”(hjô&h]”hŒ dpia_aux_lock”…”�”}”(hjö&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjò&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M¶hjî&ubj-)�”}”(hhh]”hì)�”}”(hŒGuards access to DPIA AUX”h]”hŒGuards access to DPIA AUX”…”�”}”(hj 'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j 'h´M¶hj 'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjî&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j 'h´M¶hjMubj )�”}”(hŒª``bb_from_dmub`` Bounding box data read from dmub during early initialization for DCN4+ Data is stored as a byte array that should be casted to the appropriate bb struct ”h]”(j)�”}”(hŒ``bb_from_dmub``”h]”jï)�”}”(hj-'h]”hŒ bb_from_dmub”…”�”}”(hj/'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj+'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M¾hj''ubj-)�”}”(hhh]”hì)�”}”(hŒ˜Bounding box data read from dmub during early initialization for DCN4+ Data is stored as a byte array that should be casted to the appropriate bb struct”h]”hŒ˜Bounding box data read from dmub during early initialization for DCN4+ Data is stored as a byte array that should be casted to the appropriate bb struct”…”�”}”(hjF'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M½hjC'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj''ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jB'h´M¾hjMubj )�”}”(hŒJ``i2c_devres_group`` Devres group for DM i2c adapter lifetime management. ”h]”(j)�”}”(hŒ``i2c_devres_group``”h]”jï)�”}”(hjg'h]”hŒi2c_devres_group”…”�”}”(hji'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhje'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÅhja'ubj-)�”}”(hhh]”hì)�”}”(hŒ4Devres group for DM i2c adapter lifetime management.”h]”hŒ4Devres group for DM i2c adapter lifetime management.”…”�”}”(hj€'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j|'h´MÅhj}'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hja'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j|'h´MÅhjMubj )�”}”(hŒ``oem_i2c`` OEM i2c bus ”h]”(j)�”}”(hŒ ``oem_i2c``”h]”jï)�”}”(hj 'h]”hŒoem_i2c”…”�”}”(hj¢'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjž'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÌhjš'ubj-)�”}”(hhh]”hì)�”}”(hŒ OEM i2c bus”h]”hŒ OEM i2c bus”…”�”}”(hj¹'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jµ'h´MÌhj¶'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjš'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jµ'h´MÌhjMubj )�”}”(hŒ%``fused_io`` dmub fused io interface ”h]”(j)�”}”(hŒ ``fused_io``”h]”jï)�”}”(hjÙ'h]”hŒfused_io”…”�”}”(hjÛ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj×'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÓhjÓ'ubj-)�”}”(hhh]”hì)�”}”(hŒdmub fused io interface”h]”hŒdmub fused io interface”…”�”}”(hjò'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jî'h´MÓhjï'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÓ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jî'h´MÓhjMubj )�”}”(hŒG``hdmi_frl_status_polling_work`` workqueue for 200ms frl status polling”h]”(j)�”}”(hŒ ``hdmi_frl_status_polling_work``”h]”jï)�”}”(hj(h]”hŒhdmi_frl_status_polling_work”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÛhj (ubj-)�”}”(hhh]”hì)�”}”(hŒ&workqueue for 200ms frl status polling”h]”hŒ&workqueue for 200ms frl status polling”…”�”}”(hj+(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MÜhj((ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj (ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j'(h´MÛhjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ amdgpu_hdmi_vsdb_info (C struct)”Œc.amdgpu_hdmi_vsdb_info”hNt”auh1jhh·h²hh³j+h´Nubj-)�”}”(hhh]”(j2)�”}”(hŒamdgpu_hdmi_vsdb_info”h]”j8)�”}”(hŒstruct amdgpu_hdmi_vsdb_info”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjl(h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjh(h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MâubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz(h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjh(h²hh³jy(h´Mâubja)�”}”(hŒamdgpu_hdmi_vsdb_info”h]”jg)�”}”(hjf(h]”hŒamdgpu_hdmi_vsdb_info”…”�”}”(hjŒ(h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjˆ(ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjh(h²hh³jy(h´Mâubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjd(h²hh³jy(h´Mâubah}”(h]”j_(ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jy(h´Mâhja(h²hubj•)�”}”(hhh]”hì)�”}”(hŒKeep track of the VSDB info”h]”hŒKeep track of the VSDB info”…”�”}”(hj®(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhj«(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hja(h²hh³jy(h´Mâubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jÆ(j·jÆ(j¸‰j¹‰jº‰uh1j,h²hhh·h³j+h´Nubj¼)�”}”(hXµ**Definition**:: struct amdgpu_hdmi_vsdb_info { unsigned int amd_vsdb_version; bool freesync_supported; unsigned int min_refresh_rate_hz; unsigned int max_refresh_rate_hz; unsigned int freesync_mccs_vcp_code; bool replay_mode; }; **Members** ``amd_vsdb_version`` Vendor Specific Data Block Version, should be used to determine which Vendor Specific InfoFrame (VSIF) to send. ``freesync_supported`` FreeSync Supported. ``min_refresh_rate_hz`` FreeSync Minimum Refresh Rate in Hz. ``max_refresh_rate_hz`` FreeSync Maximum Refresh Rate in Hz ``freesync_mccs_vcp_code`` MCCS VCP code for freesync state ``replay_mode`` Replay supported”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÒ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÎ(ubhŒ:”…”�”}”(hjÎ(h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MhjÊ(ubjß)�”}”(hŒìstruct amdgpu_hdmi_vsdb_info { unsigned int amd_vsdb_version; bool freesync_supported; unsigned int min_refresh_rate_hz; unsigned int max_refresh_rate_hz; unsigned int freesync_mccs_vcp_code; bool replay_mode; };”h]”hŒìstruct amdgpu_hdmi_vsdb_info { unsigned int amd_vsdb_version; bool freesync_supported; unsigned int min_refresh_rate_hz; unsigned int max_refresh_rate_hz; unsigned int freesync_mccs_vcp_code; bool replay_mode; };”…”�”}”hjë(sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MhjÊ(ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjü(h]”hŒMembers”…”�”}”(hjþ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjú(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MhjÊ(ubj)�”}”(hhh]”(j )�”}”(hŒ…``amd_vsdb_version`` Vendor Specific Data Block Version, should be used to determine which Vendor Specific InfoFrame (VSIF) to send. ”h]”(j)�”}”(hŒ``amd_vsdb_version``”h]”jï)�”}”(hj)h]”hŒamd_vsdb_version”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M hj)ubj-)�”}”(hhh]”hì)�”}”(hŒoVendor Specific Data Block Version, should be used to determine which Vendor Specific InfoFrame (VSIF) to send.”h]”hŒoVendor Specific Data Block Version, should be used to determine which Vendor Specific InfoFrame (VSIF) to send.”…”�”}”(hj4)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M hj1)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j0)h´M hj)ubj )�”}”(hŒ+``freesync_supported`` FreeSync Supported. ”h]”(j)�”}”(hŒ``freesync_supported``”h]”jï)�”}”(hjU)h]”hŒfreesync_supported”…”�”}”(hjW)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjS)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MhjO)ubj-)�”}”(hhh]”hì)�”}”(hŒFreeSync Supported.”h]”hŒFreeSync Supported.”…”�”}”(hjn)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jj)h´Mhjk)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjO)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jj)h´Mhj)ubj )�”}”(hŒ=``min_refresh_rate_hz`` FreeSync Minimum Refresh Rate in Hz. ”h]”(j)�”}”(hŒ``min_refresh_rate_hz``”h]”jï)�”}”(hjŽ)h]”hŒmin_refresh_rate_hz”…”�”}”(hj�)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjŒ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhjˆ)ubj-)�”}”(hhh]”hì)�”}”(hŒ$FreeSync Minimum Refresh Rate in Hz.”h]”hŒ$FreeSync Minimum Refresh Rate in Hz.”…”�”}”(hj§)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j£)h´Mhj¤)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjˆ)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£)h´Mhj)ubj )�”}”(hŒ<``max_refresh_rate_hz`` FreeSync Maximum Refresh Rate in Hz ”h]”(j)�”}”(hŒ``max_refresh_rate_hz``”h]”jï)�”}”(hjÇ)h]”hŒmax_refresh_rate_hz”…”�”}”(hjÉ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÅ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´MhjÁ)ubj-)�”}”(hhh]”hì)�”}”(hŒ#FreeSync Maximum Refresh Rate in Hz”h]”hŒ#FreeSync Maximum Refresh Rate in Hz”…”�”}”(hjà)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÜ)h´MhjÝ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÁ)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÜ)h´Mhj)ubj )�”}”(hŒ<``freesync_mccs_vcp_code`` MCCS VCP code for freesync state ”h]”(j)�”}”(hŒ``freesync_mccs_vcp_code``”h]”jï)�”}”(hj*h]”hŒfreesync_mccs_vcp_code”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjþ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M hjú)ubj-)�”}”(hhh]”hì)�”}”(hŒ MCCS VCP code for freesync state”h]”hŒ MCCS VCP code for freesync state”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j*h´M hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjú)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j*h´M hj)ubj )�”}”(hŒ ``replay_mode`` Replay supported”h]”(j)�”}”(hŒ``replay_mode``”h]”jï)�”}”(hj9*h]”hŒ replay_mode”…”�”}”(hj;*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj7*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M$hj3*ubj-)�”}”(hhh]”hì)�”}”(hŒReplay supported”h]”hŒReplay supported”…”�”}”(hjR*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M%hjO*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj3*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jN*h´M$hj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊ(ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hh·h²hh³j+h´Nubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj|*h]”hŒ Description”…”�”}”(hj~*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjz*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´M(hh·h²hubhì)�”}”(hŒ™AMDGPU supports FreeSync over HDMI by using the VSDB section, and this struct is useful to keep track of the display-specific information about FreeSync.”h]”hŒ™AMDGPU supports FreeSync over HDMI by using the VSDB section, and this struct is useful to keep track of the display-specific information about FreeSync.”…”�”}”(hj’*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:11: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h”h´Mhh·h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒ Lifecycle”h]”hŒ Lifecycle”…”�”}”(hj¤*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjuh1hºhj¡*h²hh³hÌh´Kubhì)�”}”(hŒàDM (and consequently DC) is registered in the amdgpu base driver as a IP block. When CONFIG_DRM_AMD_DC is enabled, the DM device IP block is added to the base driver's device list to be initialized and torn down accordingly.”h]”hŒâDM (and consequently DC) is registered in the amdgpu base driver as a IP block. When CONFIG_DRM_AMD_DC is enabled, the DM device IP block is added to the base driver’s device list to be initialized and torn down accordingly.”…”�”}”(hj²*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:17: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´Mhj¡*h²hubhì)�”}”(hŒ]The functions to do so are provided as hooks in :c:type:`struct amd_ip_funcs `.”h]”(hŒ0The functions to do so are provided as hooks in ”…”�”}”(hjÁ*h²hh³Nh´Nubh)�”}”(hŒ,:c:type:`struct amd_ip_funcs `”h]”jï)�”}”(hjË*h]”hŒstruct amd_ip_funcs”…”�”}”(hjÍ*h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjÉ*ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œ amd_ip_funcs”uh1hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:17: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M#hjÁ*ubhŒ.”…”�”}”(hjÁ*h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jè*h´M#hj¡*h²hubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdm_hw_init (C function)”Œ c.dm_hw_init”hNt”auh1jhj¡*h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ1int dm_hw_init (struct amdgpu_ip_block *ip_block)”h]”j8)�”}”(hŒ0int dm_hw_init(struct amdgpu_ip_block *ip_block)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒint”h]”hŒint”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j +hj+h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M>ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj+h²hh³j+h´M>ubja)�”}”(hŒ dm_hw_init”h]”jg)�”}”(hŒ dm_hw_init”h]”hŒ dm_hw_init”…”�”}”(hj0+h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj,+ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj+h²hh³j+h´M>ubhŒdesc_parameterlist”“”)�”}”(hŒ"(struct amdgpu_ip_block *ip_block)”h]”hŒdesc_parameter”“”)�”}”(hŒ struct amdgpu_ip_block *ip_block”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjP+h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjL+ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]+h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjL+ubh)�”}”(hhh]”jg)�”}”(hŒamdgpu_ip_block”h]”hŒamdgpu_ip_block”…”�”}”(hjn+h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjk+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”Œ identifier”Œ reftarget”jp+Œmodname”NŒ classname”Nj'j*)�”}”j-]”j(Œ ASTIdentifier”“”)�”}”j„+j2+sbŒ c.dm_hw_init”†”asbuh1hhjL+ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘+h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjL+ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj¡+h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jŸ+hjL+ubjg)�”}”(hŒip_block”h]”hŒip_block”…”�”}”(hj°+h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjL+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjF+ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj+h²hh³j+h´M>ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj+h²hh³j+h´M>ubah}”(h]”jÿ*ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j+h´M>hj+h²hubj•)�”}”(hhh]”hì)�”}”(hŒInitialize DC device”h]”hŒInitialize DC device”…”�”}”(hjÚ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M>hj×+h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj+h²hh³j+h´M>ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jò+j·jò+j¸‰j¹‰jº‰uh1j,h²hhj¡*h³Nh´Nubj¼)�”}”(hXå**Parameters** ``struct amdgpu_ip_block *ip_block`` Pointer to the amdgpu_ip_block for this hw instance. **Description** Initialize the :c:type:`struct amdgpu_display_manager ` device. This involves calling the initializers of each DM component, then populating the struct with them. Although the function implies hardware initialization, both hardware and software are initialized here. Splitting them out to their relevant init hooks is a future TODO item. Some notable things that are initialized here: - Display Core, both software and hardware - DC modules that we need (freesync and color management) - DRM software states - Interrupt sources and handlers - Vblank support - Debug FS entries, if enabled”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjü+h]”hŒ Parameters”…”�”}”(hjþ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjú+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MBhjö+ubj)�”}”(hhh]”j )�”}”(hŒZ``struct amdgpu_ip_block *ip_block`` Pointer to the amdgpu_ip_block for this hw instance. ”h]”(j)�”}”(hŒ$``struct amdgpu_ip_block *ip_block``”h]”jï)�”}”(hj,h]”hŒ struct amdgpu_ip_block *ip_block”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M?hj,ubj-)�”}”(hhh]”hì)�”}”(hŒ4Pointer to the amdgpu_ip_block for this hw instance.”h]”hŒ4Pointer to the amdgpu_ip_block for this hw instance.”…”�”}”(hj4,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j0,h´M?hj1,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j0,h´M?hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjö+ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjV,h]”hŒ Description”…”�”}”(hjX,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjT,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MAhjö+ubhì)�”}”(hŒºInitialize the :c:type:`struct amdgpu_display_manager ` device. This involves calling the initializers of each DM component, then populating the struct with them.”h]”(hŒInitialize the ”…”�”}”(hjl,h²hh³Nh´Nubh)�”}”(hŒ@:c:type:`struct amdgpu_display_manager `”h]”jï)�”}”(hjv,h]”hŒstruct amdgpu_display_manager”…”�”}”(hjx,h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjt,ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œamdgpu_display_manager”uh1hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M@hjl,ubhŒk device. This involves calling the initializers of each DM component, then populating the struct with them.”…”�”}”(hjl,h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j“,h´M@hjö+ubhì)�”}”(hŒ®Although the function implies hardware initialization, both hardware and software are initialized here. Splitting them out to their relevant init hooks is a future TODO item.”h]”hŒ®Although the function implies hardware initialization, both hardware and software are initialized here. Splitting them out to their relevant init hooks is a future TODO item.”…”�”}”(hjž,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MChjö+ubhì)�”}”(hŒ.Some notable things that are initialized here:”h]”hŒ.Some notable things that are initialized here:”…”�”}”(hj­,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MGhjö+ubhâ)�”}”(hhh]”(hç)�”}”(hŒ(Display Core, both software and hardware”h]”hì)�”}”(hjÁ,h]”hŒ(Display Core, both software and hardware”…”�”}”(hjÃ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MIhj¿,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj¼,ubhç)�”}”(hŒ7DC modules that we need (freesync and color management)”h]”hì)�”}”(hjÙ,h]”hŒ7DC modules that we need (freesync and color management)”…”�”}”(hjÛ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MJhj×,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj¼,ubhç)�”}”(hŒDRM software states”h]”hì)�”}”(hjñ,h]”hŒDRM software states”…”�”}”(hjó,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MKhjï,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj¼,ubhç)�”}”(hŒInterrupt sources and handlers”h]”hì)�”}”(hj -h]”hŒInterrupt sources and handlers”…”�”}”(hj -h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MLhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj¼,ubhç)�”}”(hŒVblank support”h]”hì)�”}”(hj!-h]”hŒVblank support”…”�”}”(hj#-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MMhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj¼,ubhç)�”}”(hŒDebug FS entries, if enabled”h]”hì)�”}”(hj9-h]”hŒDebug FS entries, if enabled”…”�”}”(hj;-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MNhj7-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj¼,ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1háh³jÐ,h´MIhjö+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj¡*h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdm_hw_fini (C function)”Œ c.dm_hw_fini”hNt”auh1jhj¡*h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ1int dm_hw_fini (struct amdgpu_ip_block *ip_block)”h]”j8)�”}”(hŒ0int dm_hw_fini(struct amdgpu_ip_block *ip_block)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hjw-h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjs-h²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MmubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†-h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjs-h²hh³j…-h´Mmubja)�”}”(hŒ dm_hw_fini”h]”jg)�”}”(hŒ dm_hw_fini”h]”hŒ dm_hw_fini”…”�”}”(hj˜-h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj”-ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjs-h²hh³j…-h´MmubjE+)�”}”(hŒ"(struct amdgpu_ip_block *ip_block)”h]”jK+)�”}”(hŒ struct amdgpu_ip_block *ip_block”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj´-h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj°-ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ-h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj°-ubh)�”}”(hhh]”jg)�”}”(hŒamdgpu_ip_block”h]”hŒamdgpu_ip_block”…”�”}”(hjÒ-h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÏ-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jÔ-Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jš-sbŒ c.dm_hw_fini”†”asbuh1hhj°-ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò-h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj°-ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj°-ubjg)�”}”(hŒip_block”h]”hŒip_block”…”�”}”(hj .h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj°-ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj¬-ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjs-h²hh³j…-h´Mmubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjo-h²hh³j…-h´Mmubah}”(h]”jj-ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j…-h´Mmhjl-h²hubj•)�”}”(hhh]”hì)�”}”(hŒTeardown DC device”h]”hŒTeardown DC device”…”�”}”(hj7.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´Mmhj4.h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjl-h²hh³j…-h´Mmubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jO.j·jO.j¸‰j¹‰jº‰uh1j,h²hhj¡*h³Nh´Nubj¼)�”}”(hXk**Parameters** ``struct amdgpu_ip_block *ip_block`` Pointer to the amdgpu_ip_block for this hw instance. **Description** Teardown components within :c:type:`struct amdgpu_display_manager ` that require cleanup. This involves cleaning up the DRM device, DC, and any modules that were loaded. Also flush IRQ workqueues and disable them.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjY.h]”hŒ Parameters”…”�”}”(hj[.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjW.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MqhjS.ubj)�”}”(hhh]”j )�”}”(hŒZ``struct amdgpu_ip_block *ip_block`` Pointer to the amdgpu_ip_block for this hw instance. ”h]”(j)�”}”(hŒ$``struct amdgpu_ip_block *ip_block``”h]”jï)�”}”(hjx.h]”hŒ struct amdgpu_ip_block *ip_block”…”�”}”(hjz.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjv.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´Mnhjr.ubj-)�”}”(hhh]”hì)�”}”(hŒ4Pointer to the amdgpu_ip_block for this hw instance.”h]”hŒ4Pointer to the amdgpu_ip_block for this hw instance.”…”�”}”(hj‘.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�.h´MnhjŽ.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjr.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�.h´Mnhjo.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjS.ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj³.h]”hŒ Description”…”�”}”(hjµ.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj±.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MphjS.ubhì)�”}”(hŒíTeardown components within :c:type:`struct amdgpu_display_manager ` that require cleanup. This involves cleaning up the DRM device, DC, and any modules that were loaded. Also flush IRQ workqueues and disable them.”h]”(hŒTeardown components within ”…”�”}”(hjÉ.h²hh³Nh´Nubh)�”}”(hŒ@:c:type:`struct amdgpu_display_manager `”h]”jï)�”}”(hjÓ.h]”hŒstruct amdgpu_display_manager”…”�”}”(hjÕ.h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjÑ.ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œamdgpu_display_manager”uh1hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:20: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MohjÉ.ubhŒ’ that require cleanup. This involves cleaning up the DRM device, DC, and any modules that were loaded. Also flush IRQ workqueues and disable them.”…”�”}”(hjÉ.h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jð.h´MohjS.ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj¡*h²hh³Nh´Nubeh}”(h]”jah ]”h"]”Œ lifecycle”ah$]”h&]”uh1hµhh·h²hh³hÌh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ Interrupts”h]”hŒ Interrupts”…”�”}”(hj /h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊj;uh1hºhj /h²hh³hÌh´Kubhì)�”}”(hŒ£DM provides another layer of IRQ management on top of what the base driver already provides. This is something that could be cleaned up, and is a future TODO item.”h]”hŒ£DM provides another layer of IRQ management on top of what the base driver already provides. This is something that could be cleaned up, and is a future TODO item.”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:26: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K2hj /h²hubhì)�”}”(hXOThe base driver provides IRQ source registration with DRM, handler registration into the base driver's IRQ table, and a handler callback amdgpu_irq_handler(), with which DRM calls on interrupts. This generic handler looks up the IRQ table, and calls the respective :c:type:`amdgpu_irq_src_funcs.process ` hookups.”h]”(hX The base driver provides IRQ source registration with DRM, handler registration into the base driver’s IRQ table, and a handler callback amdgpu_irq_handler(), with which DRM calls on interrupts. This generic handler looks up the IRQ table, and calls the respective ”…”�”}”(hj)/h²hh³Nh´Nubh)�”}”(hŒ=:c:type:`amdgpu_irq_src_funcs.process `”h]”jï)�”}”(hj3/h]”hŒamdgpu_irq_src_funcs.process”…”�”}”(hj5/h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj1/ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œamdgpu_irq_src_funcs”uh1hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:26: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K6hj)/ubhŒ hookups.”…”�”}”(hj)/h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jP/h´K6hj /h²hubhì)�”}”(hŒ�What DM provides on top are two IRQ tables specifically for top-half and bottom-half IRQ handling, with the bottom-half implementing workqueues:”h]”hŒ�What DM provides on top are two IRQ tables specifically for top-half and bottom-half IRQ handling, with the bottom-half implementing workqueues:”…”�”}”(hj[/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:26: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K`”h]”hì)�”}”(hjo/h]”h)�”}”(hjo/h]”jï)�”}”(hjo/h]”hŒ0amdgpu_display_manager.irq_handler_list_high_tab”…”�”}”(hjw/h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjt/ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œamdgpu_display_manager”uh1hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:26: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K?hjq/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j’/h´K?hjm/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjj/ubhç)�”}”(hŒS:c:type:`amdgpu_display_manager.irq_handler_list_low_tab ` ”h]”hì)�”}”(hŒR:c:type:`amdgpu_display_manager.irq_handler_list_low_tab `”h]”h)�”}”(hj¥/h]”jï)�”}”(hj¥/h]”hŒ/amdgpu_display_manager.irq_handler_list_low_tab”…”�”}”(hjª/h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj§/ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œamdgpu_display_manager”uh1hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:26: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K@hj£/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÅ/h´K@hjŸ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjj/ubeh}”(h]”h ]”h"]”h$]”h&]”jU-jV-uh1háh³j’/h´K?hj /h²hubhì)�”}”(hX×They override the base driver's IRQ table, and the effect can be seen in the hooks that DM provides for :c:type:`amdgpu_irq_src_funcs.process `. They are all set to the DM generic handler amdgpu_dm_irq_handler(), which looks up DM's IRQ tables. However, in order for base driver to recognize this hook, DM still needs to register the IRQ with the base driver. See amdgpu_dm_dce110_register_irq_handlers() and amdgpu_dm_dcn10_register_irq_handlers().”h]”(hŒjThey override the base driver’s IRQ table, and the effect can be seen in the hooks that DM provides for ”…”�”}”(hjØ/h²hh³Nh´Nubh)�”}”(hŒ=:c:type:`amdgpu_irq_src_funcs.process `”h]”jï)�”}”(hjâ/h]”hŒamdgpu_irq_src_funcs.process”…”�”}”(hjä/h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjà/ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œamdgpu_irq_src_funcs”uh1hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:26: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´KBhjØ/ubhX4. They are all set to the DM generic handler amdgpu_dm_irq_handler(), which looks up DM’s IRQ tables. However, in order for base driver to recognize this hook, DM still needs to register the IRQ with the base driver. See amdgpu_dm_dce110_register_irq_handlers() and amdgpu_dm_dcn10_register_irq_handlers().”…”�”}”(hjØ/h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÿ/h´KBhj /h²hubhì)�”}”(hŒàTo expose DC's hardware interrupt toggle to the base driver, DM implements :c:type:`amdgpu_irq_src_funcs.set ` hooks. Base driver calls it through amdgpu_irq_update() to enable or disable the interrupt.”h]”(hŒMTo expose DC’s hardware interrupt toggle to the base driver, DM implements ”…”�”}”(hj 0h²hh³Nh´Nubh)�”}”(hŒ9:c:type:`amdgpu_irq_src_funcs.set `”h]”jï)�”}”(hj0h]”hŒamdgpu_irq_src_funcs.set”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj0ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œamdgpu_irq_src_funcs”uh1hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:26: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´KJhj 0ubhŒ\ hooks. Base driver calls it through amdgpu_irq_update() to enable or disable the interrupt.”…”�”}”(hj 0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j10h´KJhj /h²hubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ%amdgpu_dm_irq_handler_data (C struct)”Œc.amdgpu_dm_irq_handler_data”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒamdgpu_dm_irq_handler_data”h]”j8)�”}”(hŒ!struct amdgpu_dm_irq_handler_data”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjU0h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjQ0h²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´KubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc0h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjQ0h²hh³jb0h´Kubja)�”}”(hŒamdgpu_dm_irq_handler_data”h]”jg)�”}”(hjO0h]”hŒamdgpu_dm_irq_handler_data”…”�”}”(hju0h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjq0ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjQ0h²hh³jb0h´Kubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjM0h²hh³jb0h´Kubah}”(h]”jH0ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jb0h´KhjJ0h²hubj•)�”}”(hhh]”hì)�”}”(hŒData for DM interrupt handlers.”h]”hŒData for DM interrupt handlers.”…”�”}”(hj—0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´KVhj”0h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjJ0h²hh³jb0h´Kubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j¯0j·j¯0j¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hX?**Definition**:: struct amdgpu_dm_irq_handler_data { struct list_head list; interrupt_handler handler; void *handler_arg; struct amdgpu_display_manager *dm; enum dc_irq_source irq_source; struct work_struct work; }; **Members** ``list`` Linked list entry referencing the next/previous handler ``handler`` Handler function ``handler_arg`` Argument passed to the handler when triggered ``dm`` DM which this handler belongs to ``irq_source`` DC interrupt source that this handler is registered for ``work`` work struct”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj»0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj·0ubhŒ:”…”�”}”(hj·0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´KZhj³0ubjß)�”}”(hŒÞstruct amdgpu_dm_irq_handler_data { struct list_head list; interrupt_handler handler; void *handler_arg; struct amdgpu_display_manager *dm; enum dc_irq_source irq_source; struct work_struct work; };”h]”hŒÞstruct amdgpu_dm_irq_handler_data { struct list_head list; interrupt_handler handler; void *handler_arg; struct amdgpu_display_manager *dm; enum dc_irq_source irq_source; struct work_struct work; };”…”�”}”hjÔ0sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K\hj³0ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjå0h]”hŒMembers”…”�”}”(hjç0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjã0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Kehj³0ubj)�”}”(hhh]”(j )�”}”(hŒA``list`` Linked list entry referencing the next/previous handler ”h]”(j)�”}”(hŒ``list``”h]”jï)�”}”(hj1h]”hŒlist”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´KYhjþ0ubj-)�”}”(hhh]”hì)�”}”(hŒ7Linked list entry referencing the next/previous handler”h]”hŒ7Linked list entry referencing the next/previous handler”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j1h´KYhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjþ0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j1h´KYhjû0ubj )�”}”(hŒ``handler`` Handler function ”h]”(j)�”}”(hŒ ``handler``”h]”jï)�”}”(hj=1h]”hŒhandler”…”�”}”(hj?1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj;1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´KZhj71ubj-)�”}”(hhh]”hì)�”}”(hŒHandler function”h]”hŒHandler function”…”�”}”(hjV1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jR1h´KZhjS1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj71ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jR1h´KZhjû0ubj )�”}”(hŒ>``handler_arg`` Argument passed to the handler when triggered ”h]”(j)�”}”(hŒ``handler_arg``”h]”jï)�”}”(hjv1h]”hŒ handler_arg”…”�”}”(hjx1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjt1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´•K[hjp1ubj-)�”}”(hhh]”hì)�”}”(hŒ-Argument passed to the handler when triggered”h]”hŒ-Argument passed to the handler when triggered”…”�”}”(hj�1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‹1h´K[hjŒ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjp1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‹1h´K[hjû0ubj )�”}”(hŒ(``dm`` DM which this handler belongs to ”h]”(j)�”}”(hŒ``dm``”h]”jï)�”}”(hj¯1h]”hŒdm”…”�”}”(hj±1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj­1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K\hj©1ubj-)�”}”(hhh]”hì)�”}”(hŒ DM which this handler belongs to”h]”hŒ DM which this handler belongs to”…”�”}”(hjÈ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÄ1h´K\hjÅ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj©1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÄ1h´K\hjû0ubj )�”}”(hŒG``irq_source`` DC interrupt source that this handler is registered for ”h]”(j)�”}”(hŒ``irq_source``”h]”jï)�”}”(hjè1h]”hŒ irq_source”…”�”}”(hjê1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjæ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K]hjâ1ubj-)�”}”(hhh]”hì)�”}”(hŒ7DC interrupt source that this handler is registered for”h]”hŒ7DC interrupt source that this handler is registered for”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jý1h´K]hjþ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjâ1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jý1h´K]hjû0ubj )�”}”(hŒ``work`` work struct”h]”(j)�”}”(hŒ``work``”h]”jï)�”}”(hj!2h]”hŒwork”…”�”}”(hj#2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K]hj2ubj-)�”}”(hhh]”hì)�”}”(hŒ work struct”h]”hŒ work struct”…”�”}”(hj:2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K^hj72ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j62h´K]hjû0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj³0ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdm_irq_work_func (C function)”Œc.dm_irq_work_func”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ0void dm_irq_work_func (struct work_struct *work)”h]”j8)�”}”(hŒ/void dm_irq_work_func(struct work_struct *work)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj{2h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjw2h²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´KubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠ2h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjw2h²hh³j‰2h´Kubja)�”}”(hŒdm_irq_work_func”h]”jg)�”}”(hŒdm_irq_work_func”h]”hŒdm_irq_work_func”…”�”}”(hjœ2h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj˜2ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjw2h²hh³j‰2h´KubjE+)�”}”(hŒ(struct work_struct *work)”h]”jK+)�”}”(hŒstruct work_struct *work”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj¸2h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj´2ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅ2h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj´2ubh)�”}”(hhh]”jg)�”}”(hŒ work_struct”h]”hŒ work_struct”…”�”}”(hjÖ2h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÓ2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jØ2Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jž2sbŒc.dm_irq_work_func”†”asbuh1hhj´2ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö2h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj´2ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj´2ubjg)�”}”(hŒwork”h]”hŒwork”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj´2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj°2ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjw2h²hh³j‰2h´Kubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjs2h²hh³j‰2h´Kubah}”(h]”jn2ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j‰2h´Khjp2h²hubj•)�”}”(hhh]”hì)�”}”(hŒ6Handle an IRQ outside of the interrupt handler proper.”h]”hŒ6Handle an IRQ outside of the interrupt handler proper.”…”�”}”(hj;3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Khj83h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjp2h²hh³j‰2h´Kubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jS3j·jS3j¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hŒ:**Parameters** ``struct work_struct *work`` work struct”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj]3h]”hŒ Parameters”…”�”}”(hj_3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj[3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´KƒhjW3ubj)�”}”(hhh]”j )�”}”(hŒ(``struct work_struct *work`` work struct”h]”(j)�”}”(hŒ``struct work_struct *work``”h]”jï)�”}”(hj|3h]”hŒstruct work_struct *work”…”�”}”(hj~3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjz3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K…hjv3ubj-)�”}”(hhh]”hì)�”}”(hŒ work struct”h]”hŒ work struct”…”�”}”(hj•3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´K�hj’3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjv3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‘3h´K…hjs3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjW3ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ-amdgpu_dm_irq_register_interrupt (C function)”Œ"c.amdgpu_dm_irq_register_interrupt”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ”void * amdgpu_dm_irq_register_interrupt (struct amdgpu_device *adev, struct dc_interrupt_params *int_params, void (*ih)(void *), void *handler_args)”h]”j8)�”}”(hŒ‘void *amdgpu_dm_irq_register_interrupt(struct amdgpu_device *adev, struct dc_interrupt_params *int_params, void (*ih)(void*), void *handler_args)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÖ3h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjÒ3h²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjå3h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÒ3h²hh³jä3h´Mubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjó3h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjÒ3h²hh³jä3h´Mubja)�”}”(hŒ amdgpu_dm_irq_register_interrupt”h]”jg)�”}”(hŒ amdgpu_dm_irq_register_interrupt”h]”hŒ amdgpu_dm_irq_register_interrupt”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj4ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjÒ3h²hh³jä3h´MubjE+)�”}”(hŒk(struct amdgpu_device *adev, struct dc_interrupt_params *int_params, void (*ih)(void*), void *handler_args)”h]”(jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj4ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-4h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj4ubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj>4h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj;4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j@4Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j4sbŒ"c.amdgpu_dm_irq_register_interrupt”†”asbuh1hhj4ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^4h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj4ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjl4h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj4ubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjy4h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj4ubjK+)�”}”(hŒ&struct dc_interrupt_params *int_params”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj’4h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjŽ4ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ4h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŽ4ubh)�”}”(hhh]”jg)�”}”(hŒdc_interrupt_params”h]”hŒdc_interrupt_params”…”�”}”(hj°4h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj­4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j²4Œmodname”NŒ classname”Nj'j*)�”}”j-]”jZ4Œ"c.amdgpu_dm_irq_register_interrupt”†”asbuh1hhjŽ4ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ4h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŽ4ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjÜ4h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjŽ4ubjg)�”}”(hŒ int_params”h]”hŒ int_params”…”�”}”(hjé4h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjŽ4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj4ubjK+)�”}”(hŒvoid (*ih)(void*)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjþ4ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjþ4ubj +)�”}”(hŒ(”h]”hŒ(”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjþ4ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj,5h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjþ4ubjg)�”}”(hŒih”h]”hŒih”…”�”}”(hj95h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjþ4ubj +)�”}”(hŒ)”h]”hŒ)”…”�”}”(hjG5h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjþ4ubj +)�”}”(hj 5h]”hŒ(”…”�”}”(hjU5h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjþ4ubj +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjb5h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjþ4ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjp5h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjþ4ubj +)�”}”(hjI5h]”hŒ)”…”�”}”(hj}5h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjþ4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj4ubjK+)�”}”(hŒvoid *handler_args”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj•5h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj‘5ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£5h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj‘5ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj±5h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj‘5ubjg)�”}”(hŒ handler_args”h]”hŒ handler_args”…”�”}”(hj¾5h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj‘5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj4ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjÒ3h²hh³jä3h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjÎ3h²hh³jä3h´Mubah}”(h]”jÉ3ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jä3h´MhjË3h²hubj•)�”}”(hhh]”hì)�”}”(hŒRegister a handler within DM.”h]”hŒRegister a handler within DM.”…”�”}”(hjè5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhjå5h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjË3h²hh³jä3h´Mubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j6j·j6j¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hX¢**Parameters** ``struct amdgpu_device *adev`` The base driver device containing the DM device. ``struct dc_interrupt_params *int_params`` Interrupt parameters containing the source, and handler context ``void (*ih)(void *)`` Function pointer to the interrupt handler to register ``void *handler_args`` Arguments passed to the handler when the interrupt occurs **Description** Register an interrupt handler for the given IRQ source, under the given context. The context can either be high or low. High context handlers are executed directly within ISR context, while low context is executed within a workqueue, thereby allowing operations that sleep. Registered handlers are called in a FIFO manner, i.e. the most recently registered handler will be called first. **Return** Handler data :c:type:`struct amdgpu_dm_irq_handler_data ` containing the IRQ source, handler function, and args”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj 6h]”hŒ Parameters”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj6ubj)�”}”(hhh]”(j )�”}”(hŒP``struct amdgpu_device *adev`` The base driver device containing the DM device. ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hj)6h]”hŒstruct amdgpu_device *adev”…”�”}”(hj+6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj'6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj#6ubj-)�”}”(hhh]”hì)�”}”(hŒ0The base driver device containing the DM device.”h]”hŒ0The base driver device containing the DM device.”…”�”}”(hjB6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j>6h´Mhj?6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj#6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j>6h´Mhj 6ubj )�”}”(hŒk``struct dc_interrupt_params *int_params`` Interrupt parameters containing the source, and handler context ”h]”(j)�”}”(hŒ*``struct dc_interrupt_params *int_params``”h]”jï)�”}”(hjb6h]”hŒ&struct dc_interrupt_params *int_params”…”�”}”(hjd6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj`6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj\6ubj-)�”}”(hhh]”hì)�”}”(hŒ?Interrupt parameters containing the source, and handler context”h]”hŒ?Interrupt parameters containing the source, and handler context”…”�”}”(hj{6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jw6h´Mhjx6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj\6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jw6h´Mhj 6ubj )�”}”(hŒM``void (*ih)(void *)`` Function pointer to the interrupt handler to register ”h]”(j)�”}”(hŒ``void (*ih)(void *)``”h]”jï)�”}”(hj›6h]”hŒvoid (*ih)(void *)”…”�”}”(hj�6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj™6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj•6ubj-)�”}”(hhh]”hì)�”}”(hŒ5Function pointer to the interrupt handler to register”h]”hŒ5Function pointer to the interrupt handler to register”…”�”}”(hj´6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j°6h´Mhj±6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj•6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j°6h´Mhj 6ubj )�”}”(hŒQ``void *handler_args`` Arguments passed to the handler when the interrupt occurs ”h]”(j)�”}”(hŒ``void *handler_args``”h]”jï)�”}”(hjÔ6h]”hŒvoid *handler_args”…”�”}”(hjÖ6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÒ6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MhjÎ6ubj-)�”}”(hhh]”hì)�”}”(hŒ9Arguments passed to the handler when the interrupt occurs”h]”hŒ9Arguments passed to the handler when the interrupt occurs”…”�”}”(hjí6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jé6h´Mhjê6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÎ6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jé6h´Mhj 6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj6ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj7h]”hŒ Description”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj 7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj6ubhì)�”}”(hXRegister an interrupt handler for the given IRQ source, under the given context. The context can either be high or low. High context handlers are executed directly within ISR context, while low context is executed within a workqueue, thereby allowing operations that sleep.”h]”hXRegister an interrupt handler for the given IRQ source, under the given context. The context can either be high or low. High context handlers are executed directly within ISR context, while low context is executed within a workqueue, thereby allowing operations that sleep.”…”�”}”(hj%7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj6ubhì)�”}”(hŒpRegistered handlers are called in a FIFO manner, i.e. the most recently registered handler will be called first.”h]”hŒpRegistered handlers are called in a FIFO manner, i.e. the most recently registered handler will be called first.”…”�”}”(hj47h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M hj6ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjE7h]”hŒReturn”…”�”}”(hjG7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjC7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M hj6ubhì)�”}”(hŒ‹Handler data :c:type:`struct amdgpu_dm_irq_handler_data ` containing the IRQ source, handler function, and args”h]”(hŒ Handler data ”…”�”}”(hj[7h²hh³Nh´Nubh)�”}”(hŒH:c:type:`struct amdgpu_dm_irq_handler_data `”h]”jï)�”}”(hje7h]”hŒ!struct amdgpu_dm_irq_handler_data”…”�”}”(hjg7h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjc7ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œamdgpu_dm_irq_handler_data”uh1hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj[7ubhŒ6 containing the IRQ source, handler function, and args”…”�”}”(hj[7h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‚7h´Mhj6ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ/amdgpu_dm_irq_unregister_interrupt (C function)”Œ$c.amdgpu_dm_irq_unregister_interrupt”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒmvoid amdgpu_dm_irq_unregister_interrupt (struct amdgpu_device *adev, enum dc_irq_source irq_source, void *ih)”h]”j8)�”}”(hŒlvoid amdgpu_dm_irq_unregister_interrupt(struct amdgpu_device *adev, enum dc_irq_source irq_source, void *ih)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj­7h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj©7h²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MMubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼7h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj©7h²hh³j»7h´MMubja)�”}”(hŒ"amdgpu_dm_irq_unregister_interrupt”h]”jg)�”}”(hŒ"amdgpu_dm_irq_unregister_interrupt”h]”hŒ"amdgpu_dm_irq_unregister_interrupt”…”�”}”(hjÎ7h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÊ7ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj©7h²hh³j»7h´MMubjE+)�”}”(hŒE(struct amdgpu_device *adev, enum dc_irq_source irq_source, void *ih)”h]”(jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjê7h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjæ7ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷7h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjæ7ubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j 8Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jÐ7sbŒ$c.amdgpu_dm_irq_unregister_interrupt”†”asbuh1hhjæ7ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(8h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjæ7ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj68h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjæ7ubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjC8h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjæ7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjâ7ubjK+)�”}”(hŒenum dc_irq_source irq_source”h]”(j>)�”}”(hŒenum”h]”hŒenum”…”�”}”(hj\8h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjX8ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj8h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjX8ubh)�”}”(hhh]”jg)�”}”(hŒ dc_irq_source”h]”hŒ dc_irq_source”…”�”}”(hj{8h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjx8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j}8Œmodname”NŒ classname”Nj'j*)�”}”j-]”j$8Œ$c.amdgpu_dm_irq_unregister_interrupt”†”asbuh1hhjX8ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™8h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjX8ubjg)�”}”(hŒ irq_source”h]”hŒ irq_source”…”�”}”(hj§8h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjX8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjâ7ubjK+)�”}”(hŒvoid *ih”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÀ8h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj¼8ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ8h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¼8ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjÜ8h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj¼8ubjg)�”}”(hŒih”h]”hŒih”…”�”}”(hjé8h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¼8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjâ7ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj©7h²hh³j»7h´MMubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj¥7h²hh³j»7h´MMubah}”(h]”j 7ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j»7h´MMhj¢7h²hubj•)�”}”(hhh]”hì)�”}”(hŒ&Remove a handler from the DM IRQ table”h]”hŒ&Remove a handler from the DM IRQ table”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MMhj9h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¢7h²hh³j»7h´MMubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j+9j·j+9j¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hX�**Parameters** ``struct amdgpu_device *adev`` The base driver device containing the DM device ``enum dc_irq_source irq_source`` IRQ source to remove the given handler from ``void *ih`` Function pointer to the interrupt handler to unregister **Description** Go through both low and high context IRQ tables, and find the given handler for the given irq source. If found, remove it. Otherwise, do nothing.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj59h]”hŒ Parameters”…”�”}”(hj79h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj39ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MQhj/9ubj)�”}”(hhh]”(j )�”}”(hŒO``struct amdgpu_device *adev`` The base driver device containing the DM device ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hjT9h]”hŒstruct amdgpu_device *adev”…”�”}”(hjV9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjR9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MNhjN9ubj-)�”}”(hhh]”hì)�”}”(hŒ/The base driver device containing the DM device”h]”hŒ/The base driver device containing the DM device”…”�”}”(hjm9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ji9h´MNhjj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjN9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³ji9h´MNhjK9ubj )�”}”(hŒN``enum dc_irq_source irq_source`` IRQ source to remove the given handler from ”h]”(j)�”}”(hŒ!``enum dc_irq_source irq_source``”h]”jï)�”}”(hj�9h]”hŒenum dc_irq_source irq_source”…”�”}”(hj�9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‹9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MOhj‡9ubj-)�”}”(hhh]”hì)�”}”(hŒ+IRQ source to remove the given handler from”h]”hŒ+IRQ source to remove the given handler from”…”�”}”(hj¦9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¢9h´MOhj£9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‡9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¢9h´MOhjK9ubj )�”}”(hŒE``void *ih`` Function pointer to the interrupt handler to unregister ”h]”(j)�”}”(hŒ ``void *ih``”h]”jï)�”}”(hjÆ9h]”hŒvoid *ih”…”�”}”(hjÈ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÄ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MPhjÀ9ubj-)�”}”(hhh]”hì)�”}”(hŒ7Function pointer to the interrupt handler to unregister”h]”hŒ7Function pointer to the interrupt handler to unregister”…”�”}”(hjß9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÛ9h´MPhjÜ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÀ9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÛ9h´MPhjK9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj/9ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj:h]”hŒ Description”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÿ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MRhj/9ubhì)�”}”(hŒ‘Go through both low and high context IRQ tables, and find the given handler for the given irq source. If found, remove it. Otherwise, do nothing.”h]”hŒ‘Go through both low and high context IRQ tables, and find the given handler for the given irq source. If found, remove it. Otherwise, do nothing.”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MQhj/9ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œamdgpu_dm_irq_init (C function)”Œc.amdgpu_dm_irq_init”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ3int amdgpu_dm_irq_init (struct amdgpu_device *adev)”h]”j8)�”}”(hŒ2int amdgpu_dm_irq_init(struct amdgpu_device *adev)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hjF:h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjB:h²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MzubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjU:h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjB:h²hh³jT:h´Mzubja)�”}”(hŒamdgpu_dm_irq_init”h]”jg)�”}”(hŒamdgpu_dm_irq_init”h]”hŒamdgpu_dm_irq_init”…”�”}”(hjg:h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjc:ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjB:h²hh³jT:h´MzubjE+)�”}”(hŒ(struct amdgpu_device *adev)”h]”jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjƒ:h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj:ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�:h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj:ubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj¡:h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjž:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j£:Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+ji:sbŒc.amdgpu_dm_irq_init”†”asbuh1hhj:ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ:h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj:ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjÏ:h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj:ubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjÜ:h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj{:ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjB:h²hh³jT:h´Mzubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj>:h²hh³jT:h´Mzubah}”(h]”j9:ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jT:h´Mzhj;:h²hubj•)�”}”(hhh]”hì)�”}”(hŒInitialize DM IRQ management”h]”hŒInitialize DM IRQ management”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mzhj;h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj;:h²hh³jT:h´Mzubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j;j·j;j¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hXt**Parameters** ``struct amdgpu_device *adev`` The base driver device containing the DM device **Description** Initialize DM's high and low context IRQ tables. The N by M table contains N IRQ sources, with M :c:type:`struct amdgpu_dm_irq_handler_data ` hooked together in a linked list. The list_heads are initialized here. When an interrupt n is triggered, all m handlers are called in sequence, FIFO according to registration order. The low context table requires special steps to initialize, since handlers will be deferred to a workqueue. See :c:type:`struct irq_list_head `.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj(;h]”hŒ Parameters”…”�”}”(hj*;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj&;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M~hj";ubj)�”}”(hhh]”j )�”}”(hŒO``struct amdgpu_device *adev`` The base driver device containing the DM device ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hjG;h]”hŒstruct amdgpu_device *adev”…”�”}”(hjI;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjE;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M{hjA;ubj-)�”}”(hhh]”hì)�”}”(hŒ/The base driver device containing the DM device”h]”hŒ/The base driver device containing the DM device”…”�”}”(hj`;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j\;h´M{hj];ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjA;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j\;h´M{hj>;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj";ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj‚;h]”hŒ Description”…”�”}”(hj„;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj€;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M}hj";ubhì)�”}”(hŒ0Initialize DM's high and low context IRQ tables.”h]”hŒ2Initialize DM’s high and low context IRQ tables.”…”�”}”(hj˜;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M|hj";ubhì)�”}”(hX.The N by M table contains N IRQ sources, with M :c:type:`struct amdgpu_dm_irq_handler_data ` hooked together in a linked list. The list_heads are initialized here. When an interrupt n is triggered, all m handlers are called in sequence, FIFO according to registration order.”h]”(hŒ0The N by M table contains N IRQ sources, with M ”…”�”}”(hj§;h²hh³Nh´Nubh)�”}”(hŒH:c:type:`struct amdgpu_dm_irq_handler_data `”h]”jï)�”}”(hj±;h]”hŒ!struct amdgpu_dm_irq_handler_data”…”�”}”(hj³;h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj¯;ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œamdgpu_dm_irq_handler_data”uh1hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M~hj§;ubhŒ¶ hooked together in a linked list. The list_heads are initialized here. When an interrupt n is triggered, all m handlers are called in sequence, FIFO according to registration order.”…”�”}”(hj§;h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÎ;h´M~hj";ubhì)�”}”(hŒŸThe low context table requires special steps to initialize, since handlers will be deferred to a workqueue. See :c:type:`struct irq_list_head `.”h]”(hŒpThe low context table requires special steps to initialize, since handlers will be deferred to a workqueue. See ”…”�”}”(hjÙ;h²hh³Nh´Nubh)�”}”(hŒ.:c:type:`struct irq_list_head `”h]”jï)�”}”(hjã;h]”hŒstruct irq_list_head”…”�”}”(hjå;h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjá;ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œ irq_list_head”uh1hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MƒhjÙ;ubhŒ.”…”�”}”(hjÙ;h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j<h´Mƒhj";ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œamdgpu_dm_irq_fini (C function)”Œc.amdgpu_dm_irq_fini”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ4void amdgpu_dm_irq_fini (struct amdgpu_device *adev)”h]”j8)�”}”(hŒ3void amdgpu_dm_irq_fini(struct amdgpu_device *adev)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj+<h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj'<h²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M­ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:<h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj'<h²hh³j9<h´M­ubja)�”}”(hŒamdgpu_dm_irq_fini”h]”jg)�”}”(hŒamdgpu_dm_irq_fini”h]”hŒamdgpu_dm_irq_fini”…”�”}”(hjL<h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjH<ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj'<h²hh³j9<h´M­ubjE+)�”}”(hŒ(struct amdgpu_device *adev)”h]”jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjh<h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjd<ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju<h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjd<ubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj†<h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjƒ<ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jˆ<Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jN<sbŒc.amdgpu_dm_irq_fini”†”asbuh1hhjd<ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦<h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjd<ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj´<h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjd<ubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjÁ<h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjd<ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj`<ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj'<h²hh³j9<h´M­ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj#<h²hh³j9<h´M­ubah}”(h]”j<ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j9<h´M­hj <h²hubj•)�”}”(hhh]”hì)�”}”(hŒTear down DM IRQ management”h]”hŒTear down DM IRQ management”…”�”}”(hjë<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M­hjè<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj <h²hh³j9<h´M­ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j=j·j=j¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hŒí**Parameters** ``struct amdgpu_device *adev`` The base driver device containing the DM device **Description** Removes all handlers from the IRQ tables under the spinlock, cancels pending work items, and deallocates all handler data.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj =h]”hŒ Parameters”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj =ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M±hj=ubj)�”}”(hhh]”j )�”}”(hŒO``struct amdgpu_device *adev`` The base driver device containing the DM device ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hj,=h]”hŒstruct amdgpu_device *adev”…”�”}”(hj.=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj*=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M®hj&=ubj-)�”}”(hhh]”hì)�”}”(hŒ/The base driver device containing the DM device”h]”hŒ/The base driver device containing the DM device”…”�”}”(hjE=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jA=h´M®hjB=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj&=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jA=h´M®hj#=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj=ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjg=h]”hŒ Description”…”�”}”(hji=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhje=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M°hj=ubhì)�”}”(hŒzRemoves all handlers from the IRQ tables under the spinlock, cancels pending work items, and deallocates all handler data.”h]”hŒzRemoves all handlers from the IRQ tables under the spinlock, cancels pending work items, and deallocates all handler data.”…”�”}”(hj}=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M¯hj=ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ"amdgpu_dm_irq_handler (C function)”Œc.amdgpu_dm_irq_handler”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒtint amdgpu_dm_irq_handler (struct amdgpu_device *adev, struct amdgpu_irq_src *source, struct amdgpu_iv_entry *entry)”h]”j8)�”}”(hŒsint amdgpu_dm_irq_handler(struct amdgpu_device *adev, struct amdgpu_irq_src *source, struct amdgpu_iv_entry *entry)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hj¬=h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj¨=h²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÈubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»=h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¨=h²hh³jº=h´MÈubja)�”}”(hŒamdgpu_dm_irq_handler”h]”jg)�”}”(hŒamdgpu_dm_irq_handler”h]”hŒamdgpu_dm_irq_handler”…”�”}”(hjÍ=h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÉ=ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj¨=h²hh³jº=h´MÈubjE+)�”}”(hŒZ(struct amdgpu_device *adev, struct amdgpu_irq_src *source, struct amdgpu_iv_entry *entry)”h]”(jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjé=h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjå=ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö=h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjå=ubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j >Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jÏ=sbŒc.amdgpu_dm_irq_handler”†”asbuh1hhjå=ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'>h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjå=ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj5>h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjå=ubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjB>h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjå=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjá=ubjK+)�”}”(hŒstruct amdgpu_irq_src *source”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj[>h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjW>ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh>h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjW>ubh)�”}”(hhh]”jg)�”}”(hŒamdgpu_irq_src”h]”hŒamdgpu_irq_src”…”�”}”(hjy>h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjv>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j{>Œmodname”NŒ classname”Nj'j*)�”}”j-]”j#>Œc.amdgpu_dm_irq_handler”†”asbuh1hhjW>ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—>h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjW>ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj¥>h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjW>ubjg)�”}”(hŒsource”h]”hŒsource”…”�”}”(hj²>h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjW>ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjá=ubjK+)�”}”(hŒstruct amdgpu_iv_entry *entry”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjË>h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÇ>ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ>h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÇ>ubh)�”}”(hhh]”jg)�”}”(hŒamdgpu_iv_entry”h]”hŒamdgpu_iv_entry”…”�”}”(hjé>h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjæ>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jë>Œmodname”NŒ classname”Nj'j*)�”}”j-]”j#>Œc.amdgpu_dm_irq_handler”†”asbuh1hhjÇ>ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÇ>ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjÇ>ubjg)�”}”(hŒentry”h]”hŒentry”…”�”}”(hj"?h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÇ>ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjá=ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj¨=h²hh³jº=h´MÈubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj¤=h²hh³jº=h´MÈubah}”(h]”jŸ=ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jº=h´MÈhj¡=h²hubj•)�”}”(hhh]”hì)�”}”(hŒGeneric DM IRQ handler”h]”hŒGeneric DM IRQ handler”…”�”}”(hjL?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÈhjI?h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¡=h²hh³jº=h´MÈubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jd?j·jd?j¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hXv**Parameters** ``struct amdgpu_device *adev`` amdgpu base driver device containing the DM device ``struct amdgpu_irq_src *source`` Unused ``struct amdgpu_iv_entry *entry`` Data about the triggered interrupt **Description** Calls all registered high irq work immediately, and schedules work for low irq. The DM IRQ table is used to find the corresponding handlers.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjn?h]”hŒ Parameters”…”�”}”(hjp?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjl?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÌhjh?ubj)�”}”(hhh]”(j )�”}”(hŒR``struct amdgpu_device *adev`` amdgpu base driver device containing the DM device ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hj�?h]”hŒstruct amdgpu_device *adev”…”�”}”(hj�?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‹?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÉhj‡?ubj-)�”}”(hhh]”hì)�”}”(hŒ2amdgpu base driver device containing the DM device”h]”hŒ2amdgpu base driver device containing the DM device”…”�”}”(hj¦?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¢?h´MÉhj£?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‡?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¢?h´MÉhj„?ubj )�”}”(hŒ)``struct amdgpu_irq_src *source`` Unused ”h]”(j)�”}”(hŒ!``struct amdgpu_irq_src *source``”h]”jï)�”}”(hjÆ?h]”hŒstruct amdgpu_irq_src *source”…”�”}”(hjÈ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÄ?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÊhjÀ?ubj-)�”}”(hhh]”hì)�”}”(hŒUnused”h]”hŒUnused”…”�”}”(hjß?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÛ?h´MÊhjÜ?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÀ?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÛ?h´MÊhj„?ubj )�”}”(hŒE``struct amdgpu_iv_entry *entry`` Data about the triggered interrupt ”h]”(j)�”}”(hŒ!``struct amdgpu_iv_entry *entry``”h]”jï)�”}”(hjÿ?h]”hŒstruct amdgpu_iv_entry *entry”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjý?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MËhjù?ubj-)�”}”(hhh]”hì)�”}”(hŒ"Data about the triggered interrupt”h]”hŒ"Data about the triggered interrupt”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j@h´MËhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjù?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j@h´MËhj„?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjh?ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj:@h]”hŒ Description”…”�”}”(hj<@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj8@ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÍhjh?ubhì)�”}”(hŒŒCalls all registered high irq work immediately, and schedules work for low irq. The DM IRQ table is used to find the corresponding handlers.”h]”hŒŒCalls all registered high irq work immediately, and schedules work for low irq. The DM IRQ table is used to find the corresponding handlers.”…”�”}”(hjP@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÌhjh?ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œamdgpu_dm_hpd_init (C function)”Œc.amdgpu_dm_hpd_init”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ4void amdgpu_dm_hpd_init (struct amdgpu_device *adev)”h]”j8)�”}”(hŒ3void amdgpu_dm_hpd_init(struct amdgpu_device *adev)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj{@h²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÃubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽ@h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj{@h²hh³j�@h´MÃubja)�”}”(hŒamdgpu_dm_hpd_init”h]”jg)�”}”(hŒamdgpu_dm_hpd_init”h]”hŒamdgpu_dm_hpd_init”…”�”}”(hj @h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjœ@ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj{@h²hh³j�@h´MÃubjE+)�”}”(hŒ(struct amdgpu_device *adev)”h]”jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj¼@h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¸@ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ@h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¸@ubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjÚ@h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj×@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jÜ@Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j¢@sbŒc.amdgpu_dm_hpd_init”†”asbuh1hhj¸@ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú@h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¸@ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj¸@ubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¸@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj´@ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj{@h²hh³j�@h´MÃubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjw@h²hh³j�@h´MÃubah}”(h]”jr@ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j�@h´MÃhjt@h²hubj•)�”}”(hhh]”hì)�”}”(hŒhpd setup callback.”h]”hŒhpd setup callback.”…”�”}”(hj?Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÃhj)�”}”(hjAh]”hŒstruct”…”�”}”(hj=Bh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj9BubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJBh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj9Bubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj[Bh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjXBubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j]BŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j#BsbŒc.amdgpu_dm_hpd_fini”†”asbuh1hhj9BubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{Bh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj9Bubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj‰Bh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj9Bubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj–Bh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj9Bubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj5Bubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjüAh²hh³jBh´Mubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjøAh²hh³jBh´Mubah}”(h]”jóAah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jBh´MhjõAh²hubj•)�”}”(hhh]”hì)�”}”(hŒhpd tear down callback.”h]”hŒhpd tear down callback.”…”�”}”(hjÀBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj½Bh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjõAh²hh³jBh´Mubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jØBj·jØBj¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hŒª**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer **Description** Tear down the hpd pins used by the card (evergreen+). Disable the hpd interrupts.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjâBh]”hŒ Parameters”…”�”}”(hjäBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjàBubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MhjÜBubj)�”}”(hhh]”j )�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hjCh]”hŒstruct amdgpu_device *adev”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÿBubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MhjûBubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jCh´MhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjûBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jCh´MhjøBubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÜBubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj:Cubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MhjÜBubhì)�”}”(hŒQTear down the hpd pins used by the card (evergreen+). Disable the hpd interrupts.”h]”hŒQTear down the hpd pins used by the card (evergreen+). Disable the hpd interrupts.”…”�”}”(hjRCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MhjÜBubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdmub_hpd_callback (C function)”Œc.dmub_hpd_callback”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒUvoid dmub_hpd_callback (struct amdgpu_device *adev, struct dmub_notification *notify)”h]”j8)�”}”(hŒTvoid dmub_hpd_callback(struct amdgpu_device *adev, struct dmub_notification *notify)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�Ch²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj}Ch²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MMubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Ch²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj}Ch²hh³j�Ch´MMubja)�”}”(hŒdmub_hpd_callback”h]”jg)�”}”(hŒdmub_hpd_callback”h]”hŒdmub_hpd_callback”…”�”}”(hj¢Ch²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjžCubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj}Ch²hh³j�Ch´MMubjE+)�”}”(hŒ>(struct amdgpu_device *adev, struct dmub_notification *notify)”h]”(jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj¾Ch²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjºCubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËCh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjºCubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjÜCh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÙCubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jÞCŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j¤CsbŒc.dmub_hpd_callback”†”asbuh1hhjºCubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjüCh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjºCubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj Dh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjºCubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjºCubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj¶CubjK+)�”}”(hŒ struct dmub_notification *notify”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj0Dh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj,DubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=Dh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj,Dubh)�”}”(hhh]”jg)�”}”(hŒdmub_notification”h]”hŒdmub_notification”…”�”}”(hjNDh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjKDubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jPDŒmodname”NŒ classname”Nj'j*)�”}”j-]”jøCŒc.dmub_hpd_callback”†”asbuh1hhj,DubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlDh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj,Dubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjzDh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj,Dubjg)�”}”(hŒnotify”h]”hŒnotify”…”�”}”(hj‡Dh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj,Dubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj¶Cubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj}Ch²hh³j�Ch´MMubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjyCh²hh³j�Ch´MMubah}”(h]”jtCah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j�Ch´MMhjvCh²hubj•)�”}”(hhh]”hì)�”}”(hŒ'DMUB HPD interrupt processing callback.”h]”hŒ'DMUB HPD interrupt processing callback.”…”�”}”(hj±Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MMhj®Dh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjvCh²hh³j�Ch´MMubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jÉDj·jÉDj¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hX**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct dmub_notification *notify`` dmub notification structure **Description** Dmub Hpd interrupt processing callback. Gets displayindex through the ink index and calls helper to do the processing.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjÓDh]”hŒ Parameters”…”�”}”(hjÕDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÑDubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MQhjÍDubj)�”}”(hhh]”(j )�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hjòDh]”hŒstruct amdgpu_device *adev”…”�”}”(hjôDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjðDubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MNhjìDubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jEh´MNhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjìDubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jEh´MNhjéDubj )�”}”(hŒA``struct dmub_notification *notify`` dmub notification structure ”h]”(j)�”}”(hŒ$``struct dmub_notification *notify``”h]”jï)�”}”(hj+Eh]”hŒ struct dmub_notification *notify”…”�”}”(hj-Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj)Eubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MOhj%Eubj-)�”}”(hhh]”hì)�”}”(hŒdmub notification structure”h]”hŒdmub notification structure”…”�”}”(hjDEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j@Eh´MOhjAEubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj%Eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j@Eh´MOhjéDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍDubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjfEh]”hŒ Description”…”�”}”(hjhEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjdEubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MQhjÍDubhì)�”}”(hŒvDmub Hpd interrupt processing callback. Gets displayindex through the ink index and calls helper to do the processing.”h]”hŒvDmub Hpd interrupt processing callback. Gets displayindex through the ink index and calls helper to do the processing.”…”�”}”(hj|Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MPhjÍDubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ$dmub_hpd_sense_callback (C function)”•ÔŒc.dmub_hpd_sense_callback”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ[void dmub_hpd_sense_callback (struct amdgpu_device *adev, struct dmub_notification *notify)”h]”j8)�”}”(hŒZvoid dmub_hpd_sense_callback(struct amdgpu_device *adev, struct dmub_notification *notify)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj«Eh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj§Eh²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M™ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºEh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj§Eh²hh³j¹Eh´M™ubja)�”}”(hŒdmub_hpd_sense_callback”h]”jg)�”}”(hŒdmub_hpd_sense_callback”h]”hŒdmub_hpd_sense_callback”…”�”}”(hjÌEh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÈEubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj§Eh²hh³j¹Eh´M™ubjE+)�”}”(hŒ>(struct amdgpu_device *adev, struct dmub_notification *notify)”h]”(jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjèEh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjäEubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõEh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjäEubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jFŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jÎEsbŒc.dmub_hpd_sense_callback”†”asbuh1hhjäEubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&Fh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjäEubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj4Fh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjäEubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjAFh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjäEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjàEubjK+)�”}”(hŒ struct dmub_notification *notify”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjZFh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjVFubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjgFh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjVFubh)�”}”(hhh]”jg)�”}”(hŒdmub_notification”h]”hŒdmub_notification”…”�”}”(hjxFh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjuFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jzFŒmodname”NŒ classname”Nj'j*)�”}”j-]”j"FŒc.dmub_hpd_sense_callback”†”asbuh1hhjVFubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–Fh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjVFubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj¤Fh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjVFubjg)�”}”(hŒnotify”h]”hŒnotify”…”�”}”(hj±Fh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjVFubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjàEubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj§Eh²hh³j¹Eh´M™ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj£Eh²hh³j¹Eh´M™ubah}”(h]”jžEah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j¹Eh´M™hj Eh²hubj•)�”}”(hhh]”hì)�”}”(hŒ#DMUB HPD sense processing callback.”h]”hŒ#DMUB HPD sense processing callback.”…”�”}”(hjÛFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M™hjØFh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj Eh²hh³j¹Eh´M™ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jóFj·jóFj¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hX**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct dmub_notification *notify`` dmub notification structure **Description** HPD sense changes can occur during low power states and need to be notified from firmware to driver.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjýFh]”hŒ Parameters”…”�”}”(hjÿFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjûFubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M�hj÷Fubj)�”}”(hhh]”(j )�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hjGh]”hŒstruct amdgpu_device *adev”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MšhjGubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj5Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j1Gh´Mšhj2Gubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j1Gh´MšhjGubj )�”}”(hŒA``struct dmub_notification *notify`` dmub notification structure ”h]”(j)�”}”(hŒ$``struct dmub_notification *notify``”h]”jï)�”}”(hjUGh]”hŒ struct dmub_notification *notify”…”�”}”(hjWGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjSGubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M›hjOGubj-)�”}”(hhh]”hì)�”}”(hŒdmub notification structure”h]”hŒdmub notification structure”…”�”}”(hjnGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jjGh´M›hjkGubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjOGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jjGh´M›hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷Fubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj�Gh]”hŒ Description”…”�”}”(hj’Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjŽGubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M�hj÷Fubhì)�”}”(hŒdHPD sense changes can occur during low power states and need to be notified from firmware to driver.”h]”hŒdHPD sense changes can occur during low power states and need to be notified from firmware to driver.”…”�”}”(hj¦Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mœhj÷Fubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdm_pflip_high_irq (C function)”Œc.dm_pflip_high_irq”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ/void dm_pflip_high_irq (void *interrupt_params)”h]”j8)�”}”(hŒ.void dm_pflip_high_irq(void *interrupt_params)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÕGh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjÑGh²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäGh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÑGh²hh³jãGh´Mubja)�”}”(hŒdm_pflip_high_irq”h]”jg)�”}”(hŒdm_pflip_high_irq”h]”hŒdm_pflip_high_irq”…”�”}”(hjöGh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjòGubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjÑGh²hh³jãGh´MubjE+)�”}”(hŒ(void *interrupt_params)”h]”jK+)�”}”(hŒvoid *interrupt_params”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjHubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Hh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjHubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj.Hh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjHubjg)�”}”(hŒinterrupt_params”h]”hŒinterrupt_params”…”�”}”(hj;Hh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj Hubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjÑGh²hh³jãGh´Mubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjÍGh²hh³jãGh´Mubah}”(h]”jÈGah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jãGh´MhjÊGh²hubj•)�”}”(hhh]”hì)�”}”(hŒHandle pageflip interrupt”h]”hŒHandle pageflip interrupt”…”�”}”(hjeHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MhjbHh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÊGh²hh³jãGh´Mubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j}Hj·j}Hj¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hŒ¯**Parameters** ``void *interrupt_params`` ignored **Description** Handles the pageflip interrupt by notifying all interested parties that the pageflip has been completed.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj‡Hh]”hŒ Parameters”…”�”}”(hj‰Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj…Hubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj�Hubj)�”}”(hhh]”j )�”}”(hŒ#``void *interrupt_params`` ignored ”h]”(j)�”}”(hŒ``void *interrupt_params``”h]”jï)�”}”(hj¦Hh]”hŒvoid *interrupt_params”…”�”}”(hj¨Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¤Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj Hubj-)�”}”(hhh]”hì)�”}”(hŒignored”h]”hŒignored”…”�”}”(hj¿Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j»Hh´Mhj¼Hubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj Hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j»Hh´Mhj�Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�Hubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjáHh]”hŒ Description”…”�”}”(hjãHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjßHubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj�Hubhì)�”}”(hŒhHandles the pageflip interrupt by notifying all interested parties that the pageflip has been completed.”h]”hŒhHandles the pageflip interrupt by notifying all interested parties that the pageflip has been completed.”…”�”}”(hj÷Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mhj�Hubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ%dm_crtc_high_irq_handler (C function)”Œc.dm_crtc_high_irq_handler”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒUvoid dm_crtc_high_irq_handler (struct amdgpu_device *adev, struct amdgpu_crtc *acrtc)”h]”j8)�”}”(hŒTvoid dm_crtc_high_irq_handler(struct amdgpu_device *adev, struct amdgpu_crtc *acrtc)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj&Ih²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj"Ih²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M©ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5Ih²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj"Ih²hh³j4Ih´M©ubja)�”}”(hŒdm_crtc_high_irq_handler”h]”jg)�”}”(hŒdm_crtc_high_irq_handler”h]”hŒdm_crtc_high_irq_handler”…”�”}”(hjGIh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjCIubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj"Ih²hh³j4Ih´M©ubjE+)�”}”(hŒ7(struct amdgpu_device *adev, struct amdgpu_crtc *acrtc)”h]”(jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjcIh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj_IubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjpIh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj_Iubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj�Ih²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj~Iubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jƒIŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jIIsbŒc.dm_crtc_high_irq_handler”†”asbuh1hhj_IubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡Ih²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj_Iubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj¯Ih²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj_Iubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj¼Ih²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj_Iubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj[IubjK+)�”}”(hŒstruct amdgpu_crtc *acrtc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjÕIh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÑIubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâIh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÑIubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_crtc”h]”hŒ amdgpu_crtc”…”�”}”(hjóIh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjðIubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jõIŒmodname”NŒ classname”Nj'j*)�”}”j-]”j�IŒc.dm_crtc_high_irq_handler”†”asbuh1hhjÑIubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÑIubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjÑIubjg)�”}”(hŒacrtc”h]”hŒacrtc”…”�”}”(hj,Jh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÑIubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj[Iubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj"Ih²hh³j4Ih´M©ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjIh²hh³j4Ih´M©ubah}”(h]”jIah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j4Ih´M©hjIh²hubj•)�”}”(hhh]”hì)�”}”(hŒ%Common OTG vblank/flip event handling”h]”hŒ%Common OTG vblank/flip event handling”…”�”}”(hjVJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M©hjSJh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjIh²hh³j4Ih´M©ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jnJj·jnJj¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hX¯**Parameters** ``struct amdgpu_device *adev`` amdgpu device ``struct amdgpu_crtc *acrtc`` the CRTC to service Performs writeback completion, vblank event handling, CRC processing, VRR BTR updates and pageflip completion delivery. **Description** On DCN this is driven by VUPDATE_NO_LOCK (the register latch point) from dm_vupdate_high_irq(); on DCE it is driven by VLINE0 at the start of vblank from dm_crtc_high_irq().”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjxJh]”hŒ Parameters”…”�”}”(hjzJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjvJubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M­hjrJubj)�”}”(hhh]”(j )�”}”(hŒ-``struct amdgpu_device *adev`` amdgpu device ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hj—Jh]”hŒstruct amdgpu_device *adev”…”�”}”(hj™Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj•Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´Mªhj‘Jubj-)�”}”(hhh]”hì)�”}”(hŒ amdgpu device”h]”hŒ amdgpu device”…”�”}”(hj°Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¬Jh´Mªhj­Jubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‘Jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¬Jh´MªhjŽJubj )�”}”(hŒª``struct amdgpu_crtc *acrtc`` the CRTC to service Performs writeback completion, vblank event handling, CRC processing, VRR BTR updates and pageflip completion delivery. ”h]”(j)�”}”(hŒ``struct amdgpu_crtc *acrtc``”h]”jï)�”}”(hjÐJh]”hŒstruct amdgpu_crtc *acrtc”…”�”}”(hjÒJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÎJubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M­hjÊJubj-)�”}”(hhh]”hì)�”}”(hŒ‹the CRTC to service Performs writeback completion, vblank event handling, CRC processing, VRR BTR updates and pageflip completion delivery.”h]”hŒ‹the CRTC to service Performs writeback completion, vblank event handling, CRC processing, VRR BTR updates and pageflip completion delivery.”…”�”}”(hjéJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M«hjæJubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÊJubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jåJh´M­hjŽJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjrJubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj Kh]”hŒ Description”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj Kubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M¯hjrJubhì)�”}”(hŒ­On DCN this is driven by VUPDATE_NO_LOCK (the register latch point) from dm_vupdate_high_irq(); on DCE it is driven by VLINE0 at the start of vblank from dm_crtc_high_irq().”h]”hŒ­On DCN this is driven by VUPDATE_NO_LOCK (the register latch point) from dm_vupdate_high_irq(); on DCE it is driven by VLINE0 at the start of vblank from dm_crtc_high_irq().”…”�”}”(hj"Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M®hjrJubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdm_crtc_high_irq (C function)”Œc.dm_crtc_high_irq”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ.void dm_crtc_high_irq (void *interrupt_params)”h]”j8)�”}”(hŒ-void dm_crtc_high_irq(void *interrupt_params)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjQKh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjMKh²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MwubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`Kh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjMKh²hh³j_Kh´Mwubja)�”}”(hŒdm_crtc_high_irq”h]”jg)�”}”(hŒdm_crtc_high_irq”h]”hŒdm_crtc_high_irq”…”�”}”(hjrKh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjnKubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjMKh²hh³j_Kh´MwubjE+)�”}”(hŒ(void *interrupt_params)”h]”jK+)�”}”(hŒvoid *interrupt_params”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŽKh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjŠKubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœKh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŠKubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjªKh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjŠKubjg)�”}”(hŒinterrupt_params”h]”hŒinterrupt_params”…”�”}”(hj·Kh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjŠKubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj†Kubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjMKh²hh³j_Kh´Mwubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjIKh²hh³j_Kh´Mwubah}”(h]”jDKah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j_Kh´MwhjFKh²hubj•)�”}”(hhh]”hì)�”}”(hŒHandles CRTC interrupt”h]”hŒHandles CRTC interrupt”…”�”}”(hjáKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MwhjÞKh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjFKh²hh³j_Kh´Mwubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jùKj·jùKj¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hX1**Parameters** ``void *interrupt_params`` used for determining the CRTC instance **Description** Handles the CRTC/VSYNC interrupt by notifying DRM's VBLANK event handler. Used on DCE (VLINE0, set to vblank start). On DCN the equivalent handling is driven by VUPDATE_NO_LOCK in dm_vupdate_high_irq().”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjLh]”hŒ Parameters”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjLubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M{hjýKubj)�”}”(hhh]”j )�”}”(hŒB``void *interrupt_params`` used for determining the CRTC instance ”h]”(j)�”}”(hŒ``void *interrupt_params``”h]”jï)�”}”(hj"Lh]”hŒvoid *interrupt_params”…”�”}”(hj$Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj Lubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MxhjLubj-)�”}”(hhh]”hì)�”}”(hŒ&used for determining the CRTC instance”h]”hŒ&used for determining the CRTC instance”…”�”}”(hj;Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j7Lh´Mxhj8Lubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j7Lh´MxhjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýKubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj]Lh]”hŒ Description”…”�”}”(hj_Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj[Lubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MzhjýKubhì)�”}”(hŒIHandles the CRTC/VSYNC interrupt by notifying DRM's VBLANK event handler.”h]”hŒKHandles the CRTC/VSYNC interrupt by notifying DRM’s VBLANK event handler.”…”�”}”(hjsLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MyhjýKubhì)�”}”(hŒ€Used on DCE (VLINE0, set to vblank start). On DCN the equivalent handling is driven by VUPDATE_NO_LOCK in dm_vupdate_high_irq().”h]”hŒ€Used on DCE (VLINE0, set to vblank start). On DCN the equivalent handling is driven by VUPDATE_NO_LOCK in dm_vupdate_high_irq().”…”�”}”(hj‚Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M{hjýKubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ0dm_dcn_vertical_interrupt0_high_irq (C function)”Œ%c.dm_dcn_vertical_interrupt0_high_irq”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒAvoid dm_dcn_vertical_interrupt0_high_irq (void *interrupt_params)”h]”j8)�”}”(hŒ@void dm_dcn_vertical_interrupt0_high_irq(void *interrupt_params)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj±Lh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj­Lh²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M�ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀLh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj­Lh²hh³j¿Lh´M�ubja)�”}”(hŒ#dm_dcn_vertical_interrupt0_high_irq”h]”jg)�”}”(hŒ#dm_dcn_vertical_interrupt0_high_irq”h]”hŒ#dm_dcn_vertical_interrupt0_high_irq”…”�”}”(hjÒLh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÎLubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj­Lh²hh³j¿Lh´M�ubjE+)�”}”(hŒ(void *interrupt_params)”h]”jK+)�”}”(hŒvoid *interrupt_params”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjîLh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjêLubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjüLh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjêLubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj Mh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjêLubjg)�”}”(hŒinterrupt_params”h]”hŒinterrupt_params”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjêLubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjæLubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj­Lh²hh³j¿Lh´M�ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj©Lh²hh³j¿Lh´M�ubah}”(h]”j¤Lah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j¿Lh´M�hj¦Lh²hubj•)�”}”(hhh]”hì)�”}”(hŒ8Handles OTG Vertical interrupt0 for DCN generation ASICs”h]”hŒ8Handles OTG Vertical interrupt0 for DCN generation ASICs”…”�”}”(hjAMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M�hj>Mh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¦Lh²hh³j¿Lh´M�ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jYMj·jYMj¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hŒ™**Parameters** ``void *interrupt_params`` interrupt parameters **Description** Used to set crc window/read out crc value at vertical line 0 position”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjcMh]”hŒ Parameters”…”�”}”(hjeMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjaMubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M“hj]Mubj)�”}”(hhh]”j )�”}”(hŒ0``void *interrupt_params`` interrupt parameters ”h]”(j)�”}”(hŒ``void *interrupt_params``”h]”jï)�”}”(hj‚Mh]”hŒvoid *interrupt_params”…”�”}”(hj„Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj€Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M‘hj|Mubj-)�”}”(hhh]”hì)�”}”(hŒinterrupt parameters”h]”hŒinterrupt parameters”…”�”}”(hj›Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j—Mh´M‘hj˜Mubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj|Mubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j—Mh´M‘hjyMubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj]Mubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj½Mh]”hŒ Description”…”�”}”(hj¿Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj»Mubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M“hj]Mubhì)�”}”(hŒEUsed to set crc window/read out crc value at vertical line 0 position”h]”hŒEUsed to set crc window/read out crc value at vertical line 0 position”…”�”}”(hjÓMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M’hj]Mubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ$dm_dmub_outbox1_low_irq (C function)”Œc.dm_dmub_outbox1_low_irq”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ5void dm_dmub_outbox1_low_irq (void *interrupt_params)”h]”j8)�”}”(hŒ4void dm_dmub_outbox1_low_irq(void *interrupt_params)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjþMh²hh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÕubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjþMh²hh³jNh´MÕubja)�”}”(hŒdm_dmub_outbox1_low_irq”h]”jg)�”}”(hŒdm_dmub_outbox1_low_irq”h]”hŒdm_dmub_outbox1_low_irq”…”�”}”(hj#Nh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjNubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjþMh²hh³jNh´MÕubjE+)�”}”(hŒ(void *interrupt_params)”h]”jK+)�”}”(hŒvoid *interrupt_params”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj?Nh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj;NubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMNh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj;Nubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj[Nh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj;Nubjg)�”}”(hŒinterrupt_params”h]”hŒinterrupt_params”…”�”}”(hjhNh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj;Nubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj7Nubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjþMh²hh³jNh´MÕubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjúMh²hh³jNh´MÕubah}”(h]”jõMah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jNh´MÕhj÷Mh²hubj•)�”}”(hhh]”hì)�”}”(hŒHandles Outbox interrupt”h]”hŒHandles Outbox interrupt”…”�”}”(hj’Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÕhj�Nh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj÷Mh²hh³jNh´MÕubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jªNj·jªNj¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hŒ“**Parameters** ``void *interrupt_params`` used for determining the Outbox instance **Description** Handles the Outbox Interrupt event handler.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj´Nh]”hŒ Parameters”…”�”}”(hj¶Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj²Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÙhj®Nubj)�”}”(hhh]”j )�”}”(hŒD``void *interrupt_params`` used for determining the Outbox instance ”h]”(j)�”}”(hŒ``void *interrupt_params``”h]”jï)�”}”(hjÓNh]”hŒvoid *interrupt_params”…”�”}”(hjÕNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÑNubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MÖhjÍNubj-)�”}”(hhh]”hì)�”}”(hŒ(used for determining the Outbox instance”h]”hŒ(used for determining the Outbox instance”…”�”}”(hjìNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jèNh´MÖhjéNubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÍNubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jèNh´MÖhjÊNubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj®Nubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjOh]”hŒ Description”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj Oubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´MØhj®Nubhì)�”}”(hŒ+Handles the Outbox Interrupt event handler.”h]”hŒ+Handles the Outbox Interrupt event handler.”…”�”}”(hj$Oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œˆ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:29: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c”h´M×hj®Nubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ-amdgpu_display_hotplug_work_func (C function)”Œ"c.amdgpu_display_hotplug_work_func”hNt”auh1jhj /h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ@void amdgpu_display_hotplug_work_func (struct work_struct *work)”h]”j8)�”}”(hŒ?void amdgpu_display_hotplug_work_func(struct work_struct *work)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjSOh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjOOh²hh³Œ~/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:35: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´K4ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbOh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjOOh²hh³jaOh´K4ubja)�”}”(hŒ amdgpu_display_hotplug_work_func”h]”jg)�”}”(hŒ amdgpu_display_hotplug_work_func”h]”hŒ amdgpu_display_hotplug_work_func”…”�”}”(hjtOh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjpOubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjOOh²hh³jaOh´K4ubjE+)�”}”(hŒ(struct work_struct *work)”h]”jK+)�”}”(hŒstruct work_struct *work”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj�Oh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjŒOubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Oh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŒOubh)�”}”(hhh]”jg)�”}”(hŒ work_struct”h]”hŒ work_struct”…”�”}”(hj®Oh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj«Oubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j°OŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jvOsbŒ"c.amdgpu_display_hotplug_work_func”†”asbuh1hhjŒOubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎOh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŒOubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjÜOh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjŒOubjg)�”}”(hŒwork”h]”hŒwork”…”�”}”(hjéOh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjŒOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjˆOubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjOOh²hh³jaOh´K4ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjKOh²hh³jaOh´K4ubah}”(h]”jFOah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jaOh´K4hjHOh²hubj•)�”}”(hhh]”hì)�”}”(hŒ&work handler for display hotplug event”h]”hŒ&work handler for display hotplug event”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ~/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:35: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´K4hjPh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjHOh²hh³jaOh´K4ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j+Pj·j+Pj¸‰j¹‰jº‰uh1j,h²hhj /h³Nh´Nubj¼)�”}”(hXV**Parameters** ``struct work_struct *work`` work struct pointer **Description** This is the hotplug event work handler (all ASICs). The work gets scheduled from the IRQ handler if there was a hotplug interrupt. It walks through the connector table and calls hotplug handler for each connector. After this, it sends a DRM hotplug event to alert userspace. This design approach is required in order to defer hotplug event handling from the IRQ handler to a work handler because hotplug handler has to use mutexes which cannot be locked in an IRQ handler (since :c:type:`mutex_lock` may sleep).”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj5Ph]”hŒ Parameters”…”�”}”(hj7Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj3Pubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ~/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:35: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´K8hj/Pubj)�”}”(hhh]”j )�”}”(hŒ1``struct work_struct *work`` work struct pointer ”h]”(j)�”}”(hŒ``struct work_struct *work``”h]”jï)�”}”(hjTPh]”hŒstruct work_struct *work”…”�”}”(hjVPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjRPubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ~/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:35: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´K6hjNPubj-)�”}”(hhh]”hì)�”}”(hŒwork struct pointer”h]”hŒwork struct pointer”…”�”}”(hjmPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jiPh´K6hjjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjNPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jiPh´K6hjKPubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj/Pubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj�Ph]”hŒ Description”…”�”}”(hj‘Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj�Pubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ~/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:35: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´K8hj/Pubhì)�”}”(hXThis is the hotplug event work handler (all ASICs). The work gets scheduled from the IRQ handler if there was a hotplug interrupt. It walks through the connector table and calls hotplug handler for each connector. After this, it sends a DRM hotplug event to alert userspace.”h]”hXThis is the hotplug event work handler (all ASICs). The work gets scheduled from the IRQ handler if there was a hotplug interrupt. It walks through the connector table and calls hotplug handler for each connector. After this, it sends a DRM hotplug event to alert userspace.”…”�”}”(hj¥Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ~/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:35: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´K7hj/Pubhì)�”}”(hŒìThis design approach is required in order to defer hotplug event handling from the IRQ handler to a work handler because hotplug handler has to use mutexes which cannot be locked in an IRQ handler (since :c:type:`mutex_lock` may sleep).”h]”(hŒÌThis design approach is required in order to defer hotplug event handling from the IRQ handler to a work handler because hotplug handler has to use mutexes which cannot be locked in an IRQ handler (since ”…”�”}”(hj´Ph²hh³Nh´Nubh)�”}”(hŒ:c:type:`mutex_lock`”h]”jï)�”}”(hj¾Ph]”hŒ mutex_lock”…”�”}”(hjÀPh²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj¼Pubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ mutex_lock”uh1hh³Œ~/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:35: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´K=hj´PubhŒ may sleep).”…”�”}”(hj´Ph²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÛPh´K=hj/Pubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj /h²hh³Nh´Nubeh}”(h]”jAah ]”h"]”Œ interrupts”ah$]”h&]”uh1hµhh·h²hh³hÌh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒAtomic Implementation”h]”hŒAtomic Implementation”…”�”}”(hj÷Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊj]uh1hºhjôPh²hh³hÌh´K'ubhì)�”}”(hŒ*WIP*”h]”hŒemphasis”“”)�”}”(hjQh]”hŒWIP”…”�”}”(hj Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j QhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:41: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MDhjôPh²hubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ)amdgpu_dm_atomic_commit_tail (C function)”Œc.amdgpu_dm_atomic_commit_tail”hNt”auh1jhjôPh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒCvoid amdgpu_dm_atomic_commit_tail (struct drm_atomic_commit *state)”h]”j8)�”}”(hŒBvoid amdgpu_dm_atomic_commit_tail(struct drm_atomic_commit *state)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj8Qh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj4Qh²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M¤ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGQh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj4Qh²hh³jFQh´M¤ubja)�”}”(hŒamdgpu_dm_atomic_commit_tail”h]”jg)�”}”(hŒamdgpu_dm_atomic_commit_tail”h]”hŒamdgpu_dm_atomic_commit_tail”…”�”}”(hjYQh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjUQubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj4Qh²hh³jFQh´M¤ubjE+)�”}”(hŒ!(struct drm_atomic_commit *state)”h]”jK+)�”}”(hŒstruct drm_atomic_commit *state”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjuQh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjqQubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚Qh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjqQubh)�”}”(hhh]”jg)�”}”(hŒdrm_atomic_commit”h]”hŒdrm_atomic_commit”…”�”}”(hj“Qh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj�Qubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j•QŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j[QsbŒc.amdgpu_dm_atomic_commit_tail”†”asbuh1hhjqQubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³Qh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjqQubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjÁQh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjqQubjg)�”}”(hŒstate”h]”hŒstate”…”�”}”(hjÎQh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjqQubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjmQubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj4Qh²hh³jFQh´M¤ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj0Qh²hh³jFQh´M¤ubah}”(h]”j+Qah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jFQh´M¤hj-Qh²hubj•)�”}”(hhh]”hì)�”}”(hŒ'AMDgpu DM's commit tail implementation.”h]”hŒ)AMDgpu DM’s commit tail implementation.”…”�”}”(hjøQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M¤hjõQh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj-Qh²hh³jFQh´M¤ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jRj·jRj¸‰j¹‰jº‰uh1j,h²hhjôPh³Nh´Nubj¼)�”}”(hX/**Parameters** ``struct drm_atomic_commit *state`` The atomic state to commit **Description** This will tell DC to commit the constructed DC state from atomic_check, programming the hardware. Any failures here implies a hardware failure, since atomic check should have filtered anything non-kosher.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjRh]”hŒ Parameters”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjRubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M¨hjRubj)�”}”(hhh]”j )�”}”(hŒ?``struct drm_atomic_commit *state`` The atomic state to commit ”h]”(j)�”}”(hŒ#``struct drm_atomic_commit *state``”h]”jï)�”}”(hj9Rh]”hŒstruct drm_atomic_commit *state”…”�”}”(hj;Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj7Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M¥hj3Rubj-)�”}”(hhh]”hì)�”}”(hŒThe atomic state to commit”h]”hŒThe atomic state to commit”…”�”}”(hjRRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jNRh´M¥hjORubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj3Rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jNRh´M¥hj0Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjRubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjtRh]”hŒ Description”…”�”}”(hjvRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjrRubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M§hjRubhì)�”}”(hŒÌThis will tell DC to commit the constructed DC state from atomic_check, programming the hardware. Any failures here implies a hardware failure, since atomic check should have filtered anything non-kosher.”h]”hŒÌThis will tell DC to commit the constructed DC state from atomic_check, programming the hardware. Any failures here implies a hardware failure, since atomic check should have filtered anything non-kosher.”…”�”}”(hjŠRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M¦hjRubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hjôPh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ#amdgpu_dm_atomic_check (C function)”Œc.amdgpu_dm_atomic_check”hNt”auh1jhjôPh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒTint amdgpu_dm_atomic_check (struct drm_device *dev, struct drm_atomic_commit *state)”h]”j8)�”}”(hŒSint amdgpu_dm_atomic_check(struct drm_device *dev, struct drm_atomic_commit *state)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hj¹Rh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjµRh²hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MÕubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈRh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjµRh²hh³jÇRh´MÕubja)�”}”(hŒamdgpu_dm_atomic_check”h]”jg)�”}”(hŒamdgpu_dm_atomic_check”h]”hŒamdgpu_dm_atomic_check”…”�”}”(hjÚRh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÖRubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjµRh²hh³jÇRh´MÕubjE+)�”}”(hŒ9(struct drm_device *dev, struct drm_atomic_commit *state)”h]”(jK+)�”}”(hŒstruct drm_device *dev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjöRh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjòRubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjòRubh)�”}”(hhh]”jg)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjSubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jSŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jÜRsbŒc.amdgpu_dm_atomic_check”†”asbuh1hhjòRubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4Sh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjòRubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjBSh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjòRubjg)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjOSh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjòRubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjîRubjK+)�”}”(hŒstruct drm_atomic_commit *state”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjhSh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjdSubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuSh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjdSubh)�”}”(hhh]”jg)�”}”(hŒdrm_atomic_commit”h]”hŒdrm_atomic_commit”…”�”}”(hj†Sh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjƒSubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jˆSŒmodname”NŒ classname”Nj'j*)�”}”j-]”j0SŒc.amdgpu_dm_atomic_check”†”asbuh1hhjdSubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤Sh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjdSubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj²Sh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjdSubjg)�”}”(hŒstate”h]”hŒstate”…”�”}”(hj¿Sh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjdSubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjîRubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjµRh²hh³jÇRh´MÕubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj±Rh²hh³jÇRh´MÕubah}”(h]”j¬Rah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jÇRh´MÕhj®Rh²hubj•)�”}”(hhh]”hì)�”}”(hŒ*Atomic check implementation for AMDgpu DM.”h]”hŒ*Atomic check implementation for AMDgpu DM.”…”�”}”(hjéSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MÕhjæSh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj®Rh²hh³jÇRh´MÕubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jTj·jTj¸‰j¹‰jº‰uh1j,h²hhjôPh³Nh´Nubj¼)�”}”(hXŠ**Parameters** ``struct drm_device *dev`` The DRM device ``struct drm_atomic_commit *state`` The atomic state to commit **Description** Validate that the given atomic state is programmable by DC into hardware. This involves constructing a :c:type:`struct dc_state ` reflecting the new hardware state we wish to commit, then querying DC to see if it is programmable. It's important not to modify the existing DC state. Otherwise, atomic_check may unexpectedly commit hardware changes. When validating the DC state, it's important that the right locks are acquired. For full updates case which removes/adds/updates streams on one CRTC while flipping on another CRTC, acquiring global lock will guarantee that any such full update commit will wait for completion of any outstanding flip using DRMs synchronization events. Note that DM adds the affected connectors for all CRTCs in state, when that might not seem necessary. This is because DC stream creation requires the DC sink, which is tied to the DRM connector state. Cleaning this up should be possible but non-trivial - a possible TODO item. **Return** -Error code if validation failed.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj Th]”hŒ Parameters”…”�”}”(hj Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj Tubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MÙhjTubj)�”}”(hhh]”(j )�”}”(hŒ*``struct drm_device *dev`` The DRM device ”h]”(j)�”}”(hŒ``struct drm_device *dev``”h]”jï)�”}”(hj*Th]”hŒstruct drm_device *dev”…”�”}”(hj,Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj(Tubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´M×hj$Tubj-)�”}”(hhh]”hì)�”}”(hŒThe DRM device”h]”hŒThe DRM device”…”�”}”(hjCTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j?Th´M×hj@Tubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj$Tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j?Th´M×hj!Tubj )�”}”(hŒ?``struct drm_atomic_commit *state`` The atomic state to commit ”h]”(j)�”}”(hŒ#``struct drm_atomic_commit *state``”h]”jï)�”}”(hjcTh]”hŒstruct drm_atomic_commit *state”…”�”}”(hjeTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjaTubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MØhj]Tubj-)�”}”(hhh]”hì)�”}”(hŒThe atomic state to commit”h]”hŒThe atomic state to commit”…”�”}”(hj|Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jxTh´MØhjyTubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj]Tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jxTh´MØhj!Tubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjTubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjžTh]”hŒ Description”…”�”}”(hj Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjœTubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MÚhjTubhì)�”}”(hXeValidate that the given atomic state is programmable by DC into hardware. This involves constructing a :c:type:`struct dc_state ` reflecting the new hardware state we wish to commit, then querying DC to see if it is programmable. It's important not to modify the existing DC state. Otherwise, atomic_check may unexpectedly commit hardware changes.”h]”(hŒgValidate that the given atomic state is programmable by DC into hardware. This involves constructing a ”…”�”}”(hj´Th²hh³Nh´Nubh)�”}”(hŒ$:c:type:`struct dc_state `”h]”jï)�”}”(hj¾Th]”hŒstruct dc_state”…”�”}”(hjÀTh²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj¼Tubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œdc_state”uh1hh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MÙhj´TubhŒÜ reflecting the new hardware state we wish to commit, then querying DC to see if it is programmable. It’s important not to modify the existing DC state. Otherwise, atomic_check may unexpectedly commit hardware changes.”…”�”}”(hj´Th²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÛTh´MÙhjTubhì)�”}”(hXNWhen validating the DC state, it's important that the right locks are acquired. For full updates case which removes/adds/updates streams on one CRTC while flipping on another CRTC, acquiring global lock will guarantee that any such full update commit will wait for completion of any outstanding flip using DRMs synchronization events.”h]”hXPWhen validating the DC state, it’s important that the right locks are acquired. For full updates case which removes/adds/updates streams on one CRTC while flipping on another CRTC, acquiring global lock will guarantee that any such full update commit will wait for completion of any outstanding flip using DRMs synchronization events.”…”�”}”(hjæTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MßhjTubhì)�”}”(hXNote that DM adds the affected connectors for all CRTCs in state, when that might not seem necessary. This is because DC stream creation requires the DC sink, which is tied to the DRM connector state. Cleaning this up should be possible but non-trivial - a possible TODO item.”h]”hXNote that DM adds the affected connectors for all CRTCs in state, when that might not seem necessary. This is because DC stream creation requires the DC sink, which is tied to the DRM connector state. Cleaning this up should be possible but non-trivial - a possible TODO item.”…”�”}”(hjõTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MåhjTubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjUh]”hŒReturn”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MêhjTubhì)�”}”(hŒ!-Error code if validation failed.”h]”hŒ!-Error code if validation failed.”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ„/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:44: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c”h´MëhjTubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hjôPh²hh³Nh´Nubeh}”(h]”jcah ]”h"]”Œatomic implementation”ah$]”h&]”uh1hµhh·h²hh³hÌh´K'ubh¶)�”}”(hhh]”(h»)�”}”(hŒColor Management Properties”h]”hŒColor Management Properties”…”�”}”(hj Plane degamma -> Plane CTM -> Plane regamma -> Plane CTM”h]”hŒEPlane CTM -> Plane degamma -> Plane CTM -> Plane regamma -> Plane CTM”…”�”}”(hjDWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KPhj{Vubhì)�”}”(hX¨The input gamma LUT block isn't really applicable here since it operates on the actual input data itself rather than the HW fp representation. The input and output CSC blocks are technically available to use as part of the DC interface but are typically used internally by DC for conversions between color spaces. These could be blended together with user adjustments in the future but for now these should remain untouched.”h]”hXªThe input gamma LUT block isn’t really applicable here since it operates on the actual input data itself rather than the HW fp representation. The input and output CSC blocks are technically available to use as part of the DC interface but are typically used internally by DC for conversions between color spaces. These could be blended together with user adjustments in the future but for now these should remain untouched.”…”�”•}”(hjSWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KRhj{Vubhì)�”}”(hX!The pipe blending also happens after these blocks so we don't actually support any CRTC props with correct blending with multiple planes - but we can still support CRTC color management properties in DM in most single plane cases correctly with clever management of the DC interface in DM.”h]”hX#The pipe blending also happens after these blocks so we don’t actually support any CRTC props with correct blending with multiple planes - but we can still support CRTC color management properties in DM in most single plane cases correctly with clever management of the DC interface in DM.”…”�”}”(hjbWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KZhj{Vubhì)�”}”(hŒÊAs per DRM documentation, blocks should be in hardware bypass when their respective property is set to NULL. A linear DGM/RGM LUT should also considered as putting the respective block into bypass mode.”h]”hŒÊAs per DRM documentation, blocks should be in hardware bypass when their respective property is set to NULL. A linear DGM/RGM LUT should also considered as putting the respective block into bypass mode.”…”�”}”(hjqWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´K`hj{Vubhì)�”}”(hŒIThis means that the following configuration is assumed to be the default:”h]”hŒIThis means that the following configuration is assumed to be the default:”…”�”}”(hj€Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Kdhj{Vubhì)�”}”(hŒuPlane DGM Bypass -> Plane CTM Bypass -> Plane RGM Bypass -> ... CRTC DGM Bypass -> CRTC CTM Bypass -> CRTC RGM Bypass”h]”hŒuPlane DGM Bypass -> Plane CTM Bypass -> Plane RGM Bypass -> ... CRTC DGM Bypass -> CRTC CTM Bypass -> CRTC RGM Bypass”…”�”}”(hj�Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Kghj{Vubeh}”(h]”j¤ah ]”h"]”Œdrm_crtc properties”ah$]”h&]”uh1hµhj9Uh²hh³Nh´Nubh¶)�”}”(hhh]”(h»)�”}”(hŒ)AMD Private Color Management on drm_plane”h]”hŒ)AMD Private Color Management on drm_plane”…”�”}”(hj¨Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjÀuh1hºhj¥Wh³Nh´Nubhì)�”}”(hŒIThe AMD private color management properties on a :c:type:`drm_plane` are:”h]”(hŒ1The AMD private color management properties on a ”…”�”}”(hj¶Wh²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_plane`”h]”jï)�”}”(hjÀWh]”hŒ drm_plane”…”�”}”(hjÂWh²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj¾Wubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ drm_plane”uh1hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Kmhj¶WubhŒ are:”…”�”}”(hj¶Wh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÝWh´Kmhj¥Wubhâ)�”}”(hhh]”(hç)�”}”(hŒAMD_PLANE_DEGAMMA_LUT”h]”hì)�”}”(hjíWh]”hŒAMD_PLANE_DEGAMMA_LUT”…”�”}”(hjïWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KohjëWubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_DEGAMMA_LUT_SIZE”h]”hì)�”}”(hjXh]”hŒAMD_PLANE_DEGAMMA_LUT_SIZE”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KphjXubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_DEGAMMA_TF”h]”hì)�”}”(hjXh]”hŒAMD_PLANE_DEGAMMA_TF”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KqhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_HDR_MULT”h]”hì)�”}”(hj5Xh]”hŒAMD_PLANE_HDR_MULT”…”�”}”(hj7Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Krhj3Xubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒ AMD_PLANE_CTM”h]”hì)�”}”(hjMXh]”hŒ AMD_PLANE_CTM”…”�”}”(hjOXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KshjKXubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_SHAPER_LUT”h]”hì)�”}”(hjeXh]”hŒAMD_PLANE_SHAPER_LUT”…”�”}”(hjgXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KthjcXubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_SHAPER_LUT_SIZE”h]”hì)�”}”(hj}Xh]”hŒAMD_PLANE_SHAPER_LUT_SIZE”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Kuhj{Xubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_SHAPER_TF”h]”hì)�”}”(hj•Xh]”hŒAMD_PLANE_SHAPER_TF”…”�”}”(hj—Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Kvhj“Xubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_LUT3D”h]”hì)�”}”(hj­Xh]”hŒAMD_PLANE_LUT3D”…”�”}”(hj¯Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Kwhj«Xubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_LUT3D_SIZE”h]”hì)�”}”(hjÅXh]”hŒAMD_PLANE_LUT3D_SIZE”…”�”}”(hjÇXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KxhjÃXubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_BLEND_LUT”h]”hì)�”}”(hjÝXh]”hŒAMD_PLANE_BLEND_LUT”…”�”}”(hjßXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KyhjÛXubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_BLEND_LUT_SIZE”h]”hì)�”}”(hjõXh]”hŒAMD_PLANE_BLEND_LUT_SIZE”…”�”}”(hj÷Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KzhjóXubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubhç)�”}”(hŒAMD_PLANE_BLEND_TF ”h]”hì)�”}”(hŒAMD_PLANE_BLEND_TF”h]”hŒAMD_PLANE_BLEND_TF”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´K{hj Yubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjèWubeh}”(h]”h ]”h"]”h$]”h&]”jU-jV-uh1háh³jüWh´Kohj¥Wubhì)�”}”(hŒEThe AMD private color management property on a :c:type:`drm_crtc` is:”h]”(hŒ/The AMD private color management property on a ”…”�”}”(hj*Yh²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_crtc`”h]”jï)�”}”(hj4Yh]”hŒdrm_crtc”…”�”}”(hj6Yh²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj2Yubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œdrm_crtc”uh1hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´K}hj*YubhŒ is:”…”�”}”(hj*Yh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jQYh´K}hj¥Wubhâ)�”}”(hhh]”hç)�”}”(hŒAMD_CRTC_REGAMMA_TF ”h]”hì)�”}”(hŒAMD_CRTC_REGAMMA_TF”h]”hŒAMD_CRTC_REGAMMA_TF”…”�”}”(hjcYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Khj_Yubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj\Yubah}”(h]”h ]”h"]”h$]”h&]”jU-jV-uh1háh³jqYh´Khj¥Wubhì)�”}”(hŒ'Use of these properties is discouraged.”h]”hŒ'Use of these properties is discouraged.”…”�”}”(hj~Yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´K�hj¥Wubeh}”(h]”jÆah ]”h"]”Œ)amd private color management on drm_plane”ah$]”h&]”uh1hµhj9Uh²hh³Nh´Nubh¶)�”}”(hhh]”(h»)�”}”(hŒAMD plane color pipeline”h]”hŒAMD plane color pipeline”…”�”}”(hj—Yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjâuh1hºhj”Yh³Nh´Nubhì)�”}”(hŒ„The AMD :c:type:`drm_plane` color pipeline is advertised for DCN generations 3.0 and newer. It exposes these elements in this order:”h]”(hŒThe AMD ”…”�”}”(hj¥Yh²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_plane`”h]”jï)�”}”(hj¯Yh]”hŒ drm_plane”…”�”}”(hj±Yh²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj­Yubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ drm_plane”uh1hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´K†hj¥YubhŒi color pipeline is advertised for DCN generations 3.0 and newer. It exposes these elements in this order:”…”�”}”(hj¥Yh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÌYh´K†hj”YubhŒenumerated_list”“”)�”}”(hhh]”(hç)�”}”(hŒ1D curve colorop”h]”hì)�”}”(hjÞYh]”hŒ1D curve colorop”…”�”}”(hjàYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´K‰hjÜYubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjÙYubhç)�”}”(hŒ Multiplier”h]”hì)�”}”(hjöYh]”hŒ Multiplier”…”�”}”(hjøYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KŠhjôYubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjÙYubhç)�”}”(hŒ3x4 CTM”h]”hì)�”}”(hjZh]”hŒ3x4 CTM”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´K‹hj Zubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjÙYubhç)�”}”(hŒ1D curve colorop”h]”hì)�”}”(hj&Zh]”hŒ1D curve colorop”…”�”}”(hj(Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´KŒhj$Zubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjÙYubhç)�”}”(hŒ1D LUT”h]”hì)�”}”(hj>Zh]”hŒ1D LUT”…”�”}”(hj@Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:50: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´K�hj)�”}”(hŒconst”h]”hŒconst”…”�”}”(hj;\h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj7\h²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M¥ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJ\h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj7\h²hh³jI\h´M¥ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjX\h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj7\h²hh³jI\h´M¥ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hje\h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj7\h²hh³jI\h´M¥ubh)�”}”(hhh]”jg)�”}”(hŒ drm_color_lut”h]”hŒ drm_color_lut”…”�”}”(hjv\h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjs\ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jx\Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+Œ__extract_blob_lut”sbŒc.__extract_blob_lut”†”asbuh1hhj7\h²hh³jI\h´M¥ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—\h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj7\h²hh³jI\h´M¥ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj¥\h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj7\h²hh³jI\h´M¥ubja)�”}”(hŒ__extract_blob_lut”h]”jg)�”}”(hj”\h]”hŒ__extract_blob_lut”…”�”}”(hj¶\h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj²\ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj7\h²hh³jI\h´M¥ubjE+)�”}”(hŒ6(const struct drm_property_blob *blob, uint32_t *size)”h]”(jK+)�”}”(hŒ$const struct drm_property_blob *blob”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hjÑ\h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÍ\ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞ\h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÍ\ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjì\h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÍ\ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù\h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÍ\ubh)�”}”(hhh]”jg)�”}”(hŒdrm_property_blob”h]”hŒdrm_property_blob”…”�”}”(hj ]h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j ]Œmodname”NŒ classname”Nj'j*)�”}”j-]”j’\Œc.__extract_blob_lut”†”asbuh1hhjÍ\ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(]h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÍ\ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj6]h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjÍ\ubjg)�”}”(hŒblob”h]”hŒblob”…”�”}”(hjC]h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÍ\ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjÉ\ubjK+)�”}”(hŒuint32_t *size”h]”(h)�”}”(hhh]”jg)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hj_]h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj\]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”ja]Œmodname”NŒ classname”Nj'j*)�”}”j-]”j’\Œc.__extract_blob_lut”†”asbuh1hhjX]ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}]h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjX]ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj‹]h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjX]ubjg)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj˜]h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjX]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjÉ\ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj7\h²hh³jI\h´M¥ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj3\h²hh³jI\h´M¥ubah}”(h]”j.\ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jI\h´M¥hj0\h²hubj•)�”}”(hhh]”hì)�”}”(hŒ.Extracts the DRM lut and lut size from a blob.”h]”hŒ.Extracts the DRM lut and lut size from a blob.”…”�”}”(hjÂ]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M¥hj¿]h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj0\h²hh³jI\h´M¥ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jÚ]j·jÚ]j¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hŒ“**Parameters** ``const struct drm_property_blob *blob`` DRM color mgmt property blob ``uint32_t *size`` lut size **Return** DRM LUT or NULL”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjä]h]”hŒ Parameters”…”�”}”(hjæ]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjâ]ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M©hjÞ]ubj)�”}”(hhh]”(j )�”}”(hŒF``const struct drm_property_blob *blob`` DRM color mgmt property blob ”h]”(j)�”}”(hŒ(``const struct drm_property_blob *blob``”h]”jï)�”}”(hj^h]”hŒ$const struct drm_property_blob *blob”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M¦hjý]ubj-)�”}”(hhh]”hì)�”}”(hŒDRM color mgmt property blob”h]”hŒDRM color mgmt property blob”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j^h´M¦hj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjý]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j^h´M¦hjú]ubj )�”}”(hŒ``uint32_t *size`` lut size ”h]”(j)�”}”(hŒ``uint32_t *size``”h]”jï)�”}”(hj<^h]”hŒuint32_t *size”…”�”}”(hj>^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj:^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M§hj6^ubj-)�”}”(hhh]”hì)�”}”(hŒlut size”h]”hŒlut size”…”�”}”(hjU^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jQ^h´M§hjR^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj6^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQ^h´M§hjú]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÞ]ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjw^h]”hŒReturn”…”�”}”(hjy^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhju^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M©hjÞ]ubhì)�”}”(hŒDRM LUT or NULL”h]”hŒDRM LUT or NULL”…”�”}”(hj�^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M©hjÞ]ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ!__extract_blob_lut32 (C function)”Œc.__extract_blob_lut32”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒjconst struct drm_color_lut32 * __extract_blob_lut32 (const struct drm_property_blob *blob, uint32_t *size)”h]”j8)�”}”(hŒhconst struct drm_color_lut32 *__extract_blob_lut32(const struct drm_property_blob *blob, uint32_t *size)”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj¼^h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¸^h²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M¶ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ^h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¸^h²hh³jÉ^h´M¶ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjØ^h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¸^h²hh³jÉ^h´M¶ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjå^h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¸^h²hh³jÉ^h´M¶ubh)�”}”(hhh]”jg)�”}”(hŒdrm_color_lut32”h]”hŒdrm_color_lut32”…”�”}”(hjö^h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjó^ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jø^Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+Œ__extract_blob_lut32”sbŒc.__extract_blob_lut32”†”asbuh1hhj¸^h²hh³jÉ^h´M¶ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¸^h²hh³jÉ^h´M¶ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj%_h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj¸^h²hh³jÉ^h´M¶ubja)�”}”(hŒ__extract_blob_lut32”h]”jg)�”}”(hj_h]”hŒ__extract_blob_lut32”…”�”}”(hj6_h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj2_ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj¸^h²hh³jÉ^h´M¶ubjE+)�”}”(hŒ6(const struct drm_property_blob *blob, uint32_t *size)”h]”(jK+)�”}”(hŒ$const struct drm_property_blob *blob”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hjQ_h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjM_ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^_h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjM_ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjl_h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjM_ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjy_h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjM_ubh)�”}”(hhh]”jg)�”}”(hŒdrm_property_blob”h]”hŒdrm_property_blob”…”�”}”(hjŠ_h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj‡_ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jŒ_Œmodname”NŒ classname”Nj'j*)�”}”j-]”j_Œc.__extract_blob_lut32”†”asbuh1hhjM_ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨_h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjM_ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj¶_h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjM_ubjg)�”}”(hŒblob”h]”hŒblob”…”�”}”(hjÃ_h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjM_ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjI_ubjK+)�”}”(hŒuint32_t *size”h]”(h)�”}”(hhh]”jg)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjß_h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÜ_ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”já_Œmodname”NŒ classname”Nj'j*)�”}”j-]”j_Œc.__extract_blob_lut32”†”asbuh1hhjØ_ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý_h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjØ_ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj `h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjØ_ubjg)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjØ_ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjI_ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj¸^h²hh³jÉ^h´M¶ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj´^h²hh³jÉ^h´M¶ubah}”(h]”j¯^ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jÉ^h´M¶hj±^h²hubj•)�”}”(hhh]”hì)�”}”(hŒ.Extracts the DRM lut and lut size from a blob.”h]”hŒ.Extracts the DRM lut and lut size from a blob.”…”�”}”(hjB`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M¶hj?`h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj±^h²hh³jÉ^h´M¶ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jZ`j·jZ`j¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hŒ“**Parameters** ``const struct drm_property_blob *blob`` DRM color mgmt property blob ``uint32_t *size`` lut size **Return** DRM LUT or NULL”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjd`h]”hŒ Parameters”…”�”}”(hjf`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjb`ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mºhj^`ubj)�”}”(hhh]”(j )�”}”(hŒF``const struct drm_property_blob *blob`` DRM color mgmt property blob ”h]”(j)�”}”(hŒ(``const struct drm_property_blob *blob``”h]”jï)�”}”(hjƒ`h]”hŒ$const struct drm_property_blob *blob”…”�”}”(hj…`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M·hj}`ubj-)�”}”(hhh]”hì)�”}”(hŒDRM color mgmt property blob”h]”hŒDRM color mgmt property blob”…”�”}”(hjœ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j˜`h´M·hj™`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj}`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j˜`h´M·hjz`ubj )�”}”(hŒ``uint32_t *size`` lut size ”h]”(j)�”}”(hŒ``uint32_t *size``”h]”jï)�”}”(hj¼`h]”hŒuint32_t *size”…”�”}”(hj¾`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjº`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M¸hj¶`ubj-)�”}”(hhh]”hì)�”}”(hŒlut size”h]”hŒlut size”…”�”}”(hjÕ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÑ`h´M¸hjÒ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj¶`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÑ`h´M¸hjz`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj^`ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hj÷`h]”hŒReturn”…”�”}”(hjù`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjõ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mºhj^`ubhì)�”}”(hŒDRM LUT or NULL”h]”hŒDRM LUT or NULL”…”�”}”(hj ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mºhj^`ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ__is_lut_linear (C function)”Œc.__is_lut_linear”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒEbool __is_lut_linear (const struct drm_color_lut *lut, uint32_t size)”h]”j8)�”}”(hŒDbool __is_lut_linear(const struct drm_color_lut *lut, uint32_t size)”h]”(j +)�”}”(hŒbool”h]”hŒbool”…”�”}”(hj)�”}”(hj=\h]”hŒconst”…”�”}”(hjyah²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjuaubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†ah²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjuaubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hj”ah²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjuaubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡ah²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjuaubh)�”}”(hhh]”jg)�”}”(hŒ drm_color_lut”h]”hŒ drm_color_lut”…”�”}”(hj²ah²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¯aubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j´aŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j_asbŒc.__is_lut_linear”†”asbuh1hhjuaubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒah²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjuaubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjàah²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjuaubjg)�”}”(hŒlut”h]”hŒlut”…”�”}”(hjíah²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjuaubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjqaubjK+)�”}”(hŒ uint32_t size”h]”(h)�”}”(hhh]”jg)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hj bh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjbubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j bŒmodname”NŒ classname”Nj'j*)�”}”j-]”jÎaŒc.__is_lut_linear”†”asbuh1hhjbubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'bh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjbubjg)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj5bh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjbubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjqaubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj8ah²hh³jJah´MÇubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj4ah²hh³jJah´MÇubah}”(h]”j/aah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jJah´MÇhj1ah²hubj•)�”}”(hhh]”hì)�”}”(hŒ4check if the given lut is a linear mapping of values”h]”hŒ4check if the given lut is a linear mapping of values”…”�”}”(hj_bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÇhj\bh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj1ah²hh³jJah´MÇubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jwbj·jwbj¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hXx**Parameters** ``const struct drm_color_lut *lut`` given lut to check values ``uint32_t size`` lut size **Description** It is considered linear if the lut represents: f(a) = (0xFF00/MAX_COLOR_LUT_ENTRIES-1)a; for integer a in [0, MAX_COLOR_LUT_ENTRIES) **Return** True if the given lut is a linear mapping of values, i.e. it acts like a bypass LUT. Otherwise, false.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj�bh]”hŒ Parameters”…”�”}”(hjƒbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MËhj{bubj)�”}”(hhh]”(j )�”}”(hŒ>``const struct drm_color_lut *lut`` given lut to check values ”h]”(j)�”}”(hŒ#``const struct drm_color_lut *lut``”h]”jï)�”}”(hj bh]”hŒconst struct drm_color_lut *lut”…”�”}”(hj¢bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjžbubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÈhjšbubj-)�”}”(hhh]”hì)�”}”(hŒgiven lut to check values”h]”hŒgiven lut to check values”…”�”}”(hj¹bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jµbh´MÈhj¶bubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjšbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jµbh´MÈhj—bubj )�”}”(hŒ``uint32_t size`` lut size ”h]”(j)�”}”(hŒ``uint32_t size``”h]”jï)�”}”(hjÙbh]”hŒ uint32_t size”…”�”}”(hjÛbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj×bubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÉhjÓbubj-)�”}”(hhh]”hì)�”}”(hŒlut size”h]”hŒlut size”…”�”}”(hjòbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jîbh´MÉhjïbubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÓbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jîbh´MÉhj—bubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj{bubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjch]”hŒ Description”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MËhj{bubhì)�”}”(hŒ„It is considered linear if the lut represents: f(a) = (0xFF00/MAX_COLOR_LUT_ENTRIES-1)a; for integer a in [0, MAX_COLOR_LUT_ENTRIES)”h]”hŒ„It is considered linear if the lut represents: f(a) = (0xFF00/MAX_COLOR_LUT_ENTRIES-1)a; for integer a in [0, MAX_COLOR_LUT_ENTRIES)”…”�”}”(hj*ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÊhj{bubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hj;ch]”hŒReturn”…”�”}”(hj=ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj9cubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÎhj{bubhì)�”}”(hŒfTrue if the given lut is a linear mapping of values, i.e. it acts like a bypass LUT. Otherwise, false.”h]”hŒfTrue if the given lut is a linear mapping of values, i.e. it acts like a bypass LUT. Otherwise, false.”…”�”}”(hjQch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÏhj{bubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ"__drm_lut_to_dc_gamma (C function)”Œc.__drm_lut_to_dc_gamma”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdvoid __drm_lut_to_dc_gamma (const struct drm_color_lut *lut, struct dc_gamma *gamma, bool is_legacy)”h]”j8)�”}”(hŒcvoid __drm_lut_to_dc_gamma(const struct drm_color_lut *lut, struct dc_gamma *gamma, bool is_legacy)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj€ch²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj|ch²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MñubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�ch²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj|ch²hh³jŽch´Mñubja)�”}”(hŒ__drm_lut_to_dc_gamma”h]”jg)�”}”(hŒ__drm_lut_to_dc_gamma”h]”hŒ__drm_lut_to_dc_gamma”…”�”}”(hj¡ch²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj�cubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj|ch²hh³jŽch´MñubjE+)�”}”(hŒI(const struct drm_color_lut *lut, struct dc_gamma *gamma, bool is_legacy)”h]”(jK+)�”}”(hŒconst struct drm_color_lut *lut”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj½ch²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¹cubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊch²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¹cubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjØch²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¹cubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåch²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¹cubh)�”}”(hhh]”jg)�”}”(hŒ drm_color_lut”h]”hŒ drm_color_lut”…”�”}”(hjöch²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjócubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jøcŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j£csbŒc.__drm_lut_to_dc_gamma”†”asbuh1hhj¹cubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¹cubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj$dh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj¹cubjg)�”}”(hŒlut”h]”hŒlut”…”�”}”(hj1dh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¹cubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjµcubjK+)�”}”(hŒstruct dc_gamma *gamma”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjJdh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjFdubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWdh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjFdubh)�”}”(hhh]”jg)�”}”(hŒdc_gamma”h]”hŒdc_gamma”…”�”}”(hjhdh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjedubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jjdŒmodname”NŒ classname”Nj'j*)�”}”j-]”jdŒc.__drm_lut_to_dc_gamma”†”asbuh1hhjFdubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†dh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjFdubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj”dh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjFdubjg)�”}”(hŒgamma”h]”hŒgamma”…”�”}”(hj¡dh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjFdubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjµcubjK+)�”}”(hŒbool is_legacy”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hjºdh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj¶dubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇdh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¶dubjg)�”}”(hŒ is_legacy”h]”hŒ is_legacy”…”�”}”(hjÕdh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¶dubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjµcubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj|ch²hh³jŽch´Mñubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjxch²hh³jŽch´Mñubah}”(h]”jscah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jŽch´Mñhjuch²hubj•)�”}”(hhh]”hì)�”}”(hŒ&convert the drm_color_lut to dc_gamma.”h]”hŒ&convert the drm_color_lut to dc_gamma.”…”�”}”(hjÿdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mñhjüdh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjuch²hh³jŽch´Mñubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jej·jej¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hX**Parameters** ``const struct drm_color_lut *lut`` DRM lookup table for color conversion ``struct dc_gamma *gamma`` DC gamma to set entries ``bool is_legacy`` legacy or atomic gamma **Description** The conversion depends on the size of the lut - whether or not it's legacy.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj!eh]”hŒ Parameters”…”�”}”(hj#eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mõhjeubj)�”}”(hhh]”(j )�”}”(hŒJ``const struct drm_color_lut *lut`` DRM lookup table for color conversion ”h]”(j)�”}”(hŒ#``const struct drm_color_lut *lut``”h]”jï)�”}”(hj@eh]”hŒconst struct drm_color_lut *lut”…”�”}”(hjBeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj>eubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mòhj:eubj-)�”}”(hhh]”hì)�”}”(hŒ%DRM lookup table for color conversion”h]”hŒ%DRM lookup table for color conversion”…”�”}”(hjYeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jUeh´MòhjVeubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj:eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jUeh´Mòhj7eubj )�”}”(hŒ3``struct dc_gamma *gamma`` DC gamma to set entries ”h]”(j)�”}”(hŒ``struct dc_gamma *gamma``”h]”jï)�”}”(hjyeh]”hŒstruct dc_gamma *gamma”…”�”}”(hj{eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjweubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Móhjseubj-)�”}”(hhh]”hì)�”}”(hŒDC gamma to set entries”h]”hŒDC gamma to set entries”…”�”}”(hj’eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jŽeh´Móhj�eubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjseubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŽeh´Móhj7eubj )�”}”(hŒ*``bool is_legacy`` legacy or atomic gamma ”h]”(j)�”}”(hŒ``bool is_legacy``”h]”jï)�”}”(hj²eh]”hŒbool is_legacy”…”�”}”(hj´eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj°eubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Môhj¬eubj-)�”}”(hhh]”hì)�”}”(hŒlegacy or atomic gamma”h]”hŒlegacy or atomic gamma”…”�”}”(hjËeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÇeh´MôhjÈeubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj¬eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÇeh´Môhj7eubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjeubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjíeh]”hŒ Description”…”�”}”(hjïeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjëeubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Möhjeubhì)�”}”(hŒKThe conversion depends on the size of the lut - whether or not it's legacy.”h]”hŒMThe conversion depends on the size of the lut - whether or not it’s legacy.”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mõhjeubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ$__drm_lut32_to_dc_gamma (C function)”Œc.__drm_lut32_to_dc_gamma”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒXvoid __drm_lut32_to_dc_gamma (const struct drm_color_lut32 *lut, struct dc_gamma *gamma)”h]”j8)�”}”(hŒWvoid __drm_lut32_to_dc_gamma(const struct drm_color_lut32 *lut, struct dc_gamma *gamma)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj2fh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj.fh²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAfh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj.fh²hh³j@fh´Mubja)�”}”(hŒ__drm_lut32_to_dc_gamma”h]”jg)�”}”(hŒ__drm_lut32_to_dc_gamma”h]”hŒ__drm_lut32_to_dc_gamma”…”�”}”(hjSfh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjOfubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj.fh²hh³j@fh´MubjE+)�”}”(hŒ;(const struct drm_color_lut32 *lut, struct dc_gamma *gamma)”h]”(jK+)�”}”(hŒ!const struct drm_color_lut32 *lut”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hjofh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjkfubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|fh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjkfubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjŠfh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjkfubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—fh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjkfubh)�”}”(hhh]”jg)�”}”(hŒdrm_color_lut32”h]”hŒdrm_color_lut32”…”�”}”(hj¨fh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¥fubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jªfŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jUfsbŒc.__drm_lut32_to_dc_gamma”†”asbuh1hhjkfubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈfh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjkfubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjÖfh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjkfubjg)�”}”(hŒlut”h]”hŒlut”…”�”}”(hjãfh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjkfubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjgfubjK+)�”}”(hŒstruct dc_gamma *gamma”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjüfh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjøfubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj gh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjøfubh)�”}”(hhh]”jg)�”}”(hŒdc_gamma”h]”hŒdc_gamma”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jgŒmodname”NŒ classname”Nj'j*)�”}”j-]”jÄfŒc.__drm_lut32_to_dc_gamma”†”asbuh1hhjøfubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8gh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjøfubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjFgh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjøfubjg)�”}”(hŒgamma”h]”hŒgamma”…”�”}”(hjSgh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjøfubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjgfubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj.fh²hh³j@fh´Mubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj*fh²hh³j@fh´Mubah}”(h]”j%fah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j@fh´Mhj'fh²hubj•)�”}”(hhh]”hì)�”}”(hŒ&convert the drm_color_lut to dc_gamma.”h]”hŒ&convert the drm_color_lut to dc_gamma.”…”�”}”(hj}gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhjzgh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj'fh²hh³j@fh´Mubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j•gj·j•gj¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hŒñ**Parameters** ``const struct drm_color_lut32 *lut`` DRM lookup table for color conversion ``struct dc_gamma *gamma`` DC gamma to set entries **Description** The conversion depends on the size of the lut - whether or not it's legacy.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjŸgh]”hŒ Parameters”…”�”}”(hj¡gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj�gubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhj™gubj)�”}”(hhh]”(j )�”}”(hŒL``const struct drm_color_lut32 *lut`` DRM lookup table for color conversion ”h]”(j)�”}”(hŒ%``const struct drm_color_lut32 *lut``”h]”jï)�”}”(hj¾gh]”hŒ!const struct drm_color_lut32 *lut”…”�”}”(hjÀgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¼gubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhj¸gubj-)�”}”(hhh]”hì)�”}”(hŒ%DRM lookup table for color conversion”h]”hŒ%DRM lookup table for color conversion”…”�”}”(hj×gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÓgh´MhjÔgubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj¸gubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÓgh´Mhjµgubj )�”}”(hŒ3``struct dc_gamma *gamma`` DC gamma to set entries ”h]”(j)�”}”(hŒ``struct dc_gamma *gamma``”h]”jï)�”}”(hj÷gh]”hŒstruct dc_gamma *gamma”…”�”}”(hjùgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjõgubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhjñgubj-)�”}”(hhh]”hì)�”}”(hŒDC gamma to set entries”h]”hŒDC gamma to set entries”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j hh´Mhj hubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjñgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j hh´Mhjµgubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj™gubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj2hh]”hŒ Description”…”�”}”(hj4hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj0hubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhj™gubhì)�”}”(hŒKThe conversion depends on the size of the lut - whether or not it's legacy.”h]”hŒMThe conversion depends on the size of the lut - whether or not it’s legacy.”…”�”}”(hjHhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhj™gubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ#__drm_ctm_to_dc_matrix (C function)”Œc.__drm_ctm_to_dc_matrix”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒXvoid __drm_ctm_to_dc_matrix (const struct drm_color_ctm *ctm, struct fixed31_32 *matrix)”h]”j8)�”}”(hŒWvoid __drm_ctm_to_dc_matrix(const struct drm_color_ctm *ctm, struct fixed31_32 *matrix)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjwhh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjshh²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M.ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†hh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjshh²hh³j…hh´M.ubja)�”}”(hŒ__drm_ctm_to_dc_matrix”h]”jg)�”}”(hŒ__drm_ctm_to_dc_matrix”h]”hŒ__drm_ctm_to_dc_matrix”…”�”}”(hj˜hh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj”hubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjshh²hh³j…hh´M.ubjE+)�”}”(hŒ<(const struct drm_color_ctm *ctm, struct fixed31_32 *matrix)”h]”(jK+)�”}”(hŒconst struct drm_color_ctm *ctm”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj´hh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj°hubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁhh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj°hubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjÏhh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj°hubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜhh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj°hubh)�”}”(hhh]”jg)�”}”(hŒ drm_color_ctm”h]”hŒ drm_color_ctm”…”�”}”(hjíhh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjêhubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jïhŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jšhsbŒc.__drm_ctm_to_dc_matrix”†”asbuh1hhj°hubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ih²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj°hubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj°hubjg)�”}”(hŒctm”h]”hŒctm”…”�”}”(hj(ih²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj°hubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj¬hubjK+)�”}”(hŒstruct fixed31_32 *matrix”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjAih²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj=iubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNih²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj=iubh)�”}”(hhh]”jg)�”}”(hŒ fixed31_32”h]”hŒ fixed31_32”…”�”}”(hj_ih²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj\iubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jaiŒmodname”NŒ classname”Nj'j*)�”}”j-]”j iŒc.__drm_ctm_to_dc_matrix”†”asbuh1hhj=iubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}ih²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj=iubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj‹ih²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj=iubjg)�”}”(hŒmatrix”h]”hŒmatrix”…”�”}”(hj˜ih²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj=iubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj¬hubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjshh²hh³j…hh´M.ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjohh²hh³j…hh´M.ubah}”(h]”jjhah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j…hh´M.hjlhh²hubj•)�”}”(hhh]”hì)�”}”(hŒ+converts a DRM CTM to a DC CSC float matrix”h]”hŒ+converts a DRM CTM to a DC CSC float matrix”…”�”}”(hjÂih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M.hj¿ih²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjlhh²hh³j…hh´M.ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jÚij·jÚij¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hŒÌ**Parameters** ``const struct drm_color_ctm *ctm`` DRM color transformation matrix ``struct fixed31_32 *matrix`` DC CSC float matrix **Description** The matrix needs to be a 3x4 (12 entry) matrix.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjäih]”hŒ Parameters”…”�”}”(hjæih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjâiubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M2hjÞiubj)�”}”(hhh]”(j )�”}”(hŒD``const struct drm_color_ctm *ctm`` DRM color transformation matrix ”h]”(j)�”}”(hŒ#``const struct drm_color_ctm *ctm``”h]”jï)�”}”(hjjh]”hŒconst struct drm_color_ctm *ctm”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M/hjýiubj-)�”}”(hhh]”hì)�”}”(hŒDRM color transformation matrix”h]”hŒDRM color transformation matrix”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jjh´M/hjjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjýiubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jjh´M/hjúiubj )�”}”(hŒ2``struct fixed31_32 *matrix`` DC CSC float matrix ”h]”(j)�”}”(hŒ``struct fixed31_32 *matrix``”h]”jï)�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj:jubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M0hj6jubj-)�”}”(hhh]”hì)�”}”(hŒDC CSC float matrix”h]”hŒDC CSC float matrix”…”�”}”(hjUjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jQjh´M0hjRjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj6jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQjh´M0hjúiubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÞiubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjwjh]”hŒ Description”…”�”}”(hjyjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjujubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M2hjÞiubhì)�”}”(hŒ/The matrix needs to be a 3x4 (12 entry) matrix.”h]”hŒ/The matrix needs to be a 3x4 (12 entry) matrix.”…”�”}”(hj�jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M1hjÞiubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ'__drm_ctm_3x4_to_dc_matrix (C function)”Œc.__drm_ctm_3x4_to_dc_matrix”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ`void __drm_ctm_3x4_to_dc_matrix (const struct drm_color_ctm_3x4 *ctm, struct fixed31_32 *matrix)”h]”j8)�”}”(hŒ_void __drm_ctm_3x4_to_dc_matrix(const struct drm_color_ctm_3x4 *ctm, struct fixed31_32 *matrix)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¼jh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj¸jh²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MPubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËjh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¸jh²hh³jÊjh´MPubja)�”}”(hŒ__drm_ctm_3x4_to_dc_matrix”h]”jg)�”}”(hŒ__drm_ctm_3x4_to_dc_matrix”h]”hŒ__drm_ctm_3x4_to_dc_matrix”…”�”}”(hjÝjh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÙjubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj¸jh²hh³jÊjh´MPubjE+)�”}”(hŒ@(const struct drm_color_ctm_3x4 *ctm, struct fixed31_32 *matrix)”h]”(jK+)�”}”(hŒ#const struct drm_color_ctm_3x4 *ctm”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hjùjh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjõjubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjõjubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjõjubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!kh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjõjubh)�”}”(hhh]”jg)�”}”(hŒdrm_color_ctm_3x4”h]”hŒdrm_color_ctm_3x4”…”�”}”(hj2kh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj/kubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j4kŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jßjsbŒc.__drm_ctm_3x4_to_dc_matrix”†”asbuh1hhjõjubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRkh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjõjubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj`kh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjõjubjg)�”}”(hŒctm”h]”hŒctm”…”�”}”(hjmkh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjõjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjñjubjK+)�”}”(hŒstruct fixed31_32 *matrix”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj†kh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj‚kubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“kh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj‚kubh)�”}”(hhh]”jg)�”}”(hŒ fixed31_32”h]”hŒ fixed31_32”…”�”}”(hj¤kh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¡kubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j¦kŒmodname”NŒ classname”Nj'j*)�”}”j-]”jNkŒc.__drm_ctm_3x4_to_dc_matrix”†”asbuh1hhj‚kubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂkh²hh³Nh´Nuba•h}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj‚kubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjÐkh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj‚kubjg)�”}”(hŒmatrix”h]”hŒmatrix”…”�”}”(hjÝkh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj‚kubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjñjubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj¸jh²hh³jÊjh´MPubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj´jh²hh³jÊjh´MPubah}”(h]”j¯jah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jÊjh´MPhj±jh²hubj•)�”}”(hhh]”hì)�”}”(hŒ/converts a DRM CTM 3x4 to a DC CSC float matrix”h]”hŒ/converts a DRM CTM 3x4 to a DC CSC float matrix”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MPhjlh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj±jh²hh³jÊjh´MPubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jlj·jlj¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hŒä**Parameters** ``const struct drm_color_ctm_3x4 *ctm`` DRM color transformation matrix with 3x4 dimensions ``struct fixed31_32 *matrix`` DC CSC float matrix **Description** The matrix needs to be a 3x4 (12 entry) matrix.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj)lh]”hŒ Parameters”…”�”}”(hj+lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj'lubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MThj#lubj)�”}”(hhh]”(j )�”}”(hŒ\``const struct drm_color_ctm_3x4 *ctm`` DRM color transformation matrix with 3x4 dimensions ”h]”(j)�”}”(hŒ'``const struct drm_color_ctm_3x4 *ctm``”h]”jï)�”}”(hjHlh]”hŒ#const struct drm_color_ctm_3x4 *ctm”…”�”}”(hjJlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjFlubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MQhjBlubj-)�”}”(hhh]”hì)�”}”(hŒ3DRM color transformation matrix with 3x4 dimensions”h]”hŒ3DRM color transformation matrix with 3x4 dimensions”…”�”}”(hjalh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j]lh´MQhj^lubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjBlubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j]lh´MQhj?lubj )�”}”(hŒ2``struct fixed31_32 *matrix`` DC CSC float matrix ”h]”(j)�”}”(hŒ``struct fixed31_32 *matrix``”h]”jï)�”}”(hj�lh]”hŒstruct fixed31_32 *matrix”…”�”}”(hjƒlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MRhj{lubj-)�”}”(hhh]”hì)�”}”(hŒDC CSC float matrix”h]”hŒDC CSC float matrix”…”�”}”(hjšlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j–lh´MRhj—lubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj{lubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j–lh´MRhj?lubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj#lubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj¼lh]”hŒ Description”…”�”}”(hj¾lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjºlubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MThj#lubhì)�”}”(hŒ/The matrix needs to be a 3x4 (12 entry) matrix.”h]”hŒ/The matrix needs to be a 3x4 (12 entry) matrix.”…”�”}”(hjÒlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MShj#lubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ__set_legacy_tf (C function)”Œc.__set_legacy_tf”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒuint __set_legacy_tf (struct dc_transfer_func *func, const struct drm_color_lut *lut, uint32_t lut_size, bool has_rom)”h]”j8)�”}”(hŒtint __set_legacy_tf(struct dc_transfer_func *func, const struct drm_color_lut *lut, uint32_t lut_size, bool has_rom)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjýlh²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MhubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjýlh²hh³jmh´Mhubja)�”}”(hŒ__set_legacy_tf”h]”jg)�”}”(hŒ__set_legacy_tf”h]”hŒ__set_legacy_tf”…”�”}”(hj"mh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjmubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjýlh²hh³jmh´MhubjE+)�”}”(hŒa(struct dc_transfer_func *func, const struct drm_color_lut *lut, uint32_t lut_size, bool has_rom)”h]”(jK+)�”}”(hŒstruct dc_transfer_func *func”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj>mh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj:mubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKmh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj:mubh)�”}”(hhh]”jg)�”}”(hŒdc_transfer_func”h]”hŒdc_transfer_func”…”�”}”(hj\mh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjYmubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j^mŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j$msbŒc.__set_legacy_tf”†”asbuh1hhj:mubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|mh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj:mubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjŠmh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj:mubjg)�”}”(hŒfunc”h]”hŒfunc”…”�”}”(hj—mh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj:mubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj6mubjK+)�”}”(hŒconst struct drm_color_lut *lut”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj°mh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¬mubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½mh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¬mubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjËmh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¬mubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØmh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¬mubh)�”}”(hhh]”jg)�”}”(hŒ drm_color_lut”h]”hŒ drm_color_lut”…”�”}”(hjémh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjæmubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jëmŒmodname”NŒ classname”Nj'j*)�”}”j-]”jxmŒc.__set_legacy_tf”†”asbuh1hhj¬mubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¬mubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj¬mubjg)�”}”(hŒlut”h]”hŒlut”…”�”}”(hj"nh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¬mubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj6mubjK+)�”}”(hŒuint32_t lut_size”h]”(h)�”}”(hhh]”jg)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hj>nh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj;nubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j@nŒmodname”NŒ classname”Nj'j*)�”}”j-]”jxmŒc.__set_legacy_tf”†”asbuh1hhj7nubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\nh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj7nubjg)�”}”(hŒlut_size”h]”hŒlut_size”…”�”}”(hjjnh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj7nubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj6mubjK+)�”}”(hŒ bool has_rom”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hjƒnh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjnubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�nh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjnubjg)�”}”(hŒhas_rom”h]”hŒhas_rom”…”�”}”(hjžnh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjnubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj6mubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjýlh²hh³jmh´Mhubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjùlh²hh³jmh´Mhubah}”(h]”jôlah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jmh´Mhhjölh²hubj•)�”}”(hhh]”hì)�”}”(hŒ'Calculates the legacy transfer function”h]”hŒ'Calculates the legacy transfer function”…”�”}”(hjÈnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MhhjÅnh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjölh²hh³jmh´Mhubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jànj·jànj¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hXa**Parameters** ``struct dc_transfer_func *func`` transfer function ``const struct drm_color_lut *lut`` lookup table that defines the color space ``uint32_t lut_size`` size of respective lut ``bool has_rom`` if ROM can be used for hardcoded curve **Description** Only for sRGB input space **Return** 0 in case of success, -ENOMEM if fails”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjênh]”hŒ Parameters”…”�”}”(hjình²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjènubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mlhjänubj)�”}”(hhh]”(j )�”}”(hŒ4``struct dc_transfer_func *func`` transfer function ”h]”(j)�”}”(hŒ!``struct dc_transfer_func *func``”h]”jï)�”}”(hj oh]”hŒstruct dc_transfer_func *func”…”�”}”(hj oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mihjoubj-)�”}”(hhh]”hì)�”}”(hŒtransfer function”h]”hŒtransfer function”…”�”}”(hj"oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³joh´Mihjoubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³joh´Mihjoubj )�”}”(hŒN``const struct drm_color_lut *lut`` lookup table that defines the color space ”h]”(j)�”}”(hŒ#``const struct drm_color_lut *lut``”h]”jï)�”}”(hjBoh]”hŒconst struct drm_color_lut *lut”…”�”}”(hjDoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj@oubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mjhj)�”}”(hjAh]”hŒstruct”…”�”}”(hj˜ph²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj”pubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥ph²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj”pubh)�”}”(hhh]”jg)�”}”(hŒdc_transfer_func”h]”hŒdc_transfer_func”…”�”}”(hj¶ph²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj³pubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j¸pŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j~psbŒc.__set_output_tf”†”asbuh1hhj”pubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖph²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj”pubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjäph²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj”pubjg)�”}”(hŒfunc”h]”hŒfunc”…”�”}”(hjñph²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj”pubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj�pubjK+)�”}”(hŒconst struct drm_color_lut *lut”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj qh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjqubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjqubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hj%qh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjqubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2qh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjqubh)�”}”(hhh]”jg)�”}”(hŒ drm_color_lut”h]”hŒ drm_color_lut”…”�”}”(hjCqh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj@qubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jEqŒmodname”NŒ classname”Nj'j*)�”}”j-]”jÒpŒc.__set_output_tf”†”asbuh1hhjqubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjaqh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjqubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjoqh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjqubjg)�”}”(hŒlut”h]”hŒlut”…”�”}”(hj|qh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj�pubjK+)�”}”(hŒuint32_t lut_size”h]”(h)�”}”(hhh]”jg)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hj˜qh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj•qubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jšqŒmodname”NŒ classname”Nj'j*)�”}”j-]”jÒpŒc.__set_output_tf”†”asbuh1hhj‘qubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶qh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj‘qubjg)�”}”(hŒlut_size”h]”hŒlut_size”…”�”}”(hjÄqh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj‘qubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj�pubjK+)�”}”(hŒ bool has_rom”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hjÝqh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjÙqubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêqh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÙqubjg)�”}”(hŒhas_rom”h]”hŒhas_rom”…”�”}”(hjøqh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÙqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj�pubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjWph²hh³jiph´M’ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjSph²hh³jiph´M’ubah}”(h]”jNpah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jiph´M’hjPph²hubj•)�”}”(hhh]”hì)�”}”(hŒFcalculates the output transfer function based on expected input space.”h]”hŒFcalculates the output transfer function based on expected input space.”…”�”}”(hj"rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M’hjrh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjPph²hh³jiph´M’ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j:rj·j:rj¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hX6**Parameters** ``struct dc_transfer_func *func`` transfer function ``const struct drm_color_lut *lut`` lookup table that defines the color space ``uint32_t lut_size`` size of respective lut ``bool has_rom`` if ROM can be used for hardcoded curve **Return** 0 in case of success. -ENOMEM if fails.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjDrh]”hŒ Parameters”…”�”}”(hjFrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjBrubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M–hj>rubj)�”}”(hhh]”(j )�”}”(hŒ4``struct dc_transfer_func *func`` transfer function ”h]”(j)�”}”(hŒ!``struct dc_transfer_func *func``”h]”jï)�”}”(hjcrh]”hŒstruct dc_transfer_func *func”…”�”}”(hjerh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjarubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M“hj]rubj-)�”}”(hhh]”hì)�”}”(hŒtransfer function”h]”hŒtransfer function”…”�”}”(hj|rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jxrh´M“hjyrubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj]rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jxrh´M“hjZrubj )�”}”(hŒN``const struct drm_color_lut *lut`` lookup table that defines the color space ”h]”(j)�”}”(hŒ#``const struct drm_color_lut *lut``”h]”jï)�”}”(hjœrh]”hŒconst struct drm_color_lut *lut”…”�”}”(hjžrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjšrubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M”hj–rubj-)�”}”(hhh]”hì)�”}”(hŒ)lookup table that defines the color space”h]”hŒ)lookup table that defines the color space”…”�”}”(hjµrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j±rh´M”hj²rubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj–rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j±rh´M”hjZrubj )�”}”(hŒ-``uint32_t lut_size`` size of respective lut ”h]”(j)�”}”(hŒ``uint32_t lut_size``”h]”jï)�”}”(hjÕrh]”hŒuint32_t lut_size”…”�”}”(hj×rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÓrubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M•hjÏrubj-)�”}”(hhh]”hì)�”}”(hŒsize of respective lut”h]”hŒsize of respective lut”…”�”}”(hjîrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jêrh´M•hjërubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÏrubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jêrh´M•hjZrubj )�”}”(hŒ8``bool has_rom`` if ROM can be used for hardcoded curve ”h]”(j)�”}”(hŒ``bool has_rom``”h]”jï)�”}”(hjsh]”hŒ bool has_rom”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj subah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M–hjsubj-)�”}”(hhh]”hì)�”}”(hŒ&if ROM can be used for hardcoded curve”h]”hŒ&if ROM can be used for hardcoded curve”…”�”}”(hj'sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j#sh´M–hj$subah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j#sh´M–hjZrubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj>rubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjIsh]”hŒReturn”…”�”}”(hjKsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjGsubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M˜hj>rubhì)�”}”(hŒ'0 in case of success. -ENOMEM if fails.”h]”hŒ'0 in case of success. -ENOMEM if fails.”…”�”}”(hj_sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M˜hj>rubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ__set_output_tf_32 (C function)”Œc.__set_output_tf_32”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒzint __set_output_tf_32 (struct dc_transfer_func *func, const struct drm_color_lut32 *lut, uint32_t lut_size, bool has_rom)”h]”j8)�”}”(hŒyint __set_output_tf_32(struct dc_transfer_func *func, const struct drm_color_lut32 *lut, uint32_t lut_size, bool has_rom)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hjŽsh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjŠsh²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÎubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�sh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŠsh²hh³jœsh´MÎubja)�”}”(hŒ__set_output_tf_32”h]”jg)�”}”(hŒ__set_output_tf_32”h]”hŒ__set_output_tf_32”…”�”}”(hj¯sh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj«subah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjŠsh²hh³jœsh´MÎubjE+)�”}”(hŒc(struct dc_transfer_func *func, const struct drm_color_lut32 *lut, uint32_t lut_size, bool has_rom)”h]”(jK+)�”}”(hŒstruct dc_transfer_func *func”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjËsh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÇsubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØsh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÇsubh)�”}”(hhh]”jg)�”}”(hŒdc_transfer_func”h]”hŒdc_transfer_func”…”�”}”(hjésh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjæsubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jësŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j±ssbŒc.__set_output_tf_32”†”asbuh1hhjÇsubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj th²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÇsubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjÇsubjg)�”}”(hŒfunc”h]”hŒfunc”…”�”}”(hj$th²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÇsubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjÃsubjK+)�”}”(hŒ!const struct drm_color_lut32 *lut”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj=th²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj9tubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJth²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj9tubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjXth²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj9tubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeth²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj9tubh)�”}”(hhh]”jg)�”}”(hŒdrm_color_lut32”h]”hŒdrm_color_lut32”…”�”}”(hjvth²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjstubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jxtŒmodname”NŒ classname”Nj'j*)�”}”j-]”jtŒc.__set_output_tf_32”†”asbuh1hhj9tubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”th²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj9tubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj¢th²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj9tubjg)�”}”(hŒlut”h]”hŒlut”…”�”}”(hj¯th²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj9tubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjÃsubjK+)�”}”(hŒuint32_t lut_size”h]”(h)�”}”(hhh]”jg)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjËth²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÈtubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jÍtŒmodname”NŒ classname”Nj'j*)�”}”j-]”jtŒc.__set_output_tf_32”†”asbuh1hhjÄtubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéth²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÄtubjg)�”}”(hŒlut_size”h]”hŒlut_size”…”�”}”(hj÷th²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÄtubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjÃsubjK+)�”}”(hŒ bool has_rom”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj uubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj uubjg)�”}”(hŒhas_rom”h]”hŒhas_rom”…”�”}”(hj+uh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj uubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjÃsubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjŠsh²hh³jœsh´MÎubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj†sh²hh³jœsh´MÎubah}”(h]”j�sah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jœsh´MÎhjƒsh²hubj•)�”}”(hhh]”hì)�”}”(hŒFcalculates the output transfer function based on expected input space.”h]”hŒFcalculates the output transfer function based on expected input space.”…”�”}”(hjUuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÎhjRuh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjƒsh²hh³jœsh´MÎubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jmuj·jmuj¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hX8**Parameters** ``struct dc_transfer_func *func`` transfer function ``const struct drm_color_lut32 *lut`` lookup table that defines the color space ``uint32_t lut_size`` size of respective lut ``bool has_rom`` if ROM can be used for hardcoded curve **Return** 0 in case of success. -ENOMEM if fails.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjwuh]”hŒ Parameters”…”�”}”(hjyuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjuuubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÒhjquubj)�”}”(hhh]”(j )�”}”(hŒ4``struct dc_transfer_func *func`` transfer function ”h]”(j)�”}”(hŒ!``struct dc_transfer_func *func``”h]”jï)�”}”(hj–uh]”hŒstruct dc_transfer_func *func”…”�”}”(hj˜uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj”uubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÏhj�uubj-)�”}”(hhh]”hì)�”}”(hŒtransfer function”h]”hŒtransfer function”…”�”}”(hj¯uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j«uh´MÏhj¬uubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj�uubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j«uh´MÏhj�uubj )�”}”(hŒP``const struct drm_color_lut32 *lut`` lookup table that defines the color space ”h]”(j)�”}”(hŒ%``const struct drm_color_lut32 *lut``”h]”jï)�”}”(hjÏuh]”hŒ!const struct drm_color_lut32 *lut”…”�”}”(hjÑuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÍuubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÐhjÉuubj-)�”}”(hhh]”hì)�”}”(hŒ)lookup table that defines the color space”h]”hŒ)lookup table that defines the color space”…”�”}”(hjèuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jäuh´MÐhjåuubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÉuubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jäuh´MÐhj�uubj )�”}”(hŒ-``uint32_t lut_size`` size of respective lut ”h]”(j)�”}”(hŒ``uint32_t lut_size``”h]”jï)�”}”(hjvh]”hŒuint32_t lut_size”…”�”}”(hj vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÑhjvubj-)�”}”(hhh]”hì)�”}”(hŒsize of respective lut”h]”hŒsize of respective lut”…”�”}”(hj!vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jvh´MÑhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jvh´MÑhj�uubj )�”}”(hŒ8``bool has_rom`` if ROM can be used for hardcoded curve ”h]”(j)�”}”(hŒ``bool has_rom``”h]”jï)�”}”(hjAvh]”hŒ bool has_rom”…”�”}”(hjCvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj?vubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÒhj;vubj-)�”}”(hhh]”hì)�”}”(hŒ&if ROM can be used for hardcoded curve”h]”hŒ&if ROM can be used for hardcoded curve”…”�”}”(hjZvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jVvh´MÒhjWvubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj;vubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jVvh´MÒhj�uubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjquubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hj|vh]”hŒReturn”…”�”}”(hj~vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjzvubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÔhjquubhì)�”}”(hŒ'0 in case of success. -ENOMEM if fails.”h]”hŒ'0 in case of success. -ENOMEM if fails.”…”�”}”(hj’vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÔhjquubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ__set_input_tf (C function)”Œc.__set_input_tf”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ‚int __set_input_tf (struct dc_color_caps *caps, struct dc_transfer_func *func, const struct drm_color_lut *lut, uint32_t lut_size)”h]”j8)�”}”(hŒ�int __set_input_tf(struct dc_color_caps *caps, struct dc_transfer_func *func, const struct drm_color_lut *lut, uint32_t lut_size)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hjÁvh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj½vh²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M9ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐvh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj½vh²hh³jÏvh´M9ubja)�”}”(hŒ__set_input_tf”h]”jg)�”}”(hŒ__set_input_tf”h]”hŒ__set_input_tf”…”�”}”(hjâvh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÞvubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj½vh²hh³jÏvh´M9ubjE+)�”}”(hŒo(struct dc_color_caps *caps, struct dc_transfer_func *func, const struct drm_color_lut *lut, uint32_t lut_size)”h]”(jK+)�”}”(hŒstruct dc_color_caps *caps”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjþvh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjúvubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj wh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjúvubh)�”}”(hhh]”jg)�”}”(hŒ dc_color_caps”h]”hŒ dc_color_caps”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjwubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jwŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jävsbŒc.__set_input_tf”†”asbuh1hhjúvubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)�”}”(hjAh]”hŒstruct”…”�”}”(hjpwh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjlwubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}wh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjlwubh)�”}”(hhh]”jg)�”}”(hŒdc_transfer_func”h]”hŒdc_transfer_func”…”�”}”(hjŽwh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj‹wubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j�wŒmodname”NŒ classname”Nj'j*)�”}”j-]”j8wŒc.__set_input_tf”†”asbuh1hhjlwubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬wh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjlwubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjºwh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjlwubjg)�”}”(hŒfunc”h]”hŒfunc”…”�”}”(hjÇwh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjlwubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjövubjK+)�”}”(hŒconst struct drm_color_lut *lut”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hjàwh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÜwubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíwh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÜwubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjûwh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÜwubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÜwubh)�”}”(hhh]”jg)�”}”(hŒ drm_color_lut”h]”hŒ drm_color_lut”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjxubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jxŒmodname”NŒ classname”Nj'j*)�”}”j-]”j8wŒc.__set_input_tf”†”asbuh1hhjÜwubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7xh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÜwubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjExh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjÜwubjg)�”}”(hŒlut”h]”hŒlut”…”�”}”(hjRxh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÜwubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjövubjK+)�”}”(hŒuint32_t lut_size”h]”(h)�”}”(hhh]”jg)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjnxh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjkxubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jpxŒmodname”NŒ classname”Nj'j*)�”}”j-]”j8wŒc.__set_input_tf”†”asbuh1hhjgxubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒxh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjgxubjg)�”}”(hŒlut_size”h]”hŒlut_size”…”�”}”(hjšxh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjgxubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjövubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj½vh²hh³jÏvh´M9ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj¹vh²hh³jÏvh´M9ubah}”(h]”j´vah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jÏvh´M9hj¶vh²hubj•)�”}”(hhh]”hì)�”}”(hŒEcalculates the input transfer function based on expected input space.”h]”hŒEcalculates the input transfer function based on expected input space.”…”�”}”(hjÄxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M9hjÁxh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj¶vh²hh³jÏvh´M9ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jÜxj·jÜxj¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hX4**Parameters** ``struct dc_color_caps *caps`` dc color capabilities ``struct dc_transfer_func *func`` transfer function ``const struct drm_color_lut *lut`` lookup table that defines the color space ``uint32_t lut_size`` size of respective lut. **Return** 0 in case of success. -ENOMEM if fails.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjæxh]”hŒ Parameters”…”�”}”(hjèxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjäxubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M=hjàxubj)�”}”(hhh]”(j )�”}”(hŒ5``struct dc_color_caps *caps`` dc color capabilities ”h]”(j)�”}”(hŒ``struct dc_color_caps *caps``”h]”jï)�”}”(hjyh]”hŒstruct dc_color_caps *caps”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M;hjÿxubj-)�”}”(hhh]”hì)�”}”(hŒdc color capabilities”h]”hŒdc color capabilities”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jyh´M;hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÿxubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jyh´M;hjüxubj )�”}”(hŒ4``struct dc_transfer_func *func`` transfer function ”h]”(j)�”}”(hŒ!``struct dc_transfer_func *func``”h]”jï)�”}”(hj>yh]”hŒstruct dc_transfer_func *func”…”�”}”(hj@yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjhjªyubj-)�”}”(hhh]”hì)�”}”(hŒsize of respective lut.”h]”hŒsize of respective lut.”…”�”}”(hjÉyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÅyh´M>hjÆyubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjªyubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÅyh´M>hjüxubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjàxubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjëyh]”hŒReturn”…”�”}”(hjíyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjéyubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M@hjàxubhì)�”}”(hŒ'0 in case of success. -ENOMEM if fails.”h]”hŒ'0 in case of success. -ENOMEM if fails.”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M@hjàxubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ__set_input_tf_32 (C function)”Œc.__set_input_tf_32”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ‡int __set_input_tf_32 (struct dc_color_caps *caps, struct dc_transfer_func *func, const struct drm_color_lut32 *lut, uint32_t lut_size)”h]”j8)�”}”(hŒ†int __set_input_tf_32(struct dc_color_caps *caps, struct dc_transfer_func *func, const struct drm_color_lut32 *lut, uint32_t lut_size)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hj0zh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj,zh²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M_ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?zh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj,zh²hh³j>zh´M_ubja)�”}”(hŒ__set_input_tf_32”h]”jg)�”}”(hŒ__set_input_tf_32”h]”hŒ__set_input_tf_32”…”�”}”(hjQzh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjMzubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj,zh²hh³j>zh´M_ubjE+)�”}”(hŒq(struct dc_color_caps *caps, struct dc_transfer_func *func, const struct drm_color_lut32 *lut, uint32_t lut_size)”h]”(jK+)�”}”(hŒstruct dc_color_caps *caps”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjmzh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjizubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzzh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjizubh)�”}”(hhh]”jg)�”}”(hŒ dc_color_caps”h]”hŒ dc_color_caps”…”�”}”(hj‹zh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjˆzubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j�zŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jSzsbŒc.__set_input_tf_32”†”asbuh1hhjizubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«zh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjizubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj¹zh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjizubjg)�”}”(hŒcaps”h]”hŒcaps”…”�”}”(hjÆzh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjizubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjezubjK+)�”}”(hŒstruct dc_transfer_func *func”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjßzh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÛzubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìzh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÛzubh)�”}”(hhh]”jg)�”}”(hŒdc_transfer_func”h]”hŒdc_transfer_func”…”�”}”(hjýzh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjúzubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jÿzŒmodname”NŒ classname”Nj'j*)�”}”j-]”j§zŒc.__set_input_tf_32”†”asbuh1hhjÛzubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÛzubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj){h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjÛzubjg)�”}”(hŒfunc”h]”hŒfunc”…”�”}”(hj6{h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÛzubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjezubjK+)�”}”(hŒ!const struct drm_color_lut32 *lut”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hjO{h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjK{ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\{h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjK{ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjj{h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjK{ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw{h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjK{ubh)�”}”(hhh]”jg)�”}”(hŒdrm_color_lut32”h]”hŒdrm_color_lut32”…”�”}”(hjˆ{h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj…{ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jŠ{Œmodname”NŒ classname”Nj'j*)�”}”j-]”j§zŒc.__set_input_tf_32”†”asbuh1hhjK{ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦{h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjK{ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj´{h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjK{ubjg)�”}”(hŒlut”h]”hŒlut”…”�”}”(hjÁ{h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjK{ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjezubjK+)�”}”(hŒuint32_t lut_size”h]”(h)�”}”(hhh]”jg)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjÝ{h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÚ{ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jß{Œmodname”NŒ classname”Nj'j*)�”}”j-]”j§zŒc.__set_input_tf_32”†”asbuh1hhjÖ{ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjû{h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÖ{ubjg)�”}”(hŒlut_size”h]”hŒlut_size”…”�”}”(hj |h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÖ{ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjezubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj,zh²hh³j>zh´M_ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj(zh²hh³j>zh´M_ubah}”(h]”j#zah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j>zh´M_hj%zh²hubj•)�”}”(hhh]”hì)�”}”(hŒEcalculates the input transfer function based on expected input space.”h]”hŒEcalculates the input transfer function based on expected input space.”…”�”}”(hj3|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M_hj0|h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj%zh²hh³j>zh´M_ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jK|j·jK|j¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hX6**Parameters** ``struct dc_color_caps *caps`` dc color capabilities ``struct dc_transfer_func *func`` transfer function ``const struct drm_color_lut32 *lut`` lookup table that defines the color space ``uint32_t lut_size`` size of respective lut. **Return** 0 in case of success. -ENOMEM if fails.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjU|h]”hŒ Parameters”…”�”}”(hjW|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjS|ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MchjO|ubj)�”}”(hhh]”(j )�”}”(hŒ5``struct dc_color_caps *caps`` dc color capabilities ”h]”(j)�”}”(hŒ``struct dc_color_caps *caps``”h]”jï)�”}”(hjt|h]”hŒstruct dc_color_caps *caps”…”�”}”(hjv|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjr|ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mahjn|ubj-)�”}”(hhh]”hì)�”}”(hŒdc color capabilities”h]”hŒdc color capabilities”…”�”}”(hj�|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‰|h´MahjŠ|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjn|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‰|h´Mahjk|ubj )�”}”(hŒ4``struct dc_transfer_func *func`` transfer function ”h]”(j)�”}”(hŒ!``struct dc_transfer_func *func``”h]”jï)�”}”(hj­|h]”hŒstruct dc_transfer_func *func”…”�”}”(hj¯|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj«|ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mbhj§|ubj-)�”}”(hhh]”hì)�”}”(hŒtransfer function”h]”hŒtransfer function”…”�”}”(hjÆ|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÂ|h´MbhjÃ|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj§|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÂ|h´Mbhjk|ubj )�”}”(hŒP``const struct drm_color_lut32 *lut`` lookup table that defines the color space ”h]”(j)�”}”(hŒ%``const struct drm_color_lut32 *lut``”h]”jï)�”}”(hjæ|h]”hŒ!const struct drm_color_lut32 *lut”…”�”}”(hjè|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjä|ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mchjà|ubj-)�”}”(hhh]”hì)�”}”(hŒ)lookup table that defines the color space”h]”hŒ)lookup table that defines the color space”…”�”}”(hjÿ|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jû|h´Mchjü|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjà|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jû|h´Mchjk|ubj )�”}”(hŒ.``uint32_t lut_size`` size of respective lut. ”h]”(j)�”}”(hŒ``uint32_t lut_size``”h]”jï)�”}”(hj}h]”hŒuint32_t lut_size”…”�”}”(hj!}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mdhj}ubj-)�”}”(hhh]”hì)�”}”(hŒsize of respective lut.”h]”hŒsize of respective lut.”…”�”}”(hj8}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j4}h´Mdhj5}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j4}h´Mdhjk|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjO|ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjZ}h]”hŒReturn”…”�”}”(hj\}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjX}ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MfhjO|ubhì)�”}”(hŒ'0 in case of success. -ENOMEM if fails.”h]”hŒ'0 in case of success. -ENOMEM if fails.”…”�”}”(hjp}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MfhjO|ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ(amdgpu_dm_verify_lut3d_size (C function)”Œc.amdgpu_dm_verify_lut3d_size”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒaint amdgpu_dm_verify_lut3d_size (struct amdgpu_device *adev, struct drm_plane_state *plane_state)”h]”j8)�”}”(hŒ`int amdgpu_dm_verify_lut3d_size(struct amdgpu_device *adev, struct drm_plane_state *plane_state)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hjŸ}h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj›}h²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M‚ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®}h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj›}h²hh³j­}h´M‚ubja)�”}”(hŒamdgpu_dm_verify_lut3d_size”h]”jg)�”}”(hŒamdgpu_dm_verify_lut3d_size”h]”hŒamdgpu_dm_verify_lut3d_size”…”�”}”(hjÀ}h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¼}ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj›}h²hh³j­}h´M‚ubjE+)�”}”(hŒA(struct amdgpu_device *adev, struct drm_plane_state *plane_state)”h]”(jK+)�”}”(hŒstruct amdgpu_device *adev”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjÜ}h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjØ}ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjé}h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjØ}ubh)�”}”(hhh]”jg)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjú}h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj÷}ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jü}Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jÂ}sbŒc.amdgpu_dm_verify_lut3d_size”†”asbuh1hhjØ}ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjØ}ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj(~h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjØ}ubjg)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj5~h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjØ}ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjÔ}ubjK+)�”}”(hŒ#struct drm_plane_state *plane_state”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjN~h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjJ~ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[~h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjJ~ubh)�”}”(hhh]”jg)�”}”(hŒdrm_plane_state”h]”hŒdrm_plane_state”…”�”}”(hjl~h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhji~ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jn~Œmodname”NŒ classname”Nj'j*)�”}”j-]”j~Œc.amdgpu_dm_verify_lut3d_size”†”asbuh1hhjJ~ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠ~h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjJ~ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj˜~h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjJ~ubjg)�”}”(hŒ plane_state”h]”hŒ plane_state”…”�”}”(hj¥~h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjJ~ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjÔ}ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj›}h²hh³j­}h´M‚ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj—}h²hh³j­}h´M‚ubah}”(h]”j’}ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j­}h´M‚hj”}h²hubj•)�”}”(hhh]”hì)�”}”(hŒZverifies if 3D LUT is supported and if user shaper and 3D LUTs match the hw supported size”h]”hŒZverifies if 3D LUT is supported and if user shaper and 3D LUTs match the hw supported size”…”�”}”(hjÏ~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M‚hjÌ~h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj”}h²hh³j­}h´M‚ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jç~j·jç~j¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hXX**Parameters** ``struct amdgpu_device *adev`` amdgpu device ``struct drm_plane_state *plane_state`` the DRM plane state **Description** Verifies if pre-blending (DPP) 3D LUT is supported by the HW (DCN 2.0 or newer) and if the user shaper and 3D LUTs match the supported size. **Return** 0 on success. -EINVAL if lut size are invalid.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjñ~h]”hŒ Parameters”…”�”}”(hjó~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjï~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M†hjë~ubj)�”}”(hhh]”(j )�”}”(hŒ-``struct amdgpu_device *adev`` amdgpu device ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”jï)�”}”(hjh]”hŒstruct amdgpu_device *adev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M„hj ubj-)�”}”(hhh]”hì)�”}”(hŒ amdgpu device”h]”hŒ amdgpu device”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j%h´M„hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j%h´M„hjubj )�”}”(hŒ<``struct drm_plane_state *plane_state`` the DRM plane state ”h]”(j)�”}”(hŒ'``struct drm_plane_state *plane_state``”h]”jï)�”}”(hjIh]”hŒ#struct drm_plane_state *plane_state”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M…hjCubj-)�”}”(hhh]”hì)�”}”(hŒthe DRM plane state”h]”hŒthe DRM plane state”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j^h´M…hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j^h´M…hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjë~ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj„h]”hŒ Description”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M‡hjë~ubhì)�”}”(hŒŒVerifies if pre-blending (DPP) 3D LUT is supported by the HW (DCN 2.0 or newer) and if the user shaper and 3D LUTs match the supported size.”h]”hŒŒVerifies if pre-blending (DPP) 3D LUT is supported by the HW (DCN 2.0 or newer) and if the user shaper and 3D LUTs match the supported size.”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M†hjë~ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hj«h]”hŒReturn”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M‰hjë~ubhì)�”}”(hŒ.0 on success. -EINVAL if lut size are invalid.”h]”hŒ.0 on success. -EINVAL if lut size are invalid.”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MŠhjë~ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ'amdgpu_dm_verify_lut_sizes (C function)”Œc.amdgpu_dm_verify_lut_sizes”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒHint amdgpu_dm_verify_lut_sizes (const struct drm_crtc_state *crtc_state)”h]”j8)�”}”(hŒGint amdgpu_dm_verify_lut_sizes(const struct drm_crtc_state *crtc_state)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjìh²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M°ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjìh²hh³jþh´M°ubja)�”}”(hŒamdgpu_dm_verify_lut_sizes”h]”jg)�”}”(hŒamdgpu_dm_verify_lut_sizes”h]”hŒamdgpu_dm_verify_lut_sizes”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj €ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjìh²hh³jþh´M°ubjE+)�”}”(hŒ)(const struct drm_crtc_state *crtc_state)”h]”jK+)�”}”(hŒ'const struct drm_crtc_state *crtc_state”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj-€h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj)€ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:€h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj)€ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjH€h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj)€ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjU€h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj)€ubh)�”}”(hhh]”jg)�”}”(hŒdrm_crtc_state”h]”hŒdrm_crtc_state”…”�”}”(hjf€h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjc€ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jh€Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j€sbŒc.amdgpu_dm_verify_lut_sizes”†”asbuh1hhj)€ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†€h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj)€ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj”€h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj)€ubjg)�”}”(hŒ crtc_state”h]”hŒ crtc_state”…”�”}”(hj¡€h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj)€ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj%€ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjìh²hh³jþh´M°ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjèh²hh³jþh´M°ubah}”(h]”jãah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jþh´M°hjåh²hubj•)�”}”(hhh]”hì)�”}”(hŒ1verifies if DRM luts match the hw supported sizes”h]”hŒ1verifies if DRM luts match the hw supported sizes”…”�”}”(hjË€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M°hjÈ€h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjåh²hh³jþh´M°ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jã€j·jã€j¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hX **Parameters** ``const struct drm_crtc_state *crtc_state`` the DRM CRTC state **Description** Verifies that the Degamma and Gamma LUTs attached to the :c:type:`crtc_state` are of the expected size. **Return** 0 on success. -EINVAL if any lut sizes are invalid.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjí€h]”hŒ Parameters”…”�”}”(hjï€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjë€ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M´hjç€ubj)�”}”(hhh]”j )�”}”(hŒ?``const struct drm_crtc_state *crtc_state`` the DRM CRTC state ”h]”(j)�”}”(hŒ+``const struct drm_crtc_state *crtc_state``”h]”jï)�”}”(hj �h]”hŒ'const struct drm_crtc_state *crtc_state”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj �ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M±hj�ubj-)�”}”(hhh]”hì)�”}”(hŒthe DRM CRTC state”h]”hŒthe DRM CRTC state”…”�”}”(hj%�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j!�h´M±hj"�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j!�h´M±hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjç€ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjG�h]”hŒ Description”…”�”}”(hjI�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjE�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M³hjç€ubhì)�”}”(hŒgVerifies that the Degamma and Gamma LUTs attached to the :c:type:`crtc_state` are of the expected size.”h]”(hŒ9Verifies that the Degamma and Gamma LUTs attached to the ”…”�”•}”(hj]�h²hh³Nh´Nubh)�”}”(hŒ:c:type:`crtc_state`”h]”jï)�”}”(hjg�h]”hŒ crtc_state”…”�”}”(hji�h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhje�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ crtc_state”uh1hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M²hj]�ubhŒ are of the expected size.”…”�”}”(hj]�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j„�h´M²hjç€ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hj‘�h]”hŒReturn”…”�”}”(hj“�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj��ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mµhjç€ubhì)�”}”(hŒ30 on success. -EINVAL if any lut sizes are invalid.”h]”hŒ30 on success. -EINVAL if any lut sizes are invalid.”…”�”}”(hj§�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M¶hjç€ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ,amdgpu_dm_check_crtc_color_mgmt (C function)”Œ!c.amdgpu_dm_check_crtc_color_mgmt”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒQint amdgpu_dm_check_crtc_color_mgmt (struct dm_crtc_state *crtc, bool check_only)”h]”j8)�”}”(hŒPint amdgpu_dm_check_crtc_color_mgmt(struct dm_crtc_state *crtc, bool check_only)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hjÖ�h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjÒ�h²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÕubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjå�h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÒ�h²hh³jä�h´MÕubja)�”}”(hŒamdgpu_dm_check_crtc_color_mgmt”h]”jg)�”}”(hŒamdgpu_dm_check_crtc_color_mgmt”h]”hŒamdgpu_dm_check_crtc_color_mgmt”…”�”}”(hj÷�h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjó�ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjÒ�h²hh³jä�h´MÕubjE+)�”}”(hŒ-(struct dm_crtc_state *crtc, bool check_only)”h]”(jK+)�”}”(hŒstruct dm_crtc_state *crtc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj‚ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ‚h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj‚ubh)�”}”(hhh]”jg)�”}”(hŒ dm_crtc_state”h]”hŒ dm_crtc_state”…”�”}”(hj1‚h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj.‚ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j3‚Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jù�sbŒ!c.amdgpu_dm_check_crtc_color_mgmt”†”asbuh1hhj‚ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ‚h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj‚ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj_‚h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj‚ubjg)�”}”(hŒcrtc”h]”hŒcrtc”…”�”}”(hjl‚h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj ‚ubjK+)�”}”(hŒbool check_only”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hj…‚h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj�‚ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’‚h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj�‚ubjg)�”}”(hŒ check_only”h]”hŒ check_only”…”�”}”(hj ‚h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj�‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj ‚ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjÒ�h²hh³jä�h´MÕubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjÎ�h²hh³jä�h´MÕubah}”(h]”jÉ�ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jä�h´MÕhjË�h²hubj•)�”}”(hhh]”hì)�”}”(hŒ0Check if DRM color props are programmable by DC.”h]”hŒ0Check if DRM color props are programmable by DC.”…”�”}”(hjÊ‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÕhjÇ‚h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjË�h²hh³jä�h´MÕubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jâ‚j·jâ‚j¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hX**Parameters** ``struct dm_crtc_state *crtc`` amdgpu_dm crtc state ``bool check_only`` only check color state without update dc stream **Description** This function just verifies CRTC LUT sizes, if there is enough space for output transfer function and if its parameters can be calculated by AMD color module. It also adjusts some settings for programming CRTC degamma at plane stage, using plane DGM block. The RGM block is typically more fully featured and accurate across all ASICs - DCE can't support a custom non-linear CRTC DGM. For supporting both plane level color management and CRTC level color management at once we have to either restrict the usage of some CRTC properties or blend adjustments together. **Return** 0 on success. Error code if validation fails.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjì‚h]”hŒ Parameters”…”�”}”(hjî‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjê‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÙhjæ‚ubj)�”}”(hhh]”(j )�”}”(hŒ4``struct dm_crtc_state *crtc`` amdgpu_dm crtc state ”h]”(j)�”}”(hŒ``struct dm_crtc_state *crtc``”h]”jï)�”}”(hj ƒh]”hŒstruct dm_crtc_state *crtc”…”�”}”(hj ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÖhjƒubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu_dm crtc state”h]”hŒamdgpu_dm crtc state”…”�”}”(hj$ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j ƒh´MÖhj!ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j ƒh´MÖhjƒubj )�”}”(hŒD``bool check_only`` only check color state without update dc stream ”h]”(j)�”}”(hŒ``bool check_only``”h]”jï)�”}”(hjDƒh]”hŒbool check_only”…”�”}”(hjFƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjBƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M×hj>ƒubj-)�”}”(hhh]”hì)�”}”(hŒ/only check color state without update dc stream”h]”hŒ/only check color state without update dc stream”…”�”}”(hj]ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jYƒh´M×hjZƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj>ƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jYƒh´M×hjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjæ‚ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjƒh]”hŒ Description”…”�”}”(hj�ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj}ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÙhjæ‚ubhì)�”}”(hXThis function just verifies CRTC LUT sizes, if there is enough space for output transfer function and if its parameters can be calculated by AMD color module. It also adjusts some settings for programming CRTC degamma at plane stage, using plane DGM block.”h]”hXThis function just verifies CRTC LUT sizes, if there is enough space for output transfer function and if its parameters can be calculated by AMD color module. It also adjusts some settings for programming CRTC degamma at plane stage, using plane DGM block.”…”�”}”(hj•ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MØhjæ‚ubhì)�”}”(hŒ~The RGM block is typically more fully featured and accurate across all ASICs - DCE can't support a custom non-linear CRTC DGM.”h]”hŒ€The RGM block is typically more fully featured and accurate across all ASICs - DCE can’t support a custom non-linear CRTC DGM.”…”�”}”(hj¤ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MÝhjæ‚ubhì)�”}”(hŒ´For supporting both plane level color management and CRTC level color management at once we have to either restrict the usage of some CRTC properties or blend adjustments together.”h]”hŒ´For supporting both plane level color management and CRTC level color management at once we have to either restrict the usage of some CRTC properties or blend adjustments together.”…”�”}”(hj³ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Màhjæ‚ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjăh]”hŒReturn”…”�”}”(hjƃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mähjæ‚ubhì)�”}”(hŒ-0 on success. Error code if validation fails.”h]”hŒ-0 on success. Error code if validation fails.”…”�”}”(hjÚƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Måhjæ‚ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ-amdgpu_dm_update_crtc_color_mgmt (C function)”Œ"c.amdgpu_dm_update_crtc_color_mgmt”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒAint amdgpu_dm_update_crtc_color_mgmt (struct dm_crtc_state *crtc)”h]”j8)�”}”(hŒ@int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hj „h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj„h²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MAubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj„h²hh³j„h´MAubja)�”}”(hŒ amdgpu_dm_update_crtc_color_mgmt”h]”jg)�”}”(hŒ amdgpu_dm_update_crtc_color_mgmt”h]”hŒ amdgpu_dm_update_crtc_color_mgmt”…”�”}”(hj*„h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj&„ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj„h²hh³j„h´MAubjE+)�”}”(hŒ(struct dm_crtc_state *crtc)”h]”jK+)�”}”(hŒstruct dm_crtc_state *crtc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjF„h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjB„ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS„h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjB„ubh)�”}”(hhh]”jg)�”}”(hŒ dm_crtc_state”h]”hŒ dm_crtc_state”…”�”}”(hjd„h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhja„ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jf„Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j,„sbŒ"c.amdgpu_dm_update_crtc_color_mgmt”†”asbuh1hhjB„ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„„h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjB„ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj’„h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjB„ubjg)�”}”(hŒcrtc”h]”hŒcrtc”…”�”}”(hjŸ„h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjB„ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj>„ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj„h²hh³j„h´MAubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj„h²hh³j„h´MAubah}”(h]”jüƒah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j„h´MAhjþƒh²hubj•)�”}”(hhh]”hì)�”}”(hŒ'Maps DRM color management to DC stream.”h]”hŒ'Maps DRM color management to DC stream.”…”�”}”(hjÉ„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MAhjÆ„h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjþƒh²hh³j„h´MAubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶já„j·já„j¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hXO**Parameters** ``struct dm_crtc_state *crtc`` amdgpu_dm crtc state **Description** With no plane level color management properties we're free to use any of the HW blocks as long as the CRTC CTM always comes before the CRTC RGM and after the CRTC DGM. - The CRTC RGM block will be placed in the RGM LUT block if it is non-linear. - The CRTC DGM block will be placed in the DGM LUT block if it is non-linear. - The CRTC CTM will be placed in the gamut remap block if it is non-linear. The RGM block is typically more fully featured and accurate across all ASICs - DCE can't support a custom non-linear CRTC DGM. For supporting both plane level color management and CRTC level color management at once we have to either restrict the usage of CRTC properties or blend adjustments together. **Return** 0 on success. Error code if setup fails.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjë„h]”hŒ Parameters”…”�”}”(hjí„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjé„ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MEhjå„ubj)�”}”(hhh]”j )�”}”(hŒ4``struct dm_crtc_state *crtc`` amdgpu_dm crtc state ”h]”(j)�”}”(hŒ``struct dm_crtc_state *crtc``”h]”jï)�”}”(hj …h]”hŒstruct dm_crtc_state *crtc”…”�”}”(hj …h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MBhj…ubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu_dm crtc state”h]”hŒamdgpu_dm crtc state”…”�”}”(hj#…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j…h´MBhj …ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j…h´MBhj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjå„ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjE…h]”hŒ Description”…”�”}”(hjG…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjC…ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MDhjå„ubhì)�”}”(hŒ§With no plane level color management properties we're free to use any of the HW blocks as long as the CRTC CTM always comes before the CRTC RGM and after the CRTC DGM.”h]”hŒ©With no plane level color management properties we’re free to use any of the HW blocks as long as the CRTC CTM always comes before the CRTC RGM and after the CRTC DGM.”…”�”}”(hj[…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MChjå„ubhâ)�”}”(hhh]”(hç)�”}”(hŒKThe CRTC RGM block will be placed in the RGM LUT block if it is non-linear.”h]”hì)�”}”(hjo…h]”hŒKThe CRTC RGM block will be placed in the RGM LUT block if it is non-linear.”…”�”}”(hjq…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MGhjm…ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjj…ubhç)�”}”(hŒKThe CRTC DGM block will be placed in the DGM LUT block if it is non-linear.”h]”hì)�”}”(hj‡…h]”hŒKThe CRTC DGM block will be placed in the DGM LUT block if it is non-linear.”…”�”}”(hj‰…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MHhj……ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjj…ubhç)�”}”(hŒJThe CRTC CTM will be placed in the gamut remap block if it is non-linear. ”h]”hì)�”}”(hŒIThe CRTC CTM will be placed in the gamut remap block if it is non-linear.”h]”hŒIThe CRTC CTM will be placed in the gamut remap block if it is non-linear.”…”�”}”(hj¡…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MIhj�…ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjj…ubeh}”(h]”h ]”h"]”h$]”h&]”jU-jV-uh1háh³j~…h´MGhjå„ubhì)�”}”(hŒ~The RGM block is typically more fully featured and accurate across all ASICs - DCE can't support a custom non-linear CRTC DGM.”h]”hŒ€The RGM block is typically more fully featured and accurate across all ASICs - DCE can’t support a custom non-linear CRTC DGM.”…”�”}”(hj¼…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MKhjå„ubhì)�”}”(hŒ¯For supporting both plane level color management and CRTC level color management at once we have to either restrict the usage of CRTC properties or blend adjustments together.”h]”hŒ¯For supporting both plane level color management and CRTC level color management at once we have to either restrict the usage of CRTC properties or blend adjustments together.”…”�”}”(hjË…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MNhjå„ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjÜ…h]”hŒReturn”…”�”}”(hjÞ…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÚ…ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MRhjå„ubhì)�”}”(hŒ(0 on success. Error code if setup fails.”h]”hŒ(0 on success. Error code if setup fails.”…”�”}”(hjò…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´MShjå„ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ.amdgpu_dm_update_plane_color_mgmt (C function)”Œ#c.amdgpu_dm_update_plane_color_mgmt”hNt”auh1jhj9Uh²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒŽint amdgpu_dm_update_plane_color_mgmt (struct dm_crtc_state *crtc, struct drm_plane_state *plane_state, struct dc_plane_state *dc_plane_state)”h]”j8)�”}”(hŒ�int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, struct drm_plane_state *plane_state, struct dc_plane_state *dc_plane_state)”h]”(j +)�”}”(hŒint”h]”hŒint”…”�”}”(hj!†h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj†h²hh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0†h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj†h²hh³j/†h´M ubja)�”}”(hŒ!amdgpu_dm_update_plane_color_mgmt”h]”jg)�”}”(hŒ!amdgpu_dm_update_plane_color_mgmt”h]”hŒ!amdgpu_dm_update_plane_color_mgmt”…”�”}”(hjB†h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj>†ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj†h²hh³j/†h´M ubjE+)�”}”(hŒh(struct dm_crtc_state *crtc, struct drm_plane_state *plane_state, struct dc_plane_state *dc_plane_state)”h]”(jK+)�”}”(hŒstruct dm_crtc_state *crtc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj^†h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjZ†ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjk†h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjZ†ubh)�”}”(hhh]”jg)�”}”(hŒ dm_crtc_state”h]”hŒ dm_crtc_state”…”�”}”(hj|†h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjy†ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j~†Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jD†sbŒ#c.amdgpu_dm_update_plane_color_mgmt”†”asbuh1hhjZ†ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ†h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjZ†ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjª†h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjZ†ubjg)�”}”(hŒcrtc”h]”hŒcrtc”…”�”}”(hj·†h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjZ†ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjV†ubjK+)�”}”(hŒ#struct drm_plane_state *plane_state”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjІh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj̆ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj݆h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj̆ubh)�”}”(hhh]”jg)�”}”(hŒdrm_plane_state”h]”hŒdrm_plane_state”…”�”}”(hjî†h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjë†ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jð†Œmodname”NŒ classname”Nj'j*)�”}”j-]”j˜†Œ#c.amdgpu_dm_update_plane_color_mgmt”†”asbuh1hhj̆ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ‡h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj̆ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj̆ubjg)�”}”(hŒ plane_state”h]”hŒ plane_state”…”�”}”(hj'‡h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj̆ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjV†ubjK+)�”}”(hŒ%struct dc_plane_state *dc_plane_state”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj@‡h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj<‡ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM‡h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj<‡ubh)�”}”(hhh]”jg)�”}”(hŒdc_plane_state”h]”hŒdc_plane_state”…”�”}”(hj^‡h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj[‡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j`‡Œmodname”NŒ classname”Nj'j*)�”}”j-]”j˜†Œ#c.amdgpu_dm_update_plane_color_mgmt”†”asbuh1hhj<‡ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|‡h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj<‡ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjЇh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj<‡ubjg)�”}”(hŒdc_plane_state”h]”hŒdc_plane_state”…”�”}”(hj—‡h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj<‡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjV†ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj†h²hh³j/†h´M ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj†h²hh³j/†h´M ubah}”(h]”j†ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j/†h´M hj†h²hubj•)�”}”(hhh]”hì)�”}”(hŒ&Maps DRM color management to DC plane.”h]”hŒ&Maps DRM color management to DC plane.”…”�”}”(hjÁ‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M hj¾‡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj†h²hh³j/†h´M ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jÙ‡j·jÙ‡j¸‰j¹‰jº‰uh1j,h²hhj9Uh³Nh´Nubj¼)�”}”(hXÖ**Parameters** ``struct dm_crtc_state *crtc`` amdgpu_dm crtc state ``struct drm_plane_state *plane_state`` DRM plane state ``struct dc_plane_state *dc_plane_state`` target DC surface **Description** Update the underlying dc_stream_state's input transfer function (ITF) in preparation for hardware commit. The transfer function used depends on the preparation done on the stream for color management. **Return** 0 on success. -ENOMEM if mem allocation fails.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjã‡h]”hŒ Parameters”…”�”}”(hjå‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjá‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhj݇ubj)�”}”(hhh]”(j )�”}”(hŒ4``struct dm_crtc_state *crtc`` amdgpu_dm crtc state ”h]”(j)�”}”(hŒ``struct dm_crtc_state *crtc``”h]”jï)�”}”(hjˆh]”hŒstruct dm_crtc_state *crtc”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M hjü‡ubj-)�”}”(hhh]”hì)�”}”(hŒamdgpu_dm crtc state”h]”hŒamdgpu_dm crtc state”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jˆh´M hjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjü‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jˆh´M hjù‡ubj )�”}”(hŒ8``struct drm_plane_state *plane_state`` DRM plane state ”h]”(j)�”}”(hŒ'``struct drm_plane_state *plane_state``”h]”jï)�”}”(hj;ˆh]”hŒ#struct drm_plane_state *plane_state”…”�”}”(hj=ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj9ˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M hj5ˆubj-)�”}”(hhh]”hì)�”}”(hŒDRM plane state”h]”hŒDRM plane state”…”�”}”(hjTˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jPˆh´M hjQˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj5ˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jPˆh´M hjù‡ubj )�”}”(hŒ<``struct dc_plane_state *dc_plane_state`` target DC surface ”h]”(j)�”}”(hŒ)``struct dc_plane_state *dc_plane_state``”h]”jï)�”}”(hjtˆh]”hŒ%struct dc_plane_state *dc_plane_state”…”�”}”(hjvˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjrˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´M hjnˆubj-)�”}”(hhh]”hì)�”}”(hŒtarget DC surface”h]”hŒtarget DC surface”…”�”}”(hj�ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‰ˆh´M hjŠˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjnˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‰ˆh´M hjù‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj݇ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj¯ˆh]”hŒ Description”…”�”}”(hj±ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj­ˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhj݇ubhì)�”}”(hŒÈUpdate the underlying dc_stream_state's input transfer function (ITF) in preparation for hardware commit. The transfer function used depends on the preparation done on the stream for color management.”h]”hŒÊUpdate the underlying dc_stream_state’s input transfer function (ITF) in preparation for hardware commit. The transfer function used depends on the preparation done on the stream for color management.”…”�”}”(hjňh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhj݇ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjÖˆh]”hŒReturn”…”�”}”(hj؈h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÔˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhj݇ubhì)�”}”(hŒ.0 on success. -ENOMEM if mem allocation fails.”h]”hŒ.0 on success. -ENOMEM if mem allocation fails.”…”�”}”(hjìˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒŠ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:53: ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c”h´Mhj݇ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj9Uh²hh³Nh´Nubh¶)�”}”(hhh]”(h»)�”}”(hŒ-DC Color Capabilities between DCN generations”h]”hŒ-DC Color Capabilities between DCN generations”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjuh1hºhj‰h²hh³hÌh´K:ubhì)�”}”(hX)DRM/KMS framework defines three CRTC color correction properties: degamma, color transformation matrix (CTM) and gamma, and two properties for degamma and gamma LUT sizes. AMD DC programs some of the color correction features pre-blending but DRM/KMS has not per-plane color correction properties.”h]”hX)DRM/KMS framework defines three CRTC color correction properties: degamma, color transformation matrix (CTM) and gamma, and two properties for degamma and gamma LUT sizes. AMD DC programs some of the color correction features pre-blending but DRM/KMS has not per-plane color correction properties.”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K)�”}”(hjAh]”hŒstruct”…”�”}”(hjmŠh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjiŠh²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KQubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{Šh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjiŠh²hh³jzŠh´KQubja)�”}”(hŒrom_curve_caps”h]”jg)�”}”(hjgŠh]”hŒrom_curve_caps”…”�”}”(hj�Šh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj‰Šubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjiŠh²hh³jzŠh´KQubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjeŠh²hh³jzŠh´KQubah}”(h]”j`Šah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jzŠh´KQhjbŠh²hubj•)�”}”(hhh]”hì)�”}”(hŒ9predefined transfer function caps for degamma and regamma”h]”hŒ9predefined transfer function caps for degamma and regamma”…”�”}”(hj¯Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KÛhj¬Šh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjbŠh²hh³jzŠh´KQubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jÇŠj·jÇŠj¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX‹**Definition**:: struct rom_curve_caps { uint16_t srgb : 1; uint16_t bt2020 : 1; uint16_t gamma2_2 : 1; uint16_t pq : 1; uint16_t hlg : 1; }; **Members** ``srgb`` RGB color space transfer func ``bt2020`` BT.2020 transfer func ``gamma2_2`` standard gamma ``pq`` perceptual quantizer transfer function ``hlg`` hybrid log–gamma transfer function”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÓŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÏŠubhŒ:”…”�”}”(hjÏŠh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KßhjËŠubjß)�”}”(hŒ�struct rom_curve_caps { uint16_t srgb : 1; uint16_t bt2020 : 1; uint16_t gamma2_2 : 1; uint16_t pq : 1; uint16_t hlg : 1; };”h]”hŒ�struct rom_curve_caps { uint16_t srgb : 1; uint16_t bt2020 : 1; uint16_t gamma2_2 : 1; uint16_t pq : 1; uint16_t hlg : 1; };”…”�”}”hjìŠsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KáhjËŠubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjýŠh]”hŒMembers”…”�”}”(hjÿŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjûŠubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KéhjËŠubj)�”}”(hhh]”(j )�”}”(hŒ'``srgb`` RGB color space transfer func ”h]”(j)�”}”(hŒ``srgb``”h]”jï)�”}”(hj‹h]”hŒsrgb”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KÝhj‹ubj-)�”}”(hhh]”hì)�”}”(hŒRGB color space transfer func”h]”hŒRGB color space transfer func”…”�”}”(hj5‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j1‹h´KÝhj2‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j1‹h´KÝhj‹ubj )�”}”(hŒ!``bt2020`` BT.2020 transfer func ”h]”(j)�”}”(hŒ ``bt2020``”h]”jï)�”}”(hjU‹h]”hŒbt2020”…”�”}”(hjW‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjS‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KÞhjO‹ubj-)�”}”(hhh]”hì)�”}”(hŒBT.2020 transfer func”h]”hŒBT.2020 transfer func”…”�”}”(hjn‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jj‹h´KÞhjk‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjO‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jj‹h´KÞhj‹ubj )�”}”(hŒ``gamma2_2`` standard gamma ”h]”(j)�”}”(hŒ ``gamma2_2``”h]”jï)�”}”(hjŽ‹h]”hŒgamma2_2”…”�”}”(hj�‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjŒ‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kßhjˆ‹ubj-)�”}”(hhh]”hì)�”}”(hŒstandard gamma”h]”hŒstandard gamma”…”�”}”(hj§‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j£‹h´Kßhj¤‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjˆ‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£‹h´Kßhj‹ubj )�”}”(hŒ.``pq`` perceptual quantizer transfer function ”h]”(j)�”}”(hŒ``pq``”h]”jï)�”}”(hjÇ‹h]”hŒpq”…”�”}”(hjÉ‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÅ‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KàhjÁ‹ubj-)�”}”(hhh]”hì)�”}”(hŒ&perceptual quantizer transfer function”h]”hŒ&perceptual quantizer transfer function”…”�”}”(hjà‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÜ‹h´KàhjÝ‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÁ‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÜ‹h´Kàhj‹ubj )�”}”(hŒ,``hlg`` hybrid log–gamma transfer function”h]”(j)�”}”(hŒ``hlg``”h]”jï)�”}”(hjŒh]”hŒhlg”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjþ‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kàhjú‹ubj-)�”}”(hhh]”hì)�”}”(hŒ$hybrid log–gamma transfer function”h]”hŒ$hybrid log–gamma transfer function”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KáhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjú‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŒh´Kàhj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjËŠubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdpp_color_caps (C struct)”Œc.dpp_color_caps”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdpp_color_caps”h]”j8)�”}”(hŒstruct dpp_color_caps”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjZŒh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjVŒh²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KçubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhŒh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjVŒh²hh³jgŒh´Kçubja)�”}”(hŒdpp_color_caps”h]”jg)�”}”(hjTŒh]”hŒdpp_color_caps”…”�”}”(hjzŒh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjvŒubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjVŒh²hh³jgŒh´Kçubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjRŒh²hh³jgŒh´Kçubah}”(h]”jMŒah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jgŒh´KçhjOŒh²hubj•)�”}”(hhh]”hì)�”}”(hŒ=color pipeline capabilities for display pipe and plane blocks”h]”hŒ=color pipeline capabilities for display pipe and plane blocks”…”�”}”(hjœŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Këhj™Œh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjOŒh²hh³jgŒh´Kçubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j´Œj·j´Œj¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX**Definition**:: struct dpp_color_caps { uint16_t dcn_arch : 1; uint16_t input_lut_shared : 1; uint16_t icsc : 1; uint16_t dgam_ram : 1; uint16_t post_csc : 1; uint16_t gamma_corr : 1; uint16_t hw_3d_lut : 1; uint16_t ogam_ram : 1; uint16_t ocsc : 1; uint16_t dgam_rom_for_yuv : 1; uint16_t upsp_pre_scaler : 1; struct rom_curve_caps dgam_rom_caps; struct rom_curve_caps ogam_rom_caps; }; **Members** ``dcn_arch`` all DCE generations treated the same ``input_lut_shared`` shared with DGAM. Input LUT is different than most LUTs, just plain 256-entry lookup ``icsc`` input color space conversion ``dgam_ram`` programmable degamma LUT ``post_csc`` post color space conversion, before gamut remap ``gamma_corr`` degamma correction ``hw_3d_lut`` 3D LUT support. It implies a shaper LUT before. It may be shared with MPC by setting mpc:shared_3d_lut flag ``ogam_ram`` programmable out/blend gamma LUT ``ocsc`` output color space conversion ``dgam_rom_for_yuv`` pre-defined degamma LUT for YUV planes ``upsp_pre_scaler`` Ability to upsample 420/422 before scaling ``dgam_rom_caps`` pre-definied curve caps for degamma 1D LUT ``ogam_rom_caps`` pre-definied curve caps for regamma 1D LUT”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÀŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¼ŒubhŒ:”…”�”}”(hj¼Œh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kïhj¸Œubjß)�”}”(hX§struct dpp_color_caps { uint16_t dcn_arch : 1; uint16_t input_lut_shared : 1; uint16_t icsc : 1; uint16_t dgam_ram : 1; uint16_t post_csc : 1; uint16_t gamma_corr : 1; uint16_t hw_3d_lut : 1; uint16_t ogam_ram : 1; uint16_t ocsc : 1; uint16_t dgam_rom_for_yuv : 1; uint16_t upsp_pre_scaler : 1; struct rom_curve_caps dgam_rom_caps; struct rom_curve_caps ogam_rom_caps; };”h]”hX§struct dpp_color_caps { uint16_t dcn_arch : 1; uint16_t input_lut_shared : 1; uint16_t icsc : 1; uint16_t dgam_ram : 1; uint16_t post_csc : 1; uint16_t gamma_corr : 1; uint16_t hw_3d_lut : 1; uint16_t ogam_ram : 1; uint16_t ocsc : 1; uint16_t dgam_rom_for_yuv : 1; uint16_t upsp_pre_scaler : 1; struct rom_curve_caps dgam_rom_caps; struct rom_curve_caps ogam_rom_caps; };”…”�”}”hjÙŒsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kñhj¸Œubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjêŒh]”hŒMembers”…”�”}”(hjìŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjèŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¸Œubj)�”}”(hhh]”(j )�”}”(hŒ2``dcn_arch`` all DCE generations treated the same ”h]”(j)�”}”(hŒ ``dcn_arch``”h]”jï)�”}”(hj �h]”hŒdcn_arch”…”�”}”(hj �h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kïhj�ubj-)�”}”(hhh]”hì)�”}”(hŒ$all DCE generations treated the same”h]”hŒ$all DCE generations treated the same”…”�”}”(hj"�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�h´Kïhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�h´Kïhj�ubj )�”}”(hŒj``input_lut_shared`` shared with DGAM. Input LUT is different than most LUTs, just plain 256-entry lookup ”h]”(j)�”}”(hŒ``input_lut_shared``”h]”jï)�”}”(hjB�h]”hŒinput_lut_shared”…”�”}”(hjD�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj@�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kñhj<�ubj-)�”}”(hhh]”hì)�”}”(hŒTshared with DGAM. Input LUT is different than most LUTs, just plain 256-entry lookup”h]”hŒTshared with DGAM. Input LUT is different than most LUTs, just plain 256-entry lookup”…”�”}”(hj[�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KðhjX�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj<�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jW�h´Kñhj�ubj )�”}”(hŒ&``icsc`` input color space conversion ”h]”(j)�”}”(hŒ``icsc``”h]”jï)�”}”(hj|�h]”hŒicsc”…”�”}”(hj~�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjz�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kòhjv�ubj-)�”}”(hhh]”hì)�”}”(hŒinput color space conversion”h]”hŒinput color space conversion”…”�”}”(hj•�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‘�h´Kòhj’�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjv�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‘�h´Kòhj�ubj )�”}”(hŒ&``dgam_ram`` programmable degamma LUT ”h]”(j)�”}”(hŒ ``dgam_ram``”h]”jï)�”}”(hjµ�h]”hŒdgam_ram”…”�”}”(hj·�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kóhj¯�ubj-)�”}”(hhh]”hì)�”}”(hŒprogrammable degamma LUT”h]”hŒprogrammable degamma LUT”…”�”}”(hjÎ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÊ�h´KóhjË�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj¯�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÊ�h´Kóhj�ubj )�”}”(hŒ=``post_csc`` post color space conversion, before gamut remap ”h]”(j)�”}”(hŒ ``post_csc``”h]”jï)�”}”(hjî�h]”hŒpost_csc”…”�”}”(hjð�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjì�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kôhjè�ubj-)�”}”(hhh]”hì)�”}”(hŒ/post color space conversion, before gamut remap”h]”hŒ/post color space conversion, before gamut remap”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jŽh´KôhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjè�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŽh´Kôhj�ubj )�”}”(hŒ"``gamma_corr`` degamma correction ”h]”(j)�”}”(hŒ``gamma_corr``”h]”jï)�”}”(hj'Žh]”hŒ gamma_corr”…”�”}”(hj)Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj%Žubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kõhj!Žubj-)�”}”(hhh]”hì)�”}”(hŒdegamma correction”h]”hŒdegamma correction”…”�”}”(hj@Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j<Žh´Kõhj=Žubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj!Žubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j<Žh´Kõhj�ubj )�”}”(hŒz``hw_3d_lut`` 3D LUT support. It implies a shaper LUT before. It may be shared with MPC by setting mpc:shared_3d_lut flag ”h]”(j)�”}”(hŒ ``hw_3d_lut``”h]”jï)�”}”(hj`Žh]”hŒ hw_3d_lut”…”�”}”(hjbŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj^Žubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´K÷hjZŽubj-)�”}”(hhh]”hì)�”}”(hŒk3D LUT support. It implies a shaper LUT before. It may be shared with MPC by setting mpc:shared_3d_lut flag”h]”hŒk3D LUT support. It implies a shaper LUT before. It may be shared with MPC by setting mpc:shared_3d_lut flag”…”�”}”(hjyŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KöhjvŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjZŽubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³juŽh´K÷hj�ubj )�”}”(hŒ.``ogam_ram`` programmable out/blend gamma LUT ”h]”(j)�”}”(hŒ ``ogam_ram``”h]”jï)�”}”(hjšŽh]”hŒogam_ram”…”�”}”(hjœŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj˜Žubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Køhj”Žubj-)�”}”(hhh]”hì)�”}”(hŒ programmable out/blend gamma LUT”h]”hŒ programmable out/blend gamma LUT”…”�”}”(hj³Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¯Žh´Køhj°Žubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj”Žubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¯Žh´Køhj�ubj )�”}”(hŒ'``ocsc`` output color space conversion ”h]”(j)�”}”(hŒ``ocsc``”h]”jï)�”}”(hjÓŽh]”hŒocsc”…”�”}”(hjÕŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÑŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KùhjÍŽubj-)�”}”(hhh]”hì)�”}”(hŒoutput color space conversion”h]”hŒoutput color space conversion”…”�”}”(hjìŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jèŽh´KùhjéŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÍŽubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jèŽh´Kùhj�ubj )�”}”(hŒ<``dgam_rom_for_yuv`` pre-defined degamma LUT for YUV planes ”h]”(j)�”}”(hŒ``dgam_rom_for_yuv``”h]”jï)�”}”(hj �h]”hŒdgam_rom_for_yuv”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj �ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kúhj�ubj-)�”}”(hhh]”hì)�”}”(hŒ&pre-defined degamma LUT for YUV planes”h]”hŒ&pre-defined degamma LUT for YUV planes”…”�”}”(hj%�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j!�h´Kúhj"�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j!�h´Kúhj�ubj )�”}”(hŒ?``upsp_pre_scaler`` Ability to upsample 420/422 before scaling ”h]”(j)�”}”(hŒ``upsp_pre_scaler``”h]”jï)�”}”(hjE�h]”hŒupsp_pre_scaler”…”�”}”(hjG�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjC�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kûhj?�ubj-)�”}”(hhh]”hì)�”}”(hŒ*Ability to upsample 420/422 before scaling”h]”hŒ*Ability to upsample 420/422 before scaling”…”�”}”(hj^�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jZ�h´Kûhj[�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj?�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jZ�h´Kûhj�ubj )�”}”(hŒ=``dgam_rom_caps`` pre-definied curve caps for degamma 1D LUT ”h]”(j)�”}”(hŒ``dgam_rom_caps``”h]”jï)�”}”(hj~�h]”hŒ dgam_rom_caps”…”�”}”(hj€�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj|�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kühjx�ubj-)�”}”(hhh]”hì)�”}”(hŒ*pre-definied curve caps for degamma 1D LUT”h]”hŒ*pre-definied curve caps for degamma 1D LUT”…”�”}”(hj—�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j“�h´Kühj”�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjx�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j“�h´Kühj�ubj )�”}”(hŒ<``ogam_rom_caps`` pre-definied curve caps for regamma 1D LUT”h]”(j)�”}”(hŒ``ogam_rom_caps``”h]”jï)�”}”(hj·�h]”hŒ ogam_rom_caps”…”�”}”(hj¹�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjµ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kühj±�ubj-)�”}”(hhh]”hì)�”}”(hŒ*pre-definied curve caps for regamma 1D LUT”h]”hŒ*pre-definied curve caps for regamma 1D LUT”…”�”}”(hjÐ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´KýhjÍ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj±�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÌ�h´Kühj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¸Œubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubhì)�”}”(hŒ**Note**”h]”j¶)�”}”(hjú�h]”hŒNote”…”�”}”(hjü�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjø�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj‰h²hubhì)�”}”(hŒJhdr_mult and gamut remap (CTM) are always available in DPP (in that order)”h]”hŒJhdr_mult and gamut remap (CTM) are always available in DPP (in that order)”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Kþhj‰h²hubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œmpc_color_caps (C struct)”Œc.mpc_color_caps”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒmpc_color_caps”h]”j8)�”}”(hŒstruct mpc_color_caps”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj8�h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj4�h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjF�h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj4�h²hh³jE�h´Mubja)�”}”(hŒmpc_color_caps”h]”jg)�”}”(hj2�h]”hŒmpc_color_caps”…”�”}”(hjX�h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjT�ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj4�h²hh³jE�h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj0�h²hh³jE�h´Mubah}”(h]”j+�ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jE�h´Mhj-�h²hubj•)�”}”(hhh]”hì)�”}”(hŒGcolor pipeline capabilities for multiple pipe and plane combined blocks”h]”hŒGcolor pipeline capabilities for multiple pipe and plane combined blocks”…”�”}”(hjz�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M-hjw�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj-�h²hh³jE�h´Mubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j’�j·j’�j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX***Definition**:: struct mpc_color_caps { uint16_t gamut_remap : 1; uint16_t ogam_ram : 1; uint16_t ocsc : 1; uint16_t num_3dluts : 3; uint16_t num_rmcm_3dluts : 3; uint16_t shared_3d_lut:1; struct rom_curve_caps ogam_rom_caps; struct lut3d_caps mcm_3d_lut_caps; struct lut3d_caps rmcm_3d_lut_caps; bool preblend; struct fixed31_32 max_gamut_remap_coeff; }; **Members** ``gamut_remap`` color transformation matrix ``ogam_ram`` programmable out gamma LUT ``ocsc`` output color space conversion matrix ``num_3dluts`` MPC 3D LUT; always assumes a preceding shaper LUT ``num_rmcm_3dluts`` number of RMCM 3D LUTS; always assumes a preceding shaper LUT ``shared_3d_lut`` shared 3D LUT flag. Can be either DPP or MPC, but single instance ``ogam_rom_caps`` pre-definied curve caps for regamma 1D LUT ``mcm_3d_lut_caps`` HW support cap for MCM LUT memory ``rmcm_3d_lut_caps`` HW support cap for RMCM LUT memory ``preblend`` whether color manager supports preblend with MPC”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjž�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjš�ubhŒ:”…”�”}”(hjš�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M1hj–�ubjß)�”}”(hXstruct mpc_color_caps { uint16_t gamut_remap : 1; uint16_t ogam_ram : 1; uint16_t ocsc : 1; uint16_t num_3dluts : 3; uint16_t num_rmcm_3dluts : 3; uint16_t shared_3d_lut:1; struct rom_curve_caps ogam_rom_caps; struct lut3d_caps mcm_3d_lut_caps; struct lut3d_caps rmcm_3d_lut_caps; bool preblend; struct fixed31_32 max_gamut_remap_coeff; };”h]”hXstruct mpc_color_caps { uint16_t gamut_remap : 1; uint16_t ogam_ram : 1; uint16_t ocsc : 1; uint16_t num_3dluts : 3; uint16_t num_rmcm_3dluts : 3; uint16_t shared_3d_lut:1; struct rom_curve_caps ogam_rom_caps; struct lut3d_caps mcm_3d_lut_caps; struct lut3d_caps rmcm_3d_lut_caps; bool preblend; struct fixed31_32 max_gamut_remap_coeff; };”…”�”}”hj·�sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M3hj–�ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjÈ�h]”hŒMembers”…”�”}”(hjÊ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÆ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MAhj–�ubj)�”}”(hhh]”(j )�”}”(hŒ,``gamut_remap`` color transformation matrix ”h]”(j)�”}”(hŒ``gamut_remap``”h]”jï)�”}”(hjç�h]”hŒ gamut_remap”…”�”}”(hjé�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjå�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M1hjá�ubj-)�”}”(hhh]”hì)�”}”(hŒcolor transformation matrix”h]”hŒcolor transformation matrix”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jü�h´M1hjý�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjá�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jü�h´M1hjÞ�ubj )�”}”(hŒ(``ogam_ram`` programmable out gamma LUT ”h]”(j)�”}”(hŒ ``ogam_ram``”h]”jï)�”}”(hj ‘h]”hŒogam_ram”…”�”}”(hj"‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M2hj‘ubj-)�”}”(hhh]”hì)�”}”(hŒprogrammable out gamma LUT”h]”hŒprogrammable out gamma LUT”…”�”}”(hj9‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j5‘h´M2hj6‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j5‘h´M2hjÞ�ubj )�”}”(hŒ.``ocsc`` output color space conversion matrix ”h]”(j)�”}”(hŒ``ocsc``”h]”jï)�”}”(hjY‘h]”hŒocsc”…”�”}”(hj[‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjW‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M3hjS‘ubj-)�”}”(hhh]”hì)�”}”(hŒ$output color space conversion matrix”h]”hŒ$output color space conversion matrix”…”�”}”(hjr‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jn‘h´M3hjo‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjS‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jn‘h´M3hjÞ�ubj )�”}”(hŒA``num_3dluts`` MPC 3D LUT; always assumes a preceding shaper LUT ”h]”(j)�”}”(hŒ``num_3dluts``”h]”jï)�”}”(hj’‘h]”hŒ num_3dluts”…”�”}”(hj”‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M4hjŒ‘ubj-)�”}”(hhh]”hì)�”}”(hŒ1MPC 3D LUT; always assumes a preceding shaper LUT”h]”hŒ1MPC 3D LUT; always assumes a preceding shaper LUT”…”�”}”(hj«‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j§‘h´M4hj¨‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjŒ‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j§‘h´M4hjÞ�ubj )�”}”(hŒR``num_rmcm_3dluts`` number of RMCM 3D LUTS; always assumes a preceding shaper LUT ”h]”(j)�”}”(hŒ``num_rmcm_3dluts``”h]”jï)�”}”(hjË‘h]”hŒnum_rmcm_3dluts”…”�”}”(hjÍ‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÉ‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M5hjÅ‘ubj-)�”}”(hhh]”hì)�”}”(hŒ=number of RMCM 3D LUTS; always assumes a preceding shaper LUT”h]”hŒ=number of RMCM 3D LUTS; always assumes a preceding shaper LUT”…”�”}”(hjä‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jà‘h´M5hjá‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÅ‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jà‘h´M5hjÞ�ubj )�”}”(hŒT``shared_3d_lut`` shared 3D LUT flag. Can be either DPP or MPC, but single instance ”h]”(j)�”}”(hŒ``shared_3d_lut``”h]”jï)�”}”(hj’h]”hŒ shared_3d_lut”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M7hjþ‘ubj-)�”}”(hhh]”hì)�”}”(hŒAshared 3D LUT flag. Can be either DPP or MPC, but single instance”h]”hŒAshared 3D LUT flag. Can be either DPP or MPC, but single instance”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M6hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjþ‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j’h´M7hjÞ�ubj )�”}”(hŒ=``ogam_rom_caps`` pre-definied curve caps for regamma 1D LUT ”h]”(j)�”}”(hŒ``ogam_rom_caps``”h]”jï)�”}”(hj>’h]”hŒ ogam_rom_caps”…”�”}”(hj@’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj<’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M8•3hj8’ubj-)�”}”(hhh]”hì)�”}”(hŒ*pre-definied curve caps for regamma 1D LUT”h]”hŒ*pre-definied curve caps for regamma 1D LUT”…”�”}”(hjW’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jS’h´M8hjT’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj8’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jS’h´M8hjÞ�ubj )�”}”(hŒ6``mcm_3d_lut_caps`` HW support cap for MCM LUT memory ”h]”(j)�”}”(hŒ``mcm_3d_lut_caps``”h]”jï)�”}”(hjw’h]”hŒmcm_3d_lut_caps”…”�”}”(hjy’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhju’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M9hjq’ubj-)�”}”(hhh]”hì)�”}”(hŒ!HW support cap for MCM LUT memory”h]”hŒ!HW support cap for MCM LUT memory”…”�”}”(hj�’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jŒ’h´M9hj�’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjq’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŒ’h´M9hjÞ�ubj )�”}”(hŒ8``rmcm_3d_lut_caps`` HW support cap for RMCM LUT memory ”h]”(j)�”}”(hŒ``rmcm_3d_lut_caps``”h]”jï)�”}”(hj°’h]”hŒrmcm_3d_lut_caps”…”�”}”(hj²’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj®’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M:hjª’ubj-)�”}”(hhh]”hì)�”}”(hŒ"HW support cap for RMCM LUT memory”h]”hŒ"HW support cap for RMCM LUT memory”…”�”}”(hjÉ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÅ’h´M:hjÆ’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjª’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÅ’h´M:hjÞ�ubj )�”}”(hŒ=``preblend`` whether color manager supports preblend with MPC”h]”(j)�”}”(hŒ ``preblend``”h]”jï)�”}”(hjé’h]”hŒpreblend”…”�”}”(hjë’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjç’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M:hjã’ubj-)�”}”(hhh]”hì)�”}”(hŒ0whether color manager supports preblend with MPC”h]”hŒ0whether color manager supports preblend with MPC”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M;hjÿ’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjã’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jþ’h´M:hjÞ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj–�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdc_color_caps (C struct)”Œc.dc_color_caps”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ dc_color_caps”h]”j8)�”}”(hŒstruct dc_color_caps”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjC“h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj?“h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MAubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ“h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj?“h²hh³jP“h´MAubja)�”}”(hŒ dc_color_caps”h]”jg)�”}”(hj=“h]”hŒ dc_color_caps”…”�”}”(hjc“h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj_“ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj?“h²hh³jP“h´MAubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj;“h²hh³jP“h´MAubah}”(h]”j6“ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jP“h´MAhj8“h²hubj•)�”}”(hhh]”hì)�”}”(hŒ2color pipes capabilities for DPP and MPC hw blocks”h]”hŒ2color pipes capabilities for DPP and MPC hw blocks”…”�”}”(hj…“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MKhj‚“h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj8“h²hh³jP“h´MAubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j�“j·j�“j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hŒÆ**Definition**:: struct dc_color_caps { struct dpp_color_caps dpp; struct mpc_color_caps mpc; }; **Members** ``dpp`` color pipes caps for DPP ``mpc`` color pipes caps for MPC”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj©“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¥“ubhŒ:”…”�”}”(hj¥“h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MOhj¡“ubjß)�”}”(hŒWstruct dc_color_caps { struct dpp_color_caps dpp; struct mpc_color_caps mpc; };”h]”hŒWstruct dc_color_caps { struct dpp_color_caps dpp; struct mpc_color_caps mpc; };”…”�”}”hj“sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MQhj¡“ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjÓ“h]”hŒMembers”…”�”}”(hjÕ“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÑ“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MVhj¡“ubj)�”}”(hhh]”(j )�”}”(hŒ!``dpp`` color pipes caps for DPP ”h]”(j)�”}”(hŒ``dpp``”h]”jï)�”}”(hjò“h]”hŒdpp”…”�”}”(hjô“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjð“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MMhjì“ubj-)�”}”(hhh]”hì)�”}”(hŒcolor pipes caps for DPP”h]”hŒcolor pipes caps for DPP”…”�”}”(hj ”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j”h´MMhj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjì“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j”h´MMhjé“ubj )�”}”(hŒ ``mpc`` color pipes caps for MPC”h]”(j)�”}”(hŒ``mpc``”h]”jï)�”}”(hj+”h]”hŒmpc”…”�”}”(hj-”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj)”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MMhj%”ubj-)�”}”(hhh]”hì)�”}”(hŒcolor pipes caps for MPC”h]”hŒcolor pipes caps for MPC”…”�”}”(hjD”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MNhjA”ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj%”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j@”h´MMhjé“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¡“ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œpipe_split_policy (C enum)”Œc.pipe_split_policy”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒpipe_split_policy”h]”j8)�”}”(hŒenum pipe_split_policy”h]”(j>)�”}”(hj^8h]”hŒenum”…”�”}”(hj…”h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj�”h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MTubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“”h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj�”h²hh³j’”h´MTubja)�”}”(hŒpipe_split_policy”h]”jg)�”}”(hj”h]”hŒpipe_split_policy”…”�”}”(hj¥”h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¡”ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj�”h²hh³j’”h´MTubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj}”h²hh³j’”h´MTubah}”(h]”jx”ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j’”h´MThjz”h²hubj•)�”}”(hhh]”hì)�”}”(hŒ$Pipe split strategy supported by DCN”h]”hŒ$Pipe split strategy supported by DCN”…”�”}”(hjÇ”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M³hjÄ”h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjz”h²hh³j’”h´MTubeh}”(h]”h ]”(jûŒenum”eh"]”h$]”h&]”jµjûj¶jß”j·jß”j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX**Constants** ``MPC_SPLIT_DYNAMIC`` DC will automatically decide how to split the pipe in order to bring the best trade-off between performance and power consumption. This is the recommended option. ``MPC_SPLIT_AVOID`` Avoid pipe split, which means that DC will not try any sort of split optimization. ``MPC_SPLIT_AVOID_MULT_DISP`` With this option, DC will only try to optimize the pipe utilization when using a single display; if the user connects to a second display, DC will avoid pipe split.”h]”(hì)�”}”(hŒ **Constants**”h]”j¶)�”}”(hjé”h]”hŒ Constants”…”�”}”(hjë”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjç”ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M·hjã”ubj)�”}”(hhh]”(j )�”}”(hŒ¹``MPC_SPLIT_DYNAMIC`` DC will automatically decide how to split the pipe in order to bring the best trade-off between performance and power consumption. This is the recommended option. ”h]”(j)�”}”(hŒ``MPC_SPLIT_DYNAMIC``”h]”jï)�”}”(hj•h]”hŒMPC_SPLIT_DYNAMIC”…”�”}”(hj •h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¼hj•ubj-)�”}”(hhh]”hì)�”}”(hŒ¢DC will automatically decide how to split the pipe in order to bring the best trade-off between performance and power consumption. This is the recommended option.”h]”hŒ¢DC will automatically decide how to split the pipe in order to bring the best trade-off between performance and power consumption. This is the recommended option.”…”�”}”(hj!•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mºhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j•h´M¼hjÿ”ubj )�”}”(hŒg``MPC_SPLIT_AVOID`` Avoid pipe split, which means that DC will not try any sort of split optimization. ”h]”(j)�”}”(hŒ``MPC_SPLIT_AVOID``”h]”jï)�”}”(hjB•h]”hŒMPC_SPLIT_AVOID”…”�”}”(hjD•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj@•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÀhj<•ubj-)�”}”(hhh]”hì)�”}”(hŒRAvoid pipe split, which means that DC will not try any sort of split optimization.”h]”hŒRAvoid pipe split, which means that DC will not try any sort of split optimization.”…”�”}”(hj[•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¿hjX•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj<•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jW•h´MÀhjÿ”ubj )�”}”(hŒÂ``MPC_SPLIT_AVOID_MULT_DISP`` With this option, DC will only try to optimize the pipe utilization when using a single display; if the user connects to a second display, DC will avoid pipe split.”h]”(j)�”}”(hŒ``MPC_SPLIT_AVOID_MULT_DISP``”h]”jï)�”}”(hj|•h]”hŒMPC_SPLIT_AVOID_MULT_DISP”…”�”}”(hj~•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjz•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÄhjv•ubj-)�”}”(hhh]”hì)�”}”(hŒ¤With this option, DC will only try to optimize the pipe utilization when using a single display; if the user connects to a second display, DC will avoid pipe split.”h]”hŒ¤With this option, DC will only try to optimize the pipe utilization when using a single display; if the user connects to a second display, DC will avoid pipe split.”…”�”}”(hj••h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÃhj’•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjv•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‘•h´MÄhjÿ”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjã”ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj¿•h]”hŒ Description”…”�”}”(hjÁ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj½•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÇhj‰h²hubhì)�”}”(hŒlThis enum is used to define the pipe split policy supported by DCN. By default, DC favors MPC_SPLIT_DYNAMIC.”h]”hŒlThis enum is used to define the pipe split policy supported by DCN. By default, DC favors MPC_SPLIT_DYNAMIC.”…”�”}”(hjÕ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M´hj‰h²hubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ"dc_check_state_update (C function)”Œc.dc_check_state_update”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ…struct dc_update_descriptor dc_check_state_update (const struct dc_check_config *check_config, const struct dc_state_update *updates)”h]”j8)�”}”(hŒ„struct dc_update_descriptor dc_check_state_update(const struct dc_check_config *check_config, const struct dc_state_update *updates)”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjý•h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjù•h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MfubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj –h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjù•h²hh³j –h´Mfubh)�”}”(hhh]”jg)�”}”(hŒdc_update_descriptor”h]”hŒdc_update_descriptor”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj–ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j–Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+Œdc_check_state_update”sbŒc.dc_check_state_update”†”asbuh1hhjù•h²hh³j –h´MfubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=–h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjù•h²hh³j –h´Mfubja)�”}”(hŒdc_check_state_update”h]”jg)�”}”(hj:–h]”hŒdc_check_state_update”…”�”}”(hjO–h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjK–ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjù•h²hh³j –h´MfubjE+)�”}”(hŒS(const struct dc_check_config *check_config, const struct dc_state_update *updates)”h]”(jK+)�”}”(hŒ*const struct dc_check_config *check_config”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hjj–h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjf–ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw–h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjf–ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hj…–h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjf–ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’–h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjf–ubh)�”}”(hhh]”jg)�”}”(hŒdc_check_config”h]”hŒdc_check_config”…”�”}”(hj£–h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj –ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j¥–Œmodname”NŒ classname”Nj'j*)�”}”j-]”j8–Œc.dc_check_state_update”†”asbuh1hhjf–ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ–h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjf–ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjÏ–h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjf–ubjg)�”}”(hŒ check_config”h]”hŒ check_config”…”�”}”(hjÜ–h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjf–ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjb–ubjK+)�”}”(hŒ%const struct dc_state_update *updates”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hjõ–h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjñ–ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjñ–ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjñ–ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjñ–ubh)�”}”(hhh]”jg)�”}”(hŒdc_state_update”h]”hŒdc_state_update”…”�”}”(hj.—h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj+—ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j0—Œmodname”NŒ classname”Nj'j*)�”}”j-]”j8–Œc.dc_check_state_update”†”asbuh1hhjñ–ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL—h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjñ–ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjZ—h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjñ–ubjg)�”}”(hŒupdates”h]”hŒupdates”…”�”}”(hjg—h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjñ–ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjb–ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjù•h²hh³j –h´Mfubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjõ•h²hh³j –h´Mfubah}”(h]”jð•ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j –h´Mfhjò•h²hubj•)�”}”(hhh]”hì)�”}”(hŒ)Classify an update without committing it.”h]”hŒ)Classify an update without committing it.”…”�”}”(hj‘—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MfhjŽ—h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjò•h²hh³j –h´Mfubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j©—j·j©—j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hŒë**Parameters** ``const struct dc_check_config *check_config`` DC check configuration ``const struct dc_state_update *updates`` root update object to classify **Return** descriptor indicating update type and required lock scope.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj³—h]”hŒ Parameters”…”�”}”(hjµ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj±—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mjhj­—ubj)�”}”(hhh]”(j )�”}”(hŒF``const struct dc_check_config *check_config`` DC check configuration ”h]”(j)�”}”(hŒ.``const struct dc_check_config *check_config``”h]”jï)�”}”(hjÒ—h]”hŒ*const struct dc_check_config *check_config”…”�”}”(hjÔ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjЗubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MghjÌ—ubj-)�”}”(hhh]”hì)�”}”(hŒDC check configuration”h]”hŒDC check configuration”…”�”}”(hjë—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jç—h´Mghjè—ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÌ—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jç—h´MghjÉ—ubj )�”}”(hŒI``const struct dc_state_update *updates`` root update object to classify ”h]”(j)�”}”(hŒ)``const struct dc_state_update *updates``”h]”jï)�”}”(hj ˜h]”hŒ%const struct dc_state_update *updates”…”�”}”(hj ˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhhj˜ubj-)�”}”(hhh]”hì)�”}”(hŒroot update object to classify”h]”hŒroot update object to classify”…”�”}”(hj$˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j ˜h´Mhhj!˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j ˜h´MhhjÉ—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj­—ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjF˜h]”hŒReturn”…”�”}”(hjH˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjD˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mjhj­—ubhì)�”}”(hŒ:descriptor indicating update type and required lock scope.”h]”hŒ:descriptor indicating update type and required lock scope.”…”�”}”(hj\˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mjhj­—ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdc_update_state (C function)”Œc.dc_update_state”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒKbool dc_update_state (struct dc *dc, const struct dc_state_update *updates)”h]”j8)�”}”(hŒJbool dc_update_state(struct dc *dc, const struct dc_state_update *updates)”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hj‹˜h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj‡˜h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MqubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™˜h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj‡˜h²hh³j˜˜h´Mqubja)�”}”(hŒdc_update_state”h]”jg)�”}”(hŒdc_update_state”h]”hŒdc_update_state”…”�”}”(hj«˜h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj§˜ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj‡˜h²hh³j˜˜h´MqubjE+)�”}”(hŒ6(struct dc *dc, const struct dc_state_update *updates)”h]”(jK+)�”}”(hŒ struct dc *dc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjǘh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjØubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔ˜h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjØubh)�”}”(hhh]”jg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hjå˜h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjâ˜ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j瘌modname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+j­˜sbŒc.dc_update_state”†”asbuh1hhjØubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjØubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjØubjg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hj ™h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjØubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj¿˜ubjK+)�”}”(hŒ%const struct dc_state_update *updates”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj9™h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj5™ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjF™h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj5™ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjT™h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj5™ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hja™h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj5™ubh)�”}”(hhh]”jg)�”}”(hŒdc_state_update”h]”hŒdc_state_update”…”�”}”(hjr™h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjo™ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jt™Œmodname”NŒ classname”Nj'j*)�”}”j-]”j™Œc.dc_update_state”†”asbuh1hhj5™ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�™h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj5™ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjž™h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj5™ubjg)�”}”(hŒupdates”h]”hŒupdates”…”�”}”(hj«™h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj5™ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj¿˜ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj‡˜h²hh³j˜˜h´Mqubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjƒ˜h²hh³j˜˜h´Mqubah}”(h]”j~˜ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j˜˜h´Mqhj€˜h²hubj•)�”}”(hhh]”hì)�”}”(hŒ#Commit an absolute dc_state_update.”h]”hŒ#Commit an absolute dc_state_update.”…”�”}”(hjÕ™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MqhjÒ™h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj€˜h²hh³j˜˜h´Mqubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jí™j·jí™j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hŒÊ**Parameters** ``struct dc *dc`` DC structure ``const struct dc_state_update *updates`` root update object carrying stream, plane, and probe updates **Return** true on success, false on failure.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj÷™h]”hŒ Parameters”…”�”}”(hjù™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjõ™ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Muhjñ™ubj)�”}”(hhh]”(j )�”}”(hŒ``struct dc *dc`` DC structure ”h]”(j)�”}”(hŒ``struct dc *dc``”h]”jï)�”}”(hjšh]”hŒ struct dc *dc”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mrhjšubj-)�”}”(hhh]”hì)�”}”(hŒ DC structure”h]”hŒ DC structure”…”�”}”(hj/šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j+šh´Mrhj,šubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjšubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j+šh´Mrhj šubj )�”}”(hŒg``const struct dc_state_update *updates`` root update object carrying stream, plane, and probe updates ”h]”(j)�”}”(hŒ)``const struct dc_state_update *updates``”h]”jï)�”}”(hjOšh]”hŒ%const struct dc_state_update *updates”…”�”}”(hjQšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjMšubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MshjIšubj-)�”}”(hhh]”hì)�”}”(hŒ)�”}”(hjAh]”hŒstruct”…”�”}”(hjÏšh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjËšh²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M|ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝšh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjËšh²hh³jÜšh´M|ubh)�”}”(hhh]”jg)�”}”(hŒdc_update_scratch_space”h]”hŒdc_update_scratch_space”…”�”}”(hjîšh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjëšubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jðšŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+Œdc_update_state_init”sbŒc.dc_update_state_init”†”asbuh1hhjËšh²hh³jÜšh´M|ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjËšh²hh³jÜšh´M|ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjËšh²hh³jÜšh´M|ubja)�”}”(hŒdc_update_state_init”h]”jg)�”}”(hj ›h]”hŒdc_update_state_init”…”�”}”(hj.›h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj*›ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjËšh²hh³jÜšh´M|ubjE+)�”}”(hŒ6(struct dc *dc, const struct dc_state_update *updates)”h]”(jK+)�”}”(hŒ struct dc *dc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjI›h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjE›ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjV›h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjE›ubh)�”}”(hhh]”jg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hjg›h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjd›ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”ji›Œmodname”NŒ classname”Nj'j*)�”}”j-]”j ›Œc.dc_update_state_init”†”asbuh1hhjE›ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…›h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjE›ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj“›h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjE›ubjg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hj ›h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjE›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjA›ubjK+)�”}”(hŒ%const struct dc_state_update *updates”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj¹›h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjµ›ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆ›h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjµ›ubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjÔ›h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjµ›ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjá›h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjµ›ubh)�”}”(hhh]”jg)�”}”(hŒdc_state_update”h]”hŒdc_state_update”…”�”}”(hjò›h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjï›ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jô›Œmodname”NŒ classname”Nj'j*)�”}”j-]”j ›Œc.dc_update_state_init”†”asbuh1hhjµ›ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjµ›ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjµ›ubjg)�”}”(hŒupdates”h]”hŒupdates”…”�”}”(hj+œh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjµ›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjA›ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjËšh²hh³jÜšh´M|ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjÇšh²hh³jÜšh´M|ubah}”(h]”jšah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jÜšh´M|hjÄšh²hubj•)�”}”(hhh]”hì)�”}”(hŒ/Acquire and initialise a commit scratch buffer.”h]”hŒ/Acquire and initialise a commit scratch buffer.”…”�”}”(hjUœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M|hjRœh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÄšh²hh³jÜšh´M|ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jmœj·jmœj¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hXo**Parameters** ``struct dc *dc`` DC structure ``const struct dc_state_update *updates`` update descriptor; validated before the slot is acquired **Return** a scratch slot on success, NULL if validation fails or the pool is exhausted. The slot must be released via dc_update_state_cleanup() on success, or automatically by dc_update_state_prepare() on failure.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjwœh]”hŒ Parameters”…”�”}”(hjyœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjuœubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M€hjqœubj)�”}”(hhh]”(j )�”}”(hŒ``struct dc *dc`` DC structure ”h]”(j)�”}”(hŒ``struct dc *dc``”h]”jï)�”}”(hj–œh]”hŒ struct dc *dc”…”�”}”(hj˜œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj”œubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M}hj�œubj-)�”}”(hhh]”hì)�”}”(hŒ DC structure”h]”hŒ DC structure”…”�”}”(hj¯œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j«œh´M}hj¬œubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj�œubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j«œh´M}hj�œubj )�”}”(hŒc``const struct dc_state_update *updates`` update descriptor; validated before the slot is acquired ”h]”(j)�”}”(hŒ)``const struct dc_state_update *updates``”h]”jï)�”}”(hjÏœh]”hŒ%const struct dc_state_update *updates”…”�”}”(hjÑœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÍœubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M~hjÉœubj-)�”}”(hhh]”hì)�”}”(hŒ8update descriptor; validated before the slot is acquired”h]”hŒ8update descriptor; validated before the slot is acquired”…”�”}”(hjèœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jäœh´M~hjåœubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÉœubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jäœh´M~hj�œubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjqœubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hj �h]”hŒReturn”…”�”}”(hj �h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M€hjqœubhì)�”}”(hŒËa scratch slot on success, NULL if validation fails or the pool is exhausted. The slot must be released via dc_update_state_cleanup() on success, or automatically by dc_update_state_prepare() on failure.”h]”hŒËa scratch slot on success, NULL if validation fails or the pool is exhausted. The slot must be released via dc_update_state_cleanup() on success, or automatically by dc_update_state_prepare() on failure.”…”�”}”(hj �h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M€hjqœubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ$dc_update_state_prepare (C function)”Œc.dc_update_state_prepare”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒFbool dc_update_state_prepare (struct dc_update_scratch_space *scratch)”h]”j8)�”}”(hŒEbool dc_update_state_prepare(struct dc_update_scratch_space *scratch)”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hjO�h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjK�h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MŠubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]�h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjK�h²hh³j\�h´MŠubja)�”}”(hŒdc_update_state_prepare”h]”jg)�”}”(hŒdc_update_state_prepare”h]”hŒdc_update_state_prepare”…”�”}”(hjo�h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjk�ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjK�h²hh³j\�h´MŠubjE+)�”}”(hŒ)(struct dc_update_scratch_space *scratch)”h]”jK+)�”}”(hŒ'struct dc_update_scratch_space *scratch”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj‹�h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj‡�ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜�h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj‡�ubh)�”}”(hhh]”jg)�”}”(hŒdc_update_scratch_space”h]”hŒdc_update_scratch_space”…”�”}”(hj©�h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¦�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j«�Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jq�sbŒc.dc_update_state_prepare”†”asbuh1hhj‡�ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ�h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj‡�ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj×�h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj‡�ubjg)�”}”(hŒscratch”h]”hŒscratch”…”�”}”(hjä�h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj‡�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjƒ�ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjK�h²hh³j\�h´MŠubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjG�h²hh³j\�h´MŠubah}”(h]”jB�ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j\�h´MŠhjD�h²hubj•)�”}”(hhh]”hì)�”}”(hŒ)Prepare the commit under the global lock.”h]”hŒ)Prepare the commit under the global lock.”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MŠhj žh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjD�h²hh³j\�h´MŠubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j&žj·j&žj¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hŒæ**Parameters** ``struct dc_update_scratch_space *scratch`` commit scratch from dc_update_state_init() **Description** On failure the scratch slot is released and false is returned; the caller must not call execute or cleanup.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj0žh]”hŒ Parameters”…”�”}”(hj2žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj.žubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MŽhj*žubj)�”}”(hhh]”j )�”}”(hŒW``struct dc_update_scratch_space *scratch`` commit scratch from dc_update_state_init() ”h]”(j)�”}”(hŒ+``struct dc_update_scratch_space *scratch``”h]”jï)�”}”(hjOžh]”hŒ'struct dc_update_scratch_space *scratch”…”�”}”(hjQžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjMžubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M‹hjIžubj-)�”}”(hhh]”hì)�”}”(hŒ*commit scratch from dc_update_state_init()”h]”hŒ*commit scratch from dc_update_state_init()”…”�”}”(hjhžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jdžh´M‹hježubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjIžubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jdžh´M‹hjFžubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj*žubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hjŠžh]”hŒ Description”…”�”}”(hjŒžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjˆžubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M�hj*žubhì)�”}”(hŒkOn failure the scratch slot is released and false is returned; the caller must not call execute or cleanup.”h]”hŒkOn failure the scratch slot is released and false is returned; the caller must not call execute or cleanup.”…”�”}”(hj žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MŒhj*žubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ$dc_update_state_execute (C function)”Œc.dc_update_state_execute”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒLvoid dc_update_state_execute (const struct dc_update_scratch_space *scratch)”h]”j8)�”}”(hŒKvoid dc_update_state_execute(const struct dc_update_scratch_space *scratch)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÏžh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjËžh²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M“ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞžh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjËžh²hh³jÝžh´M“ubja)�”}”(hŒdc_update_state_execute”h]”jg)�”}”(hŒdc_update_state_execute”h]”hŒdc_update_state_execute”…”�”}”(hjðžh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjìžubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjËžh²hh³jÝžh´M“ubjE+)�”}”(hŒ/(const struct dc_update_scratch_space *scratch)”h]”jK+)�”}”(hŒ-const struct dc_update_scratch_space *scratch”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hj Ÿh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjŸubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŸubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hj'Ÿh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjŸubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4Ÿh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŸubh)�”}”(hhh]”jg)�”}”(hŒdc_update_scratch_space”h]”hŒdc_update_scratch_space”…”�”}”(hjEŸh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjBŸubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jGŸŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jòžsbŒc.dc_update_state_execute”†”asbuh1hhjŸubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeŸh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŸubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjsŸh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjŸubjg)�”}”(hŒscratch”h]”hŒscratch”…”�”}”(hj€Ÿh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjŸubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjŸubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjËžh²hh³jÝžh´M“ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjÇžh²hh³jÝžh´M“ubah}”(h]”jžah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jÝžh´M“hjÄžh²hubj•)�”}”(hhh]”hì)�”}”(hŒ1Program hardware; called without the global lock.”h]”hŒ1Program hardware; called without the global lock.”…”�”}”(hjªŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M“hj§Ÿh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÄžh²hh³jÝžh´M“ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jŸj·jŸj¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hŒn**Parameters** ``const struct dc_update_scratch_space *scratch`` commit scratch from dc_update_state_init()”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjÌŸh]”hŒ Parameters”…”�”}”(hjΟh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÊŸubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M—hjÆŸubj)�”}”(hhh]”j )�”}”(hŒ\``const struct dc_update_scratch_space *scratch`` commit scratch from dc_update_state_init()”h]”(j)�”}”(hŒ1``const struct dc_update_scratch_space *scratch``”h]”jï)�”}”(hjëŸh]”hŒ-const struct dc_update_scratch_space *scratch”…”�”}”(hjíŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjéŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M™hjåŸubj-)�”}”(hhh]”hì)�”}”(hŒ*commit scratch from dc_update_state_init()”h]”hŒ*commit scratch from dc_update_state_init()”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M”hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjåŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j h´M™hjâŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÆŸubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ$dc_update_state_cleanup (C function)”Œc.dc_update_state_cleanup”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒFbool dc_update_state_cleanup (struct dc_update_scratch_space *scratch)”h]”j8)�”}”(hŒEbool dc_update_state_cleanup(struct dc_update_scratch_space *scratch)”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hjE h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjA h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M™ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjA h²hh³jR h´M™ubja)�”}”(hŒdc_update_state_cleanup”h]”jg)�”}”(hŒdc_update_state_cleanup”h]”hŒdc_update_state_cleanup”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhja ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjA h²hh³jR h´M™ubjE+)�”}”(hŒ)(struct dc_update_scratch_space *scratch)”h]”jK+)�”}”(hŒ'struct dc_update_scratch_space *scratch”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj} ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽ h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj} ubh)�”}”(hhh]”jg)�”}”(hŒdc_update_scratch_space”h]”hŒdc_update_scratch_space”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjœ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j¡ Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jg sbŒc.dc_update_state_cleanup”†”asbuh1hhj} ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj} ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjÍ h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj} ubjg)�”}”(hŒscratch”h]”hŒscratch”…”�”}”(hjÚ h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj} ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjy ubah}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjA h²hh³jR h´M™ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj= h²hh³jR h´M™ubah}”(h]”j8 ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jR h´M™hj: h²hubj•)�”}”(hhh]”hì)�”}”(hŒ1Finalise the commit and release the scratch slot.”h]”hŒ1Finalise the commit and release the scratch slot.”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M™hj¡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj: h²hh³jR h´M™ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j¡j·j¡j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hŒò**Parameters** ``struct dc_update_scratch_space *scratch`` commit scratch from dc_update_state_init() **Description** Must be called with the global lock held. Returns true if the caller must loop back to prepare (SEAMLESS continuation).”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj&¡h]”hŒ Parameters”…”�”}”(hj(¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj$¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M�hj ¡ubj)�”}”(hhh]”j )�”}”(hŒW``struct dc_update_scratch_space *scratch`` commit scratch from dc_update_state_init() ”h]”(j)�”}”(hŒ+``struct dc_update_scratch_space *scratch``”h]”jï)�”}”(hjE¡h]”hŒ'struct dc_update_scratch_space *scratch”…”�”}”(hjG¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjC¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mšhj?¡ubj-)�”}”(hhh]”hì)�”}”(hŒ*commit scratch from dc_update_state_init()”h]”hŒ*commit scratch from dc_update_state_init()”…”�”}”(hj^¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jZ¡h´Mšhj[¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj?¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jZ¡h´Mšhj<¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ¡ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj€¡h]”hŒ Description”…”�”}”(hj‚¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj~¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mœhj ¡ubhì)�”}”(hŒwMust be called with the global lock held. Returns true if the caller must loop back to prepare (SEAMLESS continuation).”h]”hŒwMust be called with the global lock held. Returns true if the caller must loop back to prepare (SEAMLESS continuation).”…”�”}”(hj–¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M›hj ¡ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdc_probe_latencies (C struct)”Œc.dc_probe_latencies”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdc_probe_latencies”h]”j8)�”}”(hŒstruct dc_probe_latencies”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjÅ¡h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÁ¡h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¡ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ¡h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÁ¡h²hh³jÒ¡h´M¡ubja)�”}”(hŒdc_probe_latencies”h]”jg)�”}”(hj¿¡h]”hŒdc_probe_latencies”…”�”}”(hjå¡h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjá¡ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjÁ¡h²hh³jÒ¡h´M¡ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj½¡h²hh³jÒ¡h´M¡ubah}”(h]”j¸¡ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jÒ¡h´M¡hjº¡h²hubj•)�”}”(hhh]”hì)�”}”(hŒ!min/max/avg memory latency in ns.”h]”hŒ!min/max/avg memory latency in ns.”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¢hj¢h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjº¡h²hh³jÒ¡h´M¡ubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j¢j·j¢j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX=**Definition**:: struct dc_probe_latencies { uint32_t max_latency_ns; uint32_t avg_latency_ns; uint32_t min_latency_ns; }; **Members** ``max_latency_ns`` maximum latency in nanoseconds ``avg_latency_ns`` average latency in nanoseconds ``min_latency_ns`` minimum latency in nanoseconds”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj+¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj'¢ubhŒ:”…”�”}”(hj'¢h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¦hj#¢ubjß)�”}”(hŒustruct dc_probe_latencies { uint32_t max_latency_ns; uint32_t avg_latency_ns; uint32_t min_latency_ns; };”h]”hŒustruct dc_probe_latencies { uint32_t max_latency_ns; uint32_t avg_latency_ns; uint32_t min_latency_ns; };”…”�”}”hjD¢sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¨hj#¢ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjU¢h]”hŒMembers”…”�”}”(hjW¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjS¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M®hj#¢ubj)�”}”(hhh]”(j )�”}”(hŒ2``max_latency_ns`` maximum latency in nanoseconds ”h]”(j)�”}”(hŒ``max_latency_ns``”h]”jï)�”}”(hjt¢h]”hŒmax_latency_ns”…”�”}”(hjv¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjr¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¤hjn¢ubj-)�”}”(hhh]”hì)�”}”(hŒmaximum latency in nanoseconds”h]”hŒmaximum latency in nanoseconds”…”�”}”(hj�¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‰¢h´M¤hjŠ¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjn¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‰¢h´M¤hjk¢ubj )�”}”(hŒ2``avg_latency_ns`` average latency in nanoseconds ”h]”(j)�”}”(hŒ``avg_latency_ns``”h]”jï)�”}”(hj­¢h]”hŒavg_latency_ns”…”�”}”(hj¯¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj«¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¥hj§¢ubj-)�”}”(hhh]”hì)�”}”(hŒaverage latency in nanoseconds”h]”hŒaverage latency in nanoseconds”…”�”}”(hjÆ¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¢h´M¥hjâubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj§¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¢h´M¥hjk¢ubj )�”}”(hŒ1``min_latency_ns`` minimum latency in nanoseconds”h]”(j)�”}”(hŒ``min_latency_ns``”h]”jï)�”}”(hjæ¢h]”hŒmin_latency_ns”…”�”}”(hjè¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjä¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¥hjà¢ubj-)�”}”(hhh]”hì)�”}”(hŒminimum latency in nanoseconds”h]”hŒminimum latency in nanoseconds”…”�”}”(hjÿ¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¦hjü¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjà¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jû¢h´M¥hjk¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj#¢ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdc_probe_status (C struct)”Œc.dc_probe_status”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdc_probe_status”h]”j8)�”}”(hŒstruct dc_probe_status”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj@£h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj<£h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¬ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN£h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj<£h²hh³jM£h´M¬ubja)�”}”(hŒdc_probe_status”h]”jg)�”}”(hj:£h]”hŒdc_probe_status”…”�”}”(hj`£h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj\£ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj<£h²hh³jM£h´M¬ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj8£h²hh³jM£h´M¬ubah}”(h]”j3£ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jM£h´M¬hj5£h²hubj•)�”}”(hhh]”hì)�”}”(hŒresults for a probe.”h]”hŒresults for a probe.”…”�”}”(hj‚£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M®hj£h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj5£h²hh³jM£h´M¬ubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jš£j·jš£j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX **Definition**:: struct dc_probe_status { bool valid; enum dc_probe_type type; union { uint32_t bandwidth_mbps; struct dc_probe_latencies latency; uint32_t urgent_assertion_count; uint32_t prefetch_data_size; } u; }; **Members** ``valid`` true if a measurement was latched. ``type`` type of the probe that produced this result. ``u.bandwidth_mbps`` peak BW in Mbps (DC_PROBE_PEAK_MEM_BW). ``u.latency`` min/max/avg memory latency in ns (DC_PROBE_MEM_LATENCY), stored as struct dc_probe_latencies. ``u.urgent_assertion_count`` number of urgent assertion events (DC_PROBE_URGENT_ASSERTION_COUNT). ``u.prefetch_data_size`` total prefetch data in bytes (DC_PROBE_PREFETCH_DATA_SIZE).”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj¦£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¢£ubhŒ:”…”�”}”(hj¢£h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M²hjž£ubjß)�”}”(hŒÿstruct dc_probe_status { bool valid; enum dc_probe_type type; union { uint32_t bandwidth_mbps; struct dc_probe_latencies latency; uint32_t urgent_assertion_count; uint32_t prefetch_data_size; } u; };”h]”hŒÿstruct dc_probe_status { bool valid; enum dc_probe_type type; union { uint32_t bandwidth_mbps; struct dc_probe_latencies latency; uint32_t urgent_assertion_count; uint32_t prefetch_data_size; } u; };”…”�”}”hj¿£sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M´hjž£ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjУh]”hŒMembers”…”�”}”(hjÒ£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjΣubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¿hjž£ubj)�”}”(hhh]”(j )�”}”(hŒ-``valid`` true if a measurement was latched. ”h]”(j)�”}”(hŒ ``valid``”h]”jï)�”}”(hjï£h]”hŒvalid”…”�”}”(hjñ£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjí£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M°hjé£ubj-)�”}”(hhh]”hì)�”}”(hŒ"true if a measurement was latched.”h]”hŒ"true if a measurement was latched.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¤h´M°hj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjé£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¤h´M°hjæ£ubj )�”}”(hŒ6``type`` type of the probe that produced this result. ”h]”(j)�”}”(hŒ``type``”h]”jï)�”}”(hj(¤h]”hŒtype”…”�”}”(hj*¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj&¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M±hj"¤ubj-)�”}”(hhh]”hì)�”}”(hŒ,type of the probe that produced this result.”h]”hŒ,type of the probe that produced this result.”…”�”}”(hjA¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j=¤h´M±hj>¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj"¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j=¤h´M±hjæ£ubj )�”}”(hŒ=``u.bandwidth_mbps`` peak BW in Mbps (DC_PROBE_PEAK_MEM_BW). ”h]”(j)�”}”(hŒ``u.bandwidth_mbps``”h]”jï)�”}”(hja¤h]”hŒu.bandwidth_mbps”…”�”}”(hjc¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj_¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M²hj[¤ubj-)�”}”(hhh]”hì)�”}”(hŒ'peak BW in Mbps (DC_PROBE_PEAK_MEM_BW).”h]”hŒ'peak BW in Mbps (DC_PROBE_PEAK_MEM_BW).”…”�”}”(hjz¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jv¤h´M²hjw¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj[¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jv¤h´M²hjæ£ubj )�”}”(hŒl``u.latency`` min/max/avg memory latency in ns (DC_PROBE_MEM_LATENCY), stored as struct dc_probe_latencies. ”h]”(j)�”}”(hŒ ``u.latency``”h]”jï)�”}”(hjš¤h]”hŒ u.latency”…”�”}”(hjœ¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj˜¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M´hj”¤ubj-)�”}”(hhh]”hì)�”}”(hŒ]min/max/avg memory latency in ns (DC_PROBE_MEM_LATENCY), stored as struct dc_probe_latencies.”h]”hŒ]min/max/avg memory latency in ns (DC_PROBE_MEM_LATENCY), stored as struct dc_probe_latencies.”…”�”}”(hj³¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M³hj°¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj”¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¯¤h´M´hjæ£ubj )�”}”(hŒb``u.urgent_assertion_count`` number of urgent assertion events (DC_PROBE_URGENT_ASSERTION_COUNT). ”h]”(j)�”}”(hŒ``u.urgent_assertion_count``”h]”jï)�”}”(hjÔ¤h]”hŒu.urgent_assertion_count”…”�”}”(hjÖ¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÒ¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MµhjΤubj-)�”}”(hhh]”hì)�”}”(hŒDnumber of urgent assertion events (DC_PROBE_URGENT_ASSERTION_COUNT).”h]”hŒDnumber of urgent assertion events (DC_PROBE_URGENT_ASSERTION_COUNT).”…”�”}”(hjí¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jé¤h´Mµhjê¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjΤubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jé¤h´Mµhjæ£ubj )�”}”(hŒT``u.prefetch_data_size`` total prefetch data in bytes (DC_PROBE_PREFETCH_DATA_SIZE).”h]”(j)�”}”(hŒ``u.prefetch_data_size``”h]”jï)�”}”(hj ¥h]”hŒu.prefetch_data_size”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mµhj¥ubj-)�”}”(hhh]”hì)�”}”(hŒ;total prefetch data in bytes (DC_PROBE_PREFETCH_DATA_SIZE).”h]”hŒ;total prefetch data in bytes (DC_PROBE_PREFETCH_DATA_SIZE).”…”�”}”(hj&¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¶hj#¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j"¥h´Mµhjæ£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjž£ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdc_get_status_type (C enum)”Œc.dc_get_status_type”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdc_get_status_type”h]”j8)�”}”(hŒenum dc_get_status_type”h]”(j>)�”}”(hj^8h]”hŒenum”…”�”}”(hjg¥h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjc¥h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M¼ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju¥h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjc¥h²hh³jt¥h´M¼ubja)�”}”(hŒdc_get_status_type”h]”jg)�”}”(hja¥h]”hŒdc_get_status_type”…”�”}”(hj‡¥h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjƒ¥ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjc¥h²hh³jt¥h´M¼ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj_¥h²hh³jt¥h´M¼ubah}”(h]”jZ¥ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jt¥h´M¼hj\¥h²hubj•)�”}”(hhh]”hì)�”}”(hŒ3Bitmask selecting which status classes to populate.”h]”hŒ3Bitmask selecting which status classes to populate.”…”�”}”(hj©¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÃhj¦¥h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj\¥h²hh³jt¥h´M¼ubeh}”(h]”h ]”(jûŒenum”eh"]”h$]”h&]”jµjûj¶jÁ¥j·jÁ¥j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hŒ¥**Constants** ``DC_GET_STATUS_STREAM`` populate stream_status fields in dc_state_status ``DC_GET_STATUS_PROBE`` populate probe_status fields in dc_state_status”h]”(hì)�”}”(hŒ **Constants**”h]”j¶)�”}”(hjË¥h]”hŒ Constants”…”�”}”(hjÍ¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÉ¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”• h´MÇhjÅ¥ubj)�”}”(hhh]”(j )�”}”(hŒJ``DC_GET_STATUS_STREAM`` populate stream_status fields in dc_state_status ”h]”(j)�”}”(hŒ``DC_GET_STATUS_STREAM``”h]”jï)�”}”(hjê¥h]”hŒDC_GET_STATUS_STREAM”…”�”}”(hjì¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjè¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÊhjä¥ubj-)�”}”(hhh]”hì)�”}”(hŒ0populate stream_status fields in dc_state_status”h]”hŒ0populate stream_status fields in dc_state_status”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÿ¥h´MÊhj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjä¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÿ¥h´MÊhjá¥ubj )�”}”(hŒG``DC_GET_STATUS_PROBE`` populate probe_status fields in dc_state_status”h]”(j)�”}”(hŒ``DC_GET_STATUS_PROBE``”h]”jï)�”}”(hj#¦h]”hŒDC_GET_STATUS_PROBE”…”�”}”(hj%¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj!¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÌhj¦ubj-)�”}”(hhh]”hì)�”}”(hŒ/populate probe_status fields in dc_state_status”h]”hŒ/populate probe_status fields in dc_state_status”…”�”}”(hj<¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÍhj9¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j8¦h´MÌhjá¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÅ¥ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ dc_get_status_options (C struct)”Œc.dc_get_status_options”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdc_get_status_options”h]”j8)�”}”(hŒstruct dc_get_status_options”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj}¦h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjy¦h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÒubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹¦h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjy¦h²hh³jЦh´MÒubja)�”}”(hŒdc_get_status_options”h]”jg)�”}”(hjw¦h]”hŒdc_get_status_options”…”�”}”(hj�¦h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj™¦ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjy¦h²hh³jЦh´MÒubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhju¦h²hh³jЦh´MÒubah}”(h]”jp¦ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jЦh´MÒhjr¦h²hubj•)�”}”(hhh]”hì)�”}”(hŒ'Input selector for dc_state_get_status.”h]”hŒ'Input selector for dc_state_get_status.”…”�”}”(hj¿¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÍhj¼¦h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjr¦h²hh³jЦh´MÒubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶jצj·jצj¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hXC**Definition**:: struct dc_get_status_options { struct dc_state *state; uint32_t types; const struct dc_stream_state *stream; const struct dc_probe_state *probe; }; **Members** ``state`` source state to read status from ``types`` OR of dc_get_status_type values selecting classes to populate ``stream`` optional stream filter for DC_GET_STATUS_STREAM. NULL means populate status for all streams in the state ``probe`` optional probe filter for DC_GET_STATUS_PROBE. NULL means populate status for all probes in the state”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjã¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjߦubhŒ:”…”�”}”(hjߦh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÑhjÛ¦ubjß)�”}”(hŒ±struct dc_get_status_options { struct dc_state *state; uint32_t types; const struct dc_stream_state *stream; const struct dc_probe_state *probe; };”h]”hŒ±struct dc_get_status_options { struct dc_state *state; uint32_t types; const struct dc_stream_state *stream; const struct dc_probe_state *probe; };”…”�”}”hjü¦sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÓhjÛ¦ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hj §h]”hŒMembers”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj §ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÚhjÛ¦ubj)�”}”(hhh]”(j )�”}”(hŒ+``state`` source state to read status from ”h]”(j)�”}”(hŒ ``state``”h]”jï)�”}”(hj,§h]”hŒstate”…”�”}”(hj.§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj*§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÏhj&§ubj-)�”}”(hhh]”hì)�”}”(hŒ source state to read status from”h]”hŒ source state to read status from”…”�”}”(hjE§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jA§h´MÏhjB§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj&§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jA§h´MÏhj#§ubj )�”}”(hŒH``types`` OR of dc_get_status_type values selecting classes to populate ”h]”(j)�”}”(hŒ ``types``”h]”jï)�”}”(hje§h]”hŒtypes”…”�”}”(hjg§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjc§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÐhj_§ubj-)�”}”(hhh]”hì)�”}”(hŒ=OR of dc_get_status_type values selecting classes to populate”h]”hŒ=OR of dc_get_status_type values selecting classes to populate”…”�”}”(hj~§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jz§h´MÐhj{§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj_§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jz§h´MÐhj#§ubj )�”}”(hŒt``stream`` optional stream filter for DC_GET_STATUS_STREAM. NULL means populate status for all streams in the state ”h]”(j)�”}”(hŒ ``stream``”h]”jï)�”}”(hjž§h]”hŒstream”…”�”}”(hj §h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjœ§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÒhj˜§ubj-)�”}”(hhh]”hì)�”}”(hŒhoptional stream filter for DC_GET_STATUS_STREAM. NULL means populate status for all streams in the state”h]”hŒhoptional stream filter for DC_GET_STATUS_STREAM. NULL means populate status for all streams in the state”…”�”}”(hj·§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÑhj´§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj˜§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j³§h´MÒhj#§ubj )�”}”(hŒo``probe`` optional probe filter for DC_GET_STATUS_PROBE. NULL means populate status for all probes in the state”h]”(j)�”}”(hŒ ``probe``”h]”jï)�”}”(hjاh]”hŒprobe”…”�”}”(hjÚ§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÖ§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÓhjÒ§ubj-)�”}”(hhh]”hì)�”}”(hŒeoptional probe filter for DC_GET_STATUS_PROBE. NULL means populate status for all probes in the state”h]”hŒeoptional probe filter for DC_GET_STATUS_PROBE. NULL means populate status for all probes in the state”…”�”}”(hjñ§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jí§h´MÓhjî§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÒ§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jí§h´MÓhj#§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÛ¦ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdc_state_status (C struct)”Œc.dc_state_status”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdc_state_status”h]”j8)�”}”(hŒstruct dc_state_status”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj1¨h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj-¨h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÚubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?¨h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj-¨h²hh³j>¨h´MÚubja)�”}”(hŒdc_state_status”h]”jg)�”}”(hj+¨h]”hŒdc_state_status”…”�”}”(hjQ¨h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjM¨ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj-¨h²hh³j>¨h´MÚubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj)¨h²hh³j>¨h´MÚubah}”(h]”j$¨ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j>¨h´MÚhj&¨h²hubj•)�”}”(hhh]”hì)�”}”(hŒ3Output-only status object from dc_state_get_status.”h]”hŒ3Output-only status object from dc_state_get_status.”…”�”}”(hjs¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÝhjp¨h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj&¨h²hh³j>¨h´MÚubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j‹¨j·j‹¨j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX**Definition**:: struct dc_state_status { int stream_count; struct dc_stream_status *stream_status[MAX_STREAMS]; int probe_count; struct dc_probe_status *probe_status[MAX_PROBES]; }; **Members** ``stream_count`` number of valid entries in stream_status (DC_GET_STATUS_STREAM) ``stream_status`` pointers to live per-stream status entries ``probe_count`` number of valid entries in probe_status (DC_GET_STATUS_PROBE) ``probe_status`` pointers to live per-probe status entries”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj—¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj“¨ubhŒ:”…”�”}”(hj“¨h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Máhj�¨ubjß)�”}”(hŒµstruct dc_state_status { int stream_count; struct dc_stream_status *stream_status[MAX_STREAMS]; int probe_count; struct dc_probe_status *probe_status[MAX_PROBES]; };”h]”hŒµstruct dc_state_status { int stream_count; struct dc_stream_status *stream_status[MAX_STREAMS]; int probe_count; struct dc_probe_status *probe_status[MAX_PROBES]; };”…”�”}”hj°¨sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mãhj�¨ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjÁ¨h]”hŒMembers”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¿¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mêhj�¨ubj)�”}”(hhh]”(j )�”}”(hŒQ``stream_count`` number of valid entries in stream_status (DC_GET_STATUS_STREAM) ”h]”(j)�”}”(hŒ``stream_count``”h]”jï)�”}”(hjà¨h]”hŒ stream_count”…”�”}”(hjâ¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÞ¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MßhjÚ¨ubj-)�”}”(hhh]”hì)�”}”(hŒ?number of valid entries in stream_status (DC_GET_STATUS_STREAM)”h]”hŒ?number of valid entries in stream_status (DC_GET_STATUS_STREAM)”…”�”}”(hjù¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jõ¨h´Mßhjö¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÚ¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jõ¨h´Mßhjרubj )�”}”(hŒ=``stream_status`` pointers to live per-stream status entries ”h]”(j)�”}”(hŒ``stream_status``”h]”jï)�”}”(hj©h]”hŒ stream_status”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Màhj©ubj-)�”}”(hhh]”hì)�”}”(hŒ*pointers to live per-stream status entries”h]”hŒ*pointers to live per-stream status entries”…”�”}”(hj2©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j.©h´Màhj/©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j.©h´Màhjרubj )�”}”(hŒN``probe_count`` number of valid entries in probe_status (DC_GET_STATUS_PROBE) ”h]”(j)�”}”(hŒ``probe_count``”h]”jï)�”}”(hjR©h]”hŒ probe_count”…”�”}”(hjT©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjP©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MáhjL©ubj-)�”}”(hhh]”hì)�”}”(hŒ=number of valid entries in probe_status (DC_GET_STATUS_PROBE)”h]”hŒ=number of valid entries in probe_status (DC_GET_STATUS_PROBE)”…”�”}”(hjk©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jg©h´Máhjh©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjL©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jg©h´Máhjרubj )�”}”(hŒ:``probe_status`` pointers to live per-probe status entries”h]”(j)�”}”(hŒ``probe_status``”h]”jï)�”}”(hj‹©h]”hŒ probe_status”…”�”}”(hj�©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‰©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Máhj…©ubj-)�”}”(hhh]”hì)�”}”(hŒ)pointers to live per-probe status entries”h]”hŒ)pointers to live per-probe status entries”…”�”}”(hj¤©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mâhj¡©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj…©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j ©h´Máhjרubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj�¨ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ dc_state_get_status (C function)”Œc.dc_state_get_status”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒpenum dc_status dc_state_get_status (struct dc_state_status *status, const struct dc_get_status_options *options)”h]”j8)�”}”(hŒoenum dc_status dc_state_get_status(struct dc_state_status *status, const struct dc_get_status_options *options)”h]”(j>)�”}”(hj^8h]”hŒenum”…”�”}”(hjå©h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjá©h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MëubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjó©h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjá©h²hh³jò©h´Mëubh)�”}”(hhh]”jg)�”}”(hŒ dc_status”h]”hŒ dc_status”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jªŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+Œdc_state_get_status”sbŒc.dc_state_get_status”†”asbuh1hhjá©h²hh³jò©h´MëubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%ªh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjá©h²hh³jò©h´Mëubja)�”}”(hŒdc_state_get_status”h]”jg)�”}”(hj"ªh]”hŒdc_state_get_status”…”�”}”(hj7ªh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj3ªubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjá©h²hh³jò©h´MëubjE+)�”}”(hŒM(struct dc_state_status *status, const struct dc_get_status_options *options)”h]”(jK+)�”}”(hŒstruct dc_state_status *status”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjRªh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjNªubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_ªh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjNªubh)�”}”(hhh]”jg)�”}”(hŒdc_state_status”h]”hŒdc_state_status”…”�”}”(hjpªh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjmªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jrªŒmodname”NŒ classname”Nj'j*)�”}”j-]”j ªŒc.dc_state_get_status”†”asbuh1hhjNªubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽªh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjNªubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjœªh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjNªubjg)�”}”(hŒstatus”h]”hŒstatus”…”�”}”(hj©ªh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjNªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjJªubjK+)�”}”(hŒ+const struct dc_get_status_options *options”h]”(j>)�”}”(hj=\h]”hŒconst”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¾ªubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjϪh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¾ªubj>)�”}”(hjAh]”hŒstruct”…”�”}”(hjݪh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj¾ªubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêªh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¾ªubh)�”}”(hhh]”jg)�”}”(hŒdc_get_status_options”h]”hŒdc_get_status_options”…”�”}”(hjûªh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjøªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jýªŒmodname”NŒ classname”Nj'j*)�”}”j-]”j ªŒc.dc_state_get_status”†”asbuh1hhj¾ªubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj¾ªubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj'«h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj¾ªubjg)�”}”(hŒoptions”h]”hŒoptions”…”�”}”(hj4«h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¾ªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjJªubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjá©h²hh³jò©h´Mëubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjÝ©h²hh³jò©h´Mëubah}”(h]”jØ©ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jò©h´MëhjÚ©h²hubj•)�”}”(hhh]”hì)�”}”(hŒ%Unified status readback for dc_state.”h]”hŒ%Unified status readback for dc_state.”…”�”}”(hj^«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mëhj[«h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÚ©h²hh³jò©h´Mëubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jv«j·jv«j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX**Parameters** ``struct dc_state_status *status`` output object populated according to options->types ``const struct dc_get_status_options *options`` selects the source state, status classes to fill, and filters **Return** DC_OK on success, DC_ERROR_UNEXPECTED if state is NULL.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj€«h]”hŒ Parameters”…”�”}”(hj‚«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj~«ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mïhjz«ubj)�”}”(hhh]”(j )�”}”(hŒW``struct dc_state_status *status`` output object populated according to options->types ”h]”(j)�”}”(hŒ"``struct dc_state_status *status``”h]”jï)�”}”(hjŸ«h]”hŒstruct dc_state_status *status”…”�”}”(hj¡«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mìhj™«ubj-)�”}”(hhh]”hì)�”}”(hŒ3output object populated according to options->types”h]”hŒ3output object populated according to options->types”…”�”}”(hj¸«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j´«h´Mìhjµ«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj™«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j´«h´Mìhj–«ubj )�”}”(hŒn``const struct dc_get_status_options *options`` selects the source state, status classes to fill, and filters ”h]”(j)�”}”(hŒ/``const struct dc_get_status_options *options``”h]”jï)�”}”(hjØ«h]”hŒ+const struct dc_get_status_options *options”…”�”}”(hjÚ«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÖ«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MíhjÒ«ubj-)�”}”(hhh]”hì)�”}”(hŒ=selects the source state, status classes to fill, and filters”h]”hŒ=selects the source state, status classes to fill, and filters”…”�”}”(hjñ«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jí«h´Míhjî«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÒ«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jí«h´Míhj–«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjz«ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hj¬h]”hŒReturn”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mïhjz«ubhì)�”}”(hŒ7DC_OK on success, DC_ERROR_UNEXPECTED if state is NULL.”h]”hŒ7DC_OK on success, DC_ERROR_UNEXPECTED if state is NULL.”…”�”}”(hj)¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mïhjz«ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdc_validation_stream (C struct)”Œc.dc_validation_stream”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdc_validation_stream”h]”j8)�”}”(hŒstruct dc_validation_stream”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjX¬h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjT¬h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MôubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf¬h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjT¬h²hh³je¬h´Môubja)�”}”(hŒdc_validation_stream”h]”jg)�”}”(hjR¬h]”hŒdc_validation_stream”…”�”}”(hjx¬h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjt¬ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjT¬h²hh³je¬h´Môubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjP¬h²hh³je¬h´Môubah}”(h]”jK¬ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³je¬h´MôhjM¬h²hubj•)�”}”(hhh]”hì)�”}”(hŒ4Per-stream surface/stream association for validation”h]”hŒ4Per-stream surface/stream association for validation”…”�”}”(hjš¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M+ hj—¬h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjM¬h²hh³je¬h´Môubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j²¬j·j²¬j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX/**Definition**:: struct dc_validation_stream { struct dc_stream_state *stream; struct dc_plane_state *plane_states[MAX_SURFACES]; uint8_t plane_count; }; **Members** ``stream`` Stream state properties ``plane_states`` Surface state ``plane_count`` Total of active planes”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj¾¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjº¬ubhŒ:”…”�”}”(hjº¬h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M/ hj¶¬ubjß)�”}”(hŒ”struct dc_validation_stream { struct dc_stream_state *stream; struct dc_plane_state *plane_states[MAX_SURFACES]; uint8_t plane_count; };”h]”hŒ”struct dc_validation_stream { struct dc_stream_state *stream; struct dc_plane_state *plane_states[MAX_SURFACES]; uint8_t plane_count; };”…”�”}”hj׬sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M1 hj¶¬ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjè¬h]”hŒMembers”…”�”}”(hjê¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjæ¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M7 hj¶¬ubj)�”}”(hhh]”(j )�”}”(hŒ#``stream`` Stream state properties ”h]”(j)�”}”(hŒ ``stream``”h]”jï)�”}”(hj­h]”hŒstream”…”�”}”(hj ­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M0 hj­ubj-)�”}”(hhh]”hì)�”}”(hŒStream state properties”h]”hŒStream state properties”…”�”}”(hj ­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j­h´M0 hj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j­h´M0 hjþ¬ubj )�”}”(hŒ``plane_states`` Surface state ”h]”(j)�”}”(hŒ``plane_states``”h]”jï)�”}”(hj@­h]”hŒ plane_states”…”�”}”(hjB­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj>­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M5 hj:­ubj-)�”}”(hhh]”hì)�”}”(hŒ Surface state”h]”hŒ Surface state”…”�”}”(hjY­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jU­h´M5 hjV­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj:­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jU­h´M5 hjþ¬ubj )�”}”(hŒ&``plane_count`` Total of active planes”h]”(j)�”}”(hŒ``plane_count``”h]”jï)�”}”(hjy­h]”hŒ plane_count”…”�”}”(hj{­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjw­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M9 hjs­ubj-)�”}”(hhh]”hì)�”}”(hŒTotal of active planes”h]”hŒTotal of active planes”…”�”}”(hj’­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M: hj�­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjs­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŽ­h´M9 hjþ¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¶¬ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdc_validation_set (C struct)”Œc.dc_validation_set”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒdc_validation_set”h]”j8)�”}”(hŒstruct dc_validation_set”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjÓ­h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjÏ­h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M@ ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjá­h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÏ­h²hh³jà­h´M@ ubja)�”}”(hŒdc_validation_set”h]”jg)�”}”(hjÍ­h]”hŒdc_validation_set”…”�”}”(hjó­h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjï­ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjÏ­h²hh³jà­h´M@ ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjË­h²hh³jà­h´M@ ubah}”(h]”jÆ­ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jà­h´M@ hjÈ­h²hubj•)�”}”(hhh]”hì)�”}”(hŒ7Root validation input grouping all streams for a commit”h]”hŒ7Root validation input grouping all streams for a commit”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M? hj®h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjÈ­h²hh³jà­h´M@ ubeh}”(h]”h ]”(jûŒstruct”eh"]”h$]”h&]”jµjûj¶j-®j·j-®j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hXÖ**Definition**:: struct dc_validation_set { struct dc_validation_stream streams[MAX_STREAMS]; uint8_t stream_count; struct dc_probe_state probes[MAX_PROBES]; uint8_t probe_count; }; **Members** ``streams`` Per-stream entries (stream + its planes) ``stream_count`` Number of active entries in **streams** ``probes`` Global probe descriptors to validate alongside the streams ``probe_count`` Number of active entries in **probes**”h]”(hì)�”}”(hŒ**Definition**::”h]”(j¶)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj9®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj5®ubhŒ:”…”�”}”(hj5®h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MC hj1®ubjß)�”}”(hŒ´struct dc_validation_set { struct dc_validation_stream streams[MAX_STREAMS]; uint8_t stream_count; struct dc_probe_state probes[MAX_PROBES]; uint8_t probe_count; };”h]”hŒ´struct dc_validation_set { struct dc_validation_stream streams[MAX_STREAMS]; uint8_t stream_count; struct dc_probe_state probes[MAX_PROBES]; uint8_t probe_count; };”…”�”}”hjR®sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´ME hj1®ubhì)�”}”(hŒ **Members**”h]”j¶)�”}”(hjc®h]”hŒMembers”…”�”}”(hje®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhja®ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´ML hj1®ubj)�”}”(hhh]”(j )�”}”(hŒ5``streams`` Per-stream entries (stream + its planes) ”h]”(j)�”}”(hŒ ``streams``”h]”jï)�”}”(hj‚®h]”hŒstreams”…”�”}”(hj„®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj€®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MD hj|®ubj-)�”}”(hhh]”hì)�”}”(hŒ(Per-stream entries (stream + its planes)”h]”hŒ(Per-stream entries (stream + its planes)”…”�”}”(hj›®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j—®h´MD hj˜®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj|®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j—®h´MD hjy®ubj )�”}”(hŒ9``stream_count`` Number of active entries in **streams** ”h]”(j)�”}”(hŒ``stream_count``”h]”jï)�”}”(hj»®h]”hŒ stream_count”…”�”}”(hj½®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¹®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MI hjµ®ubj-)�”}”(hhh]”hì)�”}”(hŒ'Number of active entries in **streams**”h]”(hŒNumber of active entries in ”…”�”}”(hjÔ®h²hh³Nh´Nubj¶)�”}”(hŒ **streams**”h]”hŒstreams”…”�”}”(hjÜ®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjÔ®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jЮh´MI hjÑ®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjµ®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jЮh´MI hjy®ubj )�”}”(hŒF``probes`` Global probe descriptors to validate alongside the streams ”h]”(j)�”}”(hŒ ``probes``”h]”jï)�”}”(hj¯h]”hŒprobes”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MN hjü®ubj-)�”}”(hhh]”hì)�”}”(hŒ:Global probe descriptors to validate alongside the streams”h]”hŒ:Global probe descriptors to validate alongside the streams”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¯h´MN hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjü®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¯h´MN hjy®ubj )�”}”(hŒ6``probe_count`` Number of active entries in **probes**”h]”(j)�”}”(hŒ``probe_count``”h]”jï)�”}”(hj;¯h]”hŒ probe_count”…”�”}”(hj=¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj9¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MR hj5¯ubj-)�”}”(hhh]”hì)�”}”(hŒ&Number of active entries in **probes**”h]”(hŒNumber of active entries in ”…”�”}”(hjT¯h²hh³Nh´Nubj¶)�”}”(hŒ **probes**”h]”hŒprobes”…”�”}”(hj\¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjT¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MS hjQ¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj5¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jP¯h´MR hjy®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj1®ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ0dc_get_underflow_debug_data_for_otg (C function)”Œ%c.dc_get_underflow_debug_data_for_otg”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ�void dc_get_underflow_debug_data_for_otg (struct dc *dc, unsigned int primary_otg_inst, struct dc_underflow_debug_data *out_data)”h]”j8)�”}”(hŒ€void dc_get_underflow_debug_data_for_otg(struct dc *dc, unsigned int primary_otg_inst, struct dc_underflow_debug_data *out_data)”h]”(j +)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj£¯h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjŸ¯h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²¯h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŸ¯h²hh³j±¯h´M ubja)�”}”(hŒ#dc_get_underflow_debug_data_for_otg”h]”jg)�”}”(hŒ#dc_get_underflow_debug_data_for_otg”h]”hŒ#dc_get_underflow_debug_data_for_otg”…”�”}”(hjįh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjÀ¯ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjŸ¯h²hh³j±¯h´M ubjE+)�”}”(hŒX(struct dc *dc, unsigned int primary_otg_inst, struct dc_underflow_debug_data *out_data)”h]”(jK+)�”}”(hŒ struct dc *dc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjà¯h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjܯubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjí¯h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjܯubh)�”}”(hhh]”jg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hjþ¯h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjû¯ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j°Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jƯsbŒ%c.dc_get_underflow_debug_data_for_otg”†”asbuh1hhjܯubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjܯubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj,°h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjܯubjg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hj9°h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjܯubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjدubjK+)�”}”(hŒunsigned int primary_otg_inst”h]”(j +)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjR°h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjN°ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`°h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjN°ubj +)�”}”(hŒint”h]”hŒint”…”�”}”(hjn°h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjN°ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|°h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjN°ubjg)�”}”(hŒprimary_otg_inst”h]”hŒprimary_otg_inst”…”�”}”(hjаh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjN°ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjدubjK+)�”}”(hŒ(struct dc_underflow_debug_data *out_data”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj£°h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjŸ°ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°°h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŸ°ubh)�”}”(hhh]”jg)�”}”(hŒdc_underflow_debug_data”h]”hŒdc_underflow_debug_data”…”�”}”(hjÁ°h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj¾°ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”jðŒmodname”NŒ classname”Nj'j*)�”}”j-]”j°Œ%c.dc_get_underflow_debug_data_for_otg”†”asbuh1hhjŸ°ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjß°h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjŸ°ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjí°h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjŸ°ubjg)�”}”(hŒout_data”h]”hŒout_data”…”�”}”(hjú°h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjŸ°ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjدubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjŸ¯h²hh³j±¯h´M ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj›¯h²hh³j±¯h´M ubah}”(h]”j–¯ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³j±¯h´M hj˜¯h²hubj•)�”}”(hhh]”hì)�”}”(hŒRetrieve underflow debug data.”h]”hŒRetrieve underflow debug data.”…”�”}”(hj$±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M hj!±h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj˜¯h²hh³j±¯h´M ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j<±j·j<±j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hXA**Parameters** ``struct dc *dc`` Pointer to the display core context. ``unsigned int primary_otg_inst`` Instance index of the primary OTG that underflowed. ``struct dc_underflow_debug_data *out_data`` Pointer to a dc_underflow_debug_data struct to be filled with debug information. **Description** This function collects and logs underflow-related HW states when underflow happens, including OTG underflow status, current read positions, frame count, and per-HUBP debug data. The results are stored in the provided out_data structure for further analysis or logging.”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hjF±h]”hŒ Parameters”…”�”}”(hjH±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjD±ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M hj@±ubj)�”}”(hhh]”(j )�”}”(hŒ7``struct dc *dc`` Pointer to the display core context. ”h]”(j)�”}”(hŒ``struct dc *dc``”h]”jï)�”}”(hje±h]”hŒ struct dc *dc”…”�”}”(hjg±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjc±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M hj_±ubj-)�”}”(hhh]”hì)�”}”(hŒ$Pointer to the display core context.”h]”hŒ$Pointer to the display core context.”…”�”}”(hj~±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jz±h´M hj{±ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj_±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jz±h´M hj\±ubj )�”}”(hŒV``unsigned int primary_otg_inst`` Instance index of the primary OTG that underflowed. ”h]”(j)�”}”(hŒ!``unsigned int primary_otg_inst``”h]”jï)�”}”(hjž±h]”hŒunsigned int primary_otg_inst”…”�”}”(hj ±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjœ±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M hj˜±ubj-)�”}”(hhh]”hì)�”}”(hŒ3Instance index of the primary OTG that underflowed.”h]”hŒ3Instance index of the primary OTG that underflowed.”…”�”}”(hj·±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j³±h´M hj´±ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj˜±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j³±h´M hj\±ubj )�”}”(hŒ~``struct dc_underflow_debug_data *out_data`` Pointer to a dc_underflow_debug_data struct to be filled with debug information. ”h]”(j)�”}”(hŒ,``struct dc_underflow_debug_data *out_data``”h]”jï)�”}”(hj×±h]”hŒ(struct dc_underflow_debug_data *out_data”…”�”}”(hjÙ±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÕ±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M hjѱubj-)�”}”(hhh]”hì)�”}”(hŒPPointer to a dc_underflow_debug_data struct to be filled with debug information.”h]”hŒPPointer to a dc_underflow_debug_data struct to be filled with debug information.”…”�”}”(hjð±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jì±h´M hjí±ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjѱubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jì±h´M hj\±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj@±ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj²h]”hŒ Description”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M hj@±ubhì)�”}”(hX This function collects and logs underflow-related HW states when underflow happens, including OTG underflow status, current read positions, frame count, and per-HUBP debug data. The results are stored in the provided out_data structure for further analysis or logging.”h]”hX This function collects and logs underflow-related HW states when underflow happens, including OTG underflow status, current read positions, frame count, and per-HUBP debug data. The results are stored in the provided out_data structure for further analysis or logging.”…”�”}”(hj(²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M hj@±ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ/dc_capture_register_software_state (C function)”Œ$c.dc_capture_register_software_state”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒabool dc_capture_register_software_state (struct dc *dc, struct dc_register_software_state *state)”h]”j8)�”}”(hŒ`bool dc_capture_register_software_state(struct dc *dc, struct dc_register_software_state *state)”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hjW²h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjS²h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MÿubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hje²h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjS²h²hh³jd²h´Mÿubja)�”}”(hŒ"dc_capture_register_software_state”h]”jg)�”}”(hŒ"dc_capture_register_software_state”h]”hŒ"dc_capture_register_software_state”…”�”}”(hjw²h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjs²ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjS²h²hh³jd²h´MÿubjE+)�”}”(hŒ9(struct dc *dc, struct dc_register_software_state *state)”h]”(jK+)�”}”(hŒ struct dc *dc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj“²h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj�²ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ²h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj�²ubh)�”}”(hhh]”jg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hj±²h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj®²ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j³²Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jy²sbŒ$c.dc_capture_register_software_state”†”asbuh1hhj�²ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjѲh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj�²ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjß²h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj�²ubjg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hjì²h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj�²ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj‹²ubjK+)�”}”(hŒ(struct dc_register_software_state *state”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hj³ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj³ubh)�”}”(hhh]”jg)�”}”(hŒdc_register_software_state”h]”hŒdc_register_software_state”…”�”}”(hj#³h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj ³ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j%³Œmodname”NŒ classname”Nj'j*)�”}”j-]”jͲŒ$c.dc_capture_register_software_state”†”asbuh1hhj³ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA³h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj³ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjO³h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hj³ubjg)�”}”(hŒstate”h]”hŒstate”…”�”}”(hj\³h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj‹²ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjS²h²hh³jd²h´Mÿubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhjO²h²hh³jd²h´Mÿubah}”(h]”jJ²ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jd²h´MÿhjL²h²hubj•)�”}”(hhh]”hì)�”}”(hŒ/Capture software state for register programming”h]”hŒ/Capture software state for register programming”…”�”}”(hj†³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mÿhjƒ³h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjL²h²hh³jd²h´Mÿubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jž³j·jž³j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hXM**Parameters** ``struct dc *dc`` DC context containing current display configuration ``struct dc_register_software_state *state`` Pointer to dc_register_software_state structure to populate **Description** Extracts all software state variables that are used to program hardware register fields across the display driver pipeline. This provides a complete snapshot of the software configuration that drives hardware register programming. The function traverses the DC context and extracts values from: - Stream configurations (timing, format, DSC settings) - Plane states (surface format, rotation, scaling, cursor) - Pipe contexts (resource allocation, blending, viewport) - Clock manager (display clocks, DPP clocks, pixel clocks) - Resource context (DET buffer allocation, ODM configuration) This is essential for underflow debugging as it captures the exact software state that determines how registers are programmed, allowing analysis of whether underflow is caused by incorrect register programming or timing issues. **Return** true if state was successfully captured, false on error”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj¨³h]”hŒ Parameters”…”�”}”(hjª³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¦³ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¢³ubj)�”}”(hhh]”(j )�”}”(hŒF``struct dc *dc`` DC context containing current display configuration ”h]”(j)�”}”(hŒ``struct dc *dc``”h]”jï)�”}”(hjdzh]”hŒ struct dc *dc”…”�”}”(hjɳh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjųubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MhjÁ³ubj-)�”}”(hhh]”hì)�”}”(hŒ3DC context containing current display configuration”h]”hŒ3DC context containing current display configuration”…”�”}”(hjà³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jܳh´Mhjݳubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÁ³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jܳh´Mhj¾³ubj )�”}”(hŒi``struct dc_register_software_state *state`` Pointer to dc_register_software_state structure to populate ”h]”(j)�”}”(hŒ,``struct dc_register_software_state *state``”h]”jï)�”}”(hj´h]”hŒ(struct dc_register_software_state *state”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjþ³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhjú³ubj-)�”}”(hhh]”hì)�”}”(hŒ;Pointer to dc_register_software_state structure to populate”h]”hŒ;Pointer to dc_register_software_state structure to populate”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j´h´Mhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjú³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j´h´Mhj¾³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¢³ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj;´h]”hŒ Description”…”�”}”(hj=´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj9´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¢³ubhì)�”}”(hŒæExtracts all software state variables that are used to program hardware register fields across the display driver pipeline. This provides a complete snapshot of the software configuration that drives hardware register programming.”h]”hŒæExtracts all software state variables that are used to program hardware register fields across the display driver pipeline. This provides a complete snapshot of the software configuration that drives hardware register programming.”…”�”}”(hjQ´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¢³ubhì)�”}”(hXdThe function traverses the DC context and extracts values from: - Stream configurations (timing, format, DSC settings) - Plane states (surface format, rotation, scaling, cursor) - Pipe contexts (resource allocation, blending, viewport) - Clock manager (display clocks, DPP clocks, pixel clocks) - Resource context (DET buffer allocation, ODM configuration)”h]”hXdThe function traverses the DC context and extracts values from: - Stream configurations (timing, format, DSC settings) - Plane states (surface format, rotation, scaling, cursor) - Pipe contexts (resource allocation, blending, viewport) - Clock manager (display clocks, DPP clocks, pixel clocks) - Resource context (DET buffer allocation, ODM configuration)”…”�”}”(hj`´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¢³ubhì)�”}”(hŒäThis is essential for underflow debugging as it captures the exact software state that determines how registers are programmed, allowing analysis of whether underflow is caused by incorrect register programming or timing issues.”h]”hŒäThis is essential for underflow debugging as it captures the exact software state that determines how registers are programmed, allowing analysis of whether underflow is caused by incorrect register programming or timing issues.”…”�”}”(hjo´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M hj¢³ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hj€´h]”hŒReturn”…”�”}”(hj‚´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj~´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¢³ubhì)�”}”(hŒ7true if state was successfully captured, false on error”h]”hŒ7true if state was successfully captured, false on error”…”�”}”(hj–´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¢³ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œdc_get_qos_info (C function)”Œc.dc_get_qos_info”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒ>bool dc_get_qos_info (struct dc *dc, struct dc_qos_info *info)”h]”j8)�”}”(hŒ=bool dc_get_qos_info(struct dc *dc, struct dc_qos_info *info)”h]”(j +)�”}”(hj>ah]”hŒbool”…”�”}”(hjÅ´h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjÁ´h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´MubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ´h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjÁ´h²hh³jÒ´h´Mubja)�”}”(hŒdc_get_qos_info”h]”jg)�”}”(hŒdc_get_qos_info”h]”hŒdc_get_qos_info”…”�”}”(hjå´h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjá´ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hjÁ´h²hh³jÒ´h´MubjE+)�”}”(hŒ)(struct dc *dc, struct dc_qos_info *info)”h]”(jK+)�”}”(hŒ struct dc *dc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjý´ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjý´ubh)�”}”(hhh]”jg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjµubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j!µŒmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jç´sbŒc.dc_get_qos_info”†”asbuh1hhjý´ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?µh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjý´ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjMµh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjý´ubjg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hjZµh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjý´ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjù´ubjK+)�”}”(hŒstruct dc_qos_info *info”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjsµh²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjoµubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€µh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjoµubh)�”}”(hhh]”jg)�”}”(hŒ dc_qos_info”h]”hŒ dc_qos_info”…”�”}”(hj‘µh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj޵ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j“µŒmodname”NŒ classname”Nj'j*)�”}”j-]”j;µŒc.dc_get_qos_info”†”asbuh1hhjoµubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯µh²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjoµubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hj½µh²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjoµubjg)�”}”(hŒinfo”h]”hŒinfo”…”�”}”(hjʵh²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjoµubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hjù´ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hjÁ´h²hh³jÒ´h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj½´h²hh³jÒ´h´Mubah}”(h]”j¸´ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jÒ´h´Mhjº´h²hubj•)�”}”(hhh]”hì)�”}”(hŒ?Retrieve Quality of Service (QoS) information from display core”h]”hŒ?Retrieve Quality of Service (QoS) information from display core”…”�”}”(hjôµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhjñµh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hjº´h²hh³jÒ´h´Mubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶j ¶j·j ¶j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hX%**Parameters** ``struct dc *dc`` DC context containing current display configuration ``struct dc_qos_info *info`` Pointer to dc_qos_info structure to populate with QoS metrics **Description** This function retrieves QoS metrics from the display core that can be used by benchmark tools to analyze display system performance. The function may take several milliseconds to execute due to hardware measurement requirements. QoS information includes: - Bandwidth bounds (lower limits in Mbps) - Latency bounds (upper limits in nanoseconds) - Hardware-measured bandwidth metrics (peak/average in Mbps) - Hardware-measured latency metrics (maximum/average in nanoseconds) The function will populate the provided dc_qos_info structure with current QoS measurements. If hardware measurement functions are not available for the current DCN version, the function returns false with zero'd info structure. **Return** true if QoS information was successfully retrieved, false if measurement functions are unavailable or hardware measurements cannot be performed”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj¶h]”hŒ Parameters”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¶ubj)�”}”(hhh]”(j )�”}”(hŒF``struct dc *dc`` DC context containing current display configuration ”h]”(j)�”}”(hŒ``struct dc *dc``”h]”jï)�”}”(hj5¶h]”hŒ struct dc *dc”…”�”}”(hj7¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj3¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj/¶ubj-)�”}”(hhh]”hì)�”}”(hŒ3DC context containing current display configuration”h]”hŒ3DC context containing current display configuration”…”�”}”(hjN¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jJ¶h´MhjK¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj/¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jJ¶h´Mhj,¶ubj )�”}”(hŒ[``struct dc_qos_info *info`` Pointer to dc_qos_info structure to populate with QoS metrics ”h]”(j)�”}”(hŒ``struct dc_qos_info *info``”h]”jï)�”}”(hjn¶h]”hŒstruct dc_qos_info *info”…”�”}”(hjp¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjl¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhjh¶ubj-)�”}”(hhh]”hì)�”}”(hŒ=Pointer to dc_qos_info structure to populate with QoS metrics”h]”hŒ=Pointer to dc_qos_info structure to populate with QoS metrics”…”�”}”(hj‡¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jƒ¶h´Mhj„¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjh¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jƒ¶h´Mhj,¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¶ubhì)�”}”(hŒ**Description**”h]”j¶)�”}”(hj©¶h]”hŒ Description”…”�”}”(hj«¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj§¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¶ubhì)�”}”(hŒäThis function retrieves QoS metrics from the display core that can be used by benchmark tools to analyze display system performance. The function may take several milliseconds to execute due to hardware measurement requirements.”h]”hŒäThis function retrieves QoS metrics from the display core that can be used by benchmark tools to analyze display system performance. The function may take several milliseconds to execute due to hardware measurement requirements.”…”�”}”(hj¿¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¶ubhì)�”}”(hŒôQoS information includes: - Bandwidth bounds (lower limits in Mbps) - Latency bounds (upper limits in nanoseconds) - Hardware-measured bandwidth metrics (peak/average in Mbps) - Hardware-measured latency metrics (maximum/average in nanoseconds)”h]”hŒôQoS information includes: - Bandwidth bounds (lower limits in Mbps) - Latency bounds (upper limits in nanoseconds) - Hardware-measured bandwidth metrics (peak/average in Mbps) - Hardware-measured latency metrics (maximum/average in nanoseconds)”…”�”}”(hjζh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´Mhj¶ubhì)�”}”(hŒäThe function will populate the provided dc_qos_info structure with current QoS measurements. If hardware measurement functions are not available for the current DCN version, the function returns false with zero'd info structure.”h]”hŒæThe function will populate the provided dc_qos_info structure with current QoS measurements. If hardware measurement functions are not available for the current DCN version, the function returns false with zero’d info structure.”…”�”}”(hjݶh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M$hj¶ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hjî¶h]”hŒReturn”…”�”}”(hjð¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjì¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M(hj¶ubhì)�”}”(hŒ�true if QoS information was successfully retrieved, false if measurement functions are unavailable or hardware measurements cannot be performed”h]”hŒ�true if QoS information was successfully retrieved, false if measurement functions are unavailable or hardware measurements cannot be performed”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M)hj¶ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j'Œ1dc_override_memory_bandwidth_request (C function)”Œ&c.dc_override_memory_bandwidth_request”hNt”auh1jhj‰h²hh³Nh´Nubj-)�”}”(hhh]”(j2)�”}”(hŒWunsigned int dc_override_memory_bandwidth_request (struct dc *dc, unsigned int bw_mbps)”h]”j8)�”}”(hŒVunsigned int dc_override_memory_bandwidth_request(struct dc *dc, unsigned int bw_mbps)”h]”(j +)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj3·h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj/·h²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M/ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB·h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj/·h²hh³jA·h´M/ubj +)�”}”(hŒint”h]”hŒint”…”�”}”(hjP·h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hj/·h²hh³jA·h´M/ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^·h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhj/·h²hh³jA·h´M/ubja)�”}”(hŒ$dc_override_memory_bandwidth_request”h]”jg)�”}”(hŒ$dc_override_memory_bandwidth_request”h]”hŒ$dc_override_memory_bandwidth_request”…”�”}”(hjp·h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjl·ubah}”(h]”h ]”(jyjzeh"]”h$]”h&]”j~juh1j`hj/·h²hh³jA·h´M/ubjE+)�”}”(hŒ%(struct dc *dc, unsigned int bw_mbps)”h]”(jK+)�”}”(hŒ struct dc *dc”h]”(j>)�”}”(hjAh]”hŒstruct”…”�”}”(hjŒ·h²hh³Nh´Nubah}”(h]”h ]”jJah"]”h$]”h&]”uh1j=hjˆ·ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™·h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjˆ·ubh)�”}”(hhh]”jg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hjª·h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhj§·ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jûŒreftype”j„+Œ reftarget”j¬·Œmodname”NŒ classname”Nj'j*)�”}”j-]”jŒ+)�”}”j„+jr·sbŒ&c.dc_override_memory_bandwidth_request”†”asbuh1hhjˆ·ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ·h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjˆ·ubj +)�”}”(hj£+h]”hŒ*”…”�”}”(hjØ·h²hh³Nh´Nubah}”(h]”h ]”j¬+ah"]”h$]”h&]”uh1jŸ+hjˆ·ubjg)�”}”(hŒdc”h]”hŒdc”…”�”}”(hjå·h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjˆ·ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj„·ubjK+)�”}”(hŒunsigned int bw_mbps”•“‚h]”(j +)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjþ·h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjú·ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ¸h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjú·ubj +)�”}”(hŒint”h]”hŒint”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1j +hjú·ubjP)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(¸h²hh³Nh´Nubah}”(h]”h ]”j\ah"]”h$]”h&]”uh1jOhjú·ubjg)�”}”(hŒbw_mbps”h]”hŒbw_mbps”…”�”}”(hj6¸h²hh³Nh´Nubah}”(h]”h ]”jrah"]”h$]”h&]”uh1jfhjú·ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj~juh1jJ+hj„·ubeh}”(h]”h ]”h"]”h$]”h&]”j~juh1jD+hj/·h²hh³jA·h´M/ubeh}”(h]”h ]”h"]”h$]”h&]”j~jj†ˆuh1j7j‡jˆhj+·h²hh³jA·h´M/ubah}”(h]”j&·ah ]”(jŒj�eh"]”h$]”h&]”j‘ˆj’)j“huh1j1h³jA·h´M/hj(·h²hubj•)�”}”(hhh]”hì)�”}”(hŒ|Override the DCN nominal memory bandwidth request sent to PMFW, independent of the current display mode. For debug use only.”h]”hŒ|Override the DCN nominal memory bandwidth request sent to PMFW, independent of the current display mode. For debug use only.”…”�”}”(hj`¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M/hj]¸h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j”hj(·h²hh³jA·h´M/ubeh}”(h]”h ]”(jûŒfunction”eh"]”h$]”h&]”jµjûj¶jx¸j·jx¸j¸‰j¹‰jº‰uh1j,h²hhj‰h³Nh´Nubj¼)�”}”(hŒº**Parameters** ``struct dc *dc`` DC instance ``unsigned int bw_mbps`` requested bandwidth in MB/s; 0 clears the override **Return** capped bandwidth value actually applied (MB/s)”h]”(hì)�”}”(hŒ**Parameters**”h]”j¶)�”}”(hj‚¸h]”hŒ Parameters”…”�”}”(hj„¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj€¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M3hj|¸ubj)�”}”(hhh]”(j )�”}”(hŒ``struct dc *dc`` DC instance ”h]”(j)�”}”(hŒ``struct dc *dc``”h]”jï)�”}”(hj¡¸h]”hŒ struct dc *dc”…”�”}”(hj£¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjŸ¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M2hj›¸ubj-)�”}”(hhh]”hì)�”}”(hŒ DC instance”h]”hŒ DC instance”…”�”}”(hjº¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¶¸h´M2hj·¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj›¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¶¸h´M2hj˜¸ubj )�”}”(hŒL``unsigned int bw_mbps`` requested bandwidth in MB/s; 0 clears the override ”h]”(j)�”}”(hŒ``unsigned int bw_mbps``”h]”jï)�”}”(hjÚ¸h]”hŒunsigned int bw_mbps”…”�”}”(hjܸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjظubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M3hjÔ¸ubj-)�”}”(hhh]”hì)�”}”(hŒ2requested bandwidth in MB/s; 0 clears the override”h]”hŒ2requested bandwidth in MB/s; 0 clears the override”…”�”}”(hjó¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jï¸h´M3hjð¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÔ¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jï¸h´M3hj˜¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj|¸ubhì)�”}”(hŒ **Return**”h]”j¶)�”}”(hj¹h]”hŒReturn”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M5hj|¸ubhì)�”}”(hŒ.capped bandwidth value actually applied (MB/s)”h]”hŒ.capped bandwidth value actually applied (MB/s)”…”�”}”(hj+¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:74: ./drivers/gpu/drm/amd/display/dc/dc.h”h´M5hj|¸ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j»hj‰h²hh³Nh´Nubhì)�”}”(hŒäThe color pipeline has undergone major changes between DCN hardware generations. What's possible to do before and after blending depends on hardware capabilities, as illustrated below by the DCN 2.0 and DCN 3.0 families schemas.”h]”hŒæThe color pipeline has undergone major changes between DCN hardware generations. What’s possible to do before and after blending depends on hardware capabilities, as illustrated below by the DCN 2.0 and DCN 3.0 families schemas.”…”�”}”(hjA¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´KMhj‰h²hubhì)�”}”(hŒ)**DCN 2.0 family color caps and mapping**”h]”j¶)�”}”(hjQ¹h]”hŒ%DCN 2.0 family color caps and mapping”…”�”}”(hjS¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjO¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´KRhj‰h²hubŒkfigure”Œ kernel_figure”“”)�”}”(hhh]”hŒfigure”“”)�”}”(hhh]”hŒimage”“”)�”}”(hŒ+.. kernel-figure:: dcn2_cm_drm_current.svg ”h]”h}”(h]”h ]”h"]”h$]”h&]”Œuri”Œ*gpu/amdgpu/display/dcn2_cm_drm_current.svg”Œ candidates”}”j£+j~¹suh1jq¹hjn¹h³hÌh´Kubah}”(h]”h ]”h"]”h$]”h&]”uh1jl¹hji¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jg¹hj‰h²hh³hÌh´KUubhì)�”}”(hŒ)**DCN 3.0 family color caps and mapping**”h]”j¶)�”}”(hj�¹h]”hŒ%DCN 3.0 family color caps and mapping”…”�”}”(hj‘¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj�¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´KVhj‰h²hubjh¹)�”}”(hhh]”jm¹)�”}”(hhh]”jr¹)�”}”(hŒ+.. kernel-figure:: dcn3_cm_drm_current.svg ”h]”h}”(h]”h ]”h"]”h$]”h&]”Œuri”Œ*gpu/amdgpu/display/dcn3_cm_drm_current.svg”j¹}”j£+jµ¹suh1jq¹hj§¹h³hÌh´Kubah}”(h]”h ]”h"]”h$]”h&]”uh1jl¹hj¤¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jg¹hj‰h²hh³hÌh´KYubeh}”(h]”j ah ]”h"]”Œ-dc color capabilities between dcn generations”ah$]”h&]”uh1hµhj9Uh²hh³hÌh´K:ubeh}”(h]”j…ah ]”h"]”Œcolor management properties”ah$]”h&]”uh1hµhh·h²hh³hÌh´K0ubh¶)�”}”(hhh]”(h»)�”}”(hŒBlend Mode Properties”h]”hŒBlend Mode Properties”…”�”}”(hjÔ¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊj2uh1hºhjѹh²hh³hÌh´K[ubhì)�”}”(hX¹Pixel blend mode is a DRM plane composition property of :c:type:`drm_plane` used to describes how pixels from a foreground plane (fg) are composited with the background plane (bg). Here, we present main concepts of DRM blend mode to help to understand how this property is mapped to AMD DC interface. See more about this DRM property and the alpha blending equations in :ref:`DRM Plane Composition Properties `.”h]”(hŒ8Pixel blend mode is a DRM plane composition property of ”…”�”}”(hjâ¹h²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_plane`”h]”jï)�”}”(hjì¹h]”hŒ drm_plane”…”�”}”(hjî¹h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjê¹ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ drm_plane”uh1hh³hÌh´K]hjâ¹ubhX' used to describes how pixels from a foreground plane (fg) are composited with the background plane (bg). Here, we present main concepts of DRM blend mode to help to understand how this property is mapped to AMD DC interface. See more about this DRM property and the alpha blending equations in ”…”�”}”(hjâ¹h²hh³Nh´Nubh)�”}”(hŒF:ref:`DRM Plane Composition Properties `”h]”hŒinline”“”)�”}”(hjºh]”hŒ DRM Plane Composition Properties”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”(júŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jºhj ºubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jºŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj Œplane_composition_properties”uh1hh³hÌh´K]hjâ¹ubhŒ.”…”�”}”(hjâ¹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K]hjѹh²hubhì)�”}”(hXBasically, a blend mode sets the alpha blending equation for plane composition that fits the mode in which the alpha channel affects the state of pixel color values and, therefore, the resulted pixel color. For example, consider the following elements of the alpha blending equation:”h]”hXBasically, a blend mode sets the alpha blending equation for plane composition that fits the mode in which the alpha channel affects the state of pixel color values and, therefore, the resulted pixel color. For example, consider the following elements of the alpha blending equation:”…”�”}”(hj9ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´Kdhjѹh²hubhâ)�”}”(hhh]”(hç)�”}”(hŒG*fg.rgb*: Each of the RGB component values from the foreground's pixel.”h]”hì)�”}”(hjLºh]”(j Q)�”}”(hŒ*fg.rgb*”h]”hŒfg.rgb”…”�”}”(hjQºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j QhjNºubhŒA: Each of the RGB component values from the foreground’s pixel.”…”�”}”(hjNºh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´KihjJºubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjGºh²hh³hÌh´Nubhç)�”}”(hŒ>*fg.alpha*: Alpha component value from the foreground's pixel.”h]”hì)�”}”(hjqºh]”(j Q)�”}”(hŒ *fg.alpha*”h]”hŒfg.alpha”…”�”}”(hjvºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j QhjsºubhŒ6: Alpha component value from the foreground’s pixel.”…”�”}”(hjsºh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´Kjhjoºubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjGºh²hh³hÌh´Nubhç)�”}”(hŒ?*bg.rgb*: Each of the RGB component values from the background.”h]”hì)�”}”(hj–ºh]”(j Q)�”}”(hŒ*bg.rgb*”h]”hŒbg.rgb”…”�”}”(hj›ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j Qhj˜ºubhŒ7: Each of the RGB component values from the background.”…”�”}”(hj˜ºh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´Kkhj”ºubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjGºh²hh³hÌh´Nubhç)�”}”(hŒœ*plane_alpha*: Plane alpha value set by the **plane "alpha" property**, see more in :ref:`DRM Plane Composition Properties `. ”h]”hì)�”}”(hŒ›*plane_alpha*: Plane alpha value set by the **plane "alpha" property**, see more in :ref:`DRM Plane Composition Properties `.”h]”(j Q)�”}”(hŒ *plane_alpha*”h]”hŒ plane_alpha”…”�”}”(hjÁºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j Qhj½ºubhŒ: Plane alpha value set by the ”…”�”}”(hj½ºh²hh³Nh´Nubj¶)�”}”(hŒ**plane "alpha" property**”h]”hŒplane “alphaâ€� property”…”�”}”(hjÓºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj½ºubhŒ, see more in ”…”�”}”(hj½ºh²hh³Nh´Nubh)�”}”(hŒF:ref:`DRM Plane Composition Properties `”h]”jº)�”}”(hjçºh]”hŒ DRM Plane Composition Properties”…”�”}”(hjéºh²hh³Nh´Nubah}”(h]”h ]”(júŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jºhjåºubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jóºŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj Œplane_composition_properties”uh1hh³hÌh´Klhj½ºubhŒ.”…”�”}”(hj½ºh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´Klhj¹ºubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjGºh²hh³hÌh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jU-jV-uh1háh³hÌh´Kihjѹh²hubhì)�”}”(hŒ&in the basic alpha blending equation::”h]”hŒ%in the basic alpha blending equation:”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´Kohjѹh²hubjß)�”}”(hŒ/out.rgb = alpha * fg.rgb + (1 - alpha) * bg.rgb”h]”hŒ/out.rgb = alpha * fg.rgb + (1 - alpha) * bg.rgb”…”�”}”hj)»sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jÞh³hÌh´Kqhjѹh²hubhì)�”}”(hŒ}the alpha channel value of each pixel in a plane is ignored and only the plane alpha affects the resulted pixel color values.”h]”hŒ}the alpha channel value of each pixel in a plane is ignored and only the plane alpha affects the resulted pixel color values.”…”�”}”(hj7»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´Kshjѹh²hubhì)�”}”(hŒNDRM has three blend mode to define the blend formula in the plane composition:”h]”hŒNDRM has three blend mode to define the blend formula in the plane composition:”…”�”}”(hjE»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´Kvhjѹh²hubhâ)�”}”(hhh]”(hç)�”}”(hŒ6**None**: Blend formula that ignores the pixel alpha. ”h]”hì)�”}”(hŒ5**None**: Blend formula that ignores the pixel alpha.”h]”(j¶)�”}”(hŒ**None**”h]”hŒNone”…”�”}”(hj^»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhjZ»ubhŒ-: Blend formula that ignores the pixel alpha.”…”�”}”(hjZ»h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´KxhjV»ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjS»h²hh³hÌh´Nubhç)�”}”(hŒ•**Pre-multiplied**: Blend formula that assumes the pixel color values in a plane was already pre-multiplied by its own alpha channel before storage. ”h]”hì)�”}”(hŒ”**Pre-multiplied**: Blend formula that assumes the pixel color values in a plane was already pre-multiplied by its own alpha channel before storage.”h]”(j¶)�”}”(hŒ**Pre-multiplied**”h]”hŒPre-multiplied”…”�”}”(hj„»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj€»ubhŒ‚: Blend formula that assumes the pixel color values in a plane was already pre-multiplied by its own alpha channel before storage.”…”�”}”(hj€»h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´Kzhj|»ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjS»h²hh³hÌh´Nubhç)�”}”(hŒw**Coverage**: Blend formula that assumes the pixel color values were not pre-multiplied with the alpha channel values. ”h]”hì)�”}”(hŒv**Coverage**: Blend formula that assumes the pixel color values were not pre-multiplied with the alpha channel values.”h]”(j¶)�”}”(hŒ **Coverage**”h]”hŒCoverage”…”�”}”(hjª»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jµhj¦»ubhŒj: Blend formula that assumes the pixel color values were not pre-multiplied with the alpha channel values.”…”�”}”(hj¦»h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K}hj¢»ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjS»h²hh³hÌh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jU-j£+uh1háh³hÌh´Kxhjѹh²hubhì)�”}”(hX1and pre-multiplied is the default pixel blend mode, that means, when no blend mode property is created or defined, DRM considers the plane's pixels has pre-multiplied color values. On IGT GPU tools, the kms_plane_alpha_blend test provides a set of subtests to verify plane alpha and blend mode properties.”h]”hX3and pre-multiplied is the default pixel blend mode, that means, when no blend mode property is created or defined, DRM considers the plane’s pixels has pre-multiplied color values. On IGT GPU tools, the kms_plane_alpha_blend test provides a set of subtests to verify plane alpha and blend mode properties.”…”�”}”(hjλh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K€hjѹh²hubhì)�”}”(hŒ¯The DRM blend mode and its elements are then mapped by AMDGPU display manager (DM) to program the blending configuration of the Multiple Pipe/Plane Combined (MPC), as follows:”h]”hŒ¯The DRM blend mode and its elements are then mapped by AMDGPU display manager (DM) to program the blending configuration of the Multiple Pipe/Plane Combined (MPC), as follows:”…”�”}”(hjÜ»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K…hjѹh²hubhì)�”}”(hXTherefore, the blending configuration for a single MPCC instance on the MPC tree is defined by :c:type:`mpcc_blnd_cfg`, where :c:type:`pre_multiplied_alpha` is the alpha pre-multiplied mode flag used to set :c:type:`MPCC_ALPHA_MULTIPLIED_MODE`. It controls whether alpha is multiplied (true/false), being only true for DRM pre-multiplied blend mode. :c:type:`mpcc_alpha_blend_mode` defines the alpha blend mode regarding pixel alpha and plane alpha values. It sets one of the three modes for :c:type:`MPCC_ALPHA_BLND_MODE`, as described below.”h]”(hŒ_Therefore, the blending configuration for a single MPCC instance on the MPC tree is defined by ”…”�”}”(hjê»h²hh³Nh´Nubh)�”}”(hŒ:c:type:`mpcc_blnd_cfg`”h]”jï)�”}”(hjô»h]”hŒ mpcc_blnd_cfg”…”�”}”(hjö»h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjò»ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ mpcc_blnd_cfg”uh1hh³hÌh´KŒhjê»ubhŒ, where ”…”�”}”(hjê»h²hh³Nh´Nubh)�”}”(hŒ:c:type:`pre_multiplied_alpha`”h]”jï)�”}”(hj¼h]”hŒpre_multiplied_alpha”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj¼ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œpre_multiplied_alpha”uh1hh³hÌh´KŒhjê»ubhŒ3 is the alpha pre-multiplied mode flag used to set ”…”�”}”(hjê»h²hh³Nh´Nubh)�”}”(hŒ$:c:type:`MPCC_ALPHA_MULTIPLIED_MODE`”h]”jï)�”}”(hj:¼h]”hŒMPCC_ALPHA_MULTIPLIED_MODE”…”�”}”(hj<¼h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj8¼ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j ŒMPCC_ALPHA_MULTIPLIED_MODE”uh1hh³hÌh´KŒhjê»ubhŒk. It controls whether alpha is multiplied (true/false), being only true for DRM pre-multiplied blend mode. ”…”�”}”(hjê»h²hh³Nh´Nubh)�”}”(hŒ:c:type:`mpcc_alpha_blend_mode`”h]”jï)�”}”(hj]¼h]”hŒmpcc_alpha_blend_mode”…”�”}”(hj_¼h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj[¼ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œmpcc_alpha_blend_mode”uh1hh³hÌh´KŒhjê»ubhŒo defines the alpha blend mode regarding pixel alpha and plane alpha values. It sets one of the three modes for ”…”�”}”(hjê»h²hh³Nh´Nubh)�”}”(hŒ:c:type:`MPCC_ALPHA_BLND_MODE`”h]”jï)�”}”(hj€¼h]”hŒMPCC_ALPHA_BLND_MODE”…”�”}”(hj‚¼h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj~¼ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j ŒMPCC_ALPHA_BLND_MODE”uh1hh³hÌh´KŒhjê»ubhŒ, as described below.”…”�”}”(hjê»h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´KŒhjѹh²hubhì)�”}”(hŒhDM then maps the elements of `enum mpcc_alpha_blend_mode` to those in the DRM blend formula, as follows:”h]”(hŒDM then maps the elements of ”…”�”}”(hj§¼h²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ`enum mpcc_alpha_blend_mode`”h]”hŒenum mpcc_alpha_blend_mode”…”�”}”(hj±¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¯¼hj§¼ubhŒ/ to those in the DRM blend formula, as follows:”…”�”}”(hj§¼h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K˜hjѹh²hubhâ)�”}”(hhh]”(hç)�”}”(hŒ\*MPC pixel alpha* matches *DRM fg.alpha* as the alpha component value from the plane's pixel”h]”hì)�”}”(hŒ\*MPC pixel alpha* matches *DRM fg.alpha* as the alpha component value from the plane's pixel”h]”(j Q)�”}”(hŒ*MPC pixel alpha*”h]”hŒMPC pixel alpha”…”�”}”(hjÔ¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j QhjмubhŒ matches ”…”�”}”(hjмh²hh³Nh´Nubj Q)�”}”(hŒ*DRM fg.alpha*”h]”hŒ DRM fg.alpha”…”�”}”(hjæ¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j QhjмubhŒ6 as the alpha component value from the plane’s pixel”…”�”}”(hjмh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K›hj̼ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjɼh²hh³hÌh´Nubhç)�”}”(hŒ‡*MPC global alpha* matches *DRM plane_alpha* when the pixel alpha should be ignored and, therefore, pixel values are not pre-multiplied”h]”hì)�”}”(hŒ‡*MPC global alpha* matches *DRM plane_alpha* when the pixel alpha should be ignored and, therefore, pixel values are not pre-multiplied”h]”(j Q)�”}”(hŒ*MPC global alpha*”h]”hŒMPC global alpha”…”�”}”(hj ½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j Qhj½ubhŒ matches ”…”�”}”(hj½h²hh³Nh´Nubj Q)�”}”(hŒ*DRM plane_alpha*”h]”hŒDRM plane_alpha”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j Qhj½ubhŒ[ when the pixel alpha should be ignored and, therefore, pixel values are not pre-multiplied”…”�”}”(hj½h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K�hj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjɼh²hh³hÌh´Nubhç)�”}”(hŒ„*MPC global gain* assumes *MPC global alpha* value when both *DRM fg.alpha* and *DRM plane_alpha* participate in the blend equation ”h]”hì)�”}”(hŒƒ*MPC global gain* assumes *MPC global alpha* value when both *DRM fg.alpha* and *DRM plane_alpha* participate in the blend equation”h]”(j Q)�”}”(hŒ*MPC global gain*”h]”hŒMPC global gain”…”�”}”(hjD½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j Qhj@½ubhŒ assumes ”…”�”}”(hj@½h²hh³Nh´Nubj Q)�”}”(hŒ*MPC global alpha*”h]”hŒMPC global alpha”…”�”}”(hjV½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j Qhj@½ubhŒ value when both ”…”�”}”(hj@½h²hh³Nh´Nubj Q)�”}”(hŒ*DRM fg.alpha*”h]”hŒ DRM fg.alpha”…”�”}”(hjh½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j Qhj@½ubhŒ and ”…”�”}”(hj@½h²hh³Nh´Nubj Q)�”}”(hŒ*DRM plane_alpha*”h]”hŒDRM plane_alpha”…”�”}”(hjz½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j Qhj@½ubhŒ" participate in the blend equation”…”�”}”(hj@½h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´KŸhj<½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjɼh²hh³hÌh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jU-j£+uh1háh³hÌh´K›hjѹh²hubhì)�”}”(hXhIn short, *fg.alpha* is ignored by selecting :c:type:`MPCC_ALPHA_BLEND_MODE_GLOBAL_ALPHA`. On the other hand, (plane_alpha * fg.alpha) component becomes available by selecting :c:type:`MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA_COMBINED_GLOBAL_GAIN`. And the :c:type:`MPCC_ALPHA_MULTIPLIED_MODE` defines if the pixel color values are pre-multiplied by alpha or not.”h]”(hŒ In short, ”…”�”}”(hjž½h²hh³Nh´Nubj Q)�”}”(hŒ *fg.alpha*”h]”hŒfg.alpha”…”�”}”(hj¦½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j Qhjž½ubhŒ is ignored by selecting ”…”�”}”(hjž½h²hh³Nh´Nubh)�”}”(hŒ,:c:type:`MPCC_ALPHA_BLEND_MODE_GLOBAL_ALPHA`”h]”jï)�”}”(hjº½h]”hŒ"MPCC_ALPHA_BLEND_MODE_GLOBAL_ALPHA”…”�”}”(hj¼½h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj¸½ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ"MPCC_ALPHA_BLEND_MODE_GLOBAL_ALPHA”uh1hh³hÌh´K¢hjž½ubhŒW. On the other hand, (plane_alpha * fg.alpha) component becomes available by selecting ”…”�”}”(hjž½h²hh³Nh´Nubh)�”}”(hŒD:c:type:`MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA_COMBINED_GLOBAL_GAIN`”h]”jï)�”}”(hjݽh]”hŒ:MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA_COMBINED_GLOBAL_GAIN”…”�”}”(hjß½h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjÛ½ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ:MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA_COMBINED_GLOBAL_GAIN”uh1hh³hÌh´K¢hjž½ubhŒ . And the ”…”�”}”(hjž½h²hh³Nh´Nubh)�”}”(hŒ$:c:type:`MPCC_ALPHA_MULTIPLIED_MODE`”h]”jï)�”}”(hj¾h]”hŒMPCC_ALPHA_MULTIPLIED_MODE”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjþ½ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j ŒMPCC_ALPHA_MULTIPLIED_MODE”uh1hh³hÌh´K¢hjž½ubhŒF defines if the pixel color values are pre-multiplied by alpha or not.”…”�”}”(hjž½h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K¢hjѹh²hubh¶)�”}”(hhh]”(h»)�”}”(hŒBlend configuration flow”h]”hŒBlend configuration flow”…”�”}”(hj*¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjQuh1hºhj'¾h²hh³hÌh´Kªubhì)�”}”(hŒYThe alpha blending equation is configured from DRM to DC interface by the following path:”h]”hŒYThe alpha blending equation is configured from DRM to DC interface by the following path:”…”�”}”(hj8¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K¬hj'¾h²hubjØY)�”}”(hhh]”(hç)�”}”(hX%When updating a :c:type:`drm_plane_state `, DM calls :c:type:`amdgpu_dm_plane_fill_blending_from_plane_state()` that maps :c:type:`drm_plane_state ` attributes to :c:type:`dc_plane_info ` struct to be handled in the OS-agnostic component (DC). ”h]”hì)�”}”(hX$When updating a :c:type:`drm_plane_state `, DM calls :c:type:`amdgpu_dm_plane_fill_blending_from_plane_state()` that maps :c:type:`drm_plane_state ` attributes to :c:type:`dc_plane_info ` struct to be handled in the OS-agnostic component (DC).”h]”(hŒWhen updating a ”…”�”}”(hjM¾h²hh³Nh´Nubh)�”}”(hŒ+:c:type:`drm_plane_state `”h]”jï)�”}”(hjW¾h]”hŒdrm_plane_state”…”�”}”(hjY¾h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjU¾ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œdrm_plane_state”uh1hh³hÌh´K¯hjM¾ubhŒ , DM calls ”…”�”}”(hjM¾h²hh³Nh´Nubh)�”}”(hŒ::c:type:`amdgpu_dm_plane_fill_blending_from_plane_state()`”h]”jï)�”}”(hjz¾h]”hŒ0amdgpu_dm_plane_fill_blending_from_plane_state()”…”�”}”(hj|¾h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjx¾ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j'j+j Œ0amdgpu_dm_plane_fill_blending_from_plane_state()”uh1hh³hÌh´K¯hjM¾ubhŒ that maps ”…”�”}”(hjM¾h²hh³Nh´Nubh)�”}”(hŒ+:c:type:`drm_plane_state `”h]”jï)�”}”(hj�¾h]”hŒdrm_plane_state”…”�”}”(hjŸ¾h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj›¾ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œdrm_plane_state”uh1hh³hÌh´K¯hjM¾ubhŒ attributes to ”…”�”}”(hjM¾h²hh³Nh´Nubh)�”}”(hŒ':c:type:`dc_plane_info `”h]”jï)�”}”(hjÀ¾h]”hŒ dc_plane_info”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj¾¾ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œ dc_plane_info”uh1hh³hÌh´K¯hjM¾ubhŒ8 struct to be handled in the OS-agnostic component (DC).”…”�”}”(hjM¾h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´K¯hjI¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjF¾h²hh³hÌh´Nubhç)�”}”(hŒ®On DC interface, :c:type:`struct mpcc_blnd_cfg ` programs the MPCC blend configuration considering the :c:type:`dc_plane_info ` input from DPP. ”h]”hì)�”}”(hŒ­On DC interface, :c:type:`struct mpcc_blnd_cfg ` programs the MPCC blend configuration considering the :c:type:`dc_plane_info ` input from DPP.”h]”(hŒOn DC interface, ”…”�”}”(hjñ¾h²hh³Nh´Nubh)�”}”(hŒ.:c:type:`struct mpcc_blnd_cfg `”h]”jï)�”}”(hjû¾h]”hŒstruct mpcc_blnd_cfg”…”�”}”(hjý¾h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhjù¾ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œ mpcc_blnd_cfg”uh1hh³hÌh´Kµhjñ¾ubhŒ7 programs the MPCC blend configuration considering the ”…”�”}”(hjñ¾h²hh³Nh´Nubh)�”}”(hŒ':c:type:`dc_plane_info `”h]”jï)�”}”(hj¿h]”hŒ dc_plane_info”…”�”}”(hj ¿h²hh³Nh´Nubah}”(h]”h ]”(jújûŒc-type”eh"]”h$]”h&]”uh1jîhj¿ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jûŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j'j+j Œ dc_plane_info”uh1hh³hÌh´Kµhjñ¾ubhŒ input from DPP.”…”�”}”(hjñ¾h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÌh´Kµhjí¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjF¾h²hh³hÌh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j£Zj¤Zj¥Zhj¦Zj§Zuh1j×Yhj'¾h²hh³hÌh´K¯ubeh}”(h]”jWah ]”h"]”Œblend configuration flow”ah$]”h&]”uh1hµhjѹh²hh³hÌh´Kªubeh}”(h]”j8ah ]”h"]”Œblend mode properties”ah$]”h&]”uh1hµhh·h²hh³hÌh´K[ubh¶)�”}”(hhh]”(h»)�”}”(hŒDisplay Properties”h]”hŒDisplay Properties”…”�”}”(hjb¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjuh1hºhj_¿h²hh³hÌh´Kºubhì)�”}”(hŒ±The 'adaptive backlight modulation' property is used for the compositor to directly control the adaptive backlight modulation power savings feature that is part of DCN hardware.”h]”hŒµThe ‘adaptive backlight modulation’ property is used for the compositor to directly control the adaptive backlight modulation power savings feature that is part of DCN hardware.”…”�”}”(hjp¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:188: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´Mðhj_¿h²hubhì)�”}”(hŒIThe property will be attached specifically to eDP panels that support it.”h]”hŒIThe property will be attached specifically to eDP panels that support it.”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:188: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´Môhj_¿h²hubhì)�”}”(hXThe property is by default set to 'sysfs' to allow the sysfs file 'panel_power_savings' to be able to control it. If set to 'off' the compositor will ensure it stays off. The other values 'min', 'bias min', 'bias max', and 'max' will control the intensity of the power savings.”h]”hX1The property is by default set to ‘sysfs’ to allow the sysfs file ‘panel_power_savings’ to be able to control it. If set to ‘off’ the compositor will ensure it stays off. The other values ‘min’, ‘bias min’, ‘bias max’, and ‘max’ will control the intensity of the power savings.”…”�”}”(hjŽ¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:188: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´Möhj_¿h²hubhì)�”}”(hŒQModifying this value can have implications on color accuracy, so tread carefully.”h]”hŒQModifying this value can have implications on color accuracy, so tread carefully.”…”�”}”(hj�¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-manager:188: ./drivers/gpu/drm/amd/amdgpu/amdgpu_display.c”h´Mühj_¿h²hubeh}”(h]”j…ah ]”h"]”Œdisplay properties”ah$]”h&]”uh1hµhh·h²hh³hÌh´Kºubeh}”(h]”jah ]”h"]”Œamdgpu display manager”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·¿jjªj¦j/jjñPjAj6Ujcjιj…j¢Wj¤j‘YjÆj÷Zjèjǹj j\¿j8jU¿jWj°¿j…uŒ nametypes”}”(j·¿‰jª‰j/‰jñP‰j6U‰jι‰j¢W‰j‘Y‰j÷Z‰jǹ‰j\¿‰jU¿‰j°¿‰uh}”(jh·j¦hÏj)j3j×jÜj‹j�jj jó jø j§ j¬ j[ j` j�j¢jCjHj÷jüjæjëjšjŸj_(jd(jj¡*jÿ*j+jj-jo-jAj /jH0jM0jn2js2jÉ3jÎ3j 7j¥7j9:j>:j<j#<jŸ=j¤=jr@jw@jóAjøAjtCjyCjžEj£EjÈGjÍGjIjIjDKjIKj¤Lj©LjõMjúMjFOjKOjcjôPj+Qj0Qj¬Rj±Rj…j9Uj¤j{VjÆj¥Wjèj”Yj[j [j.\j3\j¯^j´^j/aj4ajscjxcj%fj*fjjhjohj¯jj´jjôljùljNpjSpj�sj†sj´vj¹vj#zj(zj’}j—}jãjèjÉ�jÎ�jüƒj„j†j†j j‰jb‰jg‰jâ‰jç‰j`ŠjeŠjMŒjRŒj+�j0�j6“j;“jx”j}”jð•jõ•j~˜jƒ˜jšjÇšjB�jG�jžjÇžj8 j= j¸¡j½¡j3£j8£jZ¥j_¥jp¦ju¦j$¨j)¨jØ©jÝ©jK¬jP¬jÆ­jË­j–¯j›¯jJ²jO²j¸´j½´j&·j+·j8jѹjWj'¾j…j_¿hËhòjjj;j2j]jTjjvjžj•jÀj·jâjÙjjûj2j)jQjHjjvuŒ 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”“”}”jë¿K s…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.