Re: kernel mode termios API's

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 30, 2016 at 11:32 PM, Greg KH <greg@xxxxxxxxx> wrote:
> On Wed, Mar 30, 2016 at 09:23:00PM +0530, Muni Sekhar wrote:
>> Hi,
>>
>> We are having customized serial port driver, it always sets the baud
>> to 9600 (by configuring UART BAUD_RATE register) on device file open,
>> but not updating the termios structure.
>
> Please fix your driver.  You do have the source for it, so this
> shouldn't be a problem, right?
>
> thanks,
>
> greg k-h


Yes, I am having the source code. It is a tiny TTY driver.

It sets the baud rate in three different functions [
tty_operations->open(), tty_operations->set_termios (),
tty_operations->ioctl() ]

It sets the fixed hard coded baud rate 9600 in tty_operations->open()
, in other places sets baud rate as user-space function requested.

I don’t know why it uses fixed baud rate in open. If a user-space
function queries baud (cfgetospeed() API) after open, it gets the
wrong value.


Can I update the termios structure before setting the baud rate as
mentioned below in tty_operations->open()?

   tiny_tty_driver->init_termios = tty_std_termios;

   tiny_tty_driver->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL;


In LINUX DEVICE DRIVERS book, TTY divers chapter says “When the port
is opened for the first time, any needed hardware initialization and
memory allocation can be done”,  I would like to know what kind of
hardware initialization might be needed for the first time?


-- 
Thanks,
Sekhar

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux