Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
emufx.c File Reference
#include <linux/pci.h>
#include <linux/capability.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/init.h>
#include <linux/mutex.h>
#include <linux/moduleparam.h>
#include <sound/core.h>
#include <sound/tlv.h>
#include <sound/emu10k1.h>

Go to the source code of this file.

Macros

#define OP(icode, ptr, op, r, a, x, y)   snd_emu10k1_write_op(icode, ptr, op, r, a, x, y)
 
#define A_OP(icode, ptr, op, r, a, x, y)   snd_emu10k1_audigy_write_op(icode, ptr, op, r, a, x, y)
 
#define MAX_TLV_SIZE   256
 
#define SND_EMU10K1_GPR_CONTROLS   44
 
#define SND_EMU10K1_INPUTS   12
 
#define SND_EMU10K1_PLAYBACK_CHANNELS   8
 
#define SND_EMU10K1_CAPTURE_CHANNELS   4
 
#define A_ADD_VOLUME_IN(var, vol, input)   A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
 
#define A_PUT_OUTPUT(out, src)   A_OP(icode, &ptr, iACC3, A_EXTOUT(out), A_C_00000000, A_C_00000000, A_GPR(src))
 
#define A_PUT_STEREO_OUTPUT(out1, out2, src)   {A_PUT_OUTPUT(out1,src); A_PUT_OUTPUT(out2,src+1);}
 
#define _A_SWITCH(icode, ptr, dst, src, sw)   A_OP((icode), ptr, iMACINT0, dst, A_C_00000000, src, sw);
 
#define A_SWITCH(icode, ptr, dst, src, sw)   _A_SWITCH(icode, ptr, A_GPR(dst), A_GPR(src), A_GPR(sw))
 
#define _A_SWITCH_NEG(icode, ptr, dst, src)   A_OP((icode), ptr, iANDXOR, dst, src, A_C_00000001, A_C_00000001);
 
#define A_SWITCH_NEG(icode, ptr, dst, src)   _A_SWITCH_NEG(icode, ptr, A_GPR(dst), A_GPR(src))
 
#define BASS_GPR   0x8c
 
#define TREBLE_GPR   0x96
 
#define VOLUME(icode, ptr, dst, src, vol)   _volume(icode, ptr, GPR(dst), GPR(src), GPR(vol))
 
#define VOLUME_IN(icode, ptr, dst, src, vol)   _volume(icode, ptr, GPR(dst), EXTIN(src), GPR(vol))
 
#define VOLUME_ADD(icode, ptr, dst, src, vol)   _volume_add(icode, ptr, GPR(dst), GPR(src), GPR(vol))
 
#define VOLUME_ADDIN(icode, ptr, dst, src, vol)   _volume_add(icode, ptr, GPR(dst), EXTIN(src), GPR(vol))
 
#define VOLUME_OUT(icode, ptr, dst, src, vol)   _volume_out(icode, ptr, EXTOUT(dst), GPR(src), GPR(vol))
 
#define _SWITCH(icode, ptr, dst, src, sw)   OP((icode), ptr, iMACINT0, dst, C_00000000, src, sw);
 
#define SWITCH(icode, ptr, dst, src, sw)   _SWITCH(icode, ptr, GPR(dst), GPR(src), GPR(sw))
 
#define SWITCH_IN(icode, ptr, dst, src, sw)   _SWITCH(icode, ptr, GPR(dst), EXTIN(src), GPR(sw))
 
#define _SWITCH_NEG(icode, ptr, dst, src)   OP((icode), ptr, iANDXOR, dst, src, C_00000001, C_00000001);
 
#define SWITCH_NEG(icode, ptr, dst, src)   _SWITCH_NEG(icode, ptr, GPR(dst), GPR(src))
 
#define BASS_GPR   0x8c
 
#define TREBLE_GPR   0x96
 

Functions

 module_param (high_res_gpr_volume, bool, 0444)
 
 MODULE_PARM_DESC (high_res_gpr_volume,"GPR mixer controls use 31-bit range.")
 
int snd_emu10k1_fx8010_register_irq_handler (struct snd_emu10k1 *emu, snd_fx8010_irq_handler_t *handler, unsigned char gpr_running, void *private_data, struct snd_emu10k1_fx8010_irq **r_irq)
 
int snd_emu10k1_fx8010_unregister_irq_handler (struct snd_emu10k1 *emu, struct snd_emu10k1_fx8010_irq *irq)
 
unsigned int snd_emu10k1_efx_read (struct snd_emu10k1 *emu, unsigned int pc)
 
int __devinit snd_emu10k1_init_efx (struct snd_emu10k1 *emu)
 
void snd_emu10k1_free_efx (struct snd_emu10k1 *emu)
 
int snd_emu10k1_fx8010_tram_setup (struct snd_emu10k1 *emu, u32 size)
 
int __devinit snd_emu10k1_fx8010_new (struct snd_emu10k1 *emu, int device, struct snd_hwdep **rhwdep)
 

Macro Definition Documentation

#define _A_SWITCH (   icode,
  ptr,
  dst,
  src,
  sw 
)    A_OP((icode), ptr, iMACINT0, dst, A_C_00000000, src, sw);
#define _A_SWITCH_NEG (   icode,
  ptr,
  dst,
  src 
)    A_OP((icode), ptr, iANDXOR, dst, src, A_C_00000001, A_C_00000001);
#define _SWITCH (   icode,
  ptr,
  dst,
  src,
  sw 
)    OP((icode), ptr, iMACINT0, dst, C_00000000, src, sw);

Definition at line 1794 of file emufx.c.

#define _SWITCH_NEG (   icode,
  ptr,
  dst,
  src 
)    OP((icode), ptr, iANDXOR, dst, src, C_00000001, C_00000001);

Definition at line 1800 of file emufx.c.

#define A_ADD_VOLUME_IN (   var,
  vol,
  input 
)    A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
#define A_OP (   icode,
  ptr,
  op,
  r,
  a,
  x,
  y 
)    snd_emu10k1_audigy_write_op(icode, ptr, op, r, a, x, y)

Definition at line 525 of file emufx.c.

#define A_PUT_OUTPUT (   out,
  src 
)    A_OP(icode, &ptr, iACC3, A_EXTOUT(out), A_C_00000000, A_C_00000000, A_GPR(src))
#define A_PUT_STEREO_OUTPUT (   out1,
  out2,
  src 
)    {A_PUT_OUTPUT(out1,src); A_PUT_OUTPUT(out2,src+1);}
#define A_SWITCH (   icode,
  ptr,
  dst,
  src,
  sw 
)    _A_SWITCH(icode, ptr, A_GPR(dst), A_GPR(src), A_GPR(sw))
#define A_SWITCH_NEG (   icode,
  ptr,
  dst,
  src 
)    _A_SWITCH_NEG(icode, ptr, A_GPR(dst), A_GPR(src))
#define BASS_GPR   0x8c
#define BASS_GPR   0x8c
#define MAX_TLV_SIZE   256

Definition at line 666 of file emufx.c.

#define OP (   icode,
  ptr,
  op,
  r,
  a,
  x,
  y 
)    snd_emu10k1_write_op(icode, ptr, op, r, a, x, y)

Definition at line 508 of file emufx.c.

#define SND_EMU10K1_CAPTURE_CHANNELS   4

Definition at line 1074 of file emufx.c.

#define SND_EMU10K1_GPR_CONTROLS   44

Definition at line 1071 of file emufx.c.

#define SND_EMU10K1_INPUTS   12

Definition at line 1072 of file emufx.c.

#define SND_EMU10K1_PLAYBACK_CHANNELS   8

Definition at line 1073 of file emufx.c.

#define SWITCH (   icode,
  ptr,
  dst,
  src,
  sw 
)    _SWITCH(icode, ptr, GPR(dst), GPR(src), GPR(sw))

Definition at line 1796 of file emufx.c.

#define SWITCH_IN (   icode,
  ptr,
  dst,
  src,
  sw 
)    _SWITCH(icode, ptr, GPR(dst), EXTIN(src), GPR(sw))

Definition at line 1798 of file emufx.c.

#define SWITCH_NEG (   icode,
  ptr,
  dst,
  src 
)    _SWITCH_NEG(icode, ptr, GPR(dst), GPR(src))

Definition at line 1802 of file emufx.c.

#define TREBLE_GPR   0x96
#define TREBLE_GPR   0x96
#define VOLUME (   icode,
  ptr,
  dst,
  src,
  vol 
)    _volume(icode, ptr, GPR(dst), GPR(src), GPR(vol))

Definition at line 1784 of file emufx.c.

#define VOLUME_ADD (   icode,
  ptr,
  dst,
  src,
  vol 
)    _volume_add(icode, ptr, GPR(dst), GPR(src), GPR(vol))

Definition at line 1788 of file emufx.c.

#define VOLUME_ADDIN (   icode,
  ptr,
  dst,
  src,
  vol 
)    _volume_add(icode, ptr, GPR(dst), EXTIN(src), GPR(vol))

Definition at line 1790 of file emufx.c.

#define VOLUME_IN (   icode,
  ptr,
  dst,
  src,
  vol 
)    _volume(icode, ptr, GPR(dst), EXTIN(src), GPR(vol))

Definition at line 1786 of file emufx.c.

#define VOLUME_OUT (   icode,
  ptr,
  dst,
  src,
  vol 
)    _volume_out(icode, ptr, EXTOUT(dst), GPR(src), GPR(vol))

Definition at line 1792 of file emufx.c.

Function Documentation

module_param ( high_res_gpr_volume  ,
bool  ,
0444   
)
MODULE_PARM_DESC ( high_res_gpr_volume  ,
"GPR mixer controls use 31-bit range."   
)
unsigned int snd_emu10k1_efx_read ( struct snd_emu10k1 *  emu,
unsigned int  pc 
)

Definition at line 534 of file emufx.c.

void snd_emu10k1_free_efx ( struct snd_emu10k1 *  emu)

Definition at line 2386 of file emufx.c.

int __devinit snd_emu10k1_fx8010_new ( struct snd_emu10k1 *  emu,
int  device,
struct snd_hwdep **  rhwdep 
)

Definition at line 2629 of file emufx.c.

int snd_emu10k1_fx8010_register_irq_handler ( struct snd_emu10k1 *  emu,
snd_fx8010_irq_handler_t *  handler,
unsigned char  gpr_running,
void private_data,
struct snd_emu10k1_fx8010_irq **  r_irq 
)

Definition at line 435 of file emufx.c.

int snd_emu10k1_fx8010_tram_setup ( struct snd_emu10k1 *  emu,
u32  size 
)

Definition at line 2413 of file emufx.c.

int snd_emu10k1_fx8010_unregister_irq_handler ( struct snd_emu10k1 *  emu,
struct snd_emu10k1_fx8010_irq *  irq 
)

Definition at line 466 of file emufx.c.

int __devinit snd_emu10k1_init_efx ( struct snd_emu10k1 *  emu)

Definition at line 2376 of file emufx.c.