€•¢Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ1/translations/zh_CN/driver-api/thermal/intel_dptf”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/zh_TW/driver-api/thermal/intel_dptf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/it_IT/driver-api/thermal/intel_dptf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/ja_JP/driver-api/thermal/intel_dptf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/ko_KR/driver-api/thermal/intel_dptf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/pt_BR/driver-api/thermal/intel_dptf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/sp_SP/driver-api/thermal/intel_dptf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒK/var/lib/git/docbuild/linux/Documentation/driver-api/thermal/intel_dptf.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ?Intel(R) Dynamic Platform and Thermal Framework Sysfs Interface”h]”hŒ?Intel(R) Dynamic Platform and Thermal Framework Sysfs Interface”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ field_list”“”)�”}”(hhh]”(hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒ Copyright”h]”hŒ Copyright”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhäh³hÇh´KubhŒ field_body”“”)�”}”(hŒ© 2022 Intel Corporation ”h]”hŒ paragraph”“”)�”}”(hŒ© 2022 Intel Corporation”h]”hŒ© 2022 Intel Corporation”…”�”}”(hhÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Khhùubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhäubeh}”(h]”h ]”h"]”h$]”h&]”uh1hâh³hÇh´Khhßh²hubhã)�”}”(hhh]”(hè)�”}”(hŒAuthor”h]”hŒAuthor”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjh³hÇh´Kubhø)�”}”(hŒ:Srinivas Pandruvada ”h]”hþ)�”}”(hŒ9Srinivas Pandruvada ”h]”(hŒSrinivas Pandruvada <”…”�”}”(hj.h²hh³Nh´NubhŒ reference”“”)�”}”(hŒ#srinivas.pandruvada@linux.intel.com”h]”hŒ#srinivas.pandruvada@linux.intel.com”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ*mailto:srinivas.pandruvada@linux.intel.com”uh1j6hj.ubhŒ>”…”�”}”(hj.h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hâh³hÇh´K hhßh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Introduction”h]”hŒ Introduction”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjdh²hh³hÇh´K ubhþ)�”}”(hŒ‡Intel(R) Dynamic Platform and Thermal Framework (DPTF) is a platform level hardware/software solution for power and thermal management.”h]”hŒ‡Intel(R) Dynamic Platform and Thermal Framework (DPTF) is a platform level hardware/software solution for power and thermal management.”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Khjdh²hubhþ)�”}”(hŒ�As a container for multiple power/thermal technologies, DPTF provides a coordinated approach for different policies to effect the hardware state of a system.”h]”hŒ�As a container for multiple power/thermal technologies, DPTF provides a coordinated approach for different policies to effect the hardware state of a system.”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Khjdh²hubhþ)�”}”(hXéSince it is a platform level framework, this has several components. Some parts of the technology is implemented in the firmware and uses ACPI and PCI devices to expose various features for monitoring and control. Linux has a set of kernel drivers exposing hardware interface to user space. This allows user space thermal solutions like "Linux Thermal Daemon" to read platform specific thermal and power tables to deliver adequate performance while keeping the system under thermal limits.”h]”hXíSince it is a platform level framework, this has several components. Some parts of the technology is implemented in the firmware and uses ACPI and PCI devices to expose various features for monitoring and control. Linux has a set of kernel drivers exposing hardware interface to user space. This allows user space thermal solutions like “Linux Thermal Daemonâ€� to read platform specific thermal and power tables to deliver adequate performance while keeping the system under thermal limits.”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Khjdh²hubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDPTF ACPI Drivers interface”h]”hŒDPTF ACPI Drivers interface”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj§h²hh³hÇh´Kubhþ)�”}”(hŒZ:file:`/sys/bus/platform/devices//uuids`, where =INT3400|INTC1040|INTC1041|INTC10A0”h]”(hŒliteral”“”)�”}”(hŒ+:file:`/sys/bus/platform/devices//uuids`”h]”hŒ#/sys/bus/platform/devices//uuids”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hj¸ubhŒ/, where =INT3400|INTC1040|INTC1041|INTC10A0”…”�”}”(hj¸h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K!hj§h²hubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hXÍ``available_uuids`` (RO) A set of UUIDs strings presenting available policies which should be notified to the firmware when the user space can support those policies. UUID strings: "42A441D6-AE6A-462b-A84B-4A8CE79027D3" : Passive 1 "3A95C389-E4B8-4629-A526-C52C88626BAE" : Active "97C68AE7-15FA-499c-B8C9-5DA81D606E0A" : Critical "63BE270F-1C11-48FD-A6F7-3AF253FF3E2D" : Adaptive performance "5349962F-71E6-431D-9AE8-0A635B710AEE" : Emergency call "9E04115A-AE87-4D1C-9500-0F3E340BFE75" : Passive 2 "F5A35014-C209-46A4-993A-EB56DE7530A1" : Power Boss "6ED722A7-9240-48A5-B479-31EEF723D7CF" : Virtual Sensor "16CAF1B7-DD38-40ED-B1C1-1B8A1913D531" : Cooling mode "BE84BABF-C4D4-403D-B495-3128FD44dAC1" : HDC ”h]”(hŒterm”“”)�”}”(hŒ``available_uuids`` (RO)”h]”(j½)�”}”(hŒ``available_uuids``”h]”hŒavailable_uuids”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjæubhŒ (RO)”…”�”}”(hjæh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K=hjàubhŒ definition”“”)�”}”(hhh]”(hþ)�”}”(hŒ�A set of UUIDs strings presenting available policies which should be notified to the firmware when the user space can support those policies.”h]”hŒ�A set of UUIDs strings presenting available policies which should be notified to the firmware when the user space can support those policies.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K%hjubhþ)�”}”(hŒ UUID strings:”h]”hŒ UUID strings:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K)hjubhþ)�”}”(hŒ2"42A441D6-AE6A-462b-A84B-4A8CE79027D3" : Passive 1”h]”hŒ6“42A441D6-AE6A-462b-A84B-4A8CE79027D3â€� : Passive 1”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K+hjubhþ)�”}”(hŒ/"3A95C389-E4B8-4629-A526-C52C88626BAE" : Active”h]”hŒ3“3A95C389-E4B8-4629-A526-C52C88626BAEâ€� : Active”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K-hjubhþ)�”}”(hŒ1"97C68AE7-15FA-499c-B8C9-5DA81D606E0A" : Critical”h]”hŒ5“97C68AE7-15FA-499c-B8C9-5DA81D606E0Aâ€� : Critical”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K/hjubhþ)�”}”(hŒ="63BE270F-1C11-48FD-A6F7-3AF253FF3E2D" : Adaptive performance”h]”hŒA“63BE270F-1C11-48FD-A6F7-3AF253FF3E2Dâ€� : Adaptive performance”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K1hjubhþ)�”}”(hŒ7"5349962F-71E6-431D-9AE8-0A635B710AEE" : Emergency call”h]”hŒ;“5349962F-71E6-431D-9AE8-0A635B710AEEâ€� : Emergency call”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K3hjubhþ)�”}”(hŒ2"9E04115A-AE87-4D1C-9500-0F3E340BFE75" : Passive 2”h]”hŒ6“9E04115A-AE87-4D1C-9500-0F3E340BFE75â€� : Passive 2”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K5hjubhþ)�”}”(hŒ3"F5A35014-C209-46A4-993A-EB56DE7530A1" : Power Boss”h]”hŒ7“F5A35014-C209-46A4-993A-EB56DE7530A1â€� : Power Boss”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K7hjubhþ)�”}”(hŒ7"6ED722A7-9240-48A5-B479-31EEF723D7CF" : Virtual Sensor”h]”hŒ;“6ED722A7-9240-48A5-B479-31EEF723D7CFâ€� : Virtual Sensor”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K9hjubhþ)�”}”(hŒ5"16CAF1B7-DD38-40ED-B1C1-1B8A1913D531" : Cooling mode”h]”hŒ9“16CAF1B7-DD38-40ED-B1C1-1B8A1913D531â€� : Cooling mode”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K;hjubhþ)�”}”(hŒ,"BE84BABF-C4D4-403D-B495-3128FD44dAC1" : HDC”h]”hŒ0“BE84BABF-C4D4-403D-B495-3128FD44dAC1â€� : HDC”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K=hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjàubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K=hjÛubjß)�”}”(hŒX``current_uuid`` (RW) User space can write strings from available UUIDs, one at a time. ”h]”(jå)�”}”(hŒ``current_uuid`` (RW)”h]”(j½)�”}”(hŒ``current_uuid``”h]”hŒ current_uuid”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj¿ubhŒ (RW)”…”�”}”(hj¿h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KAhj»ubj)�”}”(hhh]”hþ)�”}”(hŒAUser space can write strings from available UUIDs, one at a time.”h]”hŒAUser space can write strings from available UUIDs, one at a time.”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K@hjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KAhjÛh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj§h²hh³hÇh´Nubhþ)�”}”(hŒU:file:`/sys/bus/platform/devices//`, where =INT3400|INTC1040|INTC1041|INTC10A0”h]”(j½)�”}”(hŒ&:file:`/sys/bus/platform/devices//`”h]”hŒ/sys/bus/platform/devices//”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hjþubhŒ/, where =INT3400|INTC1040|INTC1041|INTC10A0”…”�”}”(hjþh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KChj§h²hubjÚ)�”}”(hhh]”(jß)�”}”(hŒø``imok`` (WO) User space daemon write 1 to respond to firmware event for sending keep alive notification. User space receives THERMAL_EVENT_KEEP_ALIVE kobject uevent notification when firmware calls for user space to respond with imok ACPI method. ”h]”(jå)�”}”(hŒ ``imok`` (WO)”h]”(j½)�”}”(hŒ``imok``”h]”hŒimok”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj$ubhŒ (WO)”…”�”}”(hj$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KKhj ubj)�”}”(hhh]”hþ)�”}”(hŒéUser space daemon write 1 to respond to firmware event for sending keep alive notification. User space receives THERMAL_EVENT_KEEP_ALIVE kobject uevent notification when firmware calls for user space to respond with imok ACPI method.”h]”hŒéUser space daemon write 1 to respond to firmware event for sending keep alive notification. User space receives THERMAL_EVENT_KEEP_ALIVE kobject uevent notification when firmware calls for user space to respond with imok ACPI method.”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KGhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KKhjubjß)�”}”(hŒ†``odvp*`` (RO) Firmware thermal status variable values. Thermal tables calls for different processing based on these variable values. ”h]”(jå)�”}”(hŒ``odvp*`` (RO)”h]”(j½)�”}”(hŒ ``odvp*``”h]”hŒodvp*”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjaubhŒ (RO)”…”�”}”(hjah²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KPhj]ubj)�”}”(hhh]”hþ)�”}”(hŒvFirmware thermal status variable values. Thermal tables calls for different processing based on these variable values.”h]”hŒvFirmware thermal status variable values. Thermal tables calls for different processing based on these variable values.”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KNhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KPhjh²hubjß)�”}”(hŒv``data_vault`` (RO) Binary thermal table. Refer to https:/github.com/intel/thermal_daemon for decoding thermal table. ”h]”(jå)�”}”(hŒ``data_vault`` (RO)”h]”(j½)�”}”(hŒ``data_vault``”h]”hŒ data_vault”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjžubhŒ (RO)”…”�”}”(hjžh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KUhjšubj)�”}”(hhh]”hþ)�”}”(hŒaBinary thermal table. Refer to https:/github.com/intel/thermal_daemon for decoding thermal table.”h]”(hŒBinary thermal table. Refer to ”…”�”}”(hj½h²hh³Nh´Nubj7)�”}”(hŒ&https:/github.com/intel/thermal_daemon”h]”hŒ&https:/github.com/intel/thermal_daemon”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jÇuh1j6hj½ubhŒ for decoding thermal table.”…”�”}”(hj½h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KShjºubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KUhjh²hubjß)�”}”(hŒs``production_mode`` (RO) When different from zero, manufacturer locked thermal configuration from further changes. ”h]”(jå)�”}”(hŒ``production_mode`` (RO)”h]”(j½)�”}”(hŒ``production_mode``”h]”hŒproduction_mode”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjîubhŒ (RO)”…”�”}”(hjîh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KYhjêubj)�”}”(hhh]”hþ)�”}”(hŒYWhen different from zero, manufacturer locked thermal configuration from further changes.”h]”hŒYWhen different from zero, manufacturer locked thermal configuration from further changes.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KXhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjêubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KYhjh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj§h²hh³hÇh´Nubeh}”(h]”Œdptf-acpi-drivers-interface”ah ]”h"]”Œdptf acpi drivers interface”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ)ACPI Thermal Relationship table interface”h]”hŒ)ACPI Thermal Relationship table interface”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj5h²hh³hÇh´K\ubhþ)�”}”(hŒ:file:`/dev/acpi_thermal_rel`”h]”j½)�”}”(hjHh]”hŒ/dev/acpi_thermal_rel”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K^hj5h²hubhŒ block_quote”“”)�”}”(hXwThis device provides IOCTL interface to read standard ACPI thermal relationship tables via ACPI methods _TRT and _ART. These IOCTLs are defined in drivers/thermal/intel/int340x_thermal/acpi_thermal_rel.h IOCTLs: ACPI_THERMAL_GET_TRT_LEN: Get length of TRT table ACPI_THERMAL_GET_ART_LEN: Get length of ART table ACPI_THERMAL_GET_TRT_COUNT: Number of records in TRT table ACPI_THERMAL_GET_ART_COUNT: Number of records in ART table ACPI_THERMAL_GET_TRT: Read binary TRT table, length to read is provided via argument to ioctl(). ACPI_THERMAL_GET_ART: Read binary ART table, length to read is provided via argument to ioctl(). ”h]”(hþ)�”}”(hŒËThis device provides IOCTL interface to read standard ACPI thermal relationship tables via ACPI methods _TRT and _ART. These IOCTLs are defined in drivers/thermal/intel/int340x_thermal/acpi_thermal_rel.h”h]”hŒËThis device provides IOCTL interface to read standard ACPI thermal relationship tables via ACPI methods _TRT and _ART. These IOCTLs are defined in drivers/thermal/intel/int340x_thermal/acpi_thermal_rel.h”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K`hjbubhþ)�”}”(hŒIOCTLs:”h]”hŒIOCTLs:”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kehjbubhþ)�”}”(hŒ1ACPI_THERMAL_GET_TRT_LEN: Get length of TRT table”h]”hŒ1ACPI_THERMAL_GET_TRT_LEN: Get length of TRT table”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kghjbubhþ)�”}”(hŒ1ACPI_THERMAL_GET_ART_LEN: Get length of ART table”h]”hŒ1ACPI_THERMAL_GET_ART_LEN: Get length of ART table”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kihjbubhþ)�”}”(hŒ:ACPI_THERMAL_GET_TRT_COUNT: Number of records in TRT table”h]”hŒ:ACPI_THERMAL_GET_TRT_COUNT: Number of records in TRT table”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kkhjbubhþ)�”}”(hŒ:ACPI_THERMAL_GET_ART_COUNT: Number of records in ART table”h]”hŒ:ACPI_THERMAL_GET_ART_COUNT: Number of records in ART table”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kmhjbubhþ)�”}”(hŒ`ACPI_THERMAL_GET_TRT: Read binary TRT table, length to read is provided via argument to ioctl().”h]”hŒ`ACPI_THERMAL_GET_TRT: Read binary TRT table, length to read is provided via argument to ioctl().”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kohjbubhþ)�”}”(hŒ`ACPI_THERMAL_GET_ART: Read binary ART table, length to read is provided via argument to ioctl().”h]”hŒ`ACPI_THERMAL_GET_ART: Read binary ART table, length to read is provided via argument to ioctl().”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Krhjbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j`h³hÇh´K`hj5h²hubeh}”(h]”Œ)acpi-thermal-relationship-table-interface”ah ]”h"]”Œ)acpi thermal relationship table interface”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K\ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDPTF ACPI Sensor drivers”h]”hŒDPTF ACPI Sensor drivers”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjäh²hh³hÇh´Kvubhþ)�”}”(hŒIDPTF Sensor drivers are presented as standard thermal sysfs thermal_zone.”h]”hŒIDPTF Sensor drivers are presented as standard thermal sysfs thermal_zone.”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kxhjäh²hubeh}”(h]”Œdptf-acpi-sensor-drivers”ah ]”h"]”Œdptf acpi sensor drivers”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KvubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDPTF ACPI Cooling drivers”h]”hŒDPTF ACPI Cooling drivers”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj h²hh³hÇh´K|ubhþ)�”}”(hŒLDPTF cooling drivers are presented as standard thermal sysfs cooling_device.”h]”hŒLDPTF cooling drivers are presented as standard thermal sysfs cooling_device.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K~hj h²hubeh}”(h]”Œdptf-acpi-cooling-drivers”ah ]”h"]”Œdptf acpi cooling drivers”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K|ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ+DPTF Processor thermal PCI Driver interface”h]”hŒ+DPTF Processor thermal PCI Driver interface”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj2h²hh³hÇh´K‚ubhþ)�”}”(hŒ9:file:`/sys/bus/pci/devices/0000\:00\:04.0/power_limits/`”h]”j½)�”}”(hŒ9:file:`/sys/bus/pci/devices/0000\:00\:04.0/power_limits/`”h]”hŒ//sys/bus/pci/devices/0000:00:04.0/power_limits/”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K„hj2h²hubhþ)�”}”(hŒDRefer to Documentation/power/powercap/powercap.rst for powercap ABI.”h]”hŒDRefer to Documentation/power/powercap/powercap.rst for powercap ABI.”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K†hj2h²hubjÚ)�”}”(hhh]”(jß)�”}”(hŒ```power_limit_0_max_uw`` (RO) Maximum powercap sysfs constraint_0_power_limit_uw for Intel RAPL ”h]”(jå)�”}”(hŒ``power_limit_0_max_uw`` (RO)”h]”(j½)�”}”(hŒ``power_limit_0_max_uw``”h]”hŒpower_limit_0_max_uw”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjsubhŒ (RO)”…”�”}”(hjsh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KŠhjoubj)�”}”(hhh]”hþ)�”}”(hŒAMaximum powercap sysfs constraint_0_power_limit_uw for Intel RAPL”h]”hŒAMaximum powercap sysfs constraint_0_power_limit_uw for Intel RAPL”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KŠhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KŠhjlubjß)�”}”(hŒh``power_limit_0_step_uw`` (RO) Power limit increment/decrements for Intel RAPL constraint 0 power limit ”h]”(jå)�”}”(hŒ``power_limit_0_step_uw`` (RO)”h]”(j½)�”}”(hŒ``power_limit_0_step_uw``”h]”hŒpower_limit_0_step_uw”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj°ubhŒ (RO)”…”�”}”(hj°h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K�hj¬ubj)�”}”(hhh]”hþ)�”}”(hŒHPower limit increment/decrements for Intel RAPL constraint 0 power limit”h]”hŒHPower limit increment/decrements for Intel RAPL constraint 0 power limit”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K�hjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K�hjlh²hubjß)�”}”(hŒ```power_limit_0_min_uw`` (RO) Minimum powercap sysfs constraint_0_power_limit_uw for Intel RAPL ”h]”(jå)�”}”(hŒ``power_limit_0_min_uw`` (RO)”h]”(j½)�”}”(hŒ``power_limit_0_min_uw``”h]”hŒpower_limit_0_min_uw”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjíubhŒ (RO)”…”�”}”(hjíh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K�hjéubj)�”}”(hhh]”hþ)�”}”(hŒAMinimum powercap sysfs constraint_0_power_limit_uw for Intel RAPL”h]”hŒAMinimum powercap sysfs constraint_0_power_limit_uw for Intel RAPL”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K�hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K�hjlh²hubjß)�”}”(hŒa``power_limit_0_tmin_us`` (RO) Minimum powercap sysfs constraint_0_time_window_us for Intel RAPL ”h]”(jå)�”}”(hŒ``power_limit_0_tmin_us`` (RO)”h]”(j½)�”}”(hŒ``power_limit_0_tmin_us``”h]”hŒpower_limit_0_tmin_us”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj*ubhŒ (RO)”…”�”}”(hj*h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K“hj&ubj)�”}”(hhh]”hþ)�”}”(hŒAMinimum powercap sysfs constraint_0_time_window_us for Intel RAPL”h]”hŒAMinimum powercap sysfs constraint_0_time_window_us for Intel RAPL”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K“hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K“hjlh²hubjß)�”}”(hŒa``power_limit_0_tmax_us`` (RO) Maximum powercap sysfs constraint_0_time_window_us for Intel RAPL ”h]”(jå)�”}”(hŒ``power_limit_0_tmax_us`` (RO)”h]”(j½)�”}”(hŒ``power_limit_0_tmax_us``”h]”hŒpower_limit_0_tmax_us”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjgubhŒ (RO)”…”�”}”(hjgh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K–hjcubj)�”}”(hhh]”hþ)�”}”(hŒAMaximum powercap sysfs constraint_0_time_window_us for Intel RAPL”h]”hŒAMaximum powercap sysfs constraint_0_time_window_us for Intel RAPL”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K–hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjcubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K–hjlh²hubjß)�”}”(hŒ```power_limit_1_max_uw`` (RO) Maximum powercap sysfs constraint_1_power_limit_uw for Intel RAPL ”h]”(jå)�”}”(hŒ``power_limit_1_max_uw`` (RO)”h]”(j½)�”}”(hŒ``power_limit_1_max_uw``”h]”hŒpower_limit_1_max_uw”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj¤ubhŒ (RO)”…”�”}”(hj¤h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K™hj ubj)�”}”(hhh]”hþ)�”}”(hŒAMaximum powercap sysfs constraint_1_power_limit_uw for Intel RAPL”h]”hŒAMaximum powercap sysfs constraint_1_power_limit_uw for Intel RAPL”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K™hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K™hjlh²hubjß)�”}”(hŒh``power_limit_1_step_uw`` (RO) Power limit increment/decrements for Intel RAPL constraint 1 power limit ”h]”(jå)�”}”(hŒ``power_limit_1_step_uw`` (RO)”h]”(j½)�”}”(hŒ``power_limit_1_step_uw``”h]”hŒpower_limit_1_step_uw”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjáubhŒ (RO)”…”�”}”(hjáh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KœhjÝubj)�”}”(hhh]”hþ)�”}”(hŒHPower limit increment/decrements for Intel RAPL constraint 1 power limit”h]”hŒHPower limit increment/decrements for Intel RAPL constraint 1 power limit”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kœhjýubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Kœhjlh²hubjß)�”}”(hŒ```power_limit_1_min_uw`` (RO) Minimum powercap sysfs constraint_1_power_limit_uw for Intel RAPL ”h]”(jå)�”}”(hŒ``power_limit_1_min_uw`` (RO)”h]”(j½)�”}”(hŒ``power_limit_1_min_uw``”h]”hŒpower_limit_1_min_uw”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjubhŒ (RO)”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KŸhjubj)�”}”(hhh]”hþ)�”}”(hŒAMinimum powercap sysfs constraint_1_power_limit_uw for Intel RAPL”h]”hŒAMinimum powercap sysfs constraint_1_power_limit_uw for Intel RAPL”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KŸhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KŸhjlh²hubjß)�”}”(hŒa``power_limit_1_tmin_us`` (RO) Minimum powercap sysfs constraint_1_time_window_us for Intel RAPL ”h]”(jå)�”}”(hŒ``power_limit_1_tmin_us`` (RO)”h]”(j½)�”}”(hŒ``power_limit_1_tmin_us``”h]”hŒpower_limit_1_tmin_us”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj[ubhŒ (RO)”…”�”}”(hj[h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K¢hjWubj)�”}”(hhh]”hþ)�”}”(hŒAMinimum powercap sysfs constraint_1_time_window_us for Intel RAPL”h]”hŒAMinimum powercap sysfs constraint_1_time_window_us for Intel RAPL”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K¢hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K¢hjlh²hubjß)�”}”(hŒa``power_limit_1_tmax_us`` (RO) Maximum powercap sysfs constraint_1_time_window_us for Intel RAPL ”h]”(jå)�”}”(hŒ``power_limit_1_tmax_us`` (RO)”h]”(j½)�”}”(hŒ``power_limit_1_tmax_us``”h]”hŒpower_limit_1_tmax_us”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj˜ubhŒ (RO)”…”�”}”(hj˜h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K¥hj”ubj)�”}”(hhh]”hþ)�”}”(hŒAMaximum powercap sysfs constraint_1_time_window_us for Intel RAPL”h]”hŒAMaximum powercap sysfs constraint_1_time_window_us for Intel RAPL”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K¥hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K¥hjlh²hubjß)�”}”(hŒ¿``power_floor_status`` (RO) When set to 1, the power floor of the system in the current configuration has been reached. It needs to be reconfigured to allow power to be reduced any further. ”h]”(jå)�”}”(hŒ``power_floor_status`` (RO)”h]”(j½)�”}”(hŒ``power_floor_status``”h]”hŒpower_floor_status”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÕubhŒ (RO)”…”�”}”(hjÕh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KªhjÑubj)�”}”(hhh]”hþ)�”}”(hŒ¢When set to 1, the power floor of the system in the current configuration has been reached. It needs to be reconfigured to allow power to be reduced any further.”h]”hŒ¢When set to 1, the power floor of the system in the current configuration has been reached. It needs to be reconfigured to allow power to be reduced any further.”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K¨hjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Kªhjlh²hubjß)�”}”(hŒ¶``power_floor_enable`` (RW) When set to 1, enable reading and notification of the power floor status. Notifications are triggered for the power_floor_status attribute value changes. ”h]”(jå)�”}”(hŒ``power_floor_enable`` (RW)”h]”(j½)�”}”(hŒ``power_floor_enable``”h]”hŒpower_floor_enable”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjubhŒ (RW)”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K¯hjubj)�”}”(hhh]”hþ)�”}”(hŒ™When set to 1, enable reading and notification of the power floor status. Notifications are triggered for the power_floor_status attribute value changes.”h]”hŒ™When set to 1, enable reading and notification of the power floor status. Notifications are triggered for the power_floor_status attribute value changes.”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K­hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K¯hjlh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj2h²hh³hÇh´Nubhþ)�”}”(hŒ,:file:`/sys/bus/pci/devices/0000\:00\:04.0/`”h]”j½)�”}”(hŒ,:file:`/sys/bus/pci/devices/0000\:00\:04.0/`”h]”hŒ"/sys/bus/pci/devices/0000:00:04.0/”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K±hj2h²hubjÚ)�”}”(hhh]”jß)�”}”(hŒn``tcc_offset_degree_celsius`` (RW) TCC offset from the critical temperature where hardware will throttle CPU. ”h]”(jå)�”}”(hŒ"``tcc_offset_degree_celsius`` (RW)”h]”(j½)�”}”(hŒ``tcc_offset_degree_celsius``”h]”hŒtcc_offset_degree_celsius”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjsubhŒ (RW)”…”�”}”(hjsh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´Kµhjoubj)�”}”(hhh]”hþ)�”}”(hŒJTCC offset from the critical temperature where hardware will throttle CPU.”h]”hŒJTCC offset from the critical temperature where hardware will throttle CPU.”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K´hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Kµhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj2h²hh³hÇh´Nubhþ)�”}”(hŒ<:file:`/sys/bus/pci/devices/0000\:00\:04.0/workload_request`”h]”j½)�”}”(hŒ<:file:`/sys/bus/pci/devices/0000\:00\:04.0/workload_request`”h]”hŒ2/sys/bus/pci/devices/0000:00:04.0/workload_request”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K·hj2h²hubjÚ)�”}”(hhh]”(jß)�”}”(hŒÃ``workload_available_types`` (RO) Available workload types. User space can specify one of the workload type it is currently executing via workload_type. For example: idle, bursty, sustained etc. ”h]”(jå)�”}”(hŒ!``workload_available_types`` (RO)”h]”(j½)�”}”(hŒ``workload_available_types``”h]”hŒworkload_available_types”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÔubhŒ (RO)”…”�”}”(hjÔh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´K¼hjÐubj)�”}”(hhh]”hþ)�”}”(hŒ Available workload types. User space can specify one of the workload type it is currently executing via workload_type. For example: idle, bursty, sustained etc.”h]”hŒ Available workload types. User space can specify one of the workload type it is currently executing via workload_type. For example: idle, bursty, sustained etc.”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kºhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´K¼hjÍubjß)�”}”(hŒk``workload_type`` (RW) User space can specify any one of the available workload type using this interface. ”h]”(jå)�”}”(hŒ``workload_type`` (RW)”h]”(j½)�”}”(hŒ``workload_type``”h]”hŒ workload_type”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj ubhŒ (RW)”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KÀhj ubj)�”}”(hhh]”hþ)�”}”(hŒSUser space can specify any one of the available workload type using this interface.”h]”hŒSUser space can specify any one of the available workload type using this interface.”…”�”}”(hj0 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K¿hj- ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KÀhjÍh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj2h²hh³hÇh´Nubhþ)�”}”(hŒ­:file:`/sys/bus/pci/devices/0000\:00\:04.0/ptc_0_control` :file:`/sys/bus/pci/devices/0000\:00\:04.0/ptc_1_control` :file:`/sys/bus/pci/devices/0000\:00\:04.0/ptc_2_control`”h]”(j½)�”}”(hŒ9:file:`/sys/bus/pci/devices/0000\:00\:04.0/ptc_0_control`”h]”hŒ//sys/bus/pci/devices/0000:00:04.0/ptc_0_control”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hjP ubhŒ ”…”�”}”(hjP h²hh³Nh´Nubj½)�”}”(hŒ9:file:`/sys/bus/pci/devices/0000\:00\:04.0/ptc_1_control`”h]”hŒ//sys/bus/pci/devices/0000:00:04.0/ptc_1_control”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hjP ubhŒ ”…”�”}”hjP sbj½)�”}”(hŒ9:file:`/sys/bus/pci/devices/0000\:00\:04.0/ptc_2_control`”h]”hŒ//sys/bus/pci/devices/0000:00:04.0/ptc_2_control”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hjP ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KÂhj2h²hubhþ)�”}”(hŒ3All these controls needs admin privilege to update.”h]”hŒ3All these controls needs admin privilege to update.”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KÆhj2h²hubjÚ)�”}”(hhh]”(jß)�”}”(hŒ§``enable`` (RW) 1 for enable, 0 for disable. Shows the current enable status of platform temperature control feature. User space can enable/disable hardware controls. ”h]”(jå)�”}”(hŒ``enable`` (RW)”h]”(j½)�”}”(hŒ ``enable``”h]”hŒenable”…”�”}”(hj® h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjª ubhŒ (RW)”…”�”}”(hjª h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KËhj¦ ubj)�”}”(hhh]”hþ)�”}”(hŒ–1 for enable, 0 for disable. Shows the current enable status of platform temperature control feature. User space can enable/disable hardware controls.”h]”hŒ–1 for enable, 0 for disable. Shows the current enable status of platform temperature control feature. User space can enable/disable hardware controls.”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KÉhjÆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KËhj£ ubjß)�”}”(hŒ…``temperature_target`` (RW) Update a new temperature target in milli degree celsius for hardware to use for the temperature control. ”h]”(jå)�”}”(hŒ``temperature_target`` (RW)”h]”(j½)�”}”(hŒ``temperature_target``”h]”hŒtemperature_target”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjç ubhŒ (RW)”…”�”}”(hjç h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KÏhjã ubj)�”}”(hhh]”hþ)�”}”(hŒhUpdate a new temperature target in milli degree celsius for hardware to use for the temperature control.”h]”hŒhUpdate a new temperature target in milli degree celsius for hardware to use for the temperature control.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KÎhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjã ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KÏhj£ h²hubjß)�”}”(hXš``thermal_tolerance`` (RW) This attribute ranges from 0 to 7, where 0 represents the most aggressive control to avoid any temperature overshoots, and 7 represents a more graceful approach, favoring performance even at the expense of temperature overshoots. Note: This level may not scale linearly. For example, a value of 3 does not necessarily imply a 50% improvement in performance compared to a value of 0. ”h]”(jå)�”}”(hŒ``thermal_tolerance`` (RW)”h]”(j½)�”}”(hŒ``thermal_tolerance``”h]”hŒthermal_tolerance”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj$ ubhŒ (RW)”…”�”}”(hj$ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´KØhj ubj)�”}”(hhh]”hþ)�”}”(hX~This attribute ranges from 0 to 7, where 0 represents the most aggressive control to avoid any temperature overshoots, and 7 represents a more graceful approach, favoring performance even at the expense of temperature overshoots. Note: This level may not scale linearly. For example, a value of 3 does not necessarily imply a 50% improvement in performance compared to a value of 0.”h]”hX~This attribute ranges from 0 to 7, where 0 represents the most aggressive control to avoid any temperature overshoots, and 7 represents a more graceful approach, favoring performance even at the expense of temperature overshoots. Note: This level may not scale linearly. For example, a value of 3 does not necessarily imply a 50% improvement in performance compared to a value of 0.”…”�”}”(hjC h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KÒhj@ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´KØhj£ h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj2h²hh³hÇh´Nubhþ)�”}”(hŒôGiven that this is platform temperature control, it is expected that a single user-level manager owns and manages the controls. If multiple user-level software applications attempt to write different targets, it can lead to unexpected behavior.”h]”hŒôGiven that this is platform temperature control, it is expected that a single user-level manager owns and manages the controls. If multiple user-level software applications attempt to write different targets, it can lead to unexpected behavior.”…”�”}”(hjc h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KÚhj2h²hubeh}”(h]”Œ+dptf-processor-thermal-pci-driver-interface”ah ]”h"]”Œ+dptf processor thermal pci driver interface”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K‚ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ%DPTF Processor thermal RFIM interface”h]”hŒ%DPTF Processor thermal RFIM interface”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjy h²hh³hÇh´Káubhþ)�”}”(hŒÈRFIM interface allows adjustment of FIVR (Fully Integrated Voltage Regulator), DDR (Double Data Rate) and DLVR (Digital Linear Voltage Regulator) frequencies to avoid RF interference with WiFi and 5G.”h]”hŒÈRFIM interface allows adjustment of FIVR (Fully Integrated Voltage Regulator), DDR (Double Data Rate) and DLVR (Digital Linear Voltage Regulator) frequencies to avoid RF interference with WiFi and 5G.”…”�”}”(hjŠ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kãhjy h²hubhþ)�”}”(hX.Switching voltage regulators (VR) generate radiated EMI or RFI at the fundamental frequency and its harmonics. Some harmonics may interfere with very sensitive wireless receivers such as Wi-Fi and cellular that are integrated into host systems like notebook PCs. One of mitigation methods is requesting SOC integrated VR (IVR) switching frequency to a small % and shift away the switching noise harmonic interference from radio channels. OEM or ODMs can use the driver to control SOC IVR operation within the range where it does not impact IVR performance.”h]”hX.Switching voltage regulators (VR) generate radiated EMI or RFI at the fundamental frequency and its harmonics. Some harmonics may interfere with very sensitive wireless receivers such as Wi-Fi and cellular that are integrated into host systems like notebook PCs. One of mitigation methods is requesting SOC integrated VR (IVR) switching frequency to a small % and shift away the switching noise harmonic interference from radio channels. OEM or ODMs can use the driver to control SOC IVR operation within the range where it does not impact IVR performance.”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kçhjy h²hubhþ)�”}”(hŒˆSome products use DLVR instead of FIVR as switching voltage regulator. In this case attributes of DLVR must be adjusted instead of FIVR.”h]”hŒˆSome products use DLVR instead of FIVR as switching voltage regulator. In this case attributes of DLVR must be adjusted instead of FIVR.”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kðhjy h²hubhþ)�”}”(hXKWhile shifting the frequencies additional clock noise can be introduced, which is compensated by adjusting Spread spectrum percent. This helps to reduce the clock noise to meet regulatory compliance. This spreading % increases bandwidth of signal transmission and hence reduces the effects of interference, noise and signal fading.”h]”hXKWhile shifting the frequencies additional clock noise can be introduced, which is compensated by adjusting Spread spectrum percent. This helps to reduce the clock noise to meet regulatory compliance. This spreading % increases bandwidth of signal transmission and hence reduces the effects of interference, noise and signal fading.”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kóhjy h²hubhþ)�”}”(hX¾DRAM devices of DDR IO interface and their power plane can generate EMI at the data rates. Similar to IVR control mechanism, Intel offers a mechanism by which DDR data rates can be changed if several conditions are met: there is strong RFI interference because of DDR; CPU power management has no other restriction in changing DDR data rates; PC ODMs enable this feature (real time DDR RFI Mitigation referred to as DDR-RFIM) for Wi-Fi from BIOS.”h]”hX¾DRAM devices of DDR IO interface and their power plane can generate EMI at the data rates. Similar to IVR control mechanism, Intel offers a mechanism by which DDR data rates can be changed if several conditions are met: there is strong RFI interference because of DDR; CPU power management has no other restriction in changing DDR data rates; PC ODMs enable this feature (real time DDR RFI Mitigation referred to as DDR-RFIM) for Wi-Fi from BIOS.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kùhjy h²hubhþ)�”}”(hŒFIVR attributes”h]”hŒFIVR attributes”…”�”}”(hjÐ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mhjy h²hubhþ)�”}”(hŒ1:file:`/sys/bus/pci/devices/0000\:00\:04.0/fivr/`”h]”j½)�”}”(hŒ1:file:`/sys/bus/pci/devices/0000\:00\:04.0/fivr/`”h]”hŒ'/sys/bus/pci/devices/0000:00:04.0/fivr/”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hjÞ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mhjy h²hubjÚ)�”}”(hhh]”(jß)�”}”(hŒ‹``vco_ref_code_lo`` (RW) The VCO reference code is an 11-bit field and controls the FIVR switching frequency. This is the 3-bit LSB field. ”h]”(jå)�”}”(hŒ``vco_ref_code_lo`` (RW)”h]”(j½)�”}”(hŒ``vco_ref_code_lo``”h]”hŒvco_ref_code_lo”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj ubhŒ (RW)”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´Mhjü ubj)�”}”(hhh]”hþ)�”}”(hŒqThe VCO reference code is an 11-bit field and controls the FIVR switching frequency. This is the 3-bit LSB field.”h]”hŒqThe VCO reference code is an 11-bit field and controls the FIVR switching frequency. This is the 3-bit LSB field.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjü ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Mhjù ubjß)�”}”(hŒ‹``vco_ref_code_hi`` (RW) The VCO reference code is an 11-bit field and controls the FIVR switching frequency. This is the 8-bit MSB field. ”h]”(jå)�”}”(hŒ``vco_ref_code_hi`` (RW)”h]”(j½)�”}”(hŒ``vco_ref_code_hi``”h]”hŒvco_ref_code_hi”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj= ubhŒ (RW)”…”�”}”(hj= h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M hj9 ubj)�”}”(hhh]”hþ)�”}”(hŒqThe VCO reference code is an 11-bit field and controls the FIVR switching frequency. This is the 8-bit MSB field.”h]”hŒqThe VCO reference code is an 11-bit field and controls the FIVR switching frequency. This is the 8-bit MSB field.”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M hjY ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M hjù h²hubjß)�”}”(hŒN``spread_spectrum_pct`` (RW) Set the FIVR spread spectrum clocking percentage ”h]”(jå)�”}”(hŒ``spread_spectrum_pct`` (RW)”h]”(j½)�”}”(hŒ``spread_spectrum_pct``”h]”hŒspread_spectrum_pct”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjz ubhŒ (RW)”…”�”}”(hjz h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´Mhjv ubj)�”}”(hhh]”hþ)�”}”(hŒ0Set the FIVR spread spectrum clocking percentage”h]”hŒ0Set the FIVR spread spectrum clocking percentage”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mhj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjv ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Mhjù h²hubjß)�”}”(hŒ```spread_spectrum_clk_enable`` (RW) Enable/disable of the FIVR spread spectrum clocking feature ”h]”(jå)�”}”(hŒ#``spread_spectrum_clk_enable`` (RW)”h]”(j½)�”}”(hŒ``spread_spectrum_clk_enable``”h]”hŒspread_spectrum_clk_enable”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj· ubhŒ (RW)”…”�”}”(hj· h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´Mhj³ ubj)�”}”(hhh]”hþ)�”}”(hŒ;Enable/disable of the FIVR spread spectrum clocking feature”h]”hŒ;Enable/disable of the FIVR spread spectrum clocking feature”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MhjÓ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj³ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Mhjù h²hubjß)�”}”(hŒx``rfi_vco_ref_code`` (RW) This field is a read only status register which reflects the current FIVR switching frequency ”h]”(jå)�”}”(hŒ``rfi_vco_ref_code`` (RW)”h]”(j½)�”}”(hŒ``rfi_vco_ref_code``”h]”hŒrfi_vco_ref_code”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjô ubhŒ (RW)”…”�”}”(hjô h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´Mhjð ubj)�”}”(hhh]”hþ)�”}”(hŒ]This field is a read only status register which reflects the current FIVR switching frequency”h]”hŒ]This field is a read only status register which reflects the current FIVR switching frequency”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjð ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Mhjù h²hubjß)�”}”(hŒJ``fivr_fffc_rev`` (RW) This field indicated the revision of the FIVR HW. ”h]”(jå)�”}”(hŒ``fivr_fffc_rev`` (RW)”h]”(j½)�”}”(hŒ``fivr_fffc_rev``”h]”hŒ fivr_fffc_rev”…”�”}”(hj5 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj1 ubhŒ (RW)”…”�”}”(hj1 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´Mhj- ubj)�”}”(hhh]”hþ)�”}”(hŒ1This field indicated the revision of the FIVR HW.”h]”hŒ1This field indicated the revision of the FIVR HW.”…”�”}”(hjP h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MhjM ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj- ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Mhjù h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjy h²hh³hÇh´Nubhþ)�”}”(hŒDVFS attributes”h]”hŒDVFS attributes”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mhjy h²hubhþ)�”}”(hŒ1:file:`/sys/bus/pci/devices/0000\:00\:04.0/dvfs/`”h]”j½)�”}”(hŒ1:file:`/sys/bus/pci/devices/0000\:00\:04.0/dvfs/`”h]”hŒ'/sys/bus/pci/devices/0000:00:04.0/dvfs/”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hj~ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mhjy h²hubjÚ)�”}”(hhh]”(jß)�”}”(hŒ‹``rfi_restriction_run_busy`` (RW) Request the restriction of specific DDR data rate and set this value 1. Self reset to 0 after operation. ”h]”(jå)�”}”(hŒ!``rfi_restriction_run_busy`` (RW)”h]”(j½)�”}”(hŒ``rfi_restriction_run_busy``”h]”hŒrfi_restriction_run_busy”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj  ubhŒ (RW)”…”�”}”(hj  h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M"hjœ ubj)�”}”(hhh]”hþ)�”}”(hŒhRequest the restriction of specific DDR data rate and set this value 1. Self reset to 0 after operation.”h]”hŒhRequest the restriction of specific DDR data rate and set this value 1. Self reset to 0 after operation.”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M!hj¼ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M"hj™ ubjß)�”}”(hŒ†``rfi_restriction_err_code`` (RW) 0 :Request is accepted, 1:Feature disabled, 2: the request restricts more points than it is allowed ”h]”(jå)�”}”(hŒ!``rfi_restriction_err_code`` (RW)”h]”(j½)�”}”(hŒ``rfi_restriction_err_code``”h]”hŒrfi_restriction_err_code”…”�”}”(hjá h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÝ ubhŒ (RW)”…”�”}”(hjÝ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M&hjÙ ubj)�”}”(hhh]”hþ)�”}”(hŒc0 :Request is accepted, 1:Feature disabled, 2: the request restricts more points than it is allowed”h]”hŒc0 :Request is accepted, 1:Feature disabled, 2: the request restricts more points than it is allowed”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M%hjù ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M&hj™ h²hubjß)�”}”(hŒb``rfi_restriction_data_rate_Delta`` (RW) Restricted DDR data rate for RFI protection: Lower Limit ”h]”(jå)�”}”(hŒ(``rfi_restriction_data_rate_Delta`` (RW)”h]”(j½)�”}”(hŒ#``rfi_restriction_data_rate_Delta``”h]”hŒrfi_restriction_data_rate_Delta”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj ubhŒ (RW)”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M)hj ubj)�”}”(hhh]”hþ)�”}”(hŒ8Restricted DDR data rate for RFI protection: Lower Limit”h]”hŒ8Restricted DDR data rate for RFI protection: Lower Limit”…”�”}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M)hj6 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M)hj™ h²hubjß)�”}”(hŒa``rfi_restriction_data_rate_Base`` (RW) Restricted DDR data rate for RFI protection: Upper Limit ”h]”(jå)�”}”(hŒ'``rfi_restriction_data_rate_Base`` (RW)”h]”(j½)�”}”(hŒ"``rfi_restriction_data_rate_Base``”h]”hŒrfi_restriction_data_rate_Base”…”�”}”(hj[ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjW ubhŒ (RW)”…”�”}”(hjW h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M,hjS ubj)�”}”(hhh]”hþ)�”}”(hŒ8Restricted DDR data rate for RFI protection: Upper Limit”h]”hŒ8Restricted DDR data rate for RFI protection: Upper Limit”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M,hjs ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjS ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M,hj™ h²hubjß)�”}”(hŒA``ddr_data_rate_point_0`` (RO) DDR data rate selection 1st point ”h]”(jå)�”}”(hŒ``ddr_data_rate_point_0`` (RO)”h]”(j½)�”}”(hŒ``ddr_data_rate_point_0``”h]”hŒddr_data_rate_point_0”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj” ubhŒ (RO)”…”�”}”(hj” h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M/hj� ubj)�”}”(hhh]”hþ)�”}”(hŒ!DDR data rate selection 1st point”h]”hŒ!DDR data rate selection 1st point”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M/hj° ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M/hj™ h²hubjß)�”}”(hŒA``ddr_data_rate_point_1`` (RO) DDR data rate selection 2nd point ”h]”(jå)�”}”(hŒ``ddr_data_rate_point_1`` (RO)”h]”(j½)�”}”(hŒ``ddr_data_rate_point_1``”h]”hŒddr_data_rate_point_1”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÑ ubhŒ (RO)”…”�”}”(hjÑ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M2hjÍ ubj)�”}”(hhh]”hþ)�”}”(hŒ!DDR data rate selection 2nd point”h]”hŒ!DDR data rate selection 2nd point”…”�”}”(hjð h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M2hjí ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M2hj™ h²hubjß)�”}”(hŒA``ddr_data_rate_point_2`` (RO) DDR data rate selection 3rd point ”h]”(jå)�”}”(hŒ``ddr_data_rate_point_2`` (RO)”h]”(j½)�”}”(hŒ``ddr_data_rate_point_2``”h]”hŒddr_data_rate_point_2”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjubhŒ (RO)”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M5hj ubj)�”}”(hhh]”hþ)�”}”(hŒ!DDR data rate selection 3rd point”h]”hŒ!DDR data rate selection 3rd point”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M5hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M5hj™ h²hubjß)�”}”(hŒA``ddr_data_rate_point_3`` (RO) DDR data rate selection 4th point ”h]”(jå)�”}”(hŒ``ddr_data_rate_point_3`` (RO)”h]”(j½)�”}”(hŒ``ddr_data_rate_point_3``”h]”hŒddr_data_rate_point_3”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjKubhŒ (RO)”…”�”}”(hjKh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M8hjGubj)�”}”(hhh]”hþ)�”}”(hŒ!DDR data rate selection 4th point”h]”hŒ!DDR data rate selection 4th point”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M8hjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M8hj™ h²hubjß)�”}”(hŒ5``rfi_disable (RW)`` Disable DDR rate change feature ”h]”(jå)�”}”(hŒ``rfi_disable (RW)``”h]”j½)�”}”(hjŠh]”hŒrfi_disable (RW)”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M;hj„ubj)�”}”(hhh]”hþ)�”}”(hŒDisable DDR rate change feature”h]”hŒDisable DDR rate change feature”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M;hjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M;hj™ h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjy h²hh³hÇh´Nubhþ)�”}”(hŒDLVR attributes”h]”hŒDLVR attributes”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M=hjy h²hubhþ)�”}”(hŒ1:file:`/sys/bus/pci/devices/0000\:00\:04.0/dlvr/`”h]”j½)�”}”(hŒ1:file:`/sys/bus/pci/devices/0000\:00\:04.0/dlvr/`”h]”hŒ'/sys/bus/pci/devices/0000:00:04.0/dlvr/”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1j¼hjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M?hjy h²hubjÚ)�”}”(hhh]”(jß)�”}”(hŒ3``dlvr_hardware_rev`` (RO) DLVR hardware revision. ”h]”(jå)�”}”(hŒ``dlvr_hardware_rev`` (RO)”h]”(j½)�”}”(hŒ``dlvr_hardware_rev``”h]”hŒdlvr_hardware_rev”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjòubhŒ (RO)”…”�”}”(hjòh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´MBhjîubj)�”}”(hhh]”hþ)�”}”(hŒDLVR hardware revision.”h]”hŒDLVR hardware revision.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MBhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´MBhjëubjß)�”}”(hŒ:``dlvr_freq_mhz`` (RO) Current DLVR PLL frequency in MHz. ”h]”(jå)�”}”(hŒ``dlvr_freq_mhz`` (RO)”h]”(j½)�”}”(hŒ``dlvr_freq_mhz``”h]”hŒ dlvr_freq_mhz”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj/ubhŒ (RO)”…”�”}”(hj/h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´MEhj+ubj)�”}”(hhh]”hþ)�”}”(hŒ"Current DLVR PLL frequency in MHz.”h]”hŒ"Current DLVR PLL frequency in MHz.”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MEhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´MEhjëh²hubjß)�”}”(hŒ¡``dlvr_freq_select`` (RW) Sets DLVR PLL clock frequency. Once set, and enabled via dlvr_rfim_enable, the dlvr_freq_mhz will show the current DLVR PLL frequency. ”h]”(jå)�”}”(hŒ``dlvr_freq_select`` (RW)”h]”(j½)�”}”(hŒ``dlvr_freq_select``”h]”hŒdlvr_freq_select”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjlubhŒ (RW)”…”�”}”(hjlh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´MJhjhubj)�”}”(hhh]”hþ)�”}”(hŒ†Sets DLVR PLL clock frequency. Once set, and enabled via dlvr_rfim_enable, the dlvr_freq_mhz will show the current DLVR PLL frequency.”h]”hŒ†Sets DLVR PLL clock frequency. Once set, and enabled via dlvr_rfim_enable, the dlvr_freq_mhz will show the current DLVR PLL frequency.”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MHhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´MJhjëh²hubjß)�”}”(hŒC``dlvr_pll_busy`` (RO) PLL can't accept frequency change when set. ”h]”(jå)�”}”(hŒ``dlvr_pll_busy`` (RO)”h]”(j½)�”}”(hŒ``dlvr_pll_busy``”h]”hŒ dlvr_pll_busy”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj©ubhŒ (RO)”…”�”}”(hj©h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´MMhj¥ubj)�”}”(hhh]”hþ)�”}”(hŒ+PLL can't accept frequency change when set.”h]”hŒ-PLL can’t accept frequency change when set.”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MMhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´MMhjëh²hubjß)�”}”(hŒ[``dlvr_rfim_enable`` (RW) 0: Disable RF frequency hopping, 1: Enable RF frequency hopping. ”h]”(jå)�”}”(hŒ``dlvr_rfim_enable`` (RW)”h]”(j½)�”}”(hŒ``dlvr_rfim_enable``”h]”hŒdlvr_rfim_enable”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjæubhŒ (RW)”…”�”}”(hjæh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´MPhjâubj)�”}”(hhh]”hþ)�”}”(hŒ@0: Disable RF frequency hopping, 1: Enable RF frequency hopping.”h]”hŒ@0: Disable RF frequency hopping, 1: Enable RF frequency hopping.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MPhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´MPhjëh²hubjß)�”}”(hŒK``dlvr_spread_spectrum_pct`` (RW) Sets DLVR spread spectrum percent value. ”h]”(jå)�”}”(hŒ!``dlvr_spread_spectrum_pct`` (RW)”h]”(j½)�”}”(hŒ``dlvr_spread_spectrum_pct``”h]”hŒdlvr_spread_spectrum_pct”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj#ubhŒ (RW)”…”�”}”(hj#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´MShjubj)�”}”(hhh]”hþ)�”}”(hŒ(Sets DLVR spread spectrum percent value.”h]”hŒ(Sets DLVR spread spectrum percent value.”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MShj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´MShjëh²hubjß)�”}”(hŒ€``dlvr_control_mode`` (RW) Specifies how frequencies are spread using spread spectrum. 0: Down spread, 1: Spread in the Center. ”h]”(jå)�”}”(hŒ``dlvr_control_mode`` (RW)”h]”(j½)�”}”(hŒ``dlvr_control_mode``”h]”hŒdlvr_control_mode”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj`ubhŒ (RW)”…”�”}”(hj`h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´MXhj\ubj)�”}”(hhh]”hþ)�”}”(hŒdSpecifies how frequencies are spread using spread spectrum. 0: Down spread, 1: Spread in the Center.”h]”hŒdSpecifies how frequencies are spread using spread spectrum. 0: Down spread, 1: Spread in the Center.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MVhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´MXhjëh²hubjß)�”}”(hŒ9``dlvr_control_lock`` (RW) 1: future writes are ignored. ”h]”(jå)�”}”(hŒ``dlvr_control_lock`` (RW)”h]”(j½)�”}”(hŒ``dlvr_control_lock``”h]”hŒdlvr_control_lock”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj�ubhŒ (RW)”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M[hj™ubj)�”}”(hhh]”hþ)�”}”(hŒ1: future writes are ignored.”h]”hŒ1: future writes are ignored.”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M[hj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M[hjëh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjy h²hh³hÇh´Nubeh}”(h]”Œ%dptf-processor-thermal-rfim-interface”ah ]”h"]”Œ%dptf processor thermal rfim interface”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KáubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ'DPTF Power supply and Battery Interface”h]”hŒ'DPTF Power supply and Battery Interface”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjäh²hh³hÇh´M^ubhþ)�”}”(hŒ6Refer to Documentation/ABI/testing/sysfs-platform-dptf”h]”hŒ6Refer to Documentation/ABI/testing/sysfs-platform-dptf”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M`hjäh²hubeh}”(h]”Œ'dptf-power-supply-and-battery-interface”ah ]”h"]”Œ'dptf power supply and battery interface”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´M^ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDPTF Fan Control”h]”hŒDPTF Fan Control”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj h²hh³hÇh´Mcubhþ)�”}”(hŒBRefer to Documentation/admin-guide/acpi/fan_performance_states.rst”h]”hŒBRefer to Documentation/admin-guide/acpi/fan_performance_states.rst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mehj h²hubeh}”(h]”Œdptf-fan-control”ah ]”h"]”Œdptf fan control”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´McubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒWorkload Type Hints”h]”hŒWorkload Type Hints”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj2h²hh³hÇh´Mhubhþ)�”}”(hXThe firmware in Meteor Lake processor generation is capable of identifying workload type and passing hints regarding it to the OS. A special sysfs interface is provided to allow user space to obtain workload type hints from the firmware and control the rate at which they are provided.”h]”hXThe firmware in Meteor Lake processor generation is capable of identifying workload type and passing hints regarding it to the OS. A special sysfs interface is provided to allow user space to obtain workload type hints from the firmware and control the rate at which they are provided.”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mjhj2h²hubhþ)�”}”(hŒ—User space can poll attribute "workload_type_index" for the current hint or can receive a notification whenever the value of this attribute is updated.”h]”hŒ›User space can poll attribute “workload_type_indexâ€� for the current hint or can receive a notification whenever the value of this attribute is updated.”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mohj2h²hubhþ)�”}”(hŒðfile:`/sys/bus/pci/devices/0000:00:04.0/workload_hint/` Segment 0, bus 0, device 4, function 0 is reserved for the processor thermal device on all Intel client processors. So, the above path doesn't change based on the processor generation.”h]”(hŒfile:”…”�”}”(hj_h²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ2`/sys/bus/pci/devices/0000:00:04.0/workload_hint/`”h]”hŒ0/sys/bus/pci/devices/0000:00:04.0/workload_hint/”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj_ubhŒ» Segment 0, bus 0, device 4, function 0 is reserved for the processor thermal device on all Intel client processors. So, the above path doesn’t change based on the processor generation.”…”�”}”(hj_h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mrhj2h²hubjÚ)�”}”(hhh]”(jß)�”}”(hŒY``workload_hint_enable`` (RW) Enable firmware to send workload type hints to user space. ”h]”(jå)�”}”(hŒ``workload_hint_enable`` (RW)”h]”(j½)�”}”(hŒ``workload_hint_enable``”h]”hŒworkload_hint_enable”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjˆubhŒ (RW)”…”�”}”(hjˆh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´Mxhj„ubj)�”}”(hhh]”hþ)�”}”(hŒ:Enable firmware to send workload type hints to user space.”h]”hŒ:Enable firmware to send workload type hints to user space.”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mxhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Mxhj�ubjß)�”}”(hŒc``workload_slow_hint_enable`` (RW) Enable firmware to send slow workload type hints to user space. ”h]”(jå)�”}”(hŒ"``workload_slow_hint_enable`` (RW)”h]”(j½)�”}”(hŒ``workload_slow_hint_enable``”h]”hŒworkload_slow_hint_enable”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÅubhŒ (RW)”…”�”}”(hjÅh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M{hjÁubj)�”}”(hhh]”hþ)�”}”(hŒ?Enable firmware to send slow workload type hints to user space.”h]”hŒ?Enable firmware to send slow workload type hints to user space.”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M{hjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M{hj�h²hubjß)�”}”(hXë``notification_delay_ms`` (RW) Minimum delay in milliseconds before firmware will notify OS. This is for the rate control of notifications. This delay is between changing the workload type prediction in the firmware and notifying the OS about the change. The default delay is 1024 ms. The delay of 0 is invalid. The delay is rounded up to the nearest power of 2 to simplify firmware programming of the delay value. The read of notification_delay_ms attribute shows the effective value used. ”•â3h]”(jå)�”}”(hŒ``notification_delay_ms`` (RW)”h]”(j½)�”}”(hŒ``notification_delay_ms``”h]”hŒnotification_delay_ms”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjubhŒ (RW)”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M„hjþubj)�”}”(hhh]”hþ)�”}”(hXËMinimum delay in milliseconds before firmware will notify OS. This is for the rate control of notifications. This delay is between changing the workload type prediction in the firmware and notifying the OS about the change. The default delay is 1024 ms. The delay of 0 is invalid. The delay is rounded up to the nearest power of 2 to simplify firmware programming of the delay value. The read of notification_delay_ms attribute shows the effective value used.”h]”hXËMinimum delay in milliseconds before firmware will notify OS. This is for the rate control of notifications. This delay is between changing the workload type prediction in the firmware and notifying the OS about the change. The default delay is 1024 ms. The delay of 0 is invalid. The delay is rounded up to the nearest power of 2 to simplify firmware programming of the delay value. The read of notification_delay_ms attribute shows the effective value used.”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M~hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M„hj�h²hubjß)�”}”(hXØ``workload_type_index`` (RO) Predicted workload type index. User space can get notification of change via existing sysfs attribute change notification mechanism. The supported index values and their meaning for the Meteor Lake processor generation are as follows: 0 - Idle: System performs no tasks, power and idle residency are consistently low for long periods of time. 1 – Battery Life: Power is relatively low, but the processor may still be actively performing a task, such as video playback for a long period of time. 2 – Sustained: Power level that is relatively high for a long period of time, with very few to no periods of idleness, which will eventually exhaust RAPL Power Limit 1 and 2. 3 – Bursty: Consumes a relatively constant average amount of power, but periods of relative idleness are interrupted by bursts of activity. The bursts are relatively short and the periods of relative idleness between them typically prevent RAPL Power Limit 1 from being exhausted. 4 – Unknown: Can't classify. On processors starting from Panther Lake additional hints are provided. The hardware analyzes workload residencies over an extended period to determine whether the workload classification tends toward idle/battery life states or sustained/performance states. Based on this long-term analysis, it classifies: Power Classification: If the workload exhibits more idle or battery life residencies, it is classified as "power". Performance Classification: If the workload exhibits more sustained or performance residencies, it is classified as "performance". This approach enables applications to ignore short-term workload fluctuations and instead respond to longer-term power vs. performance trends. Residency thresholds for this classification are CPU generation-specific. Classification is reported via bit 4 of the workload_type_index: Bit 4 = 1: Power classification Bit 4 = 0: Performance classification”h]”(jå)�”}”(hŒ``workload_type_index`` (RO)”h]”(j½)�”}”(hŒ``workload_type_index``”h]”hŒworkload_type_index”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj?ubhŒ (RO)”…”�”}”(hj?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M´hj;ubj)�”}”(hhh]”(hþ)�”}”(hŒ„Predicted workload type index. User space can get notification of change via existing sysfs attribute change notification mechanism.”h]”hŒ„Predicted workload type index. User space can get notification of change via existing sysfs attribute change notification mechanism.”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M‡hj[ubhþ)�”}”(hŒeThe supported index values and their meaning for the Meteor Lake processor generation are as follows:”h]”hŒeThe supported index values and their meaning for the Meteor Lake processor generation are as follows:”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MŠhj[ubjÚ)�”}”(hhh]”(jß)�”}”(hŒm0 - Idle: System performs no tasks, power and idle residency are consistently low for long periods of time. ”h]”(jå)�”}”(hŒA0 - Idle: System performs no tasks, power and idle residency are”h]”hŒA0 - Idle: System performs no tasks, power and idle residency are”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´MŽhj}ubj)�”}”(hhh]”hþ)�”}”(hŒ*consistently low for long periods of time.”h]”hŒ*consistently low for long periods of time.”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´MŽhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´MŽhjzubjß)�”}”(hŒš1 – Battery Life: Power is relatively low, but the processor may still be actively performing a task, such as video playback for a long period of time. ”h]”(jå)�”}”(hŒB1 – Battery Life: Power is relatively low, but the processor may”h]”hŒB1 – Battery Life: Power is relatively low, but the processor may”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M’hj¬ubj)�”}”(hhh]”hþ)�”}”(hŒVstill be actively performing a task, such as video playback for a long period of time.”h]”hŒVstill be actively performing a task, such as video playback for a long period of time.”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M‘hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M’hjzubjß)�”}”(hŒ±2 – Sustained: Power level that is relatively high for a long period of time, with very few to no periods of idleness, which will eventually exhaust RAPL Power Limit 1 and 2. ”h]”(jå)�”}”(hŒF2 – Sustained: Power level that is relatively high for a long period”h]”hŒF2 – Sustained: Power level that is relatively high for a long period”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´M–hjÛubj)�”}”(hhh]”hþ)�”}”(hŒiof time, with very few to no periods of idleness, which will eventually exhaust RAPL Power Limit 1 and 2.”h]”hŒiof time, with very few to no periods of idleness, which will eventually exhaust RAPL Power Limit 1 and 2.”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M•hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M–hjzubjß)�”}”(hX3 – Bursty: Consumes a relatively constant average amount of power, but periods of relative idleness are interrupted by bursts of activity. The bursts are relatively short and the periods of relative idleness between them typically prevent RAPL Power Limit 1 from being exhausted. ”h]”(jå)�”}”(hŒI3 – Bursty: Consumes a relatively constant average amount of power, but”h]”hŒI3 – Bursty: Consumes a relatively constant average amount of power, but”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jäh³hÇh´Mœhj ubj)�”}”(hhh]”hþ)�”}”(hŒÐperiods of relative idleness are interrupted by bursts of activity. The bursts are relatively short and the periods of relative idleness between them typically prevent RAPL Power Limit 1 from being exhausted.”h]”hŒÐperiods of relative idleness are interrupted by bursts of activity. The bursts are relatively short and the periods of relative idleness between them typically prevent RAPL Power Limit 1 from being exhausted.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M™hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´Mœhjzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj[ubhþ)�”}”(hŒ4 – Unknown: Can't classify.”h]”hŒ 4 – Unknown: Can’t classify.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mžhj[ubhþ)�”}”(hX3On processors starting from Panther Lake additional hints are provided. The hardware analyzes workload residencies over an extended period to determine whether the workload classification tends toward idle/battery life states or sustained/performance states. Based on this long-term analysis, it classifies:”h]”hX3On processors starting from Panther Lake additional hints are provided. The hardware analyzes workload residencies over an extended period to determine whether the workload classification tends toward idle/battery life states or sustained/performance states. Based on this long-term analysis, it classifies:”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M hj[ubhþ)�”}”(hŒrPower Classification: If the workload exhibits more idle or battery life residencies, it is classified as "power".”h]”hŒvPower Classification: If the workload exhibits more idle or battery life residencies, it is classified as “powerâ€�.”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M¦hj[ubhþ)�”}”(hŒ‚Performance Classification: If the workload exhibits more sustained or performance residencies, it is classified as "performance".”h]”hŒ†Performance Classification: If the workload exhibits more sustained or performance residencies, it is classified as “performanceâ€�.”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M©hj[ubhþ)�”}”(hŒŽThis approach enables applications to ignore short-term workload fluctuations and instead respond to longer-term power vs. performance trends.”h]”hŒŽThis approach enables applications to ignore short-term workload fluctuations and instead respond to longer-term power vs. performance trends.”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M¬hj[ubhþ)�”}”(hŒŠResidency thresholds for this classification are CPU generation-specific. Classification is reported via bit 4 of the workload_type_index:”h]”hŒŠResidency thresholds for this classification are CPU generation-specific. Classification is reported via bit 4 of the workload_type_index:”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M°hj[ubhþ)�”}”(hŒBit 4 = 1: Power classification”h]”hŒBit 4 = 1: Power classification”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´M³hj[ubhþ)�”}”(hŒ%Bit 4 = 0: Performance classification”h]”hŒ%Bit 4 = 0: Performance classification”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Mµhj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÞh³hÇh´M´hj�h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj2h²hh³hÇh´Nubeh}”(h]”Œworkload-type-hints”ah ]”h"]”Œworkload type hints”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Mhubeh}”(h]”Œ>intel-r-dynamic-platform-and-thermal-framework-sysfs-interface”ah ]”h"]”Œ?intel(r) dynamic platform and thermal framework sysfs interface”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jôŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jÎjËj¤j¡j2j/jájÞjjj/j,jv js jájÞjjj/j,jÆjÃuŒ nametypes”}”(jΉj¤‰j2‰já‰j‰j/‰jv ‰já‰j‰j/‰jƉuh}”(jËhÊj¡jdj/j§jÞj5jjäj,j js j2jÞjy jjäj,j jÃj2uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.