public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: <linux-kernel@vger.kernel.org>, Vojtech Pavlik <vojtech@suse.cz>
Subject: 2.6.3-bk7 i8042 does not work on a genuine i386 ibm ps/2 model 70.
Date: 29 Feb 2004 07:32:19 -0700	[thread overview]
Message-ID: <m1znb29css.fsf@ebiederm.dsl.xmission.com> (raw)


The i8042 driver attempts to detect if IBM PC compatiblity mode i.e.
I8042_CTR_XLATE is enabled.  Unfortunately on a genuine IBM PS/2, (a pc
incompatible :) this does not work. 

In i8042_controller_init if I disable the detection of the keyboard
not being in XLATE mode everything works fine.

/*
 * If the chip is configured into nontranslated mode by the BIOS, don't
 * bother enabling translating and be happy.
 */     
#if 0

	if (~i8042_ctr & I8042_CTR_XLATE)
		i8042_direct = 1;
#endif


The value of i8042_initial_ctr is 0x25 in case that helps.

I am not certain where to proceed from here.

The piece I am certain about is that the keyboard controller has
traditionally been a tiny microcontroller on PCs so that there is a
wide variance in the commands and the exact format that they support.
And so far every data sheet I have looked at the documentation is
slightly different.  The only real intel datasheet I could find was
for the i8741A.  And it does not document the traditional interface
implemented but the i8042, because that was done in firmware.

This machine is primarily a test machine to make certain my code
works on older hardware.  So I am willing try any interesting or
likely patches.

My primary problem is that the code does not do the conservative
thing and assume the BIOS setup the machine in PC compatible mode,
and only when certain XLATE mode is implemented by the i8042 act on
that information.  Instead the code is assumes it knows how the
hardware works when in fact it does not.  

One solution might be check to assume XLATE mode is always enabled
unless the underlying hardware matches a known list of superio chips.

It is extremely evil to try and use a machine when the scancodes are
misinterpreted.

Eric

             reply	other threads:[~2004-02-29 14:41 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-29 14:32 Eric W. Biederman [this message]
2004-03-03 10:13 ` 2.6.3-bk7 i8042 does not work on a genuine i386 ibm ps/2 model 70 Vojtech Pavlik
2004-03-03 14:05   ` David Weinehall
2004-03-03 14:12     ` Vojtech Pavlik
2004-03-03 18:51   ` Eric W. Biederman
2004-03-03 20:30     ` Eric W. Biederman
2004-03-04  6:45       ` [PATCH] 2.6.4-rc1 make i8042 " Eric W. Biederman

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=m1znb29css.fsf@ebiederm.dsl.xmission.com \
    --to=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vojtech@suse.cz \
    /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