Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Enumerations | Functions
quirks.c File Reference
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/usb.h>
#include <linux/usb/audio.h>
#include <sound/control.h>
#include <sound/core.h>
#include <sound/info.h>
#include <sound/pcm.h>
#include "usbaudio.h"
#include "card.h"
#include "mixer.h"
#include "mixer_quirks.h"
#include "midi.h"
#include "quirks.h"
#include "helper.h"
#include "endpoint.h"
#include "pcm.h"
#include "clock.h"
#include "stream.h"

Go to the source code of this file.

Macros

#define EXTIGY_FIRMWARE_SIZE_OLD   794
 
#define EXTIGY_FIRMWARE_SIZE_NEW   483
 
#define MAUDIO_SET   0x01 /* parse device_setup */
 
#define MAUDIO_SET_COMPATIBLE   0x80 /* use only "win-compatible" interfaces */
 
#define MAUDIO_SET_DTS   0x02 /* enable DTS Digital Output */
 
#define MAUDIO_SET_96K   0x04 /* 48-96KHz rate if set, 8-48KHz otherwise */
 
#define MAUDIO_SET_24B   0x08 /* 24bits sample if set, 16bits otherwise */
 
#define MAUDIO_SET_DI   0x10 /* enable Digital Input */
 
#define MAUDIO_SET_MASK   0x1f /* bit mask for setup value */
 
#define MAUDIO_SET_24B_48K_DI   0x19 /* 24bits+48KHz+Digital Input */
 
#define MAUDIO_SET_24B_48K_NOTDI   0x09 /* 24bits+48KHz+No Digital Input */
 
#define MAUDIO_SET_16B_48K_DI   0x11 /* 16bits+48KHz+Digital Input */
 
#define MAUDIO_SET_16B_48K_NOTDI   0x01 /* 16bits+48KHz+No Digital Input */
 

Enumerations

enum  {
  EMU_QUIRK_SR_44100HZ = 0, EMU_QUIRK_SR_48000HZ, EMU_QUIRK_SR_88200HZ, EMU_QUIRK_SR_96000HZ,
  EMU_QUIRK_SR_176400HZ, EMU_QUIRK_SR_192000HZ
}
 

Functions

int snd_usb_create_quirk (struct snd_usb_audio *chip, struct usb_interface *iface, struct usb_driver *driver, const struct snd_usb_audio_quirk *quirk)
 
int snd_usb_apply_interface_quirk (struct snd_usb_audio *chip, int iface, int altno)
 
int snd_usb_apply_boot_quirk (struct usb_device *dev, struct usb_interface *intf, const struct snd_usb_audio_quirk *quirk)
 
int snd_usb_is_big_endian_format (struct snd_usb_audio *chip, struct audioformat *fp)
 
void snd_usb_set_format_quirk (struct snd_usb_substream *subs, struct audioformat *fmt)
 
void snd_usb_endpoint_start_quirk (struct snd_usb_endpoint *ep)
 
void snd_usb_ctl_msg_quirk (struct usb_device *dev, unsigned int pipe, __u8 request, __u8 requesttype, __u16 value, __u16 index, void *data, __u16 size)
 

Macro Definition Documentation

#define EXTIGY_FIRMWARE_SIZE_NEW   483

Definition at line 334 of file quirks.c.

#define EXTIGY_FIRMWARE_SIZE_OLD   794

Definition at line 333 of file quirks.c.

#define MAUDIO_SET   0x01 /* parse device_setup */

Definition at line 503 of file quirks.c.

#define MAUDIO_SET_16B_48K_DI   0x11 /* 16bits+48KHz+Digital Input */

Definition at line 512 of file quirks.c.

#define MAUDIO_SET_16B_48K_NOTDI   0x01 /* 16bits+48KHz+No Digital Input */

Definition at line 513 of file quirks.c.

#define MAUDIO_SET_24B   0x08 /* 24bits sample if set, 16bits otherwise */

Definition at line 507 of file quirks.c.

#define MAUDIO_SET_24B_48K_DI   0x19 /* 24bits+48KHz+Digital Input */

Definition at line 510 of file quirks.c.

#define MAUDIO_SET_24B_48K_NOTDI   0x09 /* 24bits+48KHz+No Digital Input */

Definition at line 511 of file quirks.c.

#define MAUDIO_SET_96K   0x04 /* 48-96KHz rate if set, 8-48KHz otherwise */

Definition at line 506 of file quirks.c.

#define MAUDIO_SET_COMPATIBLE   0x80 /* use only "win-compatible" interfaces */

Definition at line 504 of file quirks.c.

#define MAUDIO_SET_DI   0x10 /* enable Digital Input */

Definition at line 508 of file quirks.c.

#define MAUDIO_SET_DTS   0x02 /* enable DTS Digital Output */

Definition at line 505 of file quirks.c.

#define MAUDIO_SET_MASK   0x1f /* bit mask for setup value */

Definition at line 509 of file quirks.c.

Enumeration Type Documentation

anonymous enum
Enumerator:
EMU_QUIRK_SR_44100HZ 
EMU_QUIRK_SR_48000HZ 
EMU_QUIRK_SR_88200HZ 
EMU_QUIRK_SR_96000HZ 
EMU_QUIRK_SR_176400HZ 
EMU_QUIRK_SR_192000HZ 

Definition at line 705 of file quirks.c.

Function Documentation

int snd_usb_apply_boot_quirk ( struct usb_device *  dev,
struct usb_interface intf,
const struct snd_usb_audio_quirk quirk 
)

Definition at line 632 of file quirks.c.

int snd_usb_apply_interface_quirk ( struct snd_usb_audio chip,
int  iface,
int  altno 
)

Definition at line 615 of file quirks.c.

int snd_usb_create_quirk ( struct snd_usb_audio chip,
struct usb_interface iface,
struct usb_driver *  driver,
const struct snd_usb_audio_quirk quirk 
)

Definition at line 292 of file quirks.c.

void snd_usb_ctl_msg_quirk ( struct usb_device *  dev,
unsigned int  pipe,
__u8  request,
__u8  requesttype,
__u16  value,
__u16  index,
void data,
__u16  size 
)

Definition at line 775 of file quirks.c.

void snd_usb_endpoint_start_quirk ( struct snd_usb_endpoint ep)

Definition at line 764 of file quirks.c.

int snd_usb_is_big_endian_format ( struct snd_usb_audio chip,
struct audioformat fp 
)

Definition at line 676 of file quirks.c.

void snd_usb_set_format_quirk ( struct snd_usb_substream subs,
struct audioformat fmt 
)

Definition at line 751 of file quirks.c.