From owner-FreeBSD-users-jp@jp.freebsd.org  Tue Sep 21 17:11:27 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id RAA11842;
	Tue, 21 Sep 1999 17:11:27 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from canongate.in.canon.co.jp (canongate.in.canon.co.jp [150.61.4.5])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id RAA11837
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 21 Sep 1999 17:11:26 +0900 (JST)
	(envelope-from shuzo@cis.canon.co.jp)
Received: (from uucp@localhost)
	by canongate.in.canon.co.jp (3.7W) id RAA08799
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 21 Sep 1999 17:11:25 +0900 (JST)
Received: from <shuzo@cis.canon.co.jp> (isvw1.cecn.canon.co.jp [150.61.8.152]) by canongate via smap (V2.1)
	id xmaa08741; Tue, 21 Sep 99 17:10:49 +0900
Received: from canongw.cecn.canon.co.jp (localhost [127.0.0.1])
	by isvw1.cecn.canon.co.jp (8.9.3/3.7W) with SMTP id RAA05562
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 21 Sep 1999 17:10:48 +0900 (JST)
Received: from gizmo.cis.canon.co.jp (gizmo.cis.canon.co.jp [172.20.26.1])
	by canongw.cecn.canon.co.jp (8.9.3/3.7W) with ESMTP id RAA26736
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 21 Sep 1999 17:10:48 +0900 (JST)
Received: from localhost (zoo.cis.canon.co.jp [172.20.26.151]) by gizmo.cis.canon.co.jp (8.7.5/3.5W) with ESMTP id RAA01921 for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 21 Sep 1999 17:10:47 +0900 (JST)
To: FreeBSD-users-jp@jp.freebsd.org
X-Mailer: Mew version 1.94pre3 on Emacs 20.3 / Mule 4.0 (HANANOEN)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <19990921171047K.shuzo@cis.canon.co.jp>
Date: Tue, 21 Sep 1999 17:10:47 +0900
From: Shuichi NAKAMURA <shuzo@cis.canon.co.jp>
X-Dispatcher: imput version 990826(IM126)
Lines: 99
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990727
X-Sequence: FreeBSD-users-jp 45848
Subject: [FreeBSD-users-jp 45848] CS-124 older firmware patch
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: shuzo@cis.canon.co.jp

$BCfB<$H?=$7$^$9!%(B

$B$+$J$j8E$$OC$J$N$G$9$,!$0JA0$W$i$C$H%[!<%`$J$I$GHNGd$5$l$F$$$?(B
CS-124$B$H$$$&%-!<%\!<%I@ZBX4o(B(http://www.plathome.co.jp/item/cs/)
$B$G$9$,!$$3$l$N8E$$%U%!!<%`%&%'%"$N$b$N$G$O!$(BFreeBSD$B$G%^%&%9$,(B
$BG'<1$G$-$J$$(B(probe$B$K<:GT$9$k(B)$B$H$$$&OC$,$"$j$^$7$?!%(B

$B$$$m$$$mD4$Y$?7k2L!$(BFreeBSD$B$N%I%i%$%P(B(/sys/i386/isa/psm.c)$B$N(B
probe$B%k!<%A%s(B(enable_aux_dev()$B$H(Bdisable_aux_dev())$B$KIT6q9g$,$"$j!$(B
probe$B$K<:GT$7$F$$$?$3$H$,$o$+$j$^$7$?!%(B

$B6qBNE*$K$O!$(BCS-124$B$r4V$K64$s$G!$%^%&%9$K%3%^%s%I$rAw?.$7$?7k2L!$(B
$B%^%&%9$,0UL#$N$"$k%G!<%?$rJV?.$G$-$l$P!$(Back$B$H$7$F(B0xFA(=PSM_ACK)
$B$rJV?.$9$k$N$G$9$,!$2?$i$+$N860x$G%G!<%?$rJV?.$G$-$J$$>l9g$O(B
ack$B$H$7$F(B0xFE(PSM_RESEND)$B$rJV?.$9$k$N$G$9!%(B
$B$3$l$O(BPS/2$B%W%m%H%3%k$N;EMM$G(B0xFE$B$O:FAw?.MW5a$N(Back$B$G$9!%(BCS-124$B$O;EMM$K(B
$B9gCW$7$?7k2L$rJV$7$F$*$j!$2?$b0-$/$"$j$^$;$s!%(B
$B$H$3$m$,!$(Bprobe$B%k!<%A%s$G$O!$(B0xFA$B0J30$rJV?.$5$l$?>l9g$K$O!$(B
$B:FAw?.$r9T$J$o$:$K!$C1$K(Benable$B$G$-$J$+$C$?$H$7$F!$(Bprobe$B$K<:GT$7$F(B
$B$7$^$&$N$G$7$?!%(B
$B$3$l$O<B:]$O(BCS-124$B$K8B$i$:!$%X%s%F%3$J%^%&%9$G$b5/$3$jF@$k8=>]$G$9!%(B

$B$H$$$&$3$H$G!$%/%$%C%/%O%C%/$J%Q%C%A(B(for 2.2.8-R)$B$G$9!%(B
$B0l1~(BCS-124($B8E$$(BFirmware)$BMQ$H$7$F$*$-$^$9$,!$E,@Z$K=q$-D>$7$F(B
$B%=!<%9%D%j!<$K<h$j9~$^$l$?J}$,$$$$$+$H;W$$$^$9!%(B

3.1-R$B$G$bF1MM$JLdBj$,$"$C$?$H;W$$$^$9!%(B
3.2-R, 3.3-R$B$O%$%s%9%H!<%k$7$F$J$$$N$G$o$+$j$^$;$s!%(B
($B$b$72r7h:Q$_$J$i!$L5MQ$G$9$,!$(Bwww.jp.freebsd.org$B$N8!:w$G$b(BCS-124$B$N(B
$B3:Ev$7$=$&$JJ8=q$O$R$C$+$+$j$^$;$s$G$7$?(B)

$ cd /sys/i386/isa 
$ patch -p < this_patch
$B$G%Q%C%A$rEv$F$F2<$5$$!%(B

--- psm.c	Tue Sep 21 16:45:15 1999
+++ psm.c.orig	Tue Sep 21 16:44:22 1999
@@ -298,11 +298,29 @@
 enable_aux_dev(KBDC kbdc)
 {
     int res;
+#if 1
+    int timeout;
+#endif
 
     res = send_aux_command(kbdc, PSMC_ENABLE_DEV);
     if (verbose >= 2)
         log(LOG_DEBUG, "psm: ENABLE_DEV return code:%04x\n", res);
-
+#if 1
+    if(res == PSM_RESEND) {
+      for (timeout=0;timeout<10;timeout++) {
+	res = send_aux_command(kbdc, PSMC_ENABLE_DEV);
+	if (verbose >= 2)
+	  log(LOG_DEBUG, "psm: ENABLE_DEV return code:%04x again\n", res);
+	if (res!=PSM_RESEND) {
+	  if (verbose >= 2)
+	    log(LOG_DEBUG, "psm: ENABLE_DEV resend breaked\n");
+	  break;
+	}
+      }
+      if (verbose >= 2)
+	log(LOG_DEBUG, "psm: ENABLE_DEV PSM_RESEND timeout!\n");
+    }
+#endif
     return (res == PSM_ACK);
 }
 
@@ -310,11 +328,29 @@
 disable_aux_dev(KBDC kbdc)
 {
     int res;
+#if 1
+    int timeout;
+#endif
 
     res = send_aux_command(kbdc, PSMC_DISABLE_DEV);
     if (verbose >= 2)
         log(LOG_DEBUG, "psm: DISABLE_DEV return code:%04x\n", res);
-
+#if 1
+    if(res == PSM_RESEND) {
+      for (timeout=0;timeout<10;timeout++) {
+	res = send_aux_command(kbdc, PSMC_ENABLE_DEV);
+	if (verbose >= 2)
+	  log(LOG_DEBUG, "psm: ENABLE_DEV return code:%04x again\n", res);
+	if (res!=PSM_RESEND) {
+	  if (verbose >= 2)
+	    log(LOG_DEBUG, "psm: ENABLE_DEV resend breaked\n");
+	  break;
+	}
+      if (verbose >= 2)
+	log(LOG_DEBUG, "psm: ENABLE_DEV PSM_RESEND timeout!\n");
+      }
+    }
+#endif
     return (res == PSM_ACK);
 }
 
