€•gŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ)/translations/zh_CN/gpu/intel-display/psr”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/zh_TW/gpu/intel-display/psr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/gpu/intel-display/psr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/gpu/intel-display/psr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/gpu/intel-display/psr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/pt_BR/gpu/intel-display/psr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/sp_SP/gpu/intel-display/psr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒSPDX-License-Identifier: MIT”h]”hŒSPDX-License-Identifier: MIT”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒC/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr.rst”h´Kubh¶)�”}”(hŒ#Copyright © 2026 Intel Corporation”h]”hŒ#Copyright © 2026 Intel Corporation”…”�”}”hhÈsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhhh²hh³hÇh´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ Panel Self Refresh PSR (PSR/SRD)”h]”hŒ Panel Self Refresh PSR (PSR/SRD)”…”�”}”(hhÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhØh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hX‚Since Haswell Display controller supports Panel Self-Refresh on display panels witch have a remote frame buffer (RFB) implemented according to PSR spec in eDP1.3. PSR feature allows the display to go to lower standby states when system is idle but display is on as it eliminates display refresh request to DDR memory completely as long as the frame buffer for that display is unchanged.”h]”hX‚Since Haswell Display controller supports Panel Self-Refresh on display panels witch have a remote frame buffer (RFB) implemented according to PSR spec in eDP1.3. PSR feature allows the display to go to lower standby states when system is idle but display is on as it eliminates display refresh request to DDR memory completely as long as the frame buffer for that display is unchanged.”…”�”}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:7: ./drivers/gpu/drm/i915/display/intel_psr.c”h´K?hhØh²hubhì)�”}”(hŒPPanel Self Refresh must be supported by both Hardware (source) and Panel (sink).”h]”hŒPPanel Self Refresh must be supported by both Hardware (source) and Panel (sink).”…”�”}”(hhüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:7: ./drivers/gpu/drm/i915/display/intel_psr.c”h´KFhhØh²hubhì)�”}”(hŒ°PSR saves power by caching the framebuffer in the panel RFB, which allows us to power down the link and memory controller. For DSI panels the same idea is called "manual mode".”h]”hŒ´PSR saves power by caching the framebuffer in the panel RFB, which allows us to power down the link and memory controller. For DSI panels the same idea is called “manual modeâ€�.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:7: ./drivers/gpu/drm/i915/display/intel_psr.c”h´KIhhØh²hubhì)�”}”(hXThe implementation uses the hardware-based PSR support which automatically enters/exits self-refresh mode. The hardware takes care of sending the required DP aux message and could even retrain the link (that part isn't enabled yet though). The hardware also keeps track of any frontbuffer changes to know when to exit self-refresh mode again. Unfortunately that part doesn't work too well, hence why the i915 PSR support uses the software frontbuffer tracking to make sure it doesn't miss a screen update. For this integration intel_psr_invalidate() and intel_psr_flush() get called by the frontbuffer tracking code. Note that because of locking issues the self-refresh re-enable code is done from a work queue, which must be correctly synchronized/cancelled when shutting down the pipe."”h]”hXThe implementation uses the hardware-based PSR support which automatically enters/exits self-refresh mode. The hardware takes care of sending the required DP aux message and could even retrain the link (that part isn’t enabled yet though). The hardware also keeps track of any frontbuffer changes to know when to exit self-refresh mode again. Unfortunately that part doesn’t work too well, hence why the i915 PSR support uses the software frontbuffer tracking to make sure it doesn’t miss a screen update. For this integration intel_psr_invalidate() and intel_psr_flush() get called by the frontbuffer tracking code. Note that because of locking issues the self-refresh re-enable code is done from a work queue, which must be correctly synchronized/cancelled when shutting down the pipe.â€�”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œm/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:7: ./drivers/gpu/drm/i915/display/intel_psr.c”h´KMhhØh²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œintel_psr_disable (C function)”Œc.intel_psr_disable”hNt”auh1j)hhØh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒavoid intel_psr_disable (struct intel_dp *intel_dp, const struct intel_crtc_state *old_crtc_state)”h]”hŒdesc_signature_line”“”)�”}”(hŒ`void intel_psr_disable(struct intel_dp *intel_dp, const struct intel_crtc_state *old_crtc_state)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jKhjGh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M\ ubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j]hjGh²hh³j\h´M\ ubhŒ desc_name”“”)�”}”(hŒintel_psr_disable”h]”hŒ desc_sig_name”“”)�”}”(hŒintel_psr_disable”h]”hŒintel_psr_disable”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jthjpubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jnhjGh²hh³j\h´M\ ubhŒdesc_parameterlist”“”)�”}”(hŒJ(struct intel_dp *intel_dp, const struct intel_crtc_state *old_crtc_state)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct intel_dp *intel_dp”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j™hj•ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj•ubh)�”}”(hhh]”ju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¸ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”j½Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j׌ ASTIdentifier”“”)�”}”jÒjxsbŒc.intel_psr_disable”†”asbuh1hhj•ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj•ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jòhj•ubju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj•ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj�ubj”)�”}”(hŒ-const struct intel_crtc_state *old_crtc_state”h]”(jš)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjubjš)�”}”(hj�h]”hŒstruct”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjubh)�”}”(hhh]”ju)�”}”(hŒintel_crtc_state”h]”hŒintel_crtc_state”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjSubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jXŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jàŒc.intel_psr_disable”†”asbuh1hhjubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjubju)�”}”(hŒold_crtc_state”h]”hŒold_crtc_state”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjGh²hh³j\h´M\ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jEŒsphinx_line_type”Œ declarator”hjAh²hh³j\h´M\ ubah}”(h]”j8ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1j?h³j\h´M\ hj<h²hubhŒ desc_content”“”)�”}”(hhh]”hì)�”}”(hŒ Disable PSR”h]”hŒ Disable PSR”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.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&]”Œdomain”jÐŒobjtype”jÛŒdesctype”jÛŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j:h²hhhØh³Nh´NubhŒ container”“”)�”}”(hŒÆ**Parameters** ``struct intel_dp *intel_dp`` Intel DP ``const struct intel_crtc_state *old_crtc_state`` old CRTC state **Description** This function needs to be called before disabling pipe.”h]”(hì)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hjíh]”hŒ Parameters”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M` hjçubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ'``struct intel_dp *intel_dp`` Intel DP ”h]”(hŒterm”“”)�”}”(hŒ``struct intel_dp *intel_dp``”h]”hŒliteral”“”)�”}”(hjh]”hŒstruct intel_dp *intel_dp”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M] hj ubhŒ definition”“”)�”}”(hhh]”hì)�”}”(hŒIntel DP”h]”hŒIntel DP”…”�”}”(hj1h²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ŒA``const struct intel_crtc_state *old_crtc_state`` old CRTC state ”h]”(j)�”}”(hŒ1``const struct intel_crtc_state *old_crtc_state``”h]”j)�”}”(hjQh]”hŒ-const struct intel_crtc_state *old_crtc_state”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M^ hjKubj-)�”}”(hhh]”hì)�”}”(hŒold CRTC state”h]”hŒold CRTC state”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jfh´M^ hjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jfh´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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M` hjçubhì)�”}”(hŒ7This function needs to be called before disabling pipe.”h]”hŒ7This function needs to be called before disabling pipe.”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M_ hjçubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œintel_psr_pause (C function)”Œc.intel_psr_pause”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒ0void intel_psr_pause (struct intel_dp *intel_dp)”h]”jF)�”}”(hŒ/void intel_psr_pause(struct intel_dp *intel_dp)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjÍh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mz ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÍh²hh³jßh´Mz ubjo)�”}”(hŒintel_psr_pause”h]”ju)�”}”(hŒintel_psr_pause”h]”hŒintel_psr_pause”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjîubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjÍh²hh³jßh´Mz ubjŽ)�”}”(hŒ(struct intel_dp *intel_dp)”h]”j”)�”}”(hŒstruct intel_dp *intel_dp”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubh)�”}”(hhh]”ju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”j.Œmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒjôsbŒc.intel_psr_pause”†”asbuh1hhj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj ubju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjÍh²hh³jßh´Mz ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjÉh²hh³jßh´Mz ubah}”(h]”jÄah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³jßh´Mz hjÆh²hubj¿)�”}”(hhh]”hì)�”}”(hŒ Pause PSR”h]”hŒ Pause PSR”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mz hjŽh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjÆh²hh³jßh´Mz ubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàj©jáj©jâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hŒ~**Parameters** ``struct intel_dp *intel_dp`` Intel DP **Description** This function need to be called after enabling psr.”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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M~ hj­ubj)�”}”(hhh]”j )�”}”(hŒ'``struct intel_dp *intel_dp`` Intel DP ”h]”(j)�”}”(hŒ``struct intel_dp *intel_dp``”h]”j)�”}”(hjÒh]”hŒstruct intel_dp *intel_dp”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M{ hjÌubj-)�”}”(hhh]”hì)�”}”(hŒIntel DP”h]”hŒIntel DP”…”�”}”(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ð)�”}”(hj h]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M} hj­ubhì)�”}”(hŒ3This function need to be called after enabling psr.”h]”hŒ3This function need to be called after enabling psr.”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M| hj­ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œintel_psr_resume (C function)”Œc.intel_psr_resume”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒ1void intel_psr_resume (struct intel_dp *intel_dp)”h]”jF)�”}”(hŒ0void intel_psr_resume(struct intel_dp *intel_dp)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjNh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M™ ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjNh²hh³j`h´M™ ubjo)�”}”(hŒintel_psr_resume”h]”ju)�”}”(hŒintel_psr_resume”h]”hŒintel_psr_resume”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjoubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjNh²hh³j`h´M™ ubjŽ)�”}”(hŒ(struct intel_dp *intel_dp)”h]”j”)�”}”(hŒstruct intel_dp *intel_dp”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj‹ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj‹ubh)�”}”(hhh]”ju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”j¯Œmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒjusbŒc.intel_psr_resume”†”asbuh1hhj‹ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj‹ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj‹ubju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj‹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj‡ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjNh²hh³j`h´M™ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjJh²hh³j`h´M™ ubah}”(h]”jEah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³j`h´M™ hjGh²hubj¿)�”}”(hhh]”hì)�”}”(hŒ Resume PSR”h]”hŒ Resume PSR”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M™ hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjGh²hh³j`h´M™ ubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàj*jáj*jâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hŒ}**Parameters** ``struct intel_dp *intel_dp`` Intel DP **Description** This function need to be called after pausing psr.”h]”(hì)�”}”(hŒ**Parameters**”h]”jð)�”}”(hj4h]”hŒ Parameters”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M� hj.ubj)�”}”(hhh]”j )�”}”(hŒ'``struct intel_dp *intel_dp`` Intel DP ”h]”(j)�”}”(hŒ``struct intel_dp *intel_dp``”h]”j)�”}”(hjSh]”hŒstruct intel_dp *intel_dp”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mš hjMubj-)�”}”(hhh]”hì)�”}”(hŒIntel DP”h]”hŒIntel DP”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jhh´Mš hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jhh´Mš hjJubah}”(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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mœ hj.ubhì)�”}”(hŒ2This function need to be called after pausing psr.”h]”hŒ2This function need to be called after pausing psr.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M› hj.ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œ0intel_psr_needs_vblank_notification (C function)”Œ%c.intel_psr_needs_vblank_notification”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒTbool intel_psr_needs_vblank_notification (const struct intel_crtc_state *crtc_state)”h]”jF)�”}”(hŒSbool intel_psr_needs_vblank_notification(const struct intel_crtc_state *crtc_state)”h]”(jL)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjÏh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M½ ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÏh²hh³jáh´M½ ubjo)�”}”(hŒ#intel_psr_needs_vblank_notification”h]”ju)�”}”(hŒ#intel_psr_needs_vblank_notification”h]”hŒ#intel_psr_needs_vblank_notification”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjðubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjÏh²hh³jáh´M½ ubjŽ)�”}”(hŒ+(const struct intel_crtc_state *crtc_state)”h]”j”)�”}”(hŒ)const struct intel_crtc_state *crtc_state”h]”(jš)�”}”(hjh]”hŒconst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubjš)�”}”(hj�h]”hŒstruct”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubh)�”}”(hhh]”ju)�”}”(hŒintel_crtc_state”h]”hŒintel_crtc_state”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jKŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒjösbŒ%c.intel_psr_needs_vblank_notification”†”asbuh1hhj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj ubju)�”}”(hŒ crtc_state”h]”hŒ crtc_state”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjÏh²hh³jáh´M½ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjËh²hh³jáh´M½ ubah}”(h]”jÆah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³jáh´M½ hjÈh²hubj¿)�”}”(hhh]”hì)�”}”(hŒ5Check if PSR need vblank enable/disable notification.”h]”hŒ5Check if PSR need vblank enable/disable notification.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.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²hhhØh³Nh´Nubjæ)�”}”(hX¬**Parameters** ``const struct intel_crtc_state *crtc_state`` CRTC status **Description** We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't prevent it in case of Panel Replay. Panel Replay switches main link off on DC entry. This means vblank interrupts are not fired and is a problem if user-space is polling for vblank events. Also Wa_16025596647 needs information when vblank is enabled/disabled.”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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MÁ hjÊubj)�”}”(hhh]”j )�”}”(hŒ:``const struct intel_crtc_state *crtc_state`` CRTC status ”h]”(j)�”}”(hŒ-``const struct intel_crtc_state *crtc_state``”h]”j)�”}”(hjïh]”hŒ)const struct intel_crtc_state *crtc_state”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M¿ hjéubj-)�”}”(hhh]”hì)�”}”(hŒ CRTC status”h]”hŒ CRTC status”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´M¿ hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MÁ hjÊubhì)�”}”(hXNWe need to block DC6 entry in case of Panel Replay as enabling VBI doesn't prevent it in case of Panel Replay. Panel Replay switches main link off on DC entry. This means vblank interrupts are not fired and is a problem if user-space is polling for vblank events. Also Wa_16025596647 needs information when vblank is enabled/disabled.”h]”hXPWe need to block DC6 entry in case of Panel Replay as enabling VBI doesn’t prevent it in case of Panel Replay. Panel Replay switches main link off on DC entry. This means vblank interrupts are not fired and is a problem if user-space is polling for vblank events. Also Wa_16025596647 needs information when vblank is enabled/disabled.”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MÀ hjÊubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œ1intel_psr_trigger_frame_change_event (C function)”Œ&c.intel_psr_trigger_frame_change_event”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒ|void intel_psr_trigger_frame_change_event (struct intel_dsb *dsb, struct intel_atomic_state *state, struct intel_crtc *crtc)”h]”jF)�”}”(hŒ{void intel_psr_trigger_frame_change_event(struct intel_dsb *dsb, struct intel_atomic_state *state, struct intel_crtc *crtc)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjkh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Må ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjkh²hh³j}h´Må ubjo)�”}”(hŒ$intel_psr_trigger_frame_change_event”h]”ju)�”}”(hŒ$intel_psr_trigger_frame_change_event”h]”hŒ$intel_psr_trigger_frame_change_event”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŒubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjkh²hh³j}h´Må ubjŽ)�”}”(hŒR(struct intel_dsb *dsb, struct intel_atomic_state *state, struct intel_crtc *crtc)”h]”(j”)�”}”(hŒstruct intel_dsb *dsb”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj¨ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj¨ubh)�”}”(hhh]”ju)�”}”(hŒ intel_dsb”h]”hŒ intel_dsb”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÇubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jÌŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒj’sbŒ&c.intel_psr_trigger_frame_change_event”†”asbuh1hhj¨ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj¨ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¨ubju)�”}”(hŒdsb”h]”hŒdsb”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¨ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj¤ubj”)�”}”(hŒ struct intel_atomic_state *state”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+ h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubh)�”}”(hhh]”ju)�”}”(hŒintel_atomic_state”h]”hŒintel_atomic_state”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj9 ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”j> Œmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jæŒ&c.intel_psr_trigger_frame_change_event”†”asbuh1hhj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZ h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjh h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj ubju)�”}”(hŒstate”h]”hŒstate”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj¤ubj”)�”}”(hŒstruct intel_crtc *crtc”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hjŽ h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjŠ ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj› h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjŠ ubh)�”}”(hhh]”ju)�”}”(hŒ intel_crtc”h]”hŒ intel_crtc”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj© ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”j® Œmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jæŒ&c.intel_psr_trigger_frame_change_event”†”asbuh1hhjŠ ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjŠ ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjŠ ubju)�”}”(hŒcrtc”h]”hŒcrtc”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŠ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjkh²hh³j}h´Må ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjgh²hh³j}h´Må ubah}”(h]”jbah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³j}h´Må hjdh²hubj¿)�”}”(hhh]”hì)�”}”(hŒTrigger "Frame Change" event”h]”hŒ Trigger “Frame Changeâ€� event”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Må hj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjdh²hh³j}h´Må ubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàj' jáj' jâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hŒÍ**Parameters** ``struct intel_dsb *dsb`` DSB context ``struct intel_atomic_state *state`` the atomic state ``struct intel_crtc *crtc`` the CRTC **Description** Generate PSR "Frame Change" event.”h]”(hì)�”}”(hŒ**Parameters**”h]”jð)�”}”(hj1 h]”hŒ Parameters”…”�”}”(hj3 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhj/ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mé hj+ ubj)�”}”(hhh]”(j )�”}”(hŒ&``struct intel_dsb *dsb`` DSB context ”h]”(j)�”}”(hŒ``struct intel_dsb *dsb``”h]”j)�”}”(hjP h]”hŒstruct intel_dsb *dsb”…”�”}”(hjR h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjN ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mæ hjJ ubj-)�”}”(hhh]”hì)�”}”(hŒ DSB context”h]”hŒ DSB context”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³je h´Mæ hjf ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjJ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³je h´Mæ hjG ubj )�”}”(hŒ6``struct intel_atomic_state *state`` the atomic state ”h]”(j)�”}”(hŒ$``struct intel_atomic_state *state``”h]”j)�”}”(hj‰ h]”hŒ struct intel_atomic_state *state”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mç hjƒ ubj-)�”}”(hhh]”hì)�”}”(hŒthe atomic state”h]”hŒthe atomic 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ç hjG ubj )�”}”(hŒ%``struct intel_crtc *crtc`` the CRTC ”h]”(j)�”}”(hŒ``struct intel_crtc *crtc``”h]”j)�”}”(hj h]”hŒstruct intel_crtc *crtc”…”�”}”(hjÄ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mè hj¼ ubj-)�”}”(hhh]”hì)�”}”(hŒthe CRTC”h]”hŒthe CRTC”…”�”}”(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è hjG 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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mê hj+ ubhì)�”}”(hŒ"Generate PSR "Frame Change" event.”h]”hŒ&Generate PSR “Frame Changeâ€� event.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mé hj+ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œ.intel_psr_min_set_context_latency (C function)”Œ#c.intel_psr_min_set_context_latency”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒQint intel_psr_min_set_context_latency (const struct intel_crtc_state *crtc_state)”h]”jF)�”}”(hŒPint intel_psr_min_set_context_latency(const struct intel_crtc_state *crtc_state)”h]”(jL)�”}”(hŒint”h]”hŒint”…”�”}”(hjB h²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhj> h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mü ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj> h²hh³jP h´Mü ubjo)�”}”(hŒ!intel_psr_min_set_context_latency”h]”ju)�”}”(hŒ!intel_psr_min_set_context_latency”h]”hŒ!intel_psr_min_set_context_latency”…”�”}”(hjc h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj_ ubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhj> h²hh³jP h´Mü ubjŽ)�”}”(hŒ+(const struct intel_crtc_state *crtc_state)”h]”j”)�”}”(hŒ)const struct intel_crtc_state *crtc_state”h]”(jš)�”}”(hjh]”hŒconst”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj{ ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj{ ubjš)�”}”(hj�h]”hŒstruct”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj{ ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§ h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj{ ubh)�”}”(hhh]”ju)�”}”(hŒintel_crtc_state”h]”hŒintel_crtc_state”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjµ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jº Œmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒje sbŒ#c.intel_psr_min_set_context_latency”†”asbuh1hhj{ ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj{ ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjæ h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj{ ubju)�”}”(hŒ crtc_state”h]”hŒ crtc_state”…”�”}”(hjó h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj{ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjw ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hj> h²hh³jP h´Mü ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hj: h²hh³jP h´Mü ubah}”(h]”j5 ah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³jP h´Mü hj7 h²hubj¿)�”}”(hhh]”hì)�”}”(hŒ1Minimum 'set context latency' lines needed by PSR”h]”hŒ5Minimum ‘set context latency’ lines needed by PSR”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mü hj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj7 h²hh³jP h´Mü ubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàj5 jáj5 jâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hŒŽ**Parameters** ``const struct intel_crtc_state *crtc_state`` the crtc state **Description** Return minimum SCL lines/delay needed by PSR.”h]”(hì)�”}”(hŒ**Parameters**”h]”jð)�”}”(hj? h]”hŒ Parameters”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhj= ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M hj9 ubj)�”}”(hhh]”j )�”}”(hŒ=``const struct intel_crtc_state *crtc_state`` the crtc state ”h]”(j)�”}”(hŒ-``const struct intel_crtc_state *crtc_state``”h]”j)�”}”(hj^ h]”hŒ)const struct intel_crtc_state *crtc_state”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj\ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mý hjX ubj-)�”}”(hhh]”hì)�”}”(hŒthe crtc state”h]”hŒthe crtc state”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³js h´Mý hjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjX ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³js h´Mý hjU ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9 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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mÿ hj9 ubhì)�”}”(hŒ-Return minimum SCL lines/delay needed by PSR.”h]”hŒ-Return minimum SCL lines/delay needed by PSR.”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mþ hj9 ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œ+intel_psr_wait_for_idle_locked (C function)”Œ c.intel_psr_wait_for_idle_locked”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒSvoid intel_psr_wait_for_idle_locked (const struct intel_crtc_state *new_crtc_state)”h]”jF)�”}”(hŒRvoid intel_psr_wait_for_idle_locked(const struct intel_crtc_state *new_crtc_state)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÞ h²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjÚ h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mø ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjí h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÚ h²hh³jì h´Mø ubjo)�”}”(hŒintel_psr_wait_for_idle_locked”h]”ju)�”}”(hŒintel_psr_wait_for_idle_locked”h]”hŒintel_psr_wait_for_idle_locked”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjû ubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjÚ h²hh³jì h´Mø ubjŽ)�”}”(hŒ/(const struct intel_crtc_state *new_crtc_state)”h]”j”)�”}”(hŒ-const struct intel_crtc_state *new_crtc_state”h]”(jš)�”}”(hjh]”hŒconst”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubjš)�”}”(hj�h]”hŒstruct”…”�”}”(hj6 h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjC h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubh)�”}”(hhh]”ju)�”}”(hŒintel_crtc_state”h]”hŒintel_crtc_state”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjQ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jV Œmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒj sbŒ c.intel_psr_wait_for_idle_locked”†”asbuh1hhj ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj ubju)�”}”(hŒnew_crtc_state”h]”hŒnew_crtc_state”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjÚ h²hh³jì h´Mø ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjÖ h²hh³jì h´Mø ubah}”(h]”jÑ ah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³jì h´Mø hjÓ h²hubj¿)�”}”(hhh]”hì)�”}”(hŒ'wait for PSR be ready for a pipe update”h]”hŒ'wait for PSR be ready for a pipe update”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.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²hhhØh³Nh´Nubjæ)�”}”(hŒá**Parameters** ``const struct intel_crtc_state *new_crtc_state`` new CRTC state **Description** This function is expected to be called from pipe_update_start() where it is not expected to race with PSR enable or disable.”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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mü hjÕ ubj)�”}”(hhh]”j )�”}”(hŒA``const struct intel_crtc_state *new_crtc_state`` new CRTC state ”h]”(j)�”}”(hŒ1``const struct intel_crtc_state *new_crtc_state``”h]”j)�”}”(hjú h]”hŒ-const struct intel_crtc_state *new_crtc_state”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjø ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mù hjô ubj-)�”}”(hhh]”hì)�”}”(hŒnew CRTC state”h]”hŒnew CRTC state”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´Mù hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjô ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´Mù hjñ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÕ ubhì)�”}”(hŒ**Description**”h]”jð)�”}”(hj5h]”hŒ Description”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mû hjÕ ubhì)�”}”(hŒ|This function is expected to be called from pipe_update_start() where it is not expected to race with PSR enable or disable.”h]”hŒ|This function is expected to be called from pipe_update_start() where it is not expected to race with PSR enable or disable.”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mú hjÕ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œ!intel_psr_invalidate (C function)”Œc.intel_psr_invalidate”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒnvoid intel_psr_invalidate (struct intel_display *display, unsigned frontbuffer_bits, enum fb_op_origin origin)”h]”jF)�”}”(hŒmvoid intel_psr_invalidate(struct intel_display *display, unsigned frontbuffer_bits, enum fb_op_origin origin)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjvh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjvh²hh³jˆh´M ubjo)�”}”(hŒintel_psr_invalidate”h]”ju)�”}”(hŒintel_psr_invalidate”h]”hŒintel_psr_invalidate”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj—ubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjvh²hh³jˆh´M ubjŽ)�”}”(hŒT(struct intel_display *display, unsigned frontbuffer_bits, enum fb_op_origin origin)”h]”(j”)�”}”(hŒstruct intel_display *display”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj³ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj³ubh)�”}”(hhh]”ju)�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”j׌modname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒj�sbŒc.intel_psr_invalidate”†”asbuh1hhj³ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj³ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj³ubju)�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj¯ubj”)�”}”(hŒunsigned frontbuffer_bits”h]”(jL)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhj%ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj%ubju)�”}”(hŒfrontbuffer_bits”h]”hŒfrontbuffer_bits”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj¯ubj”)�”}”(hŒenum fb_op_origin origin”h]”(jš)�”}”(hŒenum”h]”hŒenum”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjZubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjZubh)�”}”(hhh]”ju)�”}”(hŒ fb_op_origin”h]”hŒ fb_op_origin”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjzubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jñŒc.intel_psr_invalidate”†”asbuh1hhjZubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjZubju)�”}”(hŒorigin”h]”hŒorigin”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj¯ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjvh²hh³jˆh´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjrh²hh³jˆh´M ubah}”(h]”jmah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³jˆh´M hjoh²hubj¿)�”}”(hhh]”hì)�”}”(hŒInvalidate PSR”h]”hŒInvalidate PSR”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M hjÐh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjoh²hh³jˆh´M ubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàjëjájëjâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hXA**Parameters** ``struct intel_display *display`` display device ``unsigned frontbuffer_bits`` frontbuffer plane tracking bits ``enum fb_op_origin origin`` which operation caused the invalidate **Description** Since the hardware frontbuffer tracking has gaps we need to integrate with the software frontbuffer tracking. This function gets called every time frontbuffer rendering starts and a buffer gets dirtied. PSR must be disabled if the frontbuffer mask contains a buffer relevant to PSR. Dirty frontbuffers relevant to PSR are tracked in busy_frontbuffer_bits."”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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mhjïubj)�”}”(hhh]”(j )�”}”(hŒ1``struct intel_display *display`` display device ”h]”(j)�”}”(hŒ!``struct intel_display *display``”h]”j)�”}”(hjh]”hŒstruct intel_display *display”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M hjubj-)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay device”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j)h´M hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j)h´M hj ubj )�”}”(hŒ>``unsigned frontbuffer_bits`` frontbuffer plane tracking bits ”h]”(j)�”}”(hŒ``unsigned frontbuffer_bits``”h]”j)�”}”(hjMh]”hŒunsigned frontbuffer_bits”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M hjGubj-)�”}”(hhh]”hì)�”}”(hŒfrontbuffer plane tracking bits”h]”hŒfrontbuffer plane tracking bits”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jbh´M hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jbh´M hj ubj )�”}”(hŒC``enum fb_op_origin origin`` which operation caused the invalidate ”h]”(j)�”}”(hŒ``enum fb_op_origin origin``”h]”j)�”}”(hj†h]”hŒenum fb_op_origin origin”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M hj€ubj-)�”}”(hhh]”hì)�”}”(hŒ%which operation caused the invalidate”h]”hŒ%which operation caused the invalidate”…”�”}”(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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mhjïubhì)�”}”(hXSince the hardware frontbuffer tracking has gaps we need to integrate with the software frontbuffer tracking. This function gets called every time frontbuffer rendering starts and a buffer gets dirtied. PSR must be disabled if the frontbuffer mask contains a buffer relevant to PSR.”h]”hXSince the hardware frontbuffer tracking has gaps we need to integrate with the software frontbuffer tracking. This function gets called every time frontbuffer rendering starts and a buffer gets dirtied. PSR must be disabled if the frontbuffer mask contains a buffer relevant to PSR.”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mhjïubhì)�”}”(hŒIDirty frontbuffers relevant to PSR are tracked in busy_frontbuffer_bits."”h]”hŒKDirty frontbuffers relevant to PSR are tracked in busy_frontbuffer_bits.â€�”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mhjïubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œintel_psr_flush (C function)”Œc.intel_psr_flush”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒivoid intel_psr_flush (struct intel_display *display, unsigned frontbuffer_bits, enum fb_op_origin origin)”h]”jF)�”}”(hŒhvoid intel_psr_flush(struct intel_display *display, unsigned frontbuffer_bits, enum fb_op_origin origin)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M^ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjh²hh³j#h´M^ubjo)�”}”(hŒintel_psr_flush”h]”ju)�”}”(hŒintel_psr_flush”h]”hŒintel_psr_flush”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj2ubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjh²hh³j#h´M^ubjŽ)�”}”(hŒT(struct intel_display *display, unsigned frontbuffer_bits, enum fb_op_origin origin)”h]”(j”)�”}”(hŒstruct intel_display *display”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjNubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjNubh)�”}”(hhh]”ju)�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjmubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jrŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒj8sbŒc.intel_psr_flush”†”asbuh1hhjNubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjNubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjNubju)�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjNubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjJubj”)�”}”(hŒunsigned frontbuffer_bits”h]”(jL)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjÀubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÀubju)�”}”(hŒfrontbuffer_bits”h]”hŒfrontbuffer_bits”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÀubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjJubj”)�”}”(hŒenum fb_op_origin origin”h]”(jš)�”}”(hj`h]”hŒenum”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjõubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjõubh)�”}”(hhh]”ju)�”}”(hŒ fb_op_origin”h]”hŒ fb_op_origin”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jŒŒc.intel_psr_flush”†”asbuh1hhjõubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjõubju)�”}”(hŒorigin”h]”hŒorigin”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjõubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjJubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjh²hh³j#h´M^ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hj h²hh³j#h´M^ubah}”(h]”jah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³j#h´M^hj h²hubj¿)�”}”(hhh]”hì)�”}”(hŒ Flush PSR”h]”hŒ Flush PSR”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M^hjjh²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²hhhØh³Nh´Nubjæ)�”}”(hX=**Parameters** ``struct intel_display *display`` display device ``unsigned frontbuffer_bits`` frontbuffer plane tracking bits ``enum fb_op_origin origin`` which operation caused the flush **Description** Since the hardware frontbuffer tracking has gaps we need to integrate with the software frontbuffer tracking. This function gets called every time frontbuffer rendering has completed and flushed out to memory. PSR can be enabled again if no other frontbuffer relevant to PSR is dirty. Dirty frontbuffers relevant to PSR are tracked in busy_frontbuffer_bits.”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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mbhj‰ubj)�”}”(hhh]”(j )�”}”(hŒ1``struct intel_display *display`` display device ”h]”(j)�”}”(hŒ!``struct intel_display *display``”h]”j)�”}”(hj®h]”hŒstruct intel_display *display”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M_hj¨ubj-)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay 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Œ>``unsigned frontbuffer_bits`` frontbuffer plane tracking bits ”h]”(j)�”}”(hŒ``unsigned frontbuffer_bits``”h]”j)�”}”(hjçh]”hŒunsigned frontbuffer_bits”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M`hjáubj-)�”}”(hhh]”hì)�”}”(hŒfrontbuffer plane tracking bits”h]”hŒfrontbuffer plane tracking bits”…”�”}”(hjh²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Œ>``enum fb_op_origin origin`` which operation caused the flush ”h]”(j)�”}”(hŒ``enum fb_op_origin origin``”h]”j)�”}”(hj h]”hŒenum fb_op_origin origin”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mahjubj-)�”}”(hhh]”hì)�”}”(hŒ which operation caused the flush”h]”hŒ which operation caused the flush”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j5h´Mahj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j5h´Mahj¥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ïhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mchj‰ubhì)�”}”(hXSince the hardware frontbuffer tracking has gaps we need to integrate with the software frontbuffer tracking. This function gets called every time frontbuffer rendering has completed and flushed out to memory. PSR can be enabled again if no other frontbuffer relevant to PSR is dirty.”h]”hXSince the hardware frontbuffer tracking has gaps we need to integrate with the software frontbuffer tracking. This function gets called every time frontbuffer rendering has completed and flushed out to memory. PSR can be enabled again if no other frontbuffer relevant to PSR is dirty.”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mbhj‰ubhì)�”}”(hŒHDirty frontbuffers relevant to PSR are tracked in busy_frontbuffer_bits.”h]”hŒHDirty frontbuffers relevant to PSR are tracked in busy_frontbuffer_bits.”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mghj‰ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œintel_psr_init (C function)”Œc.intel_psr_init”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒ/void intel_psr_init (struct intel_dp *intel_dp)”h]”jF)�”}”(hŒ.void intel_psr_init(struct intel_dp *intel_dp)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhj«h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M—ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj«h²hh³j½h´M—ubjo)�”}”(hŒintel_psr_init”h]”ju)�”}”(hŒintel_psr_init”h]”hŒintel_psr_init”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÌubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhj«h²hh³j½h´M—ubjŽ)�”}”(hŒ(struct intel_dp *intel_dp)”h]”j”)�”}”(hŒstruct intel_dp *intel_dp”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjèubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjèubh)�”}”(hhh]”ju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”j Œmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒjÒsbŒc.intel_psr_init”†”asbuh1hhjèubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjèubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjèubju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjèubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjäubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hj«h²hh³j½h´M—ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hj§h²hh³j½h´M—ubah}”(h]”j¢ah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³j½h´M—hj¤h²hubj¿)�”}”(hhh]”hì)�”}”(hŒInit basic PSR work and mutex.”h]”hŒInit basic PSR work and mutex.”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M—hjlh²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²hhhØh³Nh´Nubjæ)�”}”(hX **Parameters** ``struct intel_dp *intel_dp`` Intel DP **Description** This function is called after the initializing connector. (the initializing of connector treats the handling of connector capabilities) And it initializes basic PSR stuff for each DP Encoder.”•³§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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M›hj‹ubj)�”}”(hhh]”j )�”}”(hŒ'``struct intel_dp *intel_dp`` Intel DP ”h]”(j)�”}”(hŒ``struct intel_dp *intel_dp``”h]”j)�”}”(hj°h]”hŒstruct intel_dp *intel_dp”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M˜hjªubj-)�”}”(hhh]”hì)�”}”(hŒIntel DP”h]”hŒIntel DP”…”�”}”(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ð)�”}”(hjëh]”hŒ Description”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mšhj‹ubhì)�”}”(hŒ¿This function is called after the initializing connector. (the initializing of connector treats the handling of connector capabilities) And it initializes basic PSR stuff for each DP Encoder.”h]”hŒ¿This function is called after the initializing connector. (the initializing of connector treats the handling of connector capabilities) And it initializes basic PSR stuff for each DP Encoder.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M™hj‹ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œintel_psr_link_ok (C function)”Œc.intel_psr_link_ok”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒ2bool intel_psr_link_ok (struct intel_dp *intel_dp)”h]”jF)�”}”(hŒ1bool intel_psr_link_ok(struct intel_dp *intel_dp)”h]”(jL)�”}”(hjÕh]”hŒbool”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhj,h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MYubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj,h²hh³j=h´MYubjo)�”}”(hŒintel_psr_link_ok”h]”ju)�”}”(hŒintel_psr_link_ok”h]”hŒintel_psr_link_ok”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjLubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhj,h²hh³j=h´MYubjŽ)�”}”(hŒ(struct intel_dp *intel_dp)”h]”j”)�”}”(hŒstruct intel_dp *intel_dp”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjhubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjhubh)�”}”(hhh]”ju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj‡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jŒŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒjRsbŒc.intel_psr_link_ok”†”asbuh1hhjhubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjhubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjhubju)�”}”(hŒintel_dp”h]”hŒintel_dp”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjhubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjdubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hj,h²hh³j=h´MYubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hj(h²hh³j=h´MYubah}”(h]”j#ah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³j=h´MYhj%h²hubj¿)�”}”(hhh]”hì)�”}”(hŒreturn psr->link_ok”h]”hŒreturn psr->link_ok”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MYhjìh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj%h²hh³j=h´MYubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàjjájjâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hX½**Parameters** ``struct intel_dp *intel_dp`` struct intel_dp **Description** We are seeing unexpected link re-trainings with some panels. This is caused by panel stating bad link status after PSR is enabled. Code checking link status can call this to ensure it can ignore bad link status stated by the panel I.e. if panel is stating bad link and intel_psr_link_ok is stating link is ok caller should rely on latter. Return value of link_ok”h]”(hì)�”}”(hŒ**Parameters**”h]”jð)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M]hj ubj)�”}”(hhh]”j )�”}”(hŒ.``struct intel_dp *intel_dp`` struct intel_dp ”h]”(j)�”}”(hŒ``struct intel_dp *intel_dp``”h]”j)�”}”(hj0h]”hŒstruct intel_dp *intel_dp”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MZhj*ubj-)�”}”(hhh]”hì)�”}”(hŒstruct intel_dp”h]”hŒstruct intel_dp”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jEh´MZhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jEh´MZhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhì)�”}”(hŒ**Description**”h]”jð)�”}”(hjkh]”hŒ Description”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjiubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M\hj ubhì)�”}”(hXRWe are seeing unexpected link re-trainings with some panels. This is caused by panel stating bad link status after PSR is enabled. Code checking link status can call this to ensure it can ignore bad link status stated by the panel I.e. if panel is stating bad link and intel_psr_link_ok is stating link is ok caller should rely on latter.”h]”hXRWe are seeing unexpected link re-trainings with some panels. This is caused by panel stating bad link status after PSR is enabled. Code checking link status can call this to ensure it can ignore bad link status stated by the panel I.e. if panel is stating bad link and intel_psr_link_ok is stating link is ok caller should rely on latter.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M[hj ubhì)�”}”(hŒReturn value of link_ok”h]”hŒReturn value of link_ok”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mahj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œintel_psr_lock (C function)”Œc.intel_psr_lock”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒ?void intel_psr_lock (const struct intel_crtc_state *crtc_state)”h]”jF)�”}”(hŒ>void intel_psr_lock(const struct intel_crtc_state *crtc_state)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhj»h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mtubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj»h²hh³jÍh´Mtubjo)�”}”(hŒintel_psr_lock”h]”ju)�”}”(hŒintel_psr_lock”h]”hŒintel_psr_lock”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÜubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhj»h²hh³jÍh´MtubjŽ)�”}”(hŒ+(const struct intel_crtc_state *crtc_state)”h]”j”)�”}”(hŒ)const struct intel_crtc_state *crtc_state”h]”(jš)�”}”(hjh]”hŒconst”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjøubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjøubjš)�”}”(hj�h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjøubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjøubh)�”}”(hhh]”ju)�”}”(hŒintel_crtc_state”h]”hŒintel_crtc_state”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”j7Œmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒjâsbŒc.intel_psr_lock”†”asbuh1hhjøubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjøubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjøubju)�”}”(hŒ crtc_state”h]”hŒ crtc_state”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjøubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjôubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hj»h²hh³jÍh´Mtubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hj·h²hh³jÍh´Mtubah}”(h]”j²ah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³jÍh´Mthj´h²hubj¿)�”}”(hhh]”hì)�”}”(hŒ grab PSR lock”h]”hŒ grab PSR lock”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mthj—h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj´h²hh³jÍh´Mtubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàj²jáj²jâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hX**Parameters** ``const struct intel_crtc_state *crtc_state`` the crtc state **Description** This is initially meant to be used by around CRTC update, when vblank sensitive registers are updated and we need grab the lock before it to avoid vblank evasion.”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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mxhj¶ubj)�”}”(hhh]”j )�”}”(hŒ=``const struct intel_crtc_state *crtc_state`` the crtc state ”h]”(j)�”}”(hŒ-``const struct intel_crtc_state *crtc_state``”h]”j)�”}”(hjÛh]”hŒ)const struct intel_crtc_state *crtc_state”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MuhjÕubj-)�”}”(hhh]”hì)�”}”(hŒthe crtc state”h]”hŒthe crtc state”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jðh´Muhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjÕubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jðh´MuhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¶ubhì)�”}”(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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mwhj¶ubhì)�”}”(hŒ¢This is initially meant to be used by around CRTC update, when vblank sensitive registers are updated and we need grab the lock before it to avoid vblank evasion.”h]”hŒ¢This is initially meant to be used by around CRTC update, when vblank sensitive registers are updated and we need grab the lock before it to avoid vblank evasion.”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mvhj¶ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œintel_psr_unlock (C function)”Œc.intel_psr_unlock”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒAvoid intel_psr_unlock (const struct intel_crtc_state *crtc_state)”h]”jF)�”}”(hŒ@void intel_psr_unlock(const struct intel_crtc_state *crtc_state)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjWh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M�ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjWh²hh³jih´M�ubjo)�”}”(hŒintel_psr_unlock”h]”ju)�”}”(hŒintel_psr_unlock”h]”hŒintel_psr_unlock”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjxubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjWh²hh³jih´M�ubjŽ)�”}”(hŒ+(const struct intel_crtc_state *crtc_state)”h]”j”)�”}”(hŒ)const struct intel_crtc_state *crtc_state”h]”(jš)�”}”(hjh]”hŒconst”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj”ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj”ubjš)�”}”(hj�h]”hŒstruct”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj”ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj”ubh)�”}”(hhh]”ju)�”}”(hŒintel_crtc_state”h]”hŒintel_crtc_state”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÎubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jÓŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒj~sbŒc.intel_psr_unlock”†”asbuh1hhj”ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj”ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj”ubju)�”}”(hŒ crtc_state”h]”hŒ crtc_state”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj�ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjWh²hh³jih´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjSh²hh³jih´M�ubah}”(h]”jNah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³jih´M�hjPh²hubj¿)�”}”(hhh]”hì)�”}”(hŒrelease PSR lock”h]”hŒrelease PSR lock”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M�hj3h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjPh²hh³jih´M�ubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàjNjájNjâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hŒ—**Parameters** ``const struct intel_crtc_state *crtc_state`` the crtc state **Description** Release the PSR lock that was held during pipe update.”h]”(hì)�”}”(hŒ**Parameters**”h]”jð)�”}”(hjXh]”hŒ Parameters”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M‘hjRubj)�”}”(hhh]”j )�”}”(hŒ=``const struct intel_crtc_state *crtc_state`` the crtc state ”h]”(j)�”}”(hŒ-``const struct intel_crtc_state *crtc_state``”h]”j)�”}”(hjwh]”hŒ)const struct intel_crtc_state *crtc_state”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MŽhjqubj-)�”}”(hhh]”hì)�”}”(hŒthe crtc state”h]”hŒthe 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,hjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŒh´MŽhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjRubhì)�”}”(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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M�hjRubhì)�”}”(hŒ6Release the PSR lock that was held during pipe update.”h]”hŒ6Release the PSR lock that was held during pipe update.”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M�hjRubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œ%intel_psr_notify_dc5_dc6 (C function)”Œc.intel_psr_notify_dc5_dc6”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒ=void intel_psr_notify_dc5_dc6 (struct intel_display *display)”h]”jF)�”}”(hŒvoid intel_psr_dc5_dc6_wa_init (struct intel_display *display)”h]”jF)�”}”(hŒ=void intel_psr_dc5_dc6_wa_init(struct intel_display *display)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjth²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MÚubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjth²hh³j†h´MÚubjo)�”}”(hŒintel_psr_dc5_dc6_wa_init”h]”ju)�”}”(hŒintel_psr_dc5_dc6_wa_init”h]”hŒintel_psr_dc5_dc6_wa_init”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj•ubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjth²hh³j†h´MÚubjŽ)�”}”(hŒ(struct intel_display *display)”h]”j”)�”}”(hŒstruct intel_display *display”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj±ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj±ubh)�”}”(hhh]”ju)�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÐubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jÕŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒj›sbŒc.intel_psr_dc5_dc6_wa_init”†”asbuh1hhj±ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj±ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj±ubju)�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj±ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj­ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjth²hh³j†h´MÚubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjph²hh³j†h´MÚubah}”(h]”jkah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³j†h´MÚhjmh²hubj¿)�”}”(hhh]”hì)�”}”(hŒ,Init work for underrun on idle PSR HW bug wa”h]”hŒ,Init work for underrun on idle PSR HW bug wa”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MÚhj5h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjmh²hh³j†h´MÚubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàjPjájPjâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hŒØ**Parameters** ``struct intel_display *display`` intel atomic state **Description** This is targeted for underrun on idle PSR HW bug (Wa_16025596647) to init psr_dc5_dc6_wa_work used for applying the workaround.”h]”(hì)�”}”(hŒ**Parameters**”h]”jð)�”}”(hjZh]”hŒ Parameters”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MÞhjTubj)�”}”(hhh]”j )�”}”(hŒ5``struct intel_display *display`` intel atomic state ”h]”(j)�”}”(hŒ!``struct intel_display *display``”h]”j)�”}”(hjyh]”hŒstruct intel_display *display”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MÛhjsubj-)�”}”(hhh]”hì)�”}”(hŒintel atomic state”h]”hŒintel atomic state”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jŽh´MÛhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŽh´MÛhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjTubhì)�”}”(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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MÝhjTubhì)�”}”(hŒThis is targeted for underrun on idle PSR HW bug (Wa_16025596647) to init psr_dc5_dc6_wa_work used for applying the workaround.”h]”hŒThis is targeted for underrun on idle PSR HW bug (Wa_16025596647) to init psr_dc5_dc6_wa_work used for applying the workaround.”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MÜhjTubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œ)intel_psr_notify_pipe_change (C function)”Œc.intel_psr_notify_pipe_change”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒjvoid intel_psr_notify_pipe_change (struct intel_atomic_state *state, struct intel_crtc *crtc, bool enable)”h]”jF)�”}”(hŒivoid intel_psr_notify_pipe_change(struct intel_atomic_state *state, struct intel_crtc *crtc, bool enable)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjõh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Méubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjõh²hh³jh´Méubjo)�”}”(hŒintel_psr_notify_pipe_change”h]”ju)�”}”(hŒintel_psr_notify_pipe_change”h]”hŒintel_psr_notify_pipe_change”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjõh²hh³jh´MéubjŽ)�”}”(hŒH(struct intel_atomic_state *state, struct intel_crtc *crtc, bool enable)”h]”(j”)�”}”(hŒ struct intel_atomic_state *state”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj2ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj2ubh)�”}”(hhh]”ju)�”}”(hŒintel_atomic_state”h]”hŒintel_atomic_state”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjQubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jVŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒjsbŒc.intel_psr_notify_pipe_change”†”asbuh1hhj2ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj2ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj2ubju)�”}”(hŒstate”h]”hŒstate”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj.ubj”)�”}”(hŒstruct intel_crtc *crtc”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hj¤ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj¤ubh)�”}”(hhh]”ju)�”}”(hŒ intel_crtc”h]”hŒ intel_crtc”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÃubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jÈŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jpŒc.intel_psr_notify_pipe_change”†”asbuh1hhj¤ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj¤ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¤ubju)�”}”(hŒcrtc”h]”hŒcrtc”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¤ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj.ubj”)�”}”(hŒ bool enable”h]”(jL)�”}”(hjÕh]”hŒbool”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjubju)�”}”(hŒenable”h]”hŒenable”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hj.ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjõh²hh³jh´Méubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjñh²hh³jh´Méubah}”(h]”jìah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³jh´Méhjîh²hubj¿)�”}”(hhh]”hì)�”}”(hŒ)Notify PSR about enable/disable of a pipe”h]”hŒ)Notify PSR about enable/disable of a pipe”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MéhjZh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjîh²hh³jh´Méubeh}”(h]”h ]”(jÐŒfunction”eh"]”h$]”h&]”jßjÐjàjujájujâ‰jã‰jä‰uh1j:h²hhhØh³Nh´Nubjæ)�”}”(hX.**Parameters** ``struct intel_atomic_state *state`` intel atomic state ``struct intel_crtc *crtc`` intel crtc ``bool enable`` enable/disable **Description** This is targeted for underrun on idle PSR HW bug (Wa_16025596647) to apply remove the workaround when pipe is getting enabled/disabled”h]”(hì)�”}”(hŒ**Parameters**”h]”jð)�”}”(hjh]”hŒ Parameters”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Míhjyubj)�”}”(hhh]”(j )�”}”(hŒ8``struct intel_atomic_state *state`` intel atomic state ”h]”(j)�”}”(hŒ$``struct intel_atomic_state *state``”h]”j)�”}”(hjžh]”hŒ struct intel_atomic_state *state”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mêhj˜ubj-)�”}”(hhh]”hì)�”}”(hŒintel atomic state”h]”hŒintel atomic 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Œ'``struct intel_crtc *crtc`` intel crtc ”h]”(j)�”}”(hŒ``struct intel_crtc *crtc``”h]”j)�”}”(hj×h]”hŒstruct intel_crtc *crtc”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´MëhjÑubj-)�”}”(hhh]”hì)�”}”(hŒ intel crtc”h]”hŒ intel crtc”…”�”}”(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Œ``bool enable`` enable/disable ”h]”(j)�”}”(hŒ``bool enable``”h]”j)�”}”(hjh]”hŒ bool enable”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mìhj ubj-)�”}”(hhh]”hì)�”}”(hŒenable/disable”h]”hŒenable/disable”…”�”}”(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&]”uh1jhjyubhì)�”}”(hŒ**Description**”h]”jð)�”}”(hjKh]”hŒ Description”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mîhjyubhì)�”}”(hŒ†This is targeted for underrun on idle PSR HW bug (Wa_16025596647) to apply remove the workaround when pipe is getting enabled/disabled”h]”hŒ†This is targeted for underrun on idle PSR HW bug (Wa_16025596647) to apply remove the workaround when pipe is getting enabled/disabled”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Míhjyubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubj*)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j6Œ3intel_psr_notify_vblank_enable_disable (C function)”Œ(c.intel_psr_notify_vblank_enable_disable”hNt”auh1j)hhØh²hh³Nh´Nubj;)�”}”(hhh]”(j@)�”}”(hŒXvoid intel_psr_notify_vblank_enable_disable (struct intel_display *display, bool enable)”h]”jF)�”}”(hŒWvoid intel_psr_notify_vblank_enable_disable(struct intel_display *display, bool enable)”h]”(jL)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhjŒh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjŒh²hh³jžh´Mubjo)�”}”(hŒ&intel_psr_notify_vblank_enable_disable”h]”ju)�”}”(hŒ&intel_psr_notify_vblank_enable_disable”h]”hŒ&intel_psr_notify_vblank_enable_disable”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj­ubah}”(h]”h ]”(jˆj‰eh"]”h$]”h&]”hÅhÆuh1jnhjŒh²hh³jžh´MubjŽ)�”}”(hŒ,(struct intel_display *display, bool enable)”h]”(j”)�”}”(hŒstruct intel_display *display”h]”(jš)�”}”(hj�h]”hŒstruct”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j¦ah"]”h$]”h&]”uh1j™hjÉubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÉubh)�”}”(hhh]”ju)�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjèubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jÐŒreftype”jÒŒ reftarget”jíŒmodname”NŒ classname”NjÖjÙ)�”}”jÜ]”jß)�”}”jÒj³sbŒ(c.intel_psr_notify_vblank_enable_disable”†”asbuh1hhjÉubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÉubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÉubju)�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÉubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjÅubj”)�”}”(hŒ bool enable”h]”(jL)�”}”(hjÕh]”hŒbool”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”jXah"]”h$]”h&]”uh1jKhj; ubj^)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj; ubju)�”}”(hŒenable”h]”hŒenable”…”�”}”(hjZ h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj; ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j“hjÅubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j�hjŒh²hh³jžh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj°ˆuh1jEj±j²hjˆh²hh³jžh´Mubah}”(h]”jƒah ]”(j¶j·eh"]”h$]”h&]”j»ˆj¼)j½huh1j?h³jžh´Mhj…h²hubj¿)�”}”(hhh]”hì)�”}”(hŒ)Notify PSR about enable/disable of vblank”h]”hŒ)Notify PSR about enable/disable of vblank”…”�”}”(hj„ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”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²hhhØh³Nh´Nubjæ)�”}”(hX**Parameters** ``struct intel_display *display`` intel display struct ``bool enable`` enable/disable **Description** This is targeted for underrun on idle PSR HW bug (Wa_16025596647) to apply remove the workaround when vblank is getting enabled/disabled”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³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M!hj  ubj)�”}”(hhh]”(j )�”}”(hŒ7``struct intel_display *display`` intel display struct ”h]”(j)�”}”(hŒ!``struct intel_display *display``”h]”j)�”}”(hjÅ h]”hŒstruct intel_display *display”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mhj¿ ubj-)�”}”(hhh]”hì)�”}”(hŒintel display struct”h]”hŒintel display struct”…”�”}”(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Œ``bool enable`` enable/disable ”h]”(j)�”}”(hŒ``bool enable``”h]”j)�”}”(hjþ h]”hŒ bool enable”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjü ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´Mhjø ubj-)�”}”(hhh]”hì)�”}”(hŒenable/disable”h]”hŒenable/disable”…”�”}”(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ð)�”}”(hj9!h]”hŒ Description”…”�”}”(hj;!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhj7!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M!hj  ubhì)�”}”(hŒˆThis is targeted for underrun on idle PSR HW bug (Wa_16025596647) to apply remove the workaround when vblank is getting enabled/disabled”h]”hŒˆThis is targeted for underrun on idle PSR HW bug (Wa_16025596647) to apply remove the workaround when vblank is getting enabled/disabled”…”�”}”(hjO!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/psr:10: ./drivers/gpu/drm/i915/display/intel_psr.c”h´M hj  ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jåhhØh²hh³Nh´Nubeh}”(h]”Œpanel-self-refresh-psr-psr-srd”ah ]”h"]”Œ panel self refresh psr (psr/srd)”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”}”jj!jg!sŒ nametypes”}”jj!‰sh}”(jg!hØj8jAjÄjÉjEjJjÆjËjbjgj5 j: jÑ jÖ jmjrjj j¢j§j#j(j²j·jNjSjêjïjkjpjìjñjƒjˆuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.