i added rev 3 of ct5880 as to have an spdiff_out in ens1370.c, cause i
know this works with my soundcard. i did 'ensoniq->rev == CT5880REV_C
T5880_D' cause i dont know how it works with later releases.
maybe it could be aplied in the driver.

for details see patch.

i also tried to enable line-in as a second line-out for pcm0, as it could
made with ens1370, but this does not work with ens1370 settings. its not
documented in the ens1371 specs but i know that it works with the
windows-drivers, the current setting i aplied doesnt cause an error but
should removed cause its probably wrong for ens1371.
maybe someone nows the right bit which has to be set, for enabling line-in
as second line-out, or has the current specs for the CT5880 REV 3. would
be a nice feature for this driver.

regards

joy
--- ens1370_orig.c      Tue Mar 26 13:36:56 2002
+++ ens1370.c   Tue Mar 26 13:36:42 2002
@@ -1303,7 +1303,7 @@
        ac97.private_free = snd_ensoniq_mixer_free_ac97;
        if ((err = snd_ac97_mixer(card, &ac97, &ensoniq->u.es1371.ac97)) < 0)
                return err;
-       if (ensoniq->rev >= ES1371REV_ES1373_A)
+       if ((ensoniq->rev >= ES1371REV_ES1373_A) || (ensoniq->rev == 
+CT5880REV_CT5880_D))
                snd_ctl_add(card, snd_ctl_new1(&snd_es1371_mixer_spdif, ensoniq));
        return 0;
 }
@@ -1398,11 +1398,17 @@
  *  General Switches...
  */
 
-static snd_kcontrol_new_t snd_ensoniq_control_joystick __devinitdata =
+static snd_kcontrol_new_t snd_ensoniq_control_joystick __devinitdata = 
 ENSONIQ_CONTROL("Joystick Enable", ES_JYSTK_EN);
 
 #ifdef CHIP1371
 
+/* hack for enabling linein as second lineout */
+static snd_kcontrol_new_t snd_ensoniq_control_linein __devinitdata = 
+ENSONIQ_CONTROL("Enable Linein as second Out", ES_1370_XCTL0);
+
+/* snd_ctl_add(card, snd_ctl_new1(&snd_ensoniq_control_linein, ensoniq)); */
+
 #define ES1371_JOYSTICK_ADDR(xname) \
 { iface: SNDRV_CTL_ELEM_IFACE_CARD, name: xname, info: snd_es1371_joystick_addr_info, 
\
   get: snd_es1371_joystick_addr_get, put: snd_es1371_joystick_addr_put }
@@ -1471,6 +1477,7 @@
        snd_iprintf(buffer, "Line In to AOUT  : %s\n", ensoniq->ctrl & ES_1370_XCTL0 ? 
"on" : "off");
 #else
        snd_iprintf(buffer, "Joystick port    : 0x%x\n", 
(ES_1371_JOY_ASELI(ensoniq->ctrl) * 8) + 0x200);
+       snd_iprintf(buffer, "Line In to AOUT  : %s\n", ensoniq->ctrl & ES_1370_XCTL0 ? 
+"on" : "off");
 #endif
 }
 
@@ -1703,6 +1710,7 @@
        snd_ctl_add(card, snd_ctl_new1(&snd_ensoniq_control_joystick, ensoniq));
 #ifdef CHIP1371
        snd_ctl_add(card, snd_ctl_new1(&snd_es1371_joystick_addr, ensoniq));
+       snd_ctl_add(card, snd_ctl_new1(&snd_ensoniq_control_linein, ensoniq));
 #endif
        synchronize_irq();
 

Reply via email to