linux/drivers/char
Alan Cox 78137e3b34 [PATCH] tty: improve encode_baud_rate logic
Mostly so people can see the work in progress.  This enhances the encode
function which isn't currently used in the base tree but is when using some of
the testing tty patches.

This resolves a problem with some hardware where applications got confusing
information from the tty ioctls.  Correct but confusing.

In some situations asking for, say, 9600 baud actually gets you 9595 baud or
similar near-miss values.  With the old code this meant that a request for
B9600 got a return of BOTHER, 9595 which programs interpreted as a failure.

The new code now works on the following basis

- If you ask for specific rate via BOTHER, you get a precise return

- If you ask for a standard Bfoo rate and the result is close you get a Bfoo
  return

- If you ask for a standard Bfoo rate and get something way off you get a
  BOTHER/rate return

This seems to fix up the cases I've found where this broke compatibility.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-11 10:51:32 -08:00
..
agp [AGPGART] Add new IDs to VIA AGP. 2007-01-28 17:58:33 -05:00
drm drm: Allow for 44 bit user-tokens (or drm_file offsets) 2007-02-08 16:14:05 +11:00
hw_random [PATCH] Fix HWRNG built-in initcalls priority 2007-01-11 18:18:21 -08:00
ip2 [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
ipmi [PATCH] proc: remove useless (and buggy) ->nlink settings 2007-02-11 10:51:32 -08:00
mwave IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
pcmcia [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
rio [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
tpm ACPICA: Remove duplicate table definitions (non-conflicting), cont 2007-02-02 21:14:29 -05:00
watchdog [PATCH] misc NULL noise removal 2007-02-09 09:14:07 -08:00
.gitignore [MIPS] Remove IT8172-based platforms, ITE 8172G and Globespan IVR support. 2006-10-03 17:59:17 +01:00
amiserial.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
apm-emulation.c [APM] Add shared version of APM emulation 2007-02-09 17:08:57 +00:00
applicom.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
applicom.h
briq_panel.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
cd1865.h
ChangeLog
consolemap.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
cp437.uni
cs5535_gpio.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
cyclades.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
decserial.c [PATCH] dz: Fixes to make it work 2006-12-07 08:39:41 -08:00
defkeymap.c_shipped
defkeymap.map
digi1.h [PATCH] Clean up the old digi support and rescue it 2005-09-07 16:57:20 -07:00
digi.h
digiFep1.h [PATCH] Clean up the old digi support and rescue it 2005-09-07 16:57:20 -07:00
digiPCI.h
ds1286.c [PATCH] proper flags type of spin_lock_irqsave() 2006-10-01 00:39:21 -07:00
ds1302.c [PATCH] make more file_operation structs static 2006-07-03 15:26:59 -07:00
ds1620.c [PATCH] make more file_operation structs static 2006-07-03 15:26:59 -07:00
dsp56k.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
dtlk.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
ec3104_keyb.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
efirtc.c [PATCH] make more file_operation structs static 2006-07-03 15:26:59 -07:00
epca.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
epca.h [PATCH] char: kill unneeded memsets 2006-10-04 07:55:13 -07:00
epcaconfig.h
esp.c [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
generic_nvram.c [PATCH] powerpc: Kill _machine and hard-coded platform numbers 2006-03-28 23:15:54 +11:00
generic_serial.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
genrtc.c WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
hangcheck-timer.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
hpet.c [PATCH] severing poll.h -> mm.h 2006-12-04 02:00:36 -05:00
hvc_beat.c [POWERPC] Celleb: hypervisor console driver 2007-02-07 14:03:21 +11:00
hvc_console.c [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
hvc_console.h [POWERPC] Make the hvc_console output buffer size settable 2006-07-13 18:53:32 +10:00
hvc_iseries.c Merge branch 'master' of git://oak/home/sfr/kernels/iseries/work 2006-10-04 15:02:27 +10:00
hvc_rtas.c [POWERPC] Make the hvc_console output buffer size settable 2006-07-13 18:53:32 +10:00
hvc_vio.c [POWERPC] The two vio HVC backends clash 2006-09-25 13:30:51 +10:00
hvcs.c [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
hvsi.c [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
i8k.c [PATCH] make more file_operation structs static 2006-07-03 15:26:59 -07:00
ip27-rtc.c [PATCH] make more file_operation structs static 2006-07-03 15:26:59 -07:00
isicom.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
istallion.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
Kconfig [PATCH] Char: mxser, obsolete old, nonexperimental new 2007-02-11 10:51:28 -08:00
keyboard.c [PATCH] vt: refactor console SAK processing 2007-02-11 10:51:24 -08:00
lcd.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
lcd.h Resurrect Cobalt support for 2.6. 2005-10-29 19:30:42 +01:00
lp.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
Makefile [APM] Add shared version of APM emulation 2007-02-09 17:08:57 +00:00
mbcs.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
mbcs.h
mem.c Revert "[PATCH] Fix up mmap_kmem" 2007-01-22 08:53:24 -08:00
misc.c [PATCH] Correct misc_register return code handling in several drivers 2006-12-07 08:39:35 -08:00
mmtimer.c [PATCH] Correct misc_register return code handling in several drivers 2006-12-07 08:39:35 -08:00
moxa.c [PATCH] Char: moxa, pci probing 2007-02-11 10:51:30 -08:00
mspec.c [PATCH] mspec driver build fix 2006-11-13 07:40:42 -08:00
mxser_new.c [PATCH] Char: mxser_new, fix sparse warning 2007-02-11 10:51:29 -08:00
mxser_new.h [PATCH] Char: mxser_new, upgrade to 1.9.15 2007-02-11 10:51:29 -08:00
mxser.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
mxser.h [PATCH] mxser: remove ambiguous redefinition of INIT_WORK 2007-02-11 10:51:25 -08:00
n_hdlc.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
n_r3964.c [PATCH] Char: n_r3964, cleanup 2007-02-11 10:51:28 -08:00
n_tty.c [PATCH] tty: remove useless memory barrier 2006-12-13 09:05:52 -08:00
nsc_gpio.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
nvram.c [PATCH] make more file_operation structs static 2006-07-03 15:26:59 -07:00
nwbutton.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
nwbutton.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
nwflash.c [PATCH] make more file_operation structs static 2006-07-03 15:26:59 -07:00
pc8736x_gpio.c [PATCH] drivers/char/pc8736x_gpio.c: remove unused static functions 2006-09-29 09:18:05 -07:00
ppdev.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
pty.c [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
random.c [PATCH] sysctl: remove unused "context" param 2006-12-10 09:55:41 -08:00
raw.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
riscom8_reg.h
riscom8.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
riscom8.h
rocket_int.h
rocket.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
rocket.h
rtc.c [PATCH] rtc warning fix 2006-12-22 08:55:47 -08:00
scan_keyb.c
scan_keyb.h
scc.h [PATCH] m68k: static vs. extern in scc.h 2006-01-12 09:09:00 -08:00
scx200_gpio.c [PATCH] scx200_gpio export cleanups 2006-09-29 09:18:06 -07:00
selection.c [PATCH] tty locking on resize 2006-09-29 09:18:12 -07:00
ser_a2232.c [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
ser_a2232.h
ser_a2232fw.ax
ser_a2232fw.h
serial167.c [PATCH] Char: serial167, cleanup 2007-02-11 10:51:28 -08:00
snsc_event.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
snsc.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
snsc.h [IA64-SGI] Handle SC env. powerdown events 2006-01-26 13:32:26 -08:00
sonypi.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
specialix_io8.h
specialix.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
stallion.c [PATCH] Char: stallion, use dynamic dev 2006-12-08 08:28:59 -08:00
sx.c [PATCH] sx: fix non-PCI build 2006-12-13 09:05:49 -08:00
sx.h [PATCH] Char: sx, request regions 2006-12-08 08:28:59 -08:00
sxboards.h
sxwindow.h
synclink_gt.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
synclink.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
synclinkmp.c [PATCH] Char: tty_wakeup cleanup 2007-02-11 10:51:26 -08:00
sysrq.c [PATCH] vt: refactor console SAK processing 2007-02-11 10:51:24 -08:00
tb0219.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
tipar.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
tlclk.c [PATCH] tlclk: bug fix + misc fixes 2007-01-23 07:52:06 -08:00
toshiba.c [PATCH] export toshiba SMM support for neofb module 2006-12-07 08:39:40 -08:00
tty_io.c [PATCH] Char: tty, delete wake_up_interruptible after tty_wakeup 2007-02-11 10:51:25 -08:00
tty_ioctl.c [PATCH] tty: improve encode_baud_rate logic 2007-02-11 10:51:32 -08:00
vc_screen.c [PATCH] struct path: convert char-drivers 2006-12-08 08:28:44 -08:00
viocons.c [POWERPC] iSeries: fix viocons init 2006-12-20 16:37:48 +11:00
viotape.c [POWERPC] iSeries: fix viotape init 2006-12-20 16:37:47 +11:00
vme_scc.c [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
vr41xx_giu.c [MIPS] Vr41xx: Fix after GENERIC_HARDIRQS_NO__DO_IRQ change 2007-01-23 18:26:47 +00:00
vt_ioctl.c [PATCH] vt: refactor console SAK processing 2007-02-11 10:51:24 -08:00
vt.c [PATCH] drivers/char/vc_screen.c: proper prototypes 2007-02-11 10:51:27 -08:00