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;
 }

Reply via email to