2017-03-29 18:13:35

by Eugene Ganeev

[permalink] [raw]
Subject: [PATCH] ALSA: oxygen - Fix snd_oxygen module not loading for some (new?) Xonar DG SI cards.

My Xonar DG SI card is showing up in lspci but no module is loaded for
it.

The patch just adds a new value with card's PCI ID to oxygen_ids array.

Signed-off-by: Eugene Ganeev <[email protected]>
---
sound/pci/oxygen/oxygen.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index ada6c256378e..99ba0354d4cc 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -110,6 +110,7 @@ static DEFINE_PCI_DEVICE_TABLE(oxygen_ids) = {
{ OXYGEN_PCI_SUBID(0x1a58, 0x0910), .driver_data = MODEL_CMEDIA_REF },
/* Asus Xonar DG */
{ OXYGEN_PCI_SUBID(0x1043, 0x8467), .driver_data = MODEL_XONAR_DG },
+ { OXYGEN_PCI_SUBID(0x1043, 0x855e), .driver_data = MODEL_XONAR_DG },
/* Asus Xonar DGX */
{ OXYGEN_PCI_SUBID(0x1043, 0x8521), .driver_data = MODEL_XONAR_DGX },
/* PCI 2.0 HD Audio */
--
2.11.1


2017-03-29 19:04:59

by Clemens Ladisch

[permalink] [raw]
Subject: Re: [PATCH] ALSA: oxygen - Fix snd_oxygen module not loading for some (new?) Xonar DG SI cards.

Eugene Ganeev wrote:
> My Xonar DG SI card is showing up in lspci but no module is loaded for
> it.
>
> The patch just adds a new value with card's PCI ID to oxygen_ids array.

Is the hardware identical? Do all the inputs and outputs work?

> Signed-off-by: Eugene Ganeev <[email protected]>
> ---
> sound/pci/oxygen/oxygen.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
> index ada6c256378e..99ba0354d4cc 100644
> --- a/sound/pci/oxygen/oxygen.c
> +++ b/sound/pci/oxygen/oxygen.c
> @@ -110,6 +110,7 @@ static DEFINE_PCI_DEVICE_TABLE(oxygen_ids) = {
> { OXYGEN_PCI_SUBID(0x1a58, 0x0910), .driver_data = MODEL_CMEDIA_REF },
> /* Asus Xonar DG */
> { OXYGEN_PCI_SUBID(0x1043, 0x8467), .driver_data = MODEL_XONAR_DG },
> + { OXYGEN_PCI_SUBID(0x1043, 0x855e), .driver_data = MODEL_XONAR_DG },

Please add the correct name to the names[] array.


Regards.
Clemens

2017-03-29 23:55:18

by Eugene Ganeev

[permalink] [raw]
Subject: Re: [PATCH] ALSA: oxygen - Fix snd_oxygen module not loading for some (new?) Xonar DG SI cards.

On Wed, Mar 29, 2017 at 08:56:16PM +0200, Clemens Ladisch wrote:
> Eugene Ganeev wrote:
> > My Xonar DG SI card is showing up in lspci but no module is loaded for
> > it.
> >
> > The patch just adds a new value with card's PCI ID to oxygen_ids array.
>
> Is the hardware identical? Do all the inputs and outputs work?

According to asus website they both use C-MEDIA CMI8786. The difference is that DG SI is 7.1 surround compared to 5.1 in DG.
I've tested the patch, all ports seem to work except rear out. So basically the card is usable unless you use 7.1 setup.

> Please add the correct name to the names[] array.
>
>
> Regards.
> Clemens.

[PATCH v2] sound: oxygen: add Xonar DG SI support

Add PCI ID for the Asus Xonar DG SI card.

Signed-off-by: Eugene Ganeev <[email protected]>

---

v2:
- Added model name to names[] array.

sound/pci/oxygen/oxygen.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index 74afb6b75976..7ba1099fefb1 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -94,6 +94,7 @@ enum {
MODEL_2CH_OUTPUT,
MODEL_HG2PCI,
MODEL_XONAR_DG,
+ MODEL_XONAR_DG_SI,
MODEL_XONAR_DGX,
};

@@ -110,6 +111,8 @@ static const struct pci_device_id oxygen_ids[] = {
{ OXYGEN_PCI_SUBID(0x1a58, 0x0910), .driver_data = MODEL_CMEDIA_REF },
/* Asus Xonar DG */
{ OXYGEN_PCI_SUBID(0x1043, 0x8467), .driver_data = MODEL_XONAR_DG },
+ /* Asus Xonar DG SI */
+ { OXYGEN_PCI_SUBID(0x1043, 0x855e), .driver_data = MODEL_XONAR_DG_SI },
/* Asus Xonar DGX */
{ OXYGEN_PCI_SUBID(0x1043, 0x8521), .driver_data = MODEL_XONAR_DGX },
/* PCI 2.0 HD Audio */
@@ -767,6 +770,7 @@ static int get_oxygen_model(struct oxygen *chip,
[MODEL_FANTASIA] = "TempoTec HiFier Fantasia",
[MODEL_SERENADE] = "TempoTec HiFier Serenade",
[MODEL_HG2PCI] = "CMI8787-HG2PCI",
+ [MODEL_XONAR_DG_SI] = "Asus Xonar DG SI",
};

chip->model = model_generic;
@@ -832,6 +836,9 @@ static int get_oxygen_model(struct oxygen *chip,
chip->model = model_xonar_dg;
chip->model.shortname = "Xonar DG";
break;
+ case MODEL_XONAR_DG_SI:
+ chip->model = model_xonar_dg;
+ break;
case MODEL_XONAR_DGX:
chip->model = model_xonar_dg;
chip->model.shortname = "Xonar DGX";