ALSA: emu10k1: make some initializer arrays less wasteful

- Use bit fields in struct snd_emu_chip_details
- Use shorts in the E-MU routing register arrays

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230516093612.3536508-2-oswald.buddenhagen@gmx.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Oswald Buddenhagen 2023-05-16 11:36:03 +02:00 committed by Takashi Iwai
parent 51d652f458
commit 9b00a1e9b1
2 changed files with 23 additions and 23 deletions

View File

@ -1612,24 +1612,24 @@ struct snd_emu_chip_details {
u32 device; u32 device;
u32 subsystem; u32 subsystem;
unsigned char revision; unsigned char revision;
unsigned char emu10k1_chip; /* Original SB Live. Not SB Live 24bit. */ unsigned char emu_model; /* EMU model type */
/* Redundant with emu10k2_chip being unset. */ unsigned int emu10k1_chip:1; /* Original SB Live. Not SB Live 24bit. */
unsigned char emu10k2_chip; /* Audigy 1 or Audigy 2. */ /* Redundant with emu10k2_chip being unset. */
unsigned char ca0102_chip; /* Audigy 1 or Audigy 2. Not SB Audigy 2 Value. */ unsigned int emu10k2_chip:1; /* Audigy 1 or Audigy 2. */
/* Redundant with ca0108_chip being unset. */ unsigned int ca0102_chip:1; /* Audigy 1 or Audigy 2. Not SB Audigy 2 Value. */
unsigned char ca0108_chip; /* Audigy 2 Value */ /* Redundant with ca0108_chip being unset. */
unsigned char ca_cardbus_chip; /* Audigy 2 ZS Notebook */ unsigned int ca0108_chip:1; /* Audigy 2 Value */
unsigned char ca0151_chip; /* P16V */ unsigned int ca_cardbus_chip:1; /* Audigy 2 ZS Notebook */
unsigned char spk71; /* Has 7.1 speakers */ unsigned int ca0151_chip:1; /* P16V */
unsigned char sblive51; /* SBLive! 5.1 - extout 0x11 -> center, 0x12 -> lfe */ unsigned int spk71:1; /* Has 7.1 speakers */
unsigned char spdif_bug; /* Has Spdif phasing bug */ unsigned int sblive51:1; /* SBLive! 5.1 - extout 0x11 -> center, 0x12 -> lfe */
unsigned char ac97_chip; /* Has an AC97 chip: 1 = mandatory, 2 = optional */ unsigned int spdif_bug:1; /* Has Spdif phasing bug */
unsigned char ecard; /* APS EEPROM */ unsigned int ac97_chip:2; /* Has an AC97 chip: 1 = mandatory, 2 = optional */
unsigned char emu_model; /* EMU model type */ unsigned int ecard:1; /* APS EEPROM */
unsigned char spi_dac; /* SPI interface for DAC; requires ca0108_chip */ unsigned int spi_dac:1; /* SPI interface for DAC; requires ca0108_chip */
unsigned char i2c_adc; /* I2C interface for ADC; requires ca0108_chip */ unsigned int i2c_adc:1; /* I2C interface for ADC; requires ca0108_chip */
unsigned char adc_1361t; /* Use Philips 1361T ADC */ unsigned int adc_1361t:1; /* Use Philips 1361T ADC */
unsigned char invert_shared_spdif; /* analog/digital switch inverted */ unsigned int invert_shared_spdif:1; /* analog/digital switch inverted */
const char *driver; const char *driver;
const char *name; const char *name;
const char *id; /* for backward compatibility - can be NULL if not needed */ const char *id; /* for backward compatibility - can be NULL if not needed */

View File

@ -180,7 +180,7 @@ static const char * const emu1616_src_texts[] = {
/* /*
* List of data sources available for each destination * List of data sources available for each destination
*/ */
static const unsigned int emu1010_src_regs[] = { static const unsigned short emu1010_src_regs[] = {
EMU_SRC_SILENCE,/* 0 */ EMU_SRC_SILENCE,/* 0 */
EMU_SRC_DOCK_MIC_A1, /* 1 */ EMU_SRC_DOCK_MIC_A1, /* 1 */
EMU_SRC_DOCK_MIC_B1, /* 2 */ EMU_SRC_DOCK_MIC_B1, /* 2 */
@ -237,7 +237,7 @@ static const unsigned int emu1010_src_regs[] = {
}; };
/* 1616(m) cardbus */ /* 1616(m) cardbus */
static const unsigned int emu1616_src_regs[] = { static const unsigned short emu1616_src_regs[] = {
EMU_SRC_SILENCE, EMU_SRC_SILENCE,
EMU_SRC_DOCK_MIC_A1, EMU_SRC_DOCK_MIC_A1,
EMU_SRC_DOCK_MIC_B1, EMU_SRC_DOCK_MIC_B1,
@ -293,7 +293,7 @@ static const unsigned int emu1616_src_regs[] = {
* Data destinations - physical EMU outputs. * Data destinations - physical EMU outputs.
* Each destination has an enum mixer control to choose a data source * Each destination has an enum mixer control to choose a data source
*/ */
static const unsigned int emu1010_output_dst[] = { static const unsigned short emu1010_output_dst[] = {
EMU_DST_DOCK_DAC1_LEFT1, /* 0 */ EMU_DST_DOCK_DAC1_LEFT1, /* 0 */
EMU_DST_DOCK_DAC1_RIGHT1, /* 1 */ EMU_DST_DOCK_DAC1_RIGHT1, /* 1 */
EMU_DST_DOCK_DAC2_LEFT1, /* 2 */ EMU_DST_DOCK_DAC2_LEFT1, /* 2 */
@ -321,7 +321,7 @@ static const unsigned int emu1010_output_dst[] = {
}; };
/* 1616(m) cardbus */ /* 1616(m) cardbus */
static const unsigned int emu1616_output_dst[] = { static const unsigned short emu1616_output_dst[] = {
EMU_DST_DOCK_DAC1_LEFT1, EMU_DST_DOCK_DAC1_LEFT1,
EMU_DST_DOCK_DAC1_RIGHT1, EMU_DST_DOCK_DAC1_RIGHT1,
EMU_DST_DOCK_DAC2_LEFT1, EMU_DST_DOCK_DAC2_LEFT1,
@ -347,7 +347,7 @@ static const unsigned int emu1616_output_dst[] = {
* capture (EMU32 + I2S links) * capture (EMU32 + I2S links)
* Each destination has an enum mixer control to choose a data source * Each destination has an enum mixer control to choose a data source
*/ */
static const unsigned int emu1010_input_dst[] = { static const unsigned short emu1010_input_dst[] = {
EMU_DST_ALICE2_EMU32_0, EMU_DST_ALICE2_EMU32_0,
EMU_DST_ALICE2_EMU32_1, EMU_DST_ALICE2_EMU32_1,
EMU_DST_ALICE2_EMU32_2, EMU_DST_ALICE2_EMU32_2,