All of lore.kernel.org
 help / color / mirror / Atom feed
From: "David P. Reed" <dpreed@reed.com>
To: Rene Herman <rene.herman@keyaccess.nl>
Cc: Robert Hancock <hancockr@shaw.ca>,
	Christer Weinigel <christer@weinigel.se>,
	Zachary Amsden <zach@vmware.com>, Avi Kivity <avi@quramnet.com>,
	Ondrej Zary <linux@rainbow-software.org>,
	"H. Peter Anvin" <hpa@zytor.com>, Bodo Eggert <7eggert@gmx.de>,
	Ingo Molnar <mingo@elte.hu>, Alan Cox <alan@lxorguk.ukuu.org.uk>,
	Paul Rolland <rol@as2917.net>, Pavel Machek <pavel@ucw.cz>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-kernel@vger.kernel.org, Ingo Molnar <mingo@redhat.com>,
	rol <rol@witbe.net>
Subject: Re: [linux-kernel] Re: [PATCH] x86: provide a DMI based port 0x80 I/O delay override.
Date: Thu, 10 Jan 2008 09:41:22 -0500	[thread overview]
Message-ID: <47862E92.8010003@reed.com> (raw)
In-Reply-To: <47856A69.1090500@keyaccess.nl>


Rene Herman wrote:
> On 10-01-08 01:37, Robert Hancock wrote:
>>
>> I agree. In this case the BIOS on these laptops is trying to tell us 
>> "port 80 is used for our purposes, do not touch it". We should be 
>> listening.
>
> Listening is fine but what are you going to do after you have 
> listened? Right, not use port 0x80 but since that's the current idea 
> anyway outside of legacy drivers, you don't actually need to listen.
>
> If the quirk-to-0xed or similar was to stay, it's a much better 
> switching point than DMI strings but if not, it's not actually important.
Well, I was just suggesting a warning that would come up when a driver 
that still used port 80 was initialized...
I think that is what Alan Cox and others suggest for legacy drivers that 
have worked - I agree that it may not be the right thing to screw them 
up, especially since my laptop, and probably most machines that might 
start using port 80 or other "legacy ports" won't ever need those drivers.

I thought more about a complete solution last night.   A clean idea that 
really fits the linux design might be the following outline of a patch. 
I suspect it might seem far less ugly, and probably would meet Alan 
Cox's needs, too - I am very sympathetic about not breaking 8390's, etc.

Define a "motherboard resources" driver that claims all the resources 
defined for PNP0C02 devices during the pnp process.   I think Windoze 
actually does something quite similar.   This would claim port 80.

Define an iodelay driver.  This driver exists largely to claim port 80 
for the iodelay operation  (you could even define an option for other 
ports).  Legacy drivers would be modified to require iodelay.  The 
iodelay driver would set up the iodelay mechanism to do something other 
than the "boot time" default - which could be no delay, or udelay.  It 
would also set a flag that says "_b operations are safe".

Put a WARN_ONCE() in the in/out*_b operations that checks the flag that 
is set by the iodelay driver.  This would only trigger in the case that 
80 or whatever was reserved by some other device driver - such as the 
motherboard resources driver above.  Modern machines won't do that.

Finally, anything that happens before the motherboard resources and 
iodelay drivers are initialized cannot use in*_p or out*_p (whether they 
can be loadable modules rather than built in is a question).  This is a 
very small set, and I believe with the exception of the PIT (8253/4) are 
very safe.

Note that this idea is also compatible with rewriting all drivers to use 
"iodelay()" explicitly instead of _p().  But it doesn't require that.

>
> Rene.
>

  reply	other threads:[~2008-01-10 14:43 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <fa.u5p8NBl8IjcycTVVtf0K+YtqNQc@ifi.uio.no>
     [not found] ` <fa.NOJkdyuk0c8CAqzZcG+pF1TzhJM@ifi.uio.no>
     [not found]   ` <fa.YLAHN7jSUo9phsICUHnxilN7/lk@ifi.uio.no>
     [not found]     ` <fa.SvgVgdNA9oz4F+tQ9MB2VRwr8ck@ifi.uio.no>
     [not found]       ` <fa.By1MDYK0MY/fwkCWWrAiQCxl5KM@ifi.uio.no>
     [not found]         ` <fa.97XrGLIGlvAy4P/TB5vHHrfBrIw@ifi.uio.no>
2008-01-10  0:37           ` [linux-kernel] Re: [PATCH] x86: provide a DMI based port 0x80 I/O delay override Robert Hancock
2008-01-10  0:44             ` Rene Herman
2008-01-10 14:41               ` David P. Reed [this message]
     [not found] <9BdU5-1YW-9@gated-at.bofh.it>
     [not found] ` <9BeZN-3Gf-5@gated-at.bofh.it>
     [not found]   ` <9BnTB-1As-31@gated-at.bofh.it>
     [not found]     ` <9BrX4-8go-1@gated-at.bofh.it>
     [not found]       ` <9BuBG-4eR-51@gated-at.bofh.it>
     [not found]         ` <9BvRd-6aL-71@gated-at.bofh.it>
     [not found]           ` <9GRQW-1DX-13@gated-at.bofh.it>
     [not found]             ` <9GSah-23W-1@gated-at.bofh.it>
     [not found]               ` <9GSDy-2GD-23@gated-at.bofh.it>
     [not found]                 ` <9GTpK-40d-15@gated-at.bofh.it>
     [not found]                   ` <9GUvy-5H2-11@gated-at.bofh.it>
     [not found]                     ` <9GVKU-7SS-25@gated-at.bofh.it>
2008-01-07 19:38                       ` Bodo Eggert
2008-01-07 19:46                         ` H. Peter Anvin
2008-01-07 22:02                           ` Bodo Eggert
2008-01-07 22:10                             ` H. Peter Anvin
2008-01-07 22:27                               ` Bodo Eggert
2008-01-07 22:59                                 ` Rene Herman
2008-01-07 23:24                                   ` H. Peter Anvin
2008-01-07 23:26                                     ` Rene Herman
2008-01-08  0:10                                       ` [linux-kernel] " David P. Reed
2008-01-08  0:13                                         ` H. Peter Anvin
2008-01-08  1:38                                           ` David P. Reed
2008-01-08 17:10                                             ` Ondrej Zary
2008-01-08 17:24                                               ` David P. Reed
2008-01-08 17:38                                                 ` Ondrej Zary
2008-01-08 18:44                                                   ` David P. Reed
2008-01-08 18:51                                                     ` Alan Cox
2008-01-08 19:15                                                       ` David P. Reed
2008-01-08 19:23                                                         ` Alan Cox
2008-01-08 19:51                                                           ` David P. Reed
2008-01-09  2:52                                                         ` Zachary Amsden
2008-01-09  5:19                                                           ` H. Peter Anvin
2008-01-09 21:53                                                             ` Zachary Amsden
2008-01-09 22:22                                                               ` David P. Reed
2008-01-11  1:36                                                                 ` Zachary Amsden
2008-01-11  3:05                                                                   ` Rene Herman
2008-01-11 14:35                                                                     ` David P. Reed
2008-01-11 14:37                                                                       ` Alan Cox
2008-01-11 15:07                                                                         ` David P. Reed
2008-01-11 17:54                                                                           ` H. Peter Anvin
2008-01-11 14:49                                                                       ` Rene Herman
2008-01-14 21:57                                                                       ` David Woodhouse
2008-01-14 22:22                                                                         ` David P. Reed
2008-01-16 14:36                                                                           ` David Newall
2008-01-16 14:55                                                                             ` Alan Cox
2008-01-16 19:15                                                                               ` David Newall
2008-01-16 20:08                                                                                 ` Alan Cox
2008-01-17  6:25                                                                                   ` David Newall
2008-01-17 12:02                                                                                     ` Alan Cox
2008-01-17 13:36                                                                                       ` David Newall
2008-01-17 13:55                                                                                         ` Rene Herman
2008-01-17 21:58                                                                                           ` David Newall
2008-01-17 22:13                                                                                             ` Rene Herman
2008-01-18 13:37                                                                                               ` David Newall
2008-01-18 14:05                                                                                                 ` Rene Herman
2008-01-17 15:51                                                                                         ` Alan Cox
2008-01-09  5:30                                                           ` Christer Weinigel
2008-01-09 14:42                                                             ` David P. Reed
2008-01-09 15:27                                                             ` Rene Herman
2008-01-09 18:17                                                               ` Zachary Amsden
2008-01-09 18:18                                                                 ` H. Peter Anvin
2008-01-09 20:26                                                                   ` Christer Weinigel
2008-01-09 21:59                                                                     ` H. Peter Anvin
2008-01-09 18:22                                                                 ` Adrian Bunk
2008-01-09 18:27                                                                   ` H. Peter Anvin
2008-01-08 19:25                                                     ` Christer Weinigel
2008-01-08 20:28                                                       ` David P. Reed
2008-01-08 21:43                                                         ` Christer Weinigel
2008-01-08 22:24                                                           ` David P. Reed
2008-01-08 18:51                                                   ` Bodo Eggert
2008-01-08 19:13                                                     ` Ondrej Zary
2008-01-08 12:51                                       ` Bodo Eggert
2008-01-08 13:07                                         ` [linux-kernel] " David P. Reed
2008-01-08 14:37                                           ` Alan Cox
2008-01-07 23:57                                     ` David P. Reed
2008-01-08  1:58                                       ` Alan Cox
2007-12-17 13:02 Rene Herman
2007-12-17 17:14 ` H. Peter Anvin
2007-12-17 19:43   ` David P. Reed
2007-12-17 21:25     ` Alan Cox
2008-01-01 15:59       ` David P. Reed
2008-01-01 16:15         ` Alan Cox
2008-01-01 16:43           ` Ingo Molnar
2008-01-01 17:32             ` Alan Cox
2008-01-01 18:45               ` Ingo Molnar
2008-01-01 21:07                 ` Alan Cox
2008-01-02 10:04                   ` Ingo Molnar
2008-01-02 13:11                     ` [linux-kernel] " David P. Reed
2008-01-02 13:21                       ` Ingo Molnar

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=47862E92.8010003@reed.com \
    --to=dpreed@reed.com \
    --cc=7eggert@gmx.de \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=avi@quramnet.com \
    --cc=christer@weinigel.se \
    --cc=hancockr@shaw.ca \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rainbow-software.org \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=pavel@ucw.cz \
    --cc=rene.herman@keyaccess.nl \
    --cc=rol@as2917.net \
    --cc=rol@witbe.net \
    --cc=tglx@linutronix.de \
    --cc=zach@vmware.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.