Commit e922da40 authored by Oswald Buddenhagen's avatar Oswald Buddenhagen Committed by Takashi Iwai

ALSA: emu10k1: minor optimizations

- In snd_emu10k1_look_for_ctl(), evaluate the cheap condition first
- In _snd_emu10k1_{audigy_,}init_efx(), don't use expensive bit setting
  loops to fill arrays
- In snd_emu_proc_ptr_reg_read(), remove useless condition - iobase can
  be only 0 or 0x20
Signed-off-by: default avatarOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230422121519.1052813-1-oswald.buddenhagen@gmx.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 335927b1
...@@ -641,8 +641,8 @@ snd_emu10k1_look_for_ctl(struct snd_emu10k1 *emu, ...@@ -641,8 +641,8 @@ snd_emu10k1_look_for_ctl(struct snd_emu10k1 *emu,
list_for_each_entry(ctl, &emu->fx8010.gpr_ctl, list) { list_for_each_entry(ctl, &emu->fx8010.gpr_ctl, list) {
kcontrol = ctl->kcontrol; kcontrol = ctl->kcontrol;
if (kcontrol->id.iface == id->iface && if (kcontrol->id.iface == id->iface &&
!strcmp(kcontrol->id.name, id->name) && kcontrol->id.index == id->index &&
kcontrol->id.index == id->index) !strcmp(kcontrol->id.name, id->name))
return ctl; return ctl;
} }
return NULL; return NULL;
...@@ -1213,7 +1213,7 @@ static int snd_emu10k1_audigy_dsp_convert_32_to_2x16( ...@@ -1213,7 +1213,7 @@ static int snd_emu10k1_audigy_dsp_convert_32_to_2x16(
static int _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu) static int _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu)
{ {
int err, i, z, gpr, nctl; int err, z, gpr, nctl;
int bit_shifter16; int bit_shifter16;
const int playback = 10; const int playback = 10;
const int capture = playback + (SND_EMU10K1_PLAYBACK_CHANNELS * 2); /* we reserve 10 voices */ const int capture = playback + (SND_EMU10K1_PLAYBACK_CHANNELS * 2); /* we reserve 10 voices */
...@@ -1245,12 +1245,10 @@ static int _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu) ...@@ -1245,12 +1245,10 @@ static int _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu)
icode->code = icode->tram_addr_map + 256; icode->code = icode->tram_addr_map + 256;
/* clear free GPRs */ /* clear free GPRs */
for (i = 0; i < 512; i++) memset(icode->gpr_valid, 0xff, 512 / 8);
set_bit(i, icode->gpr_valid);
/* clear TRAM data & address lines */ /* clear TRAM data & address lines */
for (i = 0; i < 256; i++) memset(icode->tram_valid, 0xff, 256 / 8);
set_bit(i, icode->tram_valid);
strcpy(icode->name, "Audigy DSP code for ALSA"); strcpy(icode->name, "Audigy DSP code for ALSA");
ptr = 0; ptr = 0;
...@@ -1886,12 +1884,10 @@ static int _snd_emu10k1_init_efx(struct snd_emu10k1 *emu) ...@@ -1886,12 +1884,10 @@ static int _snd_emu10k1_init_efx(struct snd_emu10k1 *emu)
icode->code = icode->tram_addr_map + 160; icode->code = icode->tram_addr_map + 160;
/* clear free GPRs */ /* clear free GPRs */
for (i = 0; i < 256; i++) memset(icode->gpr_valid, 0xff, 256 / 8);
set_bit(i, icode->gpr_valid);
/* clear TRAM data & address lines */ /* clear TRAM data & address lines */
for (i = 0; i < 160; i++) memset(icode->tram_valid, 0xff, 160 / 8);
set_bit(i, icode->tram_valid);
strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela"); strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela");
ptr = 0; i = 0; ptr = 0; i = 0;
......
...@@ -477,10 +477,7 @@ static void snd_emu_proc_ptr_reg_read(struct snd_info_entry *entry, ...@@ -477,10 +477,7 @@ static void snd_emu_proc_ptr_reg_read(struct snd_info_entry *entry,
for(i = offset; i < offset+length; i++) { for(i = offset; i < offset+length; i++) {
snd_iprintf(buffer, "%02X: ",i); snd_iprintf(buffer, "%02X: ",i);
for (j = 0; j < voices; j++) { for (j = 0; j < voices; j++) {
if(iobase == 0) value = snd_ptr_read(emu, iobase, i, j);
value = snd_ptr_read(emu, 0, i, j);
else
value = snd_ptr_read(emu, 0x20, i, j);
snd_iprintf(buffer, "%08lX ", value); snd_iprintf(buffer, "%08lX ", value);
} }
snd_iprintf(buffer, "\n"); snd_iprintf(buffer, "\n");
......
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