Skip to contentSkip to conversation

miroSOUND PCM12 driver

PATCH In review Martin Langer 2 participants 4 messages Mar 13, 2005 – Mar 18, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 miroSOUND PCM12 driver

Hi,

I'm afraid nobody needs this driver, but perhaps I'm wrong here. The tenth birthday of this card is coming soon and now it's time to get an ALSA driver for the miroSOUND PCM12 :)

Any comments? Nevertheless my comments are:

- Two new Control Names introduced: "Radio" for the onboard radio and "Tone Control - xxx (k)Hz" for an equalizer control.

- I've tried to write support for all three miroSOUND cards PCM1 pro, PCM12 and PCM20 Radio, but only PCM12 (rev. E) is tested. Especially OPTi929 cards are completely untested.

- These cards have two mixers: ACI and OPTi9xx. Both are merged into one ALSA mixer device. That's different to OSS.

- OPL4 support is still missing, because I'm still waiting for response of my broken OPL4 chip. :(

- I never saw any docs about the cards. All knowledge is taken from ACI driver (OSS) and OPTi9xx (ALSA) drivers. I've done my best in copying bugs from there to this new driver :)

Summary: initial version of miroSOUND PCM1 pro, PCM12, PCM20 radio driver

Have fun
martin

#1 lore raw
Quoted 7 lines · Martin Langer

The tenth birthday of this card is coming soon and now it's time to get an ALSA driver for the miroSOUND PCM12 :)

Any comments?

+++ alsa-driver/isa/opti9xx/Makefile Fri Mar 11 18:51:05 2005
+obj-$(CONFIG_SND_MIRO) += snd-miro.o snd-opti92x-cs4231.o

Is there any reason for the dependency on the snd-opti92x-cs4231 driver?

Quoted 3 lines

MODULE_SUPPORTED_DEVICE("{{miroSOUND,PCM1 pro}, "

			"{miroSOUND,PCM12}, "
			"{miroSOUND,PCM20 Radio}}");

The first entry in each pair should be the vendor name.

Quoted 2 lines

static int wss; /* unknown range */
static int ide; /* unknown range */

"unknown"? :-)

Quoted 10 lines

int snd_miro_mixer(miro_t * miro)
...

	switch (miro->hardware) {
        case OPTi9XX_HW_82C924:
		strcpy(card->mixername, "ACI & OPTi924");
        case OPTi9XX_HW_82C929:
		strcpy(card->mixername, "ACI & OPTi929");
	default:
		strcpy(card->mixername, "ACI & OPTi9xx");
	}

The default case cannot happen (bwahaha!), so it might make sense to put a snd_BUG() in there.

Quoted 2 lines

- OPL4 support is still missing, because I'm still waiting for response of my broken OPL4 chip. :(

Is it broken with the snd-opti92x-cs4231 driver, too?

Quoted 2 lines

- I never saw any docs about the cards. All knowledge is taken from ACI driver (OSS) and OPTi9xx (ALSA) drivers.

There are OPTi manuals on the ALSA FTP server.

Otherwise, it looks fine.

Regards,
Clemens

-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

#2 lore raw
Quoted 3 lines · Clemens Ladisch
Quoted 2 lines · Martin Langer

The tenth birthday of this card is coming soon and now it's time to get an ALSA driver for the miroSOUND PCM12 :)

The new miro driver patch version 0.6 is attached.

Quoted 6 lines
Quoted 3 lines

+++ alsa-driver/isa/opti9xx/Makefile Fri Mar 11 18:51:05 2005
+obj-$(CONFIG_SND_MIRO) += snd-miro.o snd-opti92x-cs4231.o

Is there any reason for the dependency on the snd-opti92x-cs4231 driver?

No, it's rubbish. I've removed it.

Quoted 5 lines
Quoted 3 lines

MODULE_SUPPORTED_DEVICE("{{miroSOUND,PCM1 pro}, "

			"{miroSOUND,PCM12}, "
			"{miroSOUND,PCM20 Radio}}");

The first entry in each pair should be the vendor name.

fixed.

Quoted 4 lines
Quoted 2 lines

static int wss; /* unknown range */
static int ide; /* unknown range */

"unknown"? :-)

"wss" is only for PCM1 which I can't test with my PCM12.

"ide" isn't documented and I haven't tried ide out - it's postponed to later.

But perhaps 0 and 1 are the unknown values. Hmmm, there is still a smell of uncertainty in the air...

Quoted 11 lines
Quoted 10 lines

int snd_miro_mixer(miro_t * miro)
...

	switch (miro->hardware) {
        case OPTi9XX_HW_82C924:
		strcpy(card->mixername, "ACI & OPTi924");
        case OPTi9XX_HW_82C929:
		strcpy(card->mixername, "ACI & OPTi929");
	default:
		strcpy(card->mixername, "ACI & OPTi9xx");
	}
Quoted 2 lines

The default case cannot happen (bwahaha!), so it might make sense to put a snd_BUG() in there.

good point. fixed.

Quoted 4 lines
Quoted 2 lines

- OPL4 support is still missing, because I'm still waiting for response of my broken OPL4 chip. :(

Is it broken with the snd-opti92x-cs4231 driver, too?

Yep, it's even broken with Win2000.

Quoted 4 lines
Quoted 2 lines

- I never saw any docs about the cards. All knowledge is taken from ACI driver (OSS) and OPTi9xx (ALSA) drivers.

There are OPTi manuals on the ALSA FTP server.

I wasn't precise here. I was looking for ACI or Miro specific documents. E.g. the OSS driver has no real equalizer implementation. I hope it's handled correct now, because it's still untested PCM20 stuff. OTOH, I haven't had a hole of knowledge in the OPTi part. There was no reason for looking into the OPTi specifications, the ALSA opti driver had all things inside (at least for me).

BTW, I just asked google and I've found two other intersting documents for addition to the ALSA ftp area:

Opti929:
http://ftp.cis.nctu.edu.tw/data/Multimedia/SoundCard/OPTi/82c929/db013_10.pdf

OPL4:
http://ftp.funet.fi/pub/msx/docs/datasheets/opl4.pdf

bye,
martin

#3 lore raw
Quoted 1 line · Martin Langer

The new miro driver patch version 0.6 is attached.

It's now in CVS.

Clemens

-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click