Syntax Error - Press Play on Tape -


Asus Xonar DSX: Patching linux kernel v3.x driver to recognize sound card

Supposing you have the linux kernel source in /usr/src/linux.

1. Make changes to the following two files:

  • sound/pci/oxygen/virtuoso.c
  • sound/pci/oxygen/xonar_wm87x6.c

2. Compile kernel and modules

3. Install new kernel and modules and reboot using the recently installed kernel

4. Ét voila! =)


static DEFINE_PCI_DEVICE_TABLE(xonar_ids) = {
Add this line if it does not exist: { OXYGEN_PCI_SUBID(0x1043, 0x8522) },


static const struct oxygen_model model_xonar_hdav_slim
Locate and delete the line with the typo .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
There should already be a line with .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,



int __devinit get_xonar_wm87x6_model(struct oxygen *chip,
Add a new case right before the default case.
case 0x8522:
chip->model = model_xonar_dsx;


Here is the full git diff file:

diff --git a/mirror/sound/pci/oxygen/virtuoso.c b/mirror/sound/pci/oxygen/virtuoso.c
index 3d71423..8104eab 100644
--- a/mirror/sound/pci/oxygen/virtuoso.c
+++ b/mirror/sound/pci/oxygen/virtuoso.c
@@ -52,6 +52,7 @@ static DEFINE_PCI_DEVICE_TABLE(xonar_ids) = {
{ OXYGEN_PCI_SUBID(0x1043, 0x835d) },
{ OXYGEN_PCI_SUBID(0x1043, 0x835e) },
{ OXYGEN_PCI_SUBID(0x1043, 0x838e) },
+ { OXYGEN_PCI_SUBID(0x1043, 0x8522) },
{ }
diff --git a/mirror/sound/pci/oxygen/xonar_wm87x6.c b/mirror/sound/pci/oxygen/xonar_wm87x6.c
index 63cff90..af91016 100644
--- a/mirror/sound/pci/oxygen/xonar_wm87x6.c
+++ b/mirror/sound/pci/oxygen/xonar_wm87x6.c
@@ -1321,6 +1321,40 @@ static const struct oxygen_model model_xonar_hdav_slim = {
.adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,

int __devinit get_xonar_wm87x6_model(struct oxygen *chip,
const struct pci_device_id *id)
@@ -1331,6 +1365,9 @@ int __devinit get_xonar_wm87x6_model(struct oxygen *chip,
case 0x835e:
chip->model = model_xonar_hdav_slim;
+ case 0x8522:
+ chip->model = model_xonar_dsx;
+ break;
return -EINVAL;

Comments (5) Trackbacks (1)
  1. Hi

    Could you also provide a patch for xonar dg si? The card has the same problem, is not detected by the kernel and the driver is not loaded.

  2. I’m a complete noob to linux but would like to use it. I however have no idea to compile the kernel etcetera and also have no idea were to look, could you explain it a little further or link to another tut?

  3. Hi,

    I followed your patch but got an error when compiling the kernel using linux-source-3.2:
    chip->model = model_xonar_dsx

    You don’t define “model_xonar_dsx”

    I followed this instead and it worked:

    The main difference being:
    chip->model = model_xonar_ds

    (also remove the short name in the model_xonar_ds definition
    static const struct oxygen_model model_xonar_ds = {
    - .shortname = “Xonar DS”,

  4. One of the actions you can do to help relieve back pain is to strengthen your core.

    Make sure the chair has good lumbar support, arms rest and a
    firm cushion. Move it: Another very easy way to get relief from the backache is to be active.

Leave a comment