summaryrefslogtreecommitdiff
path: root/sys/arch/alpha/tc/tcasic.c
diff options
context:
space:
mode:
authorMartin Pieuchot <mpi@cvs.openbsd.org>2017-10-29 08:50:44 +0000
committerMartin Pieuchot <mpi@cvs.openbsd.org>2017-10-29 08:50:44 +0000
commit2afd375ec19edb8a2115dc4bab2cfb3b3faee2cf (patch)
treeacddbc919829a021903eb1765f6048e0b680a07e /sys/arch/alpha/tc/tcasic.c
parent0ad115de732d7412195a161be8120691c14d5068 (diff)
Finish TURBOchannel scatter/gather map code (i.e. make it work) and
enable it when available (i.e. all DEC 3000 models but models 300). Tested on DEC 3000/600 (sgmap) and DEC 3000/300LX (no sgmap). from miod@
Diffstat (limited to 'sys/arch/alpha/tc/tcasic.c')
-rw-r--r--sys/arch/alpha/tc/tcasic.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/sys/arch/alpha/tc/tcasic.c b/sys/arch/alpha/tc/tcasic.c
index b1641130f6e..d3244f20a2a 100644
--- a/sys/arch/alpha/tc/tcasic.c
+++ b/sys/arch/alpha/tc/tcasic.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tcasic.c,v 1.16 2010/11/11 17:54:52 miod Exp $ */
+/* $OpenBSD: tcasic.c,v 1.17 2017/10/29 08:50:43 mpi Exp $ */
/* $NetBSD: tcasic.c,v 1.36 2001/08/23 01:16:52 nisimura Exp $ */
/*
@@ -42,9 +42,13 @@
/* Definition of the driver for autoconfig. */
int tcasicmatch(struct device *, void *, void *);
void tcasicattach(struct device *, struct device *, void *);
+int tcasicactivate(struct device *, int);
struct cfattach tcasic_ca = {
- sizeof (struct device), tcasicmatch, tcasicattach,
+ .ca_devsize = sizeof (struct device),
+ .ca_match = tcasicmatch,
+ .ca_attach = tcasicattach,
+ .ca_activate = tcasicactivate
};
struct cfdriver tcasic_cd = {
@@ -151,6 +155,19 @@ tcasicattach(parent, self, aux)
}
int
+tcasicactivate(struct device *self, int act)
+{
+ switch (cputype) {
+#ifdef DEC_3000_500
+ case ST_DEC_3000_500:
+ return tc_3000_500_activate(self, act);
+#endif
+ default:
+ return config_activate_children(self, act);
+ }
+}
+
+int
tcasicprint(aux, pnp)
void *aux;
const char *pnp;