• Home
  • Raw
  • Download

Lines Matching refs:qos

102 static __u32 irlap_requested_line_capacity(struct qos_info *qos);
281 void irda_qos_compute_intersection(struct qos_info *qos, struct qos_info *new) in irda_qos_compute_intersection() argument
283 IRDA_ASSERT(qos != NULL, return;); in irda_qos_compute_intersection()
287 qos->baud_rate.bits &= new->baud_rate.bits; in irda_qos_compute_intersection()
288 qos->window_size.bits &= new->window_size.bits; in irda_qos_compute_intersection()
289 qos->min_turn_time.bits &= new->min_turn_time.bits; in irda_qos_compute_intersection()
290 qos->max_turn_time.bits &= new->max_turn_time.bits; in irda_qos_compute_intersection()
291 qos->data_size.bits &= new->data_size.bits; in irda_qos_compute_intersection()
292 qos->link_disc_time.bits &= new->link_disc_time.bits; in irda_qos_compute_intersection()
293 qos->additional_bofs.bits &= new->additional_bofs.bits; in irda_qos_compute_intersection()
295 irda_qos_bits_to_value(qos); in irda_qos_compute_intersection()
305 void irda_init_max_qos_capabilies(struct qos_info *qos) in irda_init_max_qos_capabilies() argument
316 &qos->baud_rate.bits); in irda_init_max_qos_capabilies()
321 &qos->link_disc_time.bits); in irda_init_max_qos_capabilies()
325 qos->baud_rate.bits &= 0x03ff; in irda_init_max_qos_capabilies()
327 qos->window_size.bits = 0x7f; in irda_init_max_qos_capabilies()
328 qos->min_turn_time.bits = 0xff; in irda_init_max_qos_capabilies()
329 qos->max_turn_time.bits = 0x0f; in irda_init_max_qos_capabilies()
330 qos->data_size.bits = 0x3f; in irda_init_max_qos_capabilies()
331 qos->link_disc_time.bits &= 0xff; in irda_init_max_qos_capabilies()
332 qos->additional_bofs.bits = 0xff; in irda_init_max_qos_capabilies()
342 static void irlap_adjust_qos_settings(struct qos_info *qos) in irlap_adjust_qos_settings() argument
353 if (sysctl_min_tx_turn_time > qos->min_turn_time.value) { in irlap_adjust_qos_settings()
361 8, &qos->min_turn_time.bits); in irlap_adjust_qos_settings()
363 qos->min_turn_time.value = sysctl_min_tx_turn_time; in irlap_adjust_qos_settings()
370 if ((qos->baud_rate.value < 115200) && in irlap_adjust_qos_settings()
371 (qos->max_turn_time.value < 500)) in irlap_adjust_qos_settings()
375 __func__, qos->max_turn_time.value); in irlap_adjust_qos_settings()
376 qos->max_turn_time.value = 500; in irlap_adjust_qos_settings()
383 index = value_index(qos->data_size.value, data_sizes, 6); in irlap_adjust_qos_settings()
384 line_capacity = irlap_max_line_capacity(qos->baud_rate.value, in irlap_adjust_qos_settings()
385 qos->max_turn_time.value); in irlap_adjust_qos_settings()
388 while ((qos->data_size.value > line_capacity) && (index > 0)) { in irlap_adjust_qos_settings()
389 qos->data_size.value = data_sizes[index--]; in irlap_adjust_qos_settings()
391 __func__, qos->data_size.value); in irlap_adjust_qos_settings()
394 while (irlap_requested_line_capacity(qos) > line_capacity) { in irlap_adjust_qos_settings()
398 if (qos->window_size.value > 1) { in irlap_adjust_qos_settings()
399 qos->window_size.value--; in irlap_adjust_qos_settings()
401 __func__, qos->window_size.value); in irlap_adjust_qos_settings()
403 qos->data_size.value = data_sizes[index--]; in irlap_adjust_qos_settings()
405 __func__, qos->data_size.value); in irlap_adjust_qos_settings()
415 if (qos->data_size.value > sysctl_max_tx_data_size) in irlap_adjust_qos_settings()
417 qos->data_size.value = sysctl_max_tx_data_size; in irlap_adjust_qos_settings()
421 if (qos->window_size.value > sysctl_max_tx_window) in irlap_adjust_qos_settings()
422 qos->window_size.value = sysctl_max_tx_window; in irlap_adjust_qos_settings()
733 static __u32 irlap_requested_line_capacity(struct qos_info *qos) in irlap_requested_line_capacity() argument
737 line_capacity = qos->window_size.value * in irlap_requested_line_capacity()
738 (qos->data_size.value + 6 + qos->additional_bofs.value) + in irlap_requested_line_capacity()
739 irlap_min_turn_time_in_bytes(qos->baud_rate.value, in irlap_requested_line_capacity()
740 qos->min_turn_time.value); in irlap_requested_line_capacity()
749 void irda_qos_bits_to_value(struct qos_info *qos) in irda_qos_bits_to_value() argument
753 IRDA_ASSERT(qos != NULL, return;); in irda_qos_bits_to_value()
755 index = msb_index(qos->baud_rate.bits); in irda_qos_bits_to_value()
756 qos->baud_rate.value = baud_rates[index]; in irda_qos_bits_to_value()
758 index = msb_index(qos->data_size.bits); in irda_qos_bits_to_value()
759 qos->data_size.value = data_sizes[index]; in irda_qos_bits_to_value()
761 index = msb_index(qos->window_size.bits); in irda_qos_bits_to_value()
762 qos->window_size.value = index+1; in irda_qos_bits_to_value()
764 index = msb_index(qos->min_turn_time.bits); in irda_qos_bits_to_value()
765 qos->min_turn_time.value = min_turn_times[index]; in irda_qos_bits_to_value()
767 index = msb_index(qos->max_turn_time.bits); in irda_qos_bits_to_value()
768 qos->max_turn_time.value = max_turn_times[index]; in irda_qos_bits_to_value()
770 index = msb_index(qos->link_disc_time.bits); in irda_qos_bits_to_value()
771 qos->link_disc_time.value = link_disc_times[index]; in irda_qos_bits_to_value()
773 index = msb_index(qos->additional_bofs.bits); in irda_qos_bits_to_value()
774 qos->additional_bofs.value = add_bofs[index]; in irda_qos_bits_to_value()