osphinx.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]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/}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh 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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 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)}(hj4h](h)}(h ``act_freq``h]hact_freq}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubh1: The actual resolved frequency decided by PCODE.}(hj6hhhNhNubeh}(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#hj2ubah}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(h?``cur_freq``: The current one requested by GuC PC to the PCODE.h]h)}(hjZh](h)}(h ``cur_freq``h]hcur_freq}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubh3: The current one requested by GuC PC to the PCODE.}(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$hjXubah}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(hL``rpn_freq``: The Render Performance (RP) N level, which is the minimal one.h]h)}(hjh](h)}(h ``rpn_freq``h]hrpn_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh@: 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%hj~ubah}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(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](h)}(h ``rpa_freq``h]hrpa_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhC: 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&]uh1j0hj-ubj1)}(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](h)}(h ``rpe_freq``h]hrpe_freq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubhB: The Render Performance (RP) E level, which is the efficient one.}(hj hhhNhNubeh}(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&]uh1jhj%hK(hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(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](h)}(h ``rp0_freq``h]hrp0_freq}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjTubh@: The Render Performance (RP) 0 level, which is the maximum one.}(hjThhhNhNubeh}(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*hjPubah}(h]h ]h"]h$]h&]uh1j0hj-ubeh}(h]h ]h"]h$]h&]bullet-uh1j+hjQhK#hhhhubh)}(h**Read-write** attributes:h](j)}(h**Read-write**h]h Read-write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh 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](j1)}(h$``min_freq``: Min frequency request.h]h)}(hjh](h)}(h ``min_freq``h]hmin_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh: 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&]uh1j0hjubj1)}(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](h)}(h ``max_freq``h]hmax_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh: 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&]uh1j0hjubeh}(h]h ]h"]h$]h&]j}j~uh1j+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 }(hjhhhNhNubh)}(h``freq0/throttle/``h]hfreq0/throttle/}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhr directory. Their availability depend on the platform and some may not be visible if that reason is not available.}(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.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 }(hj>hhhNhNubh)}(h ``reasons``h]hreasons}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>ubh attribute can be used by sysadmin to monitor all possible reasons for throttling and report them. It’s preferred over monitoring }(hj>hhhNhNubh)}(h ``status``h]hstatus}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>ubh and then reading the reason from individual attributes since that is racy. If there’s no throttling happening, “none” is returned.}(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.chKhhhhubh)}(hCThe following attributes are available on Crescent Island platform:h]hCThe following attributes are available on Crescent Island platform:}(hjqhhhNhNubah}(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](j1)}(hE``status``: Overall throttle status (0: no throttling, 1: throttling)h]h)}(hjh](h)}(h ``status``h]hstatus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh;: 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&]uh1j0hjubj1)}(hC``reasons``: Array of reasons causing throttling separated by spaceh]h)}(hjh](h)}(h ``reasons``h]hreasons}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh8: 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&]uh1j0hjubj1)}(h``reason_pl1``: package PL1h]h)}(hjh](h)}(h``reason_pl1``h]h reason_pl1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh : 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&]uh1j0hjubj1)}(h``reason_pl2``: package PL2h]h)}(hjh](h)}(h``reason_pl2``h]h reason_pl2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh : 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.chK!hjubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h``reason_pl4``: package PL4h]h)}(hjh](h)}(h``reason_pl4``h]h reason_pl4}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh : package PL4}(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&]uh1j0hjubj1)}(h``reason_prochot``: prochoth]h)}(hjCh](h)}(h``reason_prochot``h]hreason_prochot}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEubh : prochot}(hjEhhhNhNubeh}(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#hjAubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h#``reason_soc_thermal``: SoC thermalh]h)}(hjih](h)}(h``reason_soc_thermal``h]hreason_soc_thermal}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkubh : SoC thermal}(hjkhhhNhNubeh}(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$hjgubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h&``reason_mem_thermal``: Memory thermalh]h)}(hjh](h)}(h``reason_mem_thermal``h]hreason_mem_thermal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh: 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&]uh1j0hjubj1)}(h!``reason_vr_thermal``: VR thermalh]h)}(hjh](h)}(h``reason_vr_thermal``h]hreason_vr_thermal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh : 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&]uh1j0hjubj1)}(h``reason_iccmax``: ICCMAXh]h)}(hjh](h)}(h``reason_iccmax``h]h reason_iccmax}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh: 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&]uh1j0hjubj1)}(h'``reason_ratl``: RATL thermal algorithmh]h)}(hjh](h)}(h``reason_ratl``h]h reason_ratl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh: 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&]uh1j0hjubj1)}(h,``reason_soc_avg_thermal``: SoC average temph]h)}(hj'h](h)}(h``reason_soc_avg_thermal``h]hreason_soc_avg_thermal}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)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)hj%ubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h-``reason_fastvmode``: VR is hitting FastVModeh]h)}(hjMh](h)}(h``reason_fastvmode``h]hreason_fastvmode}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOubh: VR is hitting FastVMode}(hjOhhhNhNubeh}(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*hjKubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h``reason_psys_pl1``: PSYS PL1h]h)}(hjsh](h)}(h``reason_psys_pl1``h]hreason_psys_pl1}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuubh : PSYS PL1}(hjuhhhNhNubeh}(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+hjqubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h``reason_psys_pl2``: PSYS PL2h]h)}(hjh](h)}(h``reason_psys_pl2``h]hreason_psys_pl2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh : 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&]uh1j0hjubj1)}(h ``reason_p0_freq``: P0 frequencyh]h)}(hjh](h)}(h``reason_p0_freq``h]hreason_p0_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh: 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&]uh1j0hjubj1)}(h$``reason_psys_crit``: PSYS critical h]h)}(h#``reason_psys_crit``: PSYS criticalh](h)}(h``reason_psys_crit``h]hreason_psys_crit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh: 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&]uh1j0hjubeh}(h]h ]h"]h$]h&]j}j~uh1j+hjhKhhhhubh)}(h.Other platforms support the following reasons:h]h.Other platforms support the following reasons:}(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.chK0hhhhubj,)}(hhh](j1)}(hE``status``: Overall throttle status (0: no throttling, 1: throttling)h]h)}(hj$h](h)}(h ``status``h]hstatus}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&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.chK2hj"ubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(hC``reasons``: Array of reasons causing throttling separated by spaceh]h)}(hjJh](h)}(h ``reasons``h]hreasons}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLubh8: Array of reasons causing throttling separated by space}(hjLhhhNhNubeh}(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.chK3hjHubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h``reason_pl1``: package PL1h]h)}(hjph](h)}(h``reason_pl1``h]h reason_pl1}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrubh : package PL1}(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.chK4hjnubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h``reason_pl2``: package PL2h]h)}(hjh](h)}(h``reason_pl2``h]h reason_pl2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh : 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&]uh1j0hjubj1)}(h(``reason_pl4``: package PL4, Iccmax etc.h]h)}(hjh](h)}(h``reason_pl4``h]h reason_pl4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh: 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&]uh1j0hjubj1)}(h``reason_thermal``: thermalh]h)}(hjh](h)}(h``reason_thermal``h]hreason_thermal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh : 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&]uh1j0hjubj1)}(h``reason_prochot``: prochoth]h)}(hjh](h)}(h``reason_prochot``h]hreason_prochot}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh : prochot}(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.chK8hjubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h&``reason_ratl``: RATL hermal algorithmh]h)}(hj.h](h)}(h``reason_ratl``h]h reason_ratl}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0ubh: RATL hermal algorithm}(hj0hhhNhNubeh}(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&]uh1j0hjubj1)}(h'``reason_vr_thermalert``: VR THERMALERTh]h)}(hjTh](h)}(h``reason_vr_thermalert``h]hreason_vr_thermalert}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubh: VR THERMALERT}(hjVhhhNhNubeh}(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:hjRubah}(h]h ]h"]h$]h&]uh1j0hjubj1)}(h``reason_vr_tdc``: VR TDC h]h)}(h``reason_vr_tdc``: VR TDCh](h)}(h``reason_vr_tdc``h]h reason_vr_tdc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|ubh: VR TDC}(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;hjxubah}(h]h ]h"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]j}j~uh1j+hjAhK2hhhhubh)}(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.chMubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhMubh 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&]hhuh1jhjhhhjhMubhdesc_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&hj"ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubh)}(hhh]j)}(hxe_gth]hxe_gt}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjJmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jd ASTIdentifier)}j_jsbc.xe_gt_freq_initasbuh1hhj"ubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhj"ubj)}(hgth]hgt}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jsphinx_line_type declaratorhjhhhjhMubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhMhjhhubh 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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](j]functioneh"]h$]h&]domainj]objtypejdesctypejnoindex 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)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(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]h)}(hj h]hstruct xe_gt *gt}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj 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.chMhj ubj)}(hhh]h)}(h Xe GT objecth]h Xe GT object}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj" hMhj# ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj" hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjH h]h Description}(hjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF 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.}(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.chMhjubh)}(h **Return**h]j)}(hjo h]hReturn}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm 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_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}(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.