Date: Fri, 28 Mar 1997 12:33:39 +0900 From: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> To: Ian Kallen <spidaman@well.com> Cc: freebsd-mobile@freebsd.org, freebsd-hackers@freebsd.org, yokota@zodiac.mech.utsunomiya-u.ac.jp Subject: Re: (Dell Latitude) psm0/sc0 conflicts killing X? Message-ID: <199703280333.MAA26251@zodiac.mech.utsunomiya-u.ac.jp> In-Reply-To: Your message of "Thu, 27 Mar 1997 07:53:23 PST." <Pine.GSO.3.93.970327074355.18816A-100000@well.com> References: <Pine.GSO.3.93.970327074355.18816A-100000@well.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>I don't know what else changed when I went from 2.2-GAMMA w/o PAO (Used >the zp drivers from the 3c589) to 2.2.1-RELEASE... I'm on a Dell XPi p100 >and Xinside's X server was doing fine w/ 800X600 @256 but since I ran the >upgrade and applied the PAO patches, I've had to explicitly re-enable psm0 >by booting w/ -c (other X won't start at all) I think this is normal. The psm driver is disabled in GENERIC kernel, with or without PAO, by default, isn't it? >but the keyboard is dead >once I'm in X. I tried reinstalling Xinside but that made no >differnce. Any comments or suggestions (if a look @ my kernel config >is needed to comment on it, I'll send that along as well) appreciated! I had a report from another Dell Latitude XPi owner stating that if he tries to change the keyboard repeat rate by kbdcontrol, his keyboard freezes. He and I are now chasing the problem. It appears that the keyboard controller of his Latitude behaves in an unusual way. I wonder the cause of your problem is similar to his. I would be very grateful if you could try the following patch to /sys/i386/isa/syscons.c, rebuild the kernel, and try `kbdcontrol -r fast' or try starting X. Please send me debug messages you see. You may see something like: sc0: enabling tty intr. (set_keyboard) sc0: about to send command and data (set_keyboard) sc0: command:xx data:yy ret:zz (set_keybard) in the console (vty0). If you see: sc0: kbdc is LOCKED!! (scintr) your problem is the same as his. Kazu --- syscons.c-1.205 Mon Mar 3 10:09:00 1997 +++ syscons.c Mon Mar 24 12:04:57 1997 @@ -647,6 +651,12 @@ mark_all(cur_console); } + if (!kbdc_lock(sc_kbdc, TRUE)) { + log(LOG_DEBUG, "sc0: kbdc is LOCKED!! (scintr)\n"); + return; + } else { + kbdc_lock(sc_kbdc, FALSE); + } /* * Loop while there is still input to get from the keyboard. * I don't think this is nessesary, and it doesn't fix @@ -3114,7 +3131,7 @@ if ((c == -1) || !set_controller_command_byte(sc_kbdc, kbdc_get_device_mask(sc_kbdc), - KBD_ENABLE_KBD_PORT | KBD_DISABLE_KBD_INT + KBD_DISABLE_KBD_PORT | KBD_DISABLE_KBD_INT | KBD_DISABLE_AUX_PORT | KBD_DISABLE_AUX_INT)) { /* CONTROLLER ERROR */ kbdc_lock(sc_kbdc, FALSE); @@ -3128,9 +3145,14 @@ * but the timeout routine (`scrn_timer()') will be blocked * by the lock flag set via `kbdc_lock()' */ + log(LOG_DEBUG, "sc0: enabling tty intr. (set_keyboard)\n"); splx(s); + log(LOG_DEBUG, "sc0: about to send command and data (set_keyboard)\n"); - send_kbd_command_and_data(sc_kbdc, command, data); + log(LOG_DEBUG, "sc0: command:%x data:%x ret:%x (set_keybard)\n", + command, data, + send_kbd_command_and_data(sc_kbdc, command, data)); + send_kbd_command(sc_kbdc, KBDC_ENABLE_KBD); /* restore the interrupts */ if (!set_controller_command_byte(sc_kbdc,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703280333.MAA26251>