/**************************************************************************** Copyright Echo Digital Audio Corporation (c) 1998 - 2004 All rights reserved www.echoaudio.com This file is part of Echo Digital Audio's generic driver library. Echo Digital Audio's generic driver library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ************************************************************************* Translation from C++ and adaptation for use in ALSA-Driver were made by Giuliano Pochini <[email protected]> ****************************************************************************/ /* These functions are common for all "3G" cards */ static int check_asic_status(struct echoaudio *chip) { … } static inline u32 get_frq_reg(struct echoaudio *chip) { … } /* Most configuration of 3G cards is accomplished by writing the control register. write_control_reg sends the new control register value to the DSP. */ static int write_control_reg(struct echoaudio *chip, u32 ctl, u32 frq, char force) { … } /* Set the digital mode - currently for Gina24, Layla24, Mona, 3G */ static int set_digital_mode(struct echoaudio *chip, u8 mode) { … } static u32 set_spdif_bits(struct echoaudio *chip, u32 control_reg, u32 rate) { … } /* Set the S/PDIF output format */ static int set_professional_spdif(struct echoaudio *chip, char prof) { … } /* detect_input_clocks() returns a bitmask consisting of all the input clocks currently connected to the hardware; this changes as the user connects and disconnects clock inputs. You should use this information to determine which clocks the user is allowed to select. */ static u32 detect_input_clocks(const struct echoaudio *chip) { … } static int load_asic(struct echoaudio *chip) { … } static int set_sample_rate(struct echoaudio *chip, u32 rate) { … } /* Set the sample clock source to internal, S/PDIF, ADAT */ static int set_input_clock(struct echoaudio *chip, u16 clock) { … } static int dsp_set_digital_mode(struct echoaudio *chip, u8 mode) { … }