[alsa-devel] A few general questions (my first driver): Marian MARC4
Takashi Iwai
tiwai at suse.de
Wed Jun 25 17:59:58 CEST 2008
At Fri, 20 Jun 2008 02:07:49 -0400,
Joshua Boyd wrote:
>
> I have a Marian Marc4 card. I have the documentation for this card,
> which has been on their web site for quite some time. I want to
> write a driver for this card. This is my first ALSA driver, but it
> isn't my first kernel driver.
>
> Anyway, I can't google any mention of this family of cards on this
> mailing list, which seems a bit odd. I did find some mentions on
> linux-audio-developer, about the documentation, but no mention there
> of prior work on this family.
>
> However, I did find a MARC8 driver on sourceforge (http://
> sourceforge.net/projects/marc8-driver). Does anyone know anything
> about this? I'm vary curious about why I've never seen it mentioned
> here before. The license is listed as GPL. The Marian Marc8 was
> formerly known as the Sek'd Siena, but again I can't find any real
> mention of that in the archives. Does anyone have any idea why the
> MARC8 wasn't mentioned and merged into the main ALSA sources?
AFAIK, no one suggested or posted the patches to ALSA developers.
So it's a totally unknown project.
> I did go ahead and add some Marian product information to the support
> matrix on the alsa wiki, including a link to the sourceforge page.
>
> My plan is to add MARC4 to the MARC8 driver. The register layout is
> basically the same, adjusted for the 4 versus 8 channels. Both cards
> use the same PLX chip. The biggest difference is in the layout of
> the play/capture RAM area, which is because of the 4 versus 8
> channels. It seems silly to make two separate drivers. I would like
> to see my results eventually merged into the main ALSA. I'm hoping
> that if I get these into the main tree that I would then be able to
> get some support from Marian in the form of clearance (and a card) to
> do the Trace D4 and D4 SRC, and possibly even documentation and
> hardware for the UCON CX.
>
> Anyway, moving on to my specific questions.
>
> First, is it appropriate to put support for two device IDs in the
> same file? The examples I tried looking at ended up being a single
> device id, differentiated by a subvendor ID.
It's no problem.
> Second, is it wrong to use the same structures, but with an enum
> field in the main snd_marc device structure that points out which
> card I'm talking about, then else where switching on that enum to
> figure out how many channels I need to operate on?
Nothing wrong. Passing driver_data in pci_device_id table is a common
technique.
> Third, once I get this functional on my MARC4 card, how hard is it
> likely to be to get it accepted? I don't expect low standards for
> code that is accepted, but I'd like to have some idea how picky the
> process may be.
This really depends on the code quality. Of course, the most
important criteria is that the driver works without problems, though
:)
Anyway, a good hint can be found in Documentation/CodingStyle in
linux kernel tree. At least, check $LINUX/scripts/checkpatch.pl
before submitting your patch.
thanks,
Takashi
More information about the Alsa-devel
mailing list