Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1db38c0 authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Jaroslav Kysela
Browse files

sound: virtuoso: add Xonar DS support



Add experimental support for the Asus Xonar DS.

Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent a32f6674
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1923,7 +1923,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
  -------------------

    Module for sound cards based on the Asus AV100/AV200 chips,
    i.e., Xonar D1, DX, D2, D2X, HDAV1.3 (Deluxe), Essence ST
    i.e., Xonar D1, DX, D2, D2X, DS, HDAV1.3 (Deluxe), Essence ST
    (Deluxe) and Essence STX.

    This module supports autoprobe and multiple cards.
+1 −0
Original line number Diff line number Diff line
@@ -789,6 +789,7 @@ config SND_VIRTUOSO
	  Say Y here to include support for sound cards based on the
	  Asus AV100/AV200 chips, i.e., Xonar D1, DX, D2, D2X,
	  Essence ST (Deluxe), and Essence STX.
	  Support for the DS is experimental.
	  Support for the HDAV1.3 (Deluxe) is very experimental.

	  To compile this driver as a module, choose M here: the module
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ snd-oxygen-lib-objs := oxygen_io.o oxygen_lib.o oxygen_mixer.o oxygen_pcm.o
snd-hifier-objs := hifier.o
snd-oxygen-objs := oxygen.o
snd-virtuoso-objs := virtuoso.o xonar_lib.o \
	xonar_pcm179x.o xonar_cs43xx.o xonar_hdmi.o
	xonar_pcm179x.o xonar_cs43xx.o xonar_wm87x6.o xonar_hdmi.o

obj-$(CONFIG_SND_OXYGEN_LIB) += snd-oxygen-lib.o
obj-$(CONFIG_SND_HIFIER) += snd-hifier.o
+3 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ static struct pci_device_id xonar_ids[] __devinitdata = {
	{ OXYGEN_PCI_SUBID(0x1043, 0x834f) },
	{ OXYGEN_PCI_SUBID(0x1043, 0x835c) },
	{ OXYGEN_PCI_SUBID(0x1043, 0x835d) },
	{ OXYGEN_PCI_SUBID(0x1043, 0x838e) },
	{ OXYGEN_PCI_SUBID_BROKEN_EEPROM },
	{ }
};
@@ -61,6 +62,8 @@ static int __devinit get_xonar_model(struct oxygen *chip,
		return 0;
	if (get_xonar_cs43xx_model(chip, id) >= 0)
		return 0;
	if (get_xonar_wm87x6_model(chip, id) >= 0)
		return 0;
	return -EINVAL;
}

+73 −0
Original line number Diff line number Diff line
#ifndef WM8766_H_INCLUDED
#define WM8766_H_INCLUDED

#define WM8766_LDA1		0x00
#define WM8766_RDA1		0x01
#define WM8766_DAC_CTRL		0x02
#define WM8766_INT_CTRL		0x03
#define WM8766_LDA2		0x04
#define WM8766_RDA2		0x05
#define WM8766_LDA3		0x06
#define WM8766_RDA3		0x07
#define WM8766_MASTDA		0x08
#define WM8766_DAC_CTRL2	0x09
#define WM8766_DAC_CTRL3	0x0a
#define WM8766_MUTE1		0x0c
#define WM8766_MUTE2		0x0f
#define WM8766_RESET		0x1f

/* LDAx/RDAx/MASTDA */
#define WM8766_ATT_MASK		0x0ff
#define WM8766_UPDATE		0x100
/* DAC_CTRL */
#define WM8766_MUTEALL		0x001
#define WM8766_DEEMPALL		0x002
#define WM8766_PWDN		0x004
#define WM8766_ATC		0x008
#define WM8766_IZD		0x010
#define WM8766_PL_LEFT_MASK	0x060
#define WM8766_PL_LEFT_MUTE	0x000
#define WM8766_PL_LEFT_LEFT	0x020
#define WM8766_PL_LEFT_RIGHT	0x040
#define WM8766_PL_LEFT_LRMIX	0x060
#define WM8766_PL_RIGHT_MASK	0x180
#define WM8766_PL_RIGHT_MUTE	0x000
#define WM8766_PL_RIGHT_LEFT	0x080
#define WM8766_PL_RIGHT_RIGHT	0x100
#define WM8766_PL_RIGHT_LRMIX	0x180
/* INT_CTRL */
#define WM8766_FMT_MASK		0x003
#define WM8766_FMT_RJUST	0x000
#define WM8766_FMT_LJUST	0x001
#define WM8766_FMT_I2S		0x002
#define WM8766_FMT_DSP		0x003
#define WM8766_LRP		0x004
#define WM8766_BCP		0x008
#define WM8766_IWL_MASK		0x030
#define WM8766_IWL_16		0x000
#define WM8766_IWL_20		0x010
#define WM8766_IWL_24		0x020
#define WM8766_IWL_32		0x030
#define WM8766_PHASE_MASK	0x1c0
/* DAC_CTRL2 */
#define WM8766_ZCD		0x001
#define WM8766_DZFM_MASK	0x006
#define WM8766_DMUTE_MASK	0x038
#define WM8766_DEEMP_MASK	0x1c0
/* DAC_CTRL3 */
#define WM8766_DACPD_MASK	0x00e
#define WM8766_PWRDNALL		0x010
#define WM8766_MS		0x020
#define WM8766_RATE_MASK	0x1c0
#define WM8766_RATE_128		0x000
#define WM8766_RATE_192		0x040
#define WM8766_RATE_256		0x080
#define WM8766_RATE_384		0x0c0
#define WM8766_RATE_512		0x100
#define WM8766_RATE_768		0x140
/* MUTE1 */
#define WM8766_MPD1		0x040
/* MUTE2 */
#define WM8766_MPD2		0x020

#endif
Loading