sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget /translations/zh_CN/gpu/xe/xe_pmmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget /translations/zh_TW/gpu/xe/xe_pmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget /translations/it_IT/gpu/xe/xe_pmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget /translations/ja_JP/gpu/xe/xe_pmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget /translations/ko_KR/gpu/xe/xe_pmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget /translations/sp_SP/gpu/xe/xe_pmmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h*SPDX-License-Identifier: (GPL-2.0+ OR MIT)h]h*SPDX-License-Identifier: (GPL-2.0+ OR MIT)}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh:/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm.rsthKubhsection)}(hhh](htitle)}(hRuntime Power Managementh]hRuntime Power Management}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hyXe PM implements the main routines for both system level suspend states and for the opportunistic runtime suspend states.h]hyXe PM implements the main routines for both system level suspend states and for the opportunistic runtime suspend states.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:7: ./drivers/gpu/drm/xe/xe_pm.chKhhhhubh)}(hX-System Level Suspend (S-States) - In general this is OS initiated suspend driven by ACPI for achieving S0ix (a.k.a. S2idle, freeze), S3 (suspend to ram), S4 (disk). The main functions here are `xe_pm_suspend` and `xe_pm_resume`. They are the main point for the suspend to and resume from these states.h](hSystem Level Suspend (S-States) - In general this is OS initiated suspend driven by ACPI for achieving S0ix (a.k.a. S2idle, freeze), S3 (suspend to ram), S4 (disk). The main functions here are }(hhhhhNhNubhtitle_reference)}(h`xe_pm_suspend`h]h xe_pm_suspend}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh and }(hhhhhNhNubh)}(h`xe_pm_resume`h]h xe_pm_resume}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubhJ. They are the main point for the suspend to and resume from these states.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:7: ./drivers/gpu/drm/xe/xe_pm.chK!hhhhubh)}(hX0PCI Device Suspend (D-States) - This is the opportunistic PCIe device low power state D3, controlled by the PCI subsystem and ACPI with the help from the runtime_pm infrastructure. PCI D3 is special and can mean D3hot, where Vcc power is on for keeping memory alive and quicker low latency resume or D3Cold where Vcc power is off for better power savings. The Vcc control of PCI hierarchy can only be controlled at the PCI root port level, while the device driver can be behind multiple bridges/switches and paired with other devices. For this reason, the PCI subsystem cannot perform the transition towards D3Cold. The lowest runtime PM possible from the PCI subsystem is D3hot. Then, if all these paired devices in the same root port are in D3hot, ACPI will assist here and run its own methods (_PR3 and _OFF) to perform the transition from D3hot to D3cold. Xe may disallow this transition by calling pci_d3cold_disable(root_pdev) before going to runtime suspend. It will be based on runtime conditions such as VRAM usage for a quick and low latency resume for instance.h]hX0PCI Device Suspend (D-States) - This is the opportunistic PCIe device low power state D3, controlled by the PCI subsystem and ACPI with the help from the runtime_pm infrastructure. PCI D3 is special and can mean D3hot, where Vcc power is on for keeping memory alive and quicker low latency resume or D3Cold where Vcc power is off for better power savings. The Vcc control of PCI hierarchy can only be controlled at the PCI root port level, while the device driver can be behind multiple bridges/switches and paired with other devices. For this reason, the PCI subsystem cannot perform the transition towards D3Cold. The lowest runtime PM possible from the PCI subsystem is D3hot. Then, if all these paired devices in the same root port are in D3hot, ACPI will assist here and run its own methods (_PR3 and _OFF) to perform the transition from D3hot to D3cold. Xe may disallow this transition by calling pci_d3cold_disable(root_pdev) before going to runtime suspend. It will be based on runtime conditions such as VRAM usage for a quick and low latency resume for instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:7: ./drivers/gpu/drm/xe/xe_pm.chK&hhhhubh)}(hXRuntime PM - This infrastructure provided by the Linux kernel allows the device drivers to indicate when the can be runtime suspended, so the device could be put at D3 (if supported), or allow deeper package sleep states (PC-states), and/or other low level power states. Xe PM component provides `xe_pm_runtime_suspend` and `xe_pm_runtime_resume` functions that PCI subsystem will call before transition to/from runtime suspend.h](hX(Runtime PM - This infrastructure provided by the Linux kernel allows the device drivers to indicate when the can be runtime suspended, so the device could be put at D3 (if supported), or allow deeper package sleep states (PC-states), and/or other low level power states. Xe PM component provides }(hjhhhNhNubh)}(h`xe_pm_runtime_suspend`h]hxe_pm_runtime_suspend}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh and }(hjhhhNhNubh)}(h`xe_pm_runtime_resume`h]hxe_pm_runtime_resume}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhR functions that PCI subsystem will call before transition to/from runtime suspend.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:7: ./drivers/gpu/drm/xe/xe_pm.chK7hhhhubh)}(hXwAlso, Xe PM provides get and put functions that Xe driver will use to indicate activity. In order to avoid locking complications with the memory management, whenever possible, these get and put functions needs to be called from the higher/outer levels. The main cases that need to be protected from the outer levels are: IOCTL, sysfs, debugfs, dma-buf sharing, GPU execution.h]hXwAlso, Xe PM provides get and put functions that Xe driver will use to indicate activity. In order to avoid locking complications with the memory management, whenever possible, these get and put functions needs to be called from the higher/outer levels. The main cases that need to be protected from the outer levels are: IOCTL, sysfs, debugfs, dma-buf sharing, GPU execution.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:7: ./drivers/gpu/drm/xe/xe_pm.chK>hhhhubh)}(hZThis component is not responsible for GT idleness (RC6) nor GT frequency management (RPS).h]hZThis component is not responsible for GT idleness (RC6) nor GT frequency management (RPS).}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:7: ./drivers/gpu/drm/xe/xe_pm.chKEhhhhubh)}(hhh](h)}(h Internal APIh]h Internal API}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohhhhhK ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single xe_rpm_reclaim_safe (C function)c.xe_rpm_reclaim_safehNtauh1jhjohhhNhNubhdesc)}(hhh](hdesc_signature)}(h5bool xe_rpm_reclaim_safe (const struct xe_device *xe)h]hdesc_signature_line)}(h4bool xe_rpm_reclaim_safe(const struct xe_device *xe)h](hdesc_sig_keyword_type)}(hboolh]hbool}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chK\ubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhK\ubh desc_name)}(hxe_rpm_reclaim_safeh]h desc_sig_name)}(hxe_rpm_reclaim_safeh]hxe_rpm_reclaim_safe}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjhhhjhK\ubhdesc_parameterlist)}(h(const struct xe_device *xe)h]hdesc_parameter)}(hconst struct xe_device *xeh](hdesc_sig_keyword)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetj0modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jJ ASTIdentifier)}jEjsbc.xe_rpm_reclaim_safeasbuh1hhjubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubhdesc_sig_punctuation)}(h*h]h*}(hjghhhNhNubah}(h]h ]pah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhK\ubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jsphinx_line_type declaratorhjhhhjhK\ubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhK\hjhhubh desc_content)}(hhh]h)}(h7Whether runtime resume can be done from reclaim contexth]h7Whether runtime resume can be done from reclaim context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKVhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK\ubeh}(h]h ](jCfunctioneh"]h$]h&]domainjCobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jhhhjohNhNubh container)}(h**Parameters** ``const struct xe_device *xe`` The xe device. **Return** true if it is safe to runtime resume from reclaim context. false otherwise.h](h)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKZhjubhdefinition_list)}(hhh]hdefinition_list_item)}(h.``const struct xe_device *xe`` The xe device. h](hterm)}(h``const struct xe_device *xe``h]hliteral)}(hjh]hconst struct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKWhjubh definition)}(hhh]h)}(hThe xe device.h]hThe xe device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKWhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hj:h]hReturn}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKYhjubh)}(hKtrue if it is safe to runtime resume from reclaim context. false otherwise.h]hKtrue if it is safe to runtime resume from reclaim context. false otherwise.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKYhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jxe_pm_suspend (C function)c.xe_pm_suspendhNtauh1jhjohhhNhNubj)}(hhh](j)}(h(int xe_pm_suspend (struct xe_device *xe)h]j)}(h'int xe_pm_suspend(struct xe_device *xe)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{hhhjhKuubj)}(h xe_pm_suspendh]j)}(h xe_pm_suspendh]h xe_pm_suspend}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhj{hhhjhKuubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEjsbc.xe_pm_suspendasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjf)}(hjih]h*}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhj{hhhjhKuubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjwhhhjhKuubah}(h]jrah ](jjeh"]h$]h&]jj)jhuh1jhjhKuhjthhubj)}(hhh]h)}(h3Helper for System suspend, i.e. S0->S3 / S0->S2idleh]h3Helper for System suspend, i.e. S0->S3 / S0->S2idle}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKphj<hhubah}(h]h ]h"]h$]h&]uh1jhjthhhjhKuubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjWjjWjjjuh1jhhhjohNhNubj)}(hW**Parameters** ``struct xe_device *xe`` xe device instance **Return** 0 on successh](h)}(h**Parameters**h]j)}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKthj[ubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKqhjzubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKqhjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhKqhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKshj[ubh)}(h 0 on successh]h 0 on success}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKshj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jxe_pm_resume (C function)c.xe_pm_resumehNtauh1jhjohhhNhNubj)}(hhh](j)}(h'int xe_pm_resume (struct xe_device *xe)h]j)}(h&int xe_pm_resume(struct xe_device *xe)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h xe_pm_resumeh]j)}(h xe_pm_resumeh]h xe_pm_resume}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetj]modnameN classnameNjIjL)}jO]jR)}jEj#sbc.xe_pm_resumeasbuh1hhj9ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubjf)}(hjih]h*}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj9ubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj5ubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]h)}(h,Helper for System resume S3->S0 / S2idle->S0h]h,Helper for System resume S3->S0 / S2idle->S0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjjjjjjuh1jhhhjohNhNubj)}(hW**Parameters** ``struct xe_device *xe`` xe device instance **Return** 0 on successh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKhjubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKhjubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hj<h]hReturn}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKhjubh)}(h 0 on successh]h 0 on success}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jxe_pm_init (C function) c.xe_pm_inithNtauh1jhjohhhNhNubj)}(hhh](j)}(h%int xe_pm_init (struct xe_device *xe)h]j)}(h$int xe_pm_init(struct xe_device *xe)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM)ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}hhhjhM)ubj)}(h xe_pm_inith]j)}(h xe_pm_inith]h xe_pm_init}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhj}hhhjhM)ubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEjsb c.xe_pm_initasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjf)}(hjih]h*}(hj hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhj}hhhjhM)ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjyhhhjhM)ubah}(h]jtah ](jjeh"]h$]h&]jj)jhuh1jhjhM)hjvhhubj)}(hhh]h)}(hInitialize Xe Power Managementh]hInitialize Xe Power Management}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM"hj>hhubah}(h]h ]h"]h$]h&]uh1jhjvhhhjhM)ubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjYjjYjjjuh1jhhhjohNhNubj)}(h**Parameters** ``struct xe_device *xe`` xe device instance **Description** This component is responsible for System and Device sleep states. Returns 0 for success, negative error code otherwise.h](h)}(h**Parameters**h]j)}(hjch]h Parameters}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM&hj]ubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM#hj|ubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM#hjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhjhM#hjyubah}(h]h ]h"]h$]h&]uh1jhj]ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM%hj]ubh)}(hAThis component is responsible for System and Device sleep states.h]hAThis component is responsible for System and Device sleep states.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM%hj]ubh)}(h5Returns 0 for success, negative error code otherwise.h]h5Returns 0 for success, negative error code otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM'hj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jxe_pm_runtime_fini (C function)c.xe_pm_runtime_finihNtauh1jhjohhhNhNubj)}(hhh](j)}(h.void xe_pm_runtime_fini (struct xe_device *xe)h]j)}(h-void xe_pm_runtime_fini(struct xe_device *xe)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMHubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhMHubj)}(hxe_pm_runtime_finih]j)}(hxe_pm_runtime_finih]hxe_pm_runtime_fini}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhjhMHubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjnmodnameN classnameNjIjL)}jO]jR)}jEj4sbc.xe_pm_runtime_finiasbuh1hhjJubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubjf)}(hjih]h*}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjJubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjFubah}(h]h ]h"]h$]h&]hhuh1jhj hhhjhMHubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj hhhjhMHubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMHhjhhubj)}(hhh]h)}(hFinalize Runtime PMh]hFinalize Runtime PM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMEhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMHubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjjjjjjuh1jhhhjohNhNubj)}(h=**Parameters** ``struct xe_device *xe`` xe device instanceh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMIhjubj)}(hhh]j)}(h+``struct xe_device *xe`` xe device instanceh](j)}(h``struct xe_device *xe``h]j)}(hj h]hstruct xe_device *xe}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMKhj ubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMFhj( ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj' hMKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$xe_pm_runtime_suspended (C function)c.xe_pm_runtime_suspendedhNtauh1jhjohhhNhNubj)}(hhh](j)}(h3bool xe_pm_runtime_suspended (struct xe_device *xe)h]j)}(h2bool xe_pm_runtime_suspended(struct xe_device *xe)h](j)}(hjh]hbool}(hjl hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMpubj)}(h h]h }(hjz hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh hhhjy hMpubj)}(hxe_pm_runtime_suspendedh]j)}(hxe_pm_runtime_suspendedh]hxe_pm_runtime_suspended}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjh hhhjy hMpubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetj modnameN classnameNjIjL)}jO]jR)}jEj sbc.xe_pm_runtime_suspendedasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjf)}(hjih]h*}(hj hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj ubj)}(hxeh]hxe}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jhjh hhhjy hMpubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjd hhhjy hMpubah}(h]j_ ah ](jjeh"]h$]h&]jj)jhuh1jhjy hMphja hhubj)}(hhh]h)}(h&Check if runtime_pm state is suspendedh]h&Check if runtime_pm state is suspended}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMfhj( hhubah}(h]h ]h"]h$]h&]uh1jhja hhhjy hMpubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjC jjC jjjuh1jhhhjohNhNubj)}(hX**Parameters** ``struct xe_device *xe`` xe device instance **Description** This does not provide any guarantee that the device is going to remain suspended as it might be racing with the runtime state transitions. It can be used only as a non-reliable assertion, to ensure that we are not in the sleep state while trying to access some memory for instance. Returns true if PCI device is suspended, false otherwise.h](h)}(h**Parameters**h]j)}(hjM h]h Parameters}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMjhjG ubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hjl h]hstruct xe_device *xe}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMghjf ubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMghj ubah}(h]h ]h"]h$]h&]uh1jhjf ubeh}(h]h ]h"]h$]h&]uh1jhj hMghjc ubah}(h]h ]h"]h$]h&]uh1jhjG ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMihjG ubh)}(hXThis does not provide any guarantee that the device is going to remain suspended as it might be racing with the runtime state transitions. It can be used only as a non-reliable assertion, to ensure that we are not in the sleep state while trying to access some memory for instance.h]hXThis does not provide any guarantee that the device is going to remain suspended as it might be racing with the runtime state transitions. It can be used only as a non-reliable assertion, to ensure that we are not in the sleep state while trying to access some memory for instance.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMihjG ubh)}(h9Returns true if PCI device is suspended, false otherwise.h]h9Returns true if PCI device is suspended, false otherwise.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMnhjG ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"xe_pm_runtime_suspend (C function)c.xe_pm_runtime_suspendhNtauh1jhjohhhNhNubj)}(hhh](j)}(h0int xe_pm_runtime_suspend (struct xe_device *xe)h]j)}(h/int xe_pm_runtime_suspend(struct xe_device *xe)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM{ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hM{ubj)}(hxe_pm_runtime_suspendh]j)}(hxe_pm_runtime_suspendh]hxe_pm_runtime_suspend}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj hM{ubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hj8 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4 ubj)}(h h]h }(hjE hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4 ubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjV hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS ubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjX modnameN classnameNjIjL)}jO]jR)}jEj sbc.xe_pm_runtime_suspendasbuh1hhj4 ubj)}(h h]h }(hjv hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4 ubjf)}(hjih]h*}(hj hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj4 ubj)}(hxeh]hxe}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4 ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj0 ubah}(h]h ]h"]h$]h&]hhuh1jhj hhhj hM{ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj hhhj hM{ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hM{hj hhubj)}(hhh]h)}(h#Prepare our device for D3hot/D3Coldh]h#Prepare our device for D3hot/D3Cold}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMvhj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hM{ubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjj jj jjjuh1jhhhjohNhNubj)}(h**Parameters** ``struct xe_device *xe`` xe device instance **Description** Returns 0 for success, negative error code otherwise.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMzhj ubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hj h]hstruct xe_device *xe}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMwhj ubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMwhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMwhj ubah}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j)}(hj7 h]h Description}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5 ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMyhj ubh)}(h5Returns 0 for success, negative error code otherwise.h]h5Returns 0 for success, negative error code otherwise.}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMyhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!xe_pm_runtime_resume (C function)c.xe_pm_runtime_resumehNtauh1jhjohhhNhNubj)}(hhh](j)}(h/int xe_pm_runtime_resume (struct xe_device *xe)h]j)}(h.int xe_pm_runtime_resume(struct xe_device *xe)h](j)}(hinth]hint}(hj| hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx hhhj hMubj)}(hxe_pm_runtime_resumeh]j)}(hxe_pm_runtime_resumeh]hxe_pm_runtime_resume}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjx hhhj hMubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetj modnameN classnameNjIjL)}jO]jR)}jEj sbc.xe_pm_runtime_resumeasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjf)}(hjih]h*}(hj hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj ubj)}(hxeh]hxe}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jhjx hhhj hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjt hhhj hMubah}(h]jo ah ](jjeh"]h$]h&]jj)jhuh1jhj hMhjq hhubj)}(hhh]h)}(hWaking up from D3hot/D3Coldh]hWaking up from D3hot/D3Cold}(hj< hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhj9 hhubah}(h]h ]h"]h$]h&]uh1jhjq hhhj hMubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjT jjT jjjuh1jhhhjohNhNubj)}(h**Parameters** ``struct xe_device *xe`` xe device instance **Description** Returns 0 for success, negative error code otherwise.h](h)}(h**Parameters**h]j)}(hj^ h]h Parameters}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjX ubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hj} h]hstruct xe_device *xe}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjw ubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjw ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjt ubah}(h]h ]h"]h$]h&]uh1jhjX ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjX ubh)}(h5Returns 0 for success, negative error code otherwise.h]h5Returns 0 for success, negative error code otherwise.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjX ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jxe_pm_runtime_get (C function)c.xe_pm_runtime_gethNtauh1jhjohhhNhNubj)}(hhh](j)}(h-void xe_pm_runtime_get (struct xe_device *xe)h]j)}(h,void xe_pm_runtime_get(struct xe_device *xe)h](j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM/ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hM/ubj)}(hxe_pm_runtime_geth]j)}(hxe_pm_runtime_geth]hxe_pm_runtime_get}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj hM/ubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjZmodnameN classnameNjIjL)}jO]jR)}jEj sbc.xe_pm_runtime_getasbuh1hhj6ubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubjf)}(hjih]h*}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj6ubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj2ubah}(h]h ]h"]h$]h&]hhuh1jhj hhhj hM/ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj hhhj hM/ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hM/hj hhubj)}(hhh]h)}(h3Get a runtime_pm reference and resume synchronouslyh]h3Get a runtime_pm reference and resume synchronously}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM,hjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hM/ubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjjjjjjuh1jhhhjohNhNubj)}(h=**Parameters** ``struct xe_device *xe`` xe device instanceh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM0hjubj)}(hhh]j)}(h+``struct xe_device *xe`` xe device instanceh](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM2hjubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM2hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jxe_pm_runtime_put (C function)c.xe_pm_runtime_puthNtauh1jhjohhhNhNubj)}(hhh](j)}(h-void xe_pm_runtime_put (struct xe_device *xe)h]j)}(h,void xe_pm_runtime_put(struct xe_device *xe)h](j)}(hvoidh]hvoid}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM?ubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhhjfhM?ubj)}(hxe_pm_runtime_puth]j)}(hxe_pm_runtime_puth]hxe_pm_runtime_put}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubah}(h]h ](jjeh"]h$]h&]hhuh1jhjThhhjfhM?ubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEj{sbc.xe_pm_runtime_putasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjf)}(hjih]h*}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjThhhjfhM?ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjPhhhjfhM?ubah}(h]jKah ](jjeh"]h$]h&]jj)jhuh1jhjfhM?hjMhhubj)}(hhh]h)}(h2Put the runtime_pm reference back and mark as idleh]h2Put the runtime_pm reference back and mark as idle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM<hjhhubah}(h]h ]h"]h$]h&]uh1jhjMhhhjfhM?ubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjj0jj0jjjuh1jhhhjohNhNubj)}(h=**Parameters** ``struct xe_device *xe`` xe device instanceh](h)}(h**Parameters**h]j)}(hj:h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM@hj4ubj)}(hhh]j)}(h+``struct xe_device *xe`` xe device instanceh](j)}(h``struct xe_device *xe``h]j)}(hjYh]hstruct xe_device *xe}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMBhjSubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM=hjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhMBhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$xe_pm_runtime_get_ioctl (C function)c.xe_pm_runtime_get_ioctlhNtauh1jhjohhhNhNubj)}(hhh](j)}(h2int xe_pm_runtime_get_ioctl (struct xe_device *xe)h]j)}(h1int xe_pm_runtime_get_ioctl(struct xe_device *xe)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMQubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMQubj)}(hxe_pm_runtime_get_ioctlh]j)}(hxe_pm_runtime_get_ioctlh]hxe_pm_runtime_get_ioctl}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMQubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEjsbc.xe_pm_runtime_get_ioctlasbuh1hhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjf)}(hjih]h*}(hj<hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMQubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMQubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMQhjhhubj)}(hhh]h)}(h'Get a runtime_pm reference before ioctlh]h'Get a runtime_pm reference before ioctl}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMKhjphhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMQubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjjjjjjuh1jhhhjohNhNubj)}(h**Parameters** ``struct xe_device *xe`` xe device instance **Return** Any number greater than or equal to 0 for success, negative error code otherwise.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMOhjubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMLhjubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMLhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMLhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMNhjubh)}(hQAny number greater than or equal to 0 for success, negative error code otherwise.h]hQAny number greater than or equal to 0 for success, negative error code otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMNhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(xe_pm_runtime_get_if_active (C function)c.xe_pm_runtime_get_if_activehNtauh1jhjohhhNhNubj)}(hhh](j)}(h7bool xe_pm_runtime_get_if_active (struct xe_device *xe)h]j)}(h6bool xe_pm_runtime_get_if_active(struct xe_device *xe)h](j)}(hjh]hbool}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMbubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhjAhMbubj)}(hxe_pm_runtime_get_if_activeh]j)}(hxe_pm_runtime_get_if_activeh]hxe_pm_runtime_get_if_active}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ](jjeh"]h$]h&]hhuh1jhj0hhhjAhMbubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEjVsbc.xe_pm_runtime_get_if_activeasbuh1hhjlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubjf)}(hjih]h*}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjlubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjhubah}(h]h ]h"]h$]h&]hhuh1jhj0hhhjAhMbubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj,hhhjAhMbubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1jhjAhMbhj)hhubj)}(hhh]h)}(h+Get a runtime_pm reference if device activeh]h+Get a runtime_pm reference if device active}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM\hjhhubah}(h]h ]h"]h$]h&]uh1jhj)hhhjAhMbubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjj jj jjjuh1jhhhjohNhNubj)}(h**Parameters** ``struct xe_device *xe`` xe device instance **Return** True if device is awake (regardless the previous number of references) and a new reference was taken, false otherwise.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM`hjubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hj4h]hstruct xe_device *xe}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM]hj.ubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhM]hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhM]hj+ubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjoh]hReturn}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM_hjubh)}(hvTrue if device is awake (regardless the previous number of references) and a new reference was taken, false otherwise.h]hvTrue if device is awake (regardless the previous number of references) and a new reference was taken, false otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM_hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(xe_pm_runtime_get_if_in_use (C function)c.xe_pm_runtime_get_if_in_usehNtauh1jhjohhhNhNubj)}(hhh](j)}(h7bool xe_pm_runtime_get_if_in_use (struct xe_device *xe)h]j)}(h6bool xe_pm_runtime_get_if_in_use(struct xe_device *xe)h](j)}(hjh]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMnubj)}(hxe_pm_runtime_get_if_in_useh]j)}(hxe_pm_runtime_get_if_in_useh]hxe_pm_runtime_get_if_in_use}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMnubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEjsbc.xe_pm_runtime_get_if_in_useasbuh1hhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjf)}(hjih]h*}(hj<hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMnubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMnubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMnhjhhubj)}(hhh]h)}(h?Get a new reference if device is active with previous ref takenh]h?Get a new reference if device is active with previous ref taken}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhhjphhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMnubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjjjjjjuh1jhhhjohNhNubj)}(h**Parameters** ``struct xe_device *xe`` xe device instance **Return** True if device is awake, a previous reference had been already taken, and a new reference was now taken, false otherwise.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMlhjubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMihjubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMihjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMkhjubh)}(hyTrue if device is awake, a previous reference had been already taken, and a new reference was now taken, false otherwise.h]hyTrue if device is awake, a previous reference had been already taken, and a new reference was now taken, false otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMkhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'xe_pm_runtime_get_noresume (C function)c.xe_pm_runtime_get_noresumehNtauh1jhjohhhNhNubj)}(hhh](j)}(h6void xe_pm_runtime_get_noresume (struct xe_device *xe)Grh]j)}(h5void xe_pm_runtime_get_noresume(struct xe_device *xe)h](j)}(hvoidh]hvoid}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhjBhMubj)}(hxe_pm_runtime_get_noresumeh]j)}(hxe_pm_runtime_get_noresumeh]hxe_pm_runtime_get_noresume}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ](jjeh"]h$]h&]hhuh1jhj0hhhjBhMubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEjWsbc.xe_pm_runtime_get_noresumeasbuh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubjf)}(hjih]h*}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjmubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjiubah}(h]h ]h"]h$]h&]hhuh1jhj0hhhjBhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj,hhhjBhMubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1jhjBhMhj)hhubj)}(hhh]h)}(h.Bump runtime PM usage counter without resumingh]h.Bump runtime PM usage counter without resuming}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj)hhhjBhMubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjj jj jjjuh1jhhhjohNhNubj)}(hXi**Parameters** ``struct xe_device *xe`` xe device instance **Description** This function should be used in inner places where it is surely already protected by outer-bound callers of `xe_pm_runtime_get`. It will warn if not protected. The reference should be put back after this function regardless, since it will always bump the usage counter, regardless.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hj5h]hstruct xe_device *xe}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhj/ubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhMhjKubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhjJhMhj,ubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjph]h Description}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubh)}(hXThis function should be used in inner places where it is surely already protected by outer-bound callers of `xe_pm_runtime_get`. It will warn if not protected. The reference should be put back after this function regardless, since it will always bump the usage counter, regardless.h](hlThis function should be used in inner places where it is surely already protected by outer-bound callers of }(hjhhhNhNubh)}(h`xe_pm_runtime_get`h]hxe_pm_runtime_get}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh. It will warn if not protected. The reference should be put back after this function regardless, since it will always bump the usage counter, regardless.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)xe_pm_runtime_resume_and_get (C function)c.xe_pm_runtime_resume_and_gethNtauh1jhjohhhNhNubj)}(hhh](j)}(h8bool xe_pm_runtime_resume_and_get (struct xe_device *xe)h]j)}(h7bool xe_pm_runtime_resume_and_get(struct xe_device *xe)h](j)}(hjh]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hxe_pm_runtime_resume_and_geth]j)}(hxe_pm_runtime_resume_and_geth]hxe_pm_runtime_resume_and_get}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetj#modnameN classnameNjIjL)}jO]jR)}jEjsbc.xe_pm_runtime_resume_and_getasbuh1hhjubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjf)}(hjih]h*}(hjOhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h+Resume, then get a runtime_pm ref if awake.h]h+Resume, then get a runtime_pm ref if awake.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjjjjjjuh1jhhhjohNhNubj)}(h**Parameters** ``struct xe_device *xe`` xe device instance **Return** True if device is awake and the reference was taken, false otherwise.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubh)}(hETrue if device is awake and the reference was taken, false otherwise.h]hETrue if device is awake and the reference was taken, false otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*xe_pm_assert_unbounded_bridge (C function)c.xe_pm_assert_unbounded_bridgehNtauh1jhjohhhNhNubj)}(hhh](j)}(h9void xe_pm_assert_unbounded_bridge (struct xe_device *xe)h]j)}(h8void xe_pm_assert_unbounded_bridge(struct xe_device *xe)h](j)}(hvoidh]hvoid}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhjUhMubj)}(hxe_pm_assert_unbounded_bridgeh]j)}(hxe_pm_assert_unbounded_bridgeh]hxe_pm_assert_unbounded_bridge}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubah}(h]h ](jjeh"]h$]h&]hhuh1jhjChhhjUhMubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEjjsbc.xe_pm_assert_unbounded_bridgeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjf)}(hjih]h*}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj|ubah}(h]h ]h"]h$]h&]hhuh1jhjChhhjUhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj?hhhjUhMubah}(h]j:ah ](jjeh"]h$]h&]jj)jhuh1jhjUhMhj<hhubj)}(hhh]h)}(h*Disable PM on unbounded pcie parent bridgeh]h*Disable PM on unbounded pcie parent bridge}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj<hhhjUhMubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjjjjjjuh1jhhhjohNhNubj)}(h=**Parameters** ``struct xe_device *xe`` xe device instanceh](h)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhj#ubj)}(hhh]j)}(h+``struct xe_device *xe`` xe device instanceh](j)}(h``struct xe_device *xe``h]j)}(hjHh]hstruct xe_device *xe}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjBubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%xe_pm_set_vram_threshold (C function)c.xe_pm_set_vram_thresholdhNtauh1jhjohhhNhNubj)}(hhh](j)}(hBint xe_pm_set_vram_threshold (struct xe_device *xe, u32 threshold)h]j)}(hAint xe_pm_set_vram_threshold(struct xe_device *xe, u32 threshold)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hxe_pm_set_vram_thresholdh]j)}(hxe_pm_set_vram_thresholdh]hxe_pm_set_vram_threshold}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj)}(h%(struct xe_device *xe, u32 threshold)h](j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEjsbc.xe_pm_set_vram_thresholdasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjf)}(hjih]h*}(hj+hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h u32 thresholdh](h)}(hhh]j)}(hu32h]hu32}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjVmodnameN classnameNjIjL)}jO]jc.xe_pm_set_vram_thresholdasbuh1hhjMubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj)}(h thresholdh]h threshold}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h1Set a vram threshold for allowing/blocking D3Coldh]h1Set a vram threshold for allowing/blocking D3Cold}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjjjjjjuh1jhhhjohNhNubj)}(h**Parameters** ``struct xe_device *xe`` xe device instance ``u32 threshold`` VRAM size in bites for the D3cold threshold **Description** Returns 0 for success, negative error code otherwise.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh](j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h>``u32 threshold`` VRAM size in bites for the D3cold threshold h](j)}(h``u32 threshold``h]j)}(hj$h]h u32 threshold}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh]h)}(h+VRAM size in bites for the D3cold thresholdh]h+VRAM size in bites for the D3cold threshold}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj_h]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubh)}(h5Returns 0 for success, negative error code otherwise.h]h5Returns 0 for success, negative error code otherwise.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(xe_pm_d3cold_allowed_toggle (C function)c.xe_pm_d3cold_allowed_togglehNtauh1jhjohhhNhNubj)}(hhh](j)}(h7void xe_pm_d3cold_allowed_toggle (struct xe_device *xe)h]j)}(h6void xe_pm_d3cold_allowed_toggle(struct xe_device *xe)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hxe_pm_d3cold_allowed_toggleh]j)}(hxe_pm_d3cold_allowed_toggleh]hxe_pm_d3cold_allowed_toggle}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj)}(h(struct xe_device *xe)h]j)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjCreftypejE reftargetjmodnameN classnameNjIjL)}jO]jR)}jEjsbc.xe_pm_d3cold_allowed_toggleasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjf)}(hjih]h*}(hj-hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubj)}(hxeh]hxe}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h)Check conditions to toggle d3cold.allowedh]h)Check conditions to toggle d3cold.allowed}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjahhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjj|jj|jjjuh1jhhhjohNhNubj)}(h**Parameters** ``struct xe_device *xe`` xe device instance **Description** To be called during runtime_pm idle callback. Check for all the D3Cold conditions ahead of runtime suspend.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh]j)}(h,``struct xe_device *xe`` xe device instance h](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh]h)}(hxe device instanceh]hxe device instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubh)}(hkTo be called during runtime_pm idle callback. Check for all the D3Cold conditions ahead of runtime suspend.h]hkTo be called during runtime_pm idle callback. Check for all the D3Cold conditions ahead of runtime suspend.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jxe_pm_module_init (C function)c.xe_pm_module_inithNtauh1jhjohhhNhNubj)}(hhh](j)}(hint xe_pm_module_init (void)h]j)}(hint xe_pm_module_init(void)h](j)}(hinth]hint}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj3hMubj)}(hxe_pm_module_inith]j)}(hxe_pm_module_inith]hxe_pm_module_init}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ](jjeh"]h$]h&]hhuh1jhj!hhhj3hMubj)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]noemphhhuh1jhjZubah}(h]h ]h"]h$]h&]hhuh1jhj!hhhj3hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhj3hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj3hMhjhhubj)}(hhh]h)}(h-Perform xe_pm specific module initialization.h]h-Perform xe_pm specific module initialization.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj3hMubeh}(h]h ](jCfunctioneh"]h$]h&]jjCjjjjjjjuh1jhhhjohNhNubj)}(hZ**Parameters** ``void`` no arguments **Return** 0 on success. Currently doesn't fail.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh]j)}(h``void`` no arguments h](j)}(h``void``h]j)}(hjh]hvoid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubj)}(hhh]h)}(h no argumentsh]h no arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chMhjubh)}(h%0 on success. Currently doesn't fail.h]h'0 on success. Currently doesn’t fail.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_pm:13: ./drivers/gpu/drm/xe/xe_pm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubeh}(h] internal-apiah ]h"] internal apiah$]h&]uh1hhhhhhhhK ubeh}(h]runtime-power-managementah ]h"]runtime power managementah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjgerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jAj>j9j6u nametypes}(jAj9uh}(j>hj6jojjjrjwjjjtjyjj j_ jd j j jo jt j j jKjPjjj'j,jjj'j,jjj:j?jjjjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.