Lines Matching refs:dim

104 static int net_dim_step(struct dim *dim)  in net_dim_step()  argument
106 if (dim->tired == (NET_DIM_PARAMS_NUM_PROFILES * 2)) in net_dim_step()
109 switch (dim->tune_state) { in net_dim_step()
114 if (dim->profile_ix == (NET_DIM_PARAMS_NUM_PROFILES - 1)) in net_dim_step()
116 dim->profile_ix++; in net_dim_step()
117 dim->steps_right++; in net_dim_step()
120 if (dim->profile_ix == 0) in net_dim_step()
122 dim->profile_ix--; in net_dim_step()
123 dim->steps_left++; in net_dim_step()
127 dim->tired++; in net_dim_step()
131 static void net_dim_exit_parking(struct dim *dim) in net_dim_exit_parking() argument
133 dim->tune_state = dim->profile_ix ? DIM_GOING_LEFT : DIM_GOING_RIGHT; in net_dim_exit_parking()
134 net_dim_step(dim); in net_dim_exit_parking()
165 static bool net_dim_decision(struct dim_stats *curr_stats, struct dim *dim) in net_dim_decision() argument
167 int prev_state = dim->tune_state; in net_dim_decision()
168 int prev_ix = dim->profile_ix; in net_dim_decision()
172 switch (dim->tune_state) { in net_dim_decision()
175 &dim->prev_stats); in net_dim_decision()
177 net_dim_exit_parking(dim); in net_dim_decision()
181 dim->tired--; in net_dim_decision()
182 if (!dim->tired) in net_dim_decision()
183 net_dim_exit_parking(dim); in net_dim_decision()
189 &dim->prev_stats); in net_dim_decision()
191 dim_turn(dim); in net_dim_decision()
193 if (dim_on_top(dim)) { in net_dim_decision()
194 dim_park_on_top(dim); in net_dim_decision()
198 step_res = net_dim_step(dim); in net_dim_decision()
201 dim_park_on_top(dim); in net_dim_decision()
204 dim_park_tired(dim); in net_dim_decision()
212 dim->tune_state != DIM_PARKING_ON_TOP) in net_dim_decision()
213 dim->prev_stats = *curr_stats; in net_dim_decision()
215 return dim->profile_ix != prev_ix; in net_dim_decision()
218 void net_dim(struct dim *dim, struct dim_sample end_sample) in net_dim() argument
223 switch (dim->state) { in net_dim()
227 dim->start_sample.event_ctr); in net_dim()
230 if (!dim_calc_stats(&dim->start_sample, &end_sample, &curr_stats)) in net_dim()
232 if (net_dim_decision(&curr_stats, dim)) { in net_dim()
233 dim->state = DIM_APPLY_NEW_PROFILE; in net_dim()
234 schedule_work(&dim->work); in net_dim()
240 end_sample.byte_ctr, &dim->start_sample); in net_dim()
241 dim->state = DIM_MEASURE_IN_PROGRESS; in net_dim()