Module Name: src
Committed By: martin
Date: Tue May 2 17:52:39 UTC 2023
Modified Files:
src/sys/arch/arm/ep93xx [netbsd-10]: ep93xx_intr.c ep93xxvar.h
src/sys/arch/evbarm/tsarm [netbsd-10]: tsarm_machdep.c
Log Message:
Pull up following revision(s) (requested by jmcneill in ticket #155):
sys/arch/arm/ep93xx/ep93xx_intr.c: revision 1.28
sys/arch/arm/ep93xx/ep93xxvar.h: revision 1.7
sys/arch/evbarm/tsarm/tsarm_machdep.c: revision 1.36
TS7200: Defer event counter registration until after evcnt is initialized
Patch from Lloyd Parkes in PR kern/57386
To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.27.4.1 src/sys/arch/arm/ep93xx/ep93xx_intr.c
cvs rdiff -u -r1.6 -r1.6.68.1 src/sys/arch/arm/ep93xx/ep93xxvar.h
cvs rdiff -u -r1.34 -r1.34.4.1 src/sys/arch/evbarm/tsarm/tsarm_machdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/ep93xx/ep93xx_intr.c
diff -u src/sys/arch/arm/ep93xx/ep93xx_intr.c:1.27 src/sys/arch/arm/ep93xx/ep93xx_intr.c:1.27.4.1
--- src/sys/arch/arm/ep93xx/ep93xx_intr.c:1.27 Sun Nov 21 08:25:26 2021
+++ src/sys/arch/arm/ep93xx/ep93xx_intr.c Tue May 2 17:52:39 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ep93xx_intr.c,v 1.27 2021/11/21 08:25:26 skrll Exp $ */
+/* $NetBSD: ep93xx_intr.c,v 1.27.4.1 2023/05/02 17:52:39 martin Exp $ */
/*
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ep93xx_intr.c,v 1.27 2021/11/21 08:25:26 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ep93xx_intr.c,v 1.27.4.1 2023/05/02 17:52:39 martin Exp $");
/*
* Interrupt support for the Cirrus Logic EP93XX
@@ -257,9 +257,6 @@ ep93xx_intr_init(void)
TAILQ_INIT(&iq->iq_list);
snprintf(iq->iq_name, sizeof(iq->iq_name), "irq %d", i);
- evcnt_attach_dynamic(&iq->iq_ev, EVCNT_TYPE_INTR,
- NULL, (i < VIC_NIRQ ? "vic1" : "vic2"),
- iq->iq_name);
}
curcpu()->ci_intr_depth = 0;
set_curcpl(0);
@@ -275,6 +272,20 @@ ep93xx_intr_init(void)
enable_interrupts(I32_bit);
}
+void
+ep93xx_intr_evcnt_attach(void)
+{
+ struct intrq *iq;
+ int i;
+
+ for (i = 0; i < NIRQ; i++) {
+ iq = &intrq[i];
+ evcnt_attach_dynamic(&iq->iq_ev, EVCNT_TYPE_INTR,
+ NULL, (i < VIC_NIRQ ? "vic1" : "vic2"),
+ iq->iq_name);
+ }
+}
+
void *
ep93xx_intr_establish(int irq, int ipl, int (*ih_func)(void *), void *arg)
{
Index: src/sys/arch/arm/ep93xx/ep93xxvar.h
diff -u src/sys/arch/arm/ep93xx/ep93xxvar.h:1.6 src/sys/arch/arm/ep93xx/ep93xxvar.h:1.6.68.1
--- src/sys/arch/arm/ep93xx/ep93xxvar.h:1.6 Mon Nov 12 18:00:36 2012
+++ src/sys/arch/arm/ep93xx/ep93xxvar.h Tue May 2 17:52:39 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ep93xxvar.h,v 1.6 2012/11/12 18:00:36 skrll Exp $ */
+/* $NetBSD: ep93xxvar.h,v 1.6.68.1 2023/05/02 17:52:39 martin Exp $ */
/*
* Copyright (c) 2004 Jesse Off
* All rights reserved.
@@ -69,6 +69,7 @@ extern struct arm32_bus_dma_tag ep93xx_b
void ep93xx_intr_init(void);
void *ep93xx_intr_establish(int irq, int ipl, int (*)(void *), void *);
void ep93xx_intr_disestablish(void *);
+void ep93xx_intr_evcnt_attach(void);
/* Platform needs to provide this */
bus_dma_tag_t ep93xx_bus_dma_init(struct arm32_bus_dma_tag *);
void ep93xx_reset(void);
Index: src/sys/arch/evbarm/tsarm/tsarm_machdep.c
diff -u src/sys/arch/evbarm/tsarm/tsarm_machdep.c:1.34 src/sys/arch/evbarm/tsarm/tsarm_machdep.c:1.34.4.1
--- src/sys/arch/evbarm/tsarm/tsarm_machdep.c:1.34 Sun Jul 3 19:58:42 2022
+++ src/sys/arch/evbarm/tsarm/tsarm_machdep.c Tue May 2 17:52:39 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: tsarm_machdep.c,v 1.34 2022/07/03 19:58:42 andvar Exp $ */
+/* $NetBSD: tsarm_machdep.c,v 1.34.4.1 2023/05/02 17:52:39 martin Exp $ */
/*
* Copyright (c) 2001, 2002, 2003 Wasabi Systems, Inc.
@@ -73,7 +73,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tsarm_machdep.c,v 1.34 2022/07/03 19:58:42 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tsarm_machdep.c,v 1.34.4.1 2023/05/02 17:52:39 martin Exp $");
#include "opt_arm_debug.h"
#include "opt_console.h"
@@ -857,3 +857,9 @@ ep93xx_bus_dma_init(struct arm32_bus_dma
return dmat;
}
+
+void
+cpu_startup_hook(void)
+{
+ ep93xx_intr_evcnt_attach();
+}