Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-7]: src/sys/arch/arm/cortex Pull up following revision(s) (reques...



details:   https://anonhg.NetBSD.org/src/rev/8517e1203746
branches:  netbsd-7
changeset: 799050:8517e1203746
user:      snj <snj%NetBSD.org@localhost>
date:      Sat Mar 07 05:04:49 2015 +0000

description:
Pull up following revision(s) (requested by jmcneill in ticket #567):
        sys/arch/arm/cortex/gic.c: revision 1.13, 1.14
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn
when setting irq type (IST_LEVEL/IST_EDGE)
--
sc_gic_lines is the total number of valid lines but pic_sources[] is
sparse; when initializing mpsafe targets make sure to go all the way to
the end (sc_pic.pic_maxsources) instead

diffstat:

 sys/arch/arm/cortex/gic.c |  8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diffs (36 lines):

diff -r 946c996925be -r 8517e1203746 sys/arch/arm/cortex/gic.c
--- a/sys/arch/arm/cortex/gic.c Fri Mar 06 21:46:40 2015 +0000
+++ b/sys/arch/arm/cortex/gic.c Sat Mar 07 05:04:49 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: gic.c,v 1.10.2.1 2014/11/09 16:05:25 martin Exp $      */
+/*     $NetBSD: gic.c,v 1.10.2.2 2015/03/07 05:04:49 snj Exp $ */
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -34,7 +34,7 @@
 #define _INTR_PRIVATE
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gic.c,v 1.10.2.1 2014/11/09 16:05:25 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gic.c,v 1.10.2.2 2015/03/07 05:04:49 snj Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -371,7 +371,7 @@
                        new_cfg |= 2 << twopair_shift;
                }
                if (new_cfg != cfg) {
-                       gicd_write(sc, cfg_reg, cfg);
+                       gicd_write(sc, cfg_reg, new_cfg);
 #if 0
                        printf("%s: irq %u: cfg changed from %#x to %#x\n",
                            pic->pic_name, is->is_irq, cfg, new_cfg);
@@ -441,7 +441,7 @@
        /*
         * Update the mpsafe targets 
         */
-       for (size_t irq = 32; irq < sc->sc_gic_lines; irq++) {
+       for (size_t irq = 32; irq < sc->sc_pic.pic_maxsources; irq++) {
                struct intrsource * const is = sc->sc_pic.pic_sources[irq];
                const bus_size_t targets_reg = GICD_ITARGETSRn(irq / 4);
                if (is != NULL && is->is_mpsafe) {



Home | Main Index | Thread Index | Old Index