cregit-Linux how code gets into the kernel

Release 4.7 sound/pci/ice1712/amp.c

/*
 *   ALSA driver for ICEnsemble VT1724 (Envy24HT)
 *
 *   Lowlevel functions for Advanced Micro Peripherals Ltd AUDIO2000
 *
 *      Copyright (c) 2000 Jaroslav Kysela <perex@perex.cz>
 *
 *   This program 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; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   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
 *
 */      

#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <sound/core.h>

#include "ice1712.h"
#include "envy24ht.h"
#include "amp.h"


static void wm_put(struct snd_ice1712 *ice, int reg, unsigned short val) { unsigned short cval; cval = (reg << 9) | val; snd_vt1724_write_i2c(ice, WM_DEV, cval >> 8, cval & 0xff); }

Contributors

PersonTokensPropCommitsCommitProp
takashi iwaitakashi iwai47100.00%2100.00%
Total47100.00%2100.00%


static int snd_vt1724_amp_init(struct snd_ice1712 *ice) { static const unsigned short wm_inits[] = { WM_ATTEN_L, 0x0000, /* 0 db */ WM_ATTEN_R, 0x0000, /* 0 db */ WM_DAC_CTRL, 0x0008, /* 24bit I2S */ WM_INT_CTRL, 0x0001, /* 24bit I2S */ }; unsigned int i; /* only use basic functionality for now */ /* VT1616 6ch codec connected to PSDOUT0 using packed mode */ ice->num_total_dacs = 6; ice->num_total_adcs = 2; /* Chaintech AV-710 has another WM8728 codec connected to PSDOUT4 (shared with the SPDIF output). Mixer control for this codec is not yet supported. */ if (ice->eeprom.subvendor == VT1724_SUBDEVICE_AV710) { for (i = 0; i < ARRAY_SIZE(wm_inits); i += 2) wm_put(ice, wm_inits[i], wm_inits[i+1]); } return 0; }

Contributors

PersonTokensPropCommitsCommitProp
takashi iwaitakashi iwai8275.23%350.00%
jaroslav kyselajaroslav kysela2422.02%233.33%
robert hancockrobert hancock32.75%116.67%
Total109100.00%6100.00%


static int snd_vt1724_amp_add_controls(struct snd_ice1712 *ice) { if (ice->ac97) /* we use pins 39 and 41 of the VT1616 for left and right read outputs */ snd_ac97_write_cache(ice->ac97, 0x5a, snd_ac97_read(ice->ac97, 0x5a) & ~0x8000); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
jaroslav kyselajaroslav kysela3378.57%250.00%
pavel hofmanpavel hofman716.67%125.00%
takashi iwaitakashi iwai24.76%125.00%
Total42100.00%4100.00%

/* entry point */ struct snd_ice1712_card_info snd_vt1724_amp_cards[] = { { .subvendor = VT1724_SUBDEVICE_AV710, .name = "Chaintech AV-710", .model = "av710", .chip_init = snd_vt1724_amp_init, .build_controls = snd_vt1724_amp_add_controls, }, { .subvendor = VT1724_SUBDEVICE_AUDIO2000, .name = "AMP Ltd AUDIO2000", .model = "amp2000", .chip_init = snd_vt1724_amp_init, .build_controls = snd_vt1724_amp_add_controls, }, { } /* terminator */ };

Overall Contributors

PersonTokensPropCommitsCommitProp
takashi iwaitakashi iwai16156.49%327.27%
jaroslav kyselajaroslav kysela11440.00%654.55%
pavel hofmanpavel hofman72.46%19.09%
robert hancockrobert hancock31.05%19.09%
bill pembertonbill pemberton0.00%00.00%
Total285100.00%11100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}