0sphinx.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_gt_freqmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/zh_TW/gpu/xe/xe_gt_freqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/it_IT/gpu/xe/xe_gt_freqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ja_JP/gpu/xe/xe_gt_freqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ko_KR/gpu/xe/xe_gt_freqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/pt_BR/gpu/xe/xe_gt_freqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/sp_SP/gpu/xe/xe_gt_freqmodnameN 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_gt_freq.rsthKubhsection)}(hhh](htitle)}(hXe GT Frequency Managementh]hXe GT Frequency Management}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(h[This component is responsible for the raw GT frequency management, including the sysfs API.h]h[This component is responsible for the raw GT frequency management, including the sysfs API.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chKhhhhubh)}(hXVUnderneath, Xe enables GuC SLPC automated frequency management. GuC is then allowed to request PCODE any frequency between the Minimum and the Maximum selected by this component. Furthermore, it is important to highlight that PCODE is the ultimate decision maker of the actual running frequency, based on thermal and other running conditions.h]hXVUnderneath, Xe enables GuC SLPC automated frequency management. GuC is then allowed to request PCODE any frequency between the Minimum and the Maximum selected by this component. Furthermore, it is important to highlight that PCODE is the ultimate decision maker of the actual running frequency, based on thermal and other running conditions.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chKhhhhubh)}(hfXe's Freq provides a sysfs API for frequency management under ``/tile#/gt#/freq0/`` directory.h](h@Xe’s Freq provides a sysfs API for frequency management under }(hhhhhNhNubhliteral)}(h``/tile#/gt#/freq0/``h]h/tile#/gt#/freq0/}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhubh directory.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chKhhhhubh)}(h**Read-only** attributes:h](hstrong)}(h **Read-only**h]h Read-only}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j$hj ubh attributes:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK!hhhhubh bullet_list)}(hhh](h list_item)}(h=``act_freq``: The actual resolved frequency decided by PCODE.h]h)}(hjHh](j)}(h ``act_freq``h]hact_freq}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh1: The actual resolved frequency decided by PCODE.}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK#hjFubah}(h]h ]h"]h$]h&]uh1jDhjAubjE)}(h?``cur_freq``: The current one requested by GuC PC to the PCODE.h]h)}(hjnh](j)}(h ``cur_freq``h]hcur_freq}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubh3: The current one requested by GuC PC to the PCODE.}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK$hjlubah}(h]h ]h"]h$]h&]uh1jDhjAubjE)}(hL``rpn_freq``: The Render Performance (RP) N level, which is the minimal one.h]h)}(hjh](j)}(h ``rpn_freq``h]hrpn_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh@: The Render Performance (RP) N level, which is the minimal one.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK%hjubah}(h]h ]h"]h$]h&]uh1jDhjAubjE)}(h``rpa_freq``: The Render Performance (RP) A level, which is the achievable one. Calculated by PCODE at runtime based on multiple running conditionsh]hdefinition_list)}(hhh]hdefinition_list_item)}(h``rpa_freq``: The Render Performance (RP) A level, which is the achievable one. Calculated by PCODE at runtime based on multiple running conditionsh](hterm)}(hO``rpa_freq``: The Render Performance (RP) A level, which is the achievable one.h](j)}(h ``rpa_freq``h]hrpa_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhC: The Render Performance (RP) A level, which is the achievable one.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK&hjubh definition)}(hhh]h)}(hCCalculated by PCODE at runtime based on multiple running conditionsh]hCCalculated by PCODE at runtime based on multiple running conditions}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK&hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jDhjAubjE)}(h``rpe_freq``: The Render Performance (RP) E level, which is the efficient one. Calculated by PCODE at runtime based on multiple running conditionsh]j)}(hhh]j)}(h``rpe_freq``: The Render Performance (RP) E level, which is the efficient one. Calculated by PCODE at runtime based on multiple running conditionsh](j)}(hN``rpe_freq``: The Render Performance (RP) E level, which is the efficient one.h](j)}(h ``rpe_freq``h]hrpe_freq}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhB: The Render Performance (RP) E level, which is the efficient one.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK(hjubj)}(hhh]h)}(hCCalculated by PCODE at runtime based on multiple running conditionsh]hCCalculated by PCODE at runtime based on multiple running conditions}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK)hj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hK(hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jDhjAubjE)}(hM``rp0_freq``: The Render Performance (RP) 0 level, which is the maximum one. h]h)}(hL``rp0_freq``: The Render Performance (RP) 0 level, which is the maximum one.h](j)}(h ``rp0_freq``h]hrp0_freq}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubh@: The Render Performance (RP) 0 level, which is the maximum one.}(hjhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK*hjdubah}(h]h ]h"]h$]h&]uh1jDhjAubeh}(h]h ]h"]h$]h&]bullet-uh1j?hjehK#hhhhubh)}(h**Read-write** attributes:h](j%)}(h**Read-write**h]h Read-write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j$hjubh attributes:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK,hhhhubj@)}(hhh](jE)}(h$``min_freq``: Min frequency request.h]h)}(hjh](j)}(h ``min_freq``h]hmin_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: Min frequency request.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK.hjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h``max_freq``: Max frequency request. If max <= min, then freq_min becomes a fixed frequency request. h]j)}(hhh]j)}(hf``max_freq``: Max frequency request. If max <= min, then freq_min becomes a fixed frequency request. h](j)}(h$``max_freq``: Max frequency request.h](j)}(h ``max_freq``h]hmax_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: Max frequency request.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK2hjubj)}(hhh]h)}(h?If max <= min, then freq_min becomes a fixed frequency request.h]h?If max <= min, then freq_min becomes a fixed frequency request.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:7: ./drivers/gpu/drm/xe/xe_gt_freq.chK0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK2hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jDhjubeh}(h]h ]h"]h$]h&]jjuh1j?hjhK.hhhhubh)}(hThe GT frequency may be throttled by hardware/firmware for various reasons that are provided through attributes under the ``freq0/throttle/`` directory. Their availability depend on the platform and some may not be visible if that reason is not available.h](hzThe GT frequency may be throttled by hardware/firmware for various reasons that are provided through attributes under the }(hj1hhhNhNubj)}(h``freq0/throttle/``h]hfreq0/throttle/}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubhr directory. Their availability depend on the platform and some may not be visible if that reason is not available.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chKhhhhubh)}(hXThe ``reasons`` attribute can be used by sysadmin to monitor all possible reasons for throttling and report them. It's preferred over monitoring ``status`` and then reading the reason from individual attributes since that is racy. If there's no throttling happening, "none" is returned.h](hThe }(hjRhhhNhNubj)}(h ``reasons``h]hreasons}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubh attribute can be used by sysadmin to monitor all possible reasons for throttling and report them. It’s preferred over monitoring }(hjRhhhNhNubj)}(h ``status``h]hstatus}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubh and then reading the reason from individual attributes since that is racy. If there’s no throttling happening, “none” is returned.}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chKhhhhubh)}(hCThe following attributes are available on Crescent Island platform:h]hCThe following attributes are available on Crescent Island platform:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chKhhhhubj@)}(hhh](jE)}(hE``status``: Overall throttle status (0: no throttling, 1: throttling)h]h)}(hjh](j)}(h ``status``h]hstatus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh;: Overall throttle status (0: no throttling, 1: throttling)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chKhjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(hC``reasons``: Array of reasons causing throttling separated by spaceh]h)}(hjh](j)}(h ``reasons``h]hreasons}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh8: Array of reasons causing throttling separated by space}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chKhjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h``reason_pl1``: package PL1h]h)}(hjh](j)}(h``reason_pl1``h]h reason_pl1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : package PL1}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK hjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h``reason_pl2``: package PL2h]h)}(hj h](j)}(h``reason_pl2``h]h reason_pl2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh : package PL2}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK!hj ubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h``reason_pl4``: package PL4h]h)}(hj1h](j)}(h``reason_pl4``h]h reason_pl4}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubh : package PL4}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK"hj/ubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h``reason_prochot``: prochoth]h)}(hjWh](j)}(h``reason_prochot``h]hreason_prochot}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubh : prochot}(hjYhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK#hjUubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h#``reason_soc_thermal``: SoC thermalh]h)}(hj}h](j)}(h``reason_soc_thermal``h]hreason_soc_thermal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : SoC thermal}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK$hj{ubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h&``reason_mem_thermal``: Memory thermalh]h)}(hjh](j)}(h``reason_mem_thermal``h]hreason_mem_thermal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: Memory thermal}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK%hjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h!``reason_vr_thermal``: VR thermalh]h)}(hjh](j)}(h``reason_vr_thermal``h]hreason_vr_thermal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : VR thermal}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK&hjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h``reason_iccmax``: ICCMAXh]h)}(hjh](j)}(h``reason_iccmax``h]h reason_iccmax}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: ICCMAX}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK'hjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h'``reason_ratl``: RATL thermal algorithmh]h)}(hjh](j)}(h``reason_ratl``h]h reason_ratl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: RATL thermal algorithm}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK(hjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h,``reason_soc_avg_thermal``: SoC average temph]h)}(hj;h](j)}(h``reason_soc_avg_thermal``h]hreason_soc_avg_thermal}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubh: SoC average temp}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK)hj9ubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h-``reason_fastvmode``: VR is hitting FastVModeh]h)}(hjah](j)}(h``reason_fastvmode``h]hreason_fastvmode}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubh: VR is hitting FastVMode}(hjchhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK*hj_ubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h``reason_psys_pl1``: PSYS PL1h]h)}(hjh](j)}(h``reason_psys_pl1``h]hreason_psys_pl1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : PSYS PL1}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK+hjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h``reason_psys_pl2``: PSYS PL2h]h)}(hjh](j)}(h``reason_psys_pl2``h]hreason_psys_pl2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : PSYS PL2}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK,hjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h ``reason_p0_freq``: P0 frequencyh]h)}(hjh](j)}(h``reason_p0_freq``h]hreason_p0_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: P0 frequency}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK-hjubah}(h]h ]h"]h$]h&]uh1jDhjubjE)}(h$``reason_psys_crit``: PSYS critical h]h)}(h#``reason_psys_crit``: PSYS criticalh](j)}(h``reason_psys_crit``h]hreason_psys_crit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: PSYS critical}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK.hjubah}(h]h ]h"]h$]h&]uh1jDhjubeh}(h]h ]h"]h$]h&]jjuh1j?hjhKhhhhubh)}(h.Other platforms support the following reasons:h]h.Other platforms support the following reasons:}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK0hhhhubj@)}(hhh](jE)}(hE``status``: Overall throttle status (0: no throttling, 1: throttling)h]h)}(hj8h](j)}(h ``status``h]hstatus}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubh;: Overall throttle status (0: no throttling, 1: throttling)}(hj:hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK2hj6ubah}(h]h ]h"]h$]h&]uh1jDhj3ubjE)}(hC``reasons``: Array of reasons causing throttling separated by spaceh]h)}(hj^h](j)}(h ``reasons``h]hreasons}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh8: Array of reasons causing throttling separated by space}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK3hj\ubah}(h]h ]h"]h$]h&]uh1jDhj3ubjE)}(h``reason_pl1``: package PL1h]h)}(hjh](j)}(h``reason_pl1``h]h reason_pl1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : package PL1}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK4hjubah}(h]h ]h"]h$]h&]uh1jDhj3ubjE)}(h``reason_pl2``: package PL2h]h)}(hjh](j)}(h``reason_pl2``h]h reason_pl2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : package PL2}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK5hjubah}(h]h ]h"]h$]h&]uh1jDhj3ubjE)}(h(``reason_pl4``: package PL4, Iccmax etc.h]h)}(hjh](j)}(h``reason_pl4``h]h reason_pl4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: package PL4, Iccmax etc.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK6hjubah}(h]h ]h"]h$]h&]uh1jDhj3ubjE)}(h``reason_thermal``: thermalh]h)}(hjh](j)}(h``reason_thermal``h]hreason_thermal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : thermal}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK7hjubah}(h]h ]h"]h$]h&]uh1jDhj3ubjE)}(h``reason_prochot``: prochoth]h)}(hjh](j)}(h``reason_prochot``h]hreason_prochot}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh : prochot}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK8hjubah}(h]h ]h"]h$]h&]uh1jDhj3ubjE)}(h&``reason_ratl``: RATL hermal algorithmh]h)}(hjBh](j)}(h``reason_ratl``h]h reason_ratl}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubh: RATL hermal algorithm}(hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK9hj@ubah}(h]h ]h"]h$]h&]uh1jDhj3ubjE)}(h'``reason_vr_thermalert``: VR THERMALERTh]h)}(hjhh](j)}(h``reason_vr_thermalert``h]hreason_vr_thermalert}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubh: VR THERMALERT}(hjjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK:hjfubah}(h]h ]h"]h$]h&]uh1jDhj3ubjE)}(h``reason_vr_tdc``: VR TDC h]h)}(h``reason_vr_tdc``: VR TDCh](j)}(h``reason_vr_tdc``h]h reason_vr_tdc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: VR TDC}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:10: ./drivers/gpu/drm/xe/xe_gt_throttle.chK;hjubah}(h]h ]h"]h$]h&]uh1jDhj3ubeh}(h]h ]h"]h$]h&]jjuh1j?hjUhK2hhhhubh)}(hhh](h)}(h Internal APIh]h Internal API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlexe_gt_freq_init (C function)c.xe_gt_freq_inithNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(h&int xe_gt_freq_init (struct xe_gt *gt)h]hdesc_signature_line)}(h%int xe_gt_freq_init(struct xe_gt *gt)h](hdesc_sig_keyword_type)}(hinth]hint}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhha/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:16: ./drivers/gpu/drm/xe/xe_gt_freq.chM ubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhM ubh desc_name)}(hxe_gt_freq_inith]h desc_sig_name)}(hxe_gt_freq_inith]hxe_gt_freq_init}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjhhhjhM ubhdesc_parameterlist)}(h(struct xe_gt *gt)h]hdesc_parameter)}(hstruct xe_gt *gth](hdesc_sig_keyword)}(hstructh]hstruct}(hj<hhhNhNubah}(h]h ]kah"]h$]h&]uh1j:hj6ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj6ubh)}(hhh]j)}(hxe_gth]hxe_gt}(hj\hhhNhNubah}(h]h ]j"ah"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetj^modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jx ASTIdentifier)}jsjsbc.xe_gt_freq_initasbuh1hhj6ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj6ubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhj6ubj)}(hgth]hgt}(hjhhhNhNubah}(h]h ]j"ah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphhhuh1j4hj0ubah}(h]h ]h"]h$]h&]hhuh1j.hjhhhjhM ubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jsphinx_line_type declaratorhjhhhjhM ubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhM hjhhubh desc_content)}(hhh]h)}(hInitialize Xe Freq componenth]hInitialize Xe Freq component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:16: ./drivers/gpu/drm/xe/xe_gt_freq.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jqfunctioneh"]h$]h&]domainjqobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jhhhjhNhNubh container)}(h**Parameters** ``struct xe_gt *gt`` Xe GT object **Description** It needs to be initialized after GT Sysfs and GuC PC components are ready. **Return** Returns error value for failure and 0 for success.h](h)}(h**Parameters**h]j%)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:16: ./drivers/gpu/drm/xe/xe_gt_freq.chMhjubj)}(hhh]j)}(h"``struct xe_gt *gt`` Xe GT object h](j)}(h``struct xe_gt *gt``h]j)}(hj! h]hstruct xe_gt *gt}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:16: ./drivers/gpu/drm/xe/xe_gt_freq.chM hj ubj)}(hhh]h)}(h Xe GT objecth]h Xe GT object}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6 hM hj7 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj6 hM hj ubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j%)}(hj\ h]h Description}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1j$hjZ ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:16: ./drivers/gpu/drm/xe/xe_gt_freq.chMhjubh)}(hJIt needs to be initialized after GT Sysfs and GuC PC components are ready.h]hJIt needs to be initialized after GT Sysfs and GuC PC components are ready.}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:16: ./drivers/gpu/drm/xe/xe_gt_freq.chM hjubh)}(h **Return**h]j%)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:16: ./drivers/gpu/drm/xe/xe_gt_freq.chMhjubh)}(h2Returns error value for failure and 0 for success.h]h2Returns error value for failure and 0 for success.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_freq:16: ./drivers/gpu/drm/xe/xe_gt_freq.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] internal-apiah ]h"] internal apiah$]h&]uh1hhhhhhhhKubeh}(h]xe-gt-frequency-managementah ]h"]xe gt frequency 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_handlerj error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _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}(j j j j u nametypes}(j j uh}(j hj jjju 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.