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

ALSA: emu10k1: clarify various fx8010.*_mask fields

extin_mask and extout_mask are used only by the SbLive! microcode, so
they have no effect on Audigy.

Eliminate fxbus_mask entirely, as it wasn't actually used for anything.

As a drive-by, remove the pointless pad1 field from struct
snd_emu10k1_fx8010 - it is not visible to user space, so it has no
binary compatibility constraints.
Signed-off-by: default avatarOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230421141006.1005509-1-oswald.buddenhagen@gmx.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 2db2be56
...@@ -1599,10 +1599,8 @@ struct snd_emu10k1_fx8010_pcm { ...@@ -1599,10 +1599,8 @@ struct snd_emu10k1_fx8010_pcm {
}; };
struct snd_emu10k1_fx8010 { struct snd_emu10k1_fx8010 {
unsigned short fxbus_mask; /* used FX buses (bitmask) */ unsigned short extin_mask; /* used external inputs (bitmask); not used for Audigy */
unsigned short extin_mask; /* used external inputs (bitmask) */ unsigned short extout_mask; /* used external outputs (bitmask); not used for Audigy */
unsigned short extout_mask; /* used external outputs (bitmask) */
unsigned short pad1;
unsigned int itram_size; /* internal TRAM size in samples */ unsigned int itram_size; /* internal TRAM size in samples */
struct snd_dma_buffer etram_pages; /* external TRAM pages and size */ struct snd_dma_buffer etram_pages; /* external TRAM pages and size */
unsigned int dbg; /* FX debugger register */ unsigned int dbg; /* FX debugger register */
......
...@@ -1901,11 +1901,12 @@ int snd_emu10k1_create(struct snd_card *card, ...@@ -1901,11 +1901,12 @@ int snd_emu10k1_create(struct snd_card *card,
pci_set_master(pci); pci_set_master(pci);
emu->fx8010.fxbus_mask = 0x303f; // The masks are not used for Audigy.
// FIXME: these should come from the card_capabilites table.
if (extin_mask == 0) if (extin_mask == 0)
extin_mask = 0x3fcf; extin_mask = 0x3fcf; // EXTIN_*
if (extout_mask == 0) if (extout_mask == 0)
extout_mask = 0x7fff; extout_mask = 0x7fff; // EXTOUT_*
emu->fx8010.extin_mask = extin_mask; emu->fx8010.extin_mask = extin_mask;
emu->fx8010.extout_mask = extout_mask; emu->fx8010.extout_mask = extout_mask;
emu->enable_ir = enable_ir; emu->enable_ir = enable_ir;
......
...@@ -2523,7 +2523,7 @@ static void snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu, ...@@ -2523,7 +2523,7 @@ static void snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_info *info) struct snd_emu10k1_fx8010_info *info)
{ {
const char * const *fxbus, * const *extin, * const *extout; const char * const *fxbus, * const *extin, * const *extout;
unsigned short fxbus_mask, extin_mask, extout_mask; unsigned short extin_mask, extout_mask;
int res; int res;
info->internal_tram_size = emu->fx8010.itram_size; info->internal_tram_size = emu->fx8010.itram_size;
...@@ -2531,11 +2531,10 @@ static void snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu, ...@@ -2531,11 +2531,10 @@ static void snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu,
fxbus = fxbuses; fxbus = fxbuses;
extin = emu->audigy ? audigy_ins : creative_ins; extin = emu->audigy ? audigy_ins : creative_ins;
extout = emu->audigy ? audigy_outs : creative_outs; extout = emu->audigy ? audigy_outs : creative_outs;
fxbus_mask = emu->fx8010.fxbus_mask; extin_mask = emu->audigy ? ~0 : emu->fx8010.extin_mask;
extin_mask = emu->fx8010.extin_mask; extout_mask = emu->audigy ? ~0 : emu->fx8010.extout_mask;
extout_mask = emu->fx8010.extout_mask;
for (res = 0; res < 16; res++, fxbus++, extin++, extout++) { for (res = 0; res < 16; res++, fxbus++, extin++, extout++) {
copy_string(info->fxbus_names[res], fxbus_mask & (1 << res) ? *fxbus : NULL, "FXBUS", res); copy_string(info->fxbus_names[res], *fxbus, "FXBUS", res);
copy_string(info->extin_names[res], extin_mask & (1 << res) ? *extin : NULL, "Unused", res); copy_string(info->extin_names[res], extin_mask & (1 << res) ? *extin : NULL, "Unused", res);
copy_string(info->extout_names[res], extout_mask & (1 << res) ? *extout : NULL, "Unused", res); copy_string(info->extout_names[res], extout_mask & (1 << res) ? *extout : NULL, "Unused", res);
} }
......
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