Module Name: src Committed By: skrll Date: Fri Aug 26 15:45:48 UTC 2016
Modified Files: src/sys/arch/algor/algor: algor_intr.c src/sys/arch/evbmips/alchemy: mach_intr.c src/sys/arch/evbmips/atheros: mach_intr.c src/sys/arch/evbmips/cavium: mach_intr.c src/sys/arch/evbmips/evbmips: interrupt.c src/sys/arch/evbmips/gdium: gdium_intr.c src/sys/arch/evbmips/include: intr.h src/sys/arch/evbmips/ingenic: clock.c intr.c src/sys/arch/evbmips/loongson: loongson_intr.c src/sys/arch/evbmips/malta: malta_intr.c src/sys/arch/mips/adm5120: adm5120_intr.c src/sys/arch/mips/ralink: ralink_intr.c src/sys/arch/mips/rmi: rmixl_intr.c src/sys/dev/pci/voyager: pwmclock.c Log Message: Adjust evbmips_iointr to pass a clockframe pointer and use it for pwmclock @ voyager. Suggested by matt@ Hi macallan! To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/algor/algor/algor_intr.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/evbmips/alchemy/mach_intr.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/evbmips/atheros/mach_intr.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/evbmips/cavium/mach_intr.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/evbmips/evbmips/interrupt.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/evbmips/gdium/gdium_intr.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/evbmips/include/intr.h cvs rdiff -u -r1.7 -r1.8 src/sys/arch/evbmips/ingenic/clock.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/evbmips/ingenic/intr.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/evbmips/loongson/loongson_intr.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/evbmips/malta/malta_intr.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/mips/adm5120/adm5120_intr.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/mips/ralink/ralink_intr.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/mips/rmi/rmixl_intr.c cvs rdiff -u -r1.10 -r1.11 src/sys/dev/pci/voyager/pwmclock.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/algor/algor/algor_intr.c diff -u src/sys/arch/algor/algor/algor_intr.c:1.1 src/sys/arch/algor/algor/algor_intr.c:1.2 --- src/sys/arch/algor/algor/algor_intr.c:1.1 Sat Jul 9 16:03:00 2011 +++ src/sys/arch/algor/algor/algor_intr.c Fri Aug 26 15:45:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: algor_intr.c,v 1.1 2011/07/09 16:03:00 matt Exp $ */ +/* $NetBSD: algor_intr.c,v 1.2 2016/08/26 15:45:47 skrll Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: algor_intr.c,v 1.1 2011/07/09 16:03:00 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: algor_intr.c,v 1.2 2016/08/26 15:45:47 skrll Exp $"); #define __INTR_PRIVATE #include "opt_algor_p4032.h" @@ -102,9 +102,9 @@ intr_init(void) #ifdef evbmips void -evbmips_iointr(int ipl, vaddr_t pc, uint32_t pending) +evbmips_iointr(int ipl, uint32_t pending, struct clockframe *cf) { - (*algor_iointr)(ipl, pc, pending); + (*algor_iointr)(ipl, cf->pc, pending); } void * Index: src/sys/arch/evbmips/alchemy/mach_intr.c diff -u src/sys/arch/evbmips/alchemy/mach_intr.c:1.6 src/sys/arch/evbmips/alchemy/mach_intr.c:1.7 --- src/sys/arch/evbmips/alchemy/mach_intr.c:1.6 Sun Jul 10 00:03:52 2011 +++ src/sys/arch/evbmips/alchemy/mach_intr.c Fri Aug 26 15:45:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: mach_intr.c,v 1.6 2011/07/10 00:03:52 matt Exp $ */ +/* $NetBSD: mach_intr.c,v 1.7 2016/08/26 15:45:47 skrll Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mach_intr.c,v 1.6 2011/07/10 00:03:52 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mach_intr.c,v 1.7 2016/08/26 15:45:47 skrll Exp $"); #include "opt_ddb.h" @@ -61,8 +61,8 @@ evbmips_intr_init(void) } void -evbmips_iointr(int ipl, uint32_t pc, uint32_t ipending) +evbmips_iointr(int ipl, uint32_t ipending, struct clockframe *cf) { - au_iointr(ipl, pc, ipending); + au_iointr(ipl, cf->pc, ipending); } Index: src/sys/arch/evbmips/atheros/mach_intr.c diff -u src/sys/arch/evbmips/atheros/mach_intr.c:1.6 src/sys/arch/evbmips/atheros/mach_intr.c:1.7 --- src/sys/arch/evbmips/atheros/mach_intr.c:1.6 Sun Jul 10 00:03:53 2011 +++ src/sys/arch/evbmips/atheros/mach_intr.c Fri Aug 26 15:45:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: mach_intr.c,v 1.6 2011/07/10 00:03:53 matt Exp $ */ +/* $NetBSD: mach_intr.c,v 1.7 2016/08/26 15:45:47 skrll Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mach_intr.c,v 1.6 2011/07/10 00:03:53 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mach_intr.c,v 1.7 2016/08/26 15:45:47 skrll Exp $"); #include "opt_ddb.h" @@ -55,8 +55,8 @@ evbmips_intr_init(void) } void -evbmips_iointr(int ipl, vaddr_t pc, uint32_t ipending) +evbmips_iointr(int ipl, uint32_t ipending, struct clockframe *cf) { - (*platformsw->apsw_intrsw->aisw_iointr)(ipl, pc, ipending); + (*platformsw->apsw_intrsw->aisw_iointr)(ipl, cf->pc, ipending); } Index: src/sys/arch/evbmips/cavium/mach_intr.c diff -u src/sys/arch/evbmips/cavium/mach_intr.c:1.2 src/sys/arch/evbmips/cavium/mach_intr.c:1.3 --- src/sys/arch/evbmips/cavium/mach_intr.c:1.2 Mon Jun 1 22:55:12 2015 +++ src/sys/arch/evbmips/cavium/mach_intr.c Fri Aug 26 15:45:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: mach_intr.c,v 1.2 2015/06/01 22:55:12 matt Exp $ */ +/* $NetBSD: mach_intr.c,v 1.3 2016/08/26 15:45:47 skrll Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mach_intr.c,v 1.2 2015/06/01 22:55:12 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mach_intr.c,v 1.3 2016/08/26 15:45:47 skrll Exp $"); #include "opt_ddb.h" @@ -61,8 +61,8 @@ evbmips_intr_init(void) } void -evbmips_iointr(int ipl, vaddr_t pc, uint32_t ipending) +evbmips_iointr(int ipl, uint32_t ipending, struct clockframe *cf) { - octeon_iointr(ipl, pc, ipending); + octeon_iointr(ipl, cf->pc, ipending); } Index: src/sys/arch/evbmips/evbmips/interrupt.c diff -u src/sys/arch/evbmips/evbmips/interrupt.c:1.23 src/sys/arch/evbmips/evbmips/interrupt.c:1.24 --- src/sys/arch/evbmips/evbmips/interrupt.c:1.23 Fri Aug 26 07:07:29 2016 +++ src/sys/arch/evbmips/evbmips/interrupt.c Fri Aug 26 15:45:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: interrupt.c,v 1.23 2016/08/26 07:07:29 skrll Exp $ */ +/* $NetBSD: interrupt.c,v 1.24 2016/08/26 15:45:47 skrll Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: interrupt.c,v 1.23 2016/08/26 07:07:29 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: interrupt.c,v 1.24 2016/08/26 15:45:47 skrll Exp $"); #include <sys/param.h> #include <sys/cpu.h> @@ -72,14 +72,14 @@ cpu_intr(int ppl, vaddr_t pc, uint32_t s "%s: cpl (%d) != ipl (%d)", __func__, ci->ci_cpl, ipl); KASSERT(pending != 0); + struct clockframe cf = { + .pc = pc, + .sr = status, + .intr = (ci->ci_idepth > 1) + }; #ifdef MIPS3_ENABLE_CLOCK_INTR if (pending & MIPS_INT_MASK_5) { - struct clockframe cf; - - cf.pc = pc; - cf.sr = status; - cf.intr = (ci->ci_idepth > 1); KASSERTMSG(ipl == IPL_SCHED, "%s: ipl (%d) != IPL_SCHED (%d)", @@ -92,7 +92,7 @@ cpu_intr(int ppl, vaddr_t pc, uint32_t s if (pending != 0) { /* Process I/O and error interrupts. */ - evbmips_iointr(ipl, pc, pending); + evbmips_iointr(ipl, pending, &cf); } KASSERT(biglock_count == ci->ci_biglock_count); KASSERT(blcnt == curlwp->l_blcnt); Index: src/sys/arch/evbmips/gdium/gdium_intr.c diff -u src/sys/arch/evbmips/gdium/gdium_intr.c:1.7 src/sys/arch/evbmips/gdium/gdium_intr.c:1.8 --- src/sys/arch/evbmips/gdium/gdium_intr.c:1.7 Sat Mar 29 19:28:28 2014 +++ src/sys/arch/evbmips/gdium/gdium_intr.c Fri Aug 26 15:45:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: gdium_intr.c,v 1.7 2014/03/29 19:28:28 christos Exp $ */ +/* $NetBSD: gdium_intr.c,v 1.8 2016/08/26 15:45:47 skrll Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: gdium_intr.c,v 1.7 2014/03/29 19:28:28 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: gdium_intr.c,v 1.8 2016/08/26 15:45:47 skrll Exp $"); #define __INTR_PRIVATE @@ -297,7 +297,7 @@ evbmips_intr_disestablish(void *cookie) } void -evbmips_iointr(int ipl, vaddr_t pc, uint32_t ipending) +evbmips_iointr(int ipl, uint32_t ipending, struct clockframe *cf) { struct evbmips_intrhand *ih; int level; Index: src/sys/arch/evbmips/include/intr.h diff -u src/sys/arch/evbmips/include/intr.h:1.19 src/sys/arch/evbmips/include/intr.h:1.20 --- src/sys/arch/evbmips/include/intr.h:1.19 Sat Jul 9 16:03:01 2011 +++ src/sys/arch/evbmips/include/intr.h Fri Aug 26 15:45:47 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: intr.h,v 1.19 2011/07/09 16:03:01 matt Exp $ */ +/* $NetBSD: intr.h,v 1.20 2016/08/26 15:45:47 skrll Exp $ */ /*- * Copyright (c) 2000, 2001 The NetBSD Foundation, Inc. @@ -46,9 +46,11 @@ struct evbmips_intrhand { int ih_ipl; }; +struct clockframe; + void intr_init(void); void evbmips_intr_init(void); -void evbmips_iointr(int, vaddr_t, uint32_t); +void evbmips_iointr(int, uint32_t, struct clockframe *); void *evbmips_intr_establish(int, int (*)(void *), void *); void evbmips_intr_disestablish(void *); Index: src/sys/arch/evbmips/ingenic/clock.c diff -u src/sys/arch/evbmips/ingenic/clock.c:1.7 src/sys/arch/evbmips/ingenic/clock.c:1.8 --- src/sys/arch/evbmips/ingenic/clock.c:1.7 Fri Jan 29 01:54:14 2016 +++ src/sys/arch/evbmips/ingenic/clock.c Fri Aug 26 15:45:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: clock.c,v 1.7 2016/01/29 01:54:14 macallan Exp $ */ +/* $NetBSD: clock.c,v 1.8 2016/08/26 15:45:48 skrll Exp $ */ /*- * Copyright (c) 2014 Michael Lorenz @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.7 2016/01/29 01:54:14 macallan Exp $"); +__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.8 2016/08/26 15:45:48 skrll Exp $"); #include "opt_multiprocessor.h" @@ -44,7 +44,7 @@ __KERNEL_RCSID(0, "$NetBSD: clock.c,v 1. extern void ingenic_puts(const char *); -void ingenic_clockintr(uint32_t); +void ingenic_clockintr(struct clockframe *); static u_int ingenic_count_read(struct timecounter *tc) @@ -191,9 +191,8 @@ int cnt = 99; #endif void -ingenic_clockintr(uint32_t id) +ingenic_clockintr(struct clockframe *cf) { - extern struct clockframe cf; int s = splsched(); struct cpu_info * const ci = curcpu(); #ifdef USE_OST @@ -239,6 +238,6 @@ ingenic_clockintr(uint32_t id) */ MTC0(1 << IPI_CLOCK, 20, 1); #endif - hardclock(&cf); + hardclock(cf); splx(s); } Index: src/sys/arch/evbmips/ingenic/intr.c diff -u src/sys/arch/evbmips/ingenic/intr.c:1.10 src/sys/arch/evbmips/ingenic/intr.c:1.11 --- src/sys/arch/evbmips/ingenic/intr.c:1.10 Fri Jan 29 01:54:14 2016 +++ src/sys/arch/evbmips/ingenic/intr.c Fri Aug 26 15:45:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: intr.c,v 1.10 2016/01/29 01:54:14 macallan Exp $ */ +/* $NetBSD: intr.c,v 1.11 2016/08/26 15:45:48 skrll Exp $ */ /*- * Copyright (c) 2014 Michael Lorenz @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.10 2016/01/29 01:54:14 macallan Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.11 2016/08/26 15:45:48 skrll Exp $"); #define __INTR_PRIVATE @@ -54,9 +54,8 @@ __KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.1 #define DPRINTF while (0) printf #endif -extern void ingenic_clockintr(uint32_t); +extern void ingenic_clockintr(struct clockframe *); extern void ingenic_puts(const char *); -extern struct clockframe cf; /* * This is a mask of bits to clear in the SR when we go to a * given hardware interrupt priority level. @@ -139,7 +138,7 @@ evbmips_intr_init(void) } void -evbmips_iointr(int ipl, vaddr_t pc, uint32_t ipending) +evbmips_iointr(int ipl, uint32_t ipending, struct clockframe *cf) { uint32_t id; #ifdef INGENIC_INTR_DEBUG @@ -192,7 +191,7 @@ evbmips_iointr(int ipl, vaddr_t pc, uint tag = MFC0(CP0_CORE_MBOX, 1); ingenic_puts("1"); if (tag & 0x400) - hardclock(&cf); + hardclock(cf); //ipi_process(curcpu(), tag); #ifdef INGENIC_INTR_DEBUG snprintf(buffer, 256, @@ -209,7 +208,7 @@ evbmips_iointr(int ipl, vaddr_t pc, uint } if (ipending & MIPS_INT_MASK_2) { /* this is a timer interrupt */ - ingenic_clockintr(id); + ingenic_clockintr(cf); clockintrs.ev_count++; ingenic_puts("INT2\n"); } @@ -230,7 +229,7 @@ evbmips_iointr(int ipl, vaddr_t pc, uint mask = readreg(JZ_ICPR0); if (mask & 0x0c000000) { writereg(JZ_ICMSR0, 0x0c000000); - ingenic_clockintr(id); + ingenic_clockintr(cf); writereg(JZ_ICMCR0, 0x0c000000); clockintrs.ev_count++; } Index: src/sys/arch/evbmips/loongson/loongson_intr.c diff -u src/sys/arch/evbmips/loongson/loongson_intr.c:1.4 src/sys/arch/evbmips/loongson/loongson_intr.c:1.5 --- src/sys/arch/evbmips/loongson/loongson_intr.c:1.4 Sat Mar 29 19:28:28 2014 +++ src/sys/arch/evbmips/loongson/loongson_intr.c Fri Aug 26 15:45:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: loongson_intr.c,v 1.4 2014/03/29 19:28:28 christos Exp $ */ +/* $NetBSD: loongson_intr.c,v 1.5 2016/08/26 15:45:48 skrll Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: loongson_intr.c,v 1.4 2014/03/29 19:28:28 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: loongson_intr.c,v 1.5 2016/08/26 15:45:48 skrll Exp $"); #define __INTR_PRIVATE @@ -136,7 +136,7 @@ evbmips_intr_init(void) } void -evbmips_iointr(int ppl, vaddr_t pc, uint32_t ipending) +evbmips_iointr(int ppl, uint32_t ipending, struct clockframe *cf) { struct evbmips_intrhand *ih; int irq; @@ -162,14 +162,17 @@ evbmips_iointr(int ppl, vaddr_t pc, uint bonito_intrhead[irq].intr_count.ev_count++; LIST_FOREACH (ih, &bonito_intrhead[irq].intrhand_head, ih_q) { - (*ih->ih_func)(ih->ih_arg); + if (ih->ih_arg) + (*ih->ih_func)(ih->ih_arg); + else + (*ih->ih_func)(cf); } } REGVAL(BONITO_INTENSET) = isr; (void)REGVAL(BONITO_INTENSET); } if (isr0 & LOONGSON_INTRMASK_INT0) - sys_platform->isa_intr(ppl, pc, ipending); + sys_platform->isa_intr(ppl, cf->pc, ipending); } void * Index: src/sys/arch/evbmips/malta/malta_intr.c diff -u src/sys/arch/evbmips/malta/malta_intr.c:1.24 src/sys/arch/evbmips/malta/malta_intr.c:1.25 --- src/sys/arch/evbmips/malta/malta_intr.c:1.24 Mon Mar 31 20:44:19 2014 +++ src/sys/arch/evbmips/malta/malta_intr.c Fri Aug 26 15:45:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: malta_intr.c,v 1.24 2014/03/31 20:44:19 christos Exp $ */ +/* $NetBSD: malta_intr.c,v 1.25 2016/08/26 15:45:48 skrll Exp $ */ /* * Copyright 2001, 2002 Wasabi Systems, Inc. @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: malta_intr.c,v 1.24 2014/03/31 20:44:19 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: malta_intr.c,v 1.25 2016/08/26 15:45:48 skrll Exp $"); #define __INTR_PRIVATE @@ -248,7 +248,7 @@ evbmips_intr_disestablish(void *arg) } void -evbmips_iointr(int ipl, vaddr_t pc, uint32_t ipending) +evbmips_iointr(int ipl, uint32_t ipending, struct clockframe *cf) { /* Check for error interrupts (SMI, GT64120) */ Index: src/sys/arch/mips/adm5120/adm5120_intr.c diff -u src/sys/arch/mips/adm5120/adm5120_intr.c:1.6 src/sys/arch/mips/adm5120/adm5120_intr.c:1.7 --- src/sys/arch/mips/adm5120/adm5120_intr.c:1.6 Sun Jul 10 23:13:23 2011 +++ src/sys/arch/mips/adm5120/adm5120_intr.c Fri Aug 26 15:45:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: adm5120_intr.c,v 1.6 2011/07/10 23:13:23 matt Exp $ */ +/* $NetBSD: adm5120_intr.c,v 1.7 2016/08/26 15:45:48 skrll Exp $ */ /*- * Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko. @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: adm5120_intr.c,v 1.6 2011/07/10 23:13:23 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: adm5120_intr.c,v 1.7 2016/08/26 15:45:48 skrll Exp $"); #include "opt_ddb.h" #define __INTR_PRIVATE @@ -265,7 +265,7 @@ adm5120_intr_disestablish(void *cookie) free(ih, M_DEVBUF); } void -evbmips_iointr(int ipl, uint32_t pc, uint32_t ipending) +evbmips_iointr(int ipl, uint32_t ipending, struct clockframe *cf) { struct evbmips_intrhand *ih; uint32_t irqmask, irqstat; Index: src/sys/arch/mips/ralink/ralink_intr.c diff -u src/sys/arch/mips/ralink/ralink_intr.c:1.3 src/sys/arch/mips/ralink/ralink_intr.c:1.4 --- src/sys/arch/mips/ralink/ralink_intr.c:1.3 Tue Sep 27 01:02:34 2011 +++ src/sys/arch/mips/ralink/ralink_intr.c Fri Aug 26 15:45:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: ralink_intr.c,v 1.3 2011/09/27 01:02:34 jym Exp $ */ +/* $NetBSD: ralink_intr.c,v 1.4 2016/08/26 15:45:48 skrll Exp $ */ /*- * Copyright (c) 2011 CradlePoint Technology, Inc. * All rights reserved. @@ -29,7 +29,7 @@ #define __INTR_PRIVATE #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ralink_intr.c,v 1.3 2011/09/27 01:02:34 jym Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ralink_intr.c,v 1.4 2016/08/26 15:45:48 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -291,7 +291,7 @@ ra_pic_intr(void *arg) * in the generic MIPS code for the timer */ void -evbmips_iointr(int ipl, vaddr_t pc, uint32_t ipending) +evbmips_iointr(int ipl, uint32_t ipending, struct clockframe *cf) { while (ipending != 0) { const u_int bitno = 31 - __builtin_clz(ipending); Index: src/sys/arch/mips/rmi/rmixl_intr.c diff -u src/sys/arch/mips/rmi/rmixl_intr.c:1.11 src/sys/arch/mips/rmi/rmixl_intr.c:1.12 --- src/sys/arch/mips/rmi/rmixl_intr.c:1.11 Mon Aug 1 18:09:50 2016 +++ src/sys/arch/mips/rmi/rmixl_intr.c Fri Aug 26 15:45:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: rmixl_intr.c,v 1.11 2016/08/01 18:09:50 dholland Exp $ */ +/* $NetBSD: rmixl_intr.c,v 1.12 2016/08/26 15:45:48 skrll Exp $ */ /*- * Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko. @@ -64,7 +64,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rmixl_intr.c,v 1.11 2016/08/01 18:09:50 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rmixl_intr.c,v 1.12 2016/08/26 15:45:48 skrll Exp $"); #include "opt_ddb.h" #include "opt_multiprocessor.h" @@ -865,12 +865,12 @@ rmixl_intr_disestablish(void *cookie) } void -evbmips_iointr(int ipl, vaddr_t pc, uint32_t pending) +evbmips_iointr(int ipl, uint32_t pending, struct clockframe *cf) { struct rmixl_cpu_softc *sc = (void *)curcpu()->ci_softc; DPRINTF(("%s: cpu%u: ipl %d, pc %#"PRIxVADDR", pending %#x\n", - __func__, cpu_number(), ipl, pc, pending)); + __func__, cpu_number(), ipl, cf->pc, pending)); /* * 'pending' arg is a summary that there is something to do Index: src/sys/dev/pci/voyager/pwmclock.c diff -u src/sys/dev/pci/voyager/pwmclock.c:1.10 src/sys/dev/pci/voyager/pwmclock.c:1.11 --- src/sys/dev/pci/voyager/pwmclock.c:1.10 Tue May 14 09:19:36 2013 +++ src/sys/dev/pci/voyager/pwmclock.c Fri Aug 26 15:45:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: pwmclock.c,v 1.10 2013/05/14 09:19:36 macallan Exp $ */ +/* $NetBSD: pwmclock.c,v 1.11 2016/08/26 15:45:48 skrll Exp $ */ /* * Copyright (c) 2011 Michael Lorenz @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pwmclock.c,v 1.10 2013/05/14 09:19:36 macallan Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pwmclock.c,v 1.11 2016/08/26 15:45:48 skrll Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -77,7 +77,6 @@ static u_int get_pwmclock_timecount(stru struct pwmclock_softc *pwmclock; extern void (*initclocks_ptr)(void); -extern struct clockframe cf; /* 0, 1/4, 3/8, 1/2, 5/8, 3/4, 7/8, 1 */ static int scale_m[] = {1, 1, 3, 1, 5, 3, 7, 1}; @@ -137,7 +136,8 @@ pwmclock_attach(device_t parent, device_ aprint_normal("\n"); - voyager_establish_intr(parent, 22, pwmclock_intr, sc); + /* NULL here gets us the clockframe */ + voyager_establish_intr(parent, 22, pwmclock_intr, NULL); reg = voyager_set_pwm(100, 100); /* 100Hz, 10% duty cycle */ reg |= SM502_PWM_ENABLE | SM502_PWM_ENABLE_INTR | SM502_PWM_INTR_PENDING; @@ -273,7 +273,8 @@ pwmclock_set_speed(struct pwmclock_softc int pwmclock_intr(void *cookie) { - struct pwmclock_softc *sc = cookie; + struct clockframe *cf = cookie; + struct pwmclock_softc *sc = pwmclock; uint32_t reg, now, diff; /* is it us? */ @@ -307,7 +308,7 @@ pwmclock_intr(void *cookie) sc->sc_step = sc->sc_step_wanted; } - hardclock(&cf); + hardclock(cf); return 1; }