- linux-5.7/sound/usb/mixer_quirks.c:34:#include "mixer_scarlett.h"
- linux-5.7/sound/usb/mixer_quirks.c:35:#include "mixer_scarlett_gen2.h"
- linux-5.7/sound/usb/mixer_quirks.c:2259: case USB_ID(0x1235, 0x8012): /* Focusrite Scarlett 6i6 */
- linux-5.7/sound/usb/mixer_quirks.c:2260: case USB_ID(0x1235, 0x8002): /* Focusrite Scarlett 8i6 */
- linux-5.7/sound/usb/mixer_quirks.c:2261: case USB_ID(0x1235, 0x8004): /* Focusrite Scarlett 18i6 */
- linux-5.7/sound/usb/mixer_quirks.c:2262: case USB_ID(0x1235, 0x8014): /* Focusrite Scarlett 18i8 */
- linux-5.7/sound/usb/mixer_quirks.c:2263: case USB_ID(0x1235, 0x800c): /* Focusrite Scarlett 18i20 */
- linux-5.7/sound/usb/mixer_quirks.c:2264: err = snd_scarlett_controls_create(mixer);
- linux-5.7/sound/usb/mixer_quirks.c:2267: case USB_ID(0x1235, 0x8203): /* Focusrite Scarlett 6i6 2nd Gen */
- linux-5.7/sound/usb/mixer_quirks.c:2268: case USB_ID(0x1235, 0x8204): /* Focusrite Scarlett 18i8 2nd Gen */
- linux-5.7/sound/usb/mixer_quirks.c:2269: case USB_ID(0x1235, 0x8201): /* Focusrite Scarlett 18i20 2nd Gen */
- linux-5.7/sound/usb/mixer_quirks.c:2270: err = snd_scarlett_gen2_controls_create(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.h:2:#ifndef __USB_MIXER_SCARLETT_GEN2_H
- linux-5.7/sound/usb/mixer_scarlett_gen2.h:3:#define __USB_MIXER_SCARLETT_GEN2_H
- linux-5.7/sound/usb/mixer_scarlett_gen2.h:5:int snd_scarlett_gen2_controls_create(struct usb_mixer_interface *mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.h:7:#endif /* __USB_MIXER_SCARLETT_GEN2_H */
- linux-5.7/sound/usb/mixer_scarlett.c:3: * Scarlett Driver for ALSA
- linux-5.7/sound/usb/mixer_scarlett.c:19: * Rewritten and extended to support more models, e.g. Scarlett 18i8.
- linux-5.7/sound/usb/mixer_scarlett.c:30:/* Mixer Interface for the Focusrite Scarlett 18i6 audio interface.
- linux-5.7/sound/usb/mixer_scarlett.c:33: * Scarlett MixControl (v 1.2.128.0) and the Focusrite(R) Scarlett 18i6
- linux-5.7/sound/usb/mixer_scarlett.c:133:#include "mixer_scarlett.h"
- linux-5.7/sound/usb/mixer_scarlett.c:136:#define SND_SCARLETT_LEVEL_BIAS 128
- linux-5.7/sound/usb/mixer_scarlett.c:137:#define SND_SCARLETT_MATRIX_IN_MAX 18
- linux-5.7/sound/usb/mixer_scarlett.c:138:#define SND_SCARLETT_CONTROLS_MAX 10
- linux-5.7/sound/usb/mixer_scarlett.c:139:#define SND_SCARLETT_OFFSETS_MAX 5
- linux-5.7/sound/usb/mixer_scarlett.c:142: SCARLETT_OUTPUTS,
- linux-5.7/sound/usb/mixer_scarlett.c:143: SCARLETT_SWITCH_IMPEDANCE,
- linux-5.7/sound/usb/mixer_scarlett.c:144: SCARLETT_SWITCH_PAD,
- linux-5.7/sound/usb/mixer_scarlett.c:145: SCARLETT_SWITCH_GAIN,
- linux-5.7/sound/usb/mixer_scarlett.c:149: SCARLETT_OFFSET_PCM = 0,
- linux-5.7/sound/usb/mixer_scarlett.c:150: SCARLETT_OFFSET_ANALOG = 1,
- linux-5.7/sound/usb/mixer_scarlett.c:151: SCARLETT_OFFSET_SPDIF = 2,
- linux-5.7/sound/usb/mixer_scarlett.c:152: SCARLETT_OFFSET_ADAT = 3,
- linux-5.7/sound/usb/mixer_scarlett.c:153: SCARLETT_OFFSET_MIX = 4,
- linux-5.7/sound/usb/mixer_scarlett.c:156:struct scarlett_mixer_elem_enum_info {
- linux-5.7/sound/usb/mixer_scarlett.c:159: int offsets[SND_SCARLETT_OFFSETS_MAX];
- linux-5.7/sound/usb/mixer_scarlett.c:163:struct scarlett_mixer_control {
- linux-5.7/sound/usb/mixer_scarlett.c:169:struct scarlett_device_info {
- linux-5.7/sound/usb/mixer_scarlett.c:175: struct scarlett_mixer_elem_enum_info opt_master;
- linux-5.7/sound/usb/mixer_scarlett.c:176: struct scarlett_mixer_elem_enum_info opt_matrix;
- linux-5.7/sound/usb/mixer_scarlett.c:179: int matrix_mux_init[SND_SCARLETT_MATRIX_IN_MAX];
- linux-5.7/sound/usb/mixer_scarlett.c:182: const struct scarlett_mixer_control controls[SND_SCARLETT_CONTROLS_MAX];
- linux-5.7/sound/usb/mixer_scarlett.c:187:static const struct scarlett_mixer_elem_enum_info opt_pad = {
- linux-5.7/sound/usb/mixer_scarlett.c:196:static const struct scarlett_mixer_elem_enum_info opt_gain = {
- linux-5.7/sound/usb/mixer_scarlett.c:205:static const struct scarlett_mixer_elem_enum_info opt_impedance = {
- linux-5.7/sound/usb/mixer_scarlett.c:214:static const struct scarlett_mixer_elem_enum_info opt_clock = {
- linux-5.7/sound/usb/mixer_scarlett.c:223:static const struct scarlett_mixer_elem_enum_info opt_sync = {
- linux-5.7/sound/usb/mixer_scarlett.c:232:static int scarlett_ctl_switch_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:244:static int scarlett_ctl_switch_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:262:static int scarlett_ctl_switch_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:288:static int scarlett_ctl_resume(struct usb_mixer_elem_list *list)
- linux-5.7/sound/usb/mixer_scarlett.c:300:static int scarlett_ctl_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:309: SND_SCARLETT_LEVEL_BIAS;
- linux-5.7/sound/usb/mixer_scarlett.c:314:static int scarlett_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:326: SND_SCARLETT_LEVEL_BIAS;
- linux-5.7/sound/usb/mixer_scarlett.c:333:static int scarlett_ctl_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:346: SND_SCARLETT_LEVEL_BIAS;
- linux-5.7/sound/usb/mixer_scarlett.c:360:static void scarlett_generate_name(int i, char *dst, int offsets[])
- linux-5.7/sound/usb/mixer_scarlett.c:362: if (i > offsets[SCARLETT_OFFSET_MIX])
- linux-5.7/sound/usb/mixer_scarlett.c:364: 'A'+(i - offsets[SCARLETT_OFFSET_MIX] - 1));
- linux-5.7/sound/usb/mixer_scarlett.c:365: else if (i > offsets[SCARLETT_OFFSET_ADAT])
- linux-5.7/sound/usb/mixer_scarlett.c:366: sprintf(dst, "ADAT %d", i - offsets[SCARLETT_OFFSET_ADAT]);
- linux-5.7/sound/usb/mixer_scarlett.c:367: else if (i > offsets[SCARLETT_OFFSET_SPDIF])
- linux-5.7/sound/usb/mixer_scarlett.c:368: sprintf(dst, "SPDIF %d", i - offsets[SCARLETT_OFFSET_SPDIF]);
- linux-5.7/sound/usb/mixer_scarlett.c:369: else if (i > offsets[SCARLETT_OFFSET_ANALOG])
- linux-5.7/sound/usb/mixer_scarlett.c:370: sprintf(dst, "Analog %d", i - offsets[SCARLETT_OFFSET_ANALOG]);
- linux-5.7/sound/usb/mixer_scarlett.c:371: else if (i > offsets[SCARLETT_OFFSET_PCM])
- linux-5.7/sound/usb/mixer_scarlett.c:372: sprintf(dst, "PCM %d", i - offsets[SCARLETT_OFFSET_PCM]);
- linux-5.7/sound/usb/mixer_scarlett.c:377:static int scarlett_ctl_enum_dynamic_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:381: struct scarlett_mixer_elem_enum_info *opt = elem->private_data;
- linux-5.7/sound/usb/mixer_scarlett.c:392: scarlett_generate_name(uinfo->value.enumerated.item,
- linux-5.7/sound/usb/mixer_scarlett.c:399:static int scarlett_ctl_enum_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:403: struct scarlett_mixer_elem_enum_info *opt = elem->private_data;
- linux-5.7/sound/usb/mixer_scarlett.c:409:static int scarlett_ctl_enum_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:413: struct scarlett_mixer_elem_enum_info *opt = elem->private_data;
- linux-5.7/sound/usb/mixer_scarlett.c:427:static int scarlett_ctl_enum_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:431: struct scarlett_mixer_elem_enum_info *opt = elem->private_data;
- linux-5.7/sound/usb/mixer_scarlett.c:447:static int scarlett_ctl_enum_resume(struct usb_mixer_elem_list *list)
- linux-5.7/sound/usb/mixer_scarlett.c:456:static int scarlett_ctl_meter_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett.c:478:static const struct snd_kcontrol_new usb_scarlett_ctl_switch = {
- linux-5.7/sound/usb/mixer_scarlett.c:481: .info = scarlett_ctl_switch_info,
- linux-5.7/sound/usb/mixer_scarlett.c:482: .get = scarlett_ctl_switch_get,
- linux-5.7/sound/usb/mixer_scarlett.c:483: .put = scarlett_ctl_switch_put,
- linux-5.7/sound/usb/mixer_scarlett.c:486:static const DECLARE_TLV_DB_SCALE(db_scale_scarlett_gain, -12800, 100, 0);
- linux-5.7/sound/usb/mixer_scarlett.c:488:static const struct snd_kcontrol_new usb_scarlett_ctl = {
- linux-5.7/sound/usb/mixer_scarlett.c:493: .info = scarlett_ctl_info,
- linux-5.7/sound/usb/mixer_scarlett.c:494: .get = scarlett_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett.c:495: .put = scarlett_ctl_put,
- linux-5.7/sound/usb/mixer_scarlett.c:497: .tlv = { .p = db_scale_scarlett_gain }
- linux-5.7/sound/usb/mixer_scarlett.c:500:static const struct snd_kcontrol_new usb_scarlett_ctl_master = {
- linux-5.7/sound/usb/mixer_scarlett.c:505: .info = scarlett_ctl_info,
- linux-5.7/sound/usb/mixer_scarlett.c:506: .get = scarlett_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett.c:507: .put = scarlett_ctl_put,
- linux-5.7/sound/usb/mixer_scarlett.c:509: .tlv = { .p = db_scale_scarlett_gain }
- linux-5.7/sound/usb/mixer_scarlett.c:512:static const struct snd_kcontrol_new usb_scarlett_ctl_enum = {
- linux-5.7/sound/usb/mixer_scarlett.c:515: .info = scarlett_ctl_enum_info,
- linux-5.7/sound/usb/mixer_scarlett.c:516: .get = scarlett_ctl_enum_get,
- linux-5.7/sound/usb/mixer_scarlett.c:517: .put = scarlett_ctl_enum_put,
- linux-5.7/sound/usb/mixer_scarlett.c:520:static const struct snd_kcontrol_new usb_scarlett_ctl_dynamic_enum = {
- linux-5.7/sound/usb/mixer_scarlett.c:523: .info = scarlett_ctl_enum_dynamic_info,
- linux-5.7/sound/usb/mixer_scarlett.c:524: .get = scarlett_ctl_enum_get,
- linux-5.7/sound/usb/mixer_scarlett.c:525: .put = scarlett_ctl_enum_put,
- linux-5.7/sound/usb/mixer_scarlett.c:528:static const struct snd_kcontrol_new usb_scarlett_ctl_sync = {
- linux-5.7/sound/usb/mixer_scarlett.c:532: .info = scarlett_ctl_enum_info,
- linux-5.7/sound/usb/mixer_scarlett.c:533: .get = scarlett_ctl_meter_get,
- linux-5.7/sound/usb/mixer_scarlett.c:541: const struct scarlett_mixer_elem_enum_info *opt,
- linux-5.7/sound/usb/mixer_scarlett.c:562: /* add scarlett_mixer_elem_enum_info struct */
- linux-5.7/sound/usb/mixer_scarlett.c:586: const struct scarlett_device_info *info)
- linux-5.7/sound/usb/mixer_scarlett.c:595: err = add_new_ctl(mixer, &usb_scarlett_ctl_switch,
- linux-5.7/sound/usb/mixer_scarlett.c:596: scarlett_ctl_resume, 0x0a, 0x01,
- linux-5.7/sound/usb/mixer_scarlett.c:604: err = add_new_ctl(mixer, &usb_scarlett_ctl_master,
- linux-5.7/sound/usb/mixer_scarlett.c:605: scarlett_ctl_resume, 0x0a, 0x02,
- linux-5.7/sound/usb/mixer_scarlett.c:613: err = add_new_ctl(mixer, &usb_scarlett_ctl_dynamic_enum,
- linux-5.7/sound/usb/mixer_scarlett.c:614: scarlett_ctl_enum_resume, 0x33, 0x00,
- linux-5.7/sound/usb/mixer_scarlett.c:623: err = add_new_ctl(mixer, &usb_scarlett_ctl_dynamic_enum,
- linux-5.7/sound/usb/mixer_scarlett.c:624: scarlett_ctl_enum_resume, 0x33, 0x00,
- linux-5.7/sound/usb/mixer_scarlett.c:636:static const struct scarlett_device_info s6i6_info = {
- linux-5.7/sound/usb/mixer_scarlett.c:658: { .num = 0, .type = SCARLETT_OUTPUTS, .name = "Monitor" },
- linux-5.7/sound/usb/mixer_scarlett.c:659: { .num = 1, .type = SCARLETT_OUTPUTS, .name = "Headphone" },
- linux-5.7/sound/usb/mixer_scarlett.c:660: { .num = 2, .type = SCARLETT_OUTPUTS, .name = "SPDIF" },
- linux-5.7/sound/usb/mixer_scarlett.c:661: { .num = 1, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:662: { .num = 1, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:663: { .num = 2, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:664: { .num = 2, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:665: { .num = 3, .type = SCARLETT_SWITCH_GAIN, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:666: { .num = 4, .type = SCARLETT_SWITCH_GAIN, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:678:static const struct scarlett_device_info s8i6_info = {
- linux-5.7/sound/usb/mixer_scarlett.c:700: { .num = 0, .type = SCARLETT_OUTPUTS, .name = "Monitor" },
- linux-5.7/sound/usb/mixer_scarlett.c:701: { .num = 1, .type = SCARLETT_OUTPUTS, .name = "Headphone" },
- linux-5.7/sound/usb/mixer_scarlett.c:702: { .num = 2, .type = SCARLETT_OUTPUTS, .name = "SPDIF" },
- linux-5.7/sound/usb/mixer_scarlett.c:703: { .num = 1, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:704: { .num = 2, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:705: { .num = 3, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:706: { .num = 4, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:717:static const struct scarlett_device_info s18i6_info = {
- linux-5.7/sound/usb/mixer_scarlett.c:739: { .num = 0, .type = SCARLETT_OUTPUTS, .name = "Monitor" },
- linux-5.7/sound/usb/mixer_scarlett.c:740: { .num = 1, .type = SCARLETT_OUTPUTS, .name = "Headphone" },
- linux-5.7/sound/usb/mixer_scarlett.c:741: { .num = 2, .type = SCARLETT_OUTPUTS, .name = "SPDIF" },
- linux-5.7/sound/usb/mixer_scarlett.c:742: { .num = 1, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:743: { .num = 2, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:754:static const struct scarlett_device_info s18i8_info = {
- linux-5.7/sound/usb/mixer_scarlett.c:776: { .num = 0, .type = SCARLETT_OUTPUTS, .name = "Monitor" },
- linux-5.7/sound/usb/mixer_scarlett.c:777: { .num = 1, .type = SCARLETT_OUTPUTS, .name = "Headphone 1" },
- linux-5.7/sound/usb/mixer_scarlett.c:778: { .num = 2, .type = SCARLETT_OUTPUTS, .name = "Headphone 2" },
- linux-5.7/sound/usb/mixer_scarlett.c:779: { .num = 3, .type = SCARLETT_OUTPUTS, .name = "SPDIF" },
- linux-5.7/sound/usb/mixer_scarlett.c:780: { .num = 1, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:781: { .num = 1, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:782: { .num = 2, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:783: { .num = 2, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:784: { .num = 3, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:785: { .num = 4, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:796:static const struct scarlett_device_info s18i20_info = {
- linux-5.7/sound/usb/mixer_scarlett.c:818: { .num = 0, .type = SCARLETT_OUTPUTS, .name = "Monitor" },
- linux-5.7/sound/usb/mixer_scarlett.c:819: { .num = 1, .type = SCARLETT_OUTPUTS, .name = "Line 3/4" },
- linux-5.7/sound/usb/mixer_scarlett.c:820: { .num = 2, .type = SCARLETT_OUTPUTS, .name = "Line 5/6" },
- linux-5.7/sound/usb/mixer_scarlett.c:821: { .num = 3, .type = SCARLETT_OUTPUTS, .name = "Line 7/8" },
- linux-5.7/sound/usb/mixer_scarlett.c:822: { .num = 4, .type = SCARLETT_OUTPUTS, .name = "Line 9/10" },
- linux-5.7/sound/usb/mixer_scarlett.c:823: { .num = 5, .type = SCARLETT_OUTPUTS, .name = "SPDIF" },
- linux-5.7/sound/usb/mixer_scarlett.c:824: { .num = 6, .type = SCARLETT_OUTPUTS, .name = "ADAT 1/2" },
- linux-5.7/sound/usb/mixer_scarlett.c:825: { .num = 7, .type = SCARLETT_OUTPUTS, .name = "ADAT 3/4" },
- linux-5.7/sound/usb/mixer_scarlett.c:826: { .num = 8, .type = SCARLETT_OUTPUTS, .name = "ADAT 5/6" },
- linux-5.7/sound/usb/mixer_scarlett.c:827: { .num = 9, .type = SCARLETT_OUTPUTS, .name = "ADAT 7/8" },
- linux-5.7/sound/usb/mixer_scarlett.c:828: /*{ .num = 1, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:829: { .num = 1, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:830: { .num = 2, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:831: { .num = 2, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:832: { .num = 3, .type = SCARLETT_SWITCH_PAD, .name = NULL},
- linux-5.7/sound/usb/mixer_scarlett.c:833: { .num = 4, .type = SCARLETT_SWITCH_PAD, .name = NULL},*/
- linux-5.7/sound/usb/mixer_scarlett.c:845:static int scarlett_controls_create_generic(struct usb_mixer_interface *mixer,
- linux-5.7/sound/usb/mixer_scarlett.c:846: const struct scarlett_device_info *info)
- linux-5.7/sound/usb/mixer_scarlett.c:850: const struct scarlett_mixer_control *ctl;
- linux-5.7/sound/usb/mixer_scarlett.c:854: err = add_new_ctl(mixer, &usb_scarlett_ctl_switch,
- linux-5.7/sound/usb/mixer_scarlett.c:855: scarlett_ctl_resume, 0x0a, 0x01, 0,
- linux-5.7/sound/usb/mixer_scarlett.c:861: err = add_new_ctl(mixer, &usb_scarlett_ctl_master,
- linux-5.7/sound/usb/mixer_scarlett.c:862: scarlett_ctl_resume, 0x0a, 0x02, 0,
- linux-5.7/sound/usb/mixer_scarlett.c:873: case SCARLETT_OUTPUTS:
- linux-5.7/sound/usb/mixer_scarlett.c:878: case SCARLETT_SWITCH_IMPEDANCE:
- linux-5.7/sound/usb/mixer_scarlett.c:880: err = add_new_ctl(mixer, &usb_scarlett_ctl_enum,
- linux-5.7/sound/usb/mixer_scarlett.c:881: scarlett_ctl_enum_resume, 0x01,
- linux-5.7/sound/usb/mixer_scarlett.c:887: case SCARLETT_SWITCH_PAD:
- linux-5.7/sound/usb/mixer_scarlett.c:889: err = add_new_ctl(mixer, &usb_scarlett_ctl_enum,
- linux-5.7/sound/usb/mixer_scarlett.c:890: scarlett_ctl_enum_resume, 0x01,
- linux-5.7/sound/usb/mixer_scarlett.c:896: case SCARLETT_SWITCH_GAIN:
- linux-5.7/sound/usb/mixer_scarlett.c:898: err = add_new_ctl(mixer, &usb_scarlett_ctl_enum,
- linux-5.7/sound/usb/mixer_scarlett.c:899: scarlett_ctl_enum_resume, 0x01,
- linux-5.7/sound/usb/mixer_scarlett.c:912: * Create and initialize a mixer for the Focusrite(R) Scarlett
- linux-5.7/sound/usb/mixer_scarlett.c:914:int snd_scarlett_controls_create(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett.c:918: const struct scarlett_device_info *info;
- linux-5.7/sound/usb/mixer_scarlett.c:947: err = scarlett_controls_create_generic(mixer, info);
- linux-5.7/sound/usb/mixer_scarlett.c:955: err = add_new_ctl(mixer, &usb_scarlett_ctl_dynamic_enum,
- linux-5.7/sound/usb/mixer_scarlett.c:956: scarlett_ctl_enum_resume, 0x32,
- linux-5.7/sound/usb/mixer_scarlett.c:965: err = add_new_ctl(mixer, &usb_scarlett_ctl,
- linux-5.7/sound/usb/mixer_scarlett.c:966: scarlett_ctl_resume, 0x3c, 0x00,
- linux-5.7/sound/usb/mixer_scarlett.c:978: err = add_new_ctl(mixer, &usb_scarlett_ctl_dynamic_enum,
- linux-5.7/sound/usb/mixer_scarlett.c:979: scarlett_ctl_enum_resume, 0x34,
- linux-5.7/sound/usb/mixer_scarlett.c:987: err = add_new_ctl(mixer, &usb_scarlett_ctl_enum,
- linux-5.7/sound/usb/mixer_scarlett.c:988: scarlett_ctl_enum_resume, 0x28, 0x01, 0,
- linux-5.7/sound/usb/mixer_scarlett.c:995: err = add_new_ctl(mixer, &usb_scarlett_ctl_sync, NULL, 0x3c, 0x00, 2,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:3: * Focusrite Scarlett 6i6/18i8/18i20 Gen 2 Driver for ALSA
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:7: * Based on the Scarlett (Gen 1) Driver for ALSA:
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:22:/* Mixer Interface for the Focusrite Scarlett 6i6/18i8/18i20 Gen 2 audio
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:27: * between Focusrite Control 2.3.4 and the Focusrite(R) Scarlett 18i20
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:30: * Scarlett 18i8 support added in April 2019.
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:32: * Scarlett 6i6 support added in June 2019 (thanks to Martin Wittmann
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:106:#include "mixer_scarlett_gen2.h"
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:109:#define SCARLETT2_ENABLE 0x01
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:112:#define SCARLETT2_VOLUME_BIAS 127
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:115:#define SCARLETT2_MIXER_MIN_DB -80
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:116:#define SCARLETT2_MIXER_BIAS (-SCARLETT2_MIXER_MIN_DB * 2)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:117:#define SCARLETT2_MIXER_MAX_DB 6
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:118:#define SCARLETT2_MIXER_MAX_VALUE \
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:119: ((SCARLETT2_MIXER_MAX_DB - SCARLETT2_MIXER_MIN_DB) * 2)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:124:static const u16 scarlett2_mixer_values[173] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:142:#define SCARLETT2_ANALOGUE_MAX 10
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:145:#define SCARLETT2_LEVEL_SWITCH_MAX 2
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:146:#define SCARLETT2_PAD_SWITCH_MAX 4
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:149:#define SCARLETT2_INPUT_MIX_MAX 18
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:152:#define SCARLETT2_OUTPUT_MIX_MAX 10
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:157:#define SCARLETT2_MUX_MAX 64
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:162:#define SCARLETT2_NUM_METERS 56
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:173: SCARLETT2_PORT_TYPE_NONE = 0,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:174: SCARLETT2_PORT_TYPE_ANALOGUE = 1,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:175: SCARLETT2_PORT_TYPE_SPDIF = 2,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:176: SCARLETT2_PORT_TYPE_ADAT = 3,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:177: SCARLETT2_PORT_TYPE_MIX = 4,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:178: SCARLETT2_PORT_TYPE_PCM = 5,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:179: SCARLETT2_PORT_TYPE_COUNT = 6,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:184: SCARLETT2_PORT_IN = 0,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:185: SCARLETT2_PORT_OUT = 1,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:186: SCARLETT2_PORT_OUT_44 = 2,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:187: SCARLETT2_PORT_OUT_88 = 3,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:188: SCARLETT2_PORT_OUT_176 = 4,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:189: SCARLETT2_PORT_DIRECTIONS = 5,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:193:#define SCARLETT2_BUTTON_MAX 2
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:195:static const char *const scarlett2_button_names[SCARLETT2_BUTTON_MAX] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:206:struct scarlett2_ports {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:208: int num[SCARLETT2_PORT_DIRECTIONS];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:214:struct scarlett2_device_info {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:219: const char * const line_out_descrs[SCARLETT2_ANALOGUE_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:220: struct scarlett2_ports ports[SCARLETT2_PORT_TYPE_COUNT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:223:struct scarlett2_mixer_data {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:228: const struct scarlett2_device_info *info;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:230: u16 scarlett2_seq;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:233: u8 vol[SCARLETT2_ANALOGUE_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:234: u8 vol_sw_hw_switch[SCARLETT2_ANALOGUE_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:235: u8 level_switch[SCARLETT2_LEVEL_SWITCH_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:236: u8 pad_switch[SCARLETT2_PAD_SWITCH_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:237: u8 buttons[SCARLETT2_BUTTON_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:239: struct snd_kcontrol *vol_ctls[SCARLETT2_ANALOGUE_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:240: struct snd_kcontrol *button_ctls[SCARLETT2_BUTTON_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:241: u8 mux[SCARLETT2_MUX_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:242: u8 mix[SCARLETT2_INPUT_MIX_MAX * SCARLETT2_OUTPUT_MIX_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:247:static const struct scarlett2_device_info s6i6_gen2_info = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:264: [SCARLETT2_PORT_TYPE_NONE] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:270: [SCARLETT2_PORT_TYPE_ANALOGUE] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:277: [SCARLETT2_PORT_TYPE_SPDIF] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:284: [SCARLETT2_PORT_TYPE_MIX] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:291: [SCARLETT2_PORT_TYPE_PCM] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:301:static const struct scarlett2_device_info s18i8_gen2_info = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:320: [SCARLETT2_PORT_TYPE_NONE] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:326: [SCARLETT2_PORT_TYPE_ANALOGUE] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:333: [SCARLETT2_PORT_TYPE_SPDIF] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:344: [SCARLETT2_PORT_TYPE_ADAT] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:350: [SCARLETT2_PORT_TYPE_MIX] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:357: [SCARLETT2_PORT_TYPE_PCM] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:367:static const struct scarlett2_device_info s18i20_gen2_info = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:390: [SCARLETT2_PORT_TYPE_NONE] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:396: [SCARLETT2_PORT_TYPE_ANALOGUE] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:403: [SCARLETT2_PORT_TYPE_SPDIF] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:414: [SCARLETT2_PORT_TYPE_ADAT] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:421: [SCARLETT2_PORT_TYPE_MIX] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:428: [SCARLETT2_PORT_TYPE_PCM] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:439:static int scarlett2_get_port_start_num(const struct scarlett2_ports *ports,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:453:#define SCARLETT2_USB_VENDOR_SPECIFIC_INTERFACE 5
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:454:#define SCARLETT2_USB_INTERRUPT_ENDPOINT 4
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:455:#define SCARLETT2_USB_INTERRUPT_MAX_DATA 64
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:456:#define SCARLETT2_USB_INTERRUPT_INTERVAL 3
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:459:#define SCARLETT2_USB_INTERRUPT_VOL_CHANGE 0x400000
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:460:#define SCARLETT2_USB_INTERRUPT_BUTTON_CHANGE 0x200000
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:463:#define SCARLETT2_USB_VENDOR_SPECIFIC_CMD_REQ 2
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:464:#define SCARLETT2_USB_VENDOR_SPECIFIC_CMD_RESP 3
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:466:#define SCARLETT2_USB_INIT_SEQ 0x00000000
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:467:#define SCARLETT2_USB_GET_METER_LEVELS 0x00001001
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:468:#define SCARLETT2_USB_SET_MIX 0x00002002
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:469:#define SCARLETT2_USB_SET_MUX 0x00003002
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:470:#define SCARLETT2_USB_GET_DATA 0x00800000
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:471:#define SCARLETT2_USB_SET_DATA 0x00800001
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:472:#define SCARLETT2_USB_DATA_CMD 0x00800002
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:473:#define SCARLETT2_USB_CONFIG_SAVE 6
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:475:#define SCARLETT2_USB_VOLUME_STATUS_OFFSET 0x31
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:476:#define SCARLETT2_USB_METER_LEVELS_GET_MAGIC 1
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:478:/* volume status is read together (matches scarlett2_config_items[]) */
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:479:struct scarlett2_usb_volume_status {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:481: u8 buttons[SCARLETT2_BUTTON_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:486: s16 sw_vol[SCARLETT2_ANALOGUE_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:489: s16 hw_vol[SCARLETT2_ANALOGUE_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:491: u8 pad2[SCARLETT2_ANALOGUE_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:494: u8 sw_hw_switch[SCARLETT2_ANALOGUE_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:504: SCARLETT2_CONFIG_BUTTONS = 0,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:505: SCARLETT2_CONFIG_LINE_OUT_VOLUME = 1,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:506: SCARLETT2_CONFIG_SW_HW_SWITCH = 2,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:507: SCARLETT2_CONFIG_LEVEL_SWITCH = 3,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:508: SCARLETT2_CONFIG_PAD_SWITCH = 4,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:509: SCARLETT2_CONFIG_COUNT = 5
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:515:struct scarlett2_config {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:521:static const struct scarlett2_config
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:522: scarlett2_config_items[SCARLETT2_CONFIG_COUNT] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:560:struct scarlett2_usb_packet {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:569:#define SCARLETT2_USB_PACKET_LEN (sizeof(struct scarlett2_usb_packet))
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:571:static void scarlett2_fill_request_header(struct scarlett2_mixer_data *private,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:572: struct scarlett2_usb_packet *req,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:576: u16 seq = private->scarlett2_seq++;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:585:/* Send a proprietary format request to the Scarlett interface */
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:586:static int scarlett2_usb(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:590: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:591: u16 req_buf_size = sizeof(struct scarlett2_usb_packet) + req_size;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:592: u16 resp_buf_size = sizeof(struct scarlett2_usb_packet) + resp_size;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:593: struct scarlett2_usb_packet *req = NULL, *resp = NULL;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:612: scarlett2_fill_request_header(private, req, cmd, req_size);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:619: SCARLETT2_USB_VENDOR_SPECIFIC_CMD_REQ,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:622: SCARLETT2_USB_VENDOR_SPECIFIC_INTERFACE,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:629: "Scarlett Gen 2 USB request result cmd %x was %d\n",
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:639: SCARLETT2_USB_VENDOR_SPECIFIC_CMD_RESP,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:642: SCARLETT2_USB_VENDOR_SPECIFIC_INTERFACE,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:651: "Scarlett Gen 2 USB response result cmd %x was %d\n",
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:664: "Scarlett Gen 2 USB invalid response; "
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:687:/* Send SCARLETT2_USB_DATA_CMD SCARLETT2_USB_CONFIG_SAVE */
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:688:static void scarlett2_config_save(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:690: __le32 req = cpu_to_le32(SCARLETT2_USB_CONFIG_SAVE);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:692: scarlett2_usb(mixer, SCARLETT2_USB_DATA_CMD,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:698:static void scarlett2_config_save_work(struct work_struct *work)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:700: struct scarlett2_mixer_data *private =
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:701: container_of(work, struct scarlett2_mixer_data, work.work);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:703: scarlett2_config_save(private->mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:709:static int scarlett2_usb_set_config(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:713: const struct scarlett2_config config_item =
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:714: scarlett2_config_items[config_item_num];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:722: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:731: err = scarlett2_usb(mixer, SCARLETT2_USB_SET_DATA,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:739: err = scarlett2_usb(mixer, SCARLETT2_USB_DATA_CMD,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:751:static int scarlett2_usb_get(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:762: return scarlett2_usb(mixer, SCARLETT2_USB_GET_DATA,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:767:static int scarlett2_usb_get_config(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:771: const struct scarlett2_config config_item =
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:772: scarlett2_config_items[config_item_num];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:775: return scarlett2_usb_get(mixer, config_item.offset, buf, size);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:779:static int scarlett2_usb_get_volume_status(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:781: struct scarlett2_usb_volume_status *buf)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:783: return scarlett2_usb_get(mixer, SCARLETT2_USB_VOLUME_STATUS_OFFSET,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:790:static int scarlett2_usb_set_mix(struct usb_mixer_interface *mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:793: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:794: const struct scarlett2_device_info *info = private->info;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:798: __le16 data[SCARLETT2_INPUT_MIX_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:803: info->ports[SCARLETT2_PORT_TYPE_MIX].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:809: scarlett2_mixer_values[private->mix[j]]
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:812: return scarlett2_usb(mixer, SCARLETT2_USB_SET_MIX,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:818:static u32 scarlett2_mux_src_num_to_id(const struct scarlett2_ports *ports,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:824: port_type < SCARLETT2_PORT_TYPE_COUNT;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:826: if (num < ports[port_type].num[SCARLETT2_PORT_IN])
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:828: num -= ports[port_type].num[SCARLETT2_PORT_IN];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:836:static int scarlett2_usb_set_mux(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:838: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:839: const struct scarlett2_device_info *info = private->info;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:840: const struct scarlett2_ports *ports = info->ports;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:843: static const int assignment_order[SCARLETT2_PORT_TYPE_COUNT] = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:844: SCARLETT2_PORT_TYPE_PCM,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:845: SCARLETT2_PORT_TYPE_ANALOGUE,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:846: SCARLETT2_PORT_TYPE_SPDIF,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:847: SCARLETT2_PORT_TYPE_ADAT,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:848: SCARLETT2_PORT_TYPE_MIX,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:849: SCARLETT2_PORT_TYPE_NONE,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:855: __le32 data[SCARLETT2_MUX_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:861: for (rate = 0, port_dir_rate = SCARLETT2_PORT_OUT_44;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:862: port_dir_rate <= SCARLETT2_PORT_OUT_176;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:869: order_num < SCARLETT2_PORT_TYPE_COUNT;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:872: int j = scarlett2_get_port_start_num(ports,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:873: SCARLETT2_PORT_OUT,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:889: scarlett2_mux_src_num_to_id(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:895: j += ports[port_type].num[SCARLETT2_PORT_OUT] -
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:899: err = scarlett2_usb(mixer, SCARLETT2_USB_SET_MUX,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:910:static int scarlett2_usb_get_meter_levels(struct usb_mixer_interface *mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:918: u32 resp[SCARLETT2_NUM_METERS];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:922: req.num_meters = cpu_to_le16(SCARLETT2_NUM_METERS);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:923: req.magic = cpu_to_le32(SCARLETT2_USB_METER_LEVELS_GET_MAGIC);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:924: err = scarlett2_usb(mixer, SCARLETT2_USB_GET_METER_LEVELS,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:930: for (i = 0; i < SCARLETT2_NUM_METERS; i++)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:939:static int scarlett2_add_new_ctl(struct usb_mixer_interface *mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:981:static int scarlett2_update_volumes(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:983: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:984: const struct scarlett2_ports *ports = private->info->ports;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:985: struct scarlett2_usb_volume_status volume_status;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:987: ports[SCARLETT2_PORT_TYPE_ANALOGUE].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:992: err = scarlett2_usb_get_volume_status(mixer, &volume_status);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:997: volume_status.master_vol + SCARLETT2_VOLUME_BIAS,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:998: 0, SCARLETT2_VOLUME_BIAS);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1011:static int scarlett2_volume_ctl_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1019: uinfo->value.integer.max = SCARLETT2_VOLUME_BIAS;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1024:static int scarlett2_master_volume_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1029: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1033: scarlett2_update_volumes(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1041:static int scarlett2_volume_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1046: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1051: scarlett2_update_volumes(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1059:static int scarlett2_volume_ctl_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1064: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1077: err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_LINE_OUT_VOLUME,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1078: index, val - SCARLETT2_VOLUME_BIAS);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1088: db_scale_scarlett2_gain, -SCARLETT2_VOLUME_BIAS * 100, 0
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1091:static const struct snd_kcontrol_new scarlett2_master_volume_ctl = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1096: .info = scarlett2_volume_ctl_info,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1097: .get = scarlett2_master_volume_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1099: .tlv = { .p = db_scale_scarlett2_gain }
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1102:static const struct snd_kcontrol_new scarlett2_line_out_volume_ctl = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1107: .info = scarlett2_volume_ctl_info,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1108: .get = scarlett2_volume_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1109: .put = scarlett2_volume_ctl_put,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1111: .tlv = { .p = db_scale_scarlett2_gain }
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1116:static int scarlett2_sw_hw_enum_ctl_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1126:static int scarlett2_sw_hw_enum_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1130: struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1137:static int scarlett2_sw_hw_enum_ctl_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1142: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1171: err = scarlett2_usb_set_config(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1172: mixer, SCARLETT2_CONFIG_LINE_OUT_VOLUME,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1173: index, private->master_vol - SCARLETT2_VOLUME_BIAS);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1182: err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_SW_HW_SWITCH,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1190:static const struct snd_kcontrol_new scarlett2_sw_hw_enum_ctl = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1193: .info = scarlett2_sw_hw_enum_ctl_info,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1194: .get = scarlett2_sw_hw_enum_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1195: .put = scarlett2_sw_hw_enum_ctl_put,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1200:static int scarlett2_level_enum_ctl_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1210:static int scarlett2_level_enum_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1214: struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1221:static int scarlett2_level_enum_ctl_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1226: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1242: err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_LEVEL_SWITCH,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1250:static const struct snd_kcontrol_new scarlett2_level_enum_ctl = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1253: .info = scarlett2_level_enum_ctl_info,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1254: .get = scarlett2_level_enum_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1255: .put = scarlett2_level_enum_ctl_put,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1260:static int scarlett2_pad_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1264: struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1271:static int scarlett2_pad_ctl_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1276: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1292: err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_PAD_SWITCH,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1300:static const struct snd_kcontrol_new scarlett2_pad_ctl = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1304: .get = scarlett2_pad_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1305: .put = scarlett2_pad_ctl_put,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1310:static int scarlett2_button_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1315: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1319: scarlett2_update_volumes(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1327:static int scarlett2_button_ctl_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1332: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1348: err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_BUTTONS,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1356:static const struct snd_kcontrol_new scarlett2_button_ctl = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1360: .get = scarlett2_button_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1361: .put = scarlett2_button_ctl_put
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1366:static int scarlett2_add_line_out_ctls(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1368: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1369: const struct scarlett2_device_info *info = private->info;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1370: const struct scarlett2_ports *ports = info->ports;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1372: ports[SCARLETT2_PORT_TYPE_ANALOGUE].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1379: err = scarlett2_add_new_ctl(mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1380: &scarlett2_master_volume_ctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1398: err = scarlett2_add_new_ctl(mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1399: &scarlett2_line_out_volume_ctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1414: err = scarlett2_add_new_ctl(mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1415: &scarlett2_sw_hw_enum_ctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1424: err = scarlett2_add_new_ctl(mixer, &scarlett2_button_ctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1425: i, 1, scarlett2_button_names[i],
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1436:static int scarlett2_add_line_in_ctls(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1438: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1439: const struct scarlett2_device_info *info = private->info;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1446: err = scarlett2_add_new_ctl(mixer, &scarlett2_level_enum_ctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1455: err = scarlett2_add_new_ctl(mixer, &scarlett2_pad_ctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1466:static int scarlett2_mixer_ctl_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1474: uinfo->value.integer.max = SCARLETT2_MIXER_MAX_VALUE;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1479:static int scarlett2_mixer_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1483: struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1489:static int scarlett2_mixer_ctl_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1494: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1495: const struct scarlett2_device_info *info = private->info;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1496: const struct scarlett2_ports *ports = info->ports;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1503: num_mixer_in = ports[SCARLETT2_PORT_TYPE_MIX].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1510: err = scarlett2_usb_set_mix(mixer, mix_num);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1520: db_scale_scarlett2_mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1521: SCARLETT2_MIXER_MIN_DB * 100,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1522: SCARLETT2_MIXER_MAX_DB * 100
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1525:static const struct snd_kcontrol_new scarlett2_mixer_ctl = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1530: .info = scarlett2_mixer_ctl_info,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1531: .get = scarlett2_mixer_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1532: .put = scarlett2_mixer_ctl_put,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1533: .private_value = SCARLETT2_MIXER_MAX_DB, /* max value */
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1534: .tlv = { .p = db_scale_scarlett2_mixer }
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1537:static int scarlett2_add_mixer_ctls(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1539: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1540: const struct scarlett2_ports *ports = private->info->ports;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1545: int num_inputs = ports[SCARLETT2_PORT_TYPE_MIX].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1546: int num_outputs = ports[SCARLETT2_PORT_TYPE_MIX].num[SCARLETT2_PORT_IN];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1553: err = scarlett2_add_new_ctl(mixer, &scarlett2_mixer_ctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1565:static int scarlett2_mux_src_enum_ctl_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1569: struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1570: const struct scarlett2_ports *ports = private->info->ports;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1583: port_type < SCARLETT2_PORT_TYPE_COUNT;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1585: if (item < ports[port_type].num[SCARLETT2_PORT_IN]) {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1591: item -= ports[port_type].num[SCARLETT2_PORT_IN];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1597:static int scarlett2_mux_src_enum_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1601: struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1607:static int scarlett2_mux_src_enum_ctl_put(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1612: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1626: err = scarlett2_usb_set_mux(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1635:static const struct snd_kcontrol_new scarlett2_mux_src_enum_ctl = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1638: .info = scarlett2_mux_src_enum_ctl_info,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1639: .get = scarlett2_mux_src_enum_ctl_get,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1640: .put = scarlett2_mux_src_enum_ctl_put,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1643:static int scarlett2_add_mux_enums(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1645: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1646: const struct scarlett2_ports *ports = private->info->ports;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1650: port_type < SCARLETT2_PORT_TYPE_COUNT;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1653: channel < ports[port_type].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1662: err = scarlett2_add_new_ctl(mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1663: &scarlett2_mux_src_enum_ctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1675:static int scarlett2_meter_ctl_info(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1688:static int scarlett2_meter_ctl_get(struct snd_kcontrol *kctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1692: u16 meter_levels[SCARLETT2_NUM_METERS];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1695: err = scarlett2_usb_get_meter_levels(elem->head.mixer, meter_levels);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1705:static const struct snd_kcontrol_new scarlett2_meter_ctl = {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1709: .info = scarlett2_meter_ctl_info,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1710: .get = scarlett2_meter_ctl_get
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1713:static int scarlett2_add_meter_ctl(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1715: return scarlett2_add_new_ctl(mixer, &scarlett2_meter_ctl,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1716: 0, SCARLETT2_NUM_METERS,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1722:static void scarlett2_private_free(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1724: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1731:static void scarlett2_private_suspend(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1733: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1736: scarlett2_config_save(private->mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1741:static int scarlett2_count_mux_srcs(const struct scarlett2_ports *ports)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1746: port_type < SCARLETT2_PORT_TYPE_COUNT;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1748: count += ports[port_type].num[SCARLETT2_PORT_IN];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1756:static void scarlett2_init_routing(u8 *mux,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1757: const struct scarlett2_ports *ports)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1763: SCARLETT2_PORT_TYPE_ANALOGUE,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1764: SCARLETT2_PORT_TYPE_SPDIF,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1765: SCARLETT2_PORT_TYPE_ADAT,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1770: output_num = scarlett2_get_port_start_num(ports,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1771: SCARLETT2_PORT_OUT,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1772: SCARLETT2_PORT_TYPE_PCM);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1773: output_count = ports[SCARLETT2_PORT_TYPE_PCM].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1778: input_num = scarlett2_get_port_start_num(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1779: ports, SCARLETT2_PORT_IN, port_type);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1780: input_count = ports[port_type].num[SCARLETT2_PORT_IN];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1788: input_num = scarlett2_get_port_start_num(ports,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1789: SCARLETT2_PORT_IN,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1790: SCARLETT2_PORT_TYPE_PCM);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1791: input_count = ports[SCARLETT2_PORT_TYPE_PCM].num[SCARLETT2_PORT_IN];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1796: output_num = scarlett2_get_port_start_num(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1797: ports, SCARLETT2_PORT_OUT, port_type);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1798: output_count = ports[port_type].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1807:static int scarlett2_init_private(struct usb_mixer_interface *mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1808: const struct scarlett2_device_info *info)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1810: struct scarlett2_mixer_data *private =
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1811: kzalloc(sizeof(struct scarlett2_mixer_data), GFP_KERNEL);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1818: INIT_DELAYED_WORK(&private->work, scarlett2_config_save_work);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1820: private->num_mux_srcs = scarlett2_count_mux_srcs(info->ports);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1821: private->scarlett2_seq = 0;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1824: mixer->private_free = scarlett2_private_free;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1825: mixer->private_suspend = scarlett2_private_suspend;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1828: scarlett2_init_routing(private->mux, info->ports);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1831: return scarlett2_usb(mixer, SCARLETT2_USB_INIT_SEQ, NULL, 0, NULL, 0);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1835:static int scarlett2_read_configs(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1837: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1838: const struct scarlett2_device_info *info = private->info;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1839: const struct scarlett2_ports *ports = info->ports;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1841: ports[SCARLETT2_PORT_TYPE_ANALOGUE].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1842: u8 level_switches[SCARLETT2_LEVEL_SWITCH_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1843: u8 pad_switches[SCARLETT2_PAD_SWITCH_MAX];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1844: struct scarlett2_usb_volume_status volume_status;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1848: err = scarlett2_usb_get_config(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1850: SCARLETT2_CONFIG_LEVEL_SWITCH,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1860: err = scarlett2_usb_get_config(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1862: SCARLETT2_CONFIG_PAD_SWITCH,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1871: err = scarlett2_usb_get_volume_status(mixer, &volume_status);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1876: volume_status.master_vol + SCARLETT2_VOLUME_BIAS,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1877: 0, SCARLETT2_VOLUME_BIAS);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1889: volume = clamp(volume + SCARLETT2_VOLUME_BIAS,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1890: 0, SCARLETT2_VOLUME_BIAS);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1901:static void scarlett2_mixer_interrupt_vol_change(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1904: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1905: const struct scarlett2_ports *ports = private->info->ports;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1907: ports[SCARLETT2_PORT_TYPE_ANALOGUE].num[SCARLETT2_PORT_OUT];
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1924:static void scarlett2_mixer_interrupt_button_change(
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1927: struct scarlett2_mixer_data *private = mixer->private_data;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1938:static void scarlett2_mixer_interrupt(struct urb *urb)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1950: if (data & SCARLETT2_USB_INTERRUPT_VOL_CHANGE)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1951: scarlett2_mixer_interrupt_vol_change(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1952: if (data & SCARLETT2_USB_INTERRUPT_BUTTON_CHANGE)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1953: scarlett2_mixer_interrupt_button_change(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1956: "scarlett mixer interrupt length %d\n", len);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1968:static int scarlett2_mixer_status_create(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1972: SCARLETT2_USB_INTERRUPT_ENDPOINT);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1988: transfer_buffer = kmalloc(SCARLETT2_USB_INTERRUPT_MAX_DATA, GFP_KERNEL);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1993: transfer_buffer, SCARLETT2_USB_INTERRUPT_MAX_DATA,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1994: scarlett2_mixer_interrupt, mixer,
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:1995: SCARLETT2_USB_INTERRUPT_INTERVAL);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2001:int snd_scarlett_gen2_controls_create(struct usb_mixer_interface *mixer)
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2003: const struct scarlett2_device_info *info;
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2024: if (!(mixer->chip->setup & SCARLETT2_ENABLE)) {
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2026: "Focusrite Scarlett Gen 2 Mixer Driver disabled; "
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2033: err = scarlett2_init_private(mixer, info);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2038: err = scarlett2_read_configs(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2043: err = scarlett2_add_line_out_ctls(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2048: err = scarlett2_add_line_in_ctls(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2053: err = scarlett2_add_mux_enums(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2058: err = scarlett2_add_mixer_ctls(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2063: err = scarlett2_add_meter_ctl(mixer);
- linux-5.7/sound/usb/mixer_scarlett_gen2.c:2069: err = scarlett2_mixer_status_create(mixer);
- linux-5.7/sound/usb/Makefile:13: mixer_scarlett.o \
- linux-5.7/sound/usb/Makefile:14: mixer_scarlett_gen2.o \
- linux-5.7/sound/usb/mixer_scarlett.h:2:#ifndef __USB_MIXER_SCARLETT_H
- linux-5.7/sound/usb/mixer_scarlett.h:3:#define __USB_MIXER_SCARLETT_H
- linux-5.7/sound/usb/mixer_scarlett.h:5:int snd_scarlett_controls_create(struct usb_mixer_interface *mixer);
- linux-5.7/sound/usb/mixer_scarlett.h:7:#endif /* __USB_MIXER_SCARLETT_H */
- linux-5.7/sound/usb/quirks.c:1810: case USB_ID(0x1235, 0x8200): /* Focusrite Scarlett 2i4 2nd gen */
- linux-5.7/sound/usb/quirks.c:1811: case USB_ID(0x1235, 0x8202): /* Focusrite Scarlett 2i2 2nd gen */
- linux-5.7/sound/usb/quirks.c:1812: case USB_ID(0x1235, 0x8205): /* Focusrite Scarlett Solo 2nd gen */
Scarlet Solo 2nd gen, seems supported in kernel 5.7..