On Wed, Aug 24, 2011 at 7:30 AM, Chen Peter-B29397 B29397@freescale.com wrote:
This is a flexible USB Audio Class 2.0 compliant gadget driver that implements a simple topology with a virtual sound card exposed at the function side.
The driver doesn't expect any real audio codec to be present on the function - the audio streams are simply sinked to and sourced from a virtual ALSA sound card created. The user-space application may choose to do whatever it wants with the data received from the USB Host and choose to provide whatever it wants as audio data to the USB Host.
Capture(USB-Out) and Playback(USB-In) can be run at independent configurations specified via module parameters while loading the driver.
Have you a chance to test at Macbook (10.6.5+) which has USB Audio 2.0 support well?
Nopes, haven't had my hands on one yet. It would help if someone could verify.
.....
+/* STD AS ISO OUT Endpoint */ +struct usb_endpoint_descriptor fs_epout_desc = {
- .bLength = USB_DT_ENDPOINT_SIZE,
- .bDescriptorType = USB_DT_ENDPOINT,
- .bEndpointAddress = USB_DIR_OUT,
- .bmAttributes = USB_ENDPOINT_XFER_ISOC | USB_ENDPOINT_SYNC_ASYNC,
- .bInterval = 1,
+};
+struct usb_endpoint_descriptor hs_epout_desc = {
- .bLength = USB_DT_ENDPOINT_SIZE,
- .bDescriptorType = USB_DT_ENDPOINT,
- .bmAttributes = USB_ENDPOINT_XFER_ISOC | USB_ENDPOINT_SYNC_ASYNC,
- .bInterval = 4,
+};
The sync type is asynchronous, do you have plan to add feedback for handling overflow and underflow?
umm... I was not sure if the feature is worth the overhead/complexity of maintaining timers in the driver. Though I welcome hearing why not so?