Commit ab0c7d72 authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela

[ALSA] Remove xxx_t typedefs: PCI ICE1724

Modules: ICE1724 driver,ICE1712 driver

Remove xxx_t typedefs from the PCI ICE1724 driver.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 6ca308d4
...@@ -33,14 +33,14 @@ ...@@ -33,14 +33,14 @@
#include "envy24ht.h" #include "envy24ht.h"
#include "amp.h" #include "amp.h"
static void wm_put(ice1712_t *ice, int reg, unsigned short val) static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val)
{ {
unsigned short cval; unsigned short cval;
cval = (reg << 9) | val; cval = (reg << 9) | val;
snd_vt1724_write_i2c(ice, WM_DEV, cval >> 8, cval & 0xff); snd_vt1724_write_i2c(ice, WM_DEV, cval >> 8, cval & 0xff);
} }
static int __devinit snd_vt1724_amp_init(ice1712_t *ice) static int __devinit snd_vt1724_amp_init(struct snd_ice1712 *ice)
{ {
static unsigned short wm_inits[] = { static unsigned short wm_inits[] = {
WM_ATTEN_L, 0x0000, /* 0 db */ WM_ATTEN_L, 0x0000, /* 0 db */
...@@ -66,7 +66,7 @@ static int __devinit snd_vt1724_amp_init(ice1712_t *ice) ...@@ -66,7 +66,7 @@ static int __devinit snd_vt1724_amp_init(ice1712_t *ice)
return 0; return 0;
} }
static int __devinit snd_vt1724_amp_add_controls(ice1712_t *ice) static int __devinit snd_vt1724_amp_add_controls(struct snd_ice1712 *ice)
{ {
/* we use pins 39 and 41 of the VT1616 for left and right read outputs */ /* we use pins 39 and 41 of the VT1616 for left and right read outputs */
snd_ac97_write_cache(ice->ac97, 0x5a, snd_ac97_read(ice->ac97, 0x5a) & ~0x8000); snd_ac97_write_cache(ice->ac97, 0x5a, snd_ac97_read(ice->ac97, 0x5a) & ~0x8000);
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* *
* NOTES: * NOTES:
* *
* - we reuse the akm4xxx_t record for storing the wm8770 codec data. * - we reuse the struct snd_akm4xxx record for storing the wm8770 codec data.
* both wm and akm codecs are pretty similar, so we can integrate * both wm and akm codecs are pretty similar, so we can integrate
* both controls in the future, once if wm codecs are reused in * both controls in the future, once if wm codecs are reused in
* many boards. * many boards.
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
#define CS8415_C_BUFFER 0x20 #define CS8415_C_BUFFER 0x20
#define CS8415_ID 0x7F #define CS8415_ID 0x7F
static void aureon_ac97_write(ice1712_t *ice, unsigned short reg, unsigned short val) { static void aureon_ac97_write(struct snd_ice1712 *ice, unsigned short reg, unsigned short val) {
unsigned int tmp; unsigned int tmp;
/* Send address to XILINX chip */ /* Send address to XILINX chip */
...@@ -136,7 +136,7 @@ static void aureon_ac97_write(ice1712_t *ice, unsigned short reg, unsigned short ...@@ -136,7 +136,7 @@ static void aureon_ac97_write(ice1712_t *ice, unsigned short reg, unsigned short
ice->spec.aureon.stac9744[(reg & 0x7F) >> 1] = val; ice->spec.aureon.stac9744[(reg & 0x7F) >> 1] = val;
} }
static unsigned short aureon_ac97_read(ice1712_t *ice, unsigned short reg) static unsigned short aureon_ac97_read(struct snd_ice1712 *ice, unsigned short reg)
{ {
return ice->spec.aureon.stac9744[(reg & 0x7F) >> 1]; return ice->spec.aureon.stac9744[(reg & 0x7F) >> 1];
} }
...@@ -144,7 +144,7 @@ static unsigned short aureon_ac97_read(ice1712_t *ice, unsigned short reg) ...@@ -144,7 +144,7 @@ static unsigned short aureon_ac97_read(ice1712_t *ice, unsigned short reg)
/* /*
* Initialize STAC9744 chip * Initialize STAC9744 chip
*/ */
static int aureon_ac97_init (ice1712_t *ice) { static int aureon_ac97_init (struct snd_ice1712 *ice) {
int i; int i;
static unsigned short ac97_defaults[] = { static unsigned short ac97_defaults[] = {
0x00, 0x9640, 0x00, 0x9640,
...@@ -196,7 +196,7 @@ static int aureon_ac97_init (ice1712_t *ice) { ...@@ -196,7 +196,7 @@ static int aureon_ac97_init (ice1712_t *ice) {
/* /*
* AC'97 volume controls * AC'97 volume controls
*/ */
static int aureon_ac97_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int aureon_ac97_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = kcontrol->private_value & AUREON_AC97_STEREO ? 2 : 1; uinfo->count = kcontrol->private_value & AUREON_AC97_STEREO ? 2 : 1;
...@@ -205,9 +205,9 @@ static int aureon_ac97_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *u ...@@ -205,9 +205,9 @@ static int aureon_ac97_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *u
return 0; return 0;
} }
static int aureon_ac97_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_ac97_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short vol; unsigned short vol;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -221,9 +221,9 @@ static int aureon_ac97_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u ...@@ -221,9 +221,9 @@ static int aureon_ac97_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u
return 0; return 0;
} }
static int aureon_ac97_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_ac97_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short ovol, nvol; unsigned short ovol, nvol;
int change; int change;
...@@ -248,9 +248,9 @@ static int aureon_ac97_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u ...@@ -248,9 +248,9 @@ static int aureon_ac97_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u
*/ */
#define aureon_ac97_mute_info aureon_mono_bool_info #define aureon_ac97_mute_info aureon_mono_bool_info
static int aureon_ac97_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_ac97_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -260,9 +260,9 @@ static int aureon_ac97_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ...@@ -260,9 +260,9 @@ static int aureon_ac97_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *
return 0; return 0;
} }
static int aureon_ac97_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int aureon_ac97_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short ovol, nvol; unsigned short ovol, nvol;
int change; int change;
...@@ -284,9 +284,9 @@ static int aureon_ac97_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t ...@@ -284,9 +284,9 @@ static int aureon_ac97_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
*/ */
#define aureon_ac97_micboost_info aureon_mono_bool_info #define aureon_ac97_micboost_info aureon_mono_bool_info
static int aureon_ac97_micboost_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_ac97_micboost_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -296,9 +296,9 @@ static int aureon_ac97_micboost_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value ...@@ -296,9 +296,9 @@ static int aureon_ac97_micboost_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value
return 0; return 0;
} }
static int aureon_ac97_micboost_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int aureon_ac97_micboost_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short ovol, nvol; unsigned short ovol, nvol;
int change; int change;
...@@ -318,7 +318,7 @@ static int aureon_ac97_micboost_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu ...@@ -318,7 +318,7 @@ static int aureon_ac97_micboost_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu
/* /*
* write data in the SPI mode * write data in the SPI mode
*/ */
static void aureon_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data, int bits) static void aureon_spi_write(struct snd_ice1712 *ice, unsigned int cs, unsigned int data, int bits)
{ {
unsigned int tmp; unsigned int tmp;
int i; int i;
...@@ -359,7 +359,7 @@ static void aureon_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data, ...@@ -359,7 +359,7 @@ static void aureon_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data,
/* /*
* Read data in SPI mode * Read data in SPI mode
*/ */
static void aureon_spi_read(ice1712_t *ice, unsigned int cs, unsigned int data, int bits, unsigned char *buffer, int size) { static void aureon_spi_read(struct snd_ice1712 *ice, unsigned int cs, unsigned int data, int bits, unsigned char *buffer, int size) {
int i, j; int i, j;
unsigned int tmp; unsigned int tmp;
...@@ -409,26 +409,26 @@ static void aureon_spi_read(ice1712_t *ice, unsigned int cs, unsigned int data, ...@@ -409,26 +409,26 @@ static void aureon_spi_read(ice1712_t *ice, unsigned int cs, unsigned int data,
snd_ice1712_gpio_write(ice, tmp); snd_ice1712_gpio_write(ice, tmp);
} }
static unsigned char aureon_cs8415_get(ice1712_t *ice, int reg) { static unsigned char aureon_cs8415_get(struct snd_ice1712 *ice, int reg) {
unsigned char val; unsigned char val;
aureon_spi_write(ice, AUREON_CS8415_CS, 0x2000 | reg, 16); aureon_spi_write(ice, AUREON_CS8415_CS, 0x2000 | reg, 16);
aureon_spi_read(ice, AUREON_CS8415_CS, 0x21, 8, &val, 1); aureon_spi_read(ice, AUREON_CS8415_CS, 0x21, 8, &val, 1);
return val; return val;
} }
static void aureon_cs8415_read(ice1712_t *ice, int reg, unsigned char *buffer, int size) { static void aureon_cs8415_read(struct snd_ice1712 *ice, int reg, unsigned char *buffer, int size) {
aureon_spi_write(ice, AUREON_CS8415_CS, 0x2000 | reg, 16); aureon_spi_write(ice, AUREON_CS8415_CS, 0x2000 | reg, 16);
aureon_spi_read(ice, AUREON_CS8415_CS, 0x21, 8, buffer, size); aureon_spi_read(ice, AUREON_CS8415_CS, 0x21, 8, buffer, size);
} }
static void aureon_cs8415_put(ice1712_t *ice, int reg, unsigned char val) { static void aureon_cs8415_put(struct snd_ice1712 *ice, int reg, unsigned char val) {
aureon_spi_write(ice, AUREON_CS8415_CS, 0x200000 | (reg << 8) | val, 24); aureon_spi_write(ice, AUREON_CS8415_CS, 0x200000 | (reg << 8) | val, 24);
} }
/* /*
* get the current register value of WM codec * get the current register value of WM codec
*/ */
static unsigned short wm_get(ice1712_t *ice, int reg) static unsigned short wm_get(struct snd_ice1712 *ice, int reg)
{ {
reg <<= 1; reg <<= 1;
return ((unsigned short)ice->akm[0].images[reg] << 8) | return ((unsigned short)ice->akm[0].images[reg] << 8) |
...@@ -438,7 +438,7 @@ static unsigned short wm_get(ice1712_t *ice, int reg) ...@@ -438,7 +438,7 @@ static unsigned short wm_get(ice1712_t *ice, int reg)
/* /*
* set the register value of WM codec * set the register value of WM codec
*/ */
static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) static void wm_put_nocache(struct snd_ice1712 *ice, int reg, unsigned short val)
{ {
aureon_spi_write(ice, AUREON_WM_CS, (reg << 9) | (val & 0x1ff), 16); aureon_spi_write(ice, AUREON_WM_CS, (reg << 9) | (val & 0x1ff), 16);
} }
...@@ -446,7 +446,7 @@ static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) ...@@ -446,7 +446,7 @@ static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val)
/* /*
* set the register value of WM codec and remember it * set the register value of WM codec and remember it
*/ */
static void wm_put(ice1712_t *ice, int reg, unsigned short val) static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val)
{ {
wm_put_nocache(ice, reg, val); wm_put_nocache(ice, reg, val);
reg <<= 1; reg <<= 1;
...@@ -456,7 +456,7 @@ static void wm_put(ice1712_t *ice, int reg, unsigned short val) ...@@ -456,7 +456,7 @@ static void wm_put(ice1712_t *ice, int reg, unsigned short val)
/* /*
*/ */
static int aureon_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) static int aureon_mono_bool_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -470,9 +470,9 @@ static int aureon_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) ...@@ -470,9 +470,9 @@ static int aureon_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo)
*/ */
#define aureon_ac97_mmute_info aureon_mono_bool_info #define aureon_ac97_mmute_info aureon_mono_bool_info
static int aureon_ac97_mmute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_ac97_mmute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -482,8 +482,8 @@ static int aureon_ac97_mmute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t ...@@ -482,8 +482,8 @@ static int aureon_ac97_mmute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
return 0; return 0;
} }
static int aureon_ac97_mmute_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { static int aureon_ac97_mmute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short ovol, nvol; unsigned short ovol, nvol;
int change; int change;
...@@ -521,7 +521,7 @@ static unsigned char wm_vol[256] = { ...@@ -521,7 +521,7 @@ static unsigned char wm_vol[256] = {
#define WM_VOL_MAX (sizeof(wm_vol) - 1) #define WM_VOL_MAX (sizeof(wm_vol) - 1)
#define WM_VOL_MUTE 0x8000 #define WM_VOL_MUTE 0x8000
static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, unsigned short master) static void wm_set_vol(struct snd_ice1712 *ice, unsigned int index, unsigned short vol, unsigned short master)
{ {
unsigned char nvol; unsigned char nvol;
...@@ -539,9 +539,9 @@ static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, u ...@@ -539,9 +539,9 @@ static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, u
*/ */
#define wm_pcm_mute_info aureon_mono_bool_info #define wm_pcm_mute_info aureon_mono_bool_info
static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_pcm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
ucontrol->value.integer.value[0] = (wm_get(ice, WM_MUTE) & 0x10) ? 0 : 1; ucontrol->value.integer.value[0] = (wm_get(ice, WM_MUTE) & 0x10) ? 0 : 1;
...@@ -549,9 +549,9 @@ static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont ...@@ -549,9 +549,9 @@ static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont
return 0; return 0;
} }
static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int wm_pcm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short nval, oval; unsigned short nval, oval;
int change; int change;
...@@ -568,7 +568,7 @@ static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco ...@@ -568,7 +568,7 @@ static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco
/* /*
* Master volume attenuation mixer control * Master volume attenuation mixer control
*/ */
static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_master_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 2; uinfo->count = 2;
...@@ -577,18 +577,18 @@ static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uin ...@@ -577,18 +577,18 @@ static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uin
return 0; return 0;
} }
static int wm_master_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_master_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i; int i;
for (i=0; i<2; i++) for (i=0; i<2; i++)
ucontrol->value.integer.value[i] = ice->spec.aureon.master[i] & ~WM_VOL_MUTE; ucontrol->value.integer.value[i] = ice->spec.aureon.master[i] & ~WM_VOL_MUTE;
return 0; return 0;
} }
static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_master_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int ch, change = 0; int ch, change = 0;
snd_ice1712_save_gpio_status(ice); snd_ice1712_save_gpio_status(ice);
...@@ -611,7 +611,7 @@ static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco ...@@ -611,7 +611,7 @@ static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco
/* /*
* DAC volume attenuation mixer control * DAC volume attenuation mixer control
*/ */
static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
int voices = kcontrol->private_value >> 8; int voices = kcontrol->private_value >> 8;
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
...@@ -621,9 +621,9 @@ static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -621,9 +621,9 @@ static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i, ofs, voices; int i, ofs, voices;
voices = kcontrol->private_value >> 8; voices = kcontrol->private_value >> 8;
...@@ -633,9 +633,9 @@ static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) ...@@ -633,9 +633,9 @@ static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
return 0; return 0;
} }
static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i, idx, ofs, voices; int i, idx, ofs, voices;
int change = 0; int change = 0;
...@@ -659,7 +659,7 @@ static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) ...@@ -659,7 +659,7 @@ static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
/* /*
* WM8770 mute control * WM8770 mute control
*/ */
static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { static int wm_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = kcontrol->private_value >> 8; uinfo->count = kcontrol->private_value >> 8;
uinfo->value.integer.min = 0; uinfo->value.integer.min = 0;
...@@ -667,9 +667,9 @@ static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { ...@@ -667,9 +667,9 @@ static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) {
return 0; return 0;
} }
static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int voices, ofs, i; int voices, ofs, i;
voices = kcontrol->private_value >> 8; voices = kcontrol->private_value >> 8;
...@@ -680,9 +680,9 @@ static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) ...@@ -680,9 +680,9 @@ static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
return 0; return 0;
} }
static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int wm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int change = 0, voices, ofs, i; int change = 0, voices, ofs, i;
voices = kcontrol->private_value >> 8; voices = kcontrol->private_value >> 8;
...@@ -708,7 +708,7 @@ static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontro ...@@ -708,7 +708,7 @@ static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontro
/* /*
* WM8770 master mute control * WM8770 master mute control
*/ */
static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { static int wm_master_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 2; uinfo->count = 2;
uinfo->value.integer.min = 0; uinfo->value.integer.min = 0;
...@@ -716,18 +716,18 @@ static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *ui ...@@ -716,18 +716,18 @@ static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *ui
return 0; return 0;
} }
static int wm_master_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_master_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.integer.value[0] = (ice->spec.aureon.master[0] & WM_VOL_MUTE) ? 0 : 1; ucontrol->value.integer.value[0] = (ice->spec.aureon.master[0] & WM_VOL_MUTE) ? 0 : 1;
ucontrol->value.integer.value[1] = (ice->spec.aureon.master[1] & WM_VOL_MUTE) ? 0 : 1; ucontrol->value.integer.value[1] = (ice->spec.aureon.master[1] & WM_VOL_MUTE) ? 0 : 1;
return 0; return 0;
} }
static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int wm_master_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int change = 0, i; int change = 0, i;
snd_ice1712_save_gpio_status(ice); snd_ice1712_save_gpio_status(ice);
...@@ -754,7 +754,7 @@ static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ...@@ -754,7 +754,7 @@ static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *
#define PCM_0dB 0xff #define PCM_0dB 0xff
#define PCM_RES 128 /* -64dB */ #define PCM_RES 128 /* -64dB */
#define PCM_MIN (PCM_0dB - PCM_RES) #define PCM_MIN (PCM_0dB - PCM_RES)
static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_pcm_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 1; uinfo->count = 1;
...@@ -763,9 +763,9 @@ static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -763,9 +763,9 @@ static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_pcm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short val; unsigned short val;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -776,9 +776,9 @@ static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -776,9 +776,9 @@ static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
return 0; return 0;
} }
static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short ovol, nvol; unsigned short ovol, nvol;
int change = 0; int change = 0;
...@@ -798,7 +798,7 @@ static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -798,7 +798,7 @@ static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
/* /*
* ADC mute control * ADC mute control
*/ */
static int wm_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_adc_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 2; uinfo->count = 2;
...@@ -807,9 +807,9 @@ static int wm_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo ...@@ -807,9 +807,9 @@ static int wm_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo
return 0; return 0;
} }
static int wm_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_adc_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short val; unsigned short val;
int i; int i;
...@@ -822,9 +822,9 @@ static int wm_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont ...@@ -822,9 +822,9 @@ static int wm_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont
return 0; return 0;
} }
static int wm_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int wm_adc_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short new, old; unsigned short new, old;
int i, change = 0; int i, change = 0;
...@@ -845,7 +845,7 @@ static int wm_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco ...@@ -845,7 +845,7 @@ static int wm_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco
/* /*
* ADC gain mixer control * ADC gain mixer control
*/ */
static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_adc_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 2; uinfo->count = 2;
...@@ -854,9 +854,9 @@ static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -854,9 +854,9 @@ static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_adc_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i, idx; int i, idx;
unsigned short vol; unsigned short vol;
...@@ -870,9 +870,9 @@ static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -870,9 +870,9 @@ static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
return 0; return 0;
} }
static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_adc_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i, idx; int i, idx;
unsigned short ovol, nvol; unsigned short ovol, nvol;
int change = 0; int change = 0;
...@@ -894,7 +894,7 @@ static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -894,7 +894,7 @@ static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
/* /*
* ADC input mux mixer control * ADC input mux mixer control
*/ */
static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_adc_mux_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
static char *texts[] = { static char *texts[] = {
"CD", //AIN1 "CD", //AIN1
...@@ -913,7 +913,7 @@ static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -913,7 +913,7 @@ static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
"Aux3", //AIN7 "Aux3", //AIN7
"AC97" //AIN8 "AC97" //AIN8
}; };
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 2; uinfo->count = 2;
...@@ -932,9 +932,9 @@ static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -932,9 +932,9 @@ static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_adc_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short val; unsigned short val;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -945,9 +945,9 @@ static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont ...@@ -945,9 +945,9 @@ static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont
return 0; return 0;
} }
static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_adc_mux_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short oval, nval; unsigned short oval, nval;
int change; int change;
...@@ -966,9 +966,9 @@ static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont ...@@ -966,9 +966,9 @@ static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont
/* /*
* CS8415 Input mux * CS8415 Input mux
*/ */
static int aureon_cs8415_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int aureon_cs8415_mux_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
static char *aureon_texts[] = { static char *aureon_texts[] = {
"CD", //RXP0 "CD", //RXP0
"Optical" //RXP1 "Optical" //RXP1
...@@ -989,9 +989,9 @@ static int aureon_cs8415_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t ...@@ -989,9 +989,9 @@ static int aureon_cs8415_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t
return 0; return 0;
} }
static int aureon_cs8415_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_cs8415_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
//snd_ice1712_save_gpio_status(ice); //snd_ice1712_save_gpio_status(ice);
//val = aureon_cs8415_get(ice, CS8415_CTRL2); //val = aureon_cs8415_get(ice, CS8415_CTRL2);
...@@ -1000,9 +1000,9 @@ static int aureon_cs8415_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t ...@@ -1000,9 +1000,9 @@ static int aureon_cs8415_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
return 0; return 0;
} }
static int aureon_cs8415_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_cs8415_mux_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short oval, nval; unsigned short oval, nval;
int change; int change;
...@@ -1018,7 +1018,7 @@ static int aureon_cs8415_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t ...@@ -1018,7 +1018,7 @@ static int aureon_cs8415_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
return change; return change;
} }
static int aureon_cs8415_rate_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int aureon_cs8415_rate_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 1; uinfo->count = 1;
...@@ -1027,9 +1027,9 @@ static int aureon_cs8415_rate_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ ...@@ -1027,9 +1027,9 @@ static int aureon_cs8415_rate_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_
return 0; return 0;
} }
static int aureon_cs8415_rate_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_cs8415_rate_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned char ratio; unsigned char ratio;
ratio = aureon_cs8415_get(ice, CS8415_RATIO); ratio = aureon_cs8415_get(ice, CS8415_RATIO);
ucontrol->value.integer.value[0] = (int)((unsigned int)ratio * 750); ucontrol->value.integer.value[0] = (int)((unsigned int)ratio * 750);
...@@ -1039,25 +1039,25 @@ static int aureon_cs8415_rate_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ ...@@ -1039,25 +1039,25 @@ static int aureon_cs8415_rate_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_
/* /*
* CS8415A Mute * CS8415A Mute
*/ */
static int aureon_cs8415_mute_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int aureon_cs8415_mute_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
return 0; return 0;
} }
static int aureon_cs8415_mute_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_cs8415_mute_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
snd_ice1712_save_gpio_status(ice); snd_ice1712_save_gpio_status(ice);
ucontrol->value.integer.value[0] = (aureon_cs8415_get(ice, CS8415_CTRL1) & 0x20) ? 0 : 1; ucontrol->value.integer.value[0] = (aureon_cs8415_get(ice, CS8415_CTRL1) & 0x20) ? 0 : 1;
snd_ice1712_restore_gpio_status(ice); snd_ice1712_restore_gpio_status(ice);
return 0; return 0;
} }
static int aureon_cs8415_mute_put (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_cs8415_mute_put (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned char oval, nval; unsigned char oval, nval;
int change; int change;
snd_ice1712_save_gpio_status(ice); snd_ice1712_save_gpio_status(ice);
...@@ -1075,14 +1075,14 @@ static int aureon_cs8415_mute_put (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ ...@@ -1075,14 +1075,14 @@ static int aureon_cs8415_mute_put (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_
/* /*
* CS8415A Q-Sub info * CS8415A Q-Sub info
*/ */
static int aureon_cs8415_qsub_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { static int aureon_cs8415_qsub_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES; uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
uinfo->count = 10; uinfo->count = 10;
return 0; return 0;
} }
static int aureon_cs8415_qsub_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { static int aureon_cs8415_qsub_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
snd_ice1712_save_gpio_status(ice); snd_ice1712_save_gpio_status(ice);
aureon_cs8415_read(ice, CS8415_QSUB, ucontrol->value.bytes.data, 10); aureon_cs8415_read(ice, CS8415_QSUB, ucontrol->value.bytes.data, 10);
...@@ -1091,19 +1091,19 @@ static int aureon_cs8415_qsub_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ ...@@ -1091,19 +1091,19 @@ static int aureon_cs8415_qsub_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_
return 0; return 0;
} }
static int aureon_cs8415_spdif_info (snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { static int aureon_cs8415_spdif_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) {
uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
uinfo->count = 1; uinfo->count = 1;
return 0; return 0;
} }
static int aureon_cs8415_mask_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { static int aureon_cs8415_mask_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) {
memset(ucontrol->value.iec958.status, 0xFF, 24); memset(ucontrol->value.iec958.status, 0xFF, 24);
return 0; return 0;
} }
static int aureon_cs8415_spdif_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) { static int aureon_cs8415_spdif_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
snd_ice1712_save_gpio_status(ice); snd_ice1712_save_gpio_status(ice);
aureon_cs8415_read(ice, CS8415_C_BUFFER, ucontrol->value.iec958.status, 24); aureon_cs8415_read(ice, CS8415_C_BUFFER, ucontrol->value.iec958.status, 24);
...@@ -1114,7 +1114,7 @@ static int aureon_cs8415_spdif_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value ...@@ -1114,7 +1114,7 @@ static int aureon_cs8415_spdif_get (snd_kcontrol_t *kcontrol, snd_ctl_elem_value
/* /*
* Headphone Amplifier * Headphone Amplifier
*/ */
static int aureon_set_headphone_amp(ice1712_t *ice, int enable) static int aureon_set_headphone_amp(struct snd_ice1712 *ice, int enable)
{ {
unsigned int tmp, tmp2; unsigned int tmp, tmp2;
...@@ -1130,7 +1130,7 @@ static int aureon_set_headphone_amp(ice1712_t *ice, int enable) ...@@ -1130,7 +1130,7 @@ static int aureon_set_headphone_amp(ice1712_t *ice, int enable)
return 0; return 0;
} }
static int aureon_get_headphone_amp(ice1712_t *ice) static int aureon_get_headphone_amp(struct snd_ice1712 *ice)
{ {
unsigned int tmp = snd_ice1712_gpio_read(ice); unsigned int tmp = snd_ice1712_gpio_read(ice);
...@@ -1139,18 +1139,18 @@ static int aureon_get_headphone_amp(ice1712_t *ice) ...@@ -1139,18 +1139,18 @@ static int aureon_get_headphone_amp(ice1712_t *ice)
#define aureon_hpamp_info aureon_mono_bool_info #define aureon_hpamp_info aureon_mono_bool_info
static int aureon_hpamp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_hpamp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.integer.value[0] = aureon_get_headphone_amp(ice); ucontrol->value.integer.value[0] = aureon_get_headphone_amp(ice);
return 0; return 0;
} }
static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_hpamp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
return aureon_set_headphone_amp(ice,ucontrol->value.integer.value[0]); return aureon_set_headphone_amp(ice,ucontrol->value.integer.value[0]);
} }
...@@ -1161,16 +1161,16 @@ static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon ...@@ -1161,16 +1161,16 @@ static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon
#define aureon_deemp_info aureon_mono_bool_info #define aureon_deemp_info aureon_mono_bool_info
static int aureon_deemp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL2) & 0xf) == 0xf; ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL2) & 0xf) == 0xf;
return 0; return 0;
} }
static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_deemp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int temp, temp2; int temp, temp2;
temp2 = temp = wm_get(ice, WM_DAC_CTRL2); temp2 = temp = wm_get(ice, WM_DAC_CTRL2);
if (ucontrol->value.integer.value[0]) if (ucontrol->value.integer.value[0])
...@@ -1187,7 +1187,7 @@ static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon ...@@ -1187,7 +1187,7 @@ static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon
/* /*
* ADC Oversampling * ADC Oversampling
*/ */
static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) static int aureon_oversampling_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo)
{ {
static char *texts[2] = { "128x", "64x" }; static char *texts[2] = { "128x", "64x" };
...@@ -1202,17 +1202,17 @@ static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinf ...@@ -1202,17 +1202,17 @@ static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinf
return 0; return 0;
} }
static int aureon_oversampling_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_oversampling_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.enumerated.item[0] = (wm_get(ice, WM_MASTER) & 0x8) == 0x8; ucontrol->value.enumerated.item[0] = (wm_get(ice, WM_MASTER) & 0x8) == 0x8;
return 0; return 0;
} }
static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_oversampling_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
int temp, temp2; int temp, temp2;
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
temp2 = temp = wm_get(ice, WM_MASTER); temp2 = temp = wm_get(ice, WM_MASTER);
...@@ -1232,7 +1232,7 @@ static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ ...@@ -1232,7 +1232,7 @@ static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_
* mixers * mixers
*/ */
static snd_kcontrol_new_t aureon_dac_controls[] __devinitdata = { static struct snd_kcontrol_new aureon_dac_controls[] __devinitdata = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "Master Playback Switch", .name = "Master Playback Switch",
...@@ -1329,7 +1329,7 @@ static snd_kcontrol_new_t aureon_dac_controls[] __devinitdata = { ...@@ -1329,7 +1329,7 @@ static snd_kcontrol_new_t aureon_dac_controls[] __devinitdata = {
} }
}; };
static snd_kcontrol_new_t wm_controls[] __devinitdata = { static struct snd_kcontrol_new wm_controls[] __devinitdata = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "PCM Playback Switch", .name = "PCM Playback Switch",
...@@ -1389,7 +1389,7 @@ static snd_kcontrol_new_t wm_controls[] __devinitdata = { ...@@ -1389,7 +1389,7 @@ static snd_kcontrol_new_t wm_controls[] __devinitdata = {
} }
}; };
static snd_kcontrol_new_t ac97_controls[] __devinitdata = { static struct snd_kcontrol_new ac97_controls[] __devinitdata = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "AC97 Playback Switch", .name = "AC97 Playback Switch",
...@@ -1479,7 +1479,7 @@ static snd_kcontrol_new_t ac97_controls[] __devinitdata = { ...@@ -1479,7 +1479,7 @@ static snd_kcontrol_new_t ac97_controls[] __devinitdata = {
} }
}; };
static snd_kcontrol_new_t universe_ac97_controls[] __devinitdata = { static struct snd_kcontrol_new universe_ac97_controls[] __devinitdata = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "AC97 Playback Switch", .name = "AC97 Playback Switch",
...@@ -1586,7 +1586,7 @@ static snd_kcontrol_new_t universe_ac97_controls[] __devinitdata = { ...@@ -1586,7 +1586,7 @@ static snd_kcontrol_new_t universe_ac97_controls[] __devinitdata = {
}; };
static snd_kcontrol_new_t cs8415_controls[] __devinitdata = { static struct snd_kcontrol_new cs8415_controls[] __devinitdata = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), .name = SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH),
...@@ -1632,7 +1632,7 @@ static snd_kcontrol_new_t cs8415_controls[] __devinitdata = { ...@@ -1632,7 +1632,7 @@ static snd_kcontrol_new_t cs8415_controls[] __devinitdata = {
}; };
static int __devinit aureon_add_controls(ice1712_t *ice) static int __devinit aureon_add_controls(struct snd_ice1712 *ice)
{ {
unsigned int i, counts; unsigned int i, counts;
int err; int err;
...@@ -1677,7 +1677,7 @@ static int __devinit aureon_add_controls(ice1712_t *ice) ...@@ -1677,7 +1677,7 @@ static int __devinit aureon_add_controls(ice1712_t *ice)
snd_printk(KERN_INFO "Detected unsupported CS8415 rev. (%c)\n", (char)((id & 0x0F) + 'A' - 1)); snd_printk(KERN_INFO "Detected unsupported CS8415 rev. (%c)\n", (char)((id & 0x0F) + 'A' - 1));
else { else {
for (i = 0; i< ARRAY_SIZE(cs8415_controls); i++) { for (i = 0; i< ARRAY_SIZE(cs8415_controls); i++) {
snd_kcontrol_t *kctl; struct snd_kcontrol *kctl;
err = snd_ctl_add(ice->card, (kctl = snd_ctl_new1(&cs8415_controls[i], ice))); err = snd_ctl_add(ice->card, (kctl = snd_ctl_new1(&cs8415_controls[i], ice)));
if (err < 0) if (err < 0)
return err; return err;
...@@ -1695,7 +1695,7 @@ static int __devinit aureon_add_controls(ice1712_t *ice) ...@@ -1695,7 +1695,7 @@ static int __devinit aureon_add_controls(ice1712_t *ice)
/* /*
* initialize the chip * initialize the chip
*/ */
static int __devinit aureon_init(ice1712_t *ice) static int __devinit aureon_init(struct snd_ice1712 *ice)
{ {
static unsigned short wm_inits_aureon[] = { static unsigned short wm_inits_aureon[] = {
/* These come first to reduce init pop noise */ /* These come first to reduce init pop noise */
...@@ -1796,7 +1796,7 @@ static int __devinit aureon_init(ice1712_t *ice) ...@@ -1796,7 +1796,7 @@ static int __devinit aureon_init(ice1712_t *ice)
} }
/* to remeber the register values of CS8415 */ /* to remeber the register values of CS8415 */
ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
if (! ice->akm) if (! ice->akm)
return -ENOMEM; return -ENOMEM;
ice->akm_codecs = 1; ice->akm_codecs = 1;
......
...@@ -209,7 +209,7 @@ enum { ...@@ -209,7 +209,7 @@ enum {
#define VT1724_MT_PDMA1_COUNT 0x76 /* word */ #define VT1724_MT_PDMA1_COUNT 0x76 /* word */
unsigned char snd_vt1724_read_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr); unsigned char snd_vt1724_read_i2c(struct snd_ice1712 *ice, unsigned char dev, unsigned char addr);
void snd_vt1724_write_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr, unsigned char data); void snd_vt1724_write_i2c(struct snd_ice1712 *ice, unsigned char dev, unsigned char addr, unsigned char data);
#endif /* __SOUND_VT1724_H */ #endif /* __SOUND_VT1724_H */
...@@ -102,12 +102,12 @@ static unsigned int PRO_RATE_DEFAULT = 44100; ...@@ -102,12 +102,12 @@ static unsigned int PRO_RATE_DEFAULT = 44100;
*/ */
/* check whether the clock mode is spdif-in */ /* check whether the clock mode is spdif-in */
static inline int is_spdif_master(ice1712_t *ice) static inline int is_spdif_master(struct snd_ice1712 *ice)
{ {
return (inb(ICEMT1724(ice, RATE)) & VT1724_SPDIF_MASTER) ? 1 : 0; return (inb(ICEMT1724(ice, RATE)) & VT1724_SPDIF_MASTER) ? 1 : 0;
} }
static inline int is_pro_rate_locked(ice1712_t *ice) static inline int is_pro_rate_locked(struct snd_ice1712 *ice)
{ {
return is_spdif_master(ice) || PRO_RATE_LOCKED; return is_spdif_master(ice) || PRO_RATE_LOCKED;
} }
...@@ -116,7 +116,7 @@ static inline int is_pro_rate_locked(ice1712_t *ice) ...@@ -116,7 +116,7 @@ static inline int is_pro_rate_locked(ice1712_t *ice)
* ac97 section * ac97 section
*/ */
static unsigned char snd_vt1724_ac97_ready(ice1712_t *ice) static unsigned char snd_vt1724_ac97_ready(struct snd_ice1712 *ice)
{ {
unsigned char old_cmd; unsigned char old_cmd;
int tm; int tm;
...@@ -132,7 +132,7 @@ static unsigned char snd_vt1724_ac97_ready(ice1712_t *ice) ...@@ -132,7 +132,7 @@ static unsigned char snd_vt1724_ac97_ready(ice1712_t *ice)
return old_cmd; return old_cmd;
} }
static int snd_vt1724_ac97_wait_bit(ice1712_t *ice, unsigned char bit) static int snd_vt1724_ac97_wait_bit(struct snd_ice1712 *ice, unsigned char bit)
{ {
int tm; int tm;
for (tm = 0; tm < 0x10000; tm++) for (tm = 0; tm < 0x10000; tm++)
...@@ -142,11 +142,11 @@ static int snd_vt1724_ac97_wait_bit(ice1712_t *ice, unsigned char bit) ...@@ -142,11 +142,11 @@ static int snd_vt1724_ac97_wait_bit(ice1712_t *ice, unsigned char bit)
return -EIO; return -EIO;
} }
static void snd_vt1724_ac97_write(ac97_t *ac97, static void snd_vt1724_ac97_write(struct snd_ac97 *ac97,
unsigned short reg, unsigned short reg,
unsigned short val) unsigned short val)
{ {
ice1712_t *ice = (ice1712_t *)ac97->private_data; struct snd_ice1712 *ice = ac97->private_data;
unsigned char old_cmd; unsigned char old_cmd;
old_cmd = snd_vt1724_ac97_ready(ice); old_cmd = snd_vt1724_ac97_ready(ice);
...@@ -158,9 +158,9 @@ static void snd_vt1724_ac97_write(ac97_t *ac97, ...@@ -158,9 +158,9 @@ static void snd_vt1724_ac97_write(ac97_t *ac97,
snd_vt1724_ac97_wait_bit(ice, VT1724_AC97_WRITE); snd_vt1724_ac97_wait_bit(ice, VT1724_AC97_WRITE);
} }
static unsigned short snd_vt1724_ac97_read(ac97_t *ac97, unsigned short reg) static unsigned short snd_vt1724_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
{ {
ice1712_t *ice = (ice1712_t *)ac97->private_data; struct snd_ice1712 *ice = ac97->private_data;
unsigned char old_cmd; unsigned char old_cmd;
old_cmd = snd_vt1724_ac97_ready(ice); old_cmd = snd_vt1724_ac97_ready(ice);
...@@ -179,14 +179,14 @@ static unsigned short snd_vt1724_ac97_read(ac97_t *ac97, unsigned short reg) ...@@ -179,14 +179,14 @@ static unsigned short snd_vt1724_ac97_read(ac97_t *ac97, unsigned short reg)
*/ */
/* set gpio direction 0 = read, 1 = write */ /* set gpio direction 0 = read, 1 = write */
static void snd_vt1724_set_gpio_dir(ice1712_t *ice, unsigned int data) static void snd_vt1724_set_gpio_dir(struct snd_ice1712 *ice, unsigned int data)
{ {
outl(data, ICEREG1724(ice, GPIO_DIRECTION)); outl(data, ICEREG1724(ice, GPIO_DIRECTION));
inw(ICEREG1724(ice, GPIO_DIRECTION)); /* dummy read for pci-posting */ inw(ICEREG1724(ice, GPIO_DIRECTION)); /* dummy read for pci-posting */
} }
/* set the gpio mask (0 = writable) */ /* set the gpio mask (0 = writable) */
static void snd_vt1724_set_gpio_mask(ice1712_t *ice, unsigned int data) static void snd_vt1724_set_gpio_mask(struct snd_ice1712 *ice, unsigned int data)
{ {
outw(data, ICEREG1724(ice, GPIO_WRITE_MASK)); outw(data, ICEREG1724(ice, GPIO_WRITE_MASK));
if (! ice->vt1720) /* VT1720 supports only 16 GPIO bits */ if (! ice->vt1720) /* VT1720 supports only 16 GPIO bits */
...@@ -194,7 +194,7 @@ static void snd_vt1724_set_gpio_mask(ice1712_t *ice, unsigned int data) ...@@ -194,7 +194,7 @@ static void snd_vt1724_set_gpio_mask(ice1712_t *ice, unsigned int data)
inw(ICEREG1724(ice, GPIO_WRITE_MASK)); /* dummy read for pci-posting */ inw(ICEREG1724(ice, GPIO_WRITE_MASK)); /* dummy read for pci-posting */
} }
static void snd_vt1724_set_gpio_data(ice1712_t *ice, unsigned int data) static void snd_vt1724_set_gpio_data(struct snd_ice1712 *ice, unsigned int data)
{ {
outw(data, ICEREG1724(ice, GPIO_DATA)); outw(data, ICEREG1724(ice, GPIO_DATA));
if (! ice->vt1720) if (! ice->vt1720)
...@@ -202,7 +202,7 @@ static void snd_vt1724_set_gpio_data(ice1712_t *ice, unsigned int data) ...@@ -202,7 +202,7 @@ static void snd_vt1724_set_gpio_data(ice1712_t *ice, unsigned int data)
inw(ICEREG1724(ice, GPIO_DATA)); /* dummy read for pci-posting */ inw(ICEREG1724(ice, GPIO_DATA)); /* dummy read for pci-posting */
} }
static unsigned int snd_vt1724_get_gpio_data(ice1712_t *ice) static unsigned int snd_vt1724_get_gpio_data(struct snd_ice1712 *ice)
{ {
unsigned int data; unsigned int data;
if (! ice->vt1720) if (! ice->vt1720)
...@@ -219,7 +219,7 @@ static unsigned int snd_vt1724_get_gpio_data(ice1712_t *ice) ...@@ -219,7 +219,7 @@ static unsigned int snd_vt1724_get_gpio_data(ice1712_t *ice)
static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{ {
ice1712_t *ice = dev_id; struct snd_ice1712 *ice = dev_id;
unsigned char status; unsigned char status;
int handled = 0; int handled = 0;
...@@ -229,8 +229,10 @@ static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *r ...@@ -229,8 +229,10 @@ static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *r
break; break;
handled = 1; handled = 1;
/* these should probably be separated at some point, /* these should probably be separated at some point,
but as we don't currently have MPU support on the board I will leave it */ * but as we don't currently have MPU support on the board
* I will leave it
*/
if ((status & VT1724_IRQ_MPU_RX)||(status & VT1724_IRQ_MPU_TX)) { if ((status & VT1724_IRQ_MPU_RX)||(status & VT1724_IRQ_MPU_TX)) {
if (ice->rmidi[0]) if (ice->rmidi[0])
snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data, regs); snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data, regs);
...@@ -303,19 +305,19 @@ static unsigned int rates[] = { ...@@ -303,19 +305,19 @@ static unsigned int rates[] = {
176400, 192000, 176400, 192000,
}; };
static snd_pcm_hw_constraint_list_t hw_constraints_rates_96 = { static struct snd_pcm_hw_constraint_list hw_constraints_rates_96 = {
.count = ARRAY_SIZE(rates) - 2, /* up to 96000 */ .count = ARRAY_SIZE(rates) - 2, /* up to 96000 */
.list = rates, .list = rates,
.mask = 0, .mask = 0,
}; };
static snd_pcm_hw_constraint_list_t hw_constraints_rates_48 = { static struct snd_pcm_hw_constraint_list hw_constraints_rates_48 = {
.count = ARRAY_SIZE(rates) - 5, /* up to 48000 */ .count = ARRAY_SIZE(rates) - 5, /* up to 48000 */
.list = rates, .list = rates,
.mask = 0, .mask = 0,
}; };
static snd_pcm_hw_constraint_list_t hw_constraints_rates_192 = { static struct snd_pcm_hw_constraint_list hw_constraints_rates_192 = {
.count = ARRAY_SIZE(rates), .count = ARRAY_SIZE(rates),
.list = rates, .list = rates,
.mask = 0, .mask = 0,
...@@ -328,13 +330,13 @@ struct vt1724_pcm_reg { ...@@ -328,13 +330,13 @@ struct vt1724_pcm_reg {
unsigned int start; /* start & pause bit */ unsigned int start; /* start & pause bit */
}; };
static int snd_vt1724_pcm_trigger(snd_pcm_substream_t *substream, int cmd) static int snd_vt1724_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
unsigned char what; unsigned char what;
unsigned char old; unsigned char old;
struct list_head *pos; struct list_head *pos;
snd_pcm_substream_t *s; struct snd_pcm_substream *s;
what = 0; what = 0;
snd_pcm_group_for_each(pos, substream) { snd_pcm_group_for_each(pos, substream) {
...@@ -384,7 +386,7 @@ static int snd_vt1724_pcm_trigger(snd_pcm_substream_t *substream, int cmd) ...@@ -384,7 +386,7 @@ static int snd_vt1724_pcm_trigger(snd_pcm_substream_t *substream, int cmd)
#define DMA_PAUSES (VT1724_RDMA0_PAUSE|VT1724_PDMA0_PAUSE|VT1724_RDMA1_PAUSE|\ #define DMA_PAUSES (VT1724_RDMA0_PAUSE|VT1724_PDMA0_PAUSE|VT1724_RDMA1_PAUSE|\
VT1724_PDMA1_PAUSE|VT1724_PDMA2_PAUSE|VT1724_PDMA3_PAUSE|VT1724_PDMA4_PAUSE) VT1724_PDMA1_PAUSE|VT1724_PDMA2_PAUSE|VT1724_PDMA3_PAUSE|VT1724_PDMA4_PAUSE)
static int get_max_rate(ice1712_t *ice) static int get_max_rate(struct snd_ice1712 *ice)
{ {
if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) { if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) {
if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720) if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720)
...@@ -395,7 +397,8 @@ static int get_max_rate(ice1712_t *ice) ...@@ -395,7 +397,8 @@ static int get_max_rate(ice1712_t *ice)
return 48000; return 48000;
} }
static void snd_vt1724_set_pro_rate(ice1712_t *ice, unsigned int rate, int force) static void snd_vt1724_set_pro_rate(struct snd_ice1712 *ice, unsigned int rate,
int force)
{ {
unsigned long flags; unsigned long flags;
unsigned char val, old; unsigned char val, old;
...@@ -477,10 +480,10 @@ static void snd_vt1724_set_pro_rate(ice1712_t *ice, unsigned int rate, int force ...@@ -477,10 +480,10 @@ static void snd_vt1724_set_pro_rate(ice1712_t *ice, unsigned int rate, int force
ice->spdif.ops.setup_rate(ice, rate); ice->spdif.ops.setup_rate(ice, rate);
} }
static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream, static int snd_vt1724_pcm_hw_params(struct snd_pcm_substream *substream,
snd_pcm_hw_params_t * hw_params) struct snd_pcm_hw_params *hw_params)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
int i, chs; int i, chs;
chs = params_channels(hw_params); chs = params_channels(hw_params);
...@@ -490,7 +493,8 @@ static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream, ...@@ -490,7 +493,8 @@ static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream,
/* PDMA0 can be multi-channel up to 8 */ /* PDMA0 can be multi-channel up to 8 */
chs = chs / 2 - 1; chs = chs / 2 - 1;
for (i = 0; i < chs; i++) { for (i = 0; i < chs; i++) {
if (ice->pcm_reserved[i] && ice->pcm_reserved[i] != substream) { if (ice->pcm_reserved[i] &&
ice->pcm_reserved[i] != substream) {
up(&ice->open_mutex); up(&ice->open_mutex);
return -EBUSY; return -EBUSY;
} }
...@@ -504,7 +508,8 @@ static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream, ...@@ -504,7 +508,8 @@ static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream,
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
/* check individual playback stream */ /* check individual playback stream */
if (ice->playback_con_substream_ds[i] == substream) { if (ice->playback_con_substream_ds[i] == substream) {
if (ice->pcm_reserved[i] && ice->pcm_reserved[i] != substream) { if (ice->pcm_reserved[i] &&
ice->pcm_reserved[i] != substream) {
up(&ice->open_mutex); up(&ice->open_mutex);
return -EBUSY; return -EBUSY;
} }
...@@ -518,9 +523,9 @@ static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream, ...@@ -518,9 +523,9 @@ static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream,
return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
} }
static int snd_vt1724_pcm_hw_free(snd_pcm_substream_t * substream) static int snd_vt1724_pcm_hw_free(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
int i; int i;
down(&ice->open_mutex); down(&ice->open_mutex);
...@@ -532,9 +537,9 @@ static int snd_vt1724_pcm_hw_free(snd_pcm_substream_t * substream) ...@@ -532,9 +537,9 @@ static int snd_vt1724_pcm_hw_free(snd_pcm_substream_t * substream)
return snd_pcm_lib_free_pages(substream); return snd_pcm_lib_free_pages(substream);
} }
static int snd_vt1724_playback_pro_prepare(snd_pcm_substream_t * substream) static int snd_vt1724_playback_pro_prepare(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
unsigned char val; unsigned char val;
unsigned int size; unsigned int size;
...@@ -559,9 +564,9 @@ static int snd_vt1724_playback_pro_prepare(snd_pcm_substream_t * substream) ...@@ -559,9 +564,9 @@ static int snd_vt1724_playback_pro_prepare(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(snd_pcm_substream_t * substream) static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
size_t ptr; size_t ptr;
if (!(inl(ICEMT1724(ice, DMA_CONTROL)) & VT1724_PDMA0_START)) if (!(inl(ICEMT1724(ice, DMA_CONTROL)) & VT1724_PDMA0_START))
...@@ -575,7 +580,8 @@ static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(snd_pcm_substream_t * s ...@@ -575,7 +580,8 @@ static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(snd_pcm_substream_t * s
ptr -= substream->runtime->dma_addr; ptr -= substream->runtime->dma_addr;
ptr = bytes_to_frames(substream->runtime, ptr); ptr = bytes_to_frames(substream->runtime, ptr);
if (ptr >= substream->runtime->buffer_size) { if (ptr >= substream->runtime->buffer_size) {
snd_printd("ice1724: invalid ptr %d (size=%d)\n", (int)ptr, (int)substream->runtime->period_size); snd_printd("ice1724: invalid ptr %d (size=%d)\n",
(int)ptr, (int)substream->runtime->period_size);
return 0; return 0;
} }
#else /* read PLAYBACK_SIZE */ #else /* read PLAYBACK_SIZE */
...@@ -587,29 +593,32 @@ static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(snd_pcm_substream_t * s ...@@ -587,29 +593,32 @@ static snd_pcm_uframes_t snd_vt1724_playback_pro_pointer(snd_pcm_substream_t * s
else if (ptr <= substream->runtime->buffer_size) else if (ptr <= substream->runtime->buffer_size)
ptr = substream->runtime->buffer_size - ptr; ptr = substream->runtime->buffer_size - ptr;
else { else {
snd_printd("ice1724: invalid ptr %d (size=%d)\n", (int)ptr, (int)substream->runtime->buffer_size); snd_printd("ice1724: invalid ptr %d (size=%d)\n",
(int)ptr, (int)substream->runtime->buffer_size);
ptr = 0; ptr = 0;
} }
#endif #endif
return ptr; return ptr;
} }
static int snd_vt1724_pcm_prepare(snd_pcm_substream_t *substream) static int snd_vt1724_pcm_prepare(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
struct vt1724_pcm_reg *reg = substream->runtime->private_data; struct vt1724_pcm_reg *reg = substream->runtime->private_data;
spin_lock_irq(&ice->reg_lock); spin_lock_irq(&ice->reg_lock);
outl(substream->runtime->dma_addr, ice->profi_port + reg->addr); outl(substream->runtime->dma_addr, ice->profi_port + reg->addr);
outw((snd_pcm_lib_buffer_bytes(substream) >> 2) - 1, ice->profi_port + reg->size); outw((snd_pcm_lib_buffer_bytes(substream) >> 2) - 1,
outw((snd_pcm_lib_period_bytes(substream) >> 2) - 1, ice->profi_port + reg->count); ice->profi_port + reg->size);
outw((snd_pcm_lib_period_bytes(substream) >> 2) - 1,
ice->profi_port + reg->count);
spin_unlock_irq(&ice->reg_lock); spin_unlock_irq(&ice->reg_lock);
return 0; return 0;
} }
static snd_pcm_uframes_t snd_vt1724_pcm_pointer(snd_pcm_substream_t *substream) static snd_pcm_uframes_t snd_vt1724_pcm_pointer(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
struct vt1724_pcm_reg *reg = substream->runtime->private_data; struct vt1724_pcm_reg *reg = substream->runtime->private_data;
size_t ptr; size_t ptr;
...@@ -628,7 +637,8 @@ static snd_pcm_uframes_t snd_vt1724_pcm_pointer(snd_pcm_substream_t *substream) ...@@ -628,7 +637,8 @@ static snd_pcm_uframes_t snd_vt1724_pcm_pointer(snd_pcm_substream_t *substream)
else if (ptr <= substream->runtime->buffer_size) else if (ptr <= substream->runtime->buffer_size)
ptr = substream->runtime->buffer_size - ptr; ptr = substream->runtime->buffer_size - ptr;
else { else {
snd_printd("ice1724: invalid ptr %d (size=%d)\n", (int)ptr, (int)substream->runtime->buffer_size); snd_printd("ice1724: invalid ptr %d (size=%d)\n",
(int)ptr, (int)substream->runtime->buffer_size);
ptr = 0; ptr = 0;
} }
return ptr; return ptr;
...@@ -649,7 +659,7 @@ static struct vt1724_pcm_reg vt1724_capture_pro_reg = { ...@@ -649,7 +659,7 @@ static struct vt1724_pcm_reg vt1724_capture_pro_reg = {
.start = VT1724_RDMA0_START, .start = VT1724_RDMA0_START,
}; };
static snd_pcm_hardware_t snd_vt1724_playback_pro = static struct snd_pcm_hardware snd_vt1724_playback_pro =
{ {
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_BLOCK_TRANSFER |
...@@ -668,7 +678,7 @@ static snd_pcm_hardware_t snd_vt1724_playback_pro = ...@@ -668,7 +678,7 @@ static snd_pcm_hardware_t snd_vt1724_playback_pro =
.periods_max = 1024, .periods_max = 1024,
}; };
static snd_pcm_hardware_t snd_vt1724_spdif = static struct snd_pcm_hardware snd_vt1724_spdif =
{ {
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_BLOCK_TRANSFER |
...@@ -690,7 +700,7 @@ static snd_pcm_hardware_t snd_vt1724_spdif = ...@@ -690,7 +700,7 @@ static snd_pcm_hardware_t snd_vt1724_spdif =
.periods_max = 1024, .periods_max = 1024,
}; };
static snd_pcm_hardware_t snd_vt1724_2ch_stereo = static struct snd_pcm_hardware snd_vt1724_2ch_stereo =
{ {
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_BLOCK_TRANSFER |
...@@ -712,31 +722,41 @@ static snd_pcm_hardware_t snd_vt1724_2ch_stereo = ...@@ -712,31 +722,41 @@ static snd_pcm_hardware_t snd_vt1724_2ch_stereo =
/* /*
* set rate constraints * set rate constraints
*/ */
static int set_rate_constraints(ice1712_t *ice, snd_pcm_substream_t *substream) static int set_rate_constraints(struct snd_ice1712 *ice,
struct snd_pcm_substream *substream)
{ {
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
if (ice->hw_rates) { if (ice->hw_rates) {
/* hardware specific */ /* hardware specific */
runtime->hw.rate_min = ice->hw_rates->list[0]; runtime->hw.rate_min = ice->hw_rates->list[0];
runtime->hw.rate_max = ice->hw_rates->list[ice->hw_rates->count - 1]; runtime->hw.rate_max = ice->hw_rates->list[ice->hw_rates->count - 1];
runtime->hw.rates = SNDRV_PCM_RATE_KNOT; runtime->hw.rates = SNDRV_PCM_RATE_KNOT;
return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, ice->hw_rates); return snd_pcm_hw_constraint_list(runtime, 0,
SNDRV_PCM_HW_PARAM_RATE,
ice->hw_rates);
} }
if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) { if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) {
/* I2S */ /* I2S */
/* VT1720 doesn't support more than 96kHz */ /* VT1720 doesn't support more than 96kHz */
if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720) if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720)
return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates_192); return snd_pcm_hw_constraint_list(runtime, 0,
SNDRV_PCM_HW_PARAM_RATE,
&hw_constraints_rates_192);
else { else {
runtime->hw.rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_96000; runtime->hw.rates = SNDRV_PCM_RATE_KNOT |
SNDRV_PCM_RATE_8000_96000;
runtime->hw.rate_max = 96000; runtime->hw.rate_max = 96000;
return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates_96); return snd_pcm_hw_constraint_list(runtime, 0,
SNDRV_PCM_HW_PARAM_RATE,
&hw_constraints_rates_96);
} }
} else if (ice->ac97) { } else if (ice->ac97) {
/* ACLINK */ /* ACLINK */
runtime->hw.rate_max = 48000; runtime->hw.rate_max = 48000;
runtime->hw.rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000; runtime->hw.rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000;
return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates_48); return snd_pcm_hw_constraint_list(runtime, 0,
SNDRV_PCM_HW_PARAM_RATE,
&hw_constraints_rates_48);
} }
return 0; return 0;
} }
...@@ -746,10 +766,10 @@ static int set_rate_constraints(ice1712_t *ice, snd_pcm_substream_t *substream) ...@@ -746,10 +766,10 @@ static int set_rate_constraints(ice1712_t *ice, snd_pcm_substream_t *substream)
*/ */
#define VT1724_BUFFER_ALIGN 0x20 #define VT1724_BUFFER_ALIGN 0x20
static int snd_vt1724_playback_pro_open(snd_pcm_substream_t * substream) static int snd_vt1724_playback_pro_open(struct snd_pcm_substream *substream)
{ {
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
int chs; int chs;
runtime->private_data = &vt1724_playback_pro_reg; runtime->private_data = &vt1724_playback_pro_reg;
...@@ -776,10 +796,10 @@ static int snd_vt1724_playback_pro_open(snd_pcm_substream_t * substream) ...@@ -776,10 +796,10 @@ static int snd_vt1724_playback_pro_open(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_vt1724_capture_pro_open(snd_pcm_substream_t * substream) static int snd_vt1724_capture_pro_open(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
runtime->private_data = &vt1724_capture_pro_reg; runtime->private_data = &vt1724_capture_pro_reg;
ice->capture_pro_substream = substream; ice->capture_pro_substream = substream;
...@@ -794,9 +814,9 @@ static int snd_vt1724_capture_pro_open(snd_pcm_substream_t * substream) ...@@ -794,9 +814,9 @@ static int snd_vt1724_capture_pro_open(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_vt1724_playback_pro_close(snd_pcm_substream_t * substream) static int snd_vt1724_playback_pro_close(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
if (PRO_RATE_RESET) if (PRO_RATE_RESET)
snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0);
...@@ -805,9 +825,9 @@ static int snd_vt1724_playback_pro_close(snd_pcm_substream_t * substream) ...@@ -805,9 +825,9 @@ static int snd_vt1724_playback_pro_close(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_vt1724_capture_pro_close(snd_pcm_substream_t * substream) static int snd_vt1724_capture_pro_close(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
if (PRO_RATE_RESET) if (PRO_RATE_RESET)
snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0);
...@@ -815,7 +835,7 @@ static int snd_vt1724_capture_pro_close(snd_pcm_substream_t * substream) ...@@ -815,7 +835,7 @@ static int snd_vt1724_capture_pro_close(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static snd_pcm_ops_t snd_vt1724_playback_pro_ops = { static struct snd_pcm_ops snd_vt1724_playback_pro_ops = {
.open = snd_vt1724_playback_pro_open, .open = snd_vt1724_playback_pro_open,
.close = snd_vt1724_playback_pro_close, .close = snd_vt1724_playback_pro_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -826,7 +846,7 @@ static snd_pcm_ops_t snd_vt1724_playback_pro_ops = { ...@@ -826,7 +846,7 @@ static snd_pcm_ops_t snd_vt1724_playback_pro_ops = {
.pointer = snd_vt1724_playback_pro_pointer, .pointer = snd_vt1724_playback_pro_pointer,
}; };
static snd_pcm_ops_t snd_vt1724_capture_pro_ops = { static struct snd_pcm_ops snd_vt1724_capture_pro_ops = {
.open = snd_vt1724_capture_pro_open, .open = snd_vt1724_capture_pro_open,
.close = snd_vt1724_capture_pro_close, .close = snd_vt1724_capture_pro_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -837,9 +857,9 @@ static snd_pcm_ops_t snd_vt1724_capture_pro_ops = { ...@@ -837,9 +857,9 @@ static snd_pcm_ops_t snd_vt1724_capture_pro_ops = {
.pointer = snd_vt1724_pcm_pointer, .pointer = snd_vt1724_pcm_pointer,
}; };
static int __devinit snd_vt1724_pcm_profi(ice1712_t * ice, int device) static int __devinit snd_vt1724_pcm_profi(struct snd_ice1712 * ice, int device)
{ {
snd_pcm_t *pcm; struct snd_pcm *pcm;
int err; int err;
err = snd_pcm_new(ice->card, "ICE1724", device, 1, 1, &pcm); err = snd_pcm_new(ice->card, "ICE1724", device, 1, 1, &pcm);
...@@ -854,7 +874,8 @@ static int __devinit snd_vt1724_pcm_profi(ice1712_t * ice, int device) ...@@ -854,7 +874,8 @@ static int __devinit snd_vt1724_pcm_profi(ice1712_t * ice, int device)
strcpy(pcm->name, "ICE1724"); strcpy(pcm->name, "ICE1724");
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
snd_dma_pci_data(ice->pci), 256*1024, 256*1024); snd_dma_pci_data(ice->pci),
256*1024, 256*1024);
ice->pcm_pro = pcm; ice->pcm_pro = pcm;
...@@ -881,7 +902,7 @@ static struct vt1724_pcm_reg vt1724_capture_spdif_reg = { ...@@ -881,7 +902,7 @@ static struct vt1724_pcm_reg vt1724_capture_spdif_reg = {
}; };
/* update spdif control bits; call with reg_lock */ /* update spdif control bits; call with reg_lock */
static void update_spdif_bits(ice1712_t *ice, unsigned int val) static void update_spdif_bits(struct snd_ice1712 *ice, unsigned int val)
{ {
unsigned char cbit, disabled; unsigned char cbit, disabled;
...@@ -896,7 +917,7 @@ static void update_spdif_bits(ice1712_t *ice, unsigned int val) ...@@ -896,7 +917,7 @@ static void update_spdif_bits(ice1712_t *ice, unsigned int val)
} }
/* update SPDIF control bits according to the given rate */ /* update SPDIF control bits according to the given rate */
static void update_spdif_rate(ice1712_t *ice, unsigned int rate) static void update_spdif_rate(struct snd_ice1712 *ice, unsigned int rate)
{ {
unsigned int val, nval; unsigned int val, nval;
unsigned long flags; unsigned long flags;
...@@ -918,18 +939,18 @@ static void update_spdif_rate(ice1712_t *ice, unsigned int rate) ...@@ -918,18 +939,18 @@ static void update_spdif_rate(ice1712_t *ice, unsigned int rate)
spin_unlock_irqrestore(&ice->reg_lock, flags); spin_unlock_irqrestore(&ice->reg_lock, flags);
} }
static int snd_vt1724_playback_spdif_prepare(snd_pcm_substream_t * substream) static int snd_vt1724_playback_spdif_prepare(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
if (! ice->force_pdma4) if (! ice->force_pdma4)
update_spdif_rate(ice, substream->runtime->rate); update_spdif_rate(ice, substream->runtime->rate);
return snd_vt1724_pcm_prepare(substream); return snd_vt1724_pcm_prepare(substream);
} }
static int snd_vt1724_playback_spdif_open(snd_pcm_substream_t *substream) static int snd_vt1724_playback_spdif_open(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
runtime->private_data = &vt1724_playback_spdif_reg; runtime->private_data = &vt1724_playback_spdif_reg;
ice->playback_con_substream = substream; ice->playback_con_substream = substream;
...@@ -947,9 +968,9 @@ static int snd_vt1724_playback_spdif_open(snd_pcm_substream_t *substream) ...@@ -947,9 +968,9 @@ static int snd_vt1724_playback_spdif_open(snd_pcm_substream_t *substream)
return 0; return 0;
} }
static int snd_vt1724_playback_spdif_close(snd_pcm_substream_t * substream) static int snd_vt1724_playback_spdif_close(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
if (PRO_RATE_RESET) if (PRO_RATE_RESET)
snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0);
...@@ -958,10 +979,10 @@ static int snd_vt1724_playback_spdif_close(snd_pcm_substream_t * substream) ...@@ -958,10 +979,10 @@ static int snd_vt1724_playback_spdif_close(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_vt1724_capture_spdif_open(snd_pcm_substream_t *substream) static int snd_vt1724_capture_spdif_open(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
runtime->private_data = &vt1724_capture_spdif_reg; runtime->private_data = &vt1724_capture_spdif_reg;
ice->capture_con_substream = substream; ice->capture_con_substream = substream;
...@@ -979,9 +1000,9 @@ static int snd_vt1724_capture_spdif_open(snd_pcm_substream_t *substream) ...@@ -979,9 +1000,9 @@ static int snd_vt1724_capture_spdif_open(snd_pcm_substream_t *substream)
return 0; return 0;
} }
static int snd_vt1724_capture_spdif_close(snd_pcm_substream_t * substream) static int snd_vt1724_capture_spdif_close(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
if (PRO_RATE_RESET) if (PRO_RATE_RESET)
snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0);
...@@ -990,7 +1011,7 @@ static int snd_vt1724_capture_spdif_close(snd_pcm_substream_t * substream) ...@@ -990,7 +1011,7 @@ static int snd_vt1724_capture_spdif_close(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static snd_pcm_ops_t snd_vt1724_playback_spdif_ops = { static struct snd_pcm_ops snd_vt1724_playback_spdif_ops = {
.open = snd_vt1724_playback_spdif_open, .open = snd_vt1724_playback_spdif_open,
.close = snd_vt1724_playback_spdif_close, .close = snd_vt1724_playback_spdif_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -1001,7 +1022,7 @@ static snd_pcm_ops_t snd_vt1724_playback_spdif_ops = { ...@@ -1001,7 +1022,7 @@ static snd_pcm_ops_t snd_vt1724_playback_spdif_ops = {
.pointer = snd_vt1724_pcm_pointer, .pointer = snd_vt1724_pcm_pointer,
}; };
static snd_pcm_ops_t snd_vt1724_capture_spdif_ops = { static struct snd_pcm_ops snd_vt1724_capture_spdif_ops = {
.open = snd_vt1724_capture_spdif_open, .open = snd_vt1724_capture_spdif_open,
.close = snd_vt1724_capture_spdif_close, .close = snd_vt1724_capture_spdif_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -1013,10 +1034,10 @@ static snd_pcm_ops_t snd_vt1724_capture_spdif_ops = { ...@@ -1013,10 +1034,10 @@ static snd_pcm_ops_t snd_vt1724_capture_spdif_ops = {
}; };
static int __devinit snd_vt1724_pcm_spdif(ice1712_t * ice, int device) static int __devinit snd_vt1724_pcm_spdif(struct snd_ice1712 * ice, int device)
{ {
char *name; char *name;
snd_pcm_t *pcm; struct snd_pcm *pcm;
int play, capt; int play, capt;
int err; int err;
...@@ -1055,7 +1076,8 @@ static int __devinit snd_vt1724_pcm_spdif(ice1712_t * ice, int device) ...@@ -1055,7 +1076,8 @@ static int __devinit snd_vt1724_pcm_spdif(ice1712_t * ice, int device)
strcpy(pcm->name, name); strcpy(pcm->name, name);
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
snd_dma_pci_data(ice->pci), 64*1024, 64*1024); snd_dma_pci_data(ice->pci),
64*1024, 64*1024);
ice->pcm = pcm; ice->pcm = pcm;
...@@ -1088,9 +1110,9 @@ static struct vt1724_pcm_reg vt1724_playback_dma_regs[3] = { ...@@ -1088,9 +1110,9 @@ static struct vt1724_pcm_reg vt1724_playback_dma_regs[3] = {
}, },
}; };
static int snd_vt1724_playback_indep_prepare(snd_pcm_substream_t * substream) static int snd_vt1724_playback_indep_prepare(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
unsigned char val; unsigned char val;
spin_lock_irq(&ice->reg_lock); spin_lock_irq(&ice->reg_lock);
...@@ -1101,10 +1123,10 @@ static int snd_vt1724_playback_indep_prepare(snd_pcm_substream_t * substream) ...@@ -1101,10 +1123,10 @@ static int snd_vt1724_playback_indep_prepare(snd_pcm_substream_t * substream)
return snd_vt1724_pcm_prepare(substream); return snd_vt1724_pcm_prepare(substream);
} }
static int snd_vt1724_playback_indep_open(snd_pcm_substream_t *substream) static int snd_vt1724_playback_indep_open(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
down(&ice->open_mutex); down(&ice->open_mutex);
/* already used by PDMA0? */ /* already used by PDMA0? */
...@@ -1122,9 +1144,9 @@ static int snd_vt1724_playback_indep_open(snd_pcm_substream_t *substream) ...@@ -1122,9 +1144,9 @@ static int snd_vt1724_playback_indep_open(snd_pcm_substream_t *substream)
return 0; return 0;
} }
static int snd_vt1724_playback_indep_close(snd_pcm_substream_t * substream) static int snd_vt1724_playback_indep_close(struct snd_pcm_substream *substream)
{ {
ice1712_t *ice = snd_pcm_substream_chip(substream); struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
if (PRO_RATE_RESET) if (PRO_RATE_RESET)
snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0); snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0);
...@@ -1134,7 +1156,7 @@ static int snd_vt1724_playback_indep_close(snd_pcm_substream_t * substream) ...@@ -1134,7 +1156,7 @@ static int snd_vt1724_playback_indep_close(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static snd_pcm_ops_t snd_vt1724_playback_indep_ops = { static struct snd_pcm_ops snd_vt1724_playback_indep_ops = {
.open = snd_vt1724_playback_indep_open, .open = snd_vt1724_playback_indep_open,
.close = snd_vt1724_playback_indep_close, .close = snd_vt1724_playback_indep_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -1146,9 +1168,9 @@ static snd_pcm_ops_t snd_vt1724_playback_indep_ops = { ...@@ -1146,9 +1168,9 @@ static snd_pcm_ops_t snd_vt1724_playback_indep_ops = {
}; };
static int __devinit snd_vt1724_pcm_indep(ice1712_t * ice, int device) static int __devinit snd_vt1724_pcm_indep(struct snd_ice1712 * ice, int device)
{ {
snd_pcm_t *pcm; struct snd_pcm *pcm;
int play; int play;
int err; int err;
...@@ -1168,7 +1190,8 @@ static int __devinit snd_vt1724_pcm_indep(ice1712_t * ice, int device) ...@@ -1168,7 +1190,8 @@ static int __devinit snd_vt1724_pcm_indep(ice1712_t * ice, int device)
strcpy(pcm->name, "ICE1724 Surround PCM"); strcpy(pcm->name, "ICE1724 Surround PCM");
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
snd_dma_pci_data(ice->pci), 64*1024, 64*1024); snd_dma_pci_data(ice->pci),
64*1024, 64*1024);
ice->pcm_ds = pcm; ice->pcm_ds = pcm;
...@@ -1180,14 +1203,14 @@ static int __devinit snd_vt1724_pcm_indep(ice1712_t * ice, int device) ...@@ -1180,14 +1203,14 @@ static int __devinit snd_vt1724_pcm_indep(ice1712_t * ice, int device)
* Mixer section * Mixer section
*/ */
static int __devinit snd_vt1724_ac97_mixer(ice1712_t * ice) static int __devinit snd_vt1724_ac97_mixer(struct snd_ice1712 * ice)
{ {
int err; int err;
if (! (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S)) { if (! (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S)) {
ac97_bus_t *pbus; struct snd_ac97_bus *pbus;
ac97_template_t ac97; struct snd_ac97_template ac97;
static ac97_bus_ops_t ops = { static struct snd_ac97_bus_ops ops = {
.write = snd_vt1724_ac97_write, .write = snd_vt1724_ac97_write,
.read = snd_vt1724_ac97_read, .read = snd_vt1724_ac97_read,
}; };
...@@ -1215,17 +1238,17 @@ static int __devinit snd_vt1724_ac97_mixer(ice1712_t * ice) ...@@ -1215,17 +1238,17 @@ static int __devinit snd_vt1724_ac97_mixer(ice1712_t * ice)
* *
*/ */
static inline unsigned int eeprom_triple(ice1712_t *ice, int idx) static inline unsigned int eeprom_triple(struct snd_ice1712 *ice, int idx)
{ {
return (unsigned int)ice->eeprom.data[idx] | \ return (unsigned int)ice->eeprom.data[idx] | \
((unsigned int)ice->eeprom.data[idx + 1] << 8) | \ ((unsigned int)ice->eeprom.data[idx + 1] << 8) | \
((unsigned int)ice->eeprom.data[idx + 2] << 16); ((unsigned int)ice->eeprom.data[idx + 2] << 16);
} }
static void snd_vt1724_proc_read(snd_info_entry_t *entry, static void snd_vt1724_proc_read(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
ice1712_t *ice = entry->private_data; struct snd_ice1712 *ice = entry->private_data;
unsigned int idx; unsigned int idx;
snd_iprintf(buffer, "%s\n\n", ice->card->longname); snd_iprintf(buffer, "%s\n\n", ice->card->longname);
...@@ -1234,28 +1257,39 @@ static void snd_vt1724_proc_read(snd_info_entry_t *entry, ...@@ -1234,28 +1257,39 @@ static void snd_vt1724_proc_read(snd_info_entry_t *entry,
snd_iprintf(buffer, " Subvendor : 0x%x\n", ice->eeprom.subvendor); snd_iprintf(buffer, " Subvendor : 0x%x\n", ice->eeprom.subvendor);
snd_iprintf(buffer, " Size : %i bytes\n", ice->eeprom.size); snd_iprintf(buffer, " Size : %i bytes\n", ice->eeprom.size);
snd_iprintf(buffer, " Version : %i\n", ice->eeprom.version); snd_iprintf(buffer, " Version : %i\n", ice->eeprom.version);
snd_iprintf(buffer, " System Config : 0x%x\n", ice->eeprom.data[ICE_EEP2_SYSCONF]); snd_iprintf(buffer, " System Config : 0x%x\n",
snd_iprintf(buffer, " ACLink : 0x%x\n", ice->eeprom.data[ICE_EEP2_ACLINK]); ice->eeprom.data[ICE_EEP2_SYSCONF]);
snd_iprintf(buffer, " I2S : 0x%x\n", ice->eeprom.data[ICE_EEP2_I2S]); snd_iprintf(buffer, " ACLink : 0x%x\n",
snd_iprintf(buffer, " S/PDIF : 0x%x\n", ice->eeprom.data[ICE_EEP2_SPDIF]); ice->eeprom.data[ICE_EEP2_ACLINK]);
snd_iprintf(buffer, " GPIO direction : 0x%x\n", ice->eeprom.gpiodir); snd_iprintf(buffer, " I2S : 0x%x\n",
snd_iprintf(buffer, " GPIO mask : 0x%x\n", ice->eeprom.gpiomask); ice->eeprom.data[ICE_EEP2_I2S]);
snd_iprintf(buffer, " GPIO state : 0x%x\n", ice->eeprom.gpiostate); snd_iprintf(buffer, " S/PDIF : 0x%x\n",
ice->eeprom.data[ICE_EEP2_SPDIF]);
snd_iprintf(buffer, " GPIO direction : 0x%x\n",
ice->eeprom.gpiodir);
snd_iprintf(buffer, " GPIO mask : 0x%x\n",
ice->eeprom.gpiomask);
snd_iprintf(buffer, " GPIO state : 0x%x\n",
ice->eeprom.gpiostate);
for (idx = 0x12; idx < ice->eeprom.size; idx++) for (idx = 0x12; idx < ice->eeprom.size; idx++)
snd_iprintf(buffer, " Extra #%02i : 0x%x\n", idx, ice->eeprom.data[idx]); snd_iprintf(buffer, " Extra #%02i : 0x%x\n",
idx, ice->eeprom.data[idx]);
snd_iprintf(buffer, "\nRegisters:\n"); snd_iprintf(buffer, "\nRegisters:\n");
snd_iprintf(buffer, " PSDOUT03 : 0x%08x\n", (unsigned)inl(ICEMT1724(ice, ROUTE_PLAYBACK))); snd_iprintf(buffer, " PSDOUT03 : 0x%08x\n",
(unsigned)inl(ICEMT1724(ice, ROUTE_PLAYBACK)));
for (idx = 0x0; idx < 0x20 ; idx++) for (idx = 0x0; idx < 0x20 ; idx++)
snd_iprintf(buffer, " CCS%02x : 0x%02x\n", idx, inb(ice->port+idx)); snd_iprintf(buffer, " CCS%02x : 0x%02x\n",
idx, inb(ice->port+idx));
for (idx = 0x0; idx < 0x30 ; idx++) for (idx = 0x0; idx < 0x30 ; idx++)
snd_iprintf(buffer, " MT%02x : 0x%02x\n", idx, inb(ice->profi_port+idx)); snd_iprintf(buffer, " MT%02x : 0x%02x\n",
idx, inb(ice->profi_port+idx));
} }
static void __devinit snd_vt1724_proc_init(ice1712_t * ice) static void __devinit snd_vt1724_proc_init(struct snd_ice1712 * ice)
{ {
snd_info_entry_t *entry; struct snd_info_entry *entry;
if (! snd_card_proc_new(ice->card, "ice1724", &entry)) if (! snd_card_proc_new(ice->card, "ice1724", &entry))
snd_info_set_text_ops(entry, ice, 1024, snd_vt1724_proc_read); snd_info_set_text_ops(entry, ice, 1024, snd_vt1724_proc_read);
...@@ -1265,22 +1299,24 @@ static void __devinit snd_vt1724_proc_init(ice1712_t * ice) ...@@ -1265,22 +1299,24 @@ static void __devinit snd_vt1724_proc_init(ice1712_t * ice)
* *
*/ */
static int snd_vt1724_eeprom_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_vt1724_eeprom_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES; uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
uinfo->count = sizeof(ice1712_eeprom_t); uinfo->count = sizeof(struct snd_ice1712_eeprom);
return 0; return 0;
} }
static int snd_vt1724_eeprom_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_eeprom_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
memcpy(ucontrol->value.bytes.data, &ice->eeprom, sizeof(ice->eeprom)); memcpy(ucontrol->value.bytes.data, &ice->eeprom, sizeof(ice->eeprom));
return 0; return 0;
} }
static snd_kcontrol_new_t snd_vt1724_eeprom __devinitdata = { static struct snd_kcontrol_new snd_vt1724_eeprom __devinitdata = {
.iface = SNDRV_CTL_ELEM_IFACE_CARD, .iface = SNDRV_CTL_ELEM_IFACE_CARD,
.name = "ICE1724 EEPROM", .name = "ICE1724 EEPROM",
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
...@@ -1290,21 +1326,23 @@ static snd_kcontrol_new_t snd_vt1724_eeprom __devinitdata = { ...@@ -1290,21 +1326,23 @@ static snd_kcontrol_new_t snd_vt1724_eeprom __devinitdata = {
/* /*
*/ */
static int snd_vt1724_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_vt1724_spdif_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
uinfo->count = 1; uinfo->count = 1;
return 0; return 0;
} }
static unsigned int encode_spdif_bits(snd_aes_iec958_t *diga) static unsigned int encode_spdif_bits(struct snd_aes_iec958 *diga)
{ {
unsigned int val, rbits; unsigned int val, rbits;
val = diga->status[0] & 0x03; /* professional, non-audio */ val = diga->status[0] & 0x03; /* professional, non-audio */
if (val & 0x01) { if (val & 0x01) {
/* professional */ /* professional */
if ((diga->status[0] & IEC958_AES0_PRO_EMPHASIS) == IEC958_AES0_PRO_EMPHASIS_5015) if ((diga->status[0] & IEC958_AES0_PRO_EMPHASIS) ==
IEC958_AES0_PRO_EMPHASIS_5015)
val |= 1U << 3; val |= 1U << 3;
rbits = (diga->status[4] >> 3) & 0x0f; rbits = (diga->status[4] >> 3) & 0x0f;
if (rbits) { if (rbits) {
...@@ -1329,7 +1367,8 @@ static unsigned int encode_spdif_bits(snd_aes_iec958_t *diga) ...@@ -1329,7 +1367,8 @@ static unsigned int encode_spdif_bits(snd_aes_iec958_t *diga)
} else { } else {
/* consumer */ /* consumer */
val |= diga->status[1] & 0x04; /* copyright */ val |= diga->status[1] & 0x04; /* copyright */
if ((diga->status[0] & IEC958_AES0_CON_EMPHASIS)== IEC958_AES0_CON_EMPHASIS_5015) if ((diga->status[0] & IEC958_AES0_CON_EMPHASIS) ==
IEC958_AES0_CON_EMPHASIS_5015)
val |= 1U << 3; val |= 1U << 3;
val |= (unsigned int)(diga->status[1] & 0x3f) << 4; /* category */ val |= (unsigned int)(diga->status[1] & 0x3f) << 4; /* category */
val |= (unsigned int)(diga->status[3] & IEC958_AES3_CON_FS) << 12; /* fs */ val |= (unsigned int)(diga->status[3] & IEC958_AES3_CON_FS) << 12; /* fs */
...@@ -1337,7 +1376,7 @@ static unsigned int encode_spdif_bits(snd_aes_iec958_t *diga) ...@@ -1337,7 +1376,7 @@ static unsigned int encode_spdif_bits(snd_aes_iec958_t *diga)
return val; return val;
} }
static void decode_spdif_bits(snd_aes_iec958_t *diga, unsigned int val) static void decode_spdif_bits(struct snd_aes_iec958 *diga, unsigned int val)
{ {
memset(diga->status, 0, sizeof(diga->status)); memset(diga->status, 0, sizeof(diga->status));
diga->status[0] = val & 0x03; /* professional, non-audio */ diga->status[0] = val & 0x03; /* professional, non-audio */
...@@ -1365,20 +1404,20 @@ static void decode_spdif_bits(snd_aes_iec958_t *diga, unsigned int val) ...@@ -1365,20 +1404,20 @@ static void decode_spdif_bits(snd_aes_iec958_t *diga, unsigned int val)
} }
} }
static int snd_vt1724_spdif_default_get(snd_kcontrol_t * kcontrol, static int snd_vt1724_spdif_default_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned int val; unsigned int val;
val = inw(ICEMT1724(ice, SPDIF_CTRL)); val = inw(ICEMT1724(ice, SPDIF_CTRL));
decode_spdif_bits(&ucontrol->value.iec958, val); decode_spdif_bits(&ucontrol->value.iec958, val);
return 0; return 0;
} }
static int snd_vt1724_spdif_default_put(snd_kcontrol_t * kcontrol, static int snd_vt1724_spdif_default_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned int val, old; unsigned int val, old;
val = encode_spdif_bits(&ucontrol->value.iec958); val = encode_spdif_bits(&ucontrol->value.iec958);
...@@ -1390,7 +1429,7 @@ static int snd_vt1724_spdif_default_put(snd_kcontrol_t * kcontrol, ...@@ -1390,7 +1429,7 @@ static int snd_vt1724_spdif_default_put(snd_kcontrol_t * kcontrol,
return (val != old); return (val != old);
} }
static snd_kcontrol_new_t snd_vt1724_spdif_default __devinitdata = static struct snd_kcontrol_new snd_vt1724_spdif_default __devinitdata =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
...@@ -1399,8 +1438,8 @@ static snd_kcontrol_new_t snd_vt1724_spdif_default __devinitdata = ...@@ -1399,8 +1438,8 @@ static snd_kcontrol_new_t snd_vt1724_spdif_default __devinitdata =
.put = snd_vt1724_spdif_default_put .put = snd_vt1724_spdif_default_put
}; };
static int snd_vt1724_spdif_maskc_get(snd_kcontrol_t * kcontrol, static int snd_vt1724_spdif_maskc_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
ucontrol->value.iec958.status[0] = IEC958_AES0_NONAUDIO | ucontrol->value.iec958.status[0] = IEC958_AES0_NONAUDIO |
IEC958_AES0_PROFESSIONAL | IEC958_AES0_PROFESSIONAL |
...@@ -1412,8 +1451,8 @@ static int snd_vt1724_spdif_maskc_get(snd_kcontrol_t * kcontrol, ...@@ -1412,8 +1451,8 @@ static int snd_vt1724_spdif_maskc_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_vt1724_spdif_maskp_get(snd_kcontrol_t * kcontrol, static int snd_vt1724_spdif_maskp_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
ucontrol->value.iec958.status[0] = IEC958_AES0_NONAUDIO | ucontrol->value.iec958.status[0] = IEC958_AES0_NONAUDIO |
IEC958_AES0_PROFESSIONAL | IEC958_AES0_PROFESSIONAL |
...@@ -1422,7 +1461,7 @@ static int snd_vt1724_spdif_maskp_get(snd_kcontrol_t * kcontrol, ...@@ -1422,7 +1461,7 @@ static int snd_vt1724_spdif_maskp_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static snd_kcontrol_new_t snd_vt1724_spdif_maskc __devinitdata = static struct snd_kcontrol_new snd_vt1724_spdif_maskc __devinitdata =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
...@@ -1431,7 +1470,7 @@ static snd_kcontrol_new_t snd_vt1724_spdif_maskc __devinitdata = ...@@ -1431,7 +1470,7 @@ static snd_kcontrol_new_t snd_vt1724_spdif_maskc __devinitdata =
.get = snd_vt1724_spdif_maskc_get, .get = snd_vt1724_spdif_maskc_get,
}; };
static snd_kcontrol_new_t snd_vt1724_spdif_maskp __devinitdata = static struct snd_kcontrol_new snd_vt1724_spdif_maskp __devinitdata =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
...@@ -1440,7 +1479,8 @@ static snd_kcontrol_new_t snd_vt1724_spdif_maskp __devinitdata = ...@@ -1440,7 +1479,8 @@ static snd_kcontrol_new_t snd_vt1724_spdif_maskp __devinitdata =
.get = snd_vt1724_spdif_maskp_get, .get = snd_vt1724_spdif_maskp_get,
}; };
static int snd_vt1724_spdif_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_vt1724_spdif_sw_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -1449,16 +1489,19 @@ static int snd_vt1724_spdif_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ ...@@ -1449,16 +1489,19 @@ static int snd_vt1724_spdif_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_
return 0; return 0;
} }
static int snd_vt1724_spdif_sw_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_spdif_sw_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.integer.value[0] = inb(ICEREG1724(ice, SPDIF_CFG)) & VT1724_CFG_SPDIF_OUT_EN ? 1 : 0; ucontrol->value.integer.value[0] = inb(ICEREG1724(ice, SPDIF_CFG)) &
VT1724_CFG_SPDIF_OUT_EN ? 1 : 0;
return 0; return 0;
} }
static int snd_vt1724_spdif_sw_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_spdif_sw_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned char old, val; unsigned char old, val;
spin_lock_irq(&ice->reg_lock); spin_lock_irq(&ice->reg_lock);
...@@ -1472,7 +1515,7 @@ static int snd_vt1724_spdif_sw_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value ...@@ -1472,7 +1515,7 @@ static int snd_vt1724_spdif_sw_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value
return old != val; return old != val;
} }
static snd_kcontrol_new_t snd_vt1724_spdif_switch __devinitdata = static struct snd_kcontrol_new snd_vt1724_spdif_switch __devinitdata =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
/* FIXME: the following conflict with IEC958 Playback Route */ /* FIXME: the following conflict with IEC958 Playback Route */
...@@ -1489,7 +1532,8 @@ static snd_kcontrol_new_t snd_vt1724_spdif_switch __devinitdata = ...@@ -1489,7 +1532,8 @@ static snd_kcontrol_new_t snd_vt1724_spdif_switch __devinitdata =
* GPIO access from extern * GPIO access from extern
*/ */
int snd_vt1724_gpio_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) int snd_vt1724_gpio_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -1498,21 +1542,24 @@ int snd_vt1724_gpio_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) ...@@ -1498,21 +1542,24 @@ int snd_vt1724_gpio_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
return 0; return 0;
} }
int snd_vt1724_gpio_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) int snd_vt1724_gpio_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int shift = kcontrol->private_value & 0xff; int shift = kcontrol->private_value & 0xff;
int invert = (kcontrol->private_value & (1<<24)) ? 1 : 0; int invert = (kcontrol->private_value & (1<<24)) ? 1 : 0;
snd_ice1712_save_gpio_status(ice); snd_ice1712_save_gpio_status(ice);
ucontrol->value.integer.value[0] = (snd_ice1712_gpio_read(ice) & (1 << shift) ? 1 : 0) ^ invert; ucontrol->value.integer.value[0] =
(snd_ice1712_gpio_read(ice) & (1 << shift) ? 1 : 0) ^ invert;
snd_ice1712_restore_gpio_status(ice); snd_ice1712_restore_gpio_status(ice);
return 0; return 0;
} }
int snd_ice1712_gpio_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) int snd_ice1712_gpio_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int shift = kcontrol->private_value & 0xff; int shift = kcontrol->private_value & 0xff;
int invert = (kcontrol->private_value & (1<<24)) ? mask : 0; int invert = (kcontrol->private_value & (1<<24)) ? mask : 0;
unsigned int val, nval; unsigned int val, nval;
...@@ -1533,7 +1580,8 @@ int snd_ice1712_gpio_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucont ...@@ -1533,7 +1580,8 @@ int snd_ice1712_gpio_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucont
/* /*
* rate * rate
*/ */
static int snd_vt1724_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_vt1724_pro_internal_clock_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ {
static char *texts_1724[] = { static char *texts_1724[] = {
"8000", /* 0: 6 */ "8000", /* 0: 6 */
...@@ -1569,7 +1617,7 @@ static int snd_vt1724_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl_ ...@@ -1569,7 +1617,7 @@ static int snd_vt1724_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl_
"96000", /* 12: 7 */ "96000", /* 12: 7 */
"IEC958 Input", /* 13: -- */ "IEC958 Input", /* 13: -- */
}; };
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1; uinfo->count = 1;
...@@ -1582,9 +1630,10 @@ static int snd_vt1724_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl_ ...@@ -1582,9 +1630,10 @@ static int snd_vt1724_pro_internal_clock_info(snd_kcontrol_t *kcontrol, snd_ctl_
return 0; return 0;
} }
static int snd_vt1724_pro_internal_clock_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_pro_internal_clock_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
static unsigned char xlate[16] = { static unsigned char xlate[16] = {
9, 6, 3, 1, 7, 4, 0, 12, 8, 5, 2, 11, 13, 255, 14, 10 9, 6, 3, 1, 7, 4, 0, 12, 8, 5, 2, 11, 13, 255, 14, 10
}; };
...@@ -1605,9 +1654,10 @@ static int snd_vt1724_pro_internal_clock_get(snd_kcontrol_t * kcontrol, snd_ctl_ ...@@ -1605,9 +1654,10 @@ static int snd_vt1724_pro_internal_clock_get(snd_kcontrol_t * kcontrol, snd_ctl_
return 0; return 0;
} }
static int snd_vt1724_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_pro_internal_clock_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned char oval; unsigned char oval;
int rate; int rate;
int change = 0; int change = 0;
...@@ -1629,7 +1679,8 @@ static int snd_vt1724_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl_ ...@@ -1629,7 +1679,8 @@ static int snd_vt1724_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl_
change = inb(ICEMT1724(ice, RATE)) != oval; change = inb(ICEMT1724(ice, RATE)) != oval;
spin_unlock_irq(&ice->reg_lock); spin_unlock_irq(&ice->reg_lock);
if ((oval & VT1724_SPDIF_MASTER) != (inb(ICEMT1724(ice, RATE)) & VT1724_SPDIF_MASTER)) { if ((oval & VT1724_SPDIF_MASTER) !=
(inb(ICEMT1724(ice, RATE)) & VT1724_SPDIF_MASTER)) {
/* notify akm chips as well */ /* notify akm chips as well */
if (is_spdif_master(ice)) { if (is_spdif_master(ice)) {
unsigned int i; unsigned int i;
...@@ -1642,7 +1693,7 @@ static int snd_vt1724_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl_ ...@@ -1642,7 +1693,7 @@ static int snd_vt1724_pro_internal_clock_put(snd_kcontrol_t * kcontrol, snd_ctl_
return change; return change;
} }
static snd_kcontrol_new_t snd_vt1724_pro_internal_clock __devinitdata = { static struct snd_kcontrol_new snd_vt1724_pro_internal_clock __devinitdata = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "Multi Track Internal Clock", .name = "Multi Track Internal Clock",
.info = snd_vt1724_pro_internal_clock_info, .info = snd_vt1724_pro_internal_clock_info,
...@@ -1650,7 +1701,8 @@ static snd_kcontrol_new_t snd_vt1724_pro_internal_clock __devinitdata = { ...@@ -1650,7 +1701,8 @@ static snd_kcontrol_new_t snd_vt1724_pro_internal_clock __devinitdata = {
.put = snd_vt1724_pro_internal_clock_put .put = snd_vt1724_pro_internal_clock_put
}; };
static int snd_vt1724_pro_rate_locking_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_vt1724_pro_rate_locking_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -1659,15 +1711,17 @@ static int snd_vt1724_pro_rate_locking_info(snd_kcontrol_t *kcontrol, snd_ctl_el ...@@ -1659,15 +1711,17 @@ static int snd_vt1724_pro_rate_locking_info(snd_kcontrol_t *kcontrol, snd_ctl_el
return 0; return 0;
} }
static int snd_vt1724_pro_rate_locking_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_pro_rate_locking_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ucontrol->value.integer.value[0] = PRO_RATE_LOCKED; ucontrol->value.integer.value[0] = PRO_RATE_LOCKED;
return 0; return 0;
} }
static int snd_vt1724_pro_rate_locking_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_pro_rate_locking_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int change = 0, nval; int change = 0, nval;
nval = ucontrol->value.integer.value[0] ? 1 : 0; nval = ucontrol->value.integer.value[0] ? 1 : 0;
...@@ -1678,7 +1732,7 @@ static int snd_vt1724_pro_rate_locking_put(snd_kcontrol_t * kcontrol, snd_ctl_el ...@@ -1678,7 +1732,7 @@ static int snd_vt1724_pro_rate_locking_put(snd_kcontrol_t * kcontrol, snd_ctl_el
return change; return change;
} }
static snd_kcontrol_new_t snd_vt1724_pro_rate_locking __devinitdata = { static struct snd_kcontrol_new snd_vt1724_pro_rate_locking __devinitdata = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "Multi Track Rate Locking", .name = "Multi Track Rate Locking",
.info = snd_vt1724_pro_rate_locking_info, .info = snd_vt1724_pro_rate_locking_info,
...@@ -1686,7 +1740,8 @@ static snd_kcontrol_new_t snd_vt1724_pro_rate_locking __devinitdata = { ...@@ -1686,7 +1740,8 @@ static snd_kcontrol_new_t snd_vt1724_pro_rate_locking __devinitdata = {
.put = snd_vt1724_pro_rate_locking_put .put = snd_vt1724_pro_rate_locking_put
}; };
static int snd_vt1724_pro_rate_reset_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_vt1724_pro_rate_reset_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -1695,15 +1750,17 @@ static int snd_vt1724_pro_rate_reset_info(snd_kcontrol_t *kcontrol, snd_ctl_elem ...@@ -1695,15 +1750,17 @@ static int snd_vt1724_pro_rate_reset_info(snd_kcontrol_t *kcontrol, snd_ctl_elem
return 0; return 0;
} }
static int snd_vt1724_pro_rate_reset_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_pro_rate_reset_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ucontrol->value.integer.value[0] = PRO_RATE_RESET ? 1 : 0; ucontrol->value.integer.value[0] = PRO_RATE_RESET ? 1 : 0;
return 0; return 0;
} }
static int snd_vt1724_pro_rate_reset_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_pro_rate_reset_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int change = 0, nval; int change = 0, nval;
nval = ucontrol->value.integer.value[0] ? 1 : 0; nval = ucontrol->value.integer.value[0] ? 1 : 0;
...@@ -1714,7 +1771,7 @@ static int snd_vt1724_pro_rate_reset_put(snd_kcontrol_t * kcontrol, snd_ctl_elem ...@@ -1714,7 +1771,7 @@ static int snd_vt1724_pro_rate_reset_put(snd_kcontrol_t * kcontrol, snd_ctl_elem
return change; return change;
} }
static snd_kcontrol_new_t snd_vt1724_pro_rate_reset __devinitdata = { static struct snd_kcontrol_new snd_vt1724_pro_rate_reset __devinitdata = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "Multi Track Rate Reset", .name = "Multi Track Rate Reset",
.info = snd_vt1724_pro_rate_reset_info, .info = snd_vt1724_pro_rate_reset_info,
...@@ -1726,7 +1783,8 @@ static snd_kcontrol_new_t snd_vt1724_pro_rate_reset __devinitdata = { ...@@ -1726,7 +1783,8 @@ static snd_kcontrol_new_t snd_vt1724_pro_rate_reset __devinitdata = {
/* /*
* routing * routing
*/ */
static int snd_vt1724_pro_route_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_vt1724_pro_route_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ {
static char *texts[] = { static char *texts[] = {
"PCM Out", /* 0 */ "PCM Out", /* 0 */
...@@ -1753,7 +1811,7 @@ static inline int digital_route_shift(int idx) ...@@ -1753,7 +1811,7 @@ static inline int digital_route_shift(int idx)
return idx * 3; return idx * 3;
} }
static int get_route_val(ice1712_t *ice, int shift) static int get_route_val(struct snd_ice1712 *ice, int shift)
{ {
unsigned long val; unsigned long val;
unsigned char eitem; unsigned char eitem;
...@@ -1772,7 +1830,7 @@ static int get_route_val(ice1712_t *ice, int shift) ...@@ -1772,7 +1830,7 @@ static int get_route_val(ice1712_t *ice, int shift)
return eitem; return eitem;
} }
static int put_route_val(ice1712_t *ice, unsigned int val, int shift) static int put_route_val(struct snd_ice1712 *ice, unsigned int val, int shift)
{ {
unsigned int old_val, nval; unsigned int old_val, nval;
int change; int change;
...@@ -1794,39 +1852,45 @@ static int put_route_val(ice1712_t *ice, unsigned int val, int shift) ...@@ -1794,39 +1852,45 @@ static int put_route_val(ice1712_t *ice, unsigned int val, int shift)
return change; return change;
} }
static int snd_vt1724_pro_route_analog_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int snd_vt1724_pro_route_analog_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
ucontrol->value.enumerated.item[0] = get_route_val(ice, analog_route_shift(idx)); ucontrol->value.enumerated.item[0] =
get_route_val(ice, analog_route_shift(idx));
return 0; return 0;
} }
static int snd_vt1724_pro_route_analog_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int snd_vt1724_pro_route_analog_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
return put_route_val(ice, ucontrol->value.enumerated.item[0], return put_route_val(ice, ucontrol->value.enumerated.item[0],
analog_route_shift(idx)); analog_route_shift(idx));
} }
static int snd_vt1724_pro_route_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int snd_vt1724_pro_route_spdif_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
ucontrol->value.enumerated.item[0] = get_route_val(ice, digital_route_shift(idx)); ucontrol->value.enumerated.item[0] =
get_route_val(ice, digital_route_shift(idx));
return 0; return 0;
} }
static int snd_vt1724_pro_route_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int snd_vt1724_pro_route_spdif_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
return put_route_val(ice, ucontrol->value.enumerated.item[0], return put_route_val(ice, ucontrol->value.enumerated.item[0],
digital_route_shift(idx)); digital_route_shift(idx));
} }
static snd_kcontrol_new_t snd_vt1724_mixer_pro_analog_route __devinitdata = { static struct snd_kcontrol_new snd_vt1724_mixer_pro_analog_route __devinitdata = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "H/W Playback Route", .name = "H/W Playback Route",
.info = snd_vt1724_pro_route_info, .info = snd_vt1724_pro_route_info,
...@@ -1834,7 +1898,7 @@ static snd_kcontrol_new_t snd_vt1724_mixer_pro_analog_route __devinitdata = { ...@@ -1834,7 +1898,7 @@ static snd_kcontrol_new_t snd_vt1724_mixer_pro_analog_route __devinitdata = {
.put = snd_vt1724_pro_route_analog_put, .put = snd_vt1724_pro_route_analog_put,
}; };
static snd_kcontrol_new_t snd_vt1724_mixer_pro_spdif_route __devinitdata = { static struct snd_kcontrol_new snd_vt1724_mixer_pro_spdif_route __devinitdata = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Route", .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,NONE) "Route",
.info = snd_vt1724_pro_route_info, .info = snd_vt1724_pro_route_info,
...@@ -1844,7 +1908,8 @@ static snd_kcontrol_new_t snd_vt1724_mixer_pro_spdif_route __devinitdata = { ...@@ -1844,7 +1908,8 @@ static snd_kcontrol_new_t snd_vt1724_mixer_pro_spdif_route __devinitdata = {
}; };
static int snd_vt1724_pro_peak_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_vt1724_pro_peak_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 22; /* FIXME: for compatibility with ice1712... */ uinfo->count = 22; /* FIXME: for compatibility with ice1712... */
...@@ -1853,21 +1918,23 @@ static int snd_vt1724_pro_peak_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ ...@@ -1853,21 +1918,23 @@ static int snd_vt1724_pro_peak_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_
return 0; return 0;
} }
static int snd_vt1724_pro_peak_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_vt1724_pro_peak_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int idx; int idx;
spin_lock_irq(&ice->reg_lock); spin_lock_irq(&ice->reg_lock);
for (idx = 0; idx < 22; idx++) { for (idx = 0; idx < 22; idx++) {
outb(idx, ICEMT1724(ice, MONITOR_PEAKINDEX)); outb(idx, ICEMT1724(ice, MONITOR_PEAKINDEX));
ucontrol->value.integer.value[idx] = inb(ICEMT1724(ice, MONITOR_PEAKDATA)); ucontrol->value.integer.value[idx] =
inb(ICEMT1724(ice, MONITOR_PEAKDATA));
} }
spin_unlock_irq(&ice->reg_lock); spin_unlock_irq(&ice->reg_lock);
return 0; return 0;
} }
static snd_kcontrol_new_t snd_vt1724_mixer_pro_peak __devinitdata = { static struct snd_kcontrol_new snd_vt1724_mixer_pro_peak __devinitdata = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "Multi Track Peak", .name = "Multi Track Peak",
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE,
...@@ -1897,7 +1964,7 @@ static struct snd_ice1712_card_info *card_tables[] __devinitdata = { ...@@ -1897,7 +1964,7 @@ static struct snd_ice1712_card_info *card_tables[] __devinitdata = {
/* /*
*/ */
static void wait_i2c_busy(ice1712_t *ice) static void wait_i2c_busy(struct snd_ice1712 *ice)
{ {
int t = 0x10000; int t = 0x10000;
while ((inb(ICEREG1724(ice, I2C_CTRL)) & VT1724_I2C_BUSY) && t--) while ((inb(ICEREG1724(ice, I2C_CTRL)) & VT1724_I2C_BUSY) && t--)
...@@ -1906,7 +1973,8 @@ static void wait_i2c_busy(ice1712_t *ice) ...@@ -1906,7 +1973,8 @@ static void wait_i2c_busy(ice1712_t *ice)
printk(KERN_ERR "ice1724: i2c busy timeout\n"); printk(KERN_ERR "ice1724: i2c busy timeout\n");
} }
unsigned char snd_vt1724_read_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr) unsigned char snd_vt1724_read_i2c(struct snd_ice1712 *ice,
unsigned char dev, unsigned char addr)
{ {
unsigned char val; unsigned char val;
...@@ -1920,7 +1988,8 @@ unsigned char snd_vt1724_read_i2c(ice1712_t *ice, unsigned char dev, unsigned ch ...@@ -1920,7 +1988,8 @@ unsigned char snd_vt1724_read_i2c(ice1712_t *ice, unsigned char dev, unsigned ch
return val; return val;
} }
void snd_vt1724_write_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr, unsigned char data) void snd_vt1724_write_i2c(struct snd_ice1712 *ice,
unsigned char dev, unsigned char addr, unsigned char data)
{ {
down(&ice->i2c_mutex); down(&ice->i2c_mutex);
wait_i2c_busy(ice); wait_i2c_busy(ice);
...@@ -1932,7 +2001,8 @@ void snd_vt1724_write_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr, ...@@ -1932,7 +2001,8 @@ void snd_vt1724_write_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr,
up(&ice->i2c_mutex); up(&ice->i2c_mutex);
} }
static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelname) static int __devinit snd_vt1724_read_eeprom(struct snd_ice1712 *ice,
const char *modelname)
{ {
const int dev = 0xa0; /* EEPROM device address */ const int dev = 0xa0; /* EEPROM device address */
unsigned int i, size; unsigned int i, size;
...@@ -1946,13 +2016,19 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam ...@@ -1946,13 +2016,19 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam
(snd_vt1724_read_i2c(ice, dev, 0x01) << 8) | (snd_vt1724_read_i2c(ice, dev, 0x01) << 8) |
(snd_vt1724_read_i2c(ice, dev, 0x02) << 16) | (snd_vt1724_read_i2c(ice, dev, 0x02) << 16) |
(snd_vt1724_read_i2c(ice, dev, 0x03) << 24); (snd_vt1724_read_i2c(ice, dev, 0x03) << 24);
if (ice->eeprom.subvendor == 0 || ice->eeprom.subvendor == (unsigned int)-1) { if (ice->eeprom.subvendor == 0 ||
/* invalid subvendor from EEPROM, try the PCI subststem ID instead */ ice->eeprom.subvendor == (unsigned int)-1) {
/* invalid subvendor from EEPROM, try the PCI
* subststem ID instead
*/
u16 vendor, device; u16 vendor, device;
pci_read_config_word(ice->pci, PCI_SUBSYSTEM_VENDOR_ID, &vendor); pci_read_config_word(ice->pci, PCI_SUBSYSTEM_VENDOR_ID,
&vendor);
pci_read_config_word(ice->pci, PCI_SUBSYSTEM_ID, &device); pci_read_config_word(ice->pci, PCI_SUBSYSTEM_ID, &device);
ice->eeprom.subvendor = ((unsigned int)swab16(vendor) << 16) | swab16(device); ice->eeprom.subvendor =
if (ice->eeprom.subvendor == 0 || ice->eeprom.subvendor == (unsigned int)-1) { ((unsigned int)swab16(vendor) << 16) | swab16(device);
if (ice->eeprom.subvendor == 0 ||
ice->eeprom.subvendor == (unsigned int)-1) {
printk(KERN_ERR "ice1724: No valid ID is found\n"); printk(KERN_ERR "ice1724: No valid ID is found\n");
return -ENXIO; return -ENXIO;
} }
...@@ -1960,8 +2036,10 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam ...@@ -1960,8 +2036,10 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam
} }
for (tbl = card_tables; *tbl; tbl++) { for (tbl = card_tables; *tbl; tbl++) {
for (c = *tbl; c->subvendor; c++) { for (c = *tbl; c->subvendor; c++) {
if (modelname && c->model && ! strcmp(modelname, c->model)) { if (modelname && c->model &&
printk(KERN_INFO "ice1724: Using board model %s\n", c->name); ! strcmp(modelname, c->model)) {
printk(KERN_INFO "ice1724: Using board model %s\n",
c->name);
ice->eeprom.subvendor = c->subvendor; ice->eeprom.subvendor = c->subvendor;
} else if (c->subvendor != ice->eeprom.subvendor) } else if (c->subvendor != ice->eeprom.subvendor)
continue; continue;
...@@ -1975,19 +2053,22 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam ...@@ -1975,19 +2053,22 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam
goto read_skipped; goto read_skipped;
} }
} }
printk(KERN_WARNING "ice1724: No matching model found for ID 0x%x\n", ice->eeprom.subvendor); printk(KERN_WARNING "ice1724: No matching model found for ID 0x%x\n",
ice->eeprom.subvendor);
found: found:
ice->eeprom.size = snd_vt1724_read_i2c(ice, dev, 0x04); ice->eeprom.size = snd_vt1724_read_i2c(ice, dev, 0x04);
if (ice->eeprom.size < 6) if (ice->eeprom.size < 6)
ice->eeprom.size = 32; ice->eeprom.size = 32;
else if (ice->eeprom.size > 32) { else if (ice->eeprom.size > 32) {
printk(KERN_ERR "ice1724: Invalid EEPROM (size = %i)\n", ice->eeprom.size); printk(KERN_ERR "ice1724: Invalid EEPROM (size = %i)\n",
ice->eeprom.size);
return -EIO; return -EIO;
} }
ice->eeprom.version = snd_vt1724_read_i2c(ice, dev, 0x05); ice->eeprom.version = snd_vt1724_read_i2c(ice, dev, 0x05);
if (ice->eeprom.version != 2) if (ice->eeprom.version != 2)
printk(KERN_WARNING "ice1724: Invalid EEPROM version %i\n", ice->eeprom.version); printk(KERN_WARNING "ice1724: Invalid EEPROM version %i\n",
ice->eeprom.version);
size = ice->eeprom.size - 6; size = ice->eeprom.size - 6;
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
ice->eeprom.data[i] = snd_vt1724_read_i2c(ice, dev, i + 6); ice->eeprom.data[i] = snd_vt1724_read_i2c(ice, dev, i + 6);
...@@ -2002,7 +2083,7 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam ...@@ -2002,7 +2083,7 @@ static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelnam
static int __devinit snd_vt1724_chip_init(ice1712_t *ice) static int __devinit snd_vt1724_chip_init(struct snd_ice1712 *ice)
{ {
outb(VT1724_RESET , ICEREG1724(ice, CONTROL)); outb(VT1724_RESET , ICEREG1724(ice, CONTROL));
udelay(200); udelay(200);
...@@ -2024,10 +2105,10 @@ static int __devinit snd_vt1724_chip_init(ice1712_t *ice) ...@@ -2024,10 +2105,10 @@ static int __devinit snd_vt1724_chip_init(ice1712_t *ice)
return 0; return 0;
} }
static int __devinit snd_vt1724_spdif_build_controls(ice1712_t *ice) static int __devinit snd_vt1724_spdif_build_controls(struct snd_ice1712 *ice)
{ {
int err; int err;
snd_kcontrol_t *kctl; struct snd_kcontrol *kctl;
snd_assert(ice->pcm != NULL, return -EIO); snd_assert(ice->pcm != NULL, return -EIO);
...@@ -2062,7 +2143,7 @@ static int __devinit snd_vt1724_spdif_build_controls(ice1712_t *ice) ...@@ -2062,7 +2143,7 @@ static int __devinit snd_vt1724_spdif_build_controls(ice1712_t *ice)
} }
static int __devinit snd_vt1724_build_controls(ice1712_t *ice) static int __devinit snd_vt1724_build_controls(struct snd_ice1712 *ice)
{ {
int err; int err;
...@@ -2081,7 +2162,7 @@ static int __devinit snd_vt1724_build_controls(ice1712_t *ice) ...@@ -2081,7 +2162,7 @@ static int __devinit snd_vt1724_build_controls(ice1712_t *ice)
return err; return err;
if (ice->num_total_dacs > 0) { if (ice->num_total_dacs > 0) {
snd_kcontrol_new_t tmp = snd_vt1724_mixer_pro_analog_route; struct snd_kcontrol_new tmp = snd_vt1724_mixer_pro_analog_route;
tmp.count = ice->num_total_dacs; tmp.count = ice->num_total_dacs;
if (ice->vt1720 && tmp.count > 2) if (ice->vt1720 && tmp.count > 2)
tmp.count = 2; tmp.count = 2;
...@@ -2097,7 +2178,7 @@ static int __devinit snd_vt1724_build_controls(ice1712_t *ice) ...@@ -2097,7 +2178,7 @@ static int __devinit snd_vt1724_build_controls(ice1712_t *ice)
return 0; return 0;
} }
static int snd_vt1724_free(ice1712_t *ice) static int snd_vt1724_free(struct snd_ice1712 *ice)
{ {
if (! ice->port) if (! ice->port)
goto __hw_end; goto __hw_end;
...@@ -2108,7 +2189,7 @@ static int snd_vt1724_free(ice1712_t *ice) ...@@ -2108,7 +2189,7 @@ static int snd_vt1724_free(ice1712_t *ice)
__hw_end: __hw_end:
if (ice->irq >= 0) { if (ice->irq >= 0) {
synchronize_irq(ice->irq); synchronize_irq(ice->irq);
free_irq(ice->irq, (void *) ice); free_irq(ice->irq, ice);
} }
pci_release_regions(ice->pci); pci_release_regions(ice->pci);
snd_ice1712_akm4xxx_free(ice); snd_ice1712_akm4xxx_free(ice);
...@@ -2117,21 +2198,21 @@ static int snd_vt1724_free(ice1712_t *ice) ...@@ -2117,21 +2198,21 @@ static int snd_vt1724_free(ice1712_t *ice)
return 0; return 0;
} }
static int snd_vt1724_dev_free(snd_device_t *device) static int snd_vt1724_dev_free(struct snd_device *device)
{ {
ice1712_t *ice = device->device_data; struct snd_ice1712 *ice = device->device_data;
return snd_vt1724_free(ice); return snd_vt1724_free(ice);
} }
static int __devinit snd_vt1724_create(snd_card_t * card, static int __devinit snd_vt1724_create(struct snd_card *card,
struct pci_dev *pci, struct pci_dev *pci,
const char *modelname, const char *modelname,
ice1712_t ** r_ice1712) struct snd_ice1712 ** r_ice1712)
{ {
ice1712_t *ice; struct snd_ice1712 *ice;
int err; int err;
unsigned char mask; unsigned char mask;
static snd_device_ops_t ops = { static struct snd_device_ops ops = {
.dev_free = snd_vt1724_dev_free, .dev_free = snd_vt1724_dev_free,
}; };
...@@ -2170,7 +2251,8 @@ static int __devinit snd_vt1724_create(snd_card_t * card, ...@@ -2170,7 +2251,8 @@ static int __devinit snd_vt1724_create(snd_card_t * card,
ice->port = pci_resource_start(pci, 0); ice->port = pci_resource_start(pci, 0);
ice->profi_port = pci_resource_start(pci, 1); ice->profi_port = pci_resource_start(pci, 1);
if (request_irq(pci->irq, snd_vt1724_interrupt, SA_INTERRUPT|SA_SHIRQ, "ICE1724", (void *) ice)) { if (request_irq(pci->irq, snd_vt1724_interrupt,
SA_INTERRUPT|SA_SHIRQ, "ICE1724", ice)) {
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
snd_vt1724_free(ice); snd_vt1724_free(ice);
return -EIO; return -EIO;
...@@ -2193,7 +2275,9 @@ static int __devinit snd_vt1724_create(snd_card_t * card, ...@@ -2193,7 +2275,9 @@ static int __devinit snd_vt1724_create(snd_card_t * card,
else else
mask = 0; mask = 0;
outb(mask, ICEREG1724(ice, IRQMASK)); outb(mask, ICEREG1724(ice, IRQMASK));
/* don't handle FIFO overrun/underruns (just yet), since they cause machine lockups */ /* don't handle FIFO overrun/underruns (just yet),
* since they cause machine lockups
*/
outb(VT1724_MULTI_FIFO_ERR, ICEMT1724(ice, DMA_INT_MASK)); outb(VT1724_MULTI_FIFO_ERR, ICEMT1724(ice, DMA_INT_MASK));
if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, ice, &ops)) < 0) { if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, ice, &ops)) < 0) {
...@@ -2218,8 +2302,8 @@ static int __devinit snd_vt1724_probe(struct pci_dev *pci, ...@@ -2218,8 +2302,8 @@ static int __devinit snd_vt1724_probe(struct pci_dev *pci,
const struct pci_device_id *pci_id) const struct pci_device_id *pci_id)
{ {
static int dev; static int dev;
snd_card_t *card; struct snd_card *card;
ice1712_t *ice; struct snd_ice1712 *ice;
int pcm_dev = 0, err; int pcm_dev = 0, err;
struct snd_ice1712_card_info **tbl, *c; struct snd_ice1712_card_info **tbl, *c;
......
...@@ -65,30 +65,30 @@ ...@@ -65,30 +65,30 @@
static void juli_ak4114_write(void *private_data, unsigned char reg, unsigned char val) static void juli_ak4114_write(void *private_data, unsigned char reg, unsigned char val)
{ {
snd_vt1724_write_i2c((ice1712_t *)private_data, AK4114_ADDR, reg, val); snd_vt1724_write_i2c((struct snd_ice1712 *)private_data, AK4114_ADDR, reg, val);
} }
static unsigned char juli_ak4114_read(void *private_data, unsigned char reg) static unsigned char juli_ak4114_read(void *private_data, unsigned char reg)
{ {
return snd_vt1724_read_i2c((ice1712_t *)private_data, AK4114_ADDR, reg); return snd_vt1724_read_i2c((struct snd_ice1712 *)private_data, AK4114_ADDR, reg);
} }
/* /*
* AK4358 section * AK4358 section
*/ */
static void juli_akm_lock(akm4xxx_t *ak, int chip) static void juli_akm_lock(struct snd_akm4xxx *ak, int chip)
{ {
} }
static void juli_akm_unlock(akm4xxx_t *ak, int chip) static void juli_akm_unlock(struct snd_akm4xxx *ak, int chip)
{ {
} }
static void juli_akm_write(akm4xxx_t *ak, int chip, static void juli_akm_write(struct snd_akm4xxx *ak, int chip,
unsigned char addr, unsigned char data) unsigned char addr, unsigned char data)
{ {
ice1712_t *ice = ak->private_data[0]; struct snd_ice1712 *ice = ak->private_data[0];
snd_assert(chip == 0, return); snd_assert(chip == 0, return);
snd_vt1724_write_i2c(ice, AK4358_ADDR, addr, data); snd_vt1724_write_i2c(ice, AK4358_ADDR, addr, data);
...@@ -97,7 +97,7 @@ static void juli_akm_write(akm4xxx_t *ak, int chip, ...@@ -97,7 +97,7 @@ static void juli_akm_write(akm4xxx_t *ak, int chip,
/* /*
* change the rate of envy24HT, AK4358 * change the rate of envy24HT, AK4358
*/ */
static void juli_akm_set_rate_val(akm4xxx_t *ak, unsigned int rate) static void juli_akm_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate)
{ {
unsigned char old, tmp, dfs; unsigned char old, tmp, dfs;
...@@ -125,7 +125,7 @@ static void juli_akm_set_rate_val(akm4xxx_t *ak, unsigned int rate) ...@@ -125,7 +125,7 @@ static void juli_akm_set_rate_val(akm4xxx_t *ak, unsigned int rate)
snd_akm4xxx_reset(ak, 0); snd_akm4xxx_reset(ak, 0);
} }
static akm4xxx_t akm_juli_dac __devinitdata = { static struct snd_akm4xxx akm_juli_dac __devinitdata = {
.type = SND_AK4358, .type = SND_AK4358,
.num_dacs = 2, .num_dacs = 2,
.ops = { .ops = {
...@@ -136,7 +136,7 @@ static akm4xxx_t akm_juli_dac __devinitdata = { ...@@ -136,7 +136,7 @@ static akm4xxx_t akm_juli_dac __devinitdata = {
} }
}; };
static int __devinit juli_add_controls(ice1712_t *ice) static int __devinit juli_add_controls(struct snd_ice1712 *ice)
{ {
return snd_ice1712_akm4xxx_build_controls(ice); return snd_ice1712_akm4xxx_build_controls(ice);
} }
...@@ -144,7 +144,7 @@ static int __devinit juli_add_controls(ice1712_t *ice) ...@@ -144,7 +144,7 @@ static int __devinit juli_add_controls(ice1712_t *ice)
/* /*
* initialize the chip * initialize the chip
*/ */
static int __devinit juli_init(ice1712_t *ice) static int __devinit juli_init(struct snd_ice1712 *ice)
{ {
static unsigned char ak4114_init_vals[] = { static unsigned char ak4114_init_vals[] = {
/* AK4117_REG_PWRDN */ AK4114_RST | AK4114_PWN | AK4114_OCKS0 | AK4114_OCKS1, /* AK4117_REG_PWRDN */ AK4114_RST | AK4114_PWN | AK4114_OCKS0 | AK4114_OCKS1,
...@@ -158,7 +158,7 @@ static int __devinit juli_init(ice1712_t *ice) ...@@ -158,7 +158,7 @@ static int __devinit juli_init(ice1712_t *ice)
0x41, 0x02, 0x2c, 0x00, 0x00 0x41, 0x02, 0x2c, 0x00, 0x00
}; };
int err; int err;
akm4xxx_t *ak; struct snd_akm4xxx *ak;
#if 0 #if 0
for (err = 0; err < 0x20; err++) for (err = 0; err < 0x20; err++)
...@@ -189,7 +189,7 @@ static int __devinit juli_init(ice1712_t *ice) ...@@ -189,7 +189,7 @@ static int __devinit juli_init(ice1712_t *ice)
ice->num_total_dacs = 2; ice->num_total_dacs = 2;
ice->num_total_adcs = 2; ice->num_total_adcs = 2;
ak = ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); ak = ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
if (! ak) if (! ak)
return -ENOMEM; return -ENOMEM;
ice->akm_codecs = 1; ice->akm_codecs = 1;
......
...@@ -86,7 +86,7 @@ static unsigned char wm_vol[256] = { ...@@ -86,7 +86,7 @@ static unsigned char wm_vol[256] = {
#define WM_VOL_MAX (sizeof(wm_vol) - 1) #define WM_VOL_MAX (sizeof(wm_vol) - 1)
#define WM_VOL_MUTE 0x8000 #define WM_VOL_MUTE 0x8000
static akm4xxx_t akm_phase22 __devinitdata = { static struct snd_akm4xxx akm_phase22 __devinitdata = {
.type = SND_AK4524, .type = SND_AK4524,
.num_dacs = 2, .num_dacs = 2,
.num_adcs = 2, .num_adcs = 2,
...@@ -104,9 +104,9 @@ static struct snd_ak4xxx_private akm_phase22_priv __devinitdata = { ...@@ -104,9 +104,9 @@ static struct snd_ak4xxx_private akm_phase22_priv __devinitdata = {
.mask_flags = 0, .mask_flags = 0,
}; };
static int __devinit phase22_init(ice1712_t *ice) static int __devinit phase22_init(struct snd_ice1712 *ice)
{ {
akm4xxx_t *ak; struct snd_akm4xxx *ak;
int err; int err;
// Configure DAC/ADC description for generic part of ice1724 // Configure DAC/ADC description for generic part of ice1724
...@@ -122,7 +122,7 @@ static int __devinit phase22_init(ice1712_t *ice) ...@@ -122,7 +122,7 @@ static int __devinit phase22_init(ice1712_t *ice)
} }
// Initialize analog chips // Initialize analog chips
ak = ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); ak = ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
if (! ak) if (! ak)
return -ENOMEM; return -ENOMEM;
ice->akm_codecs = 1; ice->akm_codecs = 1;
...@@ -136,7 +136,7 @@ static int __devinit phase22_init(ice1712_t *ice) ...@@ -136,7 +136,7 @@ static int __devinit phase22_init(ice1712_t *ice)
return 0; return 0;
} }
static int __devinit phase22_add_controls(ice1712_t *ice) static int __devinit phase22_add_controls(struct snd_ice1712 *ice)
{ {
int err = 0; int err = 0;
...@@ -184,7 +184,7 @@ static unsigned char phase28_eeprom[] __devinitdata = { ...@@ -184,7 +184,7 @@ static unsigned char phase28_eeprom[] __devinitdata = {
/* /*
* write data in the SPI mode * write data in the SPI mode
*/ */
static void phase28_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data, int bits) static void phase28_spi_write(struct snd_ice1712 *ice, unsigned int cs, unsigned int data, int bits)
{ {
unsigned int tmp; unsigned int tmp;
int i; int i;
...@@ -225,7 +225,7 @@ static void phase28_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data ...@@ -225,7 +225,7 @@ static void phase28_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data
/* /*
* get the current register value of WM codec * get the current register value of WM codec
*/ */
static unsigned short wm_get(ice1712_t *ice, int reg) static unsigned short wm_get(struct snd_ice1712 *ice, int reg)
{ {
reg <<= 1; reg <<= 1;
return ((unsigned short)ice->akm[0].images[reg] << 8) | return ((unsigned short)ice->akm[0].images[reg] << 8) |
...@@ -235,7 +235,7 @@ static unsigned short wm_get(ice1712_t *ice, int reg) ...@@ -235,7 +235,7 @@ static unsigned short wm_get(ice1712_t *ice, int reg)
/* /*
* set the register value of WM codec * set the register value of WM codec
*/ */
static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) static void wm_put_nocache(struct snd_ice1712 *ice, int reg, unsigned short val)
{ {
phase28_spi_write(ice, PHASE28_WM_CS, (reg << 9) | (val & 0x1ff), 16); phase28_spi_write(ice, PHASE28_WM_CS, (reg << 9) | (val & 0x1ff), 16);
} }
...@@ -243,7 +243,7 @@ static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) ...@@ -243,7 +243,7 @@ static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val)
/* /*
* set the register value of WM codec and remember it * set the register value of WM codec and remember it
*/ */
static void wm_put(ice1712_t *ice, int reg, unsigned short val) static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val)
{ {
wm_put_nocache(ice, reg, val); wm_put_nocache(ice, reg, val);
reg <<= 1; reg <<= 1;
...@@ -251,7 +251,7 @@ static void wm_put(ice1712_t *ice, int reg, unsigned short val) ...@@ -251,7 +251,7 @@ static void wm_put(ice1712_t *ice, int reg, unsigned short val)
ice->akm[0].images[reg + 1] = val; ice->akm[0].images[reg + 1] = val;
} }
static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, unsigned short master) static void wm_set_vol(struct snd_ice1712 *ice, unsigned int index, unsigned short vol, unsigned short master)
{ {
unsigned char nvol; unsigned char nvol;
...@@ -269,9 +269,9 @@ static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, u ...@@ -269,9 +269,9 @@ static void wm_set_vol(ice1712_t *ice, unsigned int index, unsigned short vol, u
*/ */
#define wm_pcm_mute_info phase28_mono_bool_info #define wm_pcm_mute_info phase28_mono_bool_info
static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_pcm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
ucontrol->value.integer.value[0] = (wm_get(ice, WM_MUTE) & 0x10) ? 0 : 1; ucontrol->value.integer.value[0] = (wm_get(ice, WM_MUTE) & 0x10) ? 0 : 1;
...@@ -279,9 +279,9 @@ static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont ...@@ -279,9 +279,9 @@ static int wm_pcm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucont
return 0; return 0;
} }
static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int wm_pcm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short nval, oval; unsigned short nval, oval;
int change; int change;
...@@ -298,7 +298,7 @@ static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco ...@@ -298,7 +298,7 @@ static int wm_pcm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uco
/* /*
* Master volume attenuation mixer control * Master volume attenuation mixer control
*/ */
static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_master_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 2; uinfo->count = 2;
...@@ -307,18 +307,18 @@ static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uin ...@@ -307,18 +307,18 @@ static int wm_master_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uin
return 0; return 0;
} }
static int wm_master_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_master_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i; int i;
for (i=0; i<2; i++) for (i=0; i<2; i++)
ucontrol->value.integer.value[i] = ice->spec.phase28.master[i] & ~WM_VOL_MUTE; ucontrol->value.integer.value[i] = ice->spec.phase28.master[i] & ~WM_VOL_MUTE;
return 0; return 0;
} }
static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_master_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int ch, change = 0; int ch, change = 0;
snd_ice1712_save_gpio_status(ice); snd_ice1712_save_gpio_status(ice);
...@@ -338,7 +338,7 @@ static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco ...@@ -338,7 +338,7 @@ static int wm_master_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco
return change; return change;
} }
static int __devinit phase28_init(ice1712_t *ice) static int __devinit phase28_init(struct snd_ice1712 *ice)
{ {
static unsigned short wm_inits_phase28[] = { static unsigned short wm_inits_phase28[] = {
/* These come first to reduce init pop noise */ /* These come first to reduce init pop noise */
...@@ -378,7 +378,7 @@ static int __devinit phase28_init(ice1712_t *ice) ...@@ -378,7 +378,7 @@ static int __devinit phase28_init(ice1712_t *ice)
}; };
unsigned int tmp; unsigned int tmp;
akm4xxx_t *ak; struct snd_akm4xxx *ak;
unsigned short *p; unsigned short *p;
int i; int i;
...@@ -386,7 +386,7 @@ static int __devinit phase28_init(ice1712_t *ice) ...@@ -386,7 +386,7 @@ static int __devinit phase28_init(ice1712_t *ice)
ice->num_total_adcs = 2; ice->num_total_adcs = 2;
// Initialize analog chips // Initialize analog chips
ak = ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); ak = ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
if (!ak) if (!ak)
return -ENOMEM; return -ENOMEM;
ice->akm_codecs = 1; ice->akm_codecs = 1;
...@@ -427,7 +427,7 @@ static int __devinit phase28_init(ice1712_t *ice) ...@@ -427,7 +427,7 @@ static int __devinit phase28_init(ice1712_t *ice)
/* /*
* DAC volume attenuation mixer control * DAC volume attenuation mixer control
*/ */
static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
int voices = kcontrol->private_value >> 8; int voices = kcontrol->private_value >> 8;
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
...@@ -437,9 +437,9 @@ static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -437,9 +437,9 @@ static int wm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i, ofs, voices; int i, ofs, voices;
voices = kcontrol->private_value >> 8; voices = kcontrol->private_value >> 8;
...@@ -449,9 +449,9 @@ static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) ...@@ -449,9 +449,9 @@ static int wm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
return 0; return 0;
} }
static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i, idx, ofs, voices; int i, idx, ofs, voices;
int change = 0; int change = 0;
...@@ -475,7 +475,7 @@ static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) ...@@ -475,7 +475,7 @@ static int wm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
/* /*
* WM8770 mute control * WM8770 mute control
*/ */
static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { static int wm_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = kcontrol->private_value >> 8; uinfo->count = kcontrol->private_value >> 8;
uinfo->value.integer.min = 0; uinfo->value.integer.min = 0;
...@@ -483,9 +483,9 @@ static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { ...@@ -483,9 +483,9 @@ static int wm_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) {
return 0; return 0;
} }
static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int voices, ofs, i; int voices, ofs, i;
voices = kcontrol->private_value >> 8; voices = kcontrol->private_value >> 8;
...@@ -496,9 +496,9 @@ static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) ...@@ -496,9 +496,9 @@ static int wm_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
return 0; return 0;
} }
static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int wm_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int change = 0, voices, ofs, i; int change = 0, voices, ofs, i;
voices = kcontrol->private_value >> 8; voices = kcontrol->private_value >> 8;
...@@ -524,7 +524,7 @@ static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontro ...@@ -524,7 +524,7 @@ static int wm_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontro
/* /*
* WM8770 master mute control * WM8770 master mute control
*/ */
static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) { static int wm_master_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 2; uinfo->count = 2;
uinfo->value.integer.min = 0; uinfo->value.integer.min = 0;
...@@ -532,18 +532,18 @@ static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *ui ...@@ -532,18 +532,18 @@ static int wm_master_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *ui
return 0; return 0;
} }
static int wm_master_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_master_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.integer.value[0] = (ice->spec.phase28.master[0] & WM_VOL_MUTE) ? 0 : 1; ucontrol->value.integer.value[0] = (ice->spec.phase28.master[0] & WM_VOL_MUTE) ? 0 : 1;
ucontrol->value.integer.value[1] = (ice->spec.phase28.master[1] & WM_VOL_MUTE) ? 0 : 1; ucontrol->value.integer.value[1] = (ice->spec.phase28.master[1] & WM_VOL_MUTE) ? 0 : 1;
return 0; return 0;
} }
static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int wm_master_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int change = 0, i; int change = 0, i;
snd_ice1712_save_gpio_status(ice); snd_ice1712_save_gpio_status(ice);
...@@ -570,7 +570,7 @@ static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ...@@ -570,7 +570,7 @@ static int wm_master_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *
#define PCM_0dB 0xff #define PCM_0dB 0xff
#define PCM_RES 128 /* -64dB */ #define PCM_RES 128 /* -64dB */
#define PCM_MIN (PCM_0dB - PCM_RES) #define PCM_MIN (PCM_0dB - PCM_RES)
static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_pcm_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 1; uinfo->count = 1;
...@@ -579,9 +579,9 @@ static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -579,9 +579,9 @@ static int wm_pcm_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_pcm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short val; unsigned short val;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -592,9 +592,9 @@ static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -592,9 +592,9 @@ static int wm_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
return 0; return 0;
} }
static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short ovol, nvol; unsigned short ovol, nvol;
int change = 0; int change = 0;
...@@ -613,7 +613,7 @@ static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -613,7 +613,7 @@ static int wm_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
/* /*
*/ */
static int phase28_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) static int phase28_mono_bool_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -627,16 +627,16 @@ static int phase28_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) ...@@ -627,16 +627,16 @@ static int phase28_mono_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo)
*/ */
#define phase28_deemp_info phase28_mono_bool_info #define phase28_deemp_info phase28_mono_bool_info
static int phase28_deemp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int phase28_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL2) & 0xf) == 0xf; ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL2) & 0xf) == 0xf;
return 0; return 0;
} }
static int phase28_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int phase28_deemp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int temp, temp2; int temp, temp2;
temp2 = temp = wm_get(ice, WM_DAC_CTRL2); temp2 = temp = wm_get(ice, WM_DAC_CTRL2);
if (ucontrol->value.integer.value[0]) if (ucontrol->value.integer.value[0])
...@@ -653,7 +653,7 @@ static int phase28_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco ...@@ -653,7 +653,7 @@ static int phase28_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco
/* /*
* ADC Oversampling * ADC Oversampling
*/ */
static int phase28_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) static int phase28_oversampling_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo)
{ {
static char *texts[2] = { "128x", "64x" }; static char *texts[2] = { "128x", "64x" };
...@@ -668,17 +668,17 @@ static int phase28_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uin ...@@ -668,17 +668,17 @@ static int phase28_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uin
return 0; return 0;
} }
static int phase28_oversampling_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int phase28_oversampling_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.enumerated.item[0] = (wm_get(ice, WM_MASTER) & 0x8) == 0x8; ucontrol->value.enumerated.item[0] = (wm_get(ice, WM_MASTER) & 0x8) == 0x8;
return 0; return 0;
} }
static int phase28_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int phase28_oversampling_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
int temp, temp2; int temp, temp2;
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
temp2 = temp = wm_get(ice, WM_MASTER); temp2 = temp = wm_get(ice, WM_MASTER);
...@@ -694,7 +694,7 @@ static int phase28_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value ...@@ -694,7 +694,7 @@ static int phase28_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value
return 0; return 0;
} }
static snd_kcontrol_new_t phase28_dac_controls[] __devinitdata = { static struct snd_kcontrol_new phase28_dac_controls[] __devinitdata = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "Master Playback Switch", .name = "Master Playback Switch",
...@@ -791,7 +791,7 @@ static snd_kcontrol_new_t phase28_dac_controls[] __devinitdata = { ...@@ -791,7 +791,7 @@ static snd_kcontrol_new_t phase28_dac_controls[] __devinitdata = {
} }
}; };
static snd_kcontrol_new_t wm_controls[] __devinitdata = { static struct snd_kcontrol_new wm_controls[] __devinitdata = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "PCM Playback Switch", .name = "PCM Playback Switch",
...@@ -822,7 +822,7 @@ static snd_kcontrol_new_t wm_controls[] __devinitdata = { ...@@ -822,7 +822,7 @@ static snd_kcontrol_new_t wm_controls[] __devinitdata = {
} }
}; };
static int __devinit phase28_add_controls(ice1712_t *ice) static int __devinit phase28_add_controls(struct snd_ice1712 *ice)
{ {
unsigned int i, counts; unsigned int i, counts;
int err; int err;
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
/* /*
* get the current register value of WM codec * get the current register value of WM codec
*/ */
static unsigned short wm_get(ice1712_t *ice, int reg) static unsigned short wm_get(struct snd_ice1712 *ice, int reg)
{ {
reg <<= 1; reg <<= 1;
return ((unsigned short)ice->akm[0].images[reg] << 8) | return ((unsigned short)ice->akm[0].images[reg] << 8) |
...@@ -86,14 +86,14 @@ static unsigned short wm_get(ice1712_t *ice, int reg) ...@@ -86,14 +86,14 @@ static unsigned short wm_get(ice1712_t *ice, int reg)
/* /*
* set the register value of WM codec and remember it * set the register value of WM codec and remember it
*/ */
static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val) static void wm_put_nocache(struct snd_ice1712 *ice, int reg, unsigned short val)
{ {
unsigned short cval; unsigned short cval;
cval = (reg << 9) | val; cval = (reg << 9) | val;
snd_vt1724_write_i2c(ice, WM_DEV, cval >> 8, cval & 0xff); snd_vt1724_write_i2c(ice, WM_DEV, cval >> 8, cval & 0xff);
} }
static void wm_put(ice1712_t *ice, int reg, unsigned short val) static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val)
{ {
wm_put_nocache(ice, reg, val); wm_put_nocache(ice, reg, val);
reg <<= 1; reg <<= 1;
...@@ -109,7 +109,7 @@ static void wm_put(ice1712_t *ice, int reg, unsigned short val) ...@@ -109,7 +109,7 @@ static void wm_put(ice1712_t *ice, int reg, unsigned short val)
#define DAC_RES 128 #define DAC_RES 128
#define DAC_MIN (DAC_0dB - DAC_RES) #define DAC_MIN (DAC_0dB - DAC_RES)
static int wm_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_dac_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 2; uinfo->count = 2;
...@@ -118,9 +118,9 @@ static int wm_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -118,9 +118,9 @@ static int wm_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_dac_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short val; unsigned short val;
int i; int i;
...@@ -134,9 +134,9 @@ static int wm_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -134,9 +134,9 @@ static int wm_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
return 0; return 0;
} }
static int wm_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_dac_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short oval, nval; unsigned short oval, nval;
int i, idx, change = 0; int i, idx, change = 0;
...@@ -164,7 +164,7 @@ static int wm_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -164,7 +164,7 @@ static int wm_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
#define ADC_RES 128 #define ADC_RES 128
#define ADC_MIN (ADC_0dB - ADC_RES) #define ADC_MIN (ADC_0dB - ADC_RES)
static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_adc_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 2; uinfo->count = 2;
...@@ -173,9 +173,9 @@ static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -173,9 +173,9 @@ static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_adc_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short val; unsigned short val;
int i; int i;
...@@ -189,9 +189,9 @@ static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -189,9 +189,9 @@ static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
return 0; return 0;
} }
static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_adc_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short ovol, nvol; unsigned short ovol, nvol;
int i, idx, change = 0; int i, idx, change = 0;
...@@ -213,7 +213,7 @@ static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -213,7 +213,7 @@ static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr
/* /*
* ADC input mux mixer control * ADC input mux mixer control
*/ */
static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_adc_mux_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -222,9 +222,9 @@ static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -222,9 +222,9 @@ static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_adc_mux_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int bit = kcontrol->private_value; int bit = kcontrol->private_value;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -233,9 +233,9 @@ static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont ...@@ -233,9 +233,9 @@ static int wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont
return 0; return 0;
} }
static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_adc_mux_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int bit = kcontrol->private_value; int bit = kcontrol->private_value;
unsigned short oval, nval; unsigned short oval, nval;
int change; int change;
...@@ -257,7 +257,7 @@ static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont ...@@ -257,7 +257,7 @@ static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucont
/* /*
* Analog bypass (In -> Out) * Analog bypass (In -> Out)
*/ */
static int wm_bypass_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_bypass_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -266,9 +266,9 @@ static int wm_bypass_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -266,9 +266,9 @@ static int wm_bypass_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_bypass_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_bypass_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
ucontrol->value.integer.value[0] = (wm_get(ice, WM_OUT_MUX) & 0x04) ? 1 : 0; ucontrol->value.integer.value[0] = (wm_get(ice, WM_OUT_MUX) & 0x04) ? 1 : 0;
...@@ -276,9 +276,9 @@ static int wm_bypass_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -276,9 +276,9 @@ static int wm_bypass_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr
return 0; return 0;
} }
static int wm_bypass_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_bypass_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short val, oval; unsigned short val, oval;
int change = 0; int change = 0;
...@@ -299,7 +299,7 @@ static int wm_bypass_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -299,7 +299,7 @@ static int wm_bypass_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr
/* /*
* Left/Right swap * Left/Right swap
*/ */
static int wm_chswap_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int wm_chswap_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -308,9 +308,9 @@ static int wm_chswap_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -308,9 +308,9 @@ static int wm_chswap_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int wm_chswap_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_chswap_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL1) & 0xf0) != 0x90; ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL1) & 0xf0) != 0x90;
...@@ -318,9 +318,9 @@ static int wm_chswap_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -318,9 +318,9 @@ static int wm_chswap_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr
return 0; return 0;
} }
static int wm_chswap_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int wm_chswap_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned short val, oval; unsigned short val, oval;
int change = 0; int change = 0;
...@@ -343,7 +343,7 @@ static int wm_chswap_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr ...@@ -343,7 +343,7 @@ static int wm_chswap_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontr
/* /*
* write data in the SPI mode * write data in the SPI mode
*/ */
static void set_gpio_bit(ice1712_t *ice, unsigned int bit, int val) static void set_gpio_bit(struct snd_ice1712 *ice, unsigned int bit, int val)
{ {
unsigned int tmp = snd_ice1712_gpio_read(ice); unsigned int tmp = snd_ice1712_gpio_read(ice);
if (val) if (val)
...@@ -353,7 +353,7 @@ static void set_gpio_bit(ice1712_t *ice, unsigned int bit, int val) ...@@ -353,7 +353,7 @@ static void set_gpio_bit(ice1712_t *ice, unsigned int bit, int val)
snd_ice1712_gpio_write(ice, tmp); snd_ice1712_gpio_write(ice, tmp);
} }
static void spi_send_byte(ice1712_t *ice, unsigned char data) static void spi_send_byte(struct snd_ice1712 *ice, unsigned char data)
{ {
int i; int i;
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
...@@ -367,7 +367,7 @@ static void spi_send_byte(ice1712_t *ice, unsigned char data) ...@@ -367,7 +367,7 @@ static void spi_send_byte(ice1712_t *ice, unsigned char data)
} }
} }
static unsigned int spi_read_byte(ice1712_t *ice) static unsigned int spi_read_byte(struct snd_ice1712 *ice)
{ {
int i; int i;
unsigned int val = 0; unsigned int val = 0;
...@@ -386,7 +386,7 @@ static unsigned int spi_read_byte(ice1712_t *ice) ...@@ -386,7 +386,7 @@ static unsigned int spi_read_byte(ice1712_t *ice)
} }
static void spi_write(ice1712_t *ice, unsigned int dev, unsigned int reg, unsigned int data) static void spi_write(struct snd_ice1712 *ice, unsigned int dev, unsigned int reg, unsigned int data)
{ {
snd_ice1712_gpio_set_dir(ice, PONTIS_CS_CS|PONTIS_CS_WDATA|PONTIS_CS_CLK); snd_ice1712_gpio_set_dir(ice, PONTIS_CS_CS|PONTIS_CS_WDATA|PONTIS_CS_CLK);
snd_ice1712_gpio_set_mask(ice, ~(PONTIS_CS_CS|PONTIS_CS_WDATA|PONTIS_CS_CLK)); snd_ice1712_gpio_set_mask(ice, ~(PONTIS_CS_CS|PONTIS_CS_WDATA|PONTIS_CS_CLK));
...@@ -402,7 +402,7 @@ static void spi_write(ice1712_t *ice, unsigned int dev, unsigned int reg, unsign ...@@ -402,7 +402,7 @@ static void spi_write(ice1712_t *ice, unsigned int dev, unsigned int reg, unsign
snd_ice1712_gpio_set_dir(ice, ice->gpio.direction); snd_ice1712_gpio_set_dir(ice, ice->gpio.direction);
} }
static unsigned int spi_read(ice1712_t *ice, unsigned int dev, unsigned int reg) static unsigned int spi_read(struct snd_ice1712 *ice, unsigned int dev, unsigned int reg)
{ {
unsigned int val; unsigned int val;
snd_ice1712_gpio_set_dir(ice, PONTIS_CS_CS|PONTIS_CS_WDATA|PONTIS_CS_CLK); snd_ice1712_gpio_set_dir(ice, PONTIS_CS_CS|PONTIS_CS_WDATA|PONTIS_CS_CLK);
...@@ -429,7 +429,7 @@ static unsigned int spi_read(ice1712_t *ice, unsigned int dev, unsigned int reg) ...@@ -429,7 +429,7 @@ static unsigned int spi_read(ice1712_t *ice, unsigned int dev, unsigned int reg)
/* /*
* SPDIF input source * SPDIF input source
*/ */
static int cs_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int cs_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
static char *texts[] = { static char *texts[] = {
"Coax", /* RXP0 */ "Coax", /* RXP0 */
...@@ -445,9 +445,9 @@ static int cs_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) ...@@ -445,9 +445,9 @@ static int cs_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int cs_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int cs_source_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
ucontrol->value.enumerated.item[0] = ice->gpio.saved[0]; ucontrol->value.enumerated.item[0] = ice->gpio.saved[0];
...@@ -455,9 +455,9 @@ static int cs_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro ...@@ -455,9 +455,9 @@ static int cs_source_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro
return 0; return 0;
} }
static int cs_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int cs_source_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned char val; unsigned char val;
int change = 0; int change = 0;
...@@ -476,7 +476,7 @@ static int cs_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro ...@@ -476,7 +476,7 @@ static int cs_source_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro
/* /*
* GPIO controls * GPIO controls
*/ */
static int pontis_gpio_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int pontis_gpio_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 1; uinfo->count = 1;
...@@ -485,9 +485,9 @@ static int pontis_gpio_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * ...@@ -485,9 +485,9 @@ static int pontis_gpio_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *
return 0; return 0;
} }
static int pontis_gpio_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int pontis_gpio_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
/* 4-7 reserved */ /* 4-7 reserved */
ucontrol->value.integer.value[0] = (~ice->gpio.write_mask & 0xffff) | 0x00f0; ucontrol->value.integer.value[0] = (~ice->gpio.write_mask & 0xffff) | 0x00f0;
...@@ -495,9 +495,9 @@ static int pontis_gpio_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t ...@@ -495,9 +495,9 @@ static int pontis_gpio_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
return 0; return 0;
} }
static int pontis_gpio_mask_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int pontis_gpio_mask_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned int val; unsigned int val;
int changed; int changed;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -509,9 +509,9 @@ static int pontis_gpio_mask_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t ...@@ -509,9 +509,9 @@ static int pontis_gpio_mask_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
return changed; return changed;
} }
static int pontis_gpio_dir_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int pontis_gpio_dir_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
/* 4-7 reserved */ /* 4-7 reserved */
ucontrol->value.integer.value[0] = ice->gpio.direction & 0xff0f; ucontrol->value.integer.value[0] = ice->gpio.direction & 0xff0f;
...@@ -519,9 +519,9 @@ static int pontis_gpio_dir_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ...@@ -519,9 +519,9 @@ static int pontis_gpio_dir_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *
return 0; return 0;
} }
static int pontis_gpio_dir_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol) static int pontis_gpio_dir_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned int val; unsigned int val;
int changed; int changed;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -533,9 +533,9 @@ static int pontis_gpio_dir_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ...@@ -533,9 +533,9 @@ static int pontis_gpio_dir_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *
return changed; return changed;
} }
static int pontis_gpio_data_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int pontis_gpio_data_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
snd_ice1712_gpio_set_dir(ice, ice->gpio.direction); snd_ice1712_gpio_set_dir(ice, ice->gpio.direction);
snd_ice1712_gpio_set_mask(ice, ice->gpio.write_mask); snd_ice1712_gpio_set_mask(ice, ice->gpio.write_mask);
...@@ -544,9 +544,9 @@ static int pontis_gpio_data_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ...@@ -544,9 +544,9 @@ static int pontis_gpio_data_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *
return 0; return 0;
} }
static int pontis_gpio_data_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int pontis_gpio_data_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned int val, nval; unsigned int val, nval;
int changed = 0; int changed = 0;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -566,7 +566,7 @@ static int pontis_gpio_data_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ...@@ -566,7 +566,7 @@ static int pontis_gpio_data_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *
* mixers * mixers
*/ */
static snd_kcontrol_new_t pontis_controls[] __devinitdata = { static struct snd_kcontrol_new pontis_controls[] __devinitdata = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "PCM Playback Volume", .name = "PCM Playback Volume",
...@@ -646,9 +646,9 @@ static snd_kcontrol_new_t pontis_controls[] __devinitdata = { ...@@ -646,9 +646,9 @@ static snd_kcontrol_new_t pontis_controls[] __devinitdata = {
/* /*
* WM codec registers * WM codec registers
*/ */
static void wm_proc_regs_write(snd_info_entry_t *entry, snd_info_buffer_t *buffer) static void wm_proc_regs_write(struct snd_info_entry *entry, struct snd_info_buffer *buffer)
{ {
ice1712_t *ice = (ice1712_t *)entry->private_data; struct snd_ice1712 *ice = (struct snd_ice1712 *)entry->private_data;
char line[64]; char line[64];
unsigned int reg, val; unsigned int reg, val;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -661,9 +661,9 @@ static void wm_proc_regs_write(snd_info_entry_t *entry, snd_info_buffer_t *buffe ...@@ -661,9 +661,9 @@ static void wm_proc_regs_write(snd_info_entry_t *entry, snd_info_buffer_t *buffe
up(&ice->gpio_mutex); up(&ice->gpio_mutex);
} }
static void wm_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) static void wm_proc_regs_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer)
{ {
ice1712_t *ice = (ice1712_t *)entry->private_data; struct snd_ice1712 *ice = (struct snd_ice1712 *)entry->private_data;
int reg, val; int reg, val;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -674,9 +674,9 @@ static void wm_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer ...@@ -674,9 +674,9 @@ static void wm_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer
up(&ice->gpio_mutex); up(&ice->gpio_mutex);
} }
static void wm_proc_init(ice1712_t *ice) static void wm_proc_init(struct snd_ice1712 *ice)
{ {
snd_info_entry_t *entry; struct snd_info_entry *entry;
if (! snd_card_proc_new(ice->card, "wm_codec", &entry)) { if (! snd_card_proc_new(ice->card, "wm_codec", &entry)) {
snd_info_set_text_ops(entry, ice, 1024, wm_proc_regs_read); snd_info_set_text_ops(entry, ice, 1024, wm_proc_regs_read);
entry->mode |= S_IWUSR; entry->mode |= S_IWUSR;
...@@ -685,9 +685,9 @@ static void wm_proc_init(ice1712_t *ice) ...@@ -685,9 +685,9 @@ static void wm_proc_init(ice1712_t *ice)
} }
} }
static void cs_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) static void cs_proc_regs_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer)
{ {
ice1712_t *ice = (ice1712_t *)entry->private_data; struct snd_ice1712 *ice = (struct snd_ice1712 *)entry->private_data;
int reg, val; int reg, val;
down(&ice->gpio_mutex); down(&ice->gpio_mutex);
...@@ -700,16 +700,16 @@ static void cs_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer ...@@ -700,16 +700,16 @@ static void cs_proc_regs_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer
up(&ice->gpio_mutex); up(&ice->gpio_mutex);
} }
static void cs_proc_init(ice1712_t *ice) static void cs_proc_init(struct snd_ice1712 *ice)
{ {
snd_info_entry_t *entry; struct snd_info_entry *entry;
if (! snd_card_proc_new(ice->card, "cs_codec", &entry)) { if (! snd_card_proc_new(ice->card, "cs_codec", &entry)) {
snd_info_set_text_ops(entry, ice, 1024, cs_proc_regs_read); snd_info_set_text_ops(entry, ice, 1024, cs_proc_regs_read);
} }
} }
static int __devinit pontis_add_controls(ice1712_t *ice) static int __devinit pontis_add_controls(struct snd_ice1712 *ice)
{ {
unsigned int i; unsigned int i;
int err; int err;
...@@ -730,7 +730,7 @@ static int __devinit pontis_add_controls(ice1712_t *ice) ...@@ -730,7 +730,7 @@ static int __devinit pontis_add_controls(ice1712_t *ice)
/* /*
* initialize the chip * initialize the chip
*/ */
static int __devinit pontis_init(ice1712_t *ice) static int __devinit pontis_init(struct snd_ice1712 *ice)
{ {
static unsigned short wm_inits[] = { static unsigned short wm_inits[] = {
/* These come first to reduce init pop noise */ /* These come first to reduce init pop noise */
...@@ -781,7 +781,7 @@ static int __devinit pontis_init(ice1712_t *ice) ...@@ -781,7 +781,7 @@ static int __devinit pontis_init(ice1712_t *ice)
ice->num_total_adcs = 2; ice->num_total_adcs = 2;
/* to remeber the register values */ /* to remeber the register values */
ice->akm = kzalloc(sizeof(akm4xxx_t), GFP_KERNEL); ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
if (! ice->akm) if (! ice->akm)
return -ENOMEM; return -ENOMEM;
ice->akm_codecs = 1; ice->akm_codecs = 1;
......
...@@ -36,12 +36,12 @@ ...@@ -36,12 +36,12 @@
#include "prodigy192.h" #include "prodigy192.h"
#include "stac946x.h" #include "stac946x.h"
static inline void stac9460_put(ice1712_t *ice, int reg, unsigned char val) static inline void stac9460_put(struct snd_ice1712 *ice, int reg, unsigned char val)
{ {
snd_vt1724_write_i2c(ice, PRODIGY192_STAC9460_ADDR, reg, val); snd_vt1724_write_i2c(ice, PRODIGY192_STAC9460_ADDR, reg, val);
} }
static inline unsigned char stac9460_get(ice1712_t *ice, int reg) static inline unsigned char stac9460_get(struct snd_ice1712 *ice, int reg)
{ {
return snd_vt1724_read_i2c(ice, PRODIGY192_STAC9460_ADDR, reg); return snd_vt1724_read_i2c(ice, PRODIGY192_STAC9460_ADDR, reg);
} }
...@@ -49,7 +49,7 @@ static inline unsigned char stac9460_get(ice1712_t *ice, int reg) ...@@ -49,7 +49,7 @@ static inline unsigned char stac9460_get(ice1712_t *ice, int reg)
/* /*
* DAC mute control * DAC mute control
*/ */
static int stac9460_dac_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int stac9460_dac_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -58,9 +58,9 @@ static int stac9460_dac_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t ...@@ -58,9 +58,9 @@ static int stac9460_dac_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t
return 0; return 0;
} }
static int stac9460_dac_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int stac9460_dac_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned char val; unsigned char val;
int idx; int idx;
...@@ -73,9 +73,9 @@ static int stac9460_dac_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t ...@@ -73,9 +73,9 @@ static int stac9460_dac_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
return 0; return 0;
} }
static int stac9460_dac_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int stac9460_dac_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned char new, old; unsigned char new, old;
int idx; int idx;
int change; int change;
...@@ -96,7 +96,7 @@ static int stac9460_dac_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t ...@@ -96,7 +96,7 @@ static int stac9460_dac_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
/* /*
* DAC volume attenuation mixer control * DAC volume attenuation mixer control
*/ */
static int stac9460_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int stac9460_dac_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 1; uinfo->count = 1;
...@@ -105,9 +105,9 @@ static int stac9460_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * ...@@ -105,9 +105,9 @@ static int stac9460_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *
return 0; return 0;
} }
static int stac9460_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int stac9460_dac_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int idx; int idx;
unsigned char vol; unsigned char vol;
...@@ -121,9 +121,9 @@ static int stac9460_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ...@@ -121,9 +121,9 @@ static int stac9460_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *
return 0; return 0;
} }
static int stac9460_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int stac9460_dac_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int idx; int idx;
unsigned char tmp, ovol, nvol; unsigned char tmp, ovol, nvol;
int change; int change;
...@@ -145,7 +145,7 @@ static int stac9460_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ...@@ -145,7 +145,7 @@ static int stac9460_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *
/* /*
* ADC mute control * ADC mute control
*/ */
static int stac9460_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int stac9460_adc_mute_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 2; uinfo->count = 2;
...@@ -154,9 +154,9 @@ static int stac9460_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t ...@@ -154,9 +154,9 @@ static int stac9460_adc_mute_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t
return 0; return 0;
} }
static int stac9460_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int stac9460_adc_mute_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned char val; unsigned char val;
int i; int i;
...@@ -168,9 +168,9 @@ static int stac9460_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t ...@@ -168,9 +168,9 @@ static int stac9460_adc_mute_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
return 0; return 0;
} }
static int stac9460_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int stac9460_adc_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
unsigned char new, old; unsigned char new, old;
int i, reg; int i, reg;
int change; int change;
...@@ -190,7 +190,7 @@ static int stac9460_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t ...@@ -190,7 +190,7 @@ static int stac9460_adc_mute_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
/* /*
* ADC gain mixer control * ADC gain mixer control
*/ */
static int stac9460_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) static int stac9460_adc_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 2; uinfo->count = 2;
...@@ -199,9 +199,9 @@ static int stac9460_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * ...@@ -199,9 +199,9 @@ static int stac9460_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *
return 0; return 0;
} }
static int stac9460_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int stac9460_adc_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i, reg; int i, reg;
unsigned char vol; unsigned char vol;
...@@ -214,9 +214,9 @@ static int stac9460_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ...@@ -214,9 +214,9 @@ static int stac9460_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *
return 0; return 0;
} }
static int stac9460_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int stac9460_adc_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int i, reg; int i, reg;
unsigned char ovol, nvol; unsigned char ovol, nvol;
int change; int change;
...@@ -237,7 +237,7 @@ static int stac9460_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ...@@ -237,7 +237,7 @@ static int stac9460_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *
/* /*
* Headphone Amplifier * Headphone Amplifier
*/ */
static int aureon_set_headphone_amp(ice1712_t *ice, int enable) static int aureon_set_headphone_amp(struct snd_ice1712 *ice, int enable)
{ {
unsigned int tmp, tmp2; unsigned int tmp, tmp2;
...@@ -253,14 +253,14 @@ static int aureon_set_headphone_amp(ice1712_t *ice, int enable) ...@@ -253,14 +253,14 @@ static int aureon_set_headphone_amp(ice1712_t *ice, int enable)
return 0; return 0;
} }
static int aureon_get_headphone_amp(ice1712_t *ice) static int aureon_get_headphone_amp(struct snd_ice1712 *ice)
{ {
unsigned int tmp = snd_ice1712_gpio_read(ice); unsigned int tmp = snd_ice1712_gpio_read(ice);
return ( tmp & AUREON_HP_SEL )!= 0; return ( tmp & AUREON_HP_SEL )!= 0;
} }
static int aureon_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) static int aureon_bool_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -269,18 +269,18 @@ static int aureon_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) ...@@ -269,18 +269,18 @@ static int aureon_bool_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo)
return 0; return 0;
} }
static int aureon_hpamp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_hpamp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.integer.value[0] = aureon_get_headphone_amp(ice); ucontrol->value.integer.value[0] = aureon_get_headphone_amp(ice);
return 0; return 0;
} }
static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_hpamp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
return aureon_set_headphone_amp(ice,ucontrol->value.integer.value[0]); return aureon_set_headphone_amp(ice,ucontrol->value.integer.value[0]);
} }
...@@ -288,16 +288,16 @@ static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon ...@@ -288,16 +288,16 @@ static int aureon_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon
/* /*
* Deemphasis * Deemphasis
*/ */
static int aureon_deemp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_deemp_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL2) & 0xf) == 0xf; ucontrol->value.integer.value[0] = (wm_get(ice, WM_DAC_CTRL2) & 0xf) == 0xf;
return 0; return 0;
} }
static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_deemp_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
int temp, temp2; int temp, temp2;
temp2 = temp = wm_get(ice, WM_DAC_CTRL2); temp2 = temp = wm_get(ice, WM_DAC_CTRL2);
if (ucontrol->value.integer.value[0]) if (ucontrol->value.integer.value[0])
...@@ -314,7 +314,7 @@ static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon ...@@ -314,7 +314,7 @@ static int aureon_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucon
/* /*
* ADC Oversampling * ADC Oversampling
*/ */
static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo) static int aureon_oversampling_info(struct snd_kcontrol *k, struct snd_ctl_elem_info *uinfo)
{ {
static char *texts[2] = { "128x", "64x" }; static char *texts[2] = { "128x", "64x" };
...@@ -329,17 +329,17 @@ static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinf ...@@ -329,17 +329,17 @@ static int aureon_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinf
return 0; return 0;
} }
static int aureon_oversampling_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_oversampling_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
ucontrol->value.enumerated.item[0] = (wm_get(ice, WM_MASTER) & 0x8) == 0x8; ucontrol->value.enumerated.item[0] = (wm_get(ice, WM_MASTER) & 0x8) == 0x8;
return 0; return 0;
} }
static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) static int aureon_oversampling_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
int temp, temp2; int temp, temp2;
ice1712_t *ice = snd_kcontrol_chip(kcontrol); struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
temp2 = temp = wm_get(ice, WM_MASTER); temp2 = temp = wm_get(ice, WM_MASTER);
...@@ -360,7 +360,7 @@ static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_ ...@@ -360,7 +360,7 @@ static int aureon_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_
* mixers * mixers
*/ */
static snd_kcontrol_new_t stac_controls[] __devinitdata = { static struct snd_kcontrol_new stac_controls[] __devinitdata = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "Master Playback Switch", .name = "Master Playback Switch",
...@@ -442,7 +442,7 @@ static snd_kcontrol_new_t stac_controls[] __devinitdata = { ...@@ -442,7 +442,7 @@ static snd_kcontrol_new_t stac_controls[] __devinitdata = {
#endif #endif
}; };
static int __devinit prodigy192_add_controls(ice1712_t *ice) static int __devinit prodigy192_add_controls(struct snd_ice1712 *ice)
{ {
unsigned int i; unsigned int i;
int err; int err;
...@@ -459,7 +459,7 @@ static int __devinit prodigy192_add_controls(ice1712_t *ice) ...@@ -459,7 +459,7 @@ static int __devinit prodigy192_add_controls(ice1712_t *ice)
/* /*
* initialize the chip * initialize the chip
*/ */
static int __devinit prodigy192_init(ice1712_t *ice) static int __devinit prodigy192_init(struct snd_ice1712 *ice)
{ {
static unsigned short stac_inits_prodigy[] = { static unsigned short stac_inits_prodigy[] = {
STAC946X_RESET, 0, STAC946X_RESET, 0,
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
#include "envy24ht.h" #include "envy24ht.h"
#include "revo.h" #include "revo.h"
static void revo_i2s_mclk_changed(ice1712_t *ice) static void revo_i2s_mclk_changed(struct snd_ice1712 *ice)
{ {
/* assert PRST# to converters; MT05 bit 7 */ /* assert PRST# to converters; MT05 bit 7 */
outb(inb(ICEMT1724(ice, AC97_CMD)) | 0x80, ICEMT1724(ice, AC97_CMD)); outb(inb(ICEMT1724(ice, AC97_CMD)) | 0x80, ICEMT1724(ice, AC97_CMD));
...@@ -45,7 +45,7 @@ static void revo_i2s_mclk_changed(ice1712_t *ice) ...@@ -45,7 +45,7 @@ static void revo_i2s_mclk_changed(ice1712_t *ice)
/* /*
* change the rate of envy24HT, AK4355 and AK4381 * change the rate of envy24HT, AK4355 and AK4381
*/ */
static void revo_set_rate_val(akm4xxx_t *ak, unsigned int rate) static void revo_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate)
{ {
unsigned char old, tmp, dfs; unsigned char old, tmp, dfs;
int reg, shift; int reg, shift;
...@@ -87,7 +87,7 @@ static void revo_set_rate_val(akm4xxx_t *ak, unsigned int rate) ...@@ -87,7 +87,7 @@ static void revo_set_rate_val(akm4xxx_t *ak, unsigned int rate)
* initialize the chips on M-Audio Revolution cards * initialize the chips on M-Audio Revolution cards
*/ */
static akm4xxx_t akm_revo_front __devinitdata = { static struct snd_akm4xxx akm_revo_front __devinitdata = {
.type = SND_AK4381, .type = SND_AK4381,
.num_dacs = 2, .num_dacs = 2,
.ops = { .ops = {
...@@ -107,7 +107,7 @@ static struct snd_ak4xxx_private akm_revo_front_priv __devinitdata = { ...@@ -107,7 +107,7 @@ static struct snd_ak4xxx_private akm_revo_front_priv __devinitdata = {
.mask_flags = 0, .mask_flags = 0,
}; };
static akm4xxx_t akm_revo_surround __devinitdata = { static struct snd_akm4xxx akm_revo_surround __devinitdata = {
.type = SND_AK4355, .type = SND_AK4355,
.idx_offset = 1, .idx_offset = 1,
.num_dacs = 6, .num_dacs = 6,
...@@ -128,9 +128,9 @@ static struct snd_ak4xxx_private akm_revo_surround_priv __devinitdata = { ...@@ -128,9 +128,9 @@ static struct snd_ak4xxx_private akm_revo_surround_priv __devinitdata = {
.mask_flags = 0, .mask_flags = 0,
}; };
static int __devinit revo_init(ice1712_t *ice) static int __devinit revo_init(struct snd_ice1712 *ice)
{ {
akm4xxx_t *ak; struct snd_akm4xxx *ak;
int err; int err;
/* determine I2C, DACs and ADCs */ /* determine I2C, DACs and ADCs */
...@@ -147,7 +147,7 @@ static int __devinit revo_init(ice1712_t *ice) ...@@ -147,7 +147,7 @@ static int __devinit revo_init(ice1712_t *ice)
ice->gpio.i2s_mclk_changed = revo_i2s_mclk_changed; ice->gpio.i2s_mclk_changed = revo_i2s_mclk_changed;
/* second stage of initialization, analog parts and others */ /* second stage of initialization, analog parts and others */
ak = ice->akm = kcalloc(2, sizeof(akm4xxx_t), GFP_KERNEL); ak = ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL);
if (! ak) if (! ak)
return -ENOMEM; return -ENOMEM;
ice->akm_codecs = 2; ice->akm_codecs = 2;
...@@ -166,7 +166,7 @@ static int __devinit revo_init(ice1712_t *ice) ...@@ -166,7 +166,7 @@ static int __devinit revo_init(ice1712_t *ice)
} }
static int __devinit revo_add_controls(ice1712_t *ice) static int __devinit revo_add_controls(struct snd_ice1712 *ice)
{ {
int err; int err;
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
#include "vt1720_mobo.h" #include "vt1720_mobo.h"
static int __devinit k8x800_init(ice1712_t *ice) static int __devinit k8x800_init(struct snd_ice1712 *ice)
{ {
ice->vt1720 = 1; ice->vt1720 = 1;
...@@ -47,7 +47,7 @@ static int __devinit k8x800_init(ice1712_t *ice) ...@@ -47,7 +47,7 @@ static int __devinit k8x800_init(ice1712_t *ice)
return 0; return 0;
} }
static int __devinit k8x800_add_controls(ice1712_t *ice) static int __devinit k8x800_add_controls(struct snd_ice1712 *ice)
{ {
/* FIXME: needs some quirks for VT1616? */ /* FIXME: needs some quirks for VT1616? */
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment