ALSA: cs46xx: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Цей коміт міститься в:
@@ -116,7 +116,7 @@ static unsigned short snd_cs46xx_codec_read(struct snd_cs46xx *chip,
|
||||
|
||||
tmp = snd_cs46xx_peekBA0(chip, BA0_ACCTL);
|
||||
if ((tmp & ACCTL_VFRM) == 0) {
|
||||
snd_printk(KERN_WARNING "cs46xx: ACCTL_VFRM not set 0x%x\n",tmp);
|
||||
dev_warn(chip->card->dev, "ACCTL_VFRM not set 0x%x\n", tmp);
|
||||
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, (tmp & (~ACCTL_ESYN)) | ACCTL_VFRM );
|
||||
msleep(50);
|
||||
tmp = snd_cs46xx_peekBA0(chip, BA0_ACCTL + offset);
|
||||
@@ -168,7 +168,8 @@ static unsigned short snd_cs46xx_codec_read(struct snd_cs46xx *chip,
|
||||
goto ok1;
|
||||
}
|
||||
|
||||
snd_printk(KERN_ERR "AC'97 read problem (ACCTL_DCV), reg = 0x%x\n", reg);
|
||||
dev_err(chip->card->dev,
|
||||
"AC'97 read problem (ACCTL_DCV), reg = 0x%x\n", reg);
|
||||
result = 0xffff;
|
||||
goto end;
|
||||
|
||||
@@ -187,7 +188,9 @@ static unsigned short snd_cs46xx_codec_read(struct snd_cs46xx *chip,
|
||||
udelay(10);
|
||||
}
|
||||
|
||||
snd_printk(KERN_ERR "AC'97 read problem (ACSTS_VSTS), codec_index %d, reg = 0x%x\n", codec_index, reg);
|
||||
dev_err(chip->card->dev,
|
||||
"AC'97 read problem (ACSTS_VSTS), codec_index %d, reg = 0x%x\n",
|
||||
codec_index, reg);
|
||||
result = 0xffff;
|
||||
goto end;
|
||||
|
||||
@@ -197,7 +200,8 @@ static unsigned short snd_cs46xx_codec_read(struct snd_cs46xx *chip,
|
||||
* ACSDA = Status Data Register = 474h
|
||||
*/
|
||||
#if 0
|
||||
printk(KERN_DEBUG "e) reg = 0x%x, val = 0x%x, BA0_ACCAD = 0x%x\n", reg,
|
||||
dev_dbg(chip->card->dev,
|
||||
"e) reg = 0x%x, val = 0x%x, BA0_ACCAD = 0x%x\n", reg,
|
||||
snd_cs46xx_peekBA0(chip, BA0_ACSDA),
|
||||
snd_cs46xx_peekBA0(chip, BA0_ACCAD));
|
||||
#endif
|
||||
@@ -286,7 +290,9 @@ static void snd_cs46xx_codec_write(struct snd_cs46xx *chip,
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
snd_printk(KERN_ERR "AC'97 write problem, codec_index = %d, reg = 0x%x, val = 0x%x\n", codec_index, reg, val);
|
||||
dev_err(chip->card->dev,
|
||||
"AC'97 write problem, codec_index = %d, reg = 0x%x, val = 0x%x\n",
|
||||
codec_index, reg, val);
|
||||
end:
|
||||
chip->active_ctrl(chip, -1);
|
||||
}
|
||||
@@ -608,8 +614,8 @@ static int cs46xx_wait_for_fifo(struct snd_cs46xx * chip,int retry_timeout)
|
||||
}
|
||||
|
||||
if(status & SERBST_WBSY) {
|
||||
snd_printk(KERN_ERR "cs46xx: failure waiting for "
|
||||
"FIFO command to complete\n");
|
||||
dev_err(chip->card->dev,
|
||||
"failure waiting for FIFO command to complete\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -646,7 +652,9 @@ static void snd_cs46xx_clear_serial_FIFOs(struct snd_cs46xx *chip)
|
||||
* Make sure the previous FIFO write operation has completed.
|
||||
*/
|
||||
if (cs46xx_wait_for_fifo(chip,1)) {
|
||||
snd_printdd ("failed waiting for FIFO at addr (%02X)\n",idx);
|
||||
dev_dbg(chip->card->dev,
|
||||
"failed waiting for FIFO at addr (%02X)\n",
|
||||
idx);
|
||||
|
||||
if (powerdown)
|
||||
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, tmp);
|
||||
@@ -694,7 +702,7 @@ static void snd_cs46xx_proc_start(struct snd_cs46xx *chip)
|
||||
}
|
||||
|
||||
if (snd_cs46xx_peek(chip, BA1_SPCR) & SPCR_RUNFR)
|
||||
snd_printk(KERN_ERR "SPCR_RUNFR never reset\n");
|
||||
dev_err(chip->card->dev, "SPCR_RUNFR never reset\n");
|
||||
}
|
||||
|
||||
static void snd_cs46xx_proc_stop(struct snd_cs46xx *chip)
|
||||
@@ -1054,7 +1062,8 @@ static int _cs46xx_adjust_sample_rate (struct snd_cs46xx *chip, struct snd_cs46x
|
||||
cpcm->pcm_channel = cs46xx_dsp_create_pcm_channel (chip, sample_rate,
|
||||
cpcm, cpcm->hw_buf.addr,cpcm->pcm_channel_id);
|
||||
if (cpcm->pcm_channel == NULL) {
|
||||
snd_printk(KERN_ERR "cs46xx: failed to create virtual PCM channel\n");
|
||||
dev_err(chip->card->dev,
|
||||
"failed to create virtual PCM channel\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
cpcm->pcm_channel->sample_rate = sample_rate;
|
||||
@@ -1067,7 +1076,8 @@ static int _cs46xx_adjust_sample_rate (struct snd_cs46xx *chip, struct snd_cs46x
|
||||
if ( (cpcm->pcm_channel = cs46xx_dsp_create_pcm_channel (chip, sample_rate, cpcm,
|
||||
cpcm->hw_buf.addr,
|
||||
cpcm->pcm_channel_id)) == NULL) {
|
||||
snd_printk(KERN_ERR "cs46xx: failed to re-create virtual PCM channel\n");
|
||||
dev_err(chip->card->dev,
|
||||
"failed to re-create virtual PCM channel\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
@@ -1116,7 +1126,8 @@ static int snd_cs46xx_playback_hw_params(struct snd_pcm_substream *substream,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
snd_printdd ("period_size (%d), periods (%d) buffer_size(%d)\n",
|
||||
dev_dbg(chip->card->dev,
|
||||
"period_size (%d), periods (%d) buffer_size(%d)\n",
|
||||
period_size, params_periods(hw_params),
|
||||
params_buffer_bytes(hw_params));
|
||||
#endif
|
||||
@@ -1531,22 +1542,20 @@ static int _cs46xx_playback_open_channel (struct snd_pcm_substream *substream,in
|
||||
|
||||
static int snd_cs46xx_playback_open(struct snd_pcm_substream *substream)
|
||||
{
|
||||
snd_printdd("open front channel\n");
|
||||
dev_dbg(substream->pcm->card->dev, "open front channel\n");
|
||||
return _cs46xx_playback_open_channel(substream,DSP_PCM_MAIN_CHANNEL);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
static int snd_cs46xx_playback_open_rear(struct snd_pcm_substream *substream)
|
||||
{
|
||||
snd_printdd("open rear channel\n");
|
||||
|
||||
dev_dbg(substream->pcm->card->dev, "open rear channel\n");
|
||||
return _cs46xx_playback_open_channel(substream,DSP_PCM_REAR_CHANNEL);
|
||||
}
|
||||
|
||||
static int snd_cs46xx_playback_open_clfe(struct snd_pcm_substream *substream)
|
||||
{
|
||||
snd_printdd("open center - LFE channel\n");
|
||||
|
||||
dev_dbg(substream->pcm->card->dev, "open center - LFE channel\n");
|
||||
return _cs46xx_playback_open_channel(substream,DSP_PCM_CENTER_LFE_CHANNEL);
|
||||
}
|
||||
|
||||
@@ -1554,7 +1563,7 @@ static int snd_cs46xx_playback_open_iec958(struct snd_pcm_substream *substream)
|
||||
{
|
||||
struct snd_cs46xx *chip = snd_pcm_substream_chip(substream);
|
||||
|
||||
snd_printdd("open raw iec958 channel\n");
|
||||
dev_dbg(chip->card->dev, "open raw iec958 channel\n");
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
cs46xx_iec958_pre_open (chip);
|
||||
@@ -1570,7 +1579,7 @@ static int snd_cs46xx_playback_close_iec958(struct snd_pcm_substream *substream)
|
||||
int err;
|
||||
struct snd_cs46xx *chip = snd_pcm_substream_chip(substream);
|
||||
|
||||
snd_printdd("close raw iec958 channel\n");
|
||||
dev_dbg(chip->card->dev, "close raw iec958 channel\n");
|
||||
|
||||
err = snd_cs46xx_playback_close(substream);
|
||||
|
||||
@@ -2421,10 +2430,10 @@ static void snd_cs46xx_codec_reset (struct snd_ac97 * ac97)
|
||||
|
||||
/* set the desired CODEC mode */
|
||||
if (ac97->num == CS46XX_PRIMARY_CODEC_INDEX) {
|
||||
snd_printdd("cs46xx: CODEC1 mode %04x\n", 0x0);
|
||||
dev_dbg(ac97->bus->card->dev, "CODEC1 mode %04x\n", 0x0);
|
||||
snd_cs46xx_ac97_write(ac97, AC97_CSR_ACMODE, 0x0);
|
||||
} else if (ac97->num == CS46XX_SECONDARY_CODEC_INDEX) {
|
||||
snd_printdd("cs46xx: CODEC2 mode %04x\n", 0x3);
|
||||
dev_dbg(ac97->bus->card->dev, "CODEC2 mode %04x\n", 0x3);
|
||||
snd_cs46xx_ac97_write(ac97, AC97_CSR_ACMODE, 0x3);
|
||||
} else {
|
||||
snd_BUG(); /* should never happen ... */
|
||||
@@ -2456,7 +2465,8 @@ static void snd_cs46xx_codec_reset (struct snd_ac97 * ac97)
|
||||
msleep(10);
|
||||
} while (time_after_eq(end_time, jiffies));
|
||||
|
||||
snd_printk(KERN_ERR "CS46xx secondary codec doesn't respond!\n");
|
||||
dev_err(ac97->bus->card->dev,
|
||||
"CS46xx secondary codec doesn't respond!\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2476,7 +2486,8 @@ static int cs46xx_detect_codec(struct snd_cs46xx *chip, int codec)
|
||||
snd_cs46xx_codec_write(chip, AC97_RESET, 0, codec);
|
||||
udelay(10);
|
||||
if (snd_cs46xx_codec_read(chip, AC97_RESET, codec) & 0x8000) {
|
||||
snd_printdd("snd_cs46xx: seconadry codec not present\n");
|
||||
dev_dbg(chip->card->dev,
|
||||
"seconadry codec not present\n");
|
||||
return -ENXIO;
|
||||
}
|
||||
}
|
||||
@@ -2489,7 +2500,7 @@ static int cs46xx_detect_codec(struct snd_cs46xx *chip, int codec)
|
||||
}
|
||||
msleep(10);
|
||||
}
|
||||
snd_printdd("snd_cs46xx: codec %d detection timeout\n", codec);
|
||||
dev_dbg(chip->card->dev, "codec %d detection timeout\n", codec);
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
@@ -2509,7 +2520,7 @@ int snd_cs46xx_mixer(struct snd_cs46xx *chip, int spdif_device)
|
||||
|
||||
/* detect primary codec */
|
||||
chip->nr_ac97_codecs = 0;
|
||||
snd_printdd("snd_cs46xx: detecting primary codec\n");
|
||||
dev_dbg(chip->card->dev, "detecting primary codec\n");
|
||||
if ((err = snd_ac97_bus(card, 0, &ops, chip, &chip->ac97_bus)) < 0)
|
||||
return err;
|
||||
chip->ac97_bus->private_free = snd_cs46xx_mixer_free_ac97_bus;
|
||||
@@ -2519,7 +2530,7 @@ int snd_cs46xx_mixer(struct snd_cs46xx *chip, int spdif_device)
|
||||
chip->nr_ac97_codecs = 1;
|
||||
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
snd_printdd("snd_cs46xx: detecting seconadry codec\n");
|
||||
dev_dbg(chip->card->dev, "detecting seconadry codec\n");
|
||||
/* try detect a secondary codec */
|
||||
if (! cs46xx_detect_codec(chip, CS46XX_SECONDARY_CODEC_INDEX))
|
||||
chip->nr_ac97_codecs = 2;
|
||||
@@ -2554,7 +2565,7 @@ int snd_cs46xx_mixer(struct snd_cs46xx *chip, int spdif_device)
|
||||
}
|
||||
/* do soundcard specific mixer setup */
|
||||
if (chip->mixer_init) {
|
||||
snd_printdd ("calling chip->mixer_init(chip);\n");
|
||||
dev_dbg(chip->card->dev, "calling chip->mixer_init(chip);\n");
|
||||
chip->mixer_init(chip);
|
||||
}
|
||||
#endif
|
||||
@@ -2801,7 +2812,8 @@ int snd_cs46xx_gameport(struct snd_cs46xx *chip)
|
||||
|
||||
chip->gameport = gp = gameport_allocate_port();
|
||||
if (!gp) {
|
||||
printk(KERN_ERR "cs46xx: cannot allocate memory for gameport\n");
|
||||
dev_err(chip->card->dev,
|
||||
"cannot allocate memory for gameport\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
@@ -3138,8 +3150,10 @@ static int snd_cs46xx_chip_init(struct snd_cs46xx *chip)
|
||||
}
|
||||
|
||||
|
||||
snd_printk(KERN_ERR "create - never read codec ready from AC'97\n");
|
||||
snd_printk(KERN_ERR "it is not probably bug, try to use CS4236 driver\n");
|
||||
dev_err(chip->card->dev,
|
||||
"create - never read codec ready from AC'97\n");
|
||||
dev_err(chip->card->dev,
|
||||
"it is not probably bug, try to use CS4236 driver\n");
|
||||
return -EIO;
|
||||
ok1:
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
@@ -3157,7 +3171,8 @@ static int snd_cs46xx_chip_init(struct snd_cs46xx *chip)
|
||||
* Make sure CODEC is READY.
|
||||
*/
|
||||
if (!(snd_cs46xx_peekBA0(chip, BA0_ACSTS2) & ACSTS_CRDY))
|
||||
snd_printdd("cs46xx: never read card ready from secondary AC'97\n");
|
||||
dev_dbg(chip->card->dev,
|
||||
"never read card ready from secondary AC'97\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -3187,17 +3202,21 @@ static int snd_cs46xx_chip_init(struct snd_cs46xx *chip)
|
||||
}
|
||||
|
||||
#ifndef CONFIG_SND_CS46XX_NEW_DSP
|
||||
snd_printk(KERN_ERR "create - never read ISV3 & ISV4 from AC'97\n");
|
||||
dev_err(chip->card->dev,
|
||||
"create - never read ISV3 & ISV4 from AC'97\n");
|
||||
return -EIO;
|
||||
#else
|
||||
/* This may happen on a cold boot with a Terratec SiXPack 5.1.
|
||||
Reloading the driver may help, if there's other soundcards
|
||||
with the same problem I would like to know. (Benny) */
|
||||
|
||||
snd_printk(KERN_ERR "ERROR: snd-cs46xx: never read ISV3 & ISV4 from AC'97\n");
|
||||
snd_printk(KERN_ERR " Try reloading the ALSA driver, if you find something\n");
|
||||
snd_printk(KERN_ERR " broken or not working on your soundcard upon\n");
|
||||
snd_printk(KERN_ERR " this message please report to alsa-devel@alsa-project.org\n");
|
||||
dev_err(chip->card->dev, "never read ISV3 & ISV4 from AC'97\n");
|
||||
dev_err(chip->card->dev,
|
||||
"Try reloading the ALSA driver, if you find something\n");
|
||||
dev_err(chip->card->dev,
|
||||
"broken or not working on your soundcard upon\n");
|
||||
dev_err(chip->card->dev,
|
||||
"this message please report to alsa-devel@alsa-project.org\n");
|
||||
|
||||
return -EIO;
|
||||
#endif
|
||||
@@ -3266,13 +3285,13 @@ int snd_cs46xx_start_dsp(struct snd_cs46xx *chip)
|
||||
for (i = 0; i < CS46XX_DSP_MODULES; i++) {
|
||||
err = load_firmware(chip, &chip->modules[i], module_names[i]);
|
||||
if (err < 0) {
|
||||
snd_printk(KERN_ERR "firmware load error [%s]\n",
|
||||
dev_err(chip->card->dev, "firmware load error [%s]\n",
|
||||
module_names[i]);
|
||||
return err;
|
||||
}
|
||||
err = cs46xx_dsp_load_module(chip, chip->modules[i]);
|
||||
if (err < 0) {
|
||||
snd_printk(KERN_ERR "image download error [%s]\n",
|
||||
dev_err(chip->card->dev, "image download error [%s]\n",
|
||||
module_names[i]);
|
||||
return err;
|
||||
}
|
||||
@@ -3288,7 +3307,7 @@ int snd_cs46xx_start_dsp(struct snd_cs46xx *chip)
|
||||
/* old image */
|
||||
err = snd_cs46xx_download_image(chip);
|
||||
if (err < 0) {
|
||||
snd_printk(KERN_ERR "image download error\n");
|
||||
dev_err(chip->card->dev, "image download error\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -3341,7 +3360,7 @@ static int voyetra_setup_eapd_slot(struct snd_cs46xx *chip)
|
||||
u32 idx, valid_slots,tmp,powerdown = 0;
|
||||
u16 modem_power,pin_config,logic_type;
|
||||
|
||||
snd_printdd ("cs46xx: cs46xx_setup_eapd_slot()+\n");
|
||||
dev_dbg(chip->card->dev, "cs46xx_setup_eapd_slot()+\n");
|
||||
|
||||
/*
|
||||
* See if the devices are powered down. If so, we must power them up first
|
||||
@@ -3359,7 +3378,8 @@ static int voyetra_setup_eapd_slot(struct snd_cs46xx *chip)
|
||||
* stuff.
|
||||
*/
|
||||
if(chip->nr_ac97_codecs != 2) {
|
||||
snd_printk (KERN_ERR "cs46xx: cs46xx_setup_eapd_slot() - no secondary codec configured\n");
|
||||
dev_err(chip->card->dev,
|
||||
"cs46xx_setup_eapd_slot() - no secondary codec configured\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -3400,7 +3420,7 @@ static int voyetra_setup_eapd_slot(struct snd_cs46xx *chip)
|
||||
snd_cs46xx_pokeBA0(chip, BA0_ACOSV, valid_slots);
|
||||
|
||||
if ( cs46xx_wait_for_fifo(chip,1) ) {
|
||||
snd_printdd("FIFO is busy\n");
|
||||
dev_dbg(chip->card->dev, "FIFO is busy\n");
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -3421,7 +3441,9 @@ static int voyetra_setup_eapd_slot(struct snd_cs46xx *chip)
|
||||
* Wait for command to complete
|
||||
*/
|
||||
if ( cs46xx_wait_for_fifo(chip,200) ) {
|
||||
snd_printdd("failed waiting for FIFO at addr (%02X)\n",idx);
|
||||
dev_dbg(chip->card->dev,
|
||||
"failed waiting for FIFO at addr (%02X)\n",
|
||||
idx);
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -3510,14 +3532,14 @@ static void amp_hercules(struct snd_cs46xx *chip, int change)
|
||||
|
||||
chip->amplifier += change;
|
||||
if (chip->amplifier && !old) {
|
||||
snd_printdd ("Hercules amplifier ON\n");
|
||||
dev_dbg(chip->card->dev, "Hercules amplifier ON\n");
|
||||
|
||||
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR,
|
||||
EGPIODR_GPOE2 | val1); /* enable EGPIO2 output */
|
||||
snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR,
|
||||
EGPIOPTR_GPPT2 | val2); /* open-drain on output */
|
||||
} else if (old && !chip->amplifier) {
|
||||
snd_printdd ("Hercules amplifier OFF\n");
|
||||
dev_dbg(chip->card->dev, "Hercules amplifier OFF\n");
|
||||
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR, val1 & ~EGPIODR_GPOE2); /* disable */
|
||||
snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR, val2 & ~EGPIOPTR_GPPT2); /* disable */
|
||||
}
|
||||
@@ -3525,7 +3547,7 @@ static void amp_hercules(struct snd_cs46xx *chip, int change)
|
||||
|
||||
static void voyetra_mixer_init (struct snd_cs46xx *chip)
|
||||
{
|
||||
snd_printdd ("initializing Voyetra mixer\n");
|
||||
dev_dbg(chip->card->dev, "initializing Voyetra mixer\n");
|
||||
|
||||
/* Enable SPDIF out */
|
||||
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR, EGPIODR_GPOE0);
|
||||
@@ -3543,7 +3565,7 @@ static void hercules_mixer_init (struct snd_cs46xx *chip)
|
||||
/* set EGPIO to default */
|
||||
hercules_init(chip);
|
||||
|
||||
snd_printdd ("initializing Hercules mixer\n");
|
||||
dev_dbg(chip->card->dev, "initializing Hercules mixer\n");
|
||||
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
if (chip->in_suspend)
|
||||
@@ -3554,7 +3576,9 @@ static void hercules_mixer_init (struct snd_cs46xx *chip)
|
||||
|
||||
kctl = snd_ctl_new1(&snd_hercules_controls[idx], chip);
|
||||
if ((err = snd_ctl_add(card, kctl)) < 0) {
|
||||
printk (KERN_ERR "cs46xx: failed to initialize Hercules mixer (%d)\n",err);
|
||||
dev_err(card->dev,
|
||||
"failed to initialize Hercules mixer (%d)\n",
|
||||
err);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -3826,8 +3850,7 @@ static int snd_cs46xx_resume(struct device *dev)
|
||||
pci_set_power_state(pci, PCI_D0);
|
||||
pci_restore_state(pci);
|
||||
if (pci_enable_device(pci) < 0) {
|
||||
printk(KERN_ERR "cs46xx: pci_enable_device failed, "
|
||||
"disabling device\n");
|
||||
dev_err(dev, "pci_enable_device failed, disabling device\n");
|
||||
snd_card_disconnect(card);
|
||||
return -EIO;
|
||||
}
|
||||
@@ -3932,7 +3955,8 @@ int snd_cs46xx_create(struct snd_card *card,
|
||||
chip->ba1_addr = pci_resource_start(pci, 1);
|
||||
if (chip->ba0_addr == 0 || chip->ba0_addr == (unsigned long)~0 ||
|
||||
chip->ba1_addr == 0 || chip->ba1_addr == (unsigned long)~0) {
|
||||
snd_printk(KERN_ERR "wrong address(es) - ba0 = 0x%lx, ba1 = 0x%lx\n",
|
||||
dev_err(chip->card->dev,
|
||||
"wrong address(es) - ba0 = 0x%lx, ba1 = 0x%lx\n",
|
||||
chip->ba0_addr, chip->ba1_addr);
|
||||
snd_cs46xx_free(chip);
|
||||
return -ENOMEM;
|
||||
@@ -3969,7 +3993,8 @@ int snd_cs46xx_create(struct snd_card *card,
|
||||
|
||||
for (cp = &cards[0]; cp->name; cp++) {
|
||||
if (cp->vendor == ss_vendor && cp->id == ss_card) {
|
||||
snd_printdd ("hack for %s enabled\n", cp->name);
|
||||
dev_dbg(chip->card->dev, "hack for %s enabled\n",
|
||||
cp->name);
|
||||
|
||||
chip->amplifier_ctrl = cp->amp;
|
||||
chip->active_ctrl = cp->active;
|
||||
@@ -3982,12 +4007,14 @@ int snd_cs46xx_create(struct snd_card *card,
|
||||
}
|
||||
|
||||
if (external_amp) {
|
||||
snd_printk(KERN_INFO "Crystal EAPD support forced on.\n");
|
||||
dev_info(chip->card->dev,
|
||||
"Crystal EAPD support forced on.\n");
|
||||
chip->amplifier_ctrl = amp_voyetra;
|
||||
}
|
||||
|
||||
if (thinkpad) {
|
||||
snd_printk(KERN_INFO "Activating CLKRUN hack for Thinkpad.\n");
|
||||
dev_info(chip->card->dev,
|
||||
"Activating CLKRUN hack for Thinkpad.\n");
|
||||
chip->active_ctrl = clkrun_hack;
|
||||
clkrun_init(chip);
|
||||
}
|
||||
@@ -4005,14 +4032,16 @@ int snd_cs46xx_create(struct snd_card *card,
|
||||
region = &chip->region.idx[idx];
|
||||
if ((region->resource = request_mem_region(region->base, region->size,
|
||||
region->name)) == NULL) {
|
||||
snd_printk(KERN_ERR "unable to request memory region 0x%lx-0x%lx\n",
|
||||
dev_err(chip->card->dev,
|
||||
"unable to request memory region 0x%lx-0x%lx\n",
|
||||
region->base, region->base + region->size - 1);
|
||||
snd_cs46xx_free(chip);
|
||||
return -EBUSY;
|
||||
}
|
||||
region->remap_addr = ioremap_nocache(region->base, region->size);
|
||||
if (region->remap_addr == NULL) {
|
||||
snd_printk(KERN_ERR "%s ioremap problem\n", region->name);
|
||||
dev_err(chip->card->dev,
|
||||
"%s ioremap problem\n", region->name);
|
||||
snd_cs46xx_free(chip);
|
||||
return -ENOMEM;
|
||||
}
|
||||
@@ -4020,7 +4049,7 @@ int snd_cs46xx_create(struct snd_card *card,
|
||||
|
||||
if (request_irq(pci->irq, snd_cs46xx_interrupt, IRQF_SHARED,
|
||||
KBUILD_MODNAME, chip)) {
|
||||
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
|
||||
dev_err(chip->card->dev, "unable to grab IRQ %d\n", pci->irq);
|
||||
snd_cs46xx_free(chip);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
Посилання в новій задачі
Заблокувати користувача