From owner-p4-projects@FreeBSD.ORG Fri Jun 2 06:31:19 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7EE8816A9C2; Fri, 2 Jun 2006 06:31:19 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5B0E316A99E for ; Fri, 2 Jun 2006 06:31:19 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 120DD43D46 for ; Fri, 2 Jun 2006 06:31:19 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k526TnZd044328 for ; Fri, 2 Jun 2006 06:29:49 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k526Tngw044325 for perforce@freebsd.org; Fri, 2 Jun 2006 06:29:49 GMT (envelope-from imp@freebsd.org) Date: Fri, 2 Jun 2006 06:29:49 GMT Message-Id: <200606020629.k526Tngw044325@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 98310 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: Fri, 02 Jun 2006 06:31:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=98310 Change 98310 by imp@imp_lighthouse on 2006/06/02 06:29:15 Stub in the needed routines to make this a bus. Affected files ... .. //depot/projects/arm/src/sys/dev/sdhc/sdhc_pci.c#3 edit Differences ... ==== //depot/projects/arm/src/sys/dev/sdhc/sdhc_pci.c#3 (text+ko) ==== @@ -89,11 +89,97 @@ return (sdhc_attach(dev)); } +static int +sdhc_read_ivar(device_t brdev, device_t child, int which, uintptr_t *result) +{ + return (ENOENT); +} + +static int +sdhc_write_ivar(device_t brdev, device_t child, int which, uintptr_t value) +{ + return (ENOENT); +} + +static struct resource * +sdhc_alloc_resource(device_t brdev, device_t child, int type, int *rid, + u_long start, u_long end, u_long count, u_int flags) +{ + return (0); +} + +static int +sdhc_release_resource(device_t brdev, device_t child, int type, int rid, + struct resource *r) +{ + return (EIO); +} + +static int +sdhc_activate_resource(device_t brdev, device_t child, int type, int rid, + struct resource *r) +{ + return (EIO); +} + +static int +sdhc_deactivate_resource(device_t brdev, device_t child, int type, + int rid, struct resource *r) +{ + return (EIO); +} + +static void +sdhc_driver_added(device_t dev, driver_t *driver) +{ +// struct sdhc_softc *sc = device_get_softc(dev); + device_t *devlist; + device_t kiddev; + int tmp; + int numdevs; + int wake = 0; + + DEVICE_IDENTIFY(driver, dev); + device_get_children(dev, &devlist, &numdevs); + for (tmp = 0; tmp < numdevs; tmp++) { + kiddev = devlist[tmp]; + if (device_get_state(kiddev) == DS_NOTPRESENT && + device_probe_and_attach(kiddev) == 0) + wake++; + } + free(devlist, M_TEMP); +#if 0 + if (wake > 0) { + mtx_lock(&sc->mtx); + cv_signal(&sc->cv); + mtx_unlock(&sc->mtx); + } +#endif +} + +static void +sdhc_child_detached(device_t dev, device_t child) +{ +} + static device_method_t sdhc_pci_methods[] = { /* Device interface */ - DEVMETHOD(device_probe, sdhc_pci_probe), - DEVMETHOD(device_attach, sdhc_pci_attach), - DEVMETHOD(device_detach, sdhc_detach), + DEVMETHOD(device_probe, sdhc_pci_probe), + DEVMETHOD(device_attach, sdhc_pci_attach), + DEVMETHOD(device_detach, sdhc_detach), + + /* bus methods */ + DEVMETHOD(bus_print_child, bus_generic_print_child), + DEVMETHOD(bus_read_ivar, sdhc_read_ivar), + DEVMETHOD(bus_write_ivar, sdhc_write_ivar), + DEVMETHOD(bus_alloc_resource, sdhc_alloc_resource), + DEVMETHOD(bus_release_resource, sdhc_release_resource), + DEVMETHOD(bus_activate_resource, sdhc_activate_resource), + DEVMETHOD(bus_deactivate_resource, sdhc_deactivate_resource), + DEVMETHOD(bus_driver_added, sdhc_driver_added), + DEVMETHOD(bus_child_detached, sdhc_child_detached), +// DEVMETHOD(bus_setup_intr, sdhc_setup_intr), +// DEVMETHOD(bus_teardown_intr, sdhc_teardown_intr), { 0, 0 } };