Пример #1
0
static int set_mixer_defaults(struct echoaudio *chip)
{
	chip->digital_mode = DIGITAL_MODE_SPDIF_RCA;
	chip->professional_spdif = FALSE;
	chip->digital_in_automute = TRUE;
	return init_line_levels(chip);
}
Пример #2
0
static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id)
{
	int err;

	DE_INIT(("init_hw() - Layla20\n"));
	snd_assert((subdevice_id & 0xfff0) == LAYLA20, return -ENODEV);

	if ((err = init_dsp_comm_page(chip))) {
		DE_INIT(("init_hw - could not initialize DSP comm page\n"));
		return err;
	}

	chip->device_id = device_id;
	chip->subdevice_id = subdevice_id;
	chip->bad_board = TRUE;
	chip->has_midi = TRUE;
	chip->dsp_code_to_load = &card_fw[FW_LAYLA20_DSP];
	chip->input_clock_types =
		ECHO_CLOCK_BIT_INTERNAL | ECHO_CLOCK_BIT_SPDIF |
		ECHO_CLOCK_BIT_WORD | ECHO_CLOCK_BIT_SUPER;
	chip->output_clock_types =
		ECHO_CLOCK_BIT_WORD | ECHO_CLOCK_BIT_SUPER;

	if ((err = load_firmware(chip)) < 0)
		return err;
	chip->bad_board = FALSE;

	if ((err = init_line_levels(chip)) < 0)
		return err;

	err = set_professional_spdif(chip, TRUE);

	DE_INIT(("init_hw done\n"));
	return err;
}
Пример #3
0
static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id)
{
    int err;

    DE_INIT(("init_hw() - Darla20\n"));
    snd_assert((subdevice_id & 0xfff0) == DARLA20, return -ENODEV);

    if ((err = init_dsp_comm_page(chip))) {
        DE_INIT(("init_hw - could not initialize DSP comm page\n"));
        return err;
    }

    chip->device_id = device_id;
    chip->subdevice_id = subdevice_id;
    chip->bad_board = TRUE;
    chip->dsp_code_to_load = &card_fw[FW_DARLA20_DSP];
    chip->spdif_status = GD_SPDIF_STATUS_UNDEF;
    chip->clock_state = GD_CLOCK_UNDEF;
    /* Since this card has no ASIC, mark it as loaded so everything
       works OK */
    chip->asic_loaded = TRUE;
    chip->input_clock_types = ECHO_CLOCK_BIT_INTERNAL;

    if ((err = load_firmware(chip)) < 0)
        return err;
    chip->bad_board = FALSE;

    if ((err = init_line_levels(chip)) < 0)
        return err;

    DE_INIT(("init_hw done\n"));
    return err;
}
Пример #4
0
static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id)
{
	int err;

	DE_INIT(("init_hw() - Indigo IO\n"));
	if (snd_BUG_ON((subdevice_id & 0xfff0) != INDIGO_IO))
		return -ENODEV;

	if ((err = init_dsp_comm_page(chip))) {
		DE_INIT(("init_hw - could not initialize DSP comm page\n"));
		return err;
	}

	chip->device_id = device_id;
	chip->subdevice_id = subdevice_id;
	chip->bad_board = TRUE;
	chip->dsp_code_to_load = &card_fw[FW_INDIGO_IO_DSP];
	/* Since this card has no ASIC, mark it as loaded so everything
	   works OK */
	chip->asic_loaded = TRUE;
	chip->input_clock_types = ECHO_CLOCK_BIT_INTERNAL;

	if ((err = load_firmware(chip)) < 0)
		return err;
	chip->bad_board = FALSE;

	if ((err = init_line_levels(chip)) < 0)
		return err;

	DE_INIT(("init_hw done\n"));
	return err;
}
Пример #5
0
static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id)
{
	int err;

	DE_INIT(("init_hw() - Mona\n"));
	if (snd_BUG_ON((subdevice_id & 0xfff0) != MONA))
		return -ENODEV;

	if ((err = init_dsp_comm_page(chip))) {
		DE_INIT(("init_hw - could not initialize DSP comm page\n"));
		return err;
	}

	chip->device_id = device_id;
	chip->subdevice_id = subdevice_id;
	chip->bad_board = TRUE;
	chip->input_clock_types =
		ECHO_CLOCK_BIT_INTERNAL | ECHO_CLOCK_BIT_SPDIF |
		ECHO_CLOCK_BIT_WORD | ECHO_CLOCK_BIT_ADAT;
	chip->digital_modes =
		ECHOCAPS_HAS_DIGITAL_MODE_SPDIF_RCA |
		ECHOCAPS_HAS_DIGITAL_MODE_SPDIF_OPTICAL |
		ECHOCAPS_HAS_DIGITAL_MODE_ADAT;

	/* Mona comes in both '301 and '361 flavors */
	if (chip->device_id == DEVICE_ID_56361)
		chip->dsp_code_to_load = &card_fw[FW_MONA_361_DSP];
	else
		chip->dsp_code_to_load = &card_fw[FW_MONA_301_DSP];

	chip->digital_mode = DIGITAL_MODE_SPDIF_RCA;
	chip->professional_spdif = FALSE;
	chip->digital_in_automute = TRUE;

	if ((err = load_firmware(chip)) < 0)
		return err;
	chip->bad_board = FALSE;

	if ((err = init_line_levels(chip)) < 0)
		return err;

	err = set_digital_mode(chip, DIGITAL_MODE_SPDIF_RCA);
	if (err < 0)
		return err;
	err = set_professional_spdif(chip, TRUE);

	DE_INIT(("init_hw done\n"));
	return err;
}
Пример #6
0
static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id)
{
	int err;

	DE_INIT(("init_hw() - Mia\n"));
	if (snd_BUG_ON((subdevice_id & 0xfff0) != MIA))
		return -ENODEV;

	if ((err = init_dsp_comm_page(chip))) {
		DE_INIT(("init_hw - could not initialize DSP comm page\n"));
		return err;
	}

	chip->device_id = device_id;
	chip->subdevice_id = subdevice_id;
	chip->bad_board = TRUE;
	chip->dsp_code_to_load = &card_fw[FW_MIA_DSP];
	/* Since this card has no ASIC, mark it as loaded so everything
	   works OK */
	chip->asic_loaded = TRUE;
	if ((subdevice_id & 0x0000f) == MIA_MIDI_REV)
		chip->has_midi = TRUE;
	chip->input_clock_types = ECHO_CLOCK_BIT_INTERNAL |
		ECHO_CLOCK_BIT_SPDIF;

	if ((err = load_firmware(chip)) < 0)
		return err;
	chip->bad_board = FALSE;

	if ((err = init_line_levels(chip)))
		return err;

	/* Default routing of the virtual channels: vchannels 0-3 go to analog
	outputs and vchannels 4-7 go to S/PDIF outputs */
	set_vmixer_gain(chip, 0, 0, 0);
	set_vmixer_gain(chip, 1, 1, 0);
	set_vmixer_gain(chip, 0, 2, 0);
	set_vmixer_gain(chip, 1, 3, 0);
	set_vmixer_gain(chip, 2, 4, 0);
	set_vmixer_gain(chip, 3, 5, 0);
	set_vmixer_gain(chip, 2, 6, 0);
	set_vmixer_gain(chip, 3, 7, 0);
	err = update_vmixer_level(chip);

	DE_INIT(("init_hw done\n"));
	return err;
}
Пример #7
0
static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id)
{
	int err;

	DE_INIT(("init_hw() - Indigo\n"));
	if (snd_BUG_ON((subdevice_id & 0xfff0) != INDIGO))
		return -ENODEV;

	if ((err = init_dsp_comm_page(chip))) {
		DE_INIT(("init_hw - could not initialize DSP comm page\n"));
		return err;
	}

	chip->device_id = device_id;
	chip->subdevice_id = subdevice_id;
	chip->bad_board = TRUE;
	chip->dsp_code_to_load = &card_fw[FW_INDIGO_DSP];
	/* Since this card has no ASIC, mark it as loaded so everything
	   works OK */
	chip->asic_loaded = TRUE;
	chip->input_clock_types = ECHO_CLOCK_BIT_INTERNAL;

	if ((err = load_firmware(chip)) < 0)
		return err;
	chip->bad_board = FALSE;

	if ((err = init_line_levels(chip)) < 0)
		return err;

	/* Default routing of the virtual channels: all vchannels are routed
	to the stereo output */
	set_vmixer_gain(chip, 0, 0, 0);
	set_vmixer_gain(chip, 1, 1, 0);
	set_vmixer_gain(chip, 0, 2, 0);
	set_vmixer_gain(chip, 1, 3, 0);
	set_vmixer_gain(chip, 0, 4, 0);
	set_vmixer_gain(chip, 1, 5, 0);
	set_vmixer_gain(chip, 0, 6, 0);
	set_vmixer_gain(chip, 1, 7, 0);
	err = update_vmixer_level(chip);

	DE_INIT(("init_hw done\n"));
	return err;
}
Пример #8
0
static int set_mixer_defaults(struct echoaudio *chip)
{
	chip->professional_spdif = FALSE;
	return init_line_levels(chip);
}
Пример #9
0
static int set_mixer_defaults(struct echoaudio *chip)
{
	return init_line_levels(chip);
}