ó ±2öYc@sjddlZddlTddlZddlmZddlZejjƒZ dej fd„ƒYZ dS(iÿÿÿÿN(t*(tcommandst USBPlugincBs}eZdZd„Zd„Zed„ƒZd„Zd„Zd„Z e dde ƒd „ƒZ e dƒed „ƒZRS( s7 Plugin for tuning various options of USB subsystem. cCsmt|_tƒ|_tƒ|_x9|jjdƒjddƒD]}|jj|j ƒq@Wt ƒ|_ dS(NtusbtDEVTYPEt usb_device( tTruet_devices_supportedtsett _free_devicest_assigned_devicest_hardware_inventoryt get_devicestmatch_propertytaddtsys_nameRt_cmd(tselftdevice((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyt _init_devicess    %cst‡fd†|ƒS(Ncsˆjjd|ƒS(NR(R t get_device(tx(R(s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyts(tmap(Rtdevices((Rs</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyt_get_device_objectsscCs idd6S(Nt autosuspend(tNone(R((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyt_get_config_optionsscCst|_t|_dS(N(Rt_has_static_tuningtFalset_has_dynamic_tuning(Rtinstance((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyt_instance_init!s cCsdS(N((RR ((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyt_instance_cleanup%scCsd|S(Ns)/sys/bus/usb/devices/%s/power/autosuspend((RR((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyt_autosuspend_sysfile(sRt per_devicecCs`|j|ƒ}|dkrdS|r+dnd}|s\|j|ƒ}|jj||ƒn|S(Nt1t0(t _option_boolRR#Rt write_to_file(RtvalueRtsimtenabletvaltsys_file((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyt_set_autosuspend+s cCs+|j|ƒ}|jj|d|ƒjƒS(Ntno_error(R#Rt read_filetstrip(RRtignore_missingR-((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyt_get_autosuspend7s(t__name__t __module__t__doc__RRt classmethodRR!R"R#t command_setRR.t command_getRR3(((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyR s     ( tbaset decoratorst tuned.logsttunedttuned.utils.commandsRtglobtlogstgettlogtPluginR(((s</usr/lib/python2.7/site-packages/tuned/plugins/plugin_usb.pyts