public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Rogier Wolff <R.E.Wolff@BitWizard.nl>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: "linux-os \(Dick Johnson\)" <linux-os@analogic.com>,
	Krzysztof Halasa <khc@pm.waw.pl>,
	David Woodhouse <dwmw2@infradead.org>,
	Stuart MacDonald <stuartm@connecttech.com>,
	linux-serial@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: Serial custom speed deprecated?
Date: Sun, 27 Aug 2006 08:52:11 +0200	[thread overview]
Message-ID: <20060827065210.GA6932@bitwizard.nl> (raw)
In-Reply-To: <1156457501.3007.193.camel@localhost.localdomain>

On Thu, Aug 24, 2006 at 11:11:41PM +0100, Alan Cox wrote:
> Ar Iau, 2006-08-24 am 16:43 -0400, ysgrifennodd linux-os (Dick Johnson):
> > at 75 and increases by powers-of-two. This is because the hardware
> > always had fixed clocks with dividers that divided by powers-of-two.
> > What is the claim for the requirement of strange baud-rates set
> > as an integer of dimension "baud?" Where does this requirement
> > come from and what devices use these?

> A lot of chips will do all sorts of interesting speeds such as
> 31.5Kbit because today the clocks are themselves quite configurable.

More importantly, the base-clocks are getting higher and higher, and
the division is no longer a "power-of-two". Thus 9600 is no longer
2.456MHz / 2^8, but something like 33MHz / 3438. This allows modern
hardware to run much faster baud rates, as well as custom slower baud
rates.

Note that IMHO, we should have started hiding this mess from /drivers/
a long time ago. The tty layer should convert the B_9600 thingies to
"9600", the integer, and then call the set_termios function. The
driver should be prohibited from looking at how the the baud rate came
to be 9600, and attempt to approach the requested baud rate as good as
possible. It might return a flag somewhere: Not exact. In the example
above, the resulting baud rate is about 1.4 baud off: 9598.6. This is
not a problem in very many cases.

Once this is in place, you lose a lot of "figure out the baud rate
integer from the B_xxx settings" code in all the drivers, as well as
that we get to provide a new interface to userspace without having to
change ALL drivers at the same time. This decouples the drivers from
the kernel<->userspace interface.

	Roger. 

-- 
** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2600998 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
Q: It doesn't work. A: Look buddy, doesn't work is an ambiguous statement. 
Does it sit on the couch all day? Is it unemployed? Please be specific! 
Define 'it' and what it isn't doing. --------- Adapted from lxrbot FAQ

  reply	other threads:[~2006-08-27  6:52 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-23 21:41 Serial custom speed deprecated? Stuart MacDonald
2006-08-24  9:18 ` David Woodhouse
2006-08-24 12:41   ` Stuart MacDonald
2006-08-24 13:19     ` Alan Cox
2006-08-24 13:03       ` David Woodhouse
2006-08-24 16:27   ` Krzysztof Halasa
2006-08-24 17:41     ` Alan Cox
2006-08-24 18:51       ` Krzysztof Halasa
2006-08-24 20:43         ` linux-os (Dick Johnson)
2006-08-24 22:11           ` Alan Cox
2006-08-27  6:52             ` Rogier Wolff [this message]
2006-08-27 10:00               ` Russell King
2006-08-28 14:14               ` Stuart MacDonald
2006-08-28 20:09                 ` Russell King
2006-08-29  6:20                   ` Rogier Wolff
2006-08-29  7:46                     ` Russell King
2006-08-25 15:17           ` Stuart MacDonald
2006-08-25 15:52             ` linux-os (Dick Johnson)
2006-08-24 22:43         ` Alan Cox
2006-08-25 10:58           ` Krzysztof Halasa
2006-08-25 15:21           ` Stuart MacDonald
2006-08-25 19:32             ` Russell King
2006-08-25 20:21               ` Stuart MacDonald
2006-08-25 20:54                 ` linux-os (Dick Johnson)
2006-08-25 20:39               ` Theodore Tso
2006-08-26 12:16                 ` Krzysztof Halasa
2006-08-25 15:10         ` Stuart MacDonald
2006-08-24 22:05       ` Russell King
2006-08-25 15:01       ` Stuart MacDonald
     [not found] <6N8LR-22A-5@gated-at.bofh.it>
     [not found] ` <6Njxz-797-13@gated-at.bofh.it>
     [not found]   ` <6NqfR-5Ld-49@gated-at.bofh.it>
     [not found]     ` <6NrbQ-7Ab-27@gated-at.bofh.it>
     [not found]       ` <6NsB4-2GL-37@gated-at.bofh.it>
     [not found]         ` <6NvSc-1go-31@gated-at.bofh.it>
2006-08-25 11:40           ` Nick Craig-Wood
  -- strict thread matches above, loose matches on Subject: below --
2006-08-26 18:16 linux
2006-08-26 19:37 ` Ian Stirling
2006-08-26 20:30   ` linux
2006-08-28 12:17 ` linux-os (Dick Johnson)
2006-08-28 14:39   ` Alan Cox
2006-08-28 14:50     ` linux-os (Dick Johnson)
2006-08-28 15:51       ` Michael Poole
2006-08-28 16:57         ` linux-os (Dick Johnson)
2006-08-28 17:40           ` Michael Poole
2006-08-28 18:04             ` linux-os (Dick Johnson)
2006-08-28 17:01       ` Alan Cox
2006-08-28 17:24         ` linux
2006-08-26 19:35 linux

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060827065210.GA6932@bitwizard.nl \
    --to=r.e.wolff@bitwizard.nl \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=dwmw2@infradead.org \
    --cc=khc@pm.waw.pl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-os@analogic.com \
    --cc=linux-serial@vger.kernel.org \
    --cc=stuartm@connecttech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox