Date: Sat, 11 Sep 2010 01:49:06 +0000 (UTC) From: Weongyo Jeong <weongyo@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r212450 - in user/weongyo/usb/sys/dev/usb: . controller Message-ID: <201009110149.o8B1n6f7014201@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: weongyo Date: Sat Sep 11 01:49:05 2010 New Revision: 212450 URL: http://svn.freebsd.org/changeset/base/212450 Log: Removes `usb_bus_mem_callback_t' and simplifies the logic passing the callback pointer. As a refection by this change the following prototype of functions are changed: o usb_bus_mem_flush_all o usb_bus_mem_free_all o usb_bus_mem_alloc_all Modified: user/weongyo/usb/sys/dev/usb/controller/ehci.c user/weongyo/usb/sys/dev/usb/controller/ehci.h 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/ohci.c user/weongyo/usb/sys/dev/usb/controller/ohci.h 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.c user/weongyo/usb/sys/dev/usb/controller/uhci.h 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/usb_bus.h user/weongyo/usb/sys/dev/usb/usb_controller.h Modified: user/weongyo/usb/sys/dev/usb/controller/ehci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ehci.c Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ehci.c Sat Sep 11 01:49:05 2010 (r212450) @@ -482,9 +482,9 @@ ehci_init(ehci_softc_t *sc) qh->qh_qtd.qtd_altnext = htohc32(sc, EHCI_LINK_TERMINATE); qh->qh_qtd.qtd_status = htohc32(sc, EHCI_QTD_HALTED); } - /* flush all cache into memory */ - usb_bus_mem_flush_all(&sc->sc_bus, ehci_iterate_hw_softc); + /* flush all cache into memory */ + usb_bus_mem_flush_all(&sc->sc_bus); #ifdef USB_DEBUG if (ehcidebug) { Modified: user/weongyo/usb/sys/dev/usb/controller/ehci.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ehci.h Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ehci.h Sat Sep 11 01:49:05 2010 (r212450) @@ -437,8 +437,6 @@ hc16toh(const struct ehci_softc *sc, con } #endif -usb_bus_mem_callback_t ehci_iterate_hw_softc; - usb_error_t ehci_reset(ehci_softc_t *sc); usb_error_t ehci_init(ehci_softc_t *sc); void ehci_detach(struct ehci_softc *sc); @@ -446,5 +444,6 @@ void ehci_suspend(struct ehci_softc *sc) void ehci_resume(struct ehci_softc *sc); void ehci_shutdown(ehci_softc_t *sc); void ehci_interrupt(ehci_softc_t *sc); +void ehci_iterate_hw_softc(struct usb_bus *, usb_bus_mem_sub_callback_t *); #endif /* _EHCI_H_ */ Modified: user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c Sat Sep 11 01:49:05 2010 (r212450) @@ -150,12 +150,11 @@ ehci_ixp_attach(device_t self) 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), ehci_iterate_hw_softc)) { + if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self))) return (ENOMEM); - } /* NB: hints fix the memory location and irq */ @@ -291,7 +290,7 @@ ehci_ixp_detach(device_t self) sc->sc_io_res); sc->sc_io_res = NULL; } - usb_bus_mem_free_all(&sc->sc_bus, ehci_iterate_hw_softc); + usb_bus_mem_free_all(&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 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ehci_mv.c Sat Sep 11 01:49:05 2010 (r212450) @@ -165,12 +165,11 @@ mv_ehci_attach(device_t self) 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), ehci_iterate_hw_softc)) { + if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self))) return (ENOMEM); - } rid = 0; sc->sc_io_res = bus_alloc_resource_any(self, SYS_RES_MEMORY, &rid, RF_ACTIVE); @@ -333,7 +332,7 @@ mv_ehci_detach(device_t self) sc->sc_io_res); sc->sc_io_res = NULL; } - usb_bus_mem_free_all(&sc->sc_bus, ehci_iterate_hw_softc); + usb_bus_mem_free_all(&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 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ehci_pci.c Sat Sep 11 01:49:05 2010 (r212450) @@ -305,12 +305,11 @@ ehci_pci_attach(device_t self) 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), ehci_iterate_hw_softc)) { + if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self))) return (ENOMEM); - } pci_enable_busmaster(self); @@ -534,7 +533,7 @@ ehci_pci_detach(device_t self) sc->sc_io_res); sc->sc_io_res = NULL; } - usb_bus_mem_free_all(&sc->sc_bus, ehci_iterate_hw_softc); + usb_bus_mem_free_all(&sc->sc_bus); return (0); } Modified: user/weongyo/usb/sys/dev/usb/controller/ohci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ohci.c Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ohci.c Sat Sep 11 01:49:05 2010 (r212450) @@ -397,7 +397,7 @@ ohci_init(ohci_softc_t *sc) } /* flush all cache into memory */ - usb_bus_mem_flush_all(&sc->sc_bus, ohci_iterate_hw_softc); + usb_bus_mem_flush_all(&sc->sc_bus); /* set up the bus struct */ sc->sc_bus.methods = &ohci_bus_methods; Modified: user/weongyo/usb/sys/dev/usb/controller/ohci.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ohci.h Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ohci.h Sat Sep 11 01:49:05 2010 (r212450) @@ -256,12 +256,11 @@ typedef struct ohci_softc { } ohci_softc_t; -usb_bus_mem_callback_t ohci_iterate_hw_softc; - usb_error_t ohci_init(ohci_softc_t *sc); void ohci_detach(struct ohci_softc *sc); void ohci_suspend(ohci_softc_t *sc); void ohci_resume(ohci_softc_t *sc); void ohci_interrupt(ohci_softc_t *sc); +void ohci_iterate_hw_softc(struct usb_bus *, usb_bus_mem_sub_callback_t *); #endif /* _OHCI_H_ */ Modified: user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c Sat Sep 11 01:49:05 2010 (r212450) @@ -92,12 +92,12 @@ ohci_atmelarm_attach(device_t dev) 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), ohci_iterate_hw_softc)) { + if (usb_bus_mem_alloc_all(&sc->sc_ohci.sc_bus, USB_GET_DMA_TAG(dev))) return (ENOMEM); - } + sc->iclk = at91_pmc_clock_ref("ohci_clk"); sc->fclk = at91_pmc_clock_ref("uhpck"); @@ -212,7 +212,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, ohci_iterate_hw_softc); + usb_bus_mem_free_all(&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 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ohci_pci.c Sat Sep 11 01:49:05 2010 (r212450) @@ -221,12 +221,12 @@ ohci_pci_attach(device_t self) 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), - ohci_iterate_hw_softc)) { + if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self))) return (ENOMEM); - } + sc->sc_dev = self; pci_enable_busmaster(self); @@ -377,7 +377,7 @@ ohci_pci_detach(device_t self) sc->sc_io_res); sc->sc_io_res = NULL; } - usb_bus_mem_free_all(&sc->sc_bus, ohci_iterate_hw_softc); + usb_bus_mem_free_all(&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 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/ohci_s3c24x0.c Sat Sep 11 01:49:05 2010 (r212450) @@ -85,12 +85,11 @@ ohci_s3c24x0_attach(device_t dev) 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), - ohci_iterate_hw_softc)) { + if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(dev))) return (ENOMEM); - } sc->sc_dev = dev; @@ -189,7 +188,7 @@ ohci_s3c24x0_detach(device_t dev) sc->sc_io_res); sc->sc_io_res = NULL; } - usb_bus_mem_free_all(&sc->sc_bus, ohci_iterate_hw_softc); + usb_bus_mem_free_all(&sc->sc_bus); return (0); } Modified: user/weongyo/usb/sys/dev/usb/controller/uhci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/uhci.c Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/uhci.c Sat Sep 11 01:49:05 2010 (r212450) @@ -638,9 +638,9 @@ uhci_init(uhci_softc_t *sc) sc->sc_isoc_p_last[x % UHCI_VFRAMELIST_COUNT]->td_self; } } - /* flush all cache into memory */ - usb_bus_mem_flush_all(&sc->sc_bus, uhci_iterate_hw_softc); + /* flush all cache into memory */ + usb_bus_mem_flush_all(&sc->sc_bus); /* set up the bus struct */ sc->sc_bus.methods = &uhci_bus_methods; Modified: user/weongyo/usb/sys/dev/usb/controller/uhci.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/uhci.h Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/uhci.h Sat Sep 11 01:49:05 2010 (r212450) @@ -242,12 +242,11 @@ typedef struct uhci_softc { char sc_vendor[16]; /* vendor string for root hub */ } uhci_softc_t; -usb_bus_mem_callback_t uhci_iterate_hw_softc; - usb_error_t uhci_init(uhci_softc_t *sc); void uhci_suspend(uhci_softc_t *sc); void uhci_resume(uhci_softc_t *sc); void uhci_reset(uhci_softc_t *sc); void uhci_interrupt(uhci_softc_t *sc); +void uhci_iterate_hw_softc(struct usb_bus *, usb_bus_mem_sub_callback_t *); #endif /* _UHCI_H_ */ Modified: user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c Sat Sep 11 01:49:05 2010 (r212450) @@ -281,12 +281,11 @@ uhci_pci_attach(device_t self) 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), - uhci_iterate_hw_softc)) { + if (usb_bus_mem_alloc_all(&sc->sc_bus, USB_GET_DMA_TAG(self))) return ENOMEM; - } sc->sc_dev = self; pci_enable_busmaster(self); @@ -442,7 +441,7 @@ uhci_pci_detach(device_t self) sc->sc_io_res); sc->sc_io_res = NULL; } - usb_bus_mem_free_all(&sc->sc_bus, uhci_iterate_hw_softc); + usb_bus_mem_free_all(&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 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Sat Sep 11 01:49:05 2010 (r212450) @@ -486,11 +486,11 @@ usb_bus_mem_flush_all_cb(struct usb_bus *------------------------------------------------------------------------*/ #if USB_HAVE_BUSDMA void -usb_bus_mem_flush_all(struct usb_bus *bus, usb_bus_mem_callback_t *func) +usb_bus_mem_flush_all(struct usb_bus *bus) { - if (func != NULL) - (*func)(bus, usb_bus_mem_flush_all_cb); + if (bus->busmem_func != NULL) + bus->busmem_func(bus, usb_bus_mem_flush_all_cb); } #endif @@ -519,8 +519,7 @@ usb_bus_mem_alloc_all_cb(struct usb_bus * Else: Failure *------------------------------------------------------------------------*/ uint8_t -usb_bus_mem_alloc_all(struct usb_bus *bus, bus_dma_tag_t dmat, - usb_bus_mem_callback_t *func) +usb_bus_mem_alloc_all(struct usb_bus *bus, bus_dma_tag_t dmat) { bus->alloc_failed = 0; @@ -544,11 +543,11 @@ usb_bus_mem_alloc_all(struct usb_bus *bu bus->alloc_failed = 1; /* failure */ } #if USB_HAVE_BUSDMA - if (func != NULL) - (*func)(bus, usb_bus_mem_alloc_all_cb); + if (bus->busmem_func != NULL) + bus->busmem_func(bus, usb_bus_mem_alloc_all_cb); #endif if (bus->alloc_failed) - usb_bus_mem_free_all(bus, func); + usb_bus_mem_free_all(bus); return (bus->alloc_failed); } @@ -569,12 +568,12 @@ usb_bus_mem_free_all_cb(struct usb_bus * * usb_bus_mem_free_all - factored out code *------------------------------------------------------------------------*/ void -usb_bus_mem_free_all(struct usb_bus *bus, usb_bus_mem_callback_t *func) +usb_bus_mem_free_all(struct usb_bus *bus) { #if USB_HAVE_BUSDMA - if (func != NULL) - (*func)(bus, usb_bus_mem_free_all_cb); + if (bus->busmem_func != NULL) + bus->busmem_func(bus, usb_bus_mem_free_all_cb); usb_dma_tag_unsetup(bus->dma_parent_tag); #endif Modified: user/weongyo/usb/sys/dev/usb/usb_bus.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_bus.h Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/usb_bus.h Sat Sep 11 01:49:05 2010 (r212450) @@ -86,6 +86,8 @@ struct usb_bus { struct usb_bus_methods *methods; /* filled by HC driver */ struct usb_device **devices; + void (*busmem_func)(struct usb_bus *, usb_bus_mem_sub_callback_t *); + usb_power_mask_t hw_power_state; /* see USB_HW_POWER_XXX */ usb_size_t uframe_usage[USB_HS_MICRO_FRAMES_MAX]; Modified: user/weongyo/usb/sys/dev/usb/usb_controller.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_controller.h Sat Sep 11 01:27:10 2010 (r212449) +++ user/weongyo/usb/sys/dev/usb/usb_controller.h Sat Sep 11 01:49:05 2010 (r212450) @@ -48,8 +48,6 @@ struct usb_endpoint_descriptor; typedef void (usb_bus_mem_sub_callback_t)(struct usb_bus *, struct usb_page_cache *, struct usb_page *, usb_size_t, usb_size_t); -typedef void (usb_bus_mem_callback_t)(struct usb_bus *, - usb_bus_mem_sub_callback_t *); /* * The following structure is used to define all the USB BUS @@ -193,10 +191,9 @@ struct usb_temp_setup { /* prototypes */ -void usb_bus_mem_flush_all(struct usb_bus *bus, usb_bus_mem_callback_t *cb); -uint8_t usb_bus_mem_alloc_all(struct usb_bus *bus, bus_dma_tag_t dmat, - usb_bus_mem_callback_t *cb); -void usb_bus_mem_free_all(struct usb_bus *bus, usb_bus_mem_callback_t *cb); +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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009110149.o8B1n6f7014201>