lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2B1D156D95AE9B4EAD379CB9E465FE7324AF2A630D@EXDCVYMBSTM005.EQ1STM.local>
Date:	Thu, 12 Jan 2012 15:20:46 +0100
From:	Rajanikanth H V <rajanikanth.hv@...ricsson.com>
To:	Alan Cox <alan@...rguk.ukuu.org.uk>
Cc:	"linux-serial@...r.kernel.org" <linux-serial@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"gregkh@...e.de" <gregkh@...e.de>,
	"linux-arm-kernel@...ts.infradead.org" 
	<linux-arm-kernel@...ts.infradead.org>,
	Rajanikanth H V <rajanikanth.hv@...ricsson.com>
Subject: RE: tty/serial: Need clarification on Support for 4+M Baudrate

Alan,

FYI: I am not using application, rather I have a Bluetooth driver invoking
encode_baud_rate(...), please find log below.

I made sure that c_ispeed = c_ospeed = 4.05M Baud, however I see 
tty_termios_encode_baud_rate(...) is normalizing to 4.0


manual trace log below:
======================================================================================

4.05M Arbitrary Baud Setting Sequence:
[    9.664703] alloc_set_baud_rate_cmd Setting arbitrary baudrate using BOTHER baudrate:89 c_cflag:020000016262
[    9.774658] XXXXXX_hci_uart_set_baudrate c_cflag:020000016262 baud:4050000
[    9.781646] XXXXXX_hci_uart_set_baudrate arb flag set
[    9.786956] tty_termios_encode_baud_rate c_ispeed:4050000 c_ospeed:4050000
[    9.794006] tty_termios_encode_baud_rate checking precise weird baudrate:0x80001cb2
[    9.802032] tty_termios_encode_baud_rate checking precise weird baudrate c_cflag:020000006260
[    9.810943] tty_termios_encode_baud_rate did we find close match? i:31 n_baud_table31 ifound:30 ofound:30
[    9.820739] tty_termios_encode_baud_rate BOTHER, c_cflag:020000016277
[    9.827209] tty_termios_baud_rate c_cflag:020000016277 cbaud:010017
[    9.833648] tty_termios_baud_rate:(Arb'ry baud BOTHER not set) c_cflag:020000016277 cbaud:010017
[    9.842773] tty_termios_baud_rate:cbaud:036 baud_val:4000000
[    9.848480] tty_termios_baud_rate c_cflag:020000016277 cbaud:010017
[    9.855499] tty_termios_baud_rate:(Arb'ry baud BOTHER not set) c_cflag:020000016277 cbaud:010017
[    9.864471] tty_termios_baud_rate:cbaud:036 baud_val:4000000
[    9.864501] pl011_set_termios baud:4000000 uart_clk:38400000 port:0 IBRD:1 FBRD:13
[   10.674652] XXXXXX-uart XXXXXX-uart.0: Failed to set new baud rate (4)
[   10.681213] XXXXXX-uart XXXXXX-uart.0: Set chip power: DISABLE
[   10.692596] tty_termios_encode_baud_rate c_ispeed:0 c_ospeed:0
[   10.698822] tty_termios_encode_baud_rate checking precise weird baudrate:0x80001cbf
[   10.706756] tty_termios_encode_baud_rate checking precise weird baudrate c_cflag:020000006260
[   10.715698] tty_termios_encode_baud_rate did we find close match? i:31 n_baud_table31 ifound:0 ofound:0
[   10.725769] tty_termios_encode_baud_rate BOTHER, c_cflag:020000006260
[   10.732574] tty_termios_baud_rate c_cflag:020000006260 cbaud:00
[   10.739929] tty_termios_baud_rate:(Arb'ry baud BOTHER not set) c_cflag:020000006260 cbaud:00
[   10.749176] tty_termios_baud_rate:cbaud:00 baud_val:0
[   10.754638] tty_termios_baud_rate c_cflag:020000006260 cbaud:00
[   10.761505] tty_termios_baud_rate:(Arb'ry baud BOTHER not set) c_cflag:020000006260 cbaud:00
[   10.770660] tty_termios_baud_rate:cbaud:00 baud_val:0

4.05 is failing:

alloc_set_baud_rate_cmd Setting arbitrary baudrate using BOTHER baudrate:89 c_cflag:020000016262
[    9.325225] av8100_hdmi av8100_hdmi.3: HDMI display probed
[    9.334686] XXXXXX_hci_uart_set_baudrate c_cflag:020000016262 baud:4050000, ispeed:4050000 ospeed:4050000
[    9.345275] tty_termios_encode_baud_rate c_ispeed:4050000 c_ospeed:4050000
[    9.352539] tty_termios_encode_baud_rate checking precise weird baudrate:0x80001cb2
[    9.360717] tty_termios_encode_baud_rate checking precise weird baudrate c_cflag:020000006260
[    9.369659] tty_termios_encode_baud_rate did we find close match? i:31 n_baud_table31 ifound:30 ofound:30
[    9.380035] tty_termios_encode_baud_rate BOTHER, c_cflag:020000016277
[    9.387237] tty_termios_baud_rate c_cflag:020000016277 cbaud:010017
[    9.393829] pl011_set_termios i_speed:4050000 o_speed:4050000
[    9.399993] tty_termios_baud_rate c_cflag:020000016277 cbaud:010017


4.8M Arbitrary BaudSetting Sequence:

[   10.004699] alloc_set_baud_rate_cmd Setting arbitrary baudrate using BOTHER baudrate:90 c_cflag:020000016262
[   10.114624] XXXXXX_hci_uart_set_baudrate c_cflag:020000016262 baud:4800000
[   10.122009] XXXXXX_hci_uart_set_baudrate arb flag set
[   10.127624] tty_termios_encode_baud_rate c_ispeed:4800000 c_ospeed:4800000
[   10.134887] tty_termios_encode_baud_rate checking precise weird baudrate:0x80001cb2
[   10.143218] tty_termios_encode_baud_rate checking precise weird baudrate c_cflag:020000006260
[   10.154113] tty_termios_encode_baud_rate did we find close match? i:31 n_baud_table31 ifound:-1 ofound:-1
[   10.172149] tty_termios_encode_baud_rate BOTHER, c_cflag:020000016260
[   10.178833] tty_termios_baud_rate c_cflag:020000016260 cbaud:010000
[   10.185424] tty_termios_baud_rate (Arb'ry baud set) c_cflag:020000016260 cbaud:010000
[   10.193572] i_speed:4800000 o_speed:4800000
[   10.197845] tty_termios_baud_rate c_cflag:020000016260 cbaud:010000
[   10.204620] tty_termios_baud_rate (Arb'ry baud set) c_cflag:020000016260 cbaud:010000
[   10.212799] pl011_set_termios baud:4800000 uart_clk:38400000 port:0 IBRD:1 FBRD:0
[   10.220764] XXXXXX-uart XXXXXX-uart.0: Baud rate changed to 4800000 baud
[   10.973632] Bluetooth: XXXXXX BT core is enabled
[   11.101867] Bluetooth: XXXXXX BT core is disabled


======================================================================================

Thanks,
Rajanikanth


-----Original Message-----
From: Alan Cox [mailto:alan@...rguk.ukuu.org.uk] 
Sent: Thursday, January 12, 2012 5:19 PM
To: Rajanikanth H V
Cc: linux-serial@...r.kernel.org; linux-kernel@...r.kernel.org; gregkh@...e.de; linux-arm-kernel@...ts.infradead.org
Subject: Re: tty/serial: Need clarification on Support for 4+M Baudrate

On Thu, 12 Jan 2012 10:49:38 +0100
Rajanikanth H V <rajanikanth.hv@...ricsson.com> wrote:

> Alan,
> 
> Thanks for your response, suggested modification helped to get 4.8M baud
> but not 4.05M as this is being approximated to 4.0M baud which happens in
> tty_termios_encode_baud_rate(...).

Only if you don't have the BOTHER flag set and only for returned data to
user space.

When you do a TCSETS2 ioctl and have BOTHER set as the rate as well as a
c_ispeed/c_ospeed the exactly value is given to the driver.

Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ