svn commit: r212484 - in user/weongyo/usb/sys/dev/usb: . controller

Weongyo Jeong weongyo at FreeBSD.org
Sat Sep 11 23:03:41 UTC 2010


Author: weongyo
Date: Sat Sep 11 23:03:40 2010
New Revision: 212484
URL: http://svn.freebsd.org/changeset/base/212484

Log:
  Changes the purpose of usb_bus_mem_alloc_all() that did initialize
  DMA/PIO mode, the tailq and callouts.  Just looking the function name it
  looks it's doing jobs related with memory initialization but it's doing
  more than it that it's really confusing.   So cleans up its meaning and
  adds a wrapper, usb_bus_struct_init, to initialize the usb_bus
  structure.

Modified:
  user/weongyo/usb/sys/dev/usb/controller/at91dci_atmelarm.c
  user/weongyo/usb/sys/dev/usb/controller/atmegadci_atmelarm.c
  user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c
  user/weongyo/usb/sys/dev/usb/controller/ehci_mv.c
  user/weongyo/usb/sys/dev/usb/controller/ehci_pci.c
  user/weongyo/usb/sys/dev/usb/controller/musb_otg_atmelarm.c
  user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c
  user/weongyo/usb/sys/dev/usb/controller/ohci_pci.c
  user/weongyo/usb/sys/dev/usb/controller/ohci_s3c24x0.c
  user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c
  user/weongyo/usb/sys/dev/usb/controller/usb_controller.c
  user/weongyo/usb/sys/dev/usb/controller/uss820dci_atmelarm.c
  user/weongyo/usb/sys/dev/usb/usb_controller.h

Modified: user/weongyo/usb/sys/dev/usb/controller/at91dci_atmelarm.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/at91dci_atmelarm.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/at91dci_atmelarm.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -157,16 +157,11 @@ at91_udp_attach(device_t dev)
 	sc->sc_dci.sc_pull_down = &at91_udp_pull_down;
 	sc->sc_dci.sc_pull_arg = sc;
 
-	/* initialise some bus fields */
-	sc->sc_dci.sc_bus.parent = dev;
-	sc->sc_dci.sc_bus.devices = sc->sc_dci.sc_devices;
-	sc->sc_dci.sc_bus.devices_max = AT91_MAX_DEVICES;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_dci.sc_bus,
-	    USB_GET_DMA_TAG(dev), NULL)) {
-		return (ENOMEM);
-	}
+	err = usb_bus_struct_init(&sc->sc_dci.sc_bus, dev,
+	    sc->sc_dci.sc_devices, AT91_MAX_DEVICES, NULL);
+	if (err != 0)
+		return (err);
+
 	/*
 	 * configure VBUS input pin, enable deglitch and enable
 	 * interrupt :
@@ -314,7 +309,7 @@ at91_udp_detach(device_t dev)
 		    sc->sc_dci.sc_io_res);
 		sc->sc_dci.sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_dci.sc_bus, NULL);
+	usb_bus_struct_fini(&sc->sc_dci.sc_bus);
 
 	/* disable clocks */
 	at91_pmc_clock_disable(sc->sc_iclk);

Modified: user/weongyo/usb/sys/dev/usb/controller/atmegadci_atmelarm.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/atmegadci_atmelarm.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/atmegadci_atmelarm.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -99,16 +99,11 @@ atmegadci_attach(device_t dev)
 	sc->sc_otg.sc_clocks_on = &atmegadci_clocks_on;
 	sc->sc_otg.sc_clocks_off = &atmegadci_clocks_off;
 
-	/* initialise some bus fields */
-	sc->sc_otg.sc_bus.parent = dev;
-	sc->sc_otg.sc_bus.devices = sc->sc_otg.sc_devices;
-	sc->sc_otg.sc_bus.devices_max = ATMEGA_MAX_DEVICES;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_otg.sc_bus,
-	    USB_GET_DMA_TAG(dev), NULL)) {
-		return (ENOMEM);
-	}
+	err = usb_bus_struct_init(&sc->sc_otg.sc_bus, dev,
+	    sc->sc_otg.sc_devices, ATMEGA_MAX_DEVICES, NULL);
+	if (err != NULL)
+		return (err);
+
 	rid = 0;
 	sc->sc_otg.sc_io_res =
 	    bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE);
@@ -189,7 +184,7 @@ atmegadci_detach(device_t dev)
 		    sc->sc_otg.sc_io_res);
 		sc->sc_otg.sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_otg.sc_bus, NULL);
+	usb_bus_struct_fini(&sc->sc_otg.sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -146,15 +146,10 @@ ehci_ixp_attach(device_t self)
 	int err;
 	int rid;
 
-	/* initialise some bus fields */
-	sc->sc_bus.parent = self;
-	sc->sc_bus.devices = sc->sc_devices;
-	sc->sc_bus.devices_max = EHCI_MAX_DEVICES;
-	sc->sc_bus.busmem_func = ehci_iterate_hw_softc;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self)))
-		return (ENOMEM);
+	err = usb_bus_struct_init(&sc->sc_bus, self, sc->sc_devices,
+	    EHCI_MAX_DEVICES, ehci_iterate_hw_softc);
+	if (err != 0)
+		return (err);
 
 	/* NB: hints fix the memory location and irq */
 
@@ -290,7 +285,7 @@ ehci_ixp_detach(device_t self)
 		    sc->sc_io_res);
 		sc->sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_bus);
+	usb_bus_struct_fini(&sc->sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/ehci_mv.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/ehci_mv.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/ehci_mv.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -161,18 +161,14 @@ mv_ehci_attach(device_t self)
 	int err;
 	int rid;
 
-	/* initialise some bus fields */
-	sc->sc_bus.parent = self;
-	sc->sc_bus.devices = sc->sc_devices;
-	sc->sc_bus.devices_max = EHCI_MAX_DEVICES;
-	sc->sc_bus.busmem_func = ehci_iterate_hw_softc;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self)))
-		return (ENOMEM);
+	err = usb_bus_struct_init(&sc->sc_bus, self, sc->sc_devices,
+	    EHCI_MAX_DEVICES, ehci_iterate_hw_softc);
+	if (err != 0)
+		return (err);
 
 	rid = 0;
-	sc->sc_io_res = bus_alloc_resource_any(self, SYS_RES_MEMORY, &rid, RF_ACTIVE);
+	sc->sc_io_res = bus_alloc_resource_any(self, SYS_RES_MEMORY, &rid,
+	    RF_ACTIVE);
 	if (!sc->sc_io_res) {
 		device_printf(self, "Could not map memory\n");
 		goto error;
@@ -332,7 +328,7 @@ mv_ehci_detach(device_t self)
 		    sc->sc_io_res);
 		sc->sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_bus);
+	usb_bus_struct_fini(&sc->sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/ehci_pci.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/ehci_pci.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/ehci_pci.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -301,15 +301,10 @@ ehci_pci_attach(device_t self)
 	int err;
 	int rid;
 
-	/* initialise some bus fields */
-	sc->sc_bus.parent = self;
-	sc->sc_bus.devices = sc->sc_devices;
-	sc->sc_bus.devices_max = EHCI_MAX_DEVICES;
-	sc->sc_bus.busmem_func = ehci_iterate_hw_softc;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self)))
-		return (ENOMEM);
+	err = usb_bus_struct_init(&sc->sc_bus, self, sc->sc_devices,
+	    EHCI_MAX_DEVICES, ehci_iterate_hw_softc);
+	if (err != 0)
+		return (err);
 
 	pci_enable_busmaster(self);
 
@@ -533,7 +528,7 @@ ehci_pci_detach(device_t self)
 		    sc->sc_io_res);
 		sc->sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_bus);
+	usb_bus_struct_fini(&sc->sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/musb_otg_atmelarm.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/musb_otg_atmelarm.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/musb_otg_atmelarm.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -113,16 +113,11 @@ musbotg_attach(device_t dev)
 	sc->sc_otg.sc_clocks_off = &musbotg_clocks_off;
 	sc->sc_otg.sc_clocks_arg = sc;
 
-	/* initialise some bus fields */
-	sc->sc_otg.sc_bus.parent = dev;
-	sc->sc_otg.sc_bus.devices = sc->sc_otg.sc_devices;
-	sc->sc_otg.sc_bus.devices_max = MUSB2_MAX_DEVICES;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_otg.sc_bus,
-	    USB_GET_DMA_TAG(dev), NULL)) {
-		return (ENOMEM);
-	}
+	err = usb_bus_struct_init(&sc->sc_otg.sc_bus, dev,
+	    sc->sc_otg.sc_devices, MUSB2_MAX_DEVICES, NULL);
+	if (err != 0)
+		return (err);
+
 	rid = 0;
 	sc->sc_otg.sc_io_res =
 	    bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE);
@@ -212,7 +207,7 @@ musbotg_detach(device_t dev)
 		    sc->sc_otg.sc_io_res);
 		sc->sc_otg.sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_otg.sc_bus, NULL);
+	usb_bus_struct_fini(&sc->sc_otg.sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -88,15 +88,10 @@ ohci_atmelarm_attach(device_t dev)
 	int err;
 	int rid;
 
-	/* initialise some bus fields */
-	sc->sc_ohci.sc_bus.parent = dev;
-	sc->sc_ohci.sc_bus.devices = sc->sc_ohci.sc_devices;
-	sc->sc_ohci.sc_bus.devices_max = OHCI_MAX_DEVICES;
-	sc->sc_ohci.sc_bus.busmem_func = ohci_iterate_hw_softc;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_ohci.sc_bus, USB_GET_DMA_TAG(dev)))
-		return (ENOMEM);
+	err = usb_bus_struct_init(&sc->sc_ohci.sc_bus, dev,
+	    sc->sc_ohci.sc_devices, OHCI_MAX_DEVICES, ohci_iterate_hw_softc);
+	if (err != 0)
+		return (err);
 
 	sc->iclk = at91_pmc_clock_ref("ohci_clk");
 	sc->fclk = at91_pmc_clock_ref("uhpck");
@@ -212,7 +207,7 @@ ohci_atmelarm_detach(device_t dev)
 		    sc->sc_ohci.sc_io_res);
 		sc->sc_ohci.sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_ohci.sc_bus);
+	usb_bus_struct_fini(&sc->sc_ohci.sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/ohci_pci.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/ohci_pci.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/ohci_pci.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -217,15 +217,10 @@ ohci_pci_attach(device_t self)
 	int rid;
 	int err;
 
-	/* initialise some bus fields */
-	sc->sc_bus.parent = self;
-	sc->sc_bus.devices = sc->sc_devices;
-	sc->sc_bus.devices_max = OHCI_MAX_DEVICES;
-	sc->sc_bus.busmem_func = ohci_iterate_hw_softc;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self)))
-		return (ENOMEM);
+	err = usb_bus_struct_init(&sc->sc_bus, self, sc->sc_devices,
+	    OHCI_MAX_DEVICES, ohci_iterate_hw_softc);
+	if (err != 0)
+		return (err);
 
 	sc->sc_dev = self;
 
@@ -377,7 +372,7 @@ ohci_pci_detach(device_t self)
 		    sc->sc_io_res);
 		sc->sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_bus);
+	usb_bus_struct_fini(&sc->sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/ohci_s3c24x0.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/ohci_s3c24x0.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/ohci_s3c24x0.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -81,15 +81,10 @@ ohci_s3c24x0_attach(device_t dev)
 	int err;
 	int rid;
 
-	/* initialise some bus fields */
-	sc->sc_bus.parent = dev;
-	sc->sc_bus.devices = sc->sc_devices;
-	sc->sc_bus.devices_max = OHCI_MAX_DEVICES;
-	sc->sc_bus.busmem_func = ohci_iterate_hw_softc;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(dev)))
-		return (ENOMEM);
+	err = usb_bus_struct_init(&sc->sc_bus, dev, sc->sc_devices,
+	    OHCI_MAX_DEVICES, ohci_iterate_hw_softc);
+	if (err != 0)
+		return (err);
 
 	sc->sc_dev = dev;
 
@@ -188,7 +183,7 @@ ohci_s3c24x0_detach(device_t dev)
 		    sc->sc_io_res);
 		sc->sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_bus);
+	usb_bus_struct_fini(&sc->sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -277,15 +277,11 @@ uhci_pci_attach(device_t self)
 	int rid;
 	int err;
 
-	/* initialise some bus fields */
-	sc->sc_bus.parent = self;
-	sc->sc_bus.devices = sc->sc_devices;
-	sc->sc_bus.devices_max = UHCI_MAX_DEVICES;
-	sc->sc_bus.busmem_func = uhci_iterate_hw_softc;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self)))
-		return ENOMEM;
+	err = usb_bus_struct_init(&sc->sc_bus, self, sc->sc_devices,
+	    UHCI_MAX_DEVICES, uhci_iterate_hw_softc);
+	if (err != 0)
+		return (err);
+
 	sc->sc_dev = self;
 
 	pci_enable_busmaster(self);
@@ -441,7 +437,7 @@ uhci_pci_detach(device_t self)
 		    sc->sc_io_res);
 		sc->sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_bus);
+	usb_bus_struct_fini(&sc->sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -69,6 +69,7 @@ static device_attach_t usb_attach;
 static device_detach_t usb_detach;
 
 static void	usb_attach_sub(device_t, struct usb_bus *);
+static void	usb_bus_mem_free_all(struct usb_bus *);
 
 /* static variables */
 
@@ -518,31 +519,13 @@ usb_bus_mem_alloc_all_cb(struct usb_bus 
  *    0: Success
  * Else: Failure
  *------------------------------------------------------------------------*/
-uint8_t
+static uint8_t
 usb_bus_mem_alloc_all(struct usb_bus *bus, bus_dma_tag_t dmat)
 {
 
-	bus->alloc_failed = 0;
-
-	mtx_init(&bus->bus_mtx, device_get_nameunit(bus->parent),
-	    NULL, MTX_DEF | MTX_RECURSE);
-
-	usb_callout_init_mtx(&bus->power_wdog, &bus->bus_mtx, 0);
-
-	TAILQ_INIT(&bus->intr_q.head);
-
 #if USB_HAVE_BUSDMA
 	usb_dma_tag_setup(bus->dma_parent_tag, bus->dma_tags,
 	    dmat, &bus->bus_mtx, NULL, 32, USB_BUS_DMA_TAG_MAX);
-#endif
-	if ((bus->devices_max > USB_MAX_DEVICES) ||
-	    (bus->devices_max < USB_MIN_DEVICES) ||
-	    (bus->devices == NULL)) {
-		DPRINTFN(0, "Devices field has not been "
-		    "initialised properly\n");
-		bus->alloc_failed = 1;		/* failure */
-	}
-#if USB_HAVE_BUSDMA
 	if (bus->busmem_func != NULL)
 		bus->busmem_func(bus, usb_bus_mem_alloc_all_cb);
 #endif
@@ -567,7 +550,7 @@ usb_bus_mem_free_all_cb(struct usb_bus *
 /*------------------------------------------------------------------------*
  *	usb_bus_mem_free_all - factored out code
  *------------------------------------------------------------------------*/
-void
+static void
 usb_bus_mem_free_all(struct usb_bus *bus)
 {
 
@@ -576,6 +559,45 @@ usb_bus_mem_free_all(struct usb_bus *bus
 		bus->busmem_func(bus, usb_bus_mem_free_all_cb);
 	usb_dma_tag_unsetup(bus->dma_parent_tag);
 #endif
+}
+
+int
+usb_bus_struct_init(struct usb_bus *bus, device_t dev,
+    struct usb_device **udevs, uint8_t udevsmax,
+    void (*busmem_func)(struct usb_bus *, usb_bus_mem_callback_t *))
+{
+
+	if (udevsmax > USB_MAX_DEVICES || udevsmax < USB_MIN_DEVICES ||
+	    udevs == NULL) {
+		DPRINTFN(0, "Devices field has not been "
+		    "initialised properly\n");
+		return (ENXIO);
+	}
+
+	/* initialise some bus fields */
+	bus->parent = dev;
+	bus->devices = udevs;
+	bus->devices_max = udevsmax;
+	bus->busmem_func = busmem_func;
+	bus->alloc_failed = 0;
+
+	mtx_init(&bus->bus_mtx, device_get_nameunit(bus->parent),
+	    NULL, MTX_DEF | MTX_RECURSE);
+
+	usb_callout_init_mtx(&bus->power_wdog, &bus->bus_mtx, 0);
+
+	TAILQ_INIT(&bus->intr_q.head);
+
+	/* get all DMA memory */
+	if (usb_bus_mem_alloc_all(bus, USB_GET_DMA_TAG(dev)))
+		return (ENOMEM);
+	return (0);
+}
+
+void
+usb_bus_struct_fini(struct usb_bus *bus)
+{
 
+	usb_bus_mem_free_all(bus);
 	mtx_destroy(&bus->bus_mtx);
 }

Modified: user/weongyo/usb/sys/dev/usb/controller/uss820dci_atmelarm.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/uss820dci_atmelarm.c	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/controller/uss820dci_atmelarm.c	Sat Sep 11 23:03:40 2010	(r212484)
@@ -151,16 +151,11 @@ uss820_atmelarm_attach(device_t dev)
 	int err;
 	int rid;
 
-	/* initialise some bus fields */
-	sc->sc_bus.parent = dev;
-	sc->sc_bus.devices = sc->sc_devices;
-	sc->sc_bus.devices_max = USS820_MAX_DEVICES;
-
-	/* get all DMA memory */
-	if (usb_bus_mem_alloc_all(&sc->sc_bus,
-	    USB_GET_DMA_TAG(dev), NULL)) {
-		return (ENOMEM);
-	}
+	err = usb_bus_struct_init(&sc->sc_bus, dev, sc->sc_devices,
+	    USS820_MAX_DEVICES, NULL);
+	if (err != 0)
+		return (err);
+
 	rid = 0;
 	sc->sc_io_res =
 	    bus_alloc_resource_any(dev, SYS_RES_IOPORT, &rid, RF_ACTIVE);
@@ -247,7 +242,7 @@ uss820_atmelarm_detach(device_t dev)
 		    sc->sc_io_res);
 		sc->sc_io_res = NULL;
 	}
-	usb_bus_mem_free_all(&sc->sc_bus, NULL);
+	usb_bus_struct_fini(&sc->sc_bus);
 
 	return (0);
 }

Modified: user/weongyo/usb/sys/dev/usb/usb_controller.h
==============================================================================
--- user/weongyo/usb/sys/dev/usb/usb_controller.h	Sat Sep 11 22:09:16 2010	(r212483)
+++ user/weongyo/usb/sys/dev/usb/usb_controller.h	Sat Sep 11 23:03:40 2010	(r212484)
@@ -191,9 +191,11 @@ struct usb_temp_setup {
 
 /* prototypes */
 
+int	usb_bus_struct_init(struct usb_bus *, device_t, struct usb_device **,
+	    uint8_t, void (*busmem_func)(struct usb_bus *,
+	    usb_bus_mem_callback_t *));
+void	usb_bus_struct_fini(struct usb_bus *);
 void	usb_bus_mem_flush_all(struct usb_bus *bus);
-uint8_t	usb_bus_mem_alloc_all(struct usb_bus *bus, bus_dma_tag_t dmat);
-void	usb_bus_mem_free_all(struct usb_bus *bus);
 uint16_t usb_isoc_time_expand(struct usb_bus *bus, uint16_t isoc_time_curr);
 uint16_t usbd_fs_isoc_schedule_isoc_time_expand(struct usb_device *udev, struct usb_fs_isoc_schedule **pp_start, struct usb_fs_isoc_schedule **pp_end, uint16_t isoc_time);
 uint8_t	usbd_fs_isoc_schedule_alloc(struct usb_fs_isoc_schedule *fss, uint8_t *pstart, uint16_t len);


More information about the svn-src-user mailing list