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

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.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 2db2be56
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -1599,10 +1599,8 @@ struct snd_emu10k1_fx8010_pcm {
};

struct snd_emu10k1_fx8010 {
	unsigned short fxbus_mask;	/* used FX buses (bitmask) */
	unsigned short extin_mask;	/* used external inputs (bitmask) */
	unsigned short extout_mask;	/* used external outputs (bitmask) */
	unsigned short pad1;
	unsigned short extin_mask;	/* used external inputs (bitmask); not used for Audigy */
	unsigned short extout_mask;	/* used external outputs (bitmask); not used for Audigy */
	unsigned int itram_size;	/* internal TRAM size in samples */
	struct snd_dma_buffer etram_pages; /* external TRAM pages and size */
	unsigned int dbg;		/* FX debugger register */
+4 −3
Original line number Diff line number Diff line
@@ -1901,11 +1901,12 @@ int snd_emu10k1_create(struct snd_card *card,

	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)
		extin_mask = 0x3fcf;
		extin_mask = 0x3fcf;  // EXTIN_*
	if (extout_mask == 0)
		extout_mask = 0x7fff;
		extout_mask = 0x7fff;  // EXTOUT_*
	emu->fx8010.extin_mask = extin_mask;
	emu->fx8010.extout_mask = extout_mask;
	emu->enable_ir = enable_ir;
+4 −5
Original line number Diff line number Diff line
@@ -2523,7 +2523,7 @@ static void snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu,
				   struct snd_emu10k1_fx8010_info *info)
{
	const char * const *fxbus, * const *extin, * const *extout;
	unsigned short fxbus_mask, extin_mask, extout_mask;
	unsigned short extin_mask, extout_mask;
	int res;

	info->internal_tram_size = emu->fx8010.itram_size;
@@ -2531,11 +2531,10 @@ static void snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu,
	fxbus = fxbuses;
	extin = emu->audigy ? audigy_ins : creative_ins;
	extout = emu->audigy ? audigy_outs : creative_outs;
	fxbus_mask = emu->fx8010.fxbus_mask;
	extin_mask = emu->fx8010.extin_mask;
	extout_mask = emu->fx8010.extout_mask;
	extin_mask = emu->audigy ? ~0 : emu->fx8010.extin_mask;
	extout_mask = emu->audigy ? ~0 : emu->fx8010.extout_mask;
	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->extout_names[res], extout_mask & (1 << res) ? *extout : NULL, "Unused", res);
	}