From owner-p4-projects@FreeBSD.ORG Sat Aug 11 21:33:53 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8437E16A41A; Sat, 11 Aug 2007 21:33:53 +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 26C8316A417 for ; Sat, 11 Aug 2007 21:33:53 +0000 (UTC) (envelope-from loafier@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1368E13C442 for ; Sat, 11 Aug 2007 21:33:53 +0000 (UTC) (envelope-from loafier@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 l7BLXqTm010110 for ; Sat, 11 Aug 2007 21:33:52 GMT (envelope-from loafier@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7BLXqua010107 for perforce@freebsd.org; Sat, 11 Aug 2007 21:33:52 GMT (envelope-from loafier@FreeBSD.org) Date: Sat, 11 Aug 2007 21:33:52 GMT Message-Id: <200708112133.l7BLXqua010107@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to loafier@FreeBSD.org using -f From: Christopher Davis To: Perforce Change Reviews Cc: Subject: PERFORCE change 125067 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: Sat, 11 Aug 2007 21:33:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=125067 Change 125067 by loafier@chrisdsoc on 2007/08/11 21:33:08 bus_alloc_resources(), etc. Affected files ... .. //depot/projects/soc2007/loafier_busalloc/src/sys/dev/acpica/acpi_ec.c#2 edit Differences ... ==== //depot/projects/soc2007/loafier_busalloc/src/sys/dev/acpica/acpi_ec.c#2 (text+ko) ==== @@ -217,16 +217,16 @@ * Register access primitives */ #define EC_GET_DATA(sc) \ - bus_space_read_1((sc)->ec_data_tag, (sc)->ec_data_handle, 0) + bus_read_1((sc)->ec_res[RES_DATA], 0) #define EC_SET_DATA(sc, v) \ - bus_space_write_1((sc)->ec_data_tag, (sc)->ec_data_handle, 0, (v)) + bus_write_1((sc)->ec_res[RES_DATA], 0, (v)) #define EC_GET_CSR(sc) \ - bus_space_read_1((sc)->ec_csr_tag, (sc)->ec_csr_handle, 0) + bus_read_1((sc)->ec_res[RES_CSR], 0) #define EC_SET_CSR(sc, v) \ - bus_space_write_1((sc)->ec_csr_tag, (sc)->ec_csr_handle, 0, (v)) + bus_write_1((sc)->ec_res[RES_CSR], 0, (v)) /* Additional params to pass from the probe routine */ struct acpi_ec_params { @@ -242,6 +242,18 @@ /* * Driver softc. */ +enum { + RES_DATA, + RES_CSR, + RES_SZ +}; + +static struct resource_spec ec_res_spec[] = { + {SYS_RES_IOPORT, 0, RF_ACTIVE}, + {SYS_RES_IOPORT, 1, RF_ACTIVE}, + {-1, 0, 0} +}; + struct acpi_ec_softc { device_t ec_dev; ACPI_HANDLE ec_handle; @@ -250,15 +262,7 @@ UINT8 ec_gpebit; UINT8 ec_csrvalue; - int ec_data_rid; - struct resource *ec_data_res; - bus_space_tag_t ec_data_tag; - bus_space_handle_t ec_data_handle; - - int ec_csr_rid; - struct resource *ec_csr_res; - bus_space_tag_t ec_csr_tag; - bus_space_handle_t ec_csr_handle; + struct resource *ec_res[RES_SZ]; struct mtx ec_mtx; int ec_glk; @@ -588,26 +592,11 @@ free(params, M_TEMP); /* Attach bus resources for data and command/status ports. */ - sc->ec_data_rid = 0; - sc->ec_data_res = bus_alloc_resource_any(sc->ec_dev, SYS_RES_IOPORT, - &sc->ec_data_rid, RF_ACTIVE); - if (sc->ec_data_res == NULL) { - device_printf(dev, "can't allocate data port\n"); - goto error; + if (bus_alloc_resources(dev, ec_res_spec, sc->ec_res) != 0) { + device_printf(dev, "can't allocate resources\n"); + goto error; } - sc->ec_data_tag = rman_get_bustag(sc->ec_data_res); - sc->ec_data_handle = rman_get_bushandle(sc->ec_data_res); - sc->ec_csr_rid = 1; - sc->ec_csr_res = bus_alloc_resource_any(sc->ec_dev, SYS_RES_IOPORT, - &sc->ec_csr_rid, RF_ACTIVE); - if (sc->ec_csr_res == NULL) { - device_printf(dev, "can't allocate command/status port\n"); - goto error; - } - sc->ec_csr_tag = rman_get_bustag(sc->ec_csr_res); - sc->ec_csr_handle = rman_get_bushandle(sc->ec_csr_res); - /* * Install a handler for this EC's GPE bit. We want edge-triggered * behavior. @@ -655,13 +644,9 @@ AcpiRemoveGpeHandler(sc->ec_gpehandle, sc->ec_gpebit, &EcGpeHandler); AcpiRemoveAddressSpaceHandler(sc->ec_handle, ACPI_ADR_SPACE_EC, EcSpaceHandler); - if (sc->ec_csr_res) - bus_release_resource(sc->ec_dev, SYS_RES_IOPORT, sc->ec_csr_rid, - sc->ec_csr_res); - if (sc->ec_data_res) - bus_release_resource(sc->ec_dev, SYS_RES_IOPORT, sc->ec_data_rid, - sc->ec_data_res); + bus_release_resources(sc->ec_dev, ec_res_spec, sc->ec_res); mtx_destroy(&sc->ec_mtx); + return (ENXIO); }