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