Some structs in linux/usb/audio.h have got new names to mark them as
part of version 1.0 of the USB audio standard. Follow these changes
in the gadget drivers.
Note that this header and the ALSA USB driver will undergo some
refactoring soon, so there might be another update to the gadgets as
well.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The wTotalLength should contain the sum of the interface and unit
descriptor sizes per the Audio Device Class specification 1.0.
Reported-by: Sergey Lapin <slapin@ossfans.org>
Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Use ERR_PTR and IS_ERR rather than mixing integers and pointers.
The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
expression *E;
@@
* E < 0
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Now that control requests targeted at an endpoint can be handled at the
function level, move the UAC-specific control request handling code from
the audio gadget driver to the audio function driver.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Those functions are used only used to fill the set/get members of
usb_audio_control. It doesn't make much sense to inline them.
Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
linux/usb/audio.h is a public header file that includes definitions
exported to userspace. To avoid namespace clashes, prefix all macro
definitions with UAC_. Existing macros and structures prefixed with
USB_AC_ and USB_AS_ are renamed for consistency.
Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
And use the new definitions in the USB Audio Class gadget driver.
Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Funtions added:
- setup all the USB audio class device descriptors
- handle class specific setup request
- receive data from USB host by ISO transfer
- play audio data by ALSA sound card
- open and setup playback PCM interface
- set default playback PCM parameters
- provide playback functions for USB audio driver
- provide PCM parameters set/get functions
Test on:
- Host: Ubuntu 8.10, kernel 2.6.27
- Gadget: EZKIT-BF548 with ASoC AD1980 codec
Todo:
- add real Mute control code
- add real Volume control code
- maybe find another way to replace dynamic buffer handling
with static buffer allocation
- test on Windows system
- provide control interface to handle mute/volume control
- provide capture interface in the future
- test on BF527, other USB device controler and other audio codec
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>