MOON
Server: Apache
System: Linux s5.yayogua.com.py 6.12.0-124.55.3.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:54:02 EDT 2026 x86_64
User: sanbercountryclu (1012)
PHP: 8.2.33
Disabled: NONE
Upload Files
File: //lib/python3.12/site-packages/tuned/plugins/__pycache__/plugin_video.cpython-312.pyc
�

�]�i����ddlmZddl�ddlZddlmZddlZddlZddl	Z	ejj�ZGd�dej�Zy)�)�base)�*�N)�commandsc����eZdZdZ�fd�Zd�Zd�Zed��Zd�Z	d�Z
d�Zdd	�Ze
d
d��d
��Zed
�dd��Ze
dd��d��Zed�dd��Z�xZS)�VideoPluginaf
	Sets various power saving features on video cards.
	Radeon cards are supported.
	The powersave level can be specified
	by using the [option]`radeon_powersave` option. Supported values are:

	* `default`
	* `auto`
	* `low`
	* `mid`
	* `high`
	* `dynpm`
	* `dpm-battery`
	* `dpm-balanced`
	* `dpm-perfomance`

	For additional detail, see
	link:https://www.x.org/wiki/RadeonFeature/#kmspowermanagementoptions[KMS Power Management Options].

	NOTE: This plug-in is experimental and the option might change in future releases.

	.Setting powersave level for the Radeon video card to high
	====
	----
	[video]
	radeon_powersave=high
	----
	====

	Mobile hardware with amdgpu driven eDP panels can be configured
	with the [option]`panel_power_savings` option.
	This accepts a value range from 0 to 4, where 4 is the highest power savings
	but will trade off color accuracy.
	c�,��tt|�
|i|��y�N)�superr�__init__)�self�args�kwargs�	__class__s   ��?/usr/lib/python3.12/site-packages/tuned/plugins/plugin_video.pyrzVideoPlugin.__init__/s�����T�#�T�4�V�4�c��d|_t�|_t�|_|jjd�j
d�D]l}|j|j�}|D]J}tjj||�s�&|jj|j��L�nt�|_y)NT�drmzcard*-*)�_devices_supported�set�
_free_devices�_assigned_devices�_hardware_inventory�get_devices�match_sys_name�_files�sys_name�os�path�exists�addr�_cmd)r
�device�attrs�attrs    r�
_init_deviceszVideoPlugin._init_devices2s��� �$���u�$���5�$���(�(�4�4�U�;�J�J�9�U�f��;�;�v���'�5��t�	�w�w�~�~�e�D�k�"�	�����F�O�O�,��V�
�j�$�)rc�`�|D�cgc]}|jjd|��� c}Scc}w)Nr)r�
get_device)r
�devices�xs   r�_get_device_objectszVideoPlugin._get_device_objects?s-��AH�	I��A�$�
"�
"�
-�
-�e�Q�
7��	I�I��	Is�#+c��ddd�S)N)�radeon_powersave�panel_power_savings�)r
s r�_get_config_optionszVideoPlugin._get_config_optionsBs����
�rc� �d|_d|_y)NFT)�_has_dynamic_tuning�_has_static_tuning�r
�instances  r�_instance_initzVideoPlugin._instance_initIs��!&�(�� $�(�rc��yr
r/r4s  r�_instance_cleanupzVideoPlugin._instance_cleanupMs��rc�(�d|zd|zd|zd|zd�S)Nz%/sys/class/drm/%s/device/power_methodz&/sys/class/drm/%s/device/power_profilez(/sys/class/drm/%s/device/power_dpm_statez,/sys/class/drm/%s/amdgpu/panel_power_savings)�method�profile�	dpm_stater.r/)r
r#s  rrzVideoPlugin._filesPs,��5��>�6��?�:�V�C�H�6�Q�	
�rc�z�tjj|j|�d�syt	|j||��}||k(rtjd|�d|���|Stj|�d|���|s.|jj|j|�d|�r|Sy)zTApply the target value to the panel_power_savings file if it doesn't already have itr.Nzpanel_power_savings for z	 already z panel_power_savings -> )
rrr r�int�_get_panel_power_savings�log�infor"�
write_to_file)r
r#�targetr5�sim�currents      r�apply_panel_power_saving_targetz+VideoPlugin.apply_panel_power_saving_targetXs���
��������F�+�,A�B�	C�
�
��-�-�f�h�?�@�'�����8�8�/5�v�>���=��(�(�V�V�<�=��D�I�I�#�#�D�K�K��$7�8M�$N�PV�W�
�=�	
rr-T)�
per_devicec��|j|�}ttjdd|��j	�}t
jj|d�s|stjd|z�y|D�]S}|dvrq|r�|jj|dd|rtjgnd��s�@|jj|d||rtjgnd��s�u|cS|d	k(r:|r��|jj|dd	|rtjgnd��s��y	|d
vr�|r��|td�d}	|jj|dd|rtjgnd��s��|jj|d
|	|rtjgnd��s��9|cS|stjd�yy)Nz#(\s*:\s*)|(\s+)|(\s*;\s*)|(\s*,\s*)� r:�)radeon_powersave is not supported on '%s')�default�auto�low�mid�highr;F��no_error�dynpm)zdpm-batteryzdpm-balancedzdpm-performance�dpm-�dpmr<z$Invalid option for radeon_powersave.)r�str�re�sub�splitrrr r@�debugr"rB�errno�ENOENT�len�warning)
r
�valuer#r5rD�remove�	sys_files�va�v�states
          r�_set_radeon_powersavez!VideoPlugin._set_radeon_powersavems����k�k�&�!�)�
�2�6�6�8�#�u�E�F�L�L�N�"�	�����	�(�+�	,�

��I�I�9�F�B�C��
�a��4�4��	
���	 �	 ��8�!4�i�#)�%�,�,��u�
!�
6�
�i�i���i�	�2�A�$*�5�<�<�.���7���	�W���	
���	 �	 ��8�!4�g�#)�%�,�,��u�
!�
6��	�
?�?��
�s�6�{�|�_�U�	
���	 �	 ��8�!4�e�#)�%�,�,��u�
!�
6�
�i�i���i��4�e�$*�5�<�<�.���7�����[�[�7�8��3�4
rc���|j|�}tjj|d�stjd|z�y|jj|d|��j�}|dk(r,|jj|d�j�S|dk(r|S|dk(r/d|jj|d�j�zSy)	Nr:rJrPr;rRrTrSr<)	rrrr r@rYr"�	read_file�strip)r
r#r5�ignore_missingr`r:s      r�_get_radeon_powersavez!VideoPlugin._get_radeon_powersave�s����k�k�&�!�)�	�����	�(�+�	,��9�9�
8�6�
A�B�
��9�9���y��2�^��L�R�R�T�&��y��
�)�)�
�
�i�	�2�
3�
9�
9�
;�;�
���
�=�
���
�4�9�9�&�&�y��'=�>�D�D�F�
F�F�
rr.c���	t|d�}|t	dd�vr|j||||�Stjd|z�y#t$rtjd|z�YywxYw)z!Set the panel_power_savings value�
z(Invalid value %s for panel_power_savingsNr�)r>�
ValueErrorr@r]�rangerF)r
r^r#r5rDr_s      r�_set_panel_power_savingsz$VideoPlugin._set_panel_power_savings�st����u�b�>�5��e�A�q�k��
�
.�
.�v�u�h��
L�L��;�;�9�E�A�B�	
��
���;�;�9�E�A�B�
��s�A	�	!A-�,A-c��tjj|j|�d�stjd|z�y|j|�d}|jj||��j�S)z)Get the current panel_power_savings valuer.z,panel_power_savings is not supported on '%s'NrP)	rrr rr@rYr"rfrg)r
r#r5rh�fnames     rr?z$VideoPlugin._get_panel_power_savings�so��
��������F�+�,A�B�	C��9�9�
;�f�
D�E�
�
�+�+�f�
�3�
4�%�	
���	�	�U�^�	�	<�	B�	B�	D�Dr)F)�__name__�
__module__�__qualname__�__doc__rr&r+�classmethodr0r6r8rrF�command_setrd�command_getriror?�
__classcell__)rs@rrrs����!�F5��J�����%����*� �T�2�!�3�!�F� �!�
�"�
��#��5��6���#�$�E�%�Err)�r�
decorators�
tuned.logs�tuned�tuned.utils.commandsrrrZrV�logs�getr@�Pluginrr/rr�<module>r�s>�����)�	��	��j�j�n�n���kE�$�+�+�kEr