mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 00:21:59 +00:00
ALSA: scarlett2: Remove scarlett2_config_sets array
Replace array index into config sets with a pointer to a config set. Copy the config_set pointer to the scarlett2_data struct. This simplifies both the definition and use of the config sets. Signed-off-by: Geoffrey D. Bennett <g@b4.vu> Link: https://lore.kernel.org/r/61f69519fb6fbb677e066891a3a6771aeeec106d.1703444932.git.g@b4.vu Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
c0a7e1d859
commit
cbd6f148aa
@ -219,17 +219,6 @@ static const u16 scarlett2_mixer_values[SCARLETT2_MIXER_VALUE_COUNT] = {
|
||||
/* Maximum number of meters (sum of output port counts) */
|
||||
#define SCARLETT2_MAX_METERS 65
|
||||
|
||||
/* There are different sets of configuration parameters across the
|
||||
* devices, dependent on series and model.
|
||||
*/
|
||||
enum {
|
||||
SCARLETT2_CONFIG_SET_GEN_2,
|
||||
SCARLETT2_CONFIG_SET_GEN_3A,
|
||||
SCARLETT2_CONFIG_SET_GEN_3B,
|
||||
SCARLETT2_CONFIG_SET_CLARETT,
|
||||
SCARLETT2_CONFIG_SET_COUNT
|
||||
};
|
||||
|
||||
/* Hardware port types:
|
||||
* - None (no input to mux)
|
||||
* - Analogue I/O
|
||||
@ -274,6 +263,161 @@ static const char *const scarlett2_dim_mute_names[SCARLETT2_DIM_MUTE_COUNT] = {
|
||||
"Mute Playback Switch", "Dim Playback Switch"
|
||||
};
|
||||
|
||||
/* Configuration parameters that can be read and written */
|
||||
enum {
|
||||
SCARLETT2_CONFIG_DIM_MUTE,
|
||||
SCARLETT2_CONFIG_LINE_OUT_VOLUME,
|
||||
SCARLETT2_CONFIG_MUTE_SWITCH,
|
||||
SCARLETT2_CONFIG_SW_HW_SWITCH,
|
||||
SCARLETT2_CONFIG_LEVEL_SWITCH,
|
||||
SCARLETT2_CONFIG_PAD_SWITCH,
|
||||
SCARLETT2_CONFIG_MSD_SWITCH,
|
||||
SCARLETT2_CONFIG_AIR_SWITCH,
|
||||
SCARLETT2_CONFIG_STANDALONE_SWITCH,
|
||||
SCARLETT2_CONFIG_PHANTOM_SWITCH,
|
||||
SCARLETT2_CONFIG_PHANTOM_PERSISTENCE,
|
||||
SCARLETT2_CONFIG_DIRECT_MONITOR,
|
||||
SCARLETT2_CONFIG_MONITOR_OTHER_SWITCH,
|
||||
SCARLETT2_CONFIG_MONITOR_OTHER_ENABLE,
|
||||
SCARLETT2_CONFIG_TALKBACK_MAP,
|
||||
SCARLETT2_CONFIG_COUNT
|
||||
};
|
||||
|
||||
/* Location, size, and activation command number for the configuration
|
||||
* parameters. Size is in bits and may be 1, 8, or 16.
|
||||
*/
|
||||
struct scarlett2_config {
|
||||
u8 offset;
|
||||
u8 size;
|
||||
u8 activate;
|
||||
};
|
||||
|
||||
struct scarlett2_config_set {
|
||||
const struct scarlett2_config items[SCARLETT2_CONFIG_COUNT];
|
||||
};
|
||||
|
||||
/* Gen 2 devices: 6i6, 18i8, 18i20 */
|
||||
static const struct scarlett2_config_set scarlett2_config_set_gen2 = {
|
||||
.items = {
|
||||
[SCARLETT2_CONFIG_DIM_MUTE] = {
|
||||
.offset = 0x31, .size = 8, .activate = 2 },
|
||||
|
||||
[SCARLETT2_CONFIG_LINE_OUT_VOLUME] = {
|
||||
.offset = 0x34, .size = 16, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_MUTE_SWITCH] = {
|
||||
.offset = 0x5c, .size = 8, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_SW_HW_SWITCH] = {
|
||||
.offset = 0x66, .size = 8, .activate = 3 },
|
||||
|
||||
[SCARLETT2_CONFIG_LEVEL_SWITCH] = {
|
||||
.offset = 0x7c, .size = 8, .activate = 7 },
|
||||
|
||||
[SCARLETT2_CONFIG_PAD_SWITCH] = {
|
||||
.offset = 0x84, .size = 8, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_STANDALONE_SWITCH] = {
|
||||
.offset = 0x8d, .size = 8, .activate = 6 },
|
||||
}
|
||||
};
|
||||
|
||||
/* Gen 3 devices without a mixer (Solo and 2i2) */
|
||||
static const struct scarlett2_config_set scarlett2_config_set_gen3a = {
|
||||
.items = {
|
||||
[SCARLETT2_CONFIG_MSD_SWITCH] = {
|
||||
.offset = 0x04, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_PHANTOM_PERSISTENCE] = {
|
||||
.offset = 0x05, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_PHANTOM_SWITCH] = {
|
||||
.offset = 0x06, .size = 8, .activate = 3 },
|
||||
|
||||
[SCARLETT2_CONFIG_DIRECT_MONITOR] = {
|
||||
.offset = 0x07, .size = 8, .activate = 4 },
|
||||
|
||||
[SCARLETT2_CONFIG_LEVEL_SWITCH] = {
|
||||
.offset = 0x08, .size = 1, .activate = 7 },
|
||||
|
||||
[SCARLETT2_CONFIG_AIR_SWITCH] = {
|
||||
.offset = 0x09, .size = 1, .activate = 8 },
|
||||
}
|
||||
};
|
||||
|
||||
/* Gen 3 devices: 4i4, 8i6, 18i8, 18i20 */
|
||||
static const struct scarlett2_config_set scarlett2_config_set_gen3b = {
|
||||
.items = {
|
||||
[SCARLETT2_CONFIG_DIM_MUTE] = {
|
||||
.offset = 0x31, .size = 8, .activate = 2 },
|
||||
|
||||
[SCARLETT2_CONFIG_LINE_OUT_VOLUME] = {
|
||||
.offset = 0x34, .size = 16, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_MUTE_SWITCH] = {
|
||||
.offset = 0x5c, .size = 8, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_SW_HW_SWITCH] = {
|
||||
.offset = 0x66, .size = 8, .activate = 3 },
|
||||
|
||||
[SCARLETT2_CONFIG_LEVEL_SWITCH] = {
|
||||
.offset = 0x7c, .size = 8, .activate = 7 },
|
||||
|
||||
[SCARLETT2_CONFIG_PAD_SWITCH] = {
|
||||
.offset = 0x84, .size = 8, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_AIR_SWITCH] = {
|
||||
.offset = 0x8c, .size = 8, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_STANDALONE_SWITCH] = {
|
||||
.offset = 0x95, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_PHANTOM_SWITCH] = {
|
||||
.offset = 0x9c, .size = 1, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_MSD_SWITCH] = {
|
||||
.offset = 0x9d, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_PHANTOM_PERSISTENCE] = {
|
||||
.offset = 0x9e, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_MONITOR_OTHER_SWITCH] = {
|
||||
.offset = 0x9f, .size = 1, .activate = 10 },
|
||||
|
||||
[SCARLETT2_CONFIG_MONITOR_OTHER_ENABLE] = {
|
||||
.offset = 0xa0, .size = 1, .activate = 10 },
|
||||
|
||||
[SCARLETT2_CONFIG_TALKBACK_MAP] = {
|
||||
.offset = 0xb0, .size = 16, .activate = 10 },
|
||||
}
|
||||
};
|
||||
|
||||
/* Clarett USB and Clarett+ devices: 2Pre, 4Pre, 8Pre */
|
||||
static const struct scarlett2_config_set scarlett2_config_set_clarett = {
|
||||
.items = {
|
||||
[SCARLETT2_CONFIG_DIM_MUTE] = {
|
||||
.offset = 0x31, .size = 8, .activate = 2 },
|
||||
|
||||
[SCARLETT2_CONFIG_LINE_OUT_VOLUME] = {
|
||||
.offset = 0x34, .size = 16, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_MUTE_SWITCH] = {
|
||||
.offset = 0x5c, .size = 8, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_SW_HW_SWITCH] = {
|
||||
.offset = 0x66, .size = 8, .activate = 3 },
|
||||
|
||||
[SCARLETT2_CONFIG_LEVEL_SWITCH] = {
|
||||
.offset = 0x7c, .size = 8, .activate = 7 },
|
||||
|
||||
[SCARLETT2_CONFIG_AIR_SWITCH] = {
|
||||
.offset = 0x95, .size = 8, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_STANDALONE_SWITCH] = {
|
||||
.offset = 0x8d, .size = 8, .activate = 6 },
|
||||
}
|
||||
};
|
||||
|
||||
/* Description of each hardware port type:
|
||||
* - id: hardware ID of this port type
|
||||
* - src_descr: printf format string for mux input selections
|
||||
@ -356,7 +500,7 @@ struct scarlett2_meter_entry {
|
||||
|
||||
struct scarlett2_device_info {
|
||||
/* which set of configuration parameters the device uses */
|
||||
u8 config_set;
|
||||
const struct scarlett2_config_set *config_set;
|
||||
|
||||
/* line out hw volume is sw controlled */
|
||||
u8 line_out_hw_vol;
|
||||
@ -429,6 +573,7 @@ struct scarlett2_data {
|
||||
u8 flash_write_state;
|
||||
struct delayed_work work;
|
||||
const struct scarlett2_device_info *info;
|
||||
const struct scarlett2_config_set *config_set;
|
||||
const char *series_name;
|
||||
__u8 bInterfaceNumber;
|
||||
__u8 bEndpointAddress;
|
||||
@ -485,7 +630,7 @@ struct scarlett2_data {
|
||||
/*** Model-specific data ***/
|
||||
|
||||
static const struct scarlett2_device_info s6i6_gen2_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_GEN_2,
|
||||
.config_set = &scarlett2_config_set_gen2,
|
||||
.level_input_count = 2,
|
||||
.pad_input_count = 2,
|
||||
|
||||
@ -535,7 +680,7 @@ static const struct scarlett2_device_info s6i6_gen2_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info s18i8_gen2_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_GEN_2,
|
||||
.config_set = &scarlett2_config_set_gen2,
|
||||
.level_input_count = 2,
|
||||
.pad_input_count = 4,
|
||||
|
||||
@ -588,7 +733,7 @@ static const struct scarlett2_device_info s18i8_gen2_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info s18i20_gen2_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_GEN_2,
|
||||
.config_set = &scarlett2_config_set_gen2,
|
||||
.line_out_hw_vol = 1,
|
||||
|
||||
.line_out_descrs = {
|
||||
@ -646,7 +791,7 @@ static const struct scarlett2_device_info s18i20_gen2_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info solo_gen3_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_GEN_3A,
|
||||
.config_set = &scarlett2_config_set_gen3a,
|
||||
.level_input_count = 1,
|
||||
.level_input_first = 1,
|
||||
.air_input_count = 1,
|
||||
@ -656,7 +801,7 @@ static const struct scarlett2_device_info solo_gen3_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info s2i2_gen3_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_GEN_3A,
|
||||
.config_set = &scarlett2_config_set_gen3a,
|
||||
.level_input_count = 2,
|
||||
.air_input_count = 2,
|
||||
.phantom_count = 1,
|
||||
@ -665,7 +810,7 @@ static const struct scarlett2_device_info s2i2_gen3_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info s4i4_gen3_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_GEN_3B,
|
||||
.config_set = &scarlett2_config_set_gen3b,
|
||||
.level_input_count = 2,
|
||||
.pad_input_count = 2,
|
||||
.air_input_count = 2,
|
||||
@ -714,7 +859,7 @@ static const struct scarlett2_device_info s4i4_gen3_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info s8i6_gen3_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_GEN_3B,
|
||||
.config_set = &scarlett2_config_set_gen3b,
|
||||
.level_input_count = 2,
|
||||
.pad_input_count = 2,
|
||||
.air_input_count = 2,
|
||||
@ -772,7 +917,7 @@ static const struct scarlett2_device_info s8i6_gen3_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info s18i8_gen3_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_GEN_3B,
|
||||
.config_set = &scarlett2_config_set_gen3b,
|
||||
.line_out_hw_vol = 1,
|
||||
.has_speaker_switching = 1,
|
||||
.level_input_count = 2,
|
||||
@ -852,7 +997,7 @@ static const struct scarlett2_device_info s18i8_gen3_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info s18i20_gen3_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_GEN_3B,
|
||||
.config_set = &scarlett2_config_set_gen3b,
|
||||
.line_out_hw_vol = 1,
|
||||
.has_speaker_switching = 1,
|
||||
.has_talkback = 1,
|
||||
@ -923,7 +1068,7 @@ static const struct scarlett2_device_info s18i20_gen3_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info clarett_2pre_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_CLARETT,
|
||||
.config_set = &scarlett2_config_set_clarett,
|
||||
.line_out_hw_vol = 1,
|
||||
.level_input_count = 2,
|
||||
.air_input_count = 2,
|
||||
@ -971,7 +1116,7 @@ static const struct scarlett2_device_info clarett_2pre_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info clarett_4pre_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_CLARETT,
|
||||
.config_set = &scarlett2_config_set_clarett,
|
||||
.line_out_hw_vol = 1,
|
||||
.level_input_count = 2,
|
||||
.air_input_count = 4,
|
||||
@ -1024,7 +1169,7 @@ static const struct scarlett2_device_info clarett_4pre_info = {
|
||||
};
|
||||
|
||||
static const struct scarlett2_device_info clarett_8pre_info = {
|
||||
.config_set = SCARLETT2_CONFIG_SET_CLARETT,
|
||||
.config_set = &scarlett2_config_set_clarett,
|
||||
.line_out_hw_vol = 1,
|
||||
.level_input_count = 2,
|
||||
.air_input_count = 8,
|
||||
@ -1197,161 +1342,6 @@ struct scarlett2_usb_volume_status {
|
||||
s16 master_vol;
|
||||
} __packed;
|
||||
|
||||
/* Configuration parameters that can be read and written */
|
||||
enum {
|
||||
SCARLETT2_CONFIG_DIM_MUTE,
|
||||
SCARLETT2_CONFIG_LINE_OUT_VOLUME,
|
||||
SCARLETT2_CONFIG_MUTE_SWITCH,
|
||||
SCARLETT2_CONFIG_SW_HW_SWITCH,
|
||||
SCARLETT2_CONFIG_LEVEL_SWITCH,
|
||||
SCARLETT2_CONFIG_PAD_SWITCH,
|
||||
SCARLETT2_CONFIG_MSD_SWITCH,
|
||||
SCARLETT2_CONFIG_AIR_SWITCH,
|
||||
SCARLETT2_CONFIG_STANDALONE_SWITCH,
|
||||
SCARLETT2_CONFIG_PHANTOM_SWITCH,
|
||||
SCARLETT2_CONFIG_PHANTOM_PERSISTENCE,
|
||||
SCARLETT2_CONFIG_DIRECT_MONITOR,
|
||||
SCARLETT2_CONFIG_MONITOR_OTHER_SWITCH,
|
||||
SCARLETT2_CONFIG_MONITOR_OTHER_ENABLE,
|
||||
SCARLETT2_CONFIG_TALKBACK_MAP,
|
||||
SCARLETT2_CONFIG_COUNT
|
||||
};
|
||||
|
||||
/* Location, size, and activation command number for the configuration
|
||||
* parameters. Size is in bits and may be 1, 8, or 16.
|
||||
*/
|
||||
struct scarlett2_config {
|
||||
u8 offset;
|
||||
u8 size;
|
||||
u8 activate;
|
||||
};
|
||||
|
||||
struct scarlett2_config_set {
|
||||
const struct scarlett2_config items[SCARLETT2_CONFIG_COUNT];
|
||||
};
|
||||
|
||||
static const struct scarlett2_config_set
|
||||
scarlett2_config_sets[SCARLETT2_CONFIG_SET_COUNT] =
|
||||
|
||||
/* Gen 2 devices: 6i6, 18i8, 18i20 */
|
||||
{ [SCARLETT2_CONFIG_SET_GEN_2] = {
|
||||
.items = {
|
||||
[SCARLETT2_CONFIG_DIM_MUTE] = {
|
||||
.offset = 0x31, .size = 8, .activate = 2 },
|
||||
|
||||
[SCARLETT2_CONFIG_LINE_OUT_VOLUME] = {
|
||||
.offset = 0x34, .size = 16, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_MUTE_SWITCH] = {
|
||||
.offset = 0x5c, .size = 8, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_SW_HW_SWITCH] = {
|
||||
.offset = 0x66, .size = 8, .activate = 3 },
|
||||
|
||||
[SCARLETT2_CONFIG_LEVEL_SWITCH] = {
|
||||
.offset = 0x7c, .size = 8, .activate = 7 },
|
||||
|
||||
[SCARLETT2_CONFIG_PAD_SWITCH] = {
|
||||
.offset = 0x84, .size = 8, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_STANDALONE_SWITCH] = {
|
||||
.offset = 0x8d, .size = 8, .activate = 6 },
|
||||
},
|
||||
|
||||
/* Gen 3 devices without a mixer (Solo and 2i2) */
|
||||
}, [SCARLETT2_CONFIG_SET_GEN_3A] = {
|
||||
.items = {
|
||||
[SCARLETT2_CONFIG_MSD_SWITCH] = {
|
||||
.offset = 0x04, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_PHANTOM_PERSISTENCE] = {
|
||||
.offset = 0x05, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_PHANTOM_SWITCH] = {
|
||||
.offset = 0x06, .size = 8, .activate = 3 },
|
||||
|
||||
[SCARLETT2_CONFIG_DIRECT_MONITOR] = {
|
||||
.offset = 0x07, .size = 8, .activate = 4 },
|
||||
|
||||
[SCARLETT2_CONFIG_LEVEL_SWITCH] = {
|
||||
.offset = 0x08, .size = 1, .activate = 7 },
|
||||
|
||||
[SCARLETT2_CONFIG_AIR_SWITCH] = {
|
||||
.offset = 0x09, .size = 1, .activate = 8 },
|
||||
},
|
||||
|
||||
/* Gen 3 devices: 4i4, 8i6, 18i8, 18i20 */
|
||||
}, [SCARLETT2_CONFIG_SET_GEN_3B] = {
|
||||
.items = {
|
||||
[SCARLETT2_CONFIG_DIM_MUTE] = {
|
||||
.offset = 0x31, .size = 8, .activate = 2 },
|
||||
|
||||
[SCARLETT2_CONFIG_LINE_OUT_VOLUME] = {
|
||||
.offset = 0x34, .size = 16, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_MUTE_SWITCH] = {
|
||||
.offset = 0x5c, .size = 8, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_SW_HW_SWITCH] = {
|
||||
.offset = 0x66, .size = 8, .activate = 3 },
|
||||
|
||||
[SCARLETT2_CONFIG_LEVEL_SWITCH] = {
|
||||
.offset = 0x7c, .size = 8, .activate = 7 },
|
||||
|
||||
[SCARLETT2_CONFIG_PAD_SWITCH] = {
|
||||
.offset = 0x84, .size = 8, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_AIR_SWITCH] = {
|
||||
.offset = 0x8c, .size = 8, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_STANDALONE_SWITCH] = {
|
||||
.offset = 0x95, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_PHANTOM_SWITCH] = {
|
||||
.offset = 0x9c, .size = 1, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_MSD_SWITCH] = {
|
||||
.offset = 0x9d, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_PHANTOM_PERSISTENCE] = {
|
||||
.offset = 0x9e, .size = 8, .activate = 6 },
|
||||
|
||||
[SCARLETT2_CONFIG_MONITOR_OTHER_SWITCH] = {
|
||||
.offset = 0x9f, .size = 1, .activate = 10 },
|
||||
|
||||
[SCARLETT2_CONFIG_MONITOR_OTHER_ENABLE] = {
|
||||
.offset = 0xa0, .size = 1, .activate = 10 },
|
||||
|
||||
[SCARLETT2_CONFIG_TALKBACK_MAP] = {
|
||||
.offset = 0xb0, .size = 16, .activate = 10 },
|
||||
},
|
||||
|
||||
/* Clarett USB and Clarett+ devices: 2Pre, 4Pre, 8Pre */
|
||||
}, [SCARLETT2_CONFIG_SET_CLARETT] = {
|
||||
.items = {
|
||||
[SCARLETT2_CONFIG_DIM_MUTE] = {
|
||||
.offset = 0x31, .size = 8, .activate = 2 },
|
||||
|
||||
[SCARLETT2_CONFIG_LINE_OUT_VOLUME] = {
|
||||
.offset = 0x34, .size = 16, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_MUTE_SWITCH] = {
|
||||
.offset = 0x5c, .size = 8, .activate = 1 },
|
||||
|
||||
[SCARLETT2_CONFIG_SW_HW_SWITCH] = {
|
||||
.offset = 0x66, .size = 8, .activate = 3 },
|
||||
|
||||
[SCARLETT2_CONFIG_LEVEL_SWITCH] = {
|
||||
.offset = 0x7c, .size = 8, .activate = 7 },
|
||||
|
||||
[SCARLETT2_CONFIG_AIR_SWITCH] = {
|
||||
.offset = 0x95, .size = 8, .activate = 8 },
|
||||
|
||||
[SCARLETT2_CONFIG_STANDALONE_SWITCH] = {
|
||||
.offset = 0x8d, .size = 8, .activate = 6 },
|
||||
}
|
||||
} };
|
||||
|
||||
/* proprietary request/response format */
|
||||
struct scarlett2_usb_packet {
|
||||
__le32 cmd;
|
||||
@ -1523,11 +1513,7 @@ static int scarlett2_usb_get(
|
||||
static int scarlett2_has_config_item(
|
||||
struct scarlett2_data *private, int config_item_num)
|
||||
{
|
||||
const struct scarlett2_device_info *info = private->info;
|
||||
const struct scarlett2_config *config_item =
|
||||
&scarlett2_config_sets[info->config_set].items[config_item_num];
|
||||
|
||||
return !!config_item->offset;
|
||||
return !!private->config_set->items[config_item_num].offset;
|
||||
}
|
||||
|
||||
/* Send a USB message to get configuration parameters; result placed in *buf */
|
||||
@ -1536,9 +1522,8 @@ static int scarlett2_usb_get_config(
|
||||
int config_item_num, int count, void *buf)
|
||||
{
|
||||
struct scarlett2_data *private = mixer->private_data;
|
||||
const struct scarlett2_device_info *info = private->info;
|
||||
const struct scarlett2_config *config_item =
|
||||
&scarlett2_config_sets[info->config_set].items[config_item_num];
|
||||
&private->config_set->items[config_item_num];
|
||||
int size, err, i;
|
||||
u8 *buf_8;
|
||||
u8 value;
|
||||
@ -1598,9 +1583,8 @@ static int scarlett2_usb_set_config(
|
||||
int config_item_num, int index, int value)
|
||||
{
|
||||
struct scarlett2_data *private = mixer->private_data;
|
||||
const struct scarlett2_device_info *info = private->info;
|
||||
const struct scarlett2_config *config_item =
|
||||
&scarlett2_config_sets[info->config_set].items[config_item_num];
|
||||
&private->config_set->items[config_item_num];
|
||||
struct {
|
||||
__le32 offset;
|
||||
__le32 bytes;
|
||||
@ -4365,6 +4349,7 @@ static int scarlett2_init_private(struct usb_mixer_interface *mixer,
|
||||
mixer->private_suspend = scarlett2_private_suspend;
|
||||
|
||||
private->info = entry->info;
|
||||
private->config_set = entry->info->config_set;
|
||||
private->series_name = entry->series_name;
|
||||
scarlett2_count_mux_io(private);
|
||||
private->scarlett2_seq = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user