Syntax Error - Press Play on Tape -

17Feb/135

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! =)

 

sound/pci/oxygen/virtuoso.c
static DEFINE_PCI_DEVICE_TABLE(xonar_ids) = {
Add this line if it does not exist: { OXYGEN_PCI_SUBID(0x1043, 0x8522) },

 

sound/pci/oxygen/xonar_wm87x6.c
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,

 

sound/pci/oxygen/xonar_wm87x6.c

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;
break;

 

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) },
{ OXYGEN_PCI_SUBID_BROKEN_EEPROM },
{ }
};
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;
break;
+ case 0x8522:
+ chip->model = model_xonar_dsx;
+ break;
default:
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