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(); +}