@@ -51,10 +51,17 @@ fn cmd_dgpu_set(m: &clap::ArgMatches) -> Result<()> {
5151 use clap:: value_t_or_exit;
5252 let state = value_t_or_exit ! ( m, "state" , sys:: dgpu:: PowerState ) ;
5353
54- sys:: dgpu:: Device :: open ( ) ? . set_power ( state ) ?;
54+ let dev = sys:: dgpu:: Device :: open ( ) ?;
5555
56- if !m. is_present ( "quiet" ) {
57- println ! ( "dGPU power set to '{}'" , state) ;
56+ if state != dev. get_power ( ) ? {
57+ dev. set_power ( state) ?;
58+
59+ if !m. is_present ( "quiet" ) {
60+ println ! ( "dGPU power set to '{}'" , state) ;
61+ }
62+
63+ } else if !m. is_present ( "quiet" ) {
64+ println ! ( "dGPU power already set to '{}', not changing" , state) ;
5865 }
5966
6067 Ok ( ( ) )
@@ -85,10 +92,17 @@ fn cmd_perf_set(m: &clap::ArgMatches) -> Result<()> {
8592 use clap:: value_t_or_exit;
8693 let mode = value_t_or_exit ! ( m, "mode" , sys:: perf:: Mode ) ;
8794
88- sys:: perf:: Device :: open ( ) ? . set_mode ( mode ) ?;
95+ let dev = sys:: perf:: Device :: open ( ) ?;
8996
90- if !m. is_present ( "quiet" ) {
91- println ! ( "Performance-mode set to '{}'" , mode) ;
97+ if mode != dev. get_mode ( ) ? {
98+ dev. set_mode ( mode) ?;
99+
100+ if !m. is_present ( "quiet" ) {
101+ println ! ( "Performance-mode set to '{}'" , mode) ;
102+ }
103+
104+ } else if !m. is_present ( "quiet" ) {
105+ println ! ( "Performance-mode already set to '{}', not changing" , mode) ;
92106 }
93107
94108 Ok ( ( ) )
0 commit comments