• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/net/irda/

Lines Matching refs:qos

3  * Filename:      qos.c
37 #include <net/irda/qos.h>
100 static __u32 irlap_requested_line_capacity(struct qos_info *qos);
274 * Function irda_qos_compute_intersection (qos, new)
279 void irda_qos_compute_intersection(struct qos_info *qos, struct qos_info *new)
281 IRDA_ASSERT(qos != NULL, return;);
285 qos->baud_rate.bits &= new->baud_rate.bits;
286 qos->window_size.bits &= new->window_size.bits;
287 qos->min_turn_time.bits &= new->min_turn_time.bits;
288 qos->max_turn_time.bits &= new->max_turn_time.bits;
289 qos->data_size.bits &= new->data_size.bits;
290 qos->link_disc_time.bits &= new->link_disc_time.bits;
291 qos->additional_bofs.bits &= new->additional_bofs.bits;
293 irda_qos_bits_to_value(qos);
297 * Function irda_init_max_qos_capabilies (qos)
303 void irda_init_max_qos_capabilies(struct qos_info *qos)
314 &qos->baud_rate.bits);
319 &qos->link_disc_time.bits);
323 qos->baud_rate.bits &= 0x03ff;
325 qos->window_size.bits = 0x7f;
326 qos->min_turn_time.bits = 0xff;
327 qos->max_turn_time.bits = 0x0f;
328 qos->data_size.bits = 0x3f;
329 qos->link_disc_time.bits &= 0xff;
330 qos->additional_bofs.bits = 0xff;
335 * Function irlap_adjust_qos_settings (qos)
340 static void irlap_adjust_qos_settings(struct qos_info *qos)
351 if (sysctl_min_tx_turn_time > qos->min_turn_time.value) {
359 8, &qos->min_turn_time.bits);
361 qos->min_turn_time.value = sysctl_min_tx_turn_time;
368 if ((qos->baud_rate.value < 115200) &&
369 (qos->max_turn_time.value < 500))
373 __FUNCTION__, qos->max_turn_time.value);
374 qos->max_turn_time.value = 500;
381 index = value_index(qos->data_size.value, data_sizes, 6);
382 line_capacity = irlap_max_line_capacity(qos->baud_rate.value,
383 qos->max_turn_time.value);
386 while ((qos->data_size.value > line_capacity) && (index > 0)) {
387 qos->data_size.value = data_sizes[index--];
389 __FUNCTION__, qos->data_size.value);
392 while (irlap_requested_line_capacity(qos) > line_capacity) {
396 if (qos->window_size.value > 1) {
397 qos->window_size.value--;
399 __FUNCTION__, qos->window_size.value);
401 qos->data_size.value = data_sizes[index--];
403 __FUNCTION__, qos->data_size.value);
413 if (qos->data_size.value > sysctl_max_tx_data_size)
415 qos->data_size.value = sysctl_max_tx_data_size;
419 if (qos->window_size.value > sysctl_max_tx_window)
420 qos->window_size.value = sysctl_max_tx_window;
461 * Function irlap_insert_negotiation_params (qos, fp)
731 static __u32 irlap_requested_line_capacity(struct qos_info *qos)
735 line_capacity = qos->window_size.value *
736 (qos->data_size.value + 6 + qos->additional_bofs.value) +
737 irlap_min_turn_time_in_bytes(qos->baud_rate.value,
738 qos->min_turn_time.value);
747 void irda_qos_bits_to_value(struct qos_info *qos)
751 IRDA_ASSERT(qos != NULL, return;);
753 index = msb_index(qos->baud_rate.bits);
754 qos->baud_rate.value = baud_rates[index];
756 index = msb_index(qos->data_size.bits);
757 qos->data_size.value = data_sizes[index];
759 index = msb_index(qos->window_size.bits);
760 qos->window_size.value = index+1;
762 index = msb_index(qos->min_turn_time.bits);
763 qos->min_turn_time.value = min_turn_times[index];
765 index = msb_index(qos->max_turn_time.bits);
766 qos->max_turn_time.value = max_turn_times[index];
768 index = msb_index(qos->link_disc_time.bits);
769 qos->link_disc_time.value = link_disc_times[index];
771 index = msb_index(qos->additional_bofs.bits);
772 qos->additional_bofs.value = add_bofs[index];