Messages in this thread | | | Date | Tue, 18 Feb 2014 13:11:45 +0900 | From | Yoshihiro YUNOMAE <> | Subject | Re: [PATCH V2] serial/uart: Add tunable RX interrupt trigger I/F of FIFO buffers |
| |
Hi Alan,
Thank you for your reply.
(2014/02/18 0:12), One Thousand Gnomes wrote: >> According to HW specification of serial UART devices, RX interrupt trigger >> can be changed, but the trigger is hard-coded. For example, RX interrupt trigger >> in 16550A can be set to 1, 4, 8, or 14 bytes for HW, but current driver sets >> the trigger to only 8bytes. >> >> This patch makes a 16550A device change RX interrupt trigger from userland. > > We probably need to be much smarter about how we set this as lots of non > 16550A type devices have a tunable trigger. > > We tune it dynamically based upon baud rate for many platforms, and we > turn it on and off according to low latency settings. In other words we > can't just have an ioctl poking values about in parallel and without any > locking.
You're right. If a user sets low_latency using ioctl() on an 8250 device, serial8250_clear_fifos() initializing FCR will be executed. So, my approach which does not get lock is inappropriate.
> For the API IMHO this really belongs in sysfs IMHO. That does mean we need > to turn the existing sysfs API read/write by adding a few set methods not > just get ones in drivers/tty/serial/ but it would be a lot cleaner and > the uart_set_info path does the correct stopping and restarting as well > as locking for the fifo size change.
As you say, sysfs is more convenient than ioctl for users. Moreover, using uart_set_info() solves the competent problem. So, I'll implement this feature in sysfs.
Thank you, Yoshihiro YUNOMAE
-- Yoshihiro YUNOMAE Software Platform Research Dept. Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: yoshihiro.yunomae.ez@hitachi.com
| |