Lines Matching refs:dim

168 net_dim_on_top(struct net_dim *dim)  in net_dim_on_top()  argument
170 switch (dim->tune_state) { in net_dim_on_top()
175 return (dim->steps_left > 1) && (dim->steps_right == 1); in net_dim_on_top()
177 return (dim->steps_right > 1) && (dim->steps_left == 1); in net_dim_on_top()
182 net_dim_turn(struct net_dim *dim) in net_dim_turn() argument
184 switch (dim->tune_state) { in net_dim_turn()
189 dim->tune_state = NET_DIM_GOING_LEFT; in net_dim_turn()
190 dim->steps_left = 0; in net_dim_turn()
193 dim->tune_state = NET_DIM_GOING_RIGHT; in net_dim_turn()
194 dim->steps_right = 0; in net_dim_turn()
200 net_dim_step(struct net_dim *dim) in net_dim_step() argument
202 if (dim->tired == (NET_DIM_PARAMS_NUM_PROFILES * 2)) in net_dim_step()
205 switch (dim->tune_state) { in net_dim_step()
210 if (dim->profile_ix == (NET_DIM_PARAMS_NUM_PROFILES - 1)) in net_dim_step()
212 dim->profile_ix++; in net_dim_step()
213 dim->steps_right++; in net_dim_step()
216 if (dim->profile_ix == 0) in net_dim_step()
218 dim->profile_ix--; in net_dim_step()
219 dim->steps_left++; in net_dim_step()
223 dim->tired++; in net_dim_step()
228 net_dim_park_on_top(struct net_dim *dim) in net_dim_park_on_top() argument
230 dim->steps_right = 0; in net_dim_park_on_top()
231 dim->steps_left = 0; in net_dim_park_on_top()
232 dim->tired = 0; in net_dim_park_on_top()
233 dim->tune_state = NET_DIM_PARKING_ON_TOP; in net_dim_park_on_top()
237 net_dim_park_tired(struct net_dim *dim) in net_dim_park_tired() argument
239 dim->steps_right = 0; in net_dim_park_tired()
240 dim->steps_left = 0; in net_dim_park_tired()
241 dim->tune_state = NET_DIM_PARKING_TIRED; in net_dim_park_tired()
245 net_dim_exit_parking(struct net_dim *dim) in net_dim_exit_parking() argument
247 dim->tune_state = dim->profile_ix ? NET_DIM_GOING_LEFT : in net_dim_exit_parking()
249 net_dim_step(dim); in net_dim_exit_parking()
288 struct net_dim *dim) in net_dim_decision() argument
290 int prev_state = dim->tune_state; in net_dim_decision()
291 int prev_ix = dim->profile_ix; in net_dim_decision()
295 switch (dim->tune_state) { in net_dim_decision()
297 stats_res = net_dim_stats_compare(curr_stats, &dim->prev_stats); in net_dim_decision()
299 net_dim_exit_parking(dim); in net_dim_decision()
303 dim->tired--; in net_dim_decision()
304 if (!dim->tired) in net_dim_decision()
305 net_dim_exit_parking(dim); in net_dim_decision()
310 stats_res = net_dim_stats_compare(curr_stats, &dim->prev_stats); in net_dim_decision()
312 net_dim_turn(dim); in net_dim_decision()
314 if (net_dim_on_top(dim)) { in net_dim_decision()
315 net_dim_park_on_top(dim); in net_dim_decision()
318 step_res = net_dim_step(dim); in net_dim_decision()
321 net_dim_park_on_top(dim); in net_dim_decision()
324 net_dim_park_tired(dim); in net_dim_decision()
332 (dim->tune_state != NET_DIM_PARKING_ON_TOP)) in net_dim_decision()
333 dim->prev_stats = *curr_stats; in net_dim_decision()
335 return dim->profile_ix != prev_ix; in net_dim_decision()
374 net_dim(struct net_dim *dim, in net_dim() argument
381 dim->event_ctr++; in net_dim()
383 switch (dim->state) { in net_dim()
386 dim->event_ctr, in net_dim()
387 dim->start_sample.event_ctr); in net_dim()
390 net_dim_sample(dim->event_ctr, packets, bytes, &end_sample); in net_dim()
391 net_dim_calc_stats(&dim->start_sample, &end_sample, in net_dim()
393 if (net_dim_decision(&curr_stats, dim)) { in net_dim()
394 dim->state = NET_DIM_APPLY_NEW_PROFILE; in net_dim()
395 schedule_work(&dim->work); in net_dim()
400 net_dim_sample(dim->event_ctr, packets, bytes, &dim->start_sample); in net_dim()
401 dim->state = NET_DIM_MEASURE_IN_PROGRESS; in net_dim()