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();