PERFORCE change 94270 for review
Marcel Moolenaar
marcel at FreeBSD.org
Wed Mar 29 22:32:29 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=94270
Change 94270 by marcel at marcel_nfs on 2006/03/29 22:31:33
Missed in previous changeset...
Affected files ...
.. //depot/projects/uart/dev/scc/scc_core.c#16 edit
Differences ...
==== //depot/projects/uart/dev/scc/scc_core.c#16 (text+ko) ====
@@ -102,7 +102,7 @@
const char *sep;
bus_space_handle_t bh;
u_long base, size, start;
- int c, error, mode, reset;
+ int c, error, mode, sysdev;
/*
* The sc_class field defines the type of SCC we're going to work
@@ -142,8 +142,7 @@
* Create the control structures for our children. Probe devices
* and query them to see if we can reset the hardware.
*/
- reset = 1;
-
+ sysdev = 0;
sc->sc_chan = malloc(sizeof(struct scc_chan) * cl->cl_channels,
M_SCC, M_WAITOK | M_ZERO);
base = rman_get_start(sc->sc_rres);
@@ -170,18 +169,20 @@
m = &ch->ch_mode[mode];
m->m_chan = ch;
m->m_mode = 1U << mode;
- if ((cl->cl_modes & m->m_mode) == 0)
+ if ((cl->cl_modes & m->m_mode) == 0 || ch->ch_sysdev)
continue;
m->m_dev = device_add_child(dev, NULL, -1);
device_set_ivars(m->m_dev, (void *)m);
error = device_probe_child(dev, m->m_dev);
if (!error) {
m->m_probed = 1;
- reset = (reset && SERDEV_RESET(m->m_dev));
+ m->m_sysdev = SERDEV_SYSDEV(m->m_dev) ? 1 : 0;
+ ch->ch_sysdev |= m->m_sysdev;
}
}
start += (cl->cl_range < 0) ? -size : size;
+ sysdev |= ch->ch_sysdev;
}
/*
@@ -190,9 +191,9 @@
*/
if (bootverbose) {
device_printf(dev, "%sresetting hardware\n",
- (reset) ? "" : "not ");
+ (sysdev) ? "not " : "");
}
- error = SCC_ATTACH(sc, reset);
+ error = SCC_ATTACH(sc, !sysdev);
if (error)
goto fail;
More information about the p4-projects
mailing list