summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound
diff options
context:
space:
mode:
authornetchild <netchild@FreeBSD.org>2009-02-11 10:29:45 +0000
committernetchild <netchild@FreeBSD.org>2009-02-11 10:29:45 +0000
commitfe70f373f05ab68a07cce0f8006f4070d4301deb (patch)
treebda69375ee6a41830a011dac36c71014771f36fb /sys/dev/sound
parente2d943b9ca7d56065798a6503628de71b73e2df6 (diff)
downloadFreeBSD-src-fe70f373f05ab68a07cce0f8006f4070d4301deb.zip
FreeBSD-src-fe70f373f05ab68a07cce0f8006f4070d4301deb.tar.gz
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 <kosio.dimitrov@gmail.com>
Diffstat (limited to 'sys/dev/sound')
-rw-r--r--sys/dev/sound/pci/envy24.c49
-rw-r--r--sys/dev/sound/pci/envy24ht.c15
-rw-r--r--sys/dev/sound/pci/spicds.c5
3 files changed, 62 insertions, 7 deletions
diff --git a/sys/dev/sound/pci/envy24.c b/sys/dev/sound/pci/envy24.c
index e35b456..0fd57d8 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 a3e4f36..a9d32e1 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,
@@ -391,6 +391,15 @@ static struct cfg_info cfg_table[] = {
&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,
0x0b, 0x80, 0xfc, 0xc3,
diff --git a/sys/dev/sound/pci/spicds.c b/sys/dev/sound/pci/spicds.c
index d559a6c..af61b04 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:
OpenPOWER on IntegriCloud