svn commit: r212450 - in user/weongyo/usb/sys/dev/usb: . controller
Weongyo Jeong
weongyo at FreeBSD.org
Sat Sep 11 01:49:06 UTC 2010
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);
More information about the svn-src-user
mailing list