Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
wss.h File Reference
#include <sound/control.h>
#include <sound/pcm.h>
#include <sound/timer.h>
#include <sound/cs4231-regs.h>

Go to the source code of this file.

Data Structures

struct  snd_wss
 

Macros

#define WSS_MODE_NONE   0x0000
 
#define WSS_MODE_PLAY   0x0001
 
#define WSS_MODE_RECORD   0x0002
 
#define WSS_MODE_TIMER   0x0004
 
#define WSS_MODE_OPEN   (WSS_MODE_PLAY|WSS_MODE_RECORD|WSS_MODE_TIMER)
 
#define WSS_HW_DETECT   0x0000 /* let CS4231 driver detect chip */
 
#define WSS_HW_DETECT3   0x0001 /* allow mode 3 */
 
#define WSS_HW_TYPE_MASK   0xff00 /* type mask */
 
#define WSS_HW_CS4231_MASK   0x0100 /* CS4231 serie */
 
#define WSS_HW_CS4231   0x0100 /* CS4231 chip */
 
#define WSS_HW_CS4231A   0x0101 /* CS4231A chip */
 
#define WSS_HW_AD1845   0x0102 /* AD1845 chip */
 
#define WSS_HW_CS4232_MASK   0x0200 /* CS4232 serie (has control ports) */
 
#define WSS_HW_CS4232   0x0200 /* CS4232 */
 
#define WSS_HW_CS4232A   0x0201 /* CS4232A */
 
#define WSS_HW_CS4236   0x0202 /* CS4236 */
 
#define WSS_HW_CS4236B_MASK   0x0400 /* CS4236B serie (has extended control regs) */
 
#define WSS_HW_CS4235   0x0400 /* CS4235 - Crystal Clear (tm) stereo enhancement */
 
#define WSS_HW_CS4236B   0x0401 /* CS4236B */
 
#define WSS_HW_CS4237B   0x0402 /* CS4237B - SRS 3D */
 
#define WSS_HW_CS4238B   0x0403 /* CS4238B - QSOUND 3D */
 
#define WSS_HW_CS4239   0x0404 /* CS4239 - Crystal Clear (tm) stereo enhancement */
 
#define WSS_HW_AD1848_MASK   0x0800 /* AD1848 serie (half duplex) */
 
#define WSS_HW_AD1847   0x0801 /* AD1847 chip */
 
#define WSS_HW_AD1848   0x0802 /* AD1848 chip */
 
#define WSS_HW_CS4248   0x0803 /* CS4248 chip */
 
#define WSS_HW_CMI8330   0x0804 /* CMI8330 chip */
 
#define WSS_HW_THINKPAD   0x0805 /* Thinkpad 360/750/755 */
 
#define WSS_HW_INTERWAVE   0x1000 /* InterWave chip */
 
#define WSS_HW_OPL3SA2   0x1101 /* OPL3-SA2 chip, similar to cs4231 */
 
#define WSS_HW_OPTI93X   0x1102 /* Opti 930/931/933 */
 
#define WSS_HWSHARE_IRQ   (1<<0)
 
#define WSS_HWSHARE_DMA1   (1<<1)
 
#define WSS_HWSHARE_DMA2   (1<<2)
 
#define AD1848_THINKPAD_CTL_PORT1   0x15e8
 
#define AD1848_THINKPAD_CTL_PORT2   0x15e9
 
#define AD1848_THINKPAD_CS4248_ENABLE_BIT   0x02
 
#define WSS_SINGLE(xname, xindex, reg, shift, mask, invert)
 
#define WSS_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert)
 
#define WSS_SINGLE_TLV(xname, xindex, reg, shift, mask, invert, xtlv)
 
#define WSS_DOUBLE_TLV(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert, xtlv)
 

Functions

void snd_wss_out (struct snd_wss *chip, unsigned char reg, unsigned char val)
 
unsigned char snd_wss_in (struct snd_wss *chip, unsigned char reg)
 
void snd_cs4236_ext_out (struct snd_wss *chip, unsigned char reg, unsigned char val)
 
unsigned char snd_cs4236_ext_in (struct snd_wss *chip, unsigned char reg)
 
void snd_wss_mce_up (struct snd_wss *chip)
 
void snd_wss_mce_down (struct snd_wss *chip)
 
void snd_wss_overrange (struct snd_wss *chip)
 
irqreturn_t snd_wss_interrupt (int irq, void *dev_id)
 
const charsnd_wss_chip_id (struct snd_wss *chip)
 
int snd_wss_create (struct snd_card *card, unsigned long port, unsigned long cport, int irq, int dma1, int dma2, unsigned short hardware, unsigned short hwshare, struct snd_wss **rchip)
 
int snd_wss_pcm (struct snd_wss *chip, int device, struct snd_pcm **rpcm)
 
int snd_wss_timer (struct snd_wss *chip, int device, struct snd_timer **rtimer)
 
int snd_wss_mixer (struct snd_wss *chip)
 
struct snd_pcm_opssnd_wss_get_pcm_ops (int direction)
 
int snd_cs4236_create (struct snd_card *card, unsigned long port, unsigned long cport, int irq, int dma1, int dma2, unsigned short hardware, unsigned short hwshare, struct snd_wss **rchip)
 
int snd_cs4236_pcm (struct snd_wss *chip, int device, struct snd_pcm **rpcm)
 
int snd_cs4236_mixer (struct snd_wss *chip)
 
int snd_wss_info_single (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
int snd_wss_get_single (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
int snd_wss_put_single (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
int snd_wss_info_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
 
int snd_wss_get_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
int snd_wss_put_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 

Macro Definition Documentation

#define AD1848_THINKPAD_CS4248_ENABLE_BIT   0x02

Definition at line 77 of file wss.h.

#define AD1848_THINKPAD_CTL_PORT1   0x15e8

Definition at line 75 of file wss.h.

#define AD1848_THINKPAD_CTL_PORT2   0x15e9

Definition at line 76 of file wss.h.

#define WSS_DOUBLE (   xname,
  xindex,
  left_reg,
  right_reg,
  shift_left,
  shift_right,
  mask,
  invert 
)
Value:
.name = xname, \
.index = xindex, \
.private_value = left_reg | (right_reg << 8) | (shift_left << 16) | \
(shift_right << 19) | (mask << 24) | (invert << 22) }

Definition at line 193 of file wss.h.

#define WSS_DOUBLE_TLV (   xname,
  xindex,
  left_reg,
  right_reg,
  shift_left,
  shift_right,
  mask,
  invert,
  xtlv 
)
Value:
.name = xname, \
.index = xindex, \
.private_value = left_reg | (right_reg << 8) | (shift_left << 16) | \
(shift_right << 19) | (mask << 24) | (invert << 22), \
.tlv = { .p = (xtlv) } }

Definition at line 214 of file wss.h.

#define WSS_HW_AD1845   0x0102 /* AD1845 chip */

Definition at line 47 of file wss.h.

#define WSS_HW_AD1847   0x0801 /* AD1847 chip */

Definition at line 59 of file wss.h.

#define WSS_HW_AD1848   0x0802 /* AD1848 chip */

Definition at line 60 of file wss.h.

#define WSS_HW_AD1848_MASK   0x0800 /* AD1848 serie (half duplex) */

Definition at line 58 of file wss.h.

#define WSS_HW_CMI8330   0x0804 /* CMI8330 chip */

Definition at line 62 of file wss.h.

#define WSS_HW_CS4231   0x0100 /* CS4231 chip */

Definition at line 45 of file wss.h.

#define WSS_HW_CS4231_MASK   0x0100 /* CS4231 serie */

Definition at line 44 of file wss.h.

#define WSS_HW_CS4231A   0x0101 /* CS4231A chip */

Definition at line 46 of file wss.h.

#define WSS_HW_CS4232   0x0200 /* CS4232 */

Definition at line 49 of file wss.h.

#define WSS_HW_CS4232_MASK   0x0200 /* CS4232 serie (has control ports) */

Definition at line 48 of file wss.h.

#define WSS_HW_CS4232A   0x0201 /* CS4232A */

Definition at line 50 of file wss.h.

#define WSS_HW_CS4235   0x0400 /* CS4235 - Crystal Clear (tm) stereo enhancement */

Definition at line 53 of file wss.h.

#define WSS_HW_CS4236   0x0202 /* CS4236 */

Definition at line 51 of file wss.h.

#define WSS_HW_CS4236B   0x0401 /* CS4236B */

Definition at line 54 of file wss.h.

#define WSS_HW_CS4236B_MASK   0x0400 /* CS4236B serie (has extended control regs) */

Definition at line 52 of file wss.h.

#define WSS_HW_CS4237B   0x0402 /* CS4237B - SRS 3D */

Definition at line 55 of file wss.h.

#define WSS_HW_CS4238B   0x0403 /* CS4238B - QSOUND 3D */

Definition at line 56 of file wss.h.

#define WSS_HW_CS4239   0x0404 /* CS4239 - Crystal Clear (tm) stereo enhancement */

Definition at line 57 of file wss.h.

#define WSS_HW_CS4248   0x0803 /* CS4248 chip */

Definition at line 61 of file wss.h.

#define WSS_HW_DETECT   0x0000 /* let CS4231 driver detect chip */

Definition at line 41 of file wss.h.

#define WSS_HW_DETECT3   0x0001 /* allow mode 3 */

Definition at line 42 of file wss.h.

#define WSS_HW_INTERWAVE   0x1000 /* InterWave chip */

Definition at line 65 of file wss.h.

#define WSS_HW_OPL3SA2   0x1101 /* OPL3-SA2 chip, similar to cs4231 */

Definition at line 66 of file wss.h.

#define WSS_HW_OPTI93X   0x1102 /* Opti 930/931/933 */

Definition at line 67 of file wss.h.

#define WSS_HW_THINKPAD   0x0805 /* Thinkpad 360/750/755 */

Definition at line 63 of file wss.h.

#define WSS_HW_TYPE_MASK   0xff00 /* type mask */

Definition at line 43 of file wss.h.

#define WSS_HWSHARE_DMA1   (1<<1)

Definition at line 71 of file wss.h.

#define WSS_HWSHARE_DMA2   (1<<2)

Definition at line 72 of file wss.h.

#define WSS_HWSHARE_IRQ   (1<<0)

Definition at line 70 of file wss.h.

#define WSS_MODE_NONE   0x0000

Definition at line 33 of file wss.h.

#define WSS_MODE_OPEN   (WSS_MODE_PLAY|WSS_MODE_RECORD|WSS_MODE_TIMER)

Definition at line 37 of file wss.h.

#define WSS_MODE_PLAY   0x0001

Definition at line 34 of file wss.h.

#define WSS_MODE_RECORD   0x0002

Definition at line 35 of file wss.h.

#define WSS_MODE_TIMER   0x0004

Definition at line 36 of file wss.h.

#define WSS_SINGLE (   xname,
  xindex,
  reg,
  shift,
  mask,
  invert 
)
Value:
.name = xname, \
.index = xindex, \
.private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }

Definition at line 177 of file wss.h.

#define WSS_SINGLE_TLV (   xname,
  xindex,
  reg,
  shift,
  mask,
  invert,
  xtlv 
)
Value:
.name = xname, \
.index = xindex, \
.private_value = reg | (shift << 8) | (mask << 16) | (invert << 24), \
.tlv = { .p = (xtlv) } }

Definition at line 203 of file wss.h.

Function Documentation

int snd_cs4236_create ( struct snd_card card,
unsigned long  port,
unsigned long  cport,
int  irq,
int  dma1,
int  dma2,
unsigned short  hardware,
unsigned short  hwshare,
struct snd_wss **  rchip 
)

Definition at line 273 of file cs4236_lib.c.

unsigned char snd_cs4236_ext_in ( struct snd_wss chip,
unsigned char  reg 
)

Definition at line 244 of file wss_lib.c.

void snd_cs4236_ext_out ( struct snd_wss chip,
unsigned char  reg,
unsigned char  val 
)

Definition at line 230 of file wss_lib.c.

int snd_cs4236_mixer ( struct snd_wss chip)

Definition at line 1035 of file cs4236_lib.c.

int snd_cs4236_pcm ( struct snd_wss chip,
int  device,
struct snd_pcm **  rpcm 
)

Definition at line 379 of file cs4236_lib.c.

const char* snd_wss_chip_id ( struct snd_wss chip)

Definition at line 1719 of file wss_lib.c.

int snd_wss_create ( struct snd_card card,
unsigned long  port,
unsigned long  cport,
int  irq,
int  dma1,
int  dma2,
unsigned short  hardware,
unsigned short  hwshare,
struct snd_wss **  rchip 
)

Definition at line 1800 of file wss_lib.c.

int snd_wss_get_double ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

Definition at line 2137 of file wss_lib.c.

struct snd_pcm_ops* snd_wss_get_pcm_ops ( int  direction)
read

Definition at line 2286 of file wss_lib.c.

int snd_wss_get_single ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

Definition at line 2080 of file wss_lib.c.

unsigned char snd_wss_in ( struct snd_wss chip,
unsigned char  reg 
)

Definition at line 216 of file wss_lib.c.

int snd_wss_info_double ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

Definition at line 2124 of file wss_lib.c.

int snd_wss_info_single ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_info uinfo 
)

Definition at line 2067 of file wss_lib.c.

irqreturn_t snd_wss_interrupt ( int  irq,
void dev_id 
)

Definition at line 1103 of file wss_lib.c.

void snd_wss_mce_down ( struct snd_wss chip)

Definition at line 399 of file wss_lib.c.

void snd_wss_mce_up ( struct snd_wss chip)

Definition at line 374 of file wss_lib.c.

int snd_wss_mixer ( struct snd_wss chip)

Definition at line 2254 of file wss_lib.c.

void snd_wss_out ( struct snd_wss chip,
unsigned char  reg,
unsigned char  val 
)

Definition at line 199 of file wss_lib.c.

void snd_wss_overrange ( struct snd_wss chip)

Definition at line 1090 of file wss_lib.c.

int snd_wss_pcm ( struct snd_wss chip,
int  device,
struct snd_pcm **  rpcm 
)

Definition at line 1926 of file wss_lib.c.

int snd_wss_put_double ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

Definition at line 2161 of file wss_lib.c.

int snd_wss_put_single ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

Definition at line 2099 of file wss_lib.c.

int snd_wss_timer ( struct snd_wss chip,
int  device,
struct snd_timer **  rtimer 
)

Definition at line 1964 of file wss_lib.c.