PERFORCE change 140368 for review

Hans Petter Selasky hselasky at FreeBSD.org
Mon Apr 21 18:39:20 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=140368

Change 140368 by hselasky at hselasky_laptop001 on 2008/04/21 18:38:30

	
	Get some needed ARM fixes from @ 140356 .

Affected files ...

.. //depot/projects/usb/src/sys/arm/arm/intr.c#7 integrate
.. //depot/projects/usb/src/sys/arm/at91/at91.c#9 integrate
.. //depot/projects/usb/src/sys/arm/include/intr.h#4 integrate

Differences ...

==== //depot/projects/usb/src/sys/arm/arm/intr.c#7 (text+ko) ====

@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.21 2008/04/11 03:26:40 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.22 2008/04/20 23:29:06 cognet Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/syslog.h> 
@@ -59,6 +59,8 @@
 
 void	arm_handler_execute(struct trapframe *, int);
 
+void (*arm_post_filter)(void *) = NULL;
+
 void
 arm_setup_irqhandler(const char *name, driver_filter_t *filt, 
     void (*hand)(void*), void *arg, int irq, int flags, void **cookiep)
@@ -72,7 +74,7 @@
 	if (event == NULL) {
 		error = intr_event_create(&event, (void *)irq, 0, irq,
 		    (mask_fn)arm_mask_irq, (mask_fn)arm_unmask_irq,
-		    NULL, NULL, "intr%d:", irq);
+		    arm_post_filter, NULL, "intr%d:", irq);
 		if (error)
 			return;
 		intr_events[irq] = event;

==== //depot/projects/usb/src/sys/arm/at91/at91.c#9 (text) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.15 2007/12/19 17:34:17 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.16 2008/04/20 23:29:06 cognet Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -47,6 +47,8 @@
 
 static struct at91_softc *at91_softc;
 
+static void at91_eoi(void *);
+
 static int
 at91_bs_map(void *t, bus_addr_t bpa, bus_size_t size, int flags,
     bus_space_handle_t *bshp)
@@ -172,6 +174,7 @@
 at91_probe(device_t dev)
 {
 	device_set_desc(dev, "AT91 device bus");
+	arm_post_filter = at91_eoi;
 	return (0);
 }
 
@@ -689,6 +692,13 @@
 
 }
 
+static void
+at91_eoi(void *unused)
+{
+	bus_space_write_4(at91_softc->sc_st, at91_softc->sc_sys_sh,
+	    IC_EOICR, 0);
+}
+
 static device_method_t at91_methods[] = {
 	DEVMETHOD(device_probe, at91_probe),
 	DEVMETHOD(device_attach, at91_attach),

==== //depot/projects/usb/src/sys/arm/include/intr.h#4 (text+ko) ====

@@ -32,7 +32,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/arm/include/intr.h,v 1.7 2007/06/16 15:03:33 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/intr.h,v 1.8 2008/04/20 23:29:06 cognet Exp $
  *
  */
 
@@ -55,4 +55,5 @@
 void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), 
     void *, int, int, void **);    
 int arm_remove_irqhandler(void *);
+extern void (*arm_post_filter)(void *);
 #endif	/* _MACHINE_INTR_H */


More information about the p4-projects mailing list