Lines Matching full:baud
570 * Returns the nearest supported baud rate that can be set directly without
573 static speed_t pl2303_get_supported_baud_rate(speed_t baud) in pl2303_get_supported_baud_rate() argument
584 if (baud_sup[i] > baud) in pl2303_get_supported_baud_rate()
589 baud = baud_sup[i - 1]; in pl2303_get_supported_baud_rate()
590 else if (i > 0 && (baud_sup[i] - baud) > (baud - baud_sup[i - 1])) in pl2303_get_supported_baud_rate()
591 baud = baud_sup[i - 1]; in pl2303_get_supported_baud_rate()
593 baud = baud_sup[i]; in pl2303_get_supported_baud_rate()
595 return baud; in pl2303_get_supported_baud_rate()
599 * NOTE: If unsupported baud rates are set directly, the PL2303 seems to
600 * use 9600 baud.
603 speed_t baud) in pl2303_encode_baud_rate_direct() argument
605 put_unaligned_le32(baud, buf); in pl2303_encode_baud_rate_direct()
607 return baud; in pl2303_encode_baud_rate_direct()
611 speed_t baud) in pl2303_encode_baud_rate_divisor() argument
623 mantissa = baseline / baud; in pl2303_encode_baud_rate_divisor()
625 mantissa = 1; /* Avoid dividing by zero if baud > 32*12M. */ in pl2303_encode_baud_rate_divisor()
643 /* Calculate and return the exact baud rate. */ in pl2303_encode_baud_rate_divisor()
644 baud = (baseline / mantissa) >> (exponent << 1); in pl2303_encode_baud_rate_divisor()
646 return baud; in pl2303_encode_baud_rate_divisor()
650 speed_t baud) in pl2303_encode_baud_rate_divisor_alt() argument
662 mantissa = baseline / baud; in pl2303_encode_baud_rate_divisor_alt()
664 mantissa = 1; /* Avoid dividing by zero if baud > 32*12M. */ in pl2303_encode_baud_rate_divisor_alt()
682 /* Calculate and return the exact baud rate. */ in pl2303_encode_baud_rate_divisor_alt()
683 baud = (baseline / mantissa) >> exponent; in pl2303_encode_baud_rate_divisor_alt()
685 return baud; in pl2303_encode_baud_rate_divisor_alt()
695 speed_t baud; in pl2303_encode_baud_rate() local
697 baud = tty_get_baud_rate(tty); in pl2303_encode_baud_rate()
698 dev_dbg(&port->dev, "baud requested = %u\n", baud); in pl2303_encode_baud_rate()
699 if (!baud) in pl2303_encode_baud_rate()
703 baud = min_t(speed_t, baud, spriv->type->max_baud_rate); in pl2303_encode_baud_rate()
705 * Use direct method for supported baud rates, otherwise use divisors. in pl2303_encode_baud_rate()
709 baud_sup = baud; in pl2303_encode_baud_rate()
711 baud_sup = pl2303_get_supported_baud_rate(baud); in pl2303_encode_baud_rate()
713 if (baud == baud_sup) in pl2303_encode_baud_rate()
714 baud = pl2303_encode_baud_rate_direct(buf, baud); in pl2303_encode_baud_rate()
716 baud = pl2303_encode_baud_rate_divisor_alt(buf, baud); in pl2303_encode_baud_rate()
718 baud = pl2303_encode_baud_rate_divisor(buf, baud); in pl2303_encode_baud_rate()
720 /* Save resulting baud rate */ in pl2303_encode_baud_rate()
721 tty_encode_baud_rate(tty, baud, baud); in pl2303_encode_baud_rate()
722 dev_dbg(&port->dev, "baud set = %u\n", baud); in pl2303_encode_baud_rate()
820 /* For reference buf[0]:buf[3] baud rate value */ in pl2303_set_termios()
877 * as a previously requested baud rate may differ from the one in pl2303_set_termios()