lkml.org 
[lkml]   [2005]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: i8042 access timings
On Wed, 26 Jan 2005, Dmitry Torokhov wrote:

> On Wed, 26 Jan 2005 16:43:07 +0100, Vojtech Pavlik <vojtech@suse.cz> wrote:
>> On Tue, Jan 25, 2005 at 02:41:14AM -0500, Dmitry Torokhov wrote:
>>> @@ -213,7 +217,10 @@
>>> if (!retval)
>>> for (i = 0; i < ((command >> 8) & 0xf); i++) {
>>> if ((retval = i8042_wait_read())) break;
>>> - if (i8042_read_status() & I8042_STR_AUXDATA)
>>> + udelay(I8042_STR_DELAY);
>>> + str = i8042_read_status();
>> []
>>> + udelay(I8042_DATA_DELAY);
>>> + if (str & I8042_STR_AUXDATA)
>>> param[i] = ~i8042_read_data();
>>> else
>>> param[i] = i8042_read_data();
>>
>> We may as well drop the negation. It's a bad way to signal the data came
>> from the AUX port. Then we don't need the extra status read and can just
>> proceed to read the data, since IMO we don't need to wait inbetween,
>> even according to the IBM spec.
>
> Do you remember why it has been done to begin with?
>
> --
> Dmitry


The only time you need any delay at all is after you have send
the chip a reset command (0xff). Of course if you expect the
device to turn ON/OFF something like the old A20 bit, then
you need to wait for it to (1) get the command, (2) interpret
it (it contains a uP), then read/modify write the appropriate
bit. That takes time. However, if you get an interrupt that
says "data are available", you read the data with no waiting.
It's there and has been for a long time. The status bits will
have always been set before the internal status event. There
is never any need to wait after that.

Most of the newer emulations are inside Super-IO chips. They
don't suffer the port I/O glitches that the old ISA-mapped
devices did. You done' even need the "_p" in the port read/writes
but we need to maintain compatibility with some old machines
so I wouldn't change that.


Cheers,
Dick Johnson
Penguin : Linux version 2.6.10 on an i686 machine (5537.79 BogoMips).
Notice : All mail here is now cached for review by Dictator Bush.
98.36% of all statistics are fiction.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:09    [W:0.050 / U:0.520 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site