diff mbox series

[10/10] ALSA: emu10k1: make struct snd_emu1010 less wasteful

Message ID 20230516093612.3536508-11-oswald.buddenhagen@gmx.de (mailing list archive)
State New, archived
Headers show
Series ALSA: emu10k1: improvements mostly to the I/O routing mixers for E-MU cards | expand

Commit Message

Oswald Buddenhagen May 16, 2023, 9:36 a.m. UTC
Shrink the {in,out}put_source arrays and their data type to what is
actually necessary.

To be still on the safe side, add some static asserts.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
---
 include/sound/emu10k1.h      | 7 +++++--
 sound/pci/emu10k1/emumixer.c | 5 +++++
 2 files changed, 10 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index c6f1d17a797f..c9fbf76b7719 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -1626,9 +1626,12 @@  struct snd_emu_chip_details {
 	const char *id;		/* for backward compatibility - can be NULL if not needed */
 };
 
+#define NUM_OUTPUT_DESTS 28
+#define NUM_INPUT_DESTS 22
+
 struct snd_emu1010 {
-	unsigned int output_source[64];
-	unsigned int input_source[64];
+	unsigned char output_source[NUM_OUTPUT_DESTS];
+	unsigned char input_source[NUM_INPUT_DESTS];
 	unsigned int adc_pads; /* bit mask */
 	unsigned int dac_pads; /* bit mask */
 	unsigned int internal_clock; /* 44100 or 48000 */
diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c
index 16970bb0012b..9318888b524d 100644
--- a/sound/pci/emu10k1/emumixer.c
+++ b/sound/pci/emu10k1/emumixer.c
@@ -273,6 +273,7 @@  static const char * const emu1010_output_texts[] = {
 	LR_CTLS("1010 SPDIF"),
 	ADAT_CTLS("1010 "),
 };
+static_assert(ARRAY_SIZE(emu1010_output_texts) <= NUM_OUTPUT_DESTS);
 
 static const unsigned short emu1010_output_dst[] = {
 	LR_REGS(EMU_DST_DOCK_DAC1),
@@ -313,6 +314,7 @@  static const char * const snd_emu1010b_output_texts[] = {
 	LR_CTLS("1010 SPDIF"),
 	ADAT_CTLS("1010 "),
 };
+static_assert(ARRAY_SIZE(snd_emu1010b_output_texts) <= NUM_OUTPUT_DESTS);
 
 static const unsigned short emu1010b_output_dst[] = {
 	LR_REGS(EMU_DST_DOCK_DAC1),
@@ -349,6 +351,7 @@  static const char * const snd_emu1616_output_texts[] = {
 	ADAT_CTLS("Dock "),
 	LR_CTLS("Mana DAC"),
 };
+static_assert(ARRAY_SIZE(snd_emu1616_output_texts) <= NUM_OUTPUT_DESTS);
 
 static const unsigned short emu1616_output_dst[] = {
 	LR_REGS(EMU_DST_DOCK_DAC1),
@@ -377,6 +380,7 @@  static const char * const snd_emu0404_output_texts[] = {
 	LR_CTLS("DAC"),
 	LR_CTLS("SPDIF"),
 };
+static_assert(ARRAY_SIZE(snd_emu0404_output_texts) <= NUM_OUTPUT_DESTS);
 
 static const unsigned short emu0404_output_dst[] = {
 	LR_REGS(EMU_DST_HAMOA_DAC),
@@ -421,6 +425,7 @@  static const char * const emu1010_input_texts[] = {
 	"DSP 14 Capture Enum",
 	"DSP 15 Capture Enum",
 };
+static_assert(ARRAY_SIZE(emu1010_input_texts) <= NUM_INPUT_DESTS);
 
 static const unsigned short emu1010_input_dst[] = {
 	EMU_DST_ALICE2_EMU32_0,