From owner-p4-projects@FreeBSD.ORG Mon Apr 21 18:39:19 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CC2421065672; Mon, 21 Apr 2008 18:39:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E00D106564A for ; Mon, 21 Apr 2008 18:39:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 82FD08FC1C for ; Mon, 21 Apr 2008 18:39:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m3LIdJMP032472 for ; Mon, 21 Apr 2008 18:39:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m3LIdJR5032470 for perforce@freebsd.org; Mon, 21 Apr 2008 18:39:19 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 21 Apr 2008 18:39:19 GMT Message-Id: <200804211839.m3LIdJR5032470@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 140368 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Apr 2008 18:39:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=140368 Change 140368 by hselasky@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 -__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 #include #include @@ -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 -__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 #include @@ -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 */