Lines Matching full:baud

593  * Returns the nearest supported baud rate that can be set directly without
596 static speed_t pl2303_get_supported_baud_rate(speed_t baud) in pl2303_get_supported_baud_rate() argument
607 if (baud_sup[i] > baud) in pl2303_get_supported_baud_rate()
612 baud = baud_sup[i - 1]; in pl2303_get_supported_baud_rate()
613 else if (i > 0 && (baud_sup[i] - baud) > (baud - baud_sup[i - 1])) in pl2303_get_supported_baud_rate()
614 baud = baud_sup[i - 1]; in pl2303_get_supported_baud_rate()
616 baud = baud_sup[i]; in pl2303_get_supported_baud_rate()
618 return baud; in pl2303_get_supported_baud_rate()
622 * NOTE: If unsupported baud rates are set directly, the PL2303 seems to
623 * use 9600 baud.
626 speed_t baud) in pl2303_encode_baud_rate_direct() argument
628 put_unaligned_le32(baud, buf); in pl2303_encode_baud_rate_direct()
630 return baud; in pl2303_encode_baud_rate_direct()
634 speed_t baud) in pl2303_encode_baud_rate_divisor() argument
646 mantissa = baseline / baud; in pl2303_encode_baud_rate_divisor()
648 mantissa = 1; /* Avoid dividing by zero if baud > 32*12M. */ in pl2303_encode_baud_rate_divisor()
666 /* Calculate and return the exact baud rate. */ in pl2303_encode_baud_rate_divisor()
667 baud = (baseline / mantissa) >> (exponent << 1); in pl2303_encode_baud_rate_divisor()
669 return baud; in pl2303_encode_baud_rate_divisor()
673 speed_t baud) in pl2303_encode_baud_rate_divisor_alt() argument
685 mantissa = baseline / baud; in pl2303_encode_baud_rate_divisor_alt()
687 mantissa = 1; /* Avoid dividing by zero if baud > 32*12M. */ in pl2303_encode_baud_rate_divisor_alt()
705 /* Calculate and return the exact baud rate. */ in pl2303_encode_baud_rate_divisor_alt()
706 baud = (baseline / mantissa) >> exponent; in pl2303_encode_baud_rate_divisor_alt()
708 return baud; in pl2303_encode_baud_rate_divisor_alt()
718 speed_t baud; in pl2303_encode_baud_rate() local
720 baud = tty_get_baud_rate(tty); in pl2303_encode_baud_rate()
721 dev_dbg(&port->dev, "baud requested = %u\n", baud); in pl2303_encode_baud_rate()
722 if (!baud) in pl2303_encode_baud_rate()
726 baud = min_t(speed_t, baud, spriv->type->max_baud_rate); in pl2303_encode_baud_rate()
728 * Use direct method for supported baud rates, otherwise use divisors. in pl2303_encode_baud_rate()
732 baud_sup = baud; in pl2303_encode_baud_rate()
734 baud_sup = pl2303_get_supported_baud_rate(baud); in pl2303_encode_baud_rate()
736 if (baud == baud_sup) in pl2303_encode_baud_rate()
737 baud = pl2303_encode_baud_rate_direct(buf, baud); in pl2303_encode_baud_rate()
739 baud = pl2303_encode_baud_rate_divisor_alt(buf, baud); in pl2303_encode_baud_rate()
741 baud = pl2303_encode_baud_rate_divisor(buf, baud); in pl2303_encode_baud_rate()
743 /* Save resulting baud rate */ in pl2303_encode_baud_rate()
744 tty_encode_baud_rate(tty, baud, baud); in pl2303_encode_baud_rate()
745 dev_dbg(&port->dev, "baud set = %u\n", baud); in pl2303_encode_baud_rate()
852 /* For reference buf[0]:buf[3] baud rate value */ in pl2303_set_termios()
909 * as a previously requested baud rate may differ from the one in pl2303_set_termios()