Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/ic Ops, restore sync/wide parameters after a reselect.



details:   https://anonhg.NetBSD.org/src/rev/689a8609f02c
branches:  trunk
changeset: 485773:689a8609f02c
user:      bouyer <bouyer%NetBSD.org@localhost>
date:      Fri May 05 09:32:48 2000 +0000

description:
Ops, restore sync/wide parameters after a reselect.
Also, better handling of parity errors.

diffstat:

 sys/dev/ic/siop.c |  8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diffs (29 lines):

diff -r dab5b0c798e6 -r 689a8609f02c sys/dev/ic/siop.c
--- a/sys/dev/ic/siop.c Fri May 05 09:05:44 2000 +0000
+++ b/sys/dev/ic/siop.c Fri May 05 09:32:48 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: siop.c,v 1.10 2000/05/05 09:05:44 bouyer Exp $ */
+/*     $NetBSD: siop.c,v 1.11 2000/05/05 09:32:48 bouyer Exp $ */
 
 /*
  * Copyright (c) 2000 Manuel Bouyer.
@@ -670,7 +670,7 @@
                        else
                                printf("%s:", sc->sc_dev.dv_xname);
                        printf("parity error\n");
-                       need_reset = 1;
+                       goto reset;
                }
                if ((sist1 & SIST1_STO) && need_reset == 0) {
                        /* selection time out, assume there's no device here */
@@ -934,6 +934,10 @@
                        }
                        bus_space_write_4(sc->sc_rt, sc->sc_rh, SIOP_DSA,
                            siop_cmd->dsa);
+                       bus_space_write_1(sc->sc_rt, sc->sc_rh, SIOP_SCNTL3,
+                           (sc->targets[target]->id >> 24) & 0xff);
+                       bus_space_write_1(sc->sc_rt, sc->sc_rh, SIOP_SCXFER,
+                           (sc->targets[target]->id >> 8) & 0xff);
                        /* no table to flush */
                        CALL_SCRIPT(Ent_selected);
                        return 1;



Home | Main Index | Thread Index | Old Index