PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  \c@szddlmZddlTddlZddlmZddlZddlZej j Z dej fdYZ dS(i(tbase(t*iN(tcommandst VideoPlugincBs}eZdZdZdZedZdZdZdZ e dde d Z e ded ZRS( s? Plugin for tuning powersave options for some graphic cards. cCsvt|_t|_t|_xB|jjdjdjddD]}|jj |j qIWt |_ dS(Ntdrmscard*tDEVTYPEt drm_minor( tTruet_devices_supportedtsett _free_devicest_assigned_devicest_hardware_inventoryt get_devicestmatch_sys_nametmatch_propertytaddtsys_nameRt_cmd(tselftdevice((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyt _init_devicess    .cCs&g|D]}|jjd|^qS(NR(R t get_device(Rtdevicestx((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyt_get_device_objectsscCs idd6S(Ntradeon_powersave(tNone(R((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyt_get_config_optionsscCst|_t|_dS(N(tFalset_has_dynamic_tuningRt_has_static_tuning(Rtinstance((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyt_instance_init#s cCsdS(N((RR ((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyt_instance_cleanup'scCs%id|d6d|d6d|d6S(Ns%/sys/class/drm/%s/device/power_methodtmethods&/sys/class/drm/%s/device/power_profiletprofiles(/sys/class/drm/%s/device/power_dpm_statet dpm_state((RR((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyt_radeon_powersave_files*s  Rt per_devicecCst|j|}ttjdd|j}tjj|dsd|sdtj d|dSnx |D]}|dkr|sl|j j |dd r|j j |d |r|Sqlqk|d kr|sl|j j |dd rd Sqlqk|dkrR|sl|t d}|j j |ddrO|j j |d|rO|Sqlqk|shtj dndSqkWdS(Ns#(\s*:\s*)|(\s+)|(\s*;\s*)|(\s*,\s*)t R#s)radeon_powersave is not supported on '%s'tdefaulttautotlowtmidthighR$tdynpms dpm-batterys dpm-balancedsdpm-performancesdpm-tdpmR%s$Invalid option for radeon_powersave.(sdefaultR*R+R,R-(s dpm-batterys dpm-balancedsdpm-performance(R&tstrtretsubtsplittostpathtexiststlogtwarnRRt write_to_filetlen(RtvalueRtsimt sys_filestvatvtstate((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyt_set_radeon_powersave1s4!       cCs|j|}|jj|dd|j}|dkrW|jj|djS|dkrg|S|dkrd|jj|djSdSdS(NR#tno_errorR$R.R/sdpm-R%(R&Rt read_filetstripR(RRtignore_missingR=R#((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyt_get_radeon_powersavePs"   (t__name__t __module__t__doc__RRt classmethodRR!R"R&t command_setRRAt command_getRRF(((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyR s     (tRt decoratorst tuned.logsttunedttuned.utils.commandsRR4R1tlogstgetR7tPluginR(((s>/usr/lib/python2.7/site-packages/tuned/plugins/plugin_video.pyts