Commit 12bda107 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: emu10k1: Fix assignment in if condition

PCI EMU10k1 driver code contains a few assignments in if condition,
which is a bad coding style that may confuse readers and occasionally
lead to bugs.

This patch is merely for coding-style fixes, no functional changes.

Link: https://lore.kernel.org/r/20210608140540.17885-41-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 549717fc
...@@ -107,18 +107,22 @@ static int snd_card_emu10k1_probe(struct pci_dev *pci, ...@@ -107,18 +107,22 @@ static int snd_card_emu10k1_probe(struct pci_dev *pci,
max_buffer_size[dev] = 32; max_buffer_size[dev] = 32;
else if (max_buffer_size[dev] > 1024) else if (max_buffer_size[dev] > 1024)
max_buffer_size[dev] = 1024; max_buffer_size[dev] = 1024;
if ((err = snd_emu10k1_create(card, pci, extin[dev], extout[dev], err = snd_emu10k1_create(card, pci, extin[dev], extout[dev],
(long)max_buffer_size[dev] * 1024 * 1024, (long)max_buffer_size[dev] * 1024 * 1024,
enable_ir[dev], subsystem[dev], enable_ir[dev], subsystem[dev],
&emu)) < 0) &emu);
if (err < 0)
goto error; goto error;
card->private_data = emu; card->private_data = emu;
emu->delay_pcm_irq = delay_pcm_irq[dev] & 0x1f; emu->delay_pcm_irq = delay_pcm_irq[dev] & 0x1f;
if ((err = snd_emu10k1_pcm(emu, 0)) < 0) err = snd_emu10k1_pcm(emu, 0);
if (err < 0)
goto error; goto error;
if ((err = snd_emu10k1_pcm_mic(emu, 1)) < 0) err = snd_emu10k1_pcm_mic(emu, 1);
if (err < 0)
goto error; goto error;
if ((err = snd_emu10k1_pcm_efx(emu, 2)) < 0) err = snd_emu10k1_pcm_efx(emu, 2);
if (err < 0)
goto error; goto error;
/* This stores the periods table. */ /* This stores the periods table. */
if (emu->card_capabilities->ca0151_chip) { /* P16V */ if (emu->card_capabilities->ca0151_chip) { /* P16V */
...@@ -128,26 +132,33 @@ static int snd_card_emu10k1_probe(struct pci_dev *pci, ...@@ -128,26 +132,33 @@ static int snd_card_emu10k1_probe(struct pci_dev *pci,
goto error; goto error;
} }
if ((err = snd_emu10k1_mixer(emu, 0, 3)) < 0) err = snd_emu10k1_mixer(emu, 0, 3);
if (err < 0)
goto error; goto error;
if ((err = snd_emu10k1_timer(emu, 0)) < 0) err = snd_emu10k1_timer(emu, 0);
if (err < 0)
goto error; goto error;
if ((err = snd_emu10k1_pcm_multi(emu, 3)) < 0) err = snd_emu10k1_pcm_multi(emu, 3);
if (err < 0)
goto error; goto error;
if (emu->card_capabilities->ca0151_chip) { /* P16V */ if (emu->card_capabilities->ca0151_chip) { /* P16V */
if ((err = snd_p16v_pcm(emu, 4)) < 0) err = snd_p16v_pcm(emu, 4);
if (err < 0)
goto error; goto error;
} }
if (emu->audigy) { if (emu->audigy) {
if ((err = snd_emu10k1_audigy_midi(emu)) < 0) err = snd_emu10k1_audigy_midi(emu);
if (err < 0)
goto error; goto error;
} else { } else {
if ((err = snd_emu10k1_midi(emu)) < 0) err = snd_emu10k1_midi(emu);
if (err < 0)
goto error; goto error;
} }
if ((err = snd_emu10k1_fx8010_new(emu, 0)) < 0) err = snd_emu10k1_fx8010_new(emu, 0);
if (err < 0)
goto error; goto error;
#ifdef ENABLE_SYNTH #ifdef ENABLE_SYNTH
if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH,
...@@ -174,7 +185,8 @@ static int snd_card_emu10k1_probe(struct pci_dev *pci, ...@@ -174,7 +185,8 @@ static int snd_card_emu10k1_probe(struct pci_dev *pci,
"%s (rev.%d, serial:0x%x) at 0x%lx, irq %i", "%s (rev.%d, serial:0x%x) at 0x%lx, irq %i",
card->shortname, emu->revision, emu->serial, emu->port, emu->irq); card->shortname, emu->revision, emu->serial, emu->port, emu->irq);
if ((err = snd_card_register(card)) < 0) err = snd_card_register(card);
if (err < 0)
goto error; goto error;
if (emu->card_capabilities->emu_model) if (emu->card_capabilities->emu_model)
......
...@@ -90,7 +90,8 @@ snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw) ...@@ -90,7 +90,8 @@ snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw)
if (best[i].voice >= 0) { if (best[i].voice >= 0) {
int ch; int ch;
vp = &emu->voices[best[i].voice]; vp = &emu->voices[best[i].voice];
if ((ch = vp->ch) < 0) { ch = vp->ch;
if (ch < 0) {
/* /*
dev_warn(emu->card->dev, dev_warn(emu->card->dev,
"synth_get_voice: ch < 0 (%d) ??", i); "synth_get_voice: ch < 0 (%d) ??", i);
......
...@@ -436,7 +436,8 @@ int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu, ...@@ -436,7 +436,8 @@ int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu,
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&emu->fx8010.irq_lock, flags); spin_lock_irqsave(&emu->fx8010.irq_lock, flags);
if ((tmp = emu->fx8010.irq_handlers) == irq) { tmp = emu->fx8010.irq_handlers;
if (tmp == irq) {
emu->fx8010.irq_handlers = tmp->next; emu->fx8010.irq_handlers = tmp->next;
if (emu->fx8010.irq_handlers == NULL) { if (emu->fx8010.irq_handlers == NULL) {
snd_emu10k1_intr_disable(emu, INTE_FXDSPENABLE); snd_emu10k1_intr_disable(emu, INTE_FXDSPENABLE);
...@@ -871,7 +872,9 @@ static int snd_emu10k1_add_controls(struct snd_emu10k1 *emu, ...@@ -871,7 +872,9 @@ static int snd_emu10k1_add_controls(struct snd_emu10k1 *emu,
} }
knew.private_value = (unsigned long)ctl; knew.private_value = (unsigned long)ctl;
*ctl = *nctl; *ctl = *nctl;
if ((err = snd_ctl_add(emu->card, kctl = snd_ctl_new1(&knew, emu))) < 0) { kctl = snd_ctl_new1(&knew, emu);
err = snd_ctl_add(emu->card, kctl);
if (err < 0) {
kfree(ctl); kfree(ctl);
kfree(knew.tlv.p); kfree(knew.tlv.p);
goto __error; goto __error;
...@@ -2403,7 +2406,8 @@ static int _snd_emu10k1_init_efx(struct snd_emu10k1 *emu) ...@@ -2403,7 +2406,8 @@ static int _snd_emu10k1_init_efx(struct snd_emu10k1 *emu)
while (ptr < 0x200) while (ptr < 0x200)
OP(icode, &ptr, iACC3, C_00000000, C_00000000, C_00000000, C_00000000); OP(icode, &ptr, iACC3, C_00000000, C_00000000, C_00000000, C_00000000);
if ((err = snd_emu10k1_fx8010_tram_setup(emu, ipcm->buffer_size)) < 0) err = snd_emu10k1_fx8010_tram_setup(emu, ipcm->buffer_size);
if (err < 0)
goto __err; goto __err;
icode->gpr_add_control_count = i; icode->gpr_add_control_count = i;
icode->gpr_add_controls = controls; icode->gpr_add_controls = controls;
...@@ -2681,7 +2685,8 @@ int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device) ...@@ -2681,7 +2685,8 @@ int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device)
struct snd_hwdep *hw; struct snd_hwdep *hw;
int err; int err;
if ((err = snd_hwdep_new(emu->card, "FX8010", device, &hw)) < 0) err = snd_hwdep_new(emu->card, "FX8010", device, &hw);
if (err < 0)
return err; return err;
strcpy(hw->name, "EMU10K1 (FX8010)"); strcpy(hw->name, "EMU10K1 (FX8010)");
hw->iface = SNDRV_HWDEP_IFACE_EMU10K1; hw->iface = SNDRV_HWDEP_IFACE_EMU10K1;
......
...@@ -1119,7 +1119,8 @@ static int snd_audigy_spdif_output_rate_put(struct snd_kcontrol *kcontrol, ...@@ -1119,7 +1119,8 @@ static int snd_audigy_spdif_output_rate_put(struct snd_kcontrol *kcontrol,
reg = snd_emu10k1_ptr_read(emu, A_SPDIF_SAMPLERATE, 0); reg = snd_emu10k1_ptr_read(emu, A_SPDIF_SAMPLERATE, 0);
tmp = reg & ~A_SPDIF_RATE_MASK; tmp = reg & ~A_SPDIF_RATE_MASK;
tmp |= val; tmp |= val;
if ((change = (tmp != reg))) change = (tmp != reg);
if (change)
snd_emu10k1_ptr_write(emu, A_SPDIF_SAMPLERATE, 0, tmp); snd_emu10k1_ptr_write(emu, A_SPDIF_SAMPLERATE, 0, tmp);
spin_unlock_irqrestore(&emu->reg_lock, flags); spin_unlock_irqrestore(&emu->reg_lock, flags);
return change; return change;
...@@ -1903,7 +1904,8 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu, ...@@ -1903,7 +1904,8 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
.read = snd_emu10k1_ac97_read, .read = snd_emu10k1_ac97_read,
}; };
if ((err = snd_ac97_bus(emu->card, 0, &ops, NULL, &pbus)) < 0) err = snd_ac97_bus(emu->card, 0, &ops, NULL, &pbus);
if (err < 0)
return err; return err;
pbus->no_vra = 1; /* we don't need VRA */ pbus->no_vra = 1; /* we don't need VRA */
...@@ -1911,7 +1913,8 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu, ...@@ -1911,7 +1913,8 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
ac97.private_data = emu; ac97.private_data = emu;
ac97.private_free = snd_emu10k1_mixer_free_ac97; ac97.private_free = snd_emu10k1_mixer_free_ac97;
ac97.scaps = AC97_SCAP_NO_SPDIF; ac97.scaps = AC97_SCAP_NO_SPDIF;
if ((err = snd_ac97_mixer(pbus, &ac97, &emu->ac97)) < 0) { err = snd_ac97_mixer(pbus, &ac97, &emu->ac97);
if (err < 0) {
if (emu->card_capabilities->ac97_chip == 1) if (emu->card_capabilities->ac97_chip == 1)
return err; return err;
dev_info(emu->card->dev, dev_info(emu->card->dev,
...@@ -1991,38 +1994,50 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu, ...@@ -1991,38 +1994,50 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
rename_ctl(card, "Aux2 Capture Volume", "Line3 Capture Volume"); rename_ctl(card, "Aux2 Capture Volume", "Line3 Capture Volume");
rename_ctl(card, "Mic Capture Volume", "Unknown1 Capture Volume"); rename_ctl(card, "Mic Capture Volume", "Unknown1 Capture Volume");
} }
if ((kctl = emu->ctl_send_routing = snd_ctl_new1(&snd_emu10k1_send_routing_control, emu)) == NULL) kctl = emu->ctl_send_routing = snd_ctl_new1(&snd_emu10k1_send_routing_control, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
kctl->id.device = pcm_device; kctl->id.device = pcm_device;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
if ((kctl = emu->ctl_send_volume = snd_ctl_new1(&snd_emu10k1_send_volume_control, emu)) == NULL) kctl = emu->ctl_send_volume = snd_ctl_new1(&snd_emu10k1_send_volume_control, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
kctl->id.device = pcm_device; kctl->id.device = pcm_device;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
if ((kctl = emu->ctl_attn = snd_ctl_new1(&snd_emu10k1_attn_control, emu)) == NULL) kctl = emu->ctl_attn = snd_ctl_new1(&snd_emu10k1_attn_control, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
kctl->id.device = pcm_device; kctl->id.device = pcm_device;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
if ((kctl = emu->ctl_efx_send_routing = snd_ctl_new1(&snd_emu10k1_efx_send_routing_control, emu)) == NULL) kctl = emu->ctl_efx_send_routing = snd_ctl_new1(&snd_emu10k1_efx_send_routing_control, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
kctl->id.device = multi_device; kctl->id.device = multi_device;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
if ((kctl = emu->ctl_efx_send_volume = snd_ctl_new1(&snd_emu10k1_efx_send_volume_control, emu)) == NULL) kctl = emu->ctl_efx_send_volume = snd_ctl_new1(&snd_emu10k1_efx_send_volume_control, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
kctl->id.device = multi_device; kctl->id.device = multi_device;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
if ((kctl = emu->ctl_efx_attn = snd_ctl_new1(&snd_emu10k1_efx_attn_control, emu)) == NULL) kctl = emu->ctl_efx_attn = snd_ctl_new1(&snd_emu10k1_efx_attn_control, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
kctl->id.device = multi_device; kctl->id.device = multi_device;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
/* initialize the routing and volume table for each pcm playback stream */ /* initialize the routing and volume table for each pcm playback stream */
...@@ -2069,42 +2084,53 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu, ...@@ -2069,42 +2084,53 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
if (! emu->card_capabilities->ecard) { /* FIXME: APS has these controls? */ if (! emu->card_capabilities->ecard) { /* FIXME: APS has these controls? */
/* sb live! and audigy */ /* sb live! and audigy */
if ((kctl = snd_ctl_new1(&snd_emu10k1_spdif_mask_control, emu)) == NULL) kctl = snd_ctl_new1(&snd_emu10k1_spdif_mask_control, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
if (!emu->audigy) if (!emu->audigy)
kctl->id.device = emu->pcm_efx->device; kctl->id.device = emu->pcm_efx->device;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
if ((kctl = snd_ctl_new1(&snd_emu10k1_spdif_control, emu)) == NULL) kctl = snd_ctl_new1(&snd_emu10k1_spdif_control, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
if (!emu->audigy) if (!emu->audigy)
kctl->id.device = emu->pcm_efx->device; kctl->id.device = emu->pcm_efx->device;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
} }
if (emu->card_capabilities->emu_model) { if (emu->card_capabilities->emu_model) {
; /* Disable the snd_audigy_spdif_shared_spdif */ ; /* Disable the snd_audigy_spdif_shared_spdif */
} else if (emu->audigy) { } else if (emu->audigy) {
if ((kctl = snd_ctl_new1(&snd_audigy_shared_spdif, emu)) == NULL) kctl = snd_ctl_new1(&snd_audigy_shared_spdif, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
#if 0 #if 0
if ((kctl = snd_ctl_new1(&snd_audigy_spdif_output_rate, emu)) == NULL) kctl = snd_ctl_new1(&snd_audigy_spdif_output_rate, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
#endif #endif
} else if (! emu->card_capabilities->ecard) { } else if (! emu->card_capabilities->ecard) {
/* sb live! */ /* sb live! */
if ((kctl = snd_ctl_new1(&snd_emu10k1_shared_spdif, emu)) == NULL) kctl = snd_ctl_new1(&snd_emu10k1_shared_spdif, emu);
if (!kctl)
return -ENOMEM; return -ENOMEM;
if ((err = snd_ctl_add(card, kctl))) err = snd_ctl_add(card, kctl);
if (err)
return err; return err;
} }
if (emu->card_capabilities->ca0151_chip) { /* P16V */ if (emu->card_capabilities->ca0151_chip) { /* P16V */
if ((err = snd_p16v_mixer(emu))) err = snd_p16v_mixer(emu);
if (err)
return err; return err;
} }
......
...@@ -319,7 +319,8 @@ static int emu10k1_midi_init(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *m ...@@ -319,7 +319,8 @@ static int emu10k1_midi_init(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *m
struct snd_rawmidi *rmidi; struct snd_rawmidi *rmidi;
int err; int err;
if ((err = snd_rawmidi_new(emu->card, name, device, 1, 1, &rmidi)) < 0) err = snd_rawmidi_new(emu->card, name, device, 1, 1, &rmidi);
if (err < 0)
return err; return err;
midi->emu = emu; midi->emu = emu;
spin_lock_init(&midi->open_lock); spin_lock_init(&midi->open_lock);
...@@ -342,7 +343,8 @@ int snd_emu10k1_midi(struct snd_emu10k1 *emu) ...@@ -342,7 +343,8 @@ int snd_emu10k1_midi(struct snd_emu10k1 *emu)
struct snd_emu10k1_midi *midi = &emu->midi; struct snd_emu10k1_midi *midi = &emu->midi;
int err; int err;
if ((err = emu10k1_midi_init(emu, midi, 0, "EMU10K1 MPU-401 (UART)")) < 0) err = emu10k1_midi_init(emu, midi, 0, "EMU10K1 MPU-401 (UART)");
if (err < 0)
return err; return err;
midi->tx_enable = INTE_MIDITXENABLE; midi->tx_enable = INTE_MIDITXENABLE;
...@@ -360,7 +362,8 @@ int snd_emu10k1_audigy_midi(struct snd_emu10k1 *emu) ...@@ -360,7 +362,8 @@ int snd_emu10k1_audigy_midi(struct snd_emu10k1 *emu)
int err; int err;
midi = &emu->midi; midi = &emu->midi;
if ((err = emu10k1_midi_init(emu, midi, 0, "Audigy MPU-401 (UART)")) < 0) err = emu10k1_midi_init(emu, midi, 0, "Audigy MPU-401 (UART)");
if (err < 0)
return err; return err;
midi->tx_enable = INTE_MIDITXENABLE; midi->tx_enable = INTE_MIDITXENABLE;
...@@ -371,7 +374,8 @@ int snd_emu10k1_audigy_midi(struct snd_emu10k1 *emu) ...@@ -371,7 +374,8 @@ int snd_emu10k1_audigy_midi(struct snd_emu10k1 *emu)
midi->interrupt = snd_emu10k1_midi_interrupt; midi->interrupt = snd_emu10k1_midi_interrupt;
midi = &emu->midi2; midi = &emu->midi2;
if ((err = emu10k1_midi_init(emu, midi, 1, "Audigy MPU-401 #2")) < 0) err = emu10k1_midi_init(emu, midi, 1, "Audigy MPU-401 #2");
if (err < 0)
return err; return err;
midi->tx_enable = INTE_A_MIDITXENABLE2; midi->tx_enable = INTE_A_MIDITXENABLE2;
......
...@@ -25,7 +25,8 @@ static void snd_emu10k1_pcm_interrupt(struct snd_emu10k1 *emu, ...@@ -25,7 +25,8 @@ static void snd_emu10k1_pcm_interrupt(struct snd_emu10k1 *emu,
{ {
struct snd_emu10k1_pcm *epcm; struct snd_emu10k1_pcm *epcm;
if ((epcm = voice->epcm) == NULL) epcm = voice->epcm;
if (!epcm)
return; return;
if (epcm->substream == NULL) if (epcm->substream == NULL)
return; return;
...@@ -399,7 +400,8 @@ static int snd_emu10k1_playback_hw_params(struct snd_pcm_substream *substream, ...@@ -399,7 +400,8 @@ static int snd_emu10k1_playback_hw_params(struct snd_pcm_substream *substream,
size_t alloc_size; size_t alloc_size;
int err; int err;
if ((err = snd_emu10k1_pcm_channel_alloc(epcm, params_channels(hw_params))) < 0) err = snd_emu10k1_pcm_channel_alloc(epcm, params_channels(hw_params));
if (err < 0)
return err; return err;
alloc_size = params_buffer_bytes(hw_params); alloc_size = params_buffer_bytes(hw_params);
...@@ -1124,11 +1126,13 @@ static int snd_emu10k1_playback_open(struct snd_pcm_substream *substream) ...@@ -1124,11 +1126,13 @@ static int snd_emu10k1_playback_open(struct snd_pcm_substream *substream)
runtime->private_data = epcm; runtime->private_data = epcm;
runtime->private_free = snd_emu10k1_pcm_free_substream; runtime->private_free = snd_emu10k1_pcm_free_substream;
runtime->hw = snd_emu10k1_playback; runtime->hw = snd_emu10k1_playback;
if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) { err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
if (err < 0) {
kfree(epcm); kfree(epcm);
return err; return err;
} }
if ((err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 256, UINT_MAX)) < 0) { err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 256, UINT_MAX);
if (err < 0) {
kfree(epcm); kfree(epcm);
return err; return err;
} }
...@@ -1380,7 +1384,8 @@ int snd_emu10k1_pcm(struct snd_emu10k1 *emu, int device) ...@@ -1380,7 +1384,8 @@ int snd_emu10k1_pcm(struct snd_emu10k1 *emu, int device)
struct snd_pcm_substream *substream; struct snd_pcm_substream *substream;
int err; int err;
if ((err = snd_pcm_new(emu->card, "emu10k1", device, 32, 1, &pcm)) < 0) err = snd_pcm_new(emu->card, "emu10k1", device, 32, 1, &pcm);
if (err < 0)
return err; return err;
pcm->private_data = emu; pcm->private_data = emu;
...@@ -1412,7 +1417,8 @@ int snd_emu10k1_pcm_multi(struct snd_emu10k1 *emu, int device) ...@@ -1412,7 +1417,8 @@ int snd_emu10k1_pcm_multi(struct snd_emu10k1 *emu, int device)
struct snd_pcm_substream *substream; struct snd_pcm_substream *substream;
int err; int err;
if ((err = snd_pcm_new(emu->card, "emu10k1", device, 1, 0, &pcm)) < 0) err = snd_pcm_new(emu->card, "emu10k1", device, 1, 0, &pcm);
if (err < 0)
return err; return err;
pcm->private_data = emu; pcm->private_data = emu;
...@@ -1446,7 +1452,8 @@ int snd_emu10k1_pcm_mic(struct snd_emu10k1 *emu, int device) ...@@ -1446,7 +1452,8 @@ int snd_emu10k1_pcm_mic(struct snd_emu10k1 *emu, int device)
struct snd_pcm *pcm; struct snd_pcm *pcm;
int err; int err;
if ((err = snd_pcm_new(emu->card, "emu10k1 mic", device, 0, 1, &pcm)) < 0) err = snd_pcm_new(emu->card, "emu10k1 mic", device, 0, 1, &pcm);
if (err < 0)
return err; return err;
pcm->private_data = emu; pcm->private_data = emu;
...@@ -1774,7 +1781,8 @@ int snd_emu10k1_pcm_efx(struct snd_emu10k1 *emu, int device) ...@@ -1774,7 +1781,8 @@ int snd_emu10k1_pcm_efx(struct snd_emu10k1 *emu, int device)
struct snd_kcontrol *kctl; struct snd_kcontrol *kctl;
int err; int err;
if ((err = snd_pcm_new(emu->card, "emu10k1 efx", device, 8, 1, &pcm)) < 0) err = snd_pcm_new(emu->card, "emu10k1 efx", device, 8, 1, &pcm);
if (err < 0)
return err; return err;
pcm->private_data = emu; pcm->private_data = emu;
......
...@@ -169,16 +169,20 @@ static int unmap_memblk(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk) ...@@ -169,16 +169,20 @@ static int unmap_memblk(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk)
struct snd_emu10k1_memblk *q; struct snd_emu10k1_memblk *q;
/* calculate the expected size of empty region */ /* calculate the expected size of empty region */
if ((p = blk->mapped_link.prev) != &emu->mapped_link_head) { p = blk->mapped_link.prev;
if (p != &emu->mapped_link_head) {
q = get_emu10k1_memblk(p, mapped_link); q = get_emu10k1_memblk(p, mapped_link);
start_page = q->mapped_page + q->pages; start_page = q->mapped_page + q->pages;
} else } else {
start_page = 1; start_page = 1;
if ((p = blk->mapped_link.next) != &emu->mapped_link_head) { }
p = blk->mapped_link.next;
if (p != &emu->mapped_link_head) {
q = get_emu10k1_memblk(p, mapped_link); q = get_emu10k1_memblk(p, mapped_link);
end_page = q->mapped_page; end_page = q->mapped_page;
} else } else {
end_page = (emu->address_mode ? MAX_ALIGN_PAGES1 : MAX_ALIGN_PAGES0); end_page = (emu->address_mode ? MAX_ALIGN_PAGES1 : MAX_ALIGN_PAGES0);
}
/* remove links */ /* remove links */
list_del(&blk->mapped_link); list_del(&blk->mapped_link);
...@@ -267,7 +271,8 @@ int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *b ...@@ -267,7 +271,8 @@ int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *b
spin_unlock_irqrestore(&emu->memblk_lock, flags); spin_unlock_irqrestore(&emu->memblk_lock, flags);
return 0; return 0;
} }
if ((err = map_memblk(emu, blk)) < 0) { err = map_memblk(emu, blk);
if (err < 0) {
/* no enough page - try to unmap some blocks */ /* no enough page - try to unmap some blocks */
/* starting from the oldest block */ /* starting from the oldest block */
p = emu->mapped_order_link_head.next; p = emu->mapped_order_link_head.next;
...@@ -454,13 +459,15 @@ static void get_single_page_range(struct snd_util_memhdr *hdr, ...@@ -454,13 +459,15 @@ static void get_single_page_range(struct snd_util_memhdr *hdr,
struct snd_emu10k1_memblk *q; struct snd_emu10k1_memblk *q;
int first_page, last_page; int first_page, last_page;
first_page = blk->first_page; first_page = blk->first_page;
if ((p = blk->mem.list.prev) != &hdr->block) { p = blk->mem.list.prev;
if (p != &hdr->block) {
q = get_emu10k1_memblk(p, mem.list); q = get_emu10k1_memblk(p, mem.list);
if (q->last_page == first_page) if (q->last_page == first_page)
first_page++; /* first page was already allocated */ first_page++; /* first page was already allocated */
} }
last_page = blk->last_page; last_page = blk->last_page;
if ((p = blk->mem.list.next) != &hdr->block) { p = blk->mem.list.next;
if (p != &hdr->block) {
q = get_emu10k1_memblk(p, mem.list); q = get_emu10k1_memblk(p, mem.list);
if (q->first_page == last_page) if (q->first_page == last_page)
last_page--; /* last page was already allocated */ last_page--; /* last page was already allocated */
......
...@@ -194,7 +194,8 @@ static int snd_p16v_pcm_open_playback_channel(struct snd_pcm_substream *substrea ...@@ -194,7 +194,8 @@ static int snd_p16v_pcm_open_playback_channel(struct snd_pcm_substream *substrea
#endif /* debug */ #endif /* debug */
/* channel->interrupt = snd_p16v_pcm_channel_interrupt; */ /* channel->interrupt = snd_p16v_pcm_channel_interrupt; */
channel->epcm = epcm; channel->epcm = epcm;
if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
if (err < 0)
return err; return err;
runtime->sync.id32[0] = substream->pcm->card->number; runtime->sync.id32[0] = substream->pcm->card->number;
...@@ -242,7 +243,8 @@ static int snd_p16v_pcm_open_capture_channel(struct snd_pcm_substream *substream ...@@ -242,7 +243,8 @@ static int snd_p16v_pcm_open_capture_channel(struct snd_pcm_substream *substream
#endif /* debug */ #endif /* debug */
/* channel->interrupt = snd_p16v_pcm_channel_interrupt; */ /* channel->interrupt = snd_p16v_pcm_channel_interrupt; */
channel->epcm = epcm; channel->epcm = epcm;
if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
if (err < 0)
return err; return err;
return 0; return 0;
...@@ -589,7 +591,8 @@ int snd_p16v_pcm(struct snd_emu10k1 *emu, int device) ...@@ -589,7 +591,8 @@ int snd_p16v_pcm(struct snd_emu10k1 *emu, int device)
/* dev_dbg(emu->card->dev, "snd_p16v_pcm called. device=%d\n", device); */ /* dev_dbg(emu->card->dev, "snd_p16v_pcm called. device=%d\n", device); */
emu->p16v_device_offset = device; emu->p16v_device_offset = device;
if ((err = snd_pcm_new(emu->card, "p16v", device, 1, capture, &pcm)) < 0) err = snd_pcm_new(emu->card, "p16v", device, 1, capture, &pcm);
if (err < 0)
return err; return err;
pcm->private_data = emu; pcm->private_data = emu;
...@@ -808,8 +811,8 @@ int snd_p16v_mixer(struct snd_emu10k1 *emu) ...@@ -808,8 +811,8 @@ int snd_p16v_mixer(struct snd_emu10k1 *emu)
struct snd_card *card = emu->card; struct snd_card *card = emu->card;
for (i = 0; i < ARRAY_SIZE(p16v_mixer_controls); i++) { for (i = 0; i < ARRAY_SIZE(p16v_mixer_controls); i++) {
if ((err = snd_ctl_add(card, snd_ctl_new1(&p16v_mixer_controls[i], err = snd_ctl_add(card, snd_ctl_new1(&p16v_mixer_controls[i], emu));
emu))) < 0) if (err < 0)
return err; return err;
} }
return 0; return 0;
......
...@@ -72,7 +72,8 @@ int snd_emu10k1_timer(struct snd_emu10k1 *emu, int device) ...@@ -72,7 +72,8 @@ int snd_emu10k1_timer(struct snd_emu10k1 *emu, int device)
tid.card = emu->card->number; tid.card = emu->card->number;
tid.device = device; tid.device = device;
tid.subdevice = 0; tid.subdevice = 0;
if ((err = snd_timer_new(emu->card, "EMU10K1", &tid, &timer)) >= 0) { err = snd_timer_new(emu->card, "EMU10K1", &tid, &timer);
if (err >= 0) {
strcpy(timer->name, "EMU10K1 timer"); strcpy(timer->name, "EMU10K1 timer");
timer->private_data = emu; timer->private_data = emu;
timer->hw = snd_emu10k1_timer_hw; timer->hw = snd_emu10k1_timer_hw;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment