Lines Matching refs:sched
90 static ktime_t sched_base_time(const struct sched_gate_list *sched) in sched_base_time() argument
92 if (!sched) in sched_base_time()
95 return ns_to_ktime(sched->base_time); in sched_base_time()
118 struct sched_gate_list *sched = container_of(head, struct sched_gate_list, rcu); in taprio_free_sched_cb() local
121 list_for_each_entry_safe(entry, n, &sched->entries, list) { in taprio_free_sched_cb()
126 kfree(sched); in taprio_free_sched_cb()
144 static s32 get_cycle_time_elapsed(struct sched_gate_list *sched, ktime_t time) in get_cycle_time_elapsed() argument
149 time_since_sched_start = ktime_sub(time, sched->base_time); in get_cycle_time_elapsed()
150 div_s64_rem(time_since_sched_start, sched->cycle_time, &time_elapsed); in get_cycle_time_elapsed()
155 static ktime_t get_interval_end_time(struct sched_gate_list *sched, in get_interval_end_time() argument
160 s32 cycle_elapsed = get_cycle_time_elapsed(sched, intv_start); in get_interval_end_time()
163 cycle_end = ktime_add_ns(intv_start, sched->cycle_time - cycle_elapsed); in get_interval_end_time()
165 cycle_ext_end = ktime_add(cycle_end, sched->cycle_time_extension); in get_interval_end_time()
169 else if (admin && admin != sched && in get_interval_end_time()
188 struct sched_gate_list *sched, in find_entry_to_transmit() argument
210 if (!sched) in find_entry_to_transmit()
213 cycle = sched->cycle_time; in find_entry_to_transmit()
214 cycle_elapsed = get_cycle_time_elapsed(sched, time); in find_entry_to_transmit()
218 list_for_each_entry(entry, &sched->entries, list) { in find_entry_to_transmit()
220 curr_intv_end = get_interval_end_time(sched, admin, entry, in find_entry_to_transmit()
266 struct sched_gate_list *sched, *admin; in is_valid_interval() local
271 sched = rcu_dereference(q->oper_sched); in is_valid_interval()
274 entry = find_entry_to_transmit(skb, sch, sched, admin, skb->tstamp, in is_valid_interval()
348 struct sched_gate_list *sched, *admin; in get_packet_txtime() local
362 sched = rcu_dereference(q->oper_sched); in get_packet_txtime()
364 switch_schedules(q, &admin, &sched); in get_packet_txtime()
367 if (!sched || ktime_before(minimum_time, sched->base_time)) { in get_packet_txtime()
378 entry = find_entry_to_transmit(skb, sch, sched, admin, in get_packet_txtime()
391 if (admin && admin != sched && in get_packet_txtime()
393 sched = admin; in get_packet_txtime()
405 entry->next_txtime = ktime_add(interval_start, sched->cycle_time); in get_packet_txtime()
847 struct sched_gate_list *sched, in parse_sched_list() argument
877 list_add_tail(&entry->list, &sched->entries); in parse_sched_list()
881 sched->num_entries = i; in parse_sched_list()
997 struct sched_gate_list *sched, in taprio_get_start_time() argument
1004 base = sched_base_time(sched); in taprio_get_start_time()
1012 cycle = sched->cycle_time; in taprio_get_start_time()
1031 struct sched_gate_list *sched, ktime_t base) in setup_first_close_time() argument
1036 first = list_first_entry(&sched->entries, in setup_first_close_time()
1039 cycle = sched->cycle_time; in setup_first_close_time()
1042 sched->cycle_close_time = ktime_add_ns(base, cycle); in setup_first_close_time()
1125 struct sched_gate_list *sched, ktime_t base) in setup_txtime() argument
1130 list_for_each_entry(entry, &sched->entries, list) { in setup_txtime()
1226 struct sched_gate_list *sched, in taprio_sched_to_offload() argument
1232 offload->base_time = sched->base_time; in taprio_sched_to_offload()
1233 offload->cycle_time = sched->cycle_time; in taprio_sched_to_offload()
1234 offload->cycle_time_extension = sched->cycle_time_extension; in taprio_sched_to_offload()
1236 list_for_each_entry(entry, &sched->entries, list) { in taprio_sched_to_offload()
1251 struct sched_gate_list *sched, in taprio_enable_offload() argument
1264 offload = taprio_offload_alloc(sched->num_entries); in taprio_enable_offload()
1271 taprio_sched_to_offload(dev, sched, offload); in taprio_enable_offload()