* 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-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
[parent not found: <d382e1990704281918g42165aaas4cac717fe5b4bab0@mail.gmail.com>]
* 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
* 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
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.