Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-5]: src/sys/arch/mac68k/dev Pullup 1.40 [scottr]:



details:   https://anonhg.NetBSD.org/src/rev/9e9469de9183
branches:  netbsd-1-5
changeset: 490249:9e9469de9183
user:      tv <tv%NetBSD.org@localhost>
date:      Wed Nov 15 20:20:42 2000 +0000

description:
Pullup 1.40 [scottr]:
The Cuda-based ADB hardware has the ability to queue some commands and
return control to the main CPU before completing the ADB transaction.
Double the adb_op_sync() timeout as a result.  Fixes PR 11310.

diffstat:

 sys/arch/mac68k/dev/adb.c |  12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diffs (27 lines):

diff -r d006606a6e4e -r 9e9469de9183 sys/arch/mac68k/dev/adb.c
--- a/sys/arch/mac68k/dev/adb.c Wed Nov 15 20:14:31 2000 +0000
+++ b/sys/arch/mac68k/dev/adb.c Wed Nov 15 20:20:42 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: adb.c,v 1.36.2.1 2000/09/21 13:09:15 scottr Exp $      */
+/*     $NetBSD: adb.c,v 1.36.2.2 2000/11/15 20:20:42 tv Exp $  */
 
 /*
  * Copyright (C) 1994  Bradley A. Grantham
@@ -285,8 +285,16 @@
                 *  - up to 8 data bytes: 64 * 100 usec = 6400 usec
                 *  - stop bit (with SRQ): 140 usec
                 * Total: 6900 usec
+                *
+                * This is the total time allowed by the specification.  Any
+                * device that doesn't conform to this will fail to operate
+                * properly on some Apple systems.  In spite of this we
+                * double the time to wait; some Cuda-based apparently
+                * queues some commands and allows the main CPU to continue
+                * processing (radical concept, eh?).  To be safe, allow
+                * time for two complete ADB transactions to occur.
                 */
-               for (tmout = 8000; !flag && tmout >= 10; tmout -= 10)
+               for (tmout = 13800; !flag && tmout >= 10; tmout -= 10)
                        delay(10);
                if (!flag && tmout > 0)
                        delay(tmout);



Home | Main Index | Thread Index | Old Index