From 3141a8dcd1013f389091a8e322ebd94bf1a7ddb7 Mon Sep 17 00:00:00 2001 From: Alexander Leidinger Date: Wed, 11 Feb 2009 10:29:45 +0000 Subject: All open fixes and improvements from Konstantin for which users had to use patches so far: + Envy24: - fix: broken init data for M Audio Delta DiO 2496 - add: support for M Audio Delta 44 - add: support for M Audio Delta 1010LT Tested by: Dominique Goncalves, dominique.goncalves at gmail.com - add: support for Terratec EWX 2496 Tested by: Stefan Sperling, stsp at stsp.name - add: support for M Audio Delta 66 Tested by: Richard Bown, richard.bown at blueyonder.co.uk - add: support for M Audio Delta 1010 Tested by: Andrew Reilly, areilly at bigpond.net.au + Envy24HT: - add: support for Terrasoniq TS22PCI - fix: M-Audio Revolution 5.1 sound volume is very low Reported by: Oliver Hartmann, ohartman at zedat.fu-berlin.de Andrey Slusar, anrays at gmail.com Tested by: Andrey Slusar, anrays at gmail.com Rusu Silviu, arol.the at gmail.com - fix: M-Audio Revolution 7.1 sound is distorted and very quiet Reported by: Olev Hannula, hannula at gmail.com Tested by: Olev Hannula, hannula at gmail.com Stanislav Belansky, stanislav at icmail.ru - fix: Terratec PHASE 22 codec is power-off due to wrong init data Reported by: Philipp Ost, pj at smo.de Tested by: Philipp Ost, pj at smo.de + SpicDS: - fix: AK4381 produce hiss sound on 192kHz sample rate - fix: stupid bug with volume control for AK4396 Submitted by: Konstantin Dimitrov --- sys/dev/sound/pci/envy24.c | 49 ++++++++++++++++++++++++++++++++++++++++++-- sys/dev/sound/pci/envy24ht.c | 15 +++++++++++--- sys/dev/sound/pci/spicds.c | 5 +++-- 3 files changed, 62 insertions(+), 7 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/sound/pci/envy24.c b/sys/dev/sound/pci/envy24.c index e35b456a6e40..0fd57d821efc 100644 --- a/sys/dev/sound/pci/envy24.c +++ b/sys/dev/sound/pci/envy24.c @@ -20,7 +20,7 @@ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHERIN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ @@ -278,7 +278,7 @@ static struct cfg_info cfg_table[] = { "Envy24 audio (M Audio Delta Dio 2496)", 0x1412, 0xd631, 0x10, 0x80, 0xf0, 0x03, - 0xff, 0x00, 0x00, + 0x02, 0xc0, 0xfd, 0x10, 0x20, 0x40, 0x00, 0x00, 0x00, &delta_codec, @@ -301,6 +301,51 @@ static struct cfg_info cfg_table[] = { 0x00, &delta_codec, }, + { + "Envy24 audio (M Audio Delta 66)", + 0x1412, 0xd632, + 0x15, 0x80, 0xf0, 0x03, + 0x02, 0xc0, 0xfd, + 0x10, 0x20, 0x40, 0x00, 0x00, + 0x00, + &delta_codec, + }, + { + "Envy24 audio (M Audio Delta 44)", + 0x1412, 0xd633, + 0x15, 0x80, 0xf0, 0x00, + 0x02, 0xc0, 0xfd, + 0x10, 0x20, 0x40, 0x00, 0x00, + 0x00, + &delta_codec, + }, + { + "Envy24 audio (M Audio Delta 1010)", + 0x1412, 0xd630, + 0x1f, 0x80, 0xf0, 0x03, + 0x22, 0xd0, 0xdd, + 0x10, 0x20, 0x40, 0x00, 0x00, + 0x00, + &delta_codec, + }, + { + "Envy24 audio (M Audio Delta 1010LT)", + 0x1412, 0xd63b, + 0x1f, 0x80, 0x72, 0x03, + 0x04, 0x7e, 0xfb, + 0x08, 0x02, 0x70, 0x00, 0x00, + 0x00, + &delta_codec, + }, + { + "Envy24 audio (Terratec EWX 2496)", + 0x153b, 0x1130, + 0x10, 0x80, 0xf0, 0x03, + 0xc0, 0x3f, 0x3f, + 0x10, 0x20, 0x01, 0x01, 0x00, + 0x00, + &delta_codec, + }, { "Envy24 audio (Generic)", 0, 0, diff --git a/sys/dev/sound/pci/envy24ht.c b/sys/dev/sound/pci/envy24ht.c index a3e4f36a07dc..a9d32e1b2010 100644 --- a/sys/dev/sound/pci/envy24ht.c +++ b/sys/dev/sound/pci/envy24ht.c @@ -323,7 +323,7 @@ static struct cfg_info cfg_table[] = { 0x153b, 0x1150, 0x10, 0x80, 0xf0, 0xc3, 0x7ffbc7, 0x7fffff, 0x438, - 0x20, 0x10, 0x400, 0x00, 0x00, + 0x10, 0x20, 0x400, 0x01, 0x00, 0, &spi_codec, }, @@ -349,7 +349,7 @@ static struct cfg_info cfg_table[] = { "Envy24HT audio (M-Audio Revolution 7.1)", 0x1412, 0x3630, 0x43, 0x80, 0xf8, 0xc1, - 0x3fff85, 0x72, 0x4000fa, + 0x3fff85, 0x400072, 0x4000fa, 0x08, 0x02, 0x20, 0x00, 0x04, 0, &spi_codec, @@ -358,7 +358,7 @@ static struct cfg_info cfg_table[] = { "Envy24GT audio (M-Audio Revolution 5.1)", 0x1412, 0x3631, 0x42, 0x80, 0xf8, 0xc1, - 0x3fff85, 0x72, 0x4000fa, + 0x3fff05, 0x4000f0, 0x4000fa, 0x08, 0x02, 0x10, 0x00, 0x03, 0, &spi_codec, @@ -390,6 +390,15 @@ static struct cfg_info cfg_table[] = { 0, &spi_codec, }, + { + "Envy24HT-S audio (Terrasoniq TS22PCI)", + 0x153b, 0x117b, + 0x10, 0x80, 0xf0, 0xc3, + 0x7ffbc7, 0x7fffff, 0x438, + 0x10, 0x20, 0x400, 0x01, 0x00, + 0, + &spi_codec, + }, { "Envy24HT audio (Generic)", 0, 0, diff --git a/sys/dev/sound/pci/spicds.c b/sys/dev/sound/pci/spicds.c index d559a6c6c350..af61b045f364 100644 --- a/sys/dev/sound/pci/spicds.c +++ b/sys/dev/sound/pci/spicds.c @@ -234,7 +234,7 @@ spicds_init(struct spicds_info *codec) if (codec->type == SPICDS_TYPE_AK4358) spicds_wrcd(codec, 0x00, 0x07); /* I2S, 24bit, power-up */ if (codec->type == SPICDS_TYPE_AK4381) - spicds_wrcd(codec, 0x00, 0x0f); /* I2S, 24bit, power-up */ + spicds_wrcd(codec, 0x00, 0x8f); /* I2S, 24bit, power-up */ if (codec->type == SPICDS_TYPE_AK4396) spicds_wrcd(codec, 0x00, 0x07); /* I2S, 24bit, power-up */ snd_mtxunlock(codec->lock); @@ -296,7 +296,8 @@ spicds_set(struct spicds_info *codec, int dir, unsigned int left, unsigned int r case SPICDS_TYPE_WM8770: right = right + 27; break; - case SPICDS_TYPE_AK4381 || SPICDS_TYPE_AK4396: + case SPICDS_TYPE_AK4381: + case SPICDS_TYPE_AK4396: right = right * 255 / 100; break; default: -- cgit v1.3