ALSA: oxygen: add Claro halo support
Clemens Ladisch [Wed, 26 Nov 2008 09:37:23 +0000 (10:37 +0100)]
Add support for the HT-Omega Claro halo (XT).

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

Documentation/sound/alsa/ALSA-Configuration.txt
sound/pci/Kconfig
sound/pci/oxygen/oxygen.c

index e0e54a2..0cca842 100644 (file)
@@ -1647,7 +1647,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
     * AuzenTech X-Meridian
     * Bgears b-Enspirer
     * Club3D Theatron DTS
-    * HT-Omega Claro
+    * HT-Omega Claro (plus)
+    * HT-Omega Claro halo (XT)
     * Razer Barracuda AC-1
     * Sondigo Inferno
 
index 7003711..611df4b 100644 (file)
@@ -208,7 +208,8 @@ config SND_OXYGEN
           * AuzenTech X-Meridian
           * Bgears b-Enspirer
           * Club3D Theatron DTS
-          * HT-Omega Claro
+          * HT-Omega Claro (plus)
+          * HT-Omega Claro halo (XT)
           * Razer Barracuda AC-1
           * Sondigo Inferno
 
index b60f621..de999c6 100644 (file)
@@ -61,6 +61,7 @@ MODULE_PARM_DESC(enable, "enable card");
 enum {
        MODEL_CMEDIA_REF,       /* C-Media's reference design */
        MODEL_MERIDIAN,         /* AuzenTech X-Meridian */
+       MODEL_HALO,             /* HT-Omega Claro halo */
 };
 
 static struct pci_device_id oxygen_ids[] __devinitdata = {
@@ -74,6 +75,7 @@ static struct pci_device_id oxygen_ids[] __devinitdata = {
        { OXYGEN_PCI_SUBID(0x1a58, 0x0910), .driver_data = MODEL_CMEDIA_REF },
        { OXYGEN_PCI_SUBID(0x415a, 0x5431), .driver_data = MODEL_MERIDIAN },
        { OXYGEN_PCI_SUBID(0x7284, 0x9761), .driver_data = MODEL_CMEDIA_REF },
+       { OXYGEN_PCI_SUBID(0x7284, 0x9781), .driver_data = MODEL_HALO },
        { }
 };
 MODULE_DEVICE_TABLE(pci, oxygen_ids);
@@ -301,6 +303,8 @@ static int generic_probe(struct oxygen *chip, unsigned long driver_data)
                                            PLAYBACK_1_TO_SPDIF |
                                            CAPTURE_0_FROM_I2S_2 |
                                            CAPTURE_1_FROM_SPDIF;
+       }
+       if (driver_data == MODEL_MERIDIAN || driver_data == MODEL_HALO) {
                chip->model.misc_flags = OXYGEN_MISC_MIDI;
                chip->model.device_config |= MIDI_OUTPUT | MIDI_INPUT;
        }