* Re: [Alsa-user] ALSA Newbie - Getting Ensoniq SoundscapeVivo to work?
[not found] <d382e1990704272206y9712a84x1e07d07eda58fb18@mail.gmail.com>
@ 2007-04-28 9:54 ` Rene Herman
2007-04-28 11:52 ` Hannu Savolainen
2007-04-28 15:56 ` Cody Jung
0 siblings, 2 replies; 7+ messages in thread
From: Rene Herman @ 2007-04-28 9:54 UTC (permalink / raw)
To: Cody Jung; +Cc: alsa-devel, alsa-user
On 04/28/2007 07:06 AM, Cody Jung wrote:
> As it suggests in the subject, I'm both a Linux-newbie and an
> ALSA-newbie. I have an old clunker of a machine running Ubuntu Feisty
> that I built out of parts left on curbs during spring cleanup, and that's
> how I came across my sound card. It's an Ensoniq SoundscapeVivo (Not a
> Vivo90, AFAIK).
As far as I'm aware, there are no other VIVO's than the VIVO90.
> I've gone through install and troubleshooting guides galore, but I can't
> seem to get ALSA to recognize my card, and I'm confused and rather tired
> of it all.
>
> Do you think you can help, and if so, what information do you need from
> me?
I probably can; I have both a Soundscape VIVO90 and a much older Soundscape
S-2000. My VIVO90 is an ISA-PnP card and has a Ensoniq MARK5-RO, an OTTOR2C
and a Analog Devices AD1845 codec:
http://en.wikipedia.org/wiki/Ensoniq_Soundscape_VIVO90
I tested that when I acquired it a while ago and if I remember correctly, it
just worked... mmm. come to think of it, it might be the case that I needed
to add its PnP ID to the driver. Not sure anymore. Could you confirm whether
or not your Soundscape is an ISA-PnP card and if so (that's also a way to
find out if you don't know if it is) run "pnpdump" with it installed and
look for a PnP-ID for the card in it? Something of the form "ENSxxxx".
If your card is one of the older non-PnP soundscapes it's going to be a bit
harder; they also need firmware and all that and I haven't tested that card
myself yet.
(please use the @alsa-project.org list addresses by the way; in the case of
alsa-devel, the sourceforge one is gone even).
Rene.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Alsa-user] ALSA Newbie - Getting Ensoniq SoundscapeVivo to work?
2007-04-28 9:54 ` [Alsa-user] ALSA Newbie - Getting Ensoniq SoundscapeVivo to work? Rene Herman
@ 2007-04-28 11:52 ` Hannu Savolainen
2007-04-28 22:39 ` Rene Herman
2007-04-28 15:56 ` Cody Jung
1 sibling, 1 reply; 7+ messages in thread
From: Hannu Savolainen @ 2007-04-28 11:52 UTC (permalink / raw)
To: Rene Herman; +Cc: Cody Jung, alsa-devel, alsa-user
Rene Herman kirjoitti:
> On 04/28/2007 07:06 AM, Cody Jung wrote:
>
>
>> As it suggests in the subject, I'm both a Linux-newbie and an
>> ALSA-newbie. I have an old clunker of a machine running Ubuntu Feisty
>> that I built out of parts left on curbs during spring cleanup, and that's
>> how I came across my sound card. It's an Ensoniq SoundscapeVivo (Not a
>> Vivo90, AFAIK).
>>
>
> As far as I'm aware, there are no other VIVO's than the VIVO90.
>
Wrong. VIVO and VIVO90 are different models but I can't remember exactly
what was the difference (maybe VIVO90 was PnP and VIVO just plain ISA).
Both models were supported by earlier versions of OSS (not OSS/Free).
ISA drivers are no longer included in OSS but older 3.9.8 version
(requires 2.4.x kernel) still has it.
Best regards,
Hannu
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: ALSA Newbie - Getting Ensoniq SoundscapeVivo to work?
2007-04-28 9:54 ` [Alsa-user] ALSA Newbie - Getting Ensoniq SoundscapeVivo to work? Rene Herman
2007-04-28 11:52 ` Hannu Savolainen
@ 2007-04-28 15:56 ` Cody Jung
2007-04-28 22:32 ` [Alsa-user] " Rene Herman
1 sibling, 1 reply; 7+ messages in thread
From: Cody Jung @ 2007-04-28 15:56 UTC (permalink / raw)
To: Rene Herman; +Cc: alsa-devel, alsa-user
> I tested that when I acquired it a while ago and if I remember correctly, it
> just worked... mmm. come to think of it, it might be the case that I needed
> to add its PnP ID to the driver. Not sure anymore. Could you confirm whether
> or not your Soundscape is an ISA-PnP card and if so (that's also a way to
> find out if you don't know if it is) run "pnpdump" with it installed and
> look for a PnP-ID for the card in it? Something of the form "ENSxxxx".
There was a Vendor Id (ENS4081) and two Logical device Ids (ENS1011
and ENS2020).
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Alsa-user] ALSA Newbie - Getting Ensoniq SoundscapeVivo to work?
2007-04-28 15:56 ` Cody Jung
@ 2007-04-28 22:32 ` Rene Herman
0 siblings, 0 replies; 7+ messages in thread
From: Rene Herman @ 2007-04-28 22:32 UTC (permalink / raw)
To: Cody Jung; +Cc: alsa-devel, alsa-user
[-- Attachment #1: Type: text/plain, Size: 1915 bytes --]
On 04/28/2007 05:56 PM, Cody Jung wrote:
> There was a Vendor Id (ENS4081) and two Logical device Ids (ENS1011 and
> ENS2020).
Okay, that's a VIVO90. snd-sscape does not work for this card, and not just
as a matter of a missing PnP ID. I suppose PnP Soundscapes exist for which
the driver is correct but at least for the VIVO90 it fails the detect, tries
to talk to the codec at a completely wrong address, and generally seems to
not be applicable.
Attached is a minimal driver for the VIVO90. It only drives the AD1845 codec
but chances are fairly good that's actually all you care about. Hardware
(firmware rather) midi is what makes the Soundscape better/nicer than most
but it's also the hard (undocumented) part and I haven't concerned myself
with it for now.
The msleep(500) in there is not nice, but the card needs a delay after
activation until the codec is available and while I did look, I haven't
found what to poll yet (it's not interrupting). The 500 ms hasn't failed to
load for me yet, but it's not hugely roomy; 400 ms hasn't _succeeded_ for me
yet so if it won't load for you please increase the 500 to 1000 as a first try.
This is not being submitted. It's only a very minimal thing and since Hannu
said that the VIVO and the VIVO90 are in fact different models (mine does
advertise itself as a "ENSONIQ SoundscapeVIVO" without the 90 in its PNP
string) I'm not even sure if this is VIVO90 specific. The PNP ID probably
is. It's only being posted in the hope that it'll work for your needs.
It'll probably grow into a real driver some day, but not soon; given that
it's all very undocumented, getting more to work might be fairly painful.
The old/other driver will help to some degree but I'm not sure to which.
The patch was generated against 2.6.21 and should apply without trouble to
most recent kernels. Loading works just as "modprobe snd-vivo", no params.
Rene.
[-- Attachment #2: vivo.diff --]
[-- Type: text/plain, Size: 5197 bytes --]
commit d67e8af62cf79955fd0c4cb2e54d80be9c19629f
Author: Rene Herman <rene.herman@gmail.com>
Date: Sat Apr 28 23:49:43 2007 +0200
[ALSA] snd-vivo
diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig
index 4e3a972..7338c37 100644
--- a/sound/isa/Kconfig
+++ b/sound/isa/Kconfig
@@ -388,6 +388,18 @@ config SND_SSCAPE
To compile this driver as a module, choose M here: the module
will be called snd-sscape.
+config SND_VIVO
+ tristate "Ensoniq Soundscape VIVO(90) Driver"
+ depends on SND
+ select SND_MPU401_UART
+ select SND_CS4231_LIB
+ help
+ Say Y here to include support for Ensoniq Soundscape VIVO(90)
+ soundcards.
+
+ To compile this driver as a module, choose M here: the module
+ will be called snd-vivo.
+
config SND_WAVEFRONT
tristate "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
depends on SND
diff --git a/sound/isa/Makefile b/sound/isa/Makefile
index bb317cc..8f246af 100644
--- a/sound/isa/Makefile
+++ b/sound/isa/Makefile
@@ -12,6 +12,7 @@ snd-es18xx-objs := es18xx.o
snd-opl3sa2-objs := opl3sa2.o
snd-sgalaxy-objs := sgalaxy.o
snd-sscape-objs := sscape.o
+snd-vivo-objs := vivo.o
# Toplevel Module Dependency
obj-$(CONFIG_SND_ADLIB) += snd-adlib.o
@@ -23,6 +24,7 @@ obj-$(CONFIG_SND_ES18XX) += snd-es18xx.o
obj-$(CONFIG_SND_OPL3SA2) += snd-opl3sa2.o
obj-$(CONFIG_SND_SGALAXY) += snd-sgalaxy.o
obj-$(CONFIG_SND_SSCAPE) += snd-sscape.o
+obj-$(CONFIG_SND_VIVO) += snd-vivo.o
obj-$(CONFIG_SND) += ad1816a/ ad1848/ cs423x/ es1688/ gus/ opti9xx/ \
sb/ wavefront/
diff --git a/sound/isa/vivo.c b/sound/isa/vivo.c
new file mode 100644
index 0000000..fd2c774
--- /dev/null
+++ b/sound/isa/vivo.c
@@ -0,0 +1,148 @@
+/*
+ * Ensoniq Soundscape VIVO(90) Driver
+ */
+
+#include <sound/driver.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/pnp.h>
+#include <linux/delay.h>
+#include <sound/core.h>
+#include <sound/initval.h>
+#include <sound/mpu401.h>
+#include <sound/cs4231.h>
+
+#define CRD_NAME "Ensoniq Soundscape VIVO(90)"
+#define DRV_NAME "VIVO"
+#define DEV_NAME "vivo"
+
+MODULE_DESCRIPTION(CRD_NAME);
+MODULE_AUTHOR("Rene Herman");
+MODULE_LICENSE("GPL");
+
+static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
+static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
+static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE;
+
+module_param_array(index, int, NULL, 0444);
+MODULE_PARM_DESC(index, "Index value for " CRD_NAME " soundcard");
+module_param_array(id, charp, NULL, 0444);
+MODULE_PARM_DESC(id, "ID string for " CRD_NAME " soundcard");
+module_param_array(enable, bool, NULL, 0444);
+MODULE_PARM_DESC(enable, "Enable " CRD_NAME " soundcard");
+
+static struct pnp_card_device_id snd_vivo_pnpids[] = {
+ { .id = "ENS4081", .devs = { { "ENS1011" } } },
+ { .id = "" }
+};
+
+MODULE_DEVICE_TABLE(pnp_card, snd_vivo_pnpids);
+
+static int snd_vivo_error __devinitdata = -ENODEV;
+
+static int __devinit snd_vivo_probe(struct pnp_card_link *pcard,
+ const struct pnp_card_device_id *pid)
+{
+ static int card_num;
+
+ struct pnp_dev *pdev;
+ struct snd_card *card;
+ struct snd_cs4231 *chip;
+
+ int num, error;
+
+ if (card_num == SNDRV_CARDS)
+ return -ENODEV;
+
+ num = card_num++;
+ if (!enable[num])
+ return -ENODEV;
+
+ pdev = pnp_request_card_device(pcard, pid->devs[0].id, NULL);
+ if (!pdev || pnp_activate_dev(pdev) < 0)
+ return -ENODEV;
+
+ card = snd_card_new(index[num], id[num], THIS_MODULE, 0);
+ if (!card)
+ return -EINVAL;
+
+ snd_card_set_dev(card, &pdev->dev);
+
+ strcpy(card->driver, DRV_NAME);
+ strcpy(card->shortname, DRV_NAME);
+ strcpy(card->longname, CRD_NAME);
+
+ error = snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401,
+ pnp_port_start(pdev, 0), 0,
+ pnp_irq(pdev, 1), 0, NULL);
+ if (error < 0)
+ goto out;
+
+ msleep(500);
+
+ error = snd_cs4231_create(card, pnp_port_start(pdev, 1) + 4, -1,
+ pnp_irq(pdev, 0), pnp_dma(pdev, 0),
+ pnp_dma(pdev, 1), CS4231_HW_DETECT,
+ 0, &chip);
+ if (error < 0)
+ goto out;
+
+ error = snd_cs4231_pcm(chip, 0, NULL);
+ if (error < 0)
+ goto out;
+
+ error = snd_cs4231_mixer(chip);
+ if (error < 0)
+ goto out;
+
+ error = snd_cs4231_timer(chip, 0, NULL);
+ if (error < 0)
+ goto out;
+
+ error = snd_card_register(card);
+ if (error < 0)
+ goto out;
+
+ pnp_set_card_drvdata(pcard, card);
+ return (snd_vivo_error = 0);
+
+out: snd_card_free(card);
+ return error;
+}
+
+static void __devexit snd_vivo_remove(struct pnp_card_link *pcard)
+{
+ snd_card_free(pnp_get_card_drvdata(pcard));
+ pnp_set_card_drvdata(pcard, NULL);
+}
+
+static struct pnp_card_driver snd_vivo_driver = {
+ .flags = PNP_DRIVER_RES_DISABLE,
+ .name = DEV_NAME,
+ .id_table = snd_vivo_pnpids,
+ .probe = snd_vivo_probe,
+ .remove = __devexit_p(snd_vivo_remove)
+};
+
+static int __init alsa_card_vivo_init(void)
+{
+ int error;
+
+ error = pnp_register_card_driver(&snd_vivo_driver);
+ if (error < 0)
+ goto out;
+
+ error = snd_vivo_error;
+ if (error < 0)
+ pnp_unregister_card_driver(&snd_vivo_driver);
+
+out: return error;
+}
+
+static void __exit alsa_card_vivo_exit(void)
+{
+ pnp_unregister_card_driver(&snd_vivo_driver);
+}
+
+module_init(alsa_card_vivo_init);
+module_exit(alsa_card_vivo_exit);
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Alsa-user] ALSA Newbie - Getting Ensoniq SoundscapeVivo to work?
2007-04-28 11:52 ` Hannu Savolainen
@ 2007-04-28 22:39 ` Rene Herman
[not found] ` <d382e1990704281918g42165aaas4cac717fe5b4bab0@mail.gmail.com>
0 siblings, 1 reply; 7+ messages in thread
From: Rene Herman @ 2007-04-28 22:39 UTC (permalink / raw)
To: Hannu Savolainen; +Cc: Cody Jung, alsa-devel, alsa-user
On 04/28/2007 01:52 PM, Hannu Savolainen wrote:
> Wrong. VIVO and VIVO90 are different models but I can't remember exactly
> what was the difference (maybe VIVO90 was PnP and VIVO just plain ISA).
Okay, thank you for the information. The one I have here has a large sticker
on it saying "Soundscape VIVO90" but "ENSONIQ SoundscapeVIVO" as the PNP ID
so I assumed they were probably the same thing...
> Both models were supported by earlier versions of OSS (not OSS/Free). ISA
> drivers are no longer included in OSS but older 3.9.8 version (requires
> 2.4.x kernel) still has it.
Given that OSS no longer supports ISA drivers -- no source for these would
be available, would it? I have a specific hobby interest in these old ISA
soundcards.
Rene.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Alsa-user] ALSA Newbie - Getting Ensoniq SoundscapeVivo to work?
[not found] ` <d382e1990704281918g42165aaas4cac717fe5b4bab0@mail.gmail.com>
@ 2007-04-29 7:31 ` Rene Herman
2007-04-29 7:33 ` Rene Herman
0 siblings, 1 reply; 7+ messages in thread
From: Rene Herman @ 2007-04-29 7:31 UTC (permalink / raw)
To: Cody Jung, ALSA devel, ALSA user
On 04/29/2007 04:18 AM, Cody Jung wrote:
> Er...that appears to be a .diff file. Do I have to do something with it
> for it to be workable, or...?
Yes. You'd have to apply the patch (as it's called) to a recent kernel
source tree, reconfigure the kernel adding this new VIVO driver to your
config and then recompile and reinstall that kernel.
Oh well, you posting to alsa-user and not alsa-devel should've been a hint.
Rest assured the driver would've worked nicely :-/
There is another thing you can do. What was posted was just a wrapper around
cs4231-lib in much the same way that the existing snd-cs4231 module is and
that module you _will_ already have installed. That one doesn't do anything
automatic though, so you will have to know how to manually enable your card
first.
First, open a root shell and look through the /sys/bus/pnp/devices directory
for your VIVO. Under the "xx:yy.zz" sub-directories there you will find "id"
files, and one of them will say "ENS1011". Example:
# cat /sys/bus/pnp/devices/01\:01.00/id
ENS1011
After having found it in there, activate the card:
# echo activate >/sys/bus/pnp/devices/01\:01.00/resources
and look at what resources were assigned to it by the PnP layer:
# cat /sys/bus/pnp/devices/01\:01.00/resources
state = active
io 0x330-0x33f
io 0x530-0x537
io 0x2100-0x213f
irq 5
irq 9
dma 1
dma 0
You can now load the snd-cs4231 module specifying those card resources manually:
# modprobe snd-cs4231 port=0x534 irq=5 dma1=1 dma2=0
Yes, 0x534. The second io resource + 4. This should've loaded without
problem. Start up alsamixer:
# alsamixer
and up and unmute the PCM volume. With -> and <- you can walk through the
sliders; ^ ups the one you're on, and "m" toggles the mute (the "MM" at the
bottom should turn to a highlighted "OO"). PCM is the first slider. 90 seems
to be an okay value.
Quit alsamixer again with Alt-Q and now you should be able to hear things.
If you have a plain "wav" file around somewhere, that makes for the quickest
test:
# aplay foo.wav
No, I'm not going to tell you to plug in your speakers.
If anything in the above doesn't work as expected, your system is not as
expected and there's isn't much I can help with. If everything does work,
you can automate it for the next time.
I've attached (to try and avoid linewrap) the lines that you will need in
/etc/modprobe.conf. Ubuntu has no doubt found a way to make that dark and
muddy again so you might need to add it to an /etc/modprobe/whatever file
instead. Please ask a fellow ubuntu victim for advice about translating this
generic linux advice to your install.
Once you do have that all setup, sound should "Just Work". You probably need
to adjust the volume as specified above once only after which ubuntu will
save it for the next boot, but if you don't hear anything ater rebooting,
please check that first.
Rene.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Alsa-user] ALSA Newbie - Getting Ensoniq SoundscapeVivo to work?
2007-04-29 7:31 ` Rene Herman
@ 2007-04-29 7:33 ` Rene Herman
0 siblings, 0 replies; 7+ messages in thread
From: Rene Herman @ 2007-04-29 7:33 UTC (permalink / raw)
To: Cody Jung; +Cc: ALSA devel, ALSA user
[-- Attachment #1: Type: text/plain, Size: 164 bytes --]
On 04/29/2007 09:31 AM, Rene Herman wrote:
> I've attached (to try and avoid linewrap) the lines that you will need in
> /etc/modprobe.conf.
No I haven't.
Rene.
[-- Attachment #2: modprobe.conf --]
[-- Type: text/plain, Size: 392 bytes --]
alias snd-card-0 snd-cs4231
alias sound-slot-0 snd-cs4231
options snd-cs4231 index=0 port=0x534 irq=5 dma1=1 dma2=0
install snd-cs4231 echo activate >/sys/bus/pnp/devices/01\:01.00/resources &&\
sleep 1 &&\
/sbin/modprobe --ignore-install snd-cs4231
remove snd-cs4231 /sbin/modprobe -r --ignore-remove snd-cs4231 &&\
echo disable >/sys/bus/pnp/devices/01\:01.00/resources
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-04-29 7:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <d382e1990704272206y9712a84x1e07d07eda58fb18@mail.gmail.com>
2007-04-28 9:54 ` [Alsa-user] ALSA Newbie - Getting Ensoniq SoundscapeVivo to work? Rene Herman
2007-04-28 11:52 ` Hannu Savolainen
2007-04-28 22:39 ` Rene Herman
[not found] ` <d382e1990704281918g42165aaas4cac717fe5b4bab0@mail.gmail.com>
2007-04-29 7:31 ` Rene Herman
2007-04-29 7:33 ` Rene Herman
2007-04-28 15:56 ` Cody Jung
2007-04-28 22:32 ` [Alsa-user] " Rene Herman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.