€•Œ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/audio”Œ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/audio”Œ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/audio”Œ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/audio”Œ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/audio”Œ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/audio”Œ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/audio”Œ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³ŒE/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio.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ŒHigh Definition Audio”h]”hŒHigh Definition Audio”…”�”}”(hhÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhØh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hXAThe graphics and audio drivers together support High Definition Audio over HDMI and Display Port. The audio programming sequences are divided into audio codec and controller enable and disable sequences. The graphics driver handles the audio codec sequences, while the audio driver handles the audio controller sequences.”h]”hXAThe graphics and audio drivers together support High Definition Audio over HDMI and Display Port. The audio programming sequences are divided into audio codec and controller enable and disable sequences. The graphics driver handles the audio codec sequences, while the audio driver handles the audio controller sequences.”…”�”}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œq/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:7: ./drivers/gpu/drm/i915/display/intel_audio.c”h´K-hhØh²hubhì)�”}”(hXThe disable sequences must be performed before disabling the transcoder or port. The enable sequences may only be performed after enabling the transcoder and port, and after completed link training. Therefore the audio enable/disable sequences are part of the modeset sequence.”h]”hXThe disable sequences must be performed before disabling the transcoder or port. The enable sequences may only be performed after enabling the transcoder and port, and after completed link training. Therefore the audio enable/disable sequences are part of the modeset sequence.”…”�”}”(hhüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œq/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:7: ./drivers/gpu/drm/i915/display/intel_audio.c”h´K3hhØh²hubhì)�”}”(hX~The codec and controller sequences could be done either parallel or serial, but generally the ELDV/PD change in the codec sequence indicates to the audio driver that the controller sequence should start. Indeed, most of the co-operation between the graphics and audio drivers is handled via audio related registers. (The notable exception is the power management, not covered here.)”h]”hX~The codec and controller sequences could be done either parallel or serial, but generally the ELDV/PD change in the codec sequence indicates to the audio driver that the controller sequence should start. Indeed, most of the co-operation between the graphics and audio drivers is handled via audio related registers. (The notable exception is the power management, not covered here.)”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œq/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:7: ./drivers/gpu/drm/i915/display/intel_audio.c”h´K8hhØh²hubhì)�”}”(hX9The struct :c:type:`i915_audio_component` is used to interact between the graphics and audio drivers. The struct :c:type:`i915_audio_component_ops` **ops** in it is defined in graphics driver and called in audio driver. The struct :c:type:`i915_audio_component_audio_ops` **audio_ops** is called from i915 driver.”h]”(hŒ The struct ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`i915_audio_component`”h]”hŒliteral”“”)�”}”(hj$h]”hŒi915_audio_component”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1j&hj"ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œgpu/intel-display/audio”Œ refdomain”j3Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ reftarget”Œi915_audio_component”uh1hh³Œq/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:7: ./drivers/gpu/drm/i915/display/intel_audio.c”h´K?hjubhŒH is used to interact between the graphics and audio drivers. The struct ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ":c:type:`i915_audio_component_ops`”h]”j')�”}”(hjNh]”hŒi915_audio_component_ops”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”(j2j3Œc-type”eh"]”h$]”h&]”uh1j&hjLubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j?Œ refdomain”j3Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jEŒi915_audio_component_ops”uh1hh³jGh´K?hjubhŒ ”…”�”}”(hjh²hh³Nh´NubhŒstrong”“”)�”}”(hŒ**ops**”h]”hŒops”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjubhŒL in it is defined in graphics driver and called in audio driver. The struct ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ(:c:type:`i915_audio_component_audio_ops`”h]”j')�”}”(hj…h]”hŒi915_audio_component_audio_ops”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”(j2j3Œc-type”eh"]”h$]”h&]”uh1j&hjƒubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j?Œ refdomain”j3Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jEŒi915_audio_component_audio_ops”uh1hh³jGh´K?hjubhŒ ”…”�”}”hjsbjp)�”}”(hŒ **audio_ops**”h]”hŒ audio_ops”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjubhŒ is called from i915 driver.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jGh´K?hhØh²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ%intel_audio_codec_enable (C function)”Œc.intel_audio_codec_enable”hNt”auh1j¾hhØh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ–void intel_audio_codec_enable (struct intel_encoder *encoder, const struct intel_crtc_state *crtc_state, const struct drm_connector_state *conn_state)”h]”hŒdesc_signature_line”“”)�”}”(hŒ•void intel_audio_codec_enable(struct intel_encoder *encoder, const struct intel_crtc_state *crtc_state, const struct drm_connector_state *conn_state)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jàhjÜh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MßubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jòhjÜh²hh³jñh´MßubhŒ desc_name”“”)�”}”(hŒintel_audio_codec_enable”h]”hŒ desc_sig_name”“”)�”}”(hŒintel_audio_codec_enable”h]”hŒintel_audio_codec_enable”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j hjubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jhjÜh²hh³jñh´MßubhŒdesc_parameterlist”“”)�”}”(hŒx(struct intel_encoder *encoder, const struct intel_crtc_state *crtc_state, const struct drm_connector_state *conn_state)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct intel_encoder *encoder”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j.hj*ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj*ubh)�”}”(hhh]”j )�”}”(hŒ intel_encoder”h]”hŒ intel_encoder”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjMubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”Œ identifier”Œ reftarget”jRŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jkŒ ASTIdentifier”“”)�”}”jfj sbŒc.intel_audio_codec_enable”†”asbuh1hhj*ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj*ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j†hj*ubj )�”}”(hŒencoder”h]”hŒencoder”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj$ubj))�”}”(hŒ)const struct intel_crtc_state *crtc_state”h]”(j/)�”}”(hŒconst”h]”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 ]”jÿah"]”h$]”h&]”uh1jòhj¬ubj/)�”}”(hj2h]”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 ]”jÿah"]”h$]”h&]”uh1jòhj¬ubh)�”}”(hhh]”j )�”}”(hŒintel_crtc_state”h]”hŒintel_crtc_state”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjçubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jìŒmodname”NŒ classname”Njjjm)�”}”jp]”jtŒc.intel_audio_codec_enable”†”asbuh1hhj¬ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¬ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hj¬ubj )�”}”(hŒ crtc_state”h]”hŒ crtc_state”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj$ubj))�”}”(hŒ,const struct drm_connector_state *conn_state”h]”(j/)�”}”(hj²h]”hŒconst”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hj8ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj8ubj/)�”}”(hj2h]”hŒstruct”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hj8ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj8ubh)�”}”(hhh]”j )�”}”(hŒdrm_connector_state”h]”hŒdrm_connector_state”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjrubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jwŒmodname”NŒ classname”Njjjm)�”}”jp]”jtŒc.intel_audio_codec_enable”†”asbuh1hhj8ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj8ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hj8ubj )�”}”(hŒ conn_state”h]”hŒ conn_state”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj$ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j"hjÜh²hh³jñh´Mßubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jÚŒsphinx_line_type”Œ declarator”hjÖh²hh³jñh´Mßubah}”(h]”jÍah ]”(Œ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Œ#Enable the audio codec for HD audio”h]”hŒ#Enable the audio codec for HD audio”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mßhjßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÑh²hh³jñh´Mßubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”Œdomain”j3Œobjtype”júŒdesctype”júŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jÏh²hhhØh³Nh´NubhŒ container”“”)�”}”(hXŒ**Parameters** ``struct intel_encoder *encoder`` encoder on which to enable audio ``const struct intel_crtc_state *crtc_state`` pointer to the current crtc state. ``const struct drm_connector_state *conn_state`` pointer to the current connector state. **Description** The enable sequences may only be performed after enabling the transcoder and port, and after completed link training.”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hj h]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MãhjubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒC``struct intel_encoder *encoder`` encoder on which to enable audio ”h]”(hŒterm”“”)�”}”(hŒ!``struct intel_encoder *encoder``”h]”j')�”}”(hj1h]”hŒstruct intel_encoder *encoder”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Màhj)ubhŒ definition”“”)�”}”(hhh]”hì)�”}”(hŒ encoder on which to enable audio”h]”hŒ encoder on which to enable audio”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jFh´MàhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jFh´Màhj$ubj()�”}”(hŒQ``const struct intel_crtc_state *crtc_state`` pointer to the current crtc state. ”h]”(j.)�”}”(hŒ-``const struct intel_crtc_state *crtc_state``”h]”j')�”}”(hjlh]”hŒ)const struct intel_crtc_state *crtc_state”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjjubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MáhjfubjH)�”}”(hhh]”hì)�”}”(hŒ"pointer to the current crtc state.”h]”hŒ"pointer to the current crtc state.”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�h´Máhj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjfubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³j�h´Máhj$ubj()�”}”(hŒY``const struct drm_connector_state *conn_state`` pointer to the current connector state. ”h]”(j.)�”}”(hŒ0``const struct drm_connector_state *conn_state``”h]”j')�”}”(hj¥h]”hŒ,const struct drm_connector_state *conn_state”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MâhjŸubjH)�”}”(hhh]”hì)�”}”(hŒ'pointer to the current connector state.”h]”hŒ'pointer to the current connector state.”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jºh´Mâhj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jºh´Mâhj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j"hjubhì)�”}”(hŒ**Description**”h]”jp)�”}”(hjàh]”hŒ Description”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mähjubhì)�”}”(hŒuThe enable sequences may only be performed after enabling the transcoder and port, and after completed link training.”h]”hŒuThe enable sequences may only be performed after enabling the transcoder and port, and after completed link training.”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mãhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhØh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒ&intel_audio_codec_disable (C function)”Œc.intel_audio_codec_disable”hNt”auh1j¾hhØh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒŸvoid intel_audio_codec_disable (struct intel_encoder *encoder, const struct intel_crtc_state *old_crtc_state, const struct drm_connector_state *old_conn_state)”h]”jÛ)�”}”(hŒžvoid intel_audio_codec_disable(struct intel_encoder *encoder, const struct intel_crtc_state *old_crtc_state, const struct drm_connector_state *old_conn_state)”h]”(já)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhj!h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj!h²hh³j3h´Mubj)�”}”(hŒintel_audio_codec_disable”h]”j )�”}”(hŒintel_audio_codec_disable”h]”hŒintel_audio_codec_disable”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjBubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhj!h²hh³j3h´Mubj#)�”}”(hŒ€(struct intel_encoder *encoder, const struct intel_crtc_state *old_crtc_state, const struct drm_connector_state *old_conn_state)”h]”(j))�”}”(hŒstruct intel_encoder *encoder”h]”(j/)�”}”(hj2h]”hŒstruct”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hj^ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj^ubh)�”}”(hhh]”j )�”}”(hŒ intel_encoder”h]”hŒ intel_encoder”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj}ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”j‚Œmodname”NŒ classname”Njjjm)�”}”jp]”js)�”}”jfjHsbŒc.intel_audio_codec_disable”†”asbuh1hhj^ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj^ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hj^ubj )�”}”(hŒencoder”h]”hŒencoder”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj^ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hjZubj))�”}”(hŒ-const struct intel_crtc_state *old_crtc_state”h]”(j/)�”}”(hj²h]”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 ]”jÿah"]”h$]”h&]”uh1jòhjÐubj/)�”}”(hj2h]”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 ]”jÿah"]”h$]”h&]”uh1jòhjÐubh)�”}”(hhh]”j )�”}”(hŒintel_crtc_state”h]”hŒintel_crtc_state”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jŒmodname”NŒ classname”Njjjm)�”}”jp]”jœŒc.intel_audio_codec_disable”†”asbuh1hhjÐubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÐubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hjÐubj )�”}”(hŒold_crtc_state”h]”hŒold_crtc_state”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÐubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hjZubj))�”}”(hŒ0const struct drm_connector_state *old_conn_state”h]”(j/)�”}”(hj²h]”hŒconst”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hj[ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj[ubj/)�”}”(hj2h]”hŒstruct”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hj[ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj[ubh)�”}”(hhh]”j )�”}”(hŒdrm_connector_state”h]”hŒdrm_connector_state”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj•ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jšŒmodname”NŒ classname”Njjjm)�”}”jp]”jœŒc.intel_audio_codec_disable”†”asbuh1hhj[ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj[ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hj[ubj )�”}”(hŒold_conn_state”h]”hŒold_conn_state”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj[ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hjZubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j"hj!h²hh³j3h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjψuh1jÚjÐjÑhjh²hh³j3h´Mubah}”(h]”jah ]”(jÕjÖeh"]”h$]”h&]”jÚˆjÛ)jÜhuh1jÔh³j3h´Mhjh²hubjÞ)�”}”(hhh]”hì)�”}”(hŒ$Disable the audio codec for HD audio”h]”hŒ$Disable the audio codec for HD audio”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mhjøh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjh²hh³j3h´Mubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”jþj3jÿjjjj‰j‰j‰uh1jÏh²hhhØh³Nh´Nubj)�”}”(hXh**Parameters** ``struct intel_encoder *encoder`` encoder on which to disable audio ``const struct intel_crtc_state *old_crtc_state`` pointer to the old crtc state. ``const struct drm_connector_state *old_conn_state`` pointer to the old connector state. **Description** The disable sequences must be performed before disabling the transcoder or port.”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M#hjubj#)�”}”(hhh]”(j()�”}”(hŒD``struct intel_encoder *encoder`` encoder on which to disable audio ”h]”(j.)�”}”(hŒ!``struct intel_encoder *encoder``”h]”j')�”}”(hj<h]”hŒstruct intel_encoder *encoder”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M hj6ubjH)�”}”(hhh]”hì)�”}”(hŒ!encoder on which to disable audio”h]”hŒ!encoder on which to disable audio”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jQh´M hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jQh´M hj3ubj()�”}”(hŒQ``const struct intel_crtc_state *old_crtc_state`` pointer to the old crtc state. ”h]”(j.)�”}”(hŒ1``const struct intel_crtc_state *old_crtc_state``”h]”j')�”}”(hjuh]”hŒ-const struct intel_crtc_state *old_crtc_state”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M!hjoubjH)�”}”(hhh]”hì)�”}”(hŒpointer to the old crtc state.”h]”hŒpointer to the old crtc state.”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jŠh´M!hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jŠh´M!hj3ubj()�”}”(hŒY``const struct drm_connector_state *old_conn_state`` pointer to the old connector state. ”h]”(j.)�”}”(hŒ4``const struct drm_connector_state *old_conn_state``”h]”j')�”}”(hj®h]”hŒ0const struct drm_connector_state *old_conn_state”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M"hj¨ubjH)�”}”(hhh]”hì)�”}”(hŒ#pointer to the old connector state.”h]”hŒ#pointer to the old connector state.”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÃh´M"hjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jÃh´M"hj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j"hjubhì)�”}”(hŒ**Description**”h]”jp)�”}”(hjéh]”hŒ Description”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjçubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M$hjubhì)�”}”(hŒPThe disable sequences must be performed before disabling the transcoder or port.”h]”hŒPThe disable sequences must be performed before disabling the transcoder or port.”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M#hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhØh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒ#intel_audio_hooks_init (C function)”Œc.intel_audio_hooks_init”hNt”auh1j¾hhØh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒ;void intel_audio_hooks_init (struct intel_display *display)”h]”jÛ)�”}”(hŒ:void intel_audio_hooks_init(struct intel_display *display)”h]”(já)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhj*h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M‰ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj*h²hh³j<h´M‰ubj)�”}”(hŒintel_audio_hooks_init”h]”j )�”}”(hŒintel_audio_hooks_init”h]”hŒintel_audio_hooks_init”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjKubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhj*h²hh³j<h´M‰ubj#)�”}”(hŒ(struct intel_display *display)”h]”j))�”}”(hŒstruct intel_display *display”h]”(j/)�”}”(hj2h]”hŒstruct”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hjgubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjgubh)�”}”(hhh]”j )�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj†ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”j‹Œmodname”NŒ classname”Njjjm)�”}”jp]”js)�”}”jfjQsbŒc.intel_audio_hooks_init”†”asbuh1hhjgubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjgubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hjgubj )�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjgubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hjcubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j"hj*h²hh³j<h´M‰ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjψuh1jÚjÐ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Œ Set up chip specific audio hooks”h]”hŒ Set up chip specific audio hooks”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M‰hjëh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj#h²hh³j<h´M‰ubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”jþj3jÿj jj j‰j‰j‰uh1jÏh²hhhØh³Nh´Nubj)�”}”(hŒB**Parameters** ``struct intel_display *display`` display device”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M�hj ubj#)�”}”(hhh]”j()�”}”(hŒ0``struct intel_display *display`` display device”h]”(j.)�”}”(hŒ!``struct intel_display *display``”h]”j')�”}”(hj/ h]”hŒstruct intel_display *display”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj- ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M�hj) ubjH)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay device”…”�”}”(hjH h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MŠhjE ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj) ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jD h´M�hj& ubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhØh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒ'intel_audio_component_init (C function)”Œc.intel_audio_component_init”hNt”auh1j¾hhØh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒ?void intel_audio_component_init (struct intel_display *display)”h]”jÛ)�”}”(hŒ>void intel_audio_component_init(struct intel_display *display)”h]”(já)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‰ h²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhj… h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M9ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj… h²hh³j— h´M9ubj)�”}”(hŒintel_audio_component_init”h]”j )�”}”(hŒintel_audio_component_init”h]”hŒintel_audio_component_init”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¦ ubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhj… h²hh³j— h´M9ubj#)�”}”(hŒ(struct intel_display *display)”h]”j))�”}”(hŒstruct intel_display *display”h]”(j/)�”}”(hj2h]”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 ]”jÿah"]”h$]”h&]”uh1jòhj ubh)�”}”(hhh]”j )�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjá ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jæ Œmodname”NŒ classname”Njjjm)�”}”jp]”js)�”}”jfj¬ sbŒc.intel_audio_component_init”†”asbuh1hhj ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hj ubj )�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj 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´M9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjψuh1jÚjÐjÑhj� h²hh³j— h´M9ubah}”(h]”j| ah ]”(jÕjÖeh"]”h$]”h&]”jÚˆjÛ)jÜhuh1jÔh³j— h´M9hj~ h²hubjÞ)�”}”(hhh]”hì)�”}”(hŒ+initialize and register the audio component”h]”hŒ+initialize and register the audio component”…”�”}”(hjI h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M9hjF h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj~ h²hh³j— h´M9ubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”jþj3jÿja jja j‰j‰j‰uh1jÏh²hhhØh³Nh´Nubj)�”}”(hXÁ**Parameters** ``struct intel_display *display`` display device **Description** This will register with the component framework a child component which will bind dynamically to the snd_hda_intel driver's corresponding master component when the latter is registered. During binding the child initializes an instance of struct i915_audio_component which it receives from the master. The master can then start to use the interface defined by this struct. Each side can break the binding at any point by deregistering its own component after which each side's component unbind callback is called. We ignore any error during registration and continue with reduced functionality (i.e. without HDMI audio).”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hjk h]”hŒ Parameters”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johji ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M=hje 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&]”uh1j&hjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M:hj„ ubjH)�”}”(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&]”uh1jGhj„ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jŸ h´M:hj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hje ubhì)�”}”(hŒ**Description**”h]”jp)�”}”(hjÅ h]”hŒ Description”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M<hje ubhì)�”}”(hXThis will register with the component framework a child component which will bind dynamically to the snd_hda_intel driver's corresponding master component when the latter is registered. During binding the child initializes an instance of struct i915_audio_component which it receives from the master. The master can then start to use the interface defined by this struct. Each side can break the binding at any point by deregistering its own component after which each side's component unbind callback is called.”h]”hXThis will register with the component framework a child component which will bind dynamically to the snd_hda_intel driver’s corresponding master component when the latter is registered. During binding the child initializes an instance of struct i915_audio_component which it receives from the master. The master can then start to use the interface defined by this struct. Each side can break the binding at any point by deregistering its own component after which each side’s component unbind callback is called.”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M;hje ubhì)�”}”(hŒjWe ignore any error during registration and continue with reduced functionality (i.e. without HDMI audio).”h]”hŒjWe ignore any error during registration and continue with reduced functionality (i.e. without HDMI audio).”…”�”}”(hjê h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MDhje ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhØh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒ*intel_audio_component_cleanup (C function)”Œc.intel_audio_component_cleanup”hNt”auh1j¾hhØh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒBvoid intel_audio_component_cleanup (struct intel_display *display)”h]”jÛ)�”}”(hŒAvoid intel_audio_component_cleanup(struct intel_display *display)”h]”(já)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhj h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mvubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj h²hh³j' h´Mvubj)�”}”(hŒintel_audio_component_cleanup”h]”j )�”}”(hŒintel_audio_component_cleanup”h]”hŒintel_audio_component_cleanup”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj6 ubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhj h²hh³j' h´Mvubj#)�”}”(hŒ(struct intel_display *display)”h]”j))�”}”(hŒstruct intel_display *display”h]”(j/)�”}”(hj2h]”hŒstruct”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hjR ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjR ubh)�”}”(hhh]”j )�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjq ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jv Œmodname”NŒ classname”Njjjm)�”}”jp]”js)�”}”jfj< sbŒc.intel_audio_component_cleanup”†”asbuh1hhjR ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjR ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hj¢ h²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hjR ubj )�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjR ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hjN ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j"hj h²hh³j' h´Mvubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjψuh1jÚjÐjÑhj h²hh³j' h´Mvubah}”(h]”j ah ]”(jÕjÖeh"]”h$]”h&]”jÚˆjÛ)jÜhuh1jÔh³j' h´Mvhj h²hubjÞ)�”}”(hhh]”hì)�”}”(hŒderegister the audio component”h]”hŒderegister the audio component”…”�”}”(hjÙ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MvhjÖ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj h²hh³j' h´Mvubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”jþj3jÿjñ jjñ j‰j‰j‰uh1jÏh²hhhØh³Nh´Nubj)�”}”(hŒÑ**Parameters** ``struct intel_display *display`` display device **Description** Deregisters the audio component, breaking any existing binding to the corresponding snd_hda_intel driver's master component.”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hjû h]”hŒ Parameters”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjù ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mzhjõ 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&]”uh1j&hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mwhj ubjH)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay device”…”�”}”(hj3 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j/ h´Mwhj0 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³j/ h´Mwhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjõ ubhì)�”}”(hŒ**Description**”h]”jp)�”}”(hjU h]”hŒ Description”…”�”}”(hjW h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjS ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Myhjõ ubhì)�”}”(hŒ|Deregisters the audio component, breaking any existing binding to the corresponding snd_hda_intel driver's master component.”h]”hŒ~Deregisters the audio component, breaking any existing binding to the corresponding snd_hda_intel driver’s master component.”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mxhjõ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhØh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒintel_audio_init (C function)”Œc.intel_audio_init”hNt”auh1j¾hhØh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒ5void intel_audio_init (struct intel_display *display)”h]”jÛ)�”}”(hŒ4void intel_audio_init(struct intel_display *display)”h]”(já)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhj– h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M†ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj© h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj– h²hh³j¨ h´M†ubj)�”}”(hŒintel_audio_init”h]”j )�”}”(hŒintel_audio_init”h]”hŒintel_audio_init”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj· ubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhj– h²hh³j¨ h´M†ubj#)�”}”(hŒ(struct intel_display *display)”h]”j))�”}”(hŒstruct intel_display *display”h]”(j/)�”}”(hj2h]”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 ]”jÿah"]”h$]”h&]”uh1jòhjÓ ubh)�”}”(hhh]”j )�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjõ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjò ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”j÷ Œmodname”NŒ classname”Njjjm)�”}”jp]”js)�”}”jfj½ sbŒc.intel_audio_init”†”asbuh1hhjÓ ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÓ ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hjÓ ubj )�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hj0 h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÓ 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ψuh1jÚjÐ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ŒVInitialize the audio driver either using component framework or using lpe audio bridge”h]”hŒVInitialize the audio driver either using component framework or using lpe audio bridge”…”�”}”(hjZ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M†hjW h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj� h²hh³j¨ h´M†ubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”jþj3jÿjr jjr j‰j‰j‰uh1jÏh²hhhØh³Nh´Nubj)�”}”(hŒB**Parameters** ``struct intel_display *display`` display device”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hj| h]”hŒ Parameters”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjz ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MŠhjv ubj#)�”}”(hhh]”j()�”}”(hŒ0``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&]”uh1j&hj™ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MŒhj• ubjH)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay device”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´Mˆhj± ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj• ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³j° h´MŒhj’ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjv ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhØh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒintel_audio_deinit (C function)”Œc.intel_audio_deinit”hNt”auh1j¾hhØh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒ7void intel_audio_deinit (struct intel_display *display)”h]”jÛ)�”}”(hŒ6void intel_audio_deinit(struct intel_display *display)”h]”(já)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjõ h²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhjñ h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M˜ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjñ h²hh³jh´M˜ubj)�”}”(hŒintel_audio_deinit”h]”j )�”}”(hŒintel_audio_deinit”h]”hŒintel_audio_deinit”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhjñ h²hh³jh´M˜ubj#)�”}”(hŒ(struct intel_display *display)”h]”j))�”}”(hŒstruct intel_display *display”h]”(j/)�”}”(hj2h]”hŒstruct”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hj.ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj.ubh)�”}”(hhh]”j )�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjMubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jRŒmodname”NŒ classname”Njjjm)�”}”jp]”js)�”}”jfjsbŒc.intel_audio_deinit”†”asbuh1hhj.ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj.ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hj.ubj )�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj*ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j"hjñ h²hh³jh´M˜ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjψuh1jÚjÐ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Œdeinitialize the audio driver”h]”hŒdeinitialize the audio driver”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M˜hj²h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjê h²hh³jh´M˜ubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”jþj3jÿjÍjjÍj‰j‰j‰uh1jÏh²hhhØh³Nh´Nubj)�”}”(hŒB**Parameters** ``struct intel_display *display`` display device”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hj×h]”hŒ Parameters”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MœhjÑubj#)�”}”(hhh]”j()�”}”(hŒ0``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&]”uh1j&hjôubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´MžhjðubjH)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:10: ./drivers/gpu/drm/i915/display/intel_audio.c”h´M™hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjðubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³j h´Mžhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjÑubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhØh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒi915_audio_component (C struct)”Œc.i915_audio_component”hNt”auh1j¾hhØh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒi915_audio_component”h]”jÛ)�”}”(hŒstruct i915_audio_component”h]”(j/)�”}”(hj2h]”hŒstruct”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hjLh²hh³Œj/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:13: ./include/drm/intel/i915_component.h”h´Kubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjLh²hh³j]h´Kubj)�”}”(hŒi915_audio_component”h]”j )�”}”(hjJh]”hŒi915_audio_component”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjlubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhjLh²hh³j]h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjψuh1jÚjÐjÑhjHh²hh³j]h´Kubah}”(h]”jCah ]”(jÕjÖeh"]”h$]”h&]”jÚˆjÛ)jÜhuh1jÔh³j]h´KhjEh²hubjÞ)�”}”(hhh]”hì)�”}”(hŒ:Used for direct communication between i915 and hda drivers”h]”hŒ:Used for direct communication between i915 and hda drivers”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œj/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:13: ./include/drm/intel/i915_component.h”h´K+hj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjEh²hh³j]h´Kubeh}”(h]”h ]”(j3Œstruct”eh"]”h$]”h&]”jþj3jÿjªjjªj‰j‰j‰uh1jÏh²hhhØh³Nh´Nubj)�”}”(hX**Definition**:: struct i915_audio_component { struct drm_audio_component base; int aud_sample_rate[MAX_PORTS]; }; **Members** ``base`` the drm_audio_component base class ``aud_sample_rate`` the array of audio sample rate per port”h]”(hì)�”}”(hŒ**Definition**::”h]”(jp)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johj²ubhŒ:”…”�”}”(hj²h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œj/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:13: ./include/drm/intel/i915_component.h”h´K/hj®ubhŒ literal_block”“”)�”}”(hŒnstruct i915_audio_component { struct drm_audio_component base; int aud_sample_rate[MAX_PORTS]; };”h]”hŒnstruct i915_audio_component { struct drm_audio_component base; int aud_sample_rate[MAX_PORTS]; };”…”�”}”hjÑsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÏh³Œj/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:13: ./include/drm/intel/i915_component.h”h´K1hj®ubhì)�”}”(hŒ **Members**”h]”jp)�”}”(hjâh]”hŒMembers”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjàubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œj/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:13: ./include/drm/intel/i915_component.h”h´K6hj®ubj#)�”}”(hhh]”(j()�”}”(hŒ,``base`` the drm_audio_component base class ”h]”(j.)�”}”(hŒ``base``”h]”j')�”}”(hjh]”hŒbase”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œj/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:13: ./include/drm/intel/i915_component.h”h´K0hjûubjH)�”}”(hhh]”hì)�”}”(hŒ"the drm_audio_component base class”h]”hŒ"the drm_audio_component base class”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´K0hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjûubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jh´K0hjøubj()�”}”(hŒ;``aud_sample_rate`` the array of audio sample rate per port”h]”(j.)�”}”(hŒ``aud_sample_rate``”h]”j')�”}”(hj:h]”hŒaud_sample_rate”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œj/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:13: ./include/drm/intel/i915_component.h”h´K4hj4ubjH)�”}”(hhh]”hì)�”}”(hŒ'the array of audio sample rate per port”h]”hŒ'the array of audio sample rate per port”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œj/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:13: ./include/drm/intel/i915_component.h”h´K5hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jOh´K4hjøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j"hj®ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhØh²hh³Nh´Nubeh}”(h]”Œhigh-definition-audio”ah ]”h"]”Œhigh definition audio”ah$]”h&]”uh1hÖhhh²hh³hÇh´Kubh×)�”}”(hhh]”(hÜ)�”}”(hŒIntel HDMI LPE Audio Support”h]”hŒIntel HDMI LPE Audio Support”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjƒh²hh³hÇh´Kubhì)�”}”(hX1Motivation: Atom platforms (e.g. valleyview and cherryTrail) integrates a DMA-based interface as an alternative to the traditional HDaudio path. While this mode is unrelated to the LPE aka SST audio engine, the documentation refers to this mode as LPE so we keep this notation for the sake of consistency.”h]”hX1Motivation: Atom platforms (e.g. valleyview and cherryTrail) integrates a DMA-based interface as an alternative to the traditional HDaudio path. While this mode is unrelated to the LPE aka SST audio engine, the documentation refers to this mode as LPE so we keep this notation for the sake of consistency.”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:19: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´Khjƒh²hubhì)�”}”(hXÖThe interface is handled by a separate standalone driver maintained in the ALSA subsystem for simplicity. To minimize the interaction between the two subsystems, a bridge is setup between the hdmi-lpe-audio and i915: 1. Create a platform device to share MMIO/IRQ resources 2. Make the platform device child of i915 device for runtime PM. 3. Create IRQ chip to forward the LPE audio irqs. the hdmi-lpe-audio driver probes the lpe audio device and creates a new sound card”h]”hXÖThe interface is handled by a separate standalone driver maintained in the ALSA subsystem for simplicity. To minimize the interaction between the two subsystems, a bridge is setup between the hdmi-lpe-audio and i915: 1. Create a platform device to share MMIO/IRQ resources 2. Make the platform device child of i915 device for runtime PM. 3. Create IRQ chip to forward the LPE audio irqs. the hdmi-lpe-audio driver probes the lpe audio device and creates a new sound card”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:19: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´K%hjƒh²hubhì)�”}”(hXLThreats: Due to the restriction in Linux platform device model, user need manually uninstall the hdmi-lpe-audio driver before uninstalling i915 module, otherwise we might run into use-after-free issues after i915 removes the platform device: even though hdmi-lpe-audio driver is released, the modules is still in "installed" status.”h]”hXPThreats: Due to the restriction in Linux platform device model, user need manually uninstall the hdmi-lpe-audio driver before uninstalling i915 module, otherwise we might run into use-after-free issues after i915 removes the platform device: even though hdmi-lpe-audio driver is released, the modules is still in “installedâ€� status.”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:19: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´K.hjƒh²hubhì)�”}”(hŒøImplementation: The MMIO/REG platform resources are created according to the registers specification. When forwarding LPE audio irqs, the flow control handler selection depends on the platform, for example on valleyview handle_simple_irq is enough.”h]”hŒøImplementation: The MMIO/REG platform resources are created according to the registers specification. When forwarding LPE audio irqs, the flow control handler selection depends on the platform, for example on valleyview handle_simple_irq is enough.”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:19: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´K5hjƒh²hubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒ(intel_lpe_audio_irq_handler (C function)”Œc.intel_lpe_audio_irq_handler”hNt”auh1j¾hjƒh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒ@void intel_lpe_audio_irq_handler (struct intel_display *display)”h]”jÛ)�”}”(hŒ?void intel_lpe_audio_irq_handler(struct intel_display *display)”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/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´Küubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjåh²hh³j÷h´Küubj)�”}”(hŒintel_lpe_audio_irq_handler”h]”j )�”}”(hŒintel_lpe_audio_irq_handler”h]”hŒintel_lpe_audio_irq_handler”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhjåh²hh³j÷h´Küubj#)�”}”(hŒ(struct intel_display *display)”h]”j))�”}”(hŒstruct intel_display *display”h]”(j/)�”}”(hj2h]”hŒstruct”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hj"ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj"ubh)�”}”(hhh]”j )�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jFŒmodname”NŒ classname”Njjjm)�”}”jp]”js)�”}”jfj sbŒc.intel_lpe_audio_irq_handler”†”asbuh1hhj"ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj"ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hj"ubj )�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hjubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j"hjåh²hh³j÷h´Küubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjψuh1jÚjÐjÑhjáh²hh³j÷h´Küubah}”(h]”jÜah ]”(jÕjÖeh"]”h$]”h&]”jÚˆjÛ)jÜhuh1jÔh³j÷h´KühjÞh²hubjÞ)�”}”(hhh]”hì)�”}”(hŒforwards the LPE audio irq”h]”hŒforwards the LPE audio irq”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´Kühj¦h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÞh²hh³j÷h´Küubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”jþj3jÿjÁjjÁj‰j‰j‰uh1jÏh²hhjƒh³Nh´Nubj)�”}”(hŒ¦**Parameters** ``struct intel_display *display`` display device **Description** the LPE Audio irq is forwarded to the irq handler registered by LPE audio driver.”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hjËh]”hŒ Parameters”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´MhjÅ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&]”uh1j&hjèubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´KýhjäubjH)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÿh´Kýhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jÿh´Kýhjáubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjÅubhì)�”}”(hŒ**Description**”h]”jp)�”}”(hj%h]”hŒ Description”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´KÿhjÅubhì)�”}”(hŒQthe LPE Audio irq is forwarded to the irq handler registered by LPE audio driver.”h]”hŒQthe LPE Audio irq is forwarded to the irq handler registered by LPE audio driver.”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´KþhjÅubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjƒh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒ!intel_lpe_audio_init (C function)”Œc.intel_lpe_audio_init”hNt”auh1j¾hjƒh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒ8int intel_lpe_audio_init (struct intel_display *display)”h]”jÛ)�”}”(hŒ7int intel_lpe_audio_init(struct intel_display *display)”h]”(já)�”}”(hŒint”h]”hŒint”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhjfh²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´Mubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjfh²hh³jxh´Mubj)�”}”(hŒintel_lpe_audio_init”h]”j )�”}”(hŒintel_lpe_audio_init”h]”hŒintel_lpe_audio_init”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj‡ubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhjfh²hh³jxh´Mubj#)�”}”(hŒ(struct intel_display *display)”h]”j))�”}”(hŒstruct intel_display *display”h]”(j/)�”}”(hj2h]”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 ]”jÿah"]”h$]”h&]”uh1jòhj£ubh)�”}”(hhh]”j )�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÂubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jÇŒmodname”NŒ classname”Njjjm)�”}”jp]”js)�”}”jfj�sbŒc.intel_lpe_audio_init”†”asbuh1hhj£ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj£ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hj£ubj )�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj£ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hjŸubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j"hjfh²hh³jxh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjψuh1jÚjÐjÑhjbh²hh³jxh´Mubah}”(h]”j]ah ]”(jÕjÖeh"]”h$]”h&]”jÚˆjÛ)jÜhuh1jÔh³jxh´Mhj_h²hubjÞ)�”}”(hhh]”hì)�”}”(hŒBdetect and setup the bridge between HDMI LPE Audio driver and i915”h]”hŒBdetect and setup the bridge between HDMI LPE Audio driver and i915”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´Mhj'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj_h²hh³jxh´Mubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”jþj3jÿjBjjBj‰j‰j‰uh1jÏh²hhjƒh³Nh´Nubj)�”}”(hŒ˜**Parameters** ``struct intel_display *display`` display device **Return** 0 if successful. non-zero if detection or llocation/initialization fails”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hjLh]”hŒ Parameters”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjJubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´MhjFubj#)�”}”(hhh]”j()�”}”(hŒ1``struct intel_display *display`` display device ”h]”(j.)�”}”(hŒ!``struct intel_display *display``”•œLh]”j')�”}”(hjkh]”hŒstruct intel_display *display”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´MhjeubjH)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay device”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j€h´Mhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjeubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³j€h´Mhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjFubhì)�”}”(hŒ **Return**”h]”jp)�”}”(hj¦h]”hŒReturn”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´MhjFubhì)�”}”(hŒH0 if successful. non-zero if detection or llocation/initialization fails”h]”hŒH0 if successful. non-zero if detection or llocation/initialization fails”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´MhjFubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjƒh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒ%intel_lpe_audio_teardown (C function)”Œc.intel_lpe_audio_teardown”hNt”auh1j¾hjƒh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒ=void intel_lpe_audio_teardown (struct intel_display *display)”h]”jÛ)�”}”(hŒ i915 bridge.”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hjÍh]”hŒ Parameters”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjËubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M)hjÇ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&]”uh1j&hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M'hjæubjH)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´M'hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jh´M'hjãubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjÇubhì)�”}”(hŒ**Description**”h]”jp)�”}”(hj'h]”hŒ Description”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M)hjÇubhì)�”}”(hŒ8release all the resources for LPE audio <-> i915 bridge.”h]”hŒ8release all the resources for LPE audio <-> i915 bridge.”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M(hjÇubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjƒh²hh³Nh´Nubj¿)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jËŒ#intel_lpe_audio_notify (C function)”Œc.intel_lpe_audio_notify”hNt”auh1j¾hjƒh²hh³Nh´NubjÐ)�”}”(hhh]”(jÕ)�”}”(hŒšvoid intel_lpe_audio_notify (struct intel_display *display, enum transcoder cpu_transcoder, enum port port, const void *eld, int ls_clock, bool dp_output)”h]”jÛ)�”}”(hŒ™void intel_lpe_audio_notify(struct intel_display *display, enum transcoder cpu_transcoder, enum port port, const void *eld, int ls_clock, bool dp_output)”h]”(já)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhjhh²hh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M9ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjhh²hh³jzh´M9ubj)�”}”(hŒintel_lpe_audio_notify”h]”j )�”}”(hŒintel_lpe_audio_notify”h]”hŒintel_lpe_audio_notify”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj‰ubah}”(h]”h ]”(jjeh"]”h$]”h&]”hÅhÆuh1jhjhh²hh³jzh´M9ubj#)�”}”(hŒ~(struct intel_display *display, enum transcoder cpu_transcoder, enum port port, const void *eld, int ls_clock, bool dp_output)”h]”(j))�”}”(hŒstruct intel_display *display”h]”(j/)�”}”(hj2h]”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 ]”jÿah"]”h$]”h&]”uh1jòhj¥ubh)�”}”(hhh]”j )�”}”(hŒ intel_display”h]”hŒ intel_display”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÄubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jÉŒmodname”NŒ classname”Njjjm)�”}”jp]”js)�”}”jfj�sbŒc.intel_lpe_audio_notify”†”asbuh1hhj¥ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¥ubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hj¥ubj )�”}”(hŒdisplay”h]”hŒdisplay”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj¡ubj))�”}”(hŒenum transcoder cpu_transcoder”h]”(j/)�”}”(hŒenum”h]”hŒenum”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hjubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjubh)�”}”(hhh]”j )�”}”(hŒ transcoder”h]”hŒ transcoder”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”j<Œmodname”NŒ classname”Njjjm)�”}”jp]”jãŒc.intel_lpe_audio_notify”†”asbuh1hhjubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjubj )�”}”(hŒcpu_transcoder”h]”hŒcpu_transcoder”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj¡ubj))�”}”(hŒenum port port”h]”(j/)�”}”(hjh]”hŒenum”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j;ah"]”h$]”h&]”uh1j.hj{ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj{ubh)�”}”(hhh]”j )�”}”(hŒport”h]”hŒport”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjšubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j3Œreftype”jfŒ reftarget”jŸŒmodname”NŒ classname”Njjjm)�”}”jp]”jãŒc.intel_lpe_audio_notify”†”asbuh1hhj{ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj{ubj )�”}”(hŒport”h]”hŒport”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj{ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj¡ubj))�”}”(hŒconst void *eld”h]”(j/)�”}”(hj²h]”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 ]”jÿah"]”h$]”h&]”uh1jòhjÞubjá)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhjÞubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÞubj‡)�”}”(hjŠh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j“ah"]”h$]”h&]”uh1j†hjÞubj )�”}”(hŒeld”h]”hŒeld”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÞubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj¡ubj))�”}”(hŒ int ls_clock”h]”(já)�”}”(hŒint”h]”hŒint”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhj;ubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj;ubj )�”}”(hŒls_clock”h]”hŒls_clock”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj;ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj¡ubj))�”}”(hŒbool dp_output”h]”(já)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”jíah"]”h$]”h&]”uh1jàhjpubjó)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjpubj )�”}”(hŒ dp_output”h]”hŒ dp_output”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjpubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j(hj¡ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j"hjhh²hh³jzh´M9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjψuh1jÚjÐjÑhjdh²hh³jzh´M9ubah}”(h]”j_ah ]”(jÕjÖeh"]”h$]”h&]”jÚˆjÛ)jÜhuh1jÔh³jzh´M9hjah²hubjÞ)�”}”(hhh]”hì)�”}”(hŒ,notify lpe audio event audio driver and i915”h]”hŒ,notify lpe audio event audio driver and i915”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M9hj·h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjah²hh³jzh´M9ubeh}”(h]”h ]”(j3Œfunction”eh"]”h$]”h&]”jþj3jÿjÒjjÒj‰j‰j‰uh1jÏh²hhjƒh³Nh´Nubj)�”}”(hXC**Parameters** ``struct intel_display *display`` display device ``enum transcoder cpu_transcoder`` CPU transcoder ``enum port port`` port ``const void *eld`` ELD data ``int ls_clock`` Link symbol clock in kHz ``bool dp_output`` Driving a DP output? **Description** Notify lpe audio driver of eld change.”h]”(hì)�”}”(hŒ**Parameters**”h]”jp)�”}”(hjÜh]”hŒ Parameters”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M=hjÖ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&]”uh1j&hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M;hjõubjH)�”}”(hhh]”hì)�”}”(hŒdisplay device”h]”hŒdisplay device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´M;hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jh´M;hjòubj()�”}”(hŒ2``enum transcoder cpu_transcoder`` CPU transcoder ”h]”(j.)�”}”(hŒ"``enum transcoder cpu_transcoder``”h]”j')�”}”(hj4h]”hŒenum transcoder cpu_transcoder”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M<hj.ubjH)�”}”(hhh]”hì)�”}”(hŒCPU transcoder”h]”hŒCPU transcoder”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jIh´M<hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jIh´M<hjòubj()�”}”(hŒ``enum port port`` port ”h]”(j.)�”}”(hŒ``enum port port``”h]”j')�”}”(hjmh]”hŒenum port port”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M=hjgubjH)�”}”(hhh]”hì)�”}”(hŒport”h]”hŒport”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‚h´M=hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³j‚h´M=hjòubj()�”}”(hŒ``const void *eld`` ELD data ”h]”(j.)�”}”(hŒ``const void *eld``”h]”j')�”}”(hj¦h]”hŒconst void *eld”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M>hj ubjH)�”}”(hhh]”hì)�”}”(hŒELD data”h]”hŒELD data”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j»h´M>hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³j»h´M>hjòubj()�”}”(hŒ*``int ls_clock`` Link symbol clock in kHz ”h]”(j.)�”}”(hŒ``int ls_clock``”h]”j')�”}”(hjßh]”hŒ int ls_clock”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M?hjÙubjH)�”}”(hhh]”hì)�”}”(hŒLink symbol clock in kHz”h]”hŒLink symbol clock in kHz”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jôh´M?hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³jôh´M?hjòubj()�”}”(hŒ(``bool dp_output`` Driving a DP output? ”h]”(j.)�”}”(hŒ``bool dp_output``”h]”j')�”}”(hjh]”hŒbool dp_output”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j-h³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´M@hjubjH)�”}”(hhh]”hì)�”}”(hŒDriving a DP output?”h]”hŒDriving a DP output?”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j-h´M@hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'h³j-h´M@hjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1j"hjÖubhì)�”}”(hŒ**Description**”h]”jp)�”}”(hjSh]”hŒ Description”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1johjQubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´MBhjÖubhì)�”}”(hŒ&Notify lpe audio driver of eld change.”h]”hŒ&Notify lpe audio driver of eld change.”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œv/var/lib/git/docbuild/linux/Documentation/gpu/intel-display/audio:22: ./drivers/gpu/drm/i915/display/intel_lpe_audio.c”h´MAhjÖubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjƒh²hh³Nh´Nubeh}”(h]”Œintel-hdmi-lpe-audio-support”ah ]”h"]”Œintel hdmi lpe audio support”ah$]”h&]”uh1hÖhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÛNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jªŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j€j}j„j�uŒ nametypes”}”(j€‰j„‰uh}”(j}hØjÍjÖjjj!j&j| j� j j j� j’ jè jí jCjHj�jƒjÜjáj]jbjÞjãj_jduŒ 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.