Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/mac68k/dev The Cuda-based ADB hardware has the abil...



details:   https://anonhg.NetBSD.org/src/rev/68d58db78e59
branches:  trunk
changeset: 499263:68d58db78e59
user:      scottr <scottr%NetBSD.org@localhost>
date:      Wed Nov 15 06:35:51 2000 +0000

description:
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 38eb9c622d44 -r 68d58db78e59 sys/arch/mac68k/dev/adb.c
--- a/sys/arch/mac68k/dev/adb.c Wed Nov 15 04:09:19 2000 +0000
+++ b/sys/arch/mac68k/dev/adb.c Wed Nov 15 06:35:51 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: adb.c,v 1.39 2000/09/27 03:22:05 scottr Exp $  */
+/*     $NetBSD: adb.c,v 1.40 2000/11/15 06:35:51 scottr 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