Merge branch 'for-next' into for-linus
This commit is contained in:
@@ -283,7 +283,7 @@ snd_ad1889_hw_free(struct snd_pcm_substream *substream)
|
||||
return snd_pcm_lib_free_pages(substream);
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_ad1889_playback_hw = {
|
||||
static const struct snd_pcm_hardware snd_ad1889_playback_hw = {
|
||||
.info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_BLOCK_TRANSFER,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
@@ -300,7 +300,7 @@ static struct snd_pcm_hardware snd_ad1889_playback_hw = {
|
||||
/*.fifo_size = 0,*/
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_ad1889_capture_hw = {
|
||||
static const struct snd_pcm_hardware snd_ad1889_capture_hw = {
|
||||
.info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_BLOCK_TRANSFER,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
|
@@ -1540,7 +1540,7 @@ static int snd_ali_close(struct snd_pcm_substream *substream)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_pcm_ops snd_ali_playback_ops = {
|
||||
static const struct snd_pcm_ops snd_ali_playback_ops = {
|
||||
.open = snd_ali_playback_open,
|
||||
.close = snd_ali_playback_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1551,7 +1551,7 @@ static struct snd_pcm_ops snd_ali_playback_ops = {
|
||||
.pointer = snd_ali_playback_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_ali_capture_ops = {
|
||||
static const struct snd_pcm_ops snd_ali_capture_ops = {
|
||||
.open = snd_ali_capture_open,
|
||||
.close = snd_ali_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1626,7 +1626,7 @@ static int snd_ali_modem_capture_open(struct snd_pcm_substream *substream)
|
||||
return snd_ali_modem_open(substream, 1, ALI_MODEM_IN_CHANNEL);
|
||||
}
|
||||
|
||||
static struct snd_pcm_ops snd_ali_modem_playback_ops = {
|
||||
static const struct snd_pcm_ops snd_ali_modem_playback_ops = {
|
||||
.open = snd_ali_modem_playback_open,
|
||||
.close = snd_ali_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1637,7 +1637,7 @@ static struct snd_pcm_ops snd_ali_modem_playback_ops = {
|
||||
.pointer = snd_ali_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_ali_modem_capture_ops = {
|
||||
static const struct snd_pcm_ops snd_ali_modem_capture_ops = {
|
||||
.open = snd_ali_modem_capture_open,
|
||||
.close = snd_ali_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1653,8 +1653,8 @@ struct ali_pcm_description {
|
||||
char *name;
|
||||
unsigned int playback_num;
|
||||
unsigned int capture_num;
|
||||
struct snd_pcm_ops *playback_ops;
|
||||
struct snd_pcm_ops *capture_ops;
|
||||
const struct snd_pcm_ops *playback_ops;
|
||||
const struct snd_pcm_ops *capture_ops;
|
||||
unsigned short class;
|
||||
};
|
||||
|
||||
|
@@ -328,7 +328,7 @@ static int snd_als300_ac97(struct snd_als300 *chip)
|
||||
* the card when it is running outside of legacy
|
||||
* mode.
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_als300_playback_hw =
|
||||
static const struct snd_pcm_hardware snd_als300_playback_hw =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -347,7 +347,7 @@ static struct snd_pcm_hardware snd_als300_playback_hw =
|
||||
.periods_max = 2,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_als300_capture_hw =
|
||||
static const struct snd_pcm_hardware snd_als300_capture_hw =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
|
@@ -592,7 +592,7 @@ static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id)
|
||||
|
||||
/*****************************************************************/
|
||||
|
||||
static struct snd_pcm_hardware snd_als4000_playback =
|
||||
static const struct snd_pcm_hardware snd_als4000_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_MMAP_VALID),
|
||||
@@ -611,7 +611,7 @@ static struct snd_pcm_hardware snd_als4000_playback =
|
||||
.fifo_size = 0
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_als4000_capture =
|
||||
static const struct snd_pcm_hardware snd_als4000_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_MMAP_VALID),
|
||||
|
@@ -71,8 +71,8 @@ void hpi_debug_data(u16 *pdata, u32 len)
|
||||
printk(KERN_DEBUG "%p:", (pdata + i));
|
||||
|
||||
for (k = 0; k < cols && i < len; i++, k++)
|
||||
printk("%s%04x", k == 0 ? "" : " ", pdata[i]);
|
||||
printk(KERN_CONT "%s%04x", k == 0 ? "" : " ", pdata[i]);
|
||||
|
||||
printk("\n");
|
||||
printk(KERN_CONT "\n");
|
||||
}
|
||||
}
|
||||
|
@@ -1009,7 +1009,7 @@ static int snd_atiixp_pcm_hw_free(struct snd_pcm_substream *substream)
|
||||
/*
|
||||
* pcm hardware definition, identical for all DMA types
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_atiixp_pcm_hw =
|
||||
static const struct snd_pcm_hardware snd_atiixp_pcm_hw =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1183,7 +1183,7 @@ static const struct snd_pcm_ops snd_atiixp_spdif_ops = {
|
||||
.pointer = snd_atiixp_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct ac97_pcm atiixp_pcm_defs[] = {
|
||||
static const struct ac97_pcm atiixp_pcm_defs[] = {
|
||||
/* front PCM */
|
||||
{
|
||||
.exclusive = 1,
|
||||
|
@@ -834,7 +834,7 @@ static int snd_atiixp_pcm_hw_free(struct snd_pcm_substream *substream)
|
||||
/*
|
||||
* pcm hardware definition, identical for all DMA types
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_atiixp_pcm_hw =
|
||||
static const struct snd_pcm_hardware snd_atiixp_pcm_hw =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -30,7 +30,7 @@
|
||||
#define VORTEX_PCM_TYPE(x) (x->name[40])
|
||||
|
||||
/* hardware definition */
|
||||
static struct snd_pcm_hardware snd_vortex_playback_hw_adb = {
|
||||
static const struct snd_pcm_hardware snd_vortex_playback_hw_adb = {
|
||||
.info =
|
||||
(SNDRV_PCM_INFO_MMAP | /* SNDRV_PCM_INFO_RESUME | */
|
||||
SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -51,7 +51,7 @@ static struct snd_pcm_hardware snd_vortex_playback_hw_adb = {
|
||||
};
|
||||
|
||||
#ifndef CHIP_AU8820
|
||||
static struct snd_pcm_hardware snd_vortex_playback_hw_a3d = {
|
||||
static const struct snd_pcm_hardware snd_vortex_playback_hw_a3d = {
|
||||
.info =
|
||||
(SNDRV_PCM_INFO_MMAP | /* SNDRV_PCM_INFO_RESUME | */
|
||||
SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -71,7 +71,7 @@ static struct snd_pcm_hardware snd_vortex_playback_hw_a3d = {
|
||||
.periods_max = 64,
|
||||
};
|
||||
#endif
|
||||
static struct snd_pcm_hardware snd_vortex_playback_hw_spdif = {
|
||||
static const struct snd_pcm_hardware snd_vortex_playback_hw_spdif = {
|
||||
.info =
|
||||
(SNDRV_PCM_INFO_MMAP | /* SNDRV_PCM_INFO_RESUME | */
|
||||
SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -94,7 +94,7 @@ static struct snd_pcm_hardware snd_vortex_playback_hw_spdif = {
|
||||
};
|
||||
|
||||
#ifndef CHIP_AU8810
|
||||
static struct snd_pcm_hardware snd_vortex_playback_hw_wt = {
|
||||
static const struct snd_pcm_hardware snd_vortex_playback_hw_wt = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID),
|
||||
@@ -439,7 +439,7 @@ static snd_pcm_uframes_t snd_vortex_pcm_pointer(struct snd_pcm_substream *substr
|
||||
}
|
||||
|
||||
/* operators */
|
||||
static struct snd_pcm_ops snd_vortex_playback_ops = {
|
||||
static const struct snd_pcm_ops snd_vortex_playback_ops = {
|
||||
.open = snd_vortex_pcm_open,
|
||||
.close = snd_vortex_pcm_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
|
@@ -52,7 +52,7 @@ MODULE_LICENSE("GPL");
|
||||
* TYPEDEFS
|
||||
********************************/
|
||||
/* hardware definition */
|
||||
static struct snd_pcm_hardware snd_aw2_playback_hw = {
|
||||
static const struct snd_pcm_hardware snd_aw2_playback_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID),
|
||||
@@ -69,7 +69,7 @@ static struct snd_pcm_hardware snd_aw2_playback_hw = {
|
||||
.periods_max = 1024,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_aw2_capture_hw = {
|
||||
static const struct snd_pcm_hardware snd_aw2_capture_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID),
|
||||
|
@@ -353,7 +353,7 @@ static irqreturn_t snd_bt87x_interrupt(int irq, void *dev_id)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_bt87x_digital_hw = {
|
||||
static const struct snd_pcm_hardware snd_bt87x_digital_hw = {
|
||||
.info = SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -370,7 +370,7 @@ static struct snd_pcm_hardware snd_bt87x_digital_hw = {
|
||||
.periods_max = 255,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_bt87x_analog_hw = {
|
||||
static const struct snd_pcm_hardware snd_bt87x_analog_hw = {
|
||||
.info = SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -296,7 +296,7 @@ static struct snd_ca0106_details ca0106_chip_details[] = {
|
||||
};
|
||||
|
||||
/* hardware definition */
|
||||
static struct snd_pcm_hardware snd_ca0106_playback_hw = {
|
||||
static const struct snd_pcm_hardware snd_ca0106_playback_hw = {
|
||||
.info = SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -317,7 +317,7 @@ static struct snd_pcm_hardware snd_ca0106_playback_hw = {
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_ca0106_capture_hw = {
|
||||
static const struct snd_pcm_hardware snd_ca0106_capture_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -660,11 +660,9 @@ static int snd_ca0106_pcm_open_capture_channel(struct snd_pcm_substream *substre
|
||||
int err;
|
||||
|
||||
epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
|
||||
if (epcm == NULL) {
|
||||
dev_err(chip->card->dev,
|
||||
"open_capture_channel: failed epcm alloc\n");
|
||||
if (!epcm)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
epcm->emu = chip;
|
||||
epcm->substream = substream;
|
||||
epcm->channel_id=channel_id;
|
||||
|
@@ -1477,7 +1477,7 @@ static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id)
|
||||
*/
|
||||
|
||||
/* playback on channel A */
|
||||
static struct snd_pcm_hardware snd_cmipci_playback =
|
||||
static const struct snd_pcm_hardware snd_cmipci_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE |
|
||||
@@ -1497,7 +1497,7 @@ static struct snd_pcm_hardware snd_cmipci_playback =
|
||||
};
|
||||
|
||||
/* capture on channel B */
|
||||
static struct snd_pcm_hardware snd_cmipci_capture =
|
||||
static const struct snd_pcm_hardware snd_cmipci_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE |
|
||||
@@ -1517,7 +1517,7 @@ static struct snd_pcm_hardware snd_cmipci_capture =
|
||||
};
|
||||
|
||||
/* playback on channel B - stereo 16bit only? */
|
||||
static struct snd_pcm_hardware snd_cmipci_playback2 =
|
||||
static const struct snd_pcm_hardware snd_cmipci_playback2 =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE |
|
||||
@@ -1537,7 +1537,7 @@ static struct snd_pcm_hardware snd_cmipci_playback2 =
|
||||
};
|
||||
|
||||
/* spdif playback on channel A */
|
||||
static struct snd_pcm_hardware snd_cmipci_playback_spdif =
|
||||
static const struct snd_pcm_hardware snd_cmipci_playback_spdif =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE |
|
||||
@@ -1557,7 +1557,7 @@ static struct snd_pcm_hardware snd_cmipci_playback_spdif =
|
||||
};
|
||||
|
||||
/* spdif playback on channel A (32bit, IEC958 subframes) */
|
||||
static struct snd_pcm_hardware snd_cmipci_playback_iec958_subframe =
|
||||
static const struct snd_pcm_hardware snd_cmipci_playback_iec958_subframe =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE |
|
||||
@@ -1577,7 +1577,7 @@ static struct snd_pcm_hardware snd_cmipci_playback_iec958_subframe =
|
||||
};
|
||||
|
||||
/* spdif capture on channel B */
|
||||
static struct snd_pcm_hardware snd_cmipci_capture_spdif =
|
||||
static const struct snd_pcm_hardware snd_cmipci_capture_spdif =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE |
|
||||
@@ -3295,20 +3295,23 @@ static int snd_cmipci_probe(struct pci_dev *pci,
|
||||
break;
|
||||
}
|
||||
|
||||
if ((err = snd_cmipci_create(card, pci, dev, &cm)) < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
err = snd_cmipci_create(card, pci, dev, &cm);
|
||||
if (err < 0)
|
||||
goto free_card;
|
||||
|
||||
card->private_data = cm;
|
||||
|
||||
if ((err = snd_card_register(card)) < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
err = snd_card_register(card);
|
||||
if (err < 0)
|
||||
goto free_card;
|
||||
|
||||
pci_set_drvdata(pci, card);
|
||||
dev++;
|
||||
return 0;
|
||||
|
||||
free_card:
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
|
||||
static void snd_cmipci_remove(struct pci_dev *pci)
|
||||
|
@@ -847,7 +847,7 @@ static snd_pcm_uframes_t snd_cs4281_pointer(struct snd_pcm_substream *substream)
|
||||
snd_cs4281_peekBA0(chip, dma->regDCC) - 1;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_cs4281_playback =
|
||||
static const struct snd_pcm_hardware snd_cs4281_playback =
|
||||
{
|
||||
.info = SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -872,7 +872,7 @@ static struct snd_pcm_hardware snd_cs4281_playback =
|
||||
.fifo_size = CS4281_FIFO_SIZE,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_cs4281_capture =
|
||||
static const struct snd_pcm_hardware snd_cs4281_capture =
|
||||
{
|
||||
.info = SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
|
@@ -1438,7 +1438,7 @@ static irqreturn_t snd_cs46xx_interrupt(int irq, void *dev_id)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_cs46xx_playback =
|
||||
static const struct snd_pcm_hardware snd_cs46xx_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -1460,7 +1460,7 @@ static struct snd_pcm_hardware snd_cs46xx_playback =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_cs46xx_capture =
|
||||
static const struct snd_pcm_hardware snd_cs46xx_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
|
@@ -33,7 +33,7 @@
|
||||
#include <sound/ac97_codec.h>
|
||||
#include "cs5535audio.h"
|
||||
|
||||
static struct snd_pcm_hardware snd_cs5535audio_playback =
|
||||
static const struct snd_pcm_hardware snd_cs5535audio_playback =
|
||||
{
|
||||
.info = (
|
||||
SNDRV_PCM_INFO_MMAP |
|
||||
@@ -62,7 +62,7 @@ static struct snd_pcm_hardware snd_cs5535audio_playback =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_cs5535audio_capture =
|
||||
static const struct snd_pcm_hardware snd_cs5535audio_capture =
|
||||
{
|
||||
.info = (
|
||||
SNDRV_PCM_INFO_MMAP |
|
||||
|
@@ -2154,7 +2154,7 @@ static void hw_write_pci(struct hw *hw, u32 reg, u32 data)
|
||||
&container_of(hw, struct hw20k1, hw)->reg_pci_lock, flags);
|
||||
}
|
||||
|
||||
static struct hw ct20k1_preset = {
|
||||
static const struct hw ct20k1_preset = {
|
||||
.irq = -1,
|
||||
|
||||
.card_init = hw_card_init,
|
||||
|
@@ -2220,7 +2220,7 @@ static void hw_write_20kx(struct hw *hw, u32 reg, u32 data)
|
||||
writel(data, hw->mem_base + reg);
|
||||
}
|
||||
|
||||
static struct hw ct20k2_preset = {
|
||||
static const struct hw ct20k2_preset = {
|
||||
.irq = -1,
|
||||
|
||||
.card_init = hw_card_init,
|
||||
|
@@ -21,7 +21,7 @@
|
||||
#include <sound/pcm.h>
|
||||
|
||||
/* Hardware descriptions for playback */
|
||||
static struct snd_pcm_hardware ct_pcm_playback_hw = {
|
||||
static const struct snd_pcm_hardware ct_pcm_playback_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -46,7 +46,7 @@ static struct snd_pcm_hardware ct_pcm_playback_hw = {
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware ct_spdif_passthru_playback_hw = {
|
||||
static const struct snd_pcm_hardware ct_spdif_passthru_playback_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -69,7 +69,7 @@ static struct snd_pcm_hardware ct_spdif_passthru_playback_hw = {
|
||||
};
|
||||
|
||||
/* Hardware descriptions for capture */
|
||||
static struct snd_pcm_hardware ct_pcm_capture_hw = {
|
||||
static const struct snd_pcm_hardware ct_pcm_capture_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -140,27 +140,28 @@ static int ct_pcm_playback_open(struct snd_pcm_substream *substream)
|
||||
|
||||
err = snd_pcm_hw_constraint_integer(runtime,
|
||||
SNDRV_PCM_HW_PARAM_PERIODS);
|
||||
if (err < 0) {
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
if (err < 0)
|
||||
goto free_pcm;
|
||||
|
||||
err = snd_pcm_hw_constraint_minmax(runtime,
|
||||
SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
|
||||
1024, UINT_MAX);
|
||||
if (err < 0) {
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
if (err < 0)
|
||||
goto free_pcm;
|
||||
|
||||
apcm->timer = ct_timer_instance_new(atc->timer, apcm);
|
||||
if (!apcm->timer) {
|
||||
kfree(apcm);
|
||||
return -ENOMEM;
|
||||
err = -ENOMEM;
|
||||
goto free_pcm;
|
||||
}
|
||||
runtime->private_data = apcm;
|
||||
runtime->private_free = ct_atc_pcm_free_substream;
|
||||
|
||||
return 0;
|
||||
|
||||
free_pcm:
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
|
||||
static int ct_pcm_playback_close(struct snd_pcm_substream *substream)
|
||||
@@ -286,27 +287,28 @@ static int ct_pcm_capture_open(struct snd_pcm_substream *substream)
|
||||
|
||||
err = snd_pcm_hw_constraint_integer(runtime,
|
||||
SNDRV_PCM_HW_PARAM_PERIODS);
|
||||
if (err < 0) {
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
if (err < 0)
|
||||
goto free_pcm;
|
||||
|
||||
err = snd_pcm_hw_constraint_minmax(runtime,
|
||||
SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
|
||||
1024, UINT_MAX);
|
||||
if (err < 0) {
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
if (err < 0)
|
||||
goto free_pcm;
|
||||
|
||||
apcm->timer = ct_timer_instance_new(atc->timer, apcm);
|
||||
if (!apcm->timer) {
|
||||
kfree(apcm);
|
||||
return -ENOMEM;
|
||||
err = -ENOMEM;
|
||||
goto free_pcm;
|
||||
}
|
||||
runtime->private_data = apcm;
|
||||
runtime->private_free = ct_atc_pcm_free_substream;
|
||||
|
||||
return 0;
|
||||
|
||||
free_pcm:
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
|
||||
static int ct_pcm_capture_close(struct snd_pcm_substream *substream)
|
||||
|
@@ -258,10 +258,8 @@ error:
|
||||
|
||||
int rsc_mgr_uninit(struct rsc_mgr *mgr)
|
||||
{
|
||||
if (NULL != mgr->rscs) {
|
||||
kfree(mgr->rscs);
|
||||
mgr->rscs = NULL;
|
||||
}
|
||||
kfree(mgr->rscs);
|
||||
mgr->rscs = NULL;
|
||||
|
||||
if ((NULL != mgr->hw) && (NULL != mgr->ctrl_blk)) {
|
||||
switch (mgr->type) {
|
||||
|
@@ -702,10 +702,8 @@ error1:
|
||||
|
||||
static int srcimp_rsc_uninit(struct srcimp *srcimp)
|
||||
{
|
||||
if (NULL != srcimp->imappers) {
|
||||
kfree(srcimp->imappers);
|
||||
srcimp->imappers = NULL;
|
||||
}
|
||||
kfree(srcimp->imappers);
|
||||
srcimp->imappers = NULL;
|
||||
srcimp->ops = NULL;
|
||||
srcimp->mgr = NULL;
|
||||
rsc_uninit(&srcimp->rsc);
|
||||
|
@@ -826,7 +826,7 @@ static snd_pcm_uframes_t pcm_pointer(struct snd_pcm_substream *substream)
|
||||
|
||||
|
||||
/* pcm *_ops structures */
|
||||
static struct snd_pcm_ops analog_playback_ops = {
|
||||
static const struct snd_pcm_ops analog_playback_ops = {
|
||||
.open = pcm_analog_out_open,
|
||||
.close = pcm_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -837,7 +837,7 @@ static struct snd_pcm_ops analog_playback_ops = {
|
||||
.pointer = pcm_pointer,
|
||||
.page = snd_pcm_sgbuf_ops_page,
|
||||
};
|
||||
static struct snd_pcm_ops analog_capture_ops = {
|
||||
static const struct snd_pcm_ops analog_capture_ops = {
|
||||
.open = pcm_analog_in_open,
|
||||
.close = pcm_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -850,7 +850,7 @@ static struct snd_pcm_ops analog_capture_ops = {
|
||||
};
|
||||
#ifdef ECHOCARD_HAS_DIGITAL_IO
|
||||
#ifndef ECHOCARD_HAS_VMIXER
|
||||
static struct snd_pcm_ops digital_playback_ops = {
|
||||
static const struct snd_pcm_ops digital_playback_ops = {
|
||||
.open = pcm_digital_out_open,
|
||||
.close = pcm_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -862,7 +862,7 @@ static struct snd_pcm_ops digital_playback_ops = {
|
||||
.page = snd_pcm_sgbuf_ops_page,
|
||||
};
|
||||
#endif /* !ECHOCARD_HAS_VMIXER */
|
||||
static struct snd_pcm_ops digital_capture_ops = {
|
||||
static const struct snd_pcm_ops digital_capture_ops = {
|
||||
.open = pcm_digital_in_open,
|
||||
.close = pcm_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
|
@@ -254,7 +254,7 @@ struct emu10k1x {
|
||||
};
|
||||
|
||||
/* hardware definition */
|
||||
static struct snd_pcm_hardware snd_emu10k1x_playback_hw = {
|
||||
static const struct snd_pcm_hardware snd_emu10k1x_playback_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -273,7 +273,7 @@ static struct snd_pcm_hardware snd_emu10k1x_playback_hw = {
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_emu10k1x_capture_hw = {
|
||||
static const struct snd_pcm_hardware snd_emu10k1x_capture_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -556,7 +556,7 @@ static int snd_emu10k1_efx_playback_prepare(struct snd_pcm_substream *substream)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_emu10k1_efx_playback =
|
||||
static const struct snd_pcm_hardware snd_emu10k1_efx_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_NONINTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -975,7 +975,7 @@ static snd_pcm_uframes_t snd_emu10k1_capture_pointer(struct snd_pcm_substream *s
|
||||
* Playback support device description
|
||||
*/
|
||||
|
||||
static struct snd_pcm_hardware snd_emu10k1_playback =
|
||||
static const struct snd_pcm_hardware snd_emu10k1_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -999,7 +999,7 @@ static struct snd_pcm_hardware snd_emu10k1_playback =
|
||||
* Capture support device description
|
||||
*/
|
||||
|
||||
static struct snd_pcm_hardware snd_emu10k1_capture =
|
||||
static const struct snd_pcm_hardware snd_emu10k1_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1019,7 +1019,7 @@ static struct snd_pcm_hardware snd_emu10k1_capture =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_emu10k1_capture_efx =
|
||||
static const struct snd_pcm_hardware snd_emu10k1_capture_efx =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1742,7 +1742,7 @@ static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(struct snd_pcm_subs
|
||||
return snd_pcm_indirect_playback_pointer(substream, &pcm->pcm_rec, ptr);
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_emu10k1_fx8010_playback =
|
||||
static const struct snd_pcm_hardware snd_emu10k1_fx8010_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_RESUME |
|
||||
|
@@ -122,7 +122,7 @@
|
||||
*/
|
||||
|
||||
/* hardware definition */
|
||||
static struct snd_pcm_hardware snd_p16v_playback_hw = {
|
||||
static const struct snd_pcm_hardware snd_p16v_playback_hw = {
|
||||
.info = SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -143,7 +143,7 @@ static struct snd_pcm_hardware snd_p16v_playback_hw = {
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_p16v_capture_hw = {
|
||||
static const struct snd_pcm_hardware snd_p16v_capture_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -1059,7 +1059,7 @@ static snd_pcm_uframes_t snd_ensoniq_capture_pointer(struct snd_pcm_substream *s
|
||||
return ptr;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_ensoniq_playback1 =
|
||||
static const struct snd_pcm_hardware snd_ensoniq_playback1 =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1086,7 +1086,7 @@ static struct snd_pcm_hardware snd_ensoniq_playback1 =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_ensoniq_playback2 =
|
||||
static const struct snd_pcm_hardware snd_ensoniq_playback2 =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1106,7 +1106,7 @@ static struct snd_pcm_hardware snd_ensoniq_playback2 =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_ensoniq_capture =
|
||||
static const struct snd_pcm_hardware snd_ensoniq_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -900,7 +900,7 @@ static int snd_es1938_pcm_hw_free(struct snd_pcm_substream *substream)
|
||||
/* ----------------------------------------------------------------------
|
||||
* Audio1 Capture (ADC)
|
||||
* ----------------------------------------------------------------------*/
|
||||
static struct snd_pcm_hardware snd_es1938_capture =
|
||||
static const struct snd_pcm_hardware snd_es1938_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER),
|
||||
@@ -922,7 +922,7 @@ static struct snd_pcm_hardware snd_es1938_capture =
|
||||
/* -----------------------------------------------------------------------
|
||||
* Audio2 Playback (DAC)
|
||||
* -----------------------------------------------------------------------*/
|
||||
static struct snd_pcm_hardware snd_es1938_playback =
|
||||
static const struct snd_pcm_hardware snd_es1938_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -1290,7 +1290,7 @@ static snd_pcm_uframes_t snd_es1968_pcm_pointer(struct snd_pcm_substream *substr
|
||||
return bytes_to_frames(substream->runtime, ptr % es->dma_size);
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_es1968_playback = {
|
||||
static const struct snd_pcm_hardware snd_es1968_playback = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -1311,7 +1311,7 @@ static struct snd_pcm_hardware snd_es1968_playback = {
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_es1968_capture = {
|
||||
static const struct snd_pcm_hardware snd_es1968_capture = {
|
||||
.info = (SNDRV_PCM_INFO_NONINTERLEAVED |
|
||||
SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
|
@@ -599,7 +599,7 @@ static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_fm801_playback =
|
||||
static const struct snd_pcm_hardware snd_fm801_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -619,7 +619,7 @@ static struct snd_pcm_hardware snd_fm801_playback =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_fm801_capture =
|
||||
static const struct snd_pcm_hardware snd_fm801_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -5,12 +5,47 @@
|
||||
#if IS_ENABLED(CONFIG_DELL_LAPTOP)
|
||||
#include <linux/dell-led.h>
|
||||
|
||||
enum {
|
||||
MICMUTE_LED_ON,
|
||||
MICMUTE_LED_OFF,
|
||||
MICMUTE_LED_FOLLOW_CAPTURE,
|
||||
MICMUTE_LED_FOLLOW_MUTE,
|
||||
};
|
||||
|
||||
static int dell_led_mode = MICMUTE_LED_FOLLOW_MUTE;
|
||||
static int dell_capture;
|
||||
static int dell_led_value;
|
||||
static int (*dell_micmute_led_set_func)(int);
|
||||
static void (*dell_old_cap_hook)(struct hda_codec *,
|
||||
struct snd_kcontrol *,
|
||||
struct snd_ctl_elem_value *);
|
||||
|
||||
static void call_micmute_led_update(void)
|
||||
{
|
||||
int val;
|
||||
|
||||
switch (dell_led_mode) {
|
||||
case MICMUTE_LED_ON:
|
||||
val = 1;
|
||||
break;
|
||||
case MICMUTE_LED_OFF:
|
||||
val = 0;
|
||||
break;
|
||||
case MICMUTE_LED_FOLLOW_CAPTURE:
|
||||
val = dell_capture;
|
||||
break;
|
||||
case MICMUTE_LED_FOLLOW_MUTE:
|
||||
default:
|
||||
val = !dell_capture;
|
||||
break;
|
||||
}
|
||||
|
||||
if (val == dell_led_value)
|
||||
return;
|
||||
dell_led_value = val;
|
||||
dell_micmute_led_set_func(dell_led_value);
|
||||
}
|
||||
|
||||
static void update_dell_wmi_micmute_led(struct hda_codec *codec,
|
||||
struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
@@ -22,15 +57,54 @@ static void update_dell_wmi_micmute_led(struct hda_codec *codec,
|
||||
return;
|
||||
if (strcmp("Capture Switch", ucontrol->id.name) == 0 && ucontrol->id.index == 0) {
|
||||
/* TODO: How do I verify if it's a mono or stereo here? */
|
||||
int val = (ucontrol->value.integer.value[0] || ucontrol->value.integer.value[1]) ? 0 : 1;
|
||||
if (val == dell_led_value)
|
||||
return;
|
||||
dell_led_value = val;
|
||||
if (dell_micmute_led_set_func)
|
||||
dell_micmute_led_set_func(dell_led_value);
|
||||
dell_capture = (ucontrol->value.integer.value[0] ||
|
||||
ucontrol->value.integer.value[1]);
|
||||
call_micmute_led_update();
|
||||
}
|
||||
}
|
||||
|
||||
static int dell_mic_mute_led_mode_info(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_info *uinfo)
|
||||
{
|
||||
static const char * const texts[] = {
|
||||
"On", "Off", "Follow Capture", "Follow Mute",
|
||||
};
|
||||
|
||||
return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(texts), texts);
|
||||
}
|
||||
|
||||
static int dell_mic_mute_led_mode_get(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
ucontrol->value.enumerated.item[0] = dell_led_mode;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dell_mic_mute_led_mode_put(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
unsigned int mode;
|
||||
|
||||
mode = ucontrol->value.enumerated.item[0];
|
||||
if (mode > MICMUTE_LED_FOLLOW_MUTE)
|
||||
mode = MICMUTE_LED_FOLLOW_MUTE;
|
||||
if (mode == dell_led_mode)
|
||||
return 0;
|
||||
dell_led_mode = mode;
|
||||
call_micmute_led_update();
|
||||
return 1;
|
||||
}
|
||||
|
||||
static const struct snd_kcontrol_new dell_mic_mute_mode_ctls[] = {
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = "Mic Mute-LED Mode",
|
||||
.info = dell_mic_mute_led_mode_info,
|
||||
.get = dell_mic_mute_led_mode_get,
|
||||
.put = dell_mic_mute_led_mode_put,
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
static void alc_fixup_dell_wmi(struct hda_codec *codec,
|
||||
const struct hda_fixup *fix, int action)
|
||||
@@ -55,6 +129,7 @@ static void alc_fixup_dell_wmi(struct hda_codec *codec,
|
||||
dell_old_cap_hook = spec->gen.cap_sync_hook;
|
||||
spec->gen.cap_sync_hook = update_dell_wmi_micmute_led;
|
||||
removefunc = false;
|
||||
add_mixer(spec, dell_mic_mute_mode_ctls);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -2389,6 +2389,9 @@ static const struct pci_device_id azx_ids[] = {
|
||||
/* Coffelake */
|
||||
{ PCI_DEVICE(0x8086, 0xa348),
|
||||
.driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
|
||||
/* Cannonlake */
|
||||
{ PCI_DEVICE(0x8086, 0x9dc8),
|
||||
.driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
|
||||
/* Broxton-P(Apollolake) */
|
||||
{ PCI_DEVICE(0x8086, 0x5a98),
|
||||
.driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_BROXTON },
|
||||
|
@@ -505,7 +505,7 @@ static int ad1983_auto_smux_enum_put(struct snd_kcontrol *kcontrol,
|
||||
return 1;
|
||||
}
|
||||
|
||||
static struct snd_kcontrol_new ad1983_auto_smux_mixer = {
|
||||
static const struct snd_kcontrol_new ad1983_auto_smux_mixer = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = "IEC958 Playback Source",
|
||||
.info = ad1983_auto_smux_enum_info,
|
||||
@@ -788,7 +788,7 @@ static int ad1988_auto_smux_enum_put(struct snd_kcontrol *kcontrol,
|
||||
return 1;
|
||||
}
|
||||
|
||||
static struct snd_kcontrol_new ad1988_auto_smux_mixer = {
|
||||
static const struct snd_kcontrol_new ad1988_auto_smux_mixer = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = "IEC958 Playback Source",
|
||||
.info = ad1988_auto_smux_enum_info,
|
||||
|
@@ -961,7 +961,7 @@ static int stac_smux_enum_put(struct snd_kcontrol *kcontrol,
|
||||
&spec->cur_smux[smux_idx]);
|
||||
}
|
||||
|
||||
static struct snd_kcontrol_new stac_smux_mixer = {
|
||||
static const struct snd_kcontrol_new stac_smux_mixer = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = "IEC958 Playback Source",
|
||||
/* count set later */
|
||||
|
@@ -445,7 +445,7 @@ static const struct snd_kcontrol_new snd_ice1712_delta1010lt_wordclock_status =
|
||||
* initialize the chips on M-Audio cards
|
||||
*/
|
||||
|
||||
static struct snd_akm4xxx akm_audiophile = {
|
||||
static const struct snd_akm4xxx akm_audiophile = {
|
||||
.type = SND_AK4528,
|
||||
.num_adcs = 2,
|
||||
.num_dacs = 2,
|
||||
@@ -454,7 +454,7 @@ static struct snd_akm4xxx akm_audiophile = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_audiophile_priv = {
|
||||
static const struct snd_ak4xxx_private akm_audiophile_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 0,
|
||||
.data_mask = ICE1712_DELTA_AP_DOUT,
|
||||
@@ -466,7 +466,7 @@ static struct snd_ak4xxx_private akm_audiophile_priv = {
|
||||
.mask_flags = 0,
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_delta410 = {
|
||||
static const struct snd_akm4xxx akm_delta410 = {
|
||||
.type = SND_AK4529,
|
||||
.num_adcs = 2,
|
||||
.num_dacs = 8,
|
||||
@@ -475,7 +475,7 @@ static struct snd_akm4xxx akm_delta410 = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_delta410_priv = {
|
||||
static const struct snd_ak4xxx_private akm_delta410_priv = {
|
||||
.caddr = 0,
|
||||
.cif = 0,
|
||||
.data_mask = ICE1712_DELTA_AP_DOUT,
|
||||
@@ -487,7 +487,7 @@ static struct snd_ak4xxx_private akm_delta410_priv = {
|
||||
.mask_flags = 0,
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_delta1010lt = {
|
||||
static const struct snd_akm4xxx akm_delta1010lt = {
|
||||
.type = SND_AK4524,
|
||||
.num_adcs = 8,
|
||||
.num_dacs = 8,
|
||||
@@ -497,7 +497,7 @@ static struct snd_akm4xxx akm_delta1010lt = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_delta1010lt_priv = {
|
||||
static const struct snd_ak4xxx_private akm_delta1010lt_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 0, /* the default level of the CIF pin from AK4524 */
|
||||
.data_mask = ICE1712_DELTA_1010LT_DOUT,
|
||||
@@ -509,7 +509,7 @@ static struct snd_ak4xxx_private akm_delta1010lt_priv = {
|
||||
.mask_flags = 0,
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_delta66e = {
|
||||
static const struct snd_akm4xxx akm_delta66e = {
|
||||
.type = SND_AK4524,
|
||||
.num_adcs = 4,
|
||||
.num_dacs = 4,
|
||||
@@ -519,7 +519,7 @@ static struct snd_akm4xxx akm_delta66e = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_delta66e_priv = {
|
||||
static const struct snd_ak4xxx_private akm_delta66e_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 0, /* the default level of the CIF pin from AK4524 */
|
||||
.data_mask = ICE1712_DELTA_66E_DOUT,
|
||||
@@ -532,7 +532,7 @@ static struct snd_ak4xxx_private akm_delta66e_priv = {
|
||||
};
|
||||
|
||||
|
||||
static struct snd_akm4xxx akm_delta44 = {
|
||||
static const struct snd_akm4xxx akm_delta44 = {
|
||||
.type = SND_AK4524,
|
||||
.num_adcs = 4,
|
||||
.num_dacs = 4,
|
||||
@@ -542,7 +542,7 @@ static struct snd_akm4xxx akm_delta44 = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_delta44_priv = {
|
||||
static const struct snd_ak4xxx_private akm_delta44_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 0, /* the default level of the CIF pin from AK4524 */
|
||||
.data_mask = ICE1712_DELTA_CODEC_SERIAL_DATA,
|
||||
@@ -554,7 +554,7 @@ static struct snd_ak4xxx_private akm_delta44_priv = {
|
||||
.mask_flags = 0,
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_vx442 = {
|
||||
static const struct snd_akm4xxx akm_vx442 = {
|
||||
.type = SND_AK4524,
|
||||
.num_adcs = 4,
|
||||
.num_dacs = 4,
|
||||
@@ -564,7 +564,7 @@ static struct snd_akm4xxx akm_vx442 = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_vx442_priv = {
|
||||
static const struct snd_ak4xxx_private akm_vx442_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 0,
|
||||
.data_mask = ICE1712_VX442_DOUT,
|
||||
|
@@ -344,7 +344,7 @@ static void ews88_setup_spdif(struct snd_ice1712 *ice, int rate)
|
||||
|
||||
/*
|
||||
*/
|
||||
static struct snd_akm4xxx akm_ews88mt = {
|
||||
static const struct snd_akm4xxx akm_ews88mt = {
|
||||
.num_adcs = 8,
|
||||
.num_dacs = 8,
|
||||
.type = SND_AK4524,
|
||||
@@ -354,7 +354,7 @@ static struct snd_akm4xxx akm_ews88mt = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_ews88mt_priv = {
|
||||
static const struct snd_ak4xxx_private akm_ews88mt_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 1, /* CIF high */
|
||||
.data_mask = ICE1712_EWS88_SERIAL_DATA,
|
||||
@@ -366,7 +366,7 @@ static struct snd_ak4xxx_private akm_ews88mt_priv = {
|
||||
.mask_flags = 0,
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_ewx2496 = {
|
||||
static const struct snd_akm4xxx akm_ewx2496 = {
|
||||
.num_adcs = 2,
|
||||
.num_dacs = 2,
|
||||
.type = SND_AK4524,
|
||||
@@ -375,7 +375,7 @@ static struct snd_akm4xxx akm_ewx2496 = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_ewx2496_priv = {
|
||||
static const struct snd_ak4xxx_private akm_ewx2496_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 1, /* CIF high */
|
||||
.data_mask = ICE1712_EWS88_SERIAL_DATA,
|
||||
@@ -387,7 +387,7 @@ static struct snd_ak4xxx_private akm_ewx2496_priv = {
|
||||
.mask_flags = 0,
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_6fire = {
|
||||
static const struct snd_akm4xxx akm_6fire = {
|
||||
.num_adcs = 6,
|
||||
.num_dacs = 6,
|
||||
.type = SND_AK4524,
|
||||
@@ -396,7 +396,7 @@ static struct snd_akm4xxx akm_6fire = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_6fire_priv = {
|
||||
static const struct snd_ak4xxx_private akm_6fire_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 1, /* CIF high */
|
||||
.data_mask = ICE1712_6FIRE_SERIAL_DATA,
|
||||
|
@@ -166,7 +166,7 @@ static void snd_ice1712_stdsp24_midi2(struct snd_ice1712 *ice, int activate)
|
||||
mutex_unlock(&ice->gpio_mutex);
|
||||
}
|
||||
|
||||
static int snd_ice1712_hoontech_init(struct snd_ice1712 *ice)
|
||||
static int hoontech_init(struct snd_ice1712 *ice, bool staudio)
|
||||
{
|
||||
struct hoontech_spec *spec;
|
||||
int box, chn;
|
||||
@@ -203,7 +203,10 @@ static int snd_ice1712_hoontech_init(struct snd_ice1712 *ice)
|
||||
ICE1712_STDSP24_3_INSEL(spec->boxbits, 0);
|
||||
|
||||
/* let's go - activate only functions in first box */
|
||||
spec->config = 0;
|
||||
if (staudio)
|
||||
spec->config = ICE1712_STDSP24_MUTE;
|
||||
else
|
||||
spec->config = 0;
|
||||
/* ICE1712_STDSP24_MUTE |
|
||||
ICE1712_STDSP24_INSEL |
|
||||
ICE1712_STDSP24_DAREAR; */
|
||||
@@ -226,9 +229,16 @@ static int snd_ice1712_hoontech_init(struct snd_ice1712 *ice)
|
||||
ICE1712_STDSP24_BOX_CHN4 |
|
||||
ICE1712_STDSP24_BOX_MIDI1 |
|
||||
ICE1712_STDSP24_BOX_MIDI2;
|
||||
spec->boxconfig[1] =
|
||||
spec->boxconfig[2] =
|
||||
spec->boxconfig[3] = 0;
|
||||
if (staudio) {
|
||||
spec->boxconfig[1] =
|
||||
spec->boxconfig[2] =
|
||||
spec->boxconfig[3] = spec->boxconfig[0];
|
||||
} else {
|
||||
spec->boxconfig[1] =
|
||||
spec->boxconfig[2] =
|
||||
spec->boxconfig[3] = 0;
|
||||
}
|
||||
|
||||
snd_ice1712_stdsp24_darear(ice,
|
||||
(spec->config & ICE1712_STDSP24_DAREAR) ? 1 : 0);
|
||||
snd_ice1712_stdsp24_mute(ice,
|
||||
@@ -248,6 +258,16 @@ static int snd_ice1712_hoontech_init(struct snd_ice1712 *ice)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snd_ice1712_hoontech_init(struct snd_ice1712 *ice)
|
||||
{
|
||||
return hoontech_init(ice, false);
|
||||
}
|
||||
|
||||
static int snd_ice1712_staudio_init(struct snd_ice1712 *ice)
|
||||
{
|
||||
return hoontech_init(ice, true);
|
||||
}
|
||||
|
||||
/*
|
||||
* AK4524 access
|
||||
*/
|
||||
@@ -269,7 +289,7 @@ static void stdsp24_ak4524_lock(struct snd_akm4xxx *ak, int chip)
|
||||
static int snd_ice1712_value_init(struct snd_ice1712 *ice)
|
||||
{
|
||||
/* Hoontech STDSP24 with modified hardware */
|
||||
static struct snd_akm4xxx akm_stdsp24_mv = {
|
||||
static const struct snd_akm4xxx akm_stdsp24_mv = {
|
||||
.num_adcs = 2,
|
||||
.num_dacs = 2,
|
||||
.type = SND_AK4524,
|
||||
@@ -278,7 +298,7 @@ static int snd_ice1712_value_init(struct snd_ice1712 *ice)
|
||||
}
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_stdsp24_mv_priv = {
|
||||
static const struct snd_ak4xxx_private akm_stdsp24_mv_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 1, /* CIF high */
|
||||
.data_mask = ICE1712_STDSP24_SERIAL_DATA,
|
||||
@@ -351,5 +371,14 @@ struct snd_ice1712_card_info snd_ice1712_hoontech_cards[] = {
|
||||
.model = "ez8",
|
||||
.chip_init = snd_ice1712_ez8_init,
|
||||
},
|
||||
{
|
||||
/* STAudio ADCIII has the same SSID as Hoontech StA DSP24,
|
||||
* thus identified only via the explicit model option
|
||||
*/
|
||||
.subvendor = ICE1712_SUBDEVICE_STAUDIO_ADCIII, /* a dummy id */
|
||||
.name = "STAudio ADCIII",
|
||||
.model = "staudio",
|
||||
.chip_init = snd_ice1712_staudio_init,
|
||||
},
|
||||
{ } /* terminator */
|
||||
};
|
||||
|
@@ -34,6 +34,7 @@
|
||||
#define ICE1712_SUBDEVICE_STDSP24_VALUE 0x00010010 /* A dummy id for Hoontech SoundTrack Audio DSP 24 Value */
|
||||
#define ICE1712_SUBDEVICE_STDSP24_MEDIA7_1 0x16141217 /* Hoontech ST Audio DSP24 Media 7.1 */
|
||||
#define ICE1712_SUBDEVICE_EVENT_EZ8 0x00010001 /* A dummy id for EZ8 */
|
||||
#define ICE1712_SUBDEVICE_STAUDIO_ADCIII 0x00010002 /* A dummy id for STAudio ADCIII */
|
||||
|
||||
extern struct snd_ice1712_card_info snd_ice1712_hoontech_cards[];
|
||||
|
||||
|
@@ -282,7 +282,7 @@ static const struct snd_akm4xxx_dac_channel juli_dac[] = {
|
||||
};
|
||||
|
||||
|
||||
static struct snd_akm4xxx akm_juli_dac = {
|
||||
static const struct snd_akm4xxx akm_juli_dac = {
|
||||
.type = SND_AK4358,
|
||||
.num_dacs = 8, /* DAC1 - analog out
|
||||
DAC2 - analog in monitor
|
||||
|
@@ -102,13 +102,13 @@ static const unsigned char wm_vol[256] = {
|
||||
#define WM_VOL_MAX (sizeof(wm_vol) - 1)
|
||||
#define WM_VOL_MUTE 0x8000
|
||||
|
||||
static struct snd_akm4xxx akm_phase22 = {
|
||||
static const struct snd_akm4xxx akm_phase22 = {
|
||||
.type = SND_AK4524,
|
||||
.num_dacs = 2,
|
||||
.num_adcs = 2,
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_phase22_priv = {
|
||||
static const struct snd_ak4xxx_private akm_phase22_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 1,
|
||||
.data_mask = 1 << 4,
|
||||
|
@@ -386,7 +386,7 @@ static const struct snd_akm4xxx_adc_channel qtet_adc[] = {
|
||||
AK_CONTROL(PCM_34_CAPTURE_VOLUME, 2),
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_qtet_dac = {
|
||||
static const struct snd_akm4xxx akm_qtet_dac = {
|
||||
.type = SND_AK4620,
|
||||
.num_dacs = 4, /* DAC1 - Output 12
|
||||
*/
|
||||
|
@@ -235,7 +235,7 @@ static const struct snd_akm4xxx_adc_channel revo51_adc[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_revo_front = {
|
||||
static const struct snd_akm4xxx akm_revo_front = {
|
||||
.type = SND_AK4381,
|
||||
.num_dacs = 2,
|
||||
.ops = {
|
||||
@@ -244,7 +244,7 @@ static struct snd_akm4xxx akm_revo_front = {
|
||||
.dac_info = revo71_front,
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_revo_front_priv = {
|
||||
static const struct snd_ak4xxx_private akm_revo_front_priv = {
|
||||
.caddr = 1,
|
||||
.cif = 0,
|
||||
.data_mask = VT1724_REVO_CDOUT,
|
||||
@@ -256,7 +256,7 @@ static struct snd_ak4xxx_private akm_revo_front_priv = {
|
||||
.mask_flags = 0,
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_revo_surround = {
|
||||
static const struct snd_akm4xxx akm_revo_surround = {
|
||||
.type = SND_AK4355,
|
||||
.idx_offset = 1,
|
||||
.num_dacs = 6,
|
||||
@@ -266,7 +266,7 @@ static struct snd_akm4xxx akm_revo_surround = {
|
||||
.dac_info = revo71_surround,
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_revo_surround_priv = {
|
||||
static const struct snd_ak4xxx_private akm_revo_surround_priv = {
|
||||
.caddr = 3,
|
||||
.cif = 0,
|
||||
.data_mask = VT1724_REVO_CDOUT,
|
||||
@@ -278,7 +278,7 @@ static struct snd_ak4xxx_private akm_revo_surround_priv = {
|
||||
.mask_flags = 0,
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_revo51 = {
|
||||
static const struct snd_akm4xxx akm_revo51 = {
|
||||
.type = SND_AK4358,
|
||||
.num_dacs = 8,
|
||||
.ops = {
|
||||
@@ -287,7 +287,7 @@ static struct snd_akm4xxx akm_revo51 = {
|
||||
.dac_info = revo51_dac,
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_revo51_priv = {
|
||||
static const struct snd_ak4xxx_private akm_revo51_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 0,
|
||||
.data_mask = VT1724_REVO_CDOUT,
|
||||
@@ -299,13 +299,13 @@ static struct snd_ak4xxx_private akm_revo51_priv = {
|
||||
.mask_flags = 0,
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_revo51_adc = {
|
||||
static const struct snd_akm4xxx akm_revo51_adc = {
|
||||
.type = SND_AK5365,
|
||||
.num_adcs = 2,
|
||||
.adc_info = revo51_adc,
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_revo51_adc_priv = {
|
||||
static const struct snd_ak4xxx_private akm_revo51_adc_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 0,
|
||||
.data_mask = VT1724_REVO_CDOUT,
|
||||
@@ -346,7 +346,7 @@ static const struct snd_akm4xxx_dac_channel ap192_dac[] = {
|
||||
AK_DAC("PCM Playback Volume", 2)
|
||||
};
|
||||
|
||||
static struct snd_akm4xxx akm_ap192 = {
|
||||
static const struct snd_akm4xxx akm_ap192 = {
|
||||
.type = SND_AK4358,
|
||||
.num_dacs = 2,
|
||||
.ops = {
|
||||
@@ -355,7 +355,7 @@ static struct snd_akm4xxx akm_ap192 = {
|
||||
.dac_info = ap192_dac,
|
||||
};
|
||||
|
||||
static struct snd_ak4xxx_private akm_ap192_priv = {
|
||||
static const struct snd_ak4xxx_private akm_ap192_priv = {
|
||||
.caddr = 2,
|
||||
.cif = 0,
|
||||
.data_mask = VT1724_REVO_CDOUT,
|
||||
|
@@ -1115,7 +1115,7 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(struct snd_pcm_substream *subs
|
||||
return bytes_to_frames(substream->runtime, ptr);
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_intel8x0_stream =
|
||||
static const struct snd_pcm_hardware snd_intel8x0_stream =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1367,7 +1367,7 @@ static int snd_intel8x0_ali_spdifout_close(struct snd_pcm_substream *substream)
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_playback_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_playback_ops = {
|
||||
.open = snd_intel8x0_playback_open,
|
||||
.close = snd_intel8x0_playback_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1378,7 +1378,7 @@ static struct snd_pcm_ops snd_intel8x0_playback_ops = {
|
||||
.pointer = snd_intel8x0_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_capture_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_capture_ops = {
|
||||
.open = snd_intel8x0_capture_open,
|
||||
.close = snd_intel8x0_capture_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1389,7 +1389,7 @@ static struct snd_pcm_ops snd_intel8x0_capture_ops = {
|
||||
.pointer = snd_intel8x0_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_capture_mic_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_capture_mic_ops = {
|
||||
.open = snd_intel8x0_mic_open,
|
||||
.close = snd_intel8x0_mic_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1400,7 +1400,7 @@ static struct snd_pcm_ops snd_intel8x0_capture_mic_ops = {
|
||||
.pointer = snd_intel8x0_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_capture_mic2_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_capture_mic2_ops = {
|
||||
.open = snd_intel8x0_mic2_open,
|
||||
.close = snd_intel8x0_mic2_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1411,7 +1411,7 @@ static struct snd_pcm_ops snd_intel8x0_capture_mic2_ops = {
|
||||
.pointer = snd_intel8x0_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_capture2_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_capture2_ops = {
|
||||
.open = snd_intel8x0_capture2_open,
|
||||
.close = snd_intel8x0_capture2_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1422,7 +1422,7 @@ static struct snd_pcm_ops snd_intel8x0_capture2_ops = {
|
||||
.pointer = snd_intel8x0_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_spdif_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_spdif_ops = {
|
||||
.open = snd_intel8x0_spdif_open,
|
||||
.close = snd_intel8x0_spdif_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1433,7 +1433,7 @@ static struct snd_pcm_ops snd_intel8x0_spdif_ops = {
|
||||
.pointer = snd_intel8x0_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_ali_playback_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_ali_playback_ops = {
|
||||
.open = snd_intel8x0_playback_open,
|
||||
.close = snd_intel8x0_playback_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1444,7 +1444,7 @@ static struct snd_pcm_ops snd_intel8x0_ali_playback_ops = {
|
||||
.pointer = snd_intel8x0_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_ali_capture_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_ali_capture_ops = {
|
||||
.open = snd_intel8x0_capture_open,
|
||||
.close = snd_intel8x0_capture_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1455,7 +1455,7 @@ static struct snd_pcm_ops snd_intel8x0_ali_capture_ops = {
|
||||
.pointer = snd_intel8x0_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_ali_capture_mic_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_ali_capture_mic_ops = {
|
||||
.open = snd_intel8x0_mic_open,
|
||||
.close = snd_intel8x0_mic_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1466,7 +1466,7 @@ static struct snd_pcm_ops snd_intel8x0_ali_capture_mic_ops = {
|
||||
.pointer = snd_intel8x0_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0_ali_ac97spdifout_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0_ali_ac97spdifout_ops = {
|
||||
.open = snd_intel8x0_ali_ac97spdifout_open,
|
||||
.close = snd_intel8x0_ali_ac97spdifout_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -1503,8 +1503,8 @@ static struct snd_pcm_ops snd_intel8x0_ali_spdifout_ops = {
|
||||
|
||||
struct ich_pcm_table {
|
||||
char *suffix;
|
||||
struct snd_pcm_ops *playback_ops;
|
||||
struct snd_pcm_ops *capture_ops;
|
||||
const struct snd_pcm_ops *playback_ops;
|
||||
const struct snd_pcm_ops *capture_ops;
|
||||
size_t prealloc_size;
|
||||
size_t prealloc_max_size;
|
||||
int ac97_idx;
|
||||
@@ -1721,7 +1721,7 @@ static void snd_intel8x0_mixer_free_ac97(struct snd_ac97 *ac97)
|
||||
chip->ac97[ac97->num] = NULL;
|
||||
}
|
||||
|
||||
static struct ac97_pcm ac97_pcm_defs[] = {
|
||||
static const struct ac97_pcm ac97_pcm_defs[] = {
|
||||
/* front PCM */
|
||||
{
|
||||
.exclusive = 1,
|
||||
|
@@ -611,7 +611,7 @@ static int snd_intel8x0m_pcm_prepare(struct snd_pcm_substream *substream)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_intel8x0m_stream =
|
||||
static const struct snd_pcm_hardware snd_intel8x0m_stream =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -685,7 +685,7 @@ static int snd_intel8x0m_capture_close(struct snd_pcm_substream *substream)
|
||||
}
|
||||
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0m_playback_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0m_playback_ops = {
|
||||
.open = snd_intel8x0m_playback_open,
|
||||
.close = snd_intel8x0m_playback_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -696,7 +696,7 @@ static struct snd_pcm_ops snd_intel8x0m_playback_ops = {
|
||||
.pointer = snd_intel8x0m_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_intel8x0m_capture_ops = {
|
||||
static const struct snd_pcm_ops snd_intel8x0m_capture_ops = {
|
||||
.open = snd_intel8x0m_capture_open,
|
||||
.close = snd_intel8x0m_capture_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -710,8 +710,8 @@ static struct snd_pcm_ops snd_intel8x0m_capture_ops = {
|
||||
|
||||
struct ich_pcm_table {
|
||||
char *suffix;
|
||||
struct snd_pcm_ops *playback_ops;
|
||||
struct snd_pcm_ops *capture_ops;
|
||||
const struct snd_pcm_ops *playback_ops;
|
||||
const struct snd_pcm_ops *capture_ops;
|
||||
size_t prealloc_size;
|
||||
size_t prealloc_max_size;
|
||||
int ac97_idx;
|
||||
|
@@ -1231,7 +1231,7 @@ static int snd_korg1212_downloadDSPCode(struct snd_korg1212 *korg1212)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_korg1212_playback_info =
|
||||
static const struct snd_pcm_hardware snd_korg1212_playback_info =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -1252,7 +1252,7 @@ static struct snd_pcm_hardware snd_korg1212_playback_info =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_korg1212_capture_info =
|
||||
static const struct snd_pcm_hardware snd_korg1212_capture_info =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
|
@@ -197,7 +197,7 @@ static void lola_stream_reset(struct lola *chip, struct lola_stream *str)
|
||||
}
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware lola_pcm_hw = {
|
||||
static const struct snd_pcm_hardware lola_pcm_hw = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -77,7 +77,7 @@ MODULE_DEVICE_TABLE(pci, snd_lx6464es_ids);
|
||||
|
||||
|
||||
/* alsa callbacks */
|
||||
static struct snd_pcm_hardware lx_caps = {
|
||||
static const struct snd_pcm_hardware lx_caps = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
|
@@ -1681,7 +1681,7 @@ static irqreturn_t snd_m3_interrupt(int irq, void *dev_id)
|
||||
/*
|
||||
*/
|
||||
|
||||
static struct snd_pcm_hardware snd_m3_playback =
|
||||
static const struct snd_pcm_hardware snd_m3_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -1702,7 +1702,7 @@ static struct snd_pcm_hardware snd_m3_playback =
|
||||
.periods_max = 1024,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_m3_capture =
|
||||
static const struct snd_pcm_hardware snd_m3_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
|
@@ -675,7 +675,7 @@ static int snd_mixart_hw_free(struct snd_pcm_substream *subs)
|
||||
/*
|
||||
* TODO CONFIGURATION SPACE for all pcms, mono pcm must update channels_max
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_mixart_analog_caps =
|
||||
static const struct snd_pcm_hardware snd_mixart_analog_caps =
|
||||
{
|
||||
.info = ( SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -696,7 +696,7 @@ static struct snd_pcm_hardware snd_mixart_analog_caps =
|
||||
.periods_max = (32*1024/256),
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_mixart_digital_caps =
|
||||
static const struct snd_pcm_hardware snd_mixart_digital_caps =
|
||||
{
|
||||
.info = ( SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -1052,10 +1052,8 @@ static int snd_mixart_create(struct mixart_mgr *mgr, struct snd_card *card, int
|
||||
};
|
||||
|
||||
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
|
||||
if (! chip) {
|
||||
dev_err(card->dev, "cannot allocate chip\n");
|
||||
if (!chip)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
chip->card = card;
|
||||
chip->chip_idx = idx;
|
||||
@@ -1313,9 +1311,6 @@ static int snd_mixart_probe(struct pci_dev *pci,
|
||||
}
|
||||
mgr->irq = pci->irq;
|
||||
|
||||
sprintf(mgr->shortname, "Digigram miXart");
|
||||
sprintf(mgr->longname, "%s at 0x%lx & 0x%lx, irq %i", mgr->shortname, mgr->mem[0].phys, mgr->mem[1].phys, mgr->irq);
|
||||
|
||||
/* init mailbox */
|
||||
mgr->msg_fifo_readptr = 0;
|
||||
mgr->msg_fifo_writeptr = 0;
|
||||
@@ -1350,8 +1345,11 @@ static int snd_mixart_probe(struct pci_dev *pci,
|
||||
}
|
||||
|
||||
strcpy(card->driver, CARD_NAME);
|
||||
sprintf(card->shortname, "%s [PCM #%d]", mgr->shortname, i);
|
||||
sprintf(card->longname, "%s [PCM #%d]", mgr->longname, i);
|
||||
snprintf(card->shortname, sizeof(card->shortname),
|
||||
"Digigram miXart [PCM #%d]", i);
|
||||
snprintf(card->longname, sizeof(card->longname),
|
||||
"Digigram miXart at 0x%lx & 0x%lx, irq %i [PCM #%d]",
|
||||
mgr->mem[0].phys, mgr->mem[1].phys, mgr->irq, i);
|
||||
|
||||
if ((err = snd_mixart_create(mgr, card, i)) < 0) {
|
||||
snd_card_free(card);
|
||||
|
@@ -74,10 +74,6 @@ struct mixart_mgr {
|
||||
/* memory-maps */
|
||||
struct mem_area mem[2];
|
||||
|
||||
/* share the name */
|
||||
char shortname[32]; /* short name of this soundcard */
|
||||
char longname[80]; /* name of this soundcard */
|
||||
|
||||
/* one and only blocking message or notification may be pending */
|
||||
u32 pending_event;
|
||||
wait_queue_head_t msg_sleep;
|
||||
|
@@ -1271,7 +1271,7 @@ snd_nm256_ac97_write(struct snd_ac97 *ac97,
|
||||
}
|
||||
|
||||
/* static resolution table */
|
||||
static struct snd_ac97_res_table nm256_res_table[] = {
|
||||
static const struct snd_ac97_res_table nm256_res_table[] = {
|
||||
{ AC97_MASTER, 0x1f1f },
|
||||
{ AC97_HEADPHONE, 0x1f1f },
|
||||
{ AC97_MASTER_MONO, 0x001f },
|
||||
|
@@ -986,7 +986,7 @@ static int pcxhr_hw_free(struct snd_pcm_substream *subs)
|
||||
/*
|
||||
* CONFIGURATION SPACE for all pcms, mono pcm must update channels_max
|
||||
*/
|
||||
static struct snd_pcm_hardware pcxhr_caps =
|
||||
static const struct snd_pcm_hardware pcxhr_caps =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -1165,7 +1165,7 @@ int pcxhr_create_pcm(struct snd_pcxhr *chip)
|
||||
struct snd_pcm *pcm;
|
||||
char name[32];
|
||||
|
||||
sprintf(name, "pcxhr %d", chip->chip_idx);
|
||||
snprintf(name, sizeof(name), "pcxhr %d", chip->chip_idx);
|
||||
if ((err = snd_pcm_new(chip->card, name, 0,
|
||||
chip->nb_streams_play,
|
||||
chip->nb_streams_capt, &pcm)) < 0) {
|
||||
@@ -1215,10 +1215,8 @@ static int pcxhr_create(struct pcxhr_mgr *mgr,
|
||||
};
|
||||
|
||||
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
|
||||
if (! chip) {
|
||||
dev_err(card->dev, "cannot allocate chip\n");
|
||||
if (!chip)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
chip->card = card;
|
||||
chip->chip_idx = idx;
|
||||
@@ -1252,7 +1250,7 @@ static void pcxhr_proc_info(struct snd_info_entry *entry,
|
||||
struct snd_pcxhr *chip = entry->private_data;
|
||||
struct pcxhr_mgr *mgr = chip->mgr;
|
||||
|
||||
snd_iprintf(buffer, "\n%s\n", mgr->longname);
|
||||
snd_iprintf(buffer, "\n%s\n", mgr->name);
|
||||
|
||||
/* stats available when embedded DSP is running */
|
||||
if (mgr->dsp_loaded & (1 << PCXHR_FIRMWARE_DSP_MAIN_INDEX)) {
|
||||
@@ -1339,7 +1337,7 @@ static void pcxhr_proc_sync(struct snd_info_entry *entry,
|
||||
max_clock = PCXHR_CLOCK_TYPE_MAX;
|
||||
}
|
||||
|
||||
snd_iprintf(buffer, "\n%s\n", mgr->longname);
|
||||
snd_iprintf(buffer, "\n%s\n", mgr->name);
|
||||
snd_iprintf(buffer, "Current Sample Clock\t: %s\n",
|
||||
texts[mgr->cur_clock_type]);
|
||||
snd_iprintf(buffer, "Current Sample Rate\t= %d\n",
|
||||
@@ -1597,10 +1595,9 @@ static int pcxhr_probe(struct pci_dev *pci,
|
||||
}
|
||||
mgr->irq = pci->irq;
|
||||
|
||||
sprintf(mgr->shortname, "Digigram %s", card_name);
|
||||
sprintf(mgr->longname, "%s at 0x%lx & 0x%lx, 0x%lx irq %i",
|
||||
mgr->shortname,
|
||||
mgr->port[0], mgr->port[1], mgr->port[2], mgr->irq);
|
||||
snprintf(mgr->name, sizeof(mgr->name),
|
||||
"Digigram at 0x%lx & 0x%lx, 0x%lx irq %i",
|
||||
mgr->port[0], mgr->port[1], mgr->port[2], mgr->irq);
|
||||
|
||||
/* ISR lock */
|
||||
mutex_init(&mgr->lock);
|
||||
@@ -1644,8 +1641,10 @@ static int pcxhr_probe(struct pci_dev *pci,
|
||||
}
|
||||
|
||||
strcpy(card->driver, DRIVER_NAME);
|
||||
sprintf(card->shortname, "%s [PCM #%d]", mgr->shortname, i);
|
||||
sprintf(card->longname, "%s [PCM #%d]", mgr->longname, i);
|
||||
snprintf(card->shortname, sizeof(card->shortname),
|
||||
"Digigram [PCM #%d]", i);
|
||||
snprintf(card->longname, sizeof(card->longname),
|
||||
"%s [PCM #%d]", mgr->name, i);
|
||||
|
||||
if ((err = pcxhr_create(mgr, card, i)) < 0) {
|
||||
snd_card_free(card);
|
||||
|
@@ -75,8 +75,7 @@ struct pcxhr_mgr {
|
||||
unsigned long port[3];
|
||||
|
||||
/* share the name */
|
||||
char shortname[32]; /* short name of this soundcard */
|
||||
char longname[96]; /* name of this soundcard */
|
||||
char name[40]; /* name of this soundcard */
|
||||
|
||||
struct pcxhr_rmh *prmh;
|
||||
|
||||
|
@@ -185,7 +185,7 @@ static int pcxhr_analog_vol_put(struct snd_kcontrol *kcontrol,
|
||||
return changed;
|
||||
}
|
||||
|
||||
static struct snd_kcontrol_new pcxhr_control_analog_level = {
|
||||
static const struct snd_kcontrol_new pcxhr_control_analog_level = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = (SNDRV_CTL_ELEM_ACCESS_READWRITE |
|
||||
SNDRV_CTL_ELEM_ACCESS_TLV_READ),
|
||||
@@ -409,7 +409,7 @@ static int pcxhr_pcm_vol_put(struct snd_kcontrol *kcontrol,
|
||||
return changed;
|
||||
}
|
||||
|
||||
static struct snd_kcontrol_new snd_pcxhr_pcm_vol =
|
||||
static const struct snd_kcontrol_new snd_pcxhr_pcm_vol =
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = (SNDRV_CTL_ELEM_ACCESS_READWRITE |
|
||||
|
@@ -1315,7 +1315,7 @@ static int riptide_reset(struct cmdif *cif, struct snd_riptide *chip)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_riptide_playback = {
|
||||
static const struct snd_pcm_hardware snd_riptide_playback = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_MMAP_VALID),
|
||||
@@ -1334,7 +1334,7 @@ static struct snd_pcm_hardware snd_riptide_playback = {
|
||||
.periods_max = 64,
|
||||
.fifo_size = 0,
|
||||
};
|
||||
static struct snd_pcm_hardware snd_riptide_capture = {
|
||||
static const struct snd_pcm_hardware snd_riptide_capture = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_MMAP_VALID),
|
||||
|
@@ -314,7 +314,7 @@ static int snd_rme32_capture_copy_kernel(struct snd_pcm_substream *substream,
|
||||
/*
|
||||
* SPDIF I/O capabilities (half-duplex mode)
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_rme32_spdif_info = {
|
||||
static const struct snd_pcm_hardware snd_rme32_spdif_info = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP_IOMEM |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -340,7 +340,7 @@ static struct snd_pcm_hardware snd_rme32_spdif_info = {
|
||||
/*
|
||||
* ADAT I/O capabilities (half-duplex mode)
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_rme32_adat_info =
|
||||
static const struct snd_pcm_hardware snd_rme32_adat_info =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP_IOMEM |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -365,7 +365,7 @@ static struct snd_pcm_hardware snd_rme32_adat_info =
|
||||
/*
|
||||
* SPDIF I/O capabilities (full-duplex mode)
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_rme32_spdif_fd_info = {
|
||||
static const struct snd_pcm_hardware snd_rme32_spdif_fd_info = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -391,7 +391,7 @@ static struct snd_pcm_hardware snd_rme32_spdif_fd_info = {
|
||||
/*
|
||||
* ADAT I/O capabilities (full-duplex mode)
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_rme32_adat_fd_info =
|
||||
static const struct snd_pcm_hardware snd_rme32_adat_fd_info =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
|
@@ -384,7 +384,7 @@ snd_rme96_capture_copy_kernel(struct snd_pcm_substream *substream,
|
||||
/*
|
||||
* Digital output capabilities (S/PDIF)
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_rme96_playback_spdif_info =
|
||||
static const struct snd_pcm_hardware snd_rme96_playback_spdif_info =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP_IOMEM |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -415,7 +415,7 @@ static struct snd_pcm_hardware snd_rme96_playback_spdif_info =
|
||||
/*
|
||||
* Digital input capabilities (S/PDIF)
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_rme96_capture_spdif_info =
|
||||
static const struct snd_pcm_hardware snd_rme96_capture_spdif_info =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP_IOMEM |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -446,7 +446,7 @@ static struct snd_pcm_hardware snd_rme96_capture_spdif_info =
|
||||
/*
|
||||
* Digital output capabilities (ADAT)
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_rme96_playback_adat_info =
|
||||
static const struct snd_pcm_hardware snd_rme96_playback_adat_info =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP_IOMEM |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -473,7 +473,7 @@ static struct snd_pcm_hardware snd_rme96_playback_adat_info =
|
||||
/*
|
||||
* Digital input capabilities (ADAT)
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_rme96_capture_adat_info =
|
||||
static const struct snd_pcm_hardware snd_rme96_capture_adat_info =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP_IOMEM |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -1199,7 +1199,7 @@ snd_rme96_playback_spdif_open(struct snd_pcm_substream *substream)
|
||||
|
||||
snd_pcm_set_sync(substream);
|
||||
spin_lock_irq(&rme96->lock);
|
||||
if (rme96->playback_substream != NULL) {
|
||||
if (rme96->playback_substream) {
|
||||
spin_unlock_irq(&rme96->lock);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -1248,7 +1248,7 @@ snd_rme96_capture_spdif_open(struct snd_pcm_substream *substream)
|
||||
}
|
||||
|
||||
spin_lock_irq(&rme96->lock);
|
||||
if (rme96->capture_substream != NULL) {
|
||||
if (rme96->capture_substream) {
|
||||
spin_unlock_irq(&rme96->lock);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -1268,7 +1268,7 @@ snd_rme96_playback_adat_open(struct snd_pcm_substream *substream)
|
||||
|
||||
snd_pcm_set_sync(substream);
|
||||
spin_lock_irq(&rme96->lock);
|
||||
if (rme96->playback_substream != NULL) {
|
||||
if (rme96->playback_substream) {
|
||||
spin_unlock_irq(&rme96->lock);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -1315,7 +1315,7 @@ snd_rme96_capture_adat_open(struct snd_pcm_substream *substream)
|
||||
}
|
||||
|
||||
spin_lock_irq(&rme96->lock);
|
||||
if (rme96->capture_substream != NULL) {
|
||||
if (rme96->capture_substream) {
|
||||
spin_unlock_irq(&rme96->lock);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -1578,9 +1578,9 @@ snd_rme96_free(void *private_data)
|
||||
{
|
||||
struct rme96 *rme96 = (struct rme96 *)private_data;
|
||||
|
||||
if (rme96 == NULL) {
|
||||
if (!rme96)
|
||||
return;
|
||||
}
|
||||
|
||||
if (rme96->irq >= 0) {
|
||||
snd_rme96_trigger(rme96, RME96_STOP_BOTH);
|
||||
rme96->areg &= ~RME96_AR_DAC_EN;
|
||||
@@ -2481,25 +2481,20 @@ snd_rme96_probe(struct pci_dev *pci,
|
||||
rme96 = card->private_data;
|
||||
rme96->card = card;
|
||||
rme96->pci = pci;
|
||||
if ((err = snd_rme96_create(rme96)) < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
err = snd_rme96_create(rme96);
|
||||
if (err)
|
||||
goto free_card;
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
rme96->playback_suspend_buffer = vmalloc(RME96_BUFFER_SIZE);
|
||||
if (!rme96->playback_suspend_buffer) {
|
||||
dev_err(card->dev,
|
||||
"Failed to allocate playback suspend buffer!\n");
|
||||
snd_card_free(card);
|
||||
return -ENOMEM;
|
||||
err = -ENOMEM;
|
||||
goto free_card;
|
||||
}
|
||||
rme96->capture_suspend_buffer = vmalloc(RME96_BUFFER_SIZE);
|
||||
if (!rme96->capture_suspend_buffer) {
|
||||
dev_err(card->dev,
|
||||
"Failed to allocate capture suspend buffer!\n");
|
||||
snd_card_free(card);
|
||||
return -ENOMEM;
|
||||
err = -ENOMEM;
|
||||
goto free_card;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2525,14 +2520,16 @@ snd_rme96_probe(struct pci_dev *pci,
|
||||
}
|
||||
sprintf(card->longname, "%s at 0x%lx, irq %d", card->shortname,
|
||||
rme96->port, rme96->irq);
|
||||
|
||||
if ((err = snd_card_register(card)) < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
err = snd_card_register(card);
|
||||
if (err)
|
||||
goto free_card;
|
||||
|
||||
pci_set_drvdata(pci, card);
|
||||
dev++;
|
||||
return 0;
|
||||
free_card:
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
|
||||
static void snd_rme96_remove(struct pci_dev *pci)
|
||||
|
@@ -4211,7 +4211,7 @@ static int snd_hdsp_prepare(struct snd_pcm_substream *substream)
|
||||
return result;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_hdsp_playback_subinfo =
|
||||
static const struct snd_pcm_hardware snd_hdsp_playback_subinfo =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -4241,7 +4241,7 @@ static struct snd_pcm_hardware snd_hdsp_playback_subinfo =
|
||||
.fifo_size = 0
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_hdsp_capture_subinfo =
|
||||
static const struct snd_pcm_hardware snd_hdsp_capture_subinfo =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -5381,17 +5381,16 @@ static int snd_hdsp_probe(struct pci_dev *pci,
|
||||
card->private_free = snd_hdsp_card_free;
|
||||
hdsp->dev = dev;
|
||||
hdsp->pci = pci;
|
||||
|
||||
if ((err = snd_hdsp_create(card, hdsp)) < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
err = snd_hdsp_create(card, hdsp);
|
||||
if (err)
|
||||
goto free_card;
|
||||
|
||||
strcpy(card->shortname, "Hammerfall DSP");
|
||||
sprintf(card->longname, "%s at 0x%lx, irq %d", hdsp->card_name,
|
||||
hdsp->port, hdsp->irq);
|
||||
|
||||
if ((err = snd_card_register(card)) < 0) {
|
||||
err = snd_card_register(card);
|
||||
if (err) {
|
||||
free_card:
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
|
@@ -1521,7 +1521,7 @@ static void hdspm_silence_playback(struct hdspm *hdspm)
|
||||
int n = hdspm->period_bytes;
|
||||
void *buf = hdspm->playback_buffer;
|
||||
|
||||
if (buf == NULL)
|
||||
if (!buf)
|
||||
return;
|
||||
|
||||
for (i = 0; i < HDSPM_MAX_CHANNELS; i++) {
|
||||
@@ -2061,7 +2061,7 @@ static int snd_hdspm_create_midi(struct snd_card *card,
|
||||
struct hdspm *hdspm, int id)
|
||||
{
|
||||
int err;
|
||||
char buf[32];
|
||||
char buf[64];
|
||||
|
||||
hdspm->midi[id].id = id;
|
||||
hdspm->midi[id].hdspm = hdspm;
|
||||
@@ -2120,19 +2120,23 @@ static int snd_hdspm_create_midi(struct snd_card *card,
|
||||
if ((id < 2) || ((2 == id) && ((MADI == hdspm->io_type) ||
|
||||
(MADIface == hdspm->io_type)))) {
|
||||
if ((id == 0) && (MADIface == hdspm->io_type)) {
|
||||
sprintf(buf, "%s MIDIoverMADI", card->shortname);
|
||||
snprintf(buf, sizeof(buf), "%s MIDIoverMADI",
|
||||
card->shortname);
|
||||
} else if ((id == 2) && (MADI == hdspm->io_type)) {
|
||||
sprintf(buf, "%s MIDIoverMADI", card->shortname);
|
||||
snprintf(buf, sizeof(buf), "%s MIDIoverMADI",
|
||||
card->shortname);
|
||||
} else {
|
||||
sprintf(buf, "%s MIDI %d", card->shortname, id+1);
|
||||
snprintf(buf, sizeof(buf), "%s MIDI %d",
|
||||
card->shortname, id+1);
|
||||
}
|
||||
err = snd_rawmidi_new(card, buf, id, 1, 1,
|
||||
&hdspm->midi[id].rmidi);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
sprintf(hdspm->midi[id].rmidi->name, "%s MIDI %d",
|
||||
card->id, id+1);
|
||||
snprintf(hdspm->midi[id].rmidi->name,
|
||||
sizeof(hdspm->midi[id].rmidi->name),
|
||||
"%s MIDI %d", card->id, id+1);
|
||||
hdspm->midi[id].rmidi->private_data = &hdspm->midi[id];
|
||||
|
||||
snd_rawmidi_set_ops(hdspm->midi[id].rmidi,
|
||||
@@ -2148,14 +2152,16 @@ static int snd_hdspm_create_midi(struct snd_card *card,
|
||||
SNDRV_RAWMIDI_INFO_DUPLEX;
|
||||
} else {
|
||||
/* TCO MTC, read only */
|
||||
sprintf(buf, "%s MTC %d", card->shortname, id+1);
|
||||
snprintf(buf, sizeof(buf), "%s MTC %d",
|
||||
card->shortname, id+1);
|
||||
err = snd_rawmidi_new(card, buf, id, 1, 1,
|
||||
&hdspm->midi[id].rmidi);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
sprintf(hdspm->midi[id].rmidi->name,
|
||||
"%s MTC %d", card->id, id+1);
|
||||
snprintf(hdspm->midi[id].rmidi->name,
|
||||
sizeof(hdspm->midi[id].rmidi->name),
|
||||
"%s MTC %d", card->id, id+1);
|
||||
hdspm->midi[id].rmidi->private_data = &hdspm->midi[id];
|
||||
|
||||
snd_rawmidi_set_ops(hdspm->midi[id].rmidi,
|
||||
@@ -4700,7 +4706,7 @@ static int snd_hdspm_create_controls(struct snd_card *card,
|
||||
break;
|
||||
}
|
||||
|
||||
if (NULL != list) {
|
||||
if (list) {
|
||||
for (idx = 0; idx < limit; idx++) {
|
||||
err = snd_ctl_add(card,
|
||||
snd_ctl_new1(&list[idx], hdspm));
|
||||
@@ -6063,13 +6069,13 @@ static int snd_hdspm_open(struct snd_pcm_substream *substream)
|
||||
snd_hdspm_capture_subinfo;
|
||||
|
||||
if (playback) {
|
||||
if (hdspm->capture_substream == NULL)
|
||||
if (!hdspm->capture_substream)
|
||||
hdspm_stop_audio(hdspm);
|
||||
|
||||
hdspm->playback_pid = current->pid;
|
||||
hdspm->playback_substream = substream;
|
||||
} else {
|
||||
if (hdspm->playback_substream == NULL)
|
||||
if (!hdspm->playback_substream)
|
||||
hdspm_stop_audio(hdspm);
|
||||
|
||||
hdspm->capture_pid = current->pid;
|
||||
@@ -6215,7 +6221,7 @@ static int snd_hdspm_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
|
||||
}
|
||||
levels->status2 = hdspm_read(hdspm, HDSPM_statusRegister2);
|
||||
|
||||
s = copy_to_user(argp, levels, sizeof(struct hdspm_peak_rms));
|
||||
s = copy_to_user(argp, levels, sizeof(*levels));
|
||||
if (0 != s) {
|
||||
/* dev_err(hdspm->card->dev, "copy_to_user(.., .., %lu): %lu
|
||||
[Levels]\n", sizeof(struct hdspm_peak_rms), s);
|
||||
@@ -6260,7 +6266,7 @@ static int snd_hdspm_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
|
||||
ltc.input_format = no_video;
|
||||
}
|
||||
|
||||
s = copy_to_user(argp, <c, sizeof(struct hdspm_ltc));
|
||||
s = copy_to_user(argp, <c, sizeof(ltc));
|
||||
if (0 != s) {
|
||||
/*
|
||||
dev_err(hdspm->card->dev, "copy_to_user(.., .., %lu): %lu [LTC]\n", sizeof(struct hdspm_ltc), s); */
|
||||
@@ -6351,7 +6357,7 @@ static int snd_hdspm_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
|
||||
if (copy_from_user(&mixer, argp, sizeof(mixer)))
|
||||
return -EFAULT;
|
||||
if (copy_to_user((void __user *)mixer.mixer, hdspm->mixer,
|
||||
sizeof(struct hdspm_mixer)))
|
||||
sizeof(*mixer.mixer)))
|
||||
return -EFAULT;
|
||||
break;
|
||||
|
||||
@@ -6630,14 +6636,10 @@ static int snd_hdspm_create(struct snd_card *card,
|
||||
hdspm->irq = pci->irq;
|
||||
|
||||
dev_dbg(card->dev, "kmalloc Mixer memory of %zd Bytes\n",
|
||||
sizeof(struct hdspm_mixer));
|
||||
hdspm->mixer = kzalloc(sizeof(struct hdspm_mixer), GFP_KERNEL);
|
||||
if (!hdspm->mixer) {
|
||||
dev_err(card->dev,
|
||||
"unable to kmalloc Mixer memory of %d Bytes\n",
|
||||
(int)sizeof(struct hdspm_mixer));
|
||||
sizeof(*hdspm->mixer));
|
||||
hdspm->mixer = kzalloc(sizeof(*hdspm->mixer), GFP_KERNEL);
|
||||
if (!hdspm->mixer)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
hdspm->port_names_in = NULL;
|
||||
hdspm->port_names_out = NULL;
|
||||
@@ -6772,11 +6774,10 @@ static int snd_hdspm_create(struct snd_card *card,
|
||||
if (hdspm_read(hdspm, HDSPM_statusRegister2) &
|
||||
HDSPM_s2_tco_detect) {
|
||||
hdspm->midiPorts++;
|
||||
hdspm->tco = kzalloc(sizeof(struct hdspm_tco),
|
||||
GFP_KERNEL);
|
||||
if (NULL != hdspm->tco) {
|
||||
hdspm->tco = kzalloc(sizeof(*hdspm->tco), GFP_KERNEL);
|
||||
if (hdspm->tco)
|
||||
hdspm_tco_write(hdspm);
|
||||
}
|
||||
|
||||
dev_info(card->dev, "AIO/RayDAT TCO module found\n");
|
||||
} else {
|
||||
hdspm->tco = NULL;
|
||||
@@ -6787,11 +6788,10 @@ static int snd_hdspm_create(struct snd_card *card,
|
||||
case AES32:
|
||||
if (hdspm_read(hdspm, HDSPM_statusRegister) & HDSPM_tco_detect) {
|
||||
hdspm->midiPorts++;
|
||||
hdspm->tco = kzalloc(sizeof(struct hdspm_tco),
|
||||
GFP_KERNEL);
|
||||
if (NULL != hdspm->tco) {
|
||||
hdspm->tco = kzalloc(sizeof(*hdspm->tco), GFP_KERNEL);
|
||||
if (hdspm->tco)
|
||||
hdspm_tco_write(hdspm);
|
||||
}
|
||||
|
||||
dev_info(card->dev, "MADI/AES TCO module found\n");
|
||||
} else {
|
||||
hdspm->tco = NULL;
|
||||
@@ -6868,8 +6868,9 @@ static int snd_hdspm_create(struct snd_card *card,
|
||||
* this case, we don't set card->id to avoid collisions
|
||||
* when running with multiple cards.
|
||||
*/
|
||||
if (NULL == id[hdspm->dev] && hdspm->serial != 0xFFFFFF) {
|
||||
sprintf(card->id, "HDSPMx%06x", hdspm->serial);
|
||||
if (!id[hdspm->dev] && hdspm->serial != 0xFFFFFF) {
|
||||
snprintf(card->id, sizeof(card->id),
|
||||
"HDSPMx%06x", hdspm->serial);
|
||||
snd_card_set_id(card, card->id);
|
||||
}
|
||||
}
|
||||
@@ -6938,7 +6939,7 @@ static int snd_hdspm_probe(struct pci_dev *pci,
|
||||
}
|
||||
|
||||
err = snd_card_new(&pci->dev, index[dev], id[dev],
|
||||
THIS_MODULE, sizeof(struct hdspm), &card);
|
||||
THIS_MODULE, sizeof(*hdspm), &card);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
@@ -6954,17 +6955,18 @@ static int snd_hdspm_probe(struct pci_dev *pci,
|
||||
}
|
||||
|
||||
if (hdspm->io_type != MADIface) {
|
||||
sprintf(card->shortname, "%s_%x",
|
||||
hdspm->card_name,
|
||||
hdspm->serial);
|
||||
sprintf(card->longname, "%s S/N 0x%x at 0x%lx, irq %d",
|
||||
hdspm->card_name,
|
||||
hdspm->serial,
|
||||
hdspm->port, hdspm->irq);
|
||||
snprintf(card->shortname, sizeof(card->shortname), "%s_%x",
|
||||
hdspm->card_name, hdspm->serial);
|
||||
snprintf(card->longname, sizeof(card->longname),
|
||||
"%s S/N 0x%x at 0x%lx, irq %d",
|
||||
hdspm->card_name, hdspm->serial,
|
||||
hdspm->port, hdspm->irq);
|
||||
} else {
|
||||
sprintf(card->shortname, "%s", hdspm->card_name);
|
||||
sprintf(card->longname, "%s at 0x%lx, irq %d",
|
||||
hdspm->card_name, hdspm->port, hdspm->irq);
|
||||
snprintf(card->shortname, sizeof(card->shortname), "%s",
|
||||
hdspm->card_name);
|
||||
snprintf(card->longname, sizeof(card->longname),
|
||||
"%s at 0x%lx, irq %d",
|
||||
hdspm->card_name, hdspm->port, hdspm->irq);
|
||||
}
|
||||
|
||||
err = snd_card_register(card);
|
||||
|
@@ -2181,7 +2181,7 @@ static int snd_rme9652_prepare(struct snd_pcm_substream *substream)
|
||||
return result;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_rme9652_playback_subinfo =
|
||||
static const struct snd_pcm_hardware snd_rme9652_playback_subinfo =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -2205,7 +2205,7 @@ static struct snd_pcm_hardware snd_rme9652_playback_subinfo =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_rme9652_capture_subinfo =
|
||||
static const struct snd_pcm_hardware snd_rme9652_capture_subinfo =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -2618,19 +2618,17 @@ static int snd_rme9652_probe(struct pci_dev *pci,
|
||||
card->private_free = snd_rme9652_card_free;
|
||||
rme9652->dev = dev;
|
||||
rme9652->pci = pci;
|
||||
|
||||
if ((err = snd_rme9652_create(card, rme9652, precise_ptr[dev])) < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
err = snd_rme9652_create(card, rme9652, precise_ptr[dev]);
|
||||
if (err)
|
||||
goto free_card;
|
||||
|
||||
strcpy(card->shortname, rme9652->card_name);
|
||||
|
||||
sprintf(card->longname, "%s at 0x%lx, irq %d",
|
||||
card->shortname, rme9652->port, rme9652->irq);
|
||||
|
||||
|
||||
if ((err = snd_card_register(card)) < 0) {
|
||||
err = snd_card_register(card);
|
||||
if (err) {
|
||||
free_card:
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
|
@@ -159,7 +159,7 @@ struct sis7019 {
|
||||
* We'll add a constraint upon open that limits the period and buffer sample
|
||||
* size to values that are legal for the hardware.
|
||||
*/
|
||||
static struct snd_pcm_hardware sis_playback_hw_info = {
|
||||
static const struct snd_pcm_hardware sis_playback_hw_info = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -180,7 +180,7 @@ static struct snd_pcm_hardware sis_playback_hw_info = {
|
||||
.periods_max = (0xfff9 / 9),
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware sis_capture_hw_info = {
|
||||
static const struct snd_pcm_hardware sis_capture_hw_info = {
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
@@ -872,7 +872,7 @@ static int sis_pcm_capture_prepare(struct snd_pcm_substream *substream)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_pcm_ops sis_playback_ops = {
|
||||
static const struct snd_pcm_ops sis_playback_ops = {
|
||||
.open = sis_playback_open,
|
||||
.close = sis_substream_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
@@ -883,7 +883,7 @@ static struct snd_pcm_ops sis_playback_ops = {
|
||||
.pointer = sis_pcm_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops sis_capture_ops = {
|
||||
static const struct snd_pcm_ops sis_capture_ops = {
|
||||
.open = sis_capture_open,
|
||||
.close = sis_substream_close,
|
||||
.ioctl = snd_pcm_lib_ioctl,
|
||||
|
@@ -776,7 +776,7 @@ static snd_pcm_uframes_t snd_sonicvibes_capture_pointer(struct snd_pcm_substream
|
||||
return bytes_to_frames(substream->runtime, ptr);
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_sonicvibes_playback =
|
||||
static const struct snd_pcm_hardware snd_sonicvibes_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -795,7 +795,7 @@ static struct snd_pcm_hardware snd_sonicvibes_playback =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_sonicvibes_capture =
|
||||
static const struct snd_pcm_hardware snd_sonicvibes_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -1727,7 +1727,7 @@ static snd_pcm_uframes_t snd_trident_spdif_pointer(struct snd_pcm_substream *sub
|
||||
* Playback support device description
|
||||
*/
|
||||
|
||||
static struct snd_pcm_hardware snd_trident_playback =
|
||||
static const struct snd_pcm_hardware snd_trident_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1752,7 +1752,7 @@ static struct snd_pcm_hardware snd_trident_playback =
|
||||
* Capture support device description
|
||||
*/
|
||||
|
||||
static struct snd_pcm_hardware snd_trident_capture =
|
||||
static const struct snd_pcm_hardware snd_trident_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1777,7 +1777,7 @@ static struct snd_pcm_hardware snd_trident_capture =
|
||||
* Foldback capture support device description
|
||||
*/
|
||||
|
||||
static struct snd_pcm_hardware snd_trident_foldback =
|
||||
static const struct snd_pcm_hardware snd_trident_foldback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1801,7 +1801,7 @@ static struct snd_pcm_hardware snd_trident_foldback =
|
||||
* SPDIF playback support device description
|
||||
*/
|
||||
|
||||
static struct snd_pcm_hardware snd_trident_spdif =
|
||||
static const struct snd_pcm_hardware snd_trident_spdif =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -1822,7 +1822,7 @@ static struct snd_pcm_hardware snd_trident_spdif =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_trident_spdif_7018 =
|
||||
static const struct snd_pcm_hardware snd_trident_spdif_7018 =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
@@ -2093,7 +2093,7 @@ static const struct snd_pcm_ops snd_trident_nx_playback_ops = {
|
||||
.page = snd_pcm_sgbuf_ops_page,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_trident_capture_ops = {
|
||||
static const struct snd_pcm_ops snd_trident_capture_ops = {
|
||||
.open = snd_trident_capture_open,
|
||||
.close = snd_trident_capture_close,
|
||||
.ioctl = snd_trident_ioctl,
|
||||
@@ -2104,7 +2104,7 @@ static struct snd_pcm_ops snd_trident_capture_ops = {
|
||||
.pointer = snd_trident_capture_pointer,
|
||||
};
|
||||
|
||||
static struct snd_pcm_ops snd_trident_si7018_capture_ops = {
|
||||
static const struct snd_pcm_ops snd_trident_si7018_capture_ops = {
|
||||
.open = snd_trident_capture_open,
|
||||
.close = snd_trident_capture_close,
|
||||
.ioctl = snd_trident_ioctl,
|
||||
@@ -3363,11 +3363,9 @@ static int snd_trident_tlb_alloc(struct snd_trident *trident)
|
||||
trident->tlb.entries_dmaaddr = ALIGN(trident->tlb.buffer.addr, SNDRV_TRIDENT_MAX_PAGES * 4);
|
||||
/* allocate shadow TLB page table (virtual addresses) */
|
||||
trident->tlb.shadow_entries = vmalloc(SNDRV_TRIDENT_MAX_PAGES*sizeof(unsigned long));
|
||||
if (trident->tlb.shadow_entries == NULL) {
|
||||
dev_err(trident->card->dev,
|
||||
"unable to allocate shadow TLB entries\n");
|
||||
if (!trident->tlb.shadow_entries)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/* allocate and setup silent page and initialise TLB entries */
|
||||
if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(trident->pci),
|
||||
SNDRV_TRIDENT_PAGE_SIZE, &trident->tlb.silent_page) < 0) {
|
||||
|
@@ -1150,7 +1150,7 @@ static int snd_via8233_capture_prepare(struct snd_pcm_substream *substream)
|
||||
/*
|
||||
* pcm hardware definition, identical for both playback and capture
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_via82xx_hw =
|
||||
static const struct snd_pcm_hardware snd_via82xx_hw =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -714,7 +714,7 @@ static int snd_via82xx_pcm_prepare(struct snd_pcm_substream *substream)
|
||||
/*
|
||||
* pcm hardware definition, identical for both playback and capture
|
||||
*/
|
||||
static struct snd_pcm_hardware snd_via82xx_hw =
|
||||
static const struct snd_pcm_hardware snd_via82xx_hw =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
|
@@ -845,7 +845,7 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static struct snd_pcm_hardware snd_ymfpci_playback =
|
||||
static const struct snd_pcm_hardware snd_ymfpci_playback =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
@@ -867,7 +867,7 @@ static struct snd_pcm_hardware snd_ymfpci_playback =
|
||||
.fifo_size = 0,
|
||||
};
|
||||
|
||||
static struct snd_pcm_hardware snd_ymfpci_capture =
|
||||
static const struct snd_pcm_hardware snd_ymfpci_capture =
|
||||
{
|
||||
.info = (SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
|
Reference in New Issue
Block a user