From owner-p4-projects@FreeBSD.ORG Mon Oct 20 10:39:26 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4CE7110656AE; Mon, 20 Oct 2008 10:39:26 +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 0EF5610656A8 for ; Mon, 20 Oct 2008 10:39:26 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D32D98FC1F for ; Mon, 20 Oct 2008 10:39:25 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m9KAdPD1070495 for ; Mon, 20 Oct 2008 10:39:25 GMT (envelope-from andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m9KAdP9X070493 for perforce@freebsd.org; Mon, 20 Oct 2008 10:39:25 GMT (envelope-from andrew@freebsd.org) Date: Mon, 20 Oct 2008 10:39:25 GMT Message-Id: <200810201039.m9KAdP9X070493@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andrew@freebsd.org using -f From: Andrew Turner To: Perforce Change Reviews Cc: Subject: PERFORCE change 151595 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, 20 Oct 2008 10:39:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=151595 Change 151595 by andrew@andrew_bender on 2008/10/20 10:39:25 Add a teardown_intr function and store the start, end and count of an allocation in it's resource list Affected files ... .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c2410.c#16 edit Differences ... ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c2410.c#16 (text+ko) ==== @@ -62,6 +62,8 @@ static void s3c2410_identify(driver_t *, device_t); static int s3c2410_setup_intr(device_t, device_t, struct resource *, int, driver_filter_t *, driver_intr_t *, void *, void **); +static int s3c2410_teardown_intr(device_t, device_t, struct resource *, + void *); static struct resource *s3c2410_alloc_resource(device_t, device_t, int, int *, u_long, u_long, u_long, u_int); static int s3c2410_activate_resource(device_t, device_t, int, int, @@ -75,6 +77,7 @@ DEVMETHOD(device_attach, s3c2410_attach), DEVMETHOD(device_identify, s3c2410_identify), DEVMETHOD(bus_setup_intr, s3c2410_setup_intr), + DEVMETHOD(bus_teardown_intr, s3c2410_teardown_intr), DEVMETHOD(bus_alloc_resource, s3c2410_alloc_resource), DEVMETHOD(bus_activate_resource, s3c2410_activate_resource), DEVMETHOD(bus_release_resource, s3c2410_release_resource), @@ -135,6 +138,13 @@ return (0); } +static int +s3c2410_teardown_intr(device_t dev, device_t child, struct resource *res, + void *cookie) +{ + return (BUS_TEARDOWN_INTR(device_get_parent(dev), child, res, cookie)); +} + static struct resource * s3c2410_alloc_resource(device_t bus, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags) @@ -209,8 +219,12 @@ if (res != NULL) { rman_set_rid(res, *rid); - if (rle != NULL) + if (rle != NULL) { rle->res = res; + rle->start = rman_get_start(res); + rle->end = rman_get_end(res); + rle->count = count; + } } return (res);