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

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: default avatarOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230516093612.3536508-2-oswald.buddenhagen@gmx.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 51d652f4
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -1612,24 +1612,24 @@ struct snd_emu_chip_details {
	u32 device;
	u32 subsystem;
	unsigned char revision;
	unsigned char emu10k1_chip; /* Original SB Live. Not SB Live 24bit. */
	unsigned char emu_model;	/* EMU model type */
	unsigned int emu10k1_chip:1;	/* Original SB Live. Not SB Live 24bit. */
					/* Redundant with emu10k2_chip being unset. */
	unsigned char emu10k2_chip; /* Audigy 1 or Audigy 2. */
	unsigned char ca0102_chip;  /* Audigy 1 or Audigy 2. Not SB Audigy 2 Value. */
	unsigned int emu10k2_chip:1;	/* Audigy 1 or Audigy 2. */
	unsigned int ca0102_chip:1;	/* Audigy 1 or Audigy 2. Not SB Audigy 2 Value. */
					/* Redundant with ca0108_chip being unset. */
	unsigned char ca0108_chip;  /* Audigy 2 Value */
	unsigned char ca_cardbus_chip; /* Audigy 2 ZS Notebook */
	unsigned char ca0151_chip;  /* P16V */
	unsigned char spk71;        /* Has 7.1 speakers */
	unsigned char sblive51;	    /* SBLive! 5.1 - extout 0x11 -> center, 0x12 -> lfe */
	unsigned char spdif_bug;    /* Has Spdif phasing bug */
	unsigned char ac97_chip;    /* Has an AC97 chip: 1 = mandatory, 2 = optional */
	unsigned char ecard;        /* APS EEPROM */
	unsigned char emu_model;     /* EMU model type */
	unsigned char spi_dac;      /* SPI interface for DAC; requires ca0108_chip */
	unsigned char i2c_adc;      /* I2C interface for ADC; requires ca0108_chip */
	unsigned char adc_1361t;    /* Use Philips 1361T ADC */
	unsigned char invert_shared_spdif; /* analog/digital switch inverted */
	unsigned int ca0108_chip:1;	/* Audigy 2 Value */
	unsigned int ca_cardbus_chip:1;	/* Audigy 2 ZS Notebook */
	unsigned int ca0151_chip:1;	/* P16V */
	unsigned int spk71:1;		/* Has 7.1 speakers */
	unsigned int sblive51:1;	/* SBLive! 5.1 - extout 0x11 -> center, 0x12 -> lfe */
	unsigned int spdif_bug:1;	/* Has Spdif phasing bug */
	unsigned int ac97_chip:2;	/* Has an AC97 chip: 1 = mandatory, 2 = optional */
	unsigned int ecard:1;		/* APS EEPROM */
	unsigned int spi_dac:1;		/* SPI interface for DAC; requires ca0108_chip */
	unsigned int i2c_adc:1;		/* I2C interface for ADC; requires ca0108_chip */
	unsigned int adc_1361t:1;	/* Use Philips 1361T ADC */
	unsigned int invert_shared_spdif:1;  /* analog/digital switch inverted */
	const char *driver;
	const char *name;
	const char *id;		/* for backward compatibility - can be NULL if not needed */
+5 −5
Original line number Diff line number Diff line
@@ -180,7 +180,7 @@ static const char * const emu1616_src_texts[] = {
/*
 * 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_DOCK_MIC_A1, /* 1 */
	EMU_SRC_DOCK_MIC_B1, /* 2 */
@@ -237,7 +237,7 @@ static const unsigned int emu1010_src_regs[] = {
};

/* 1616(m) cardbus */
static const unsigned int emu1616_src_regs[] = {
static const unsigned short emu1616_src_regs[] = {
	EMU_SRC_SILENCE,
	EMU_SRC_DOCK_MIC_A1,
	EMU_SRC_DOCK_MIC_B1,
@@ -293,7 +293,7 @@ static const unsigned int emu1616_src_regs[] = {
 * Data destinations - physical EMU outputs.
 * 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_RIGHT1, /* 1 */
	EMU_DST_DOCK_DAC2_LEFT1, /* 2 */
@@ -321,7 +321,7 @@ static const unsigned int emu1010_output_dst[] = {
};

/* 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_RIGHT1,
	EMU_DST_DOCK_DAC2_LEFT1,
@@ -347,7 +347,7 @@ static const unsigned int emu1616_output_dst[] = {
 *   capture (EMU32 + I2S links)
 * 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_1,
	EMU_DST_ALICE2_EMU32_2,