[alsa-devel] [PATCH v3] ES938 support for ES18xx driver

Takashi Iwai tiwai at suse.de
Mon Oct 6 16:13:12 CEST 2014


At Mon, 6 Oct 2014 15:55:18 +0200,
Ondrej Zary wrote:
> 
> On Monday 06 October 2014, Takashi Iwai wrote:
> > At Mon, 29 Sep 2014 23:44:39 +0200,
> >
> > Ondrej Zary wrote:
> > > Add support for ES938 3-D Audio Effects Processor found on some ES18xx
> > > (and possibly other) sound cards, doing bass/treble and 3D control.
> >
> > As this is seen only on es18xx, we don't need to make it as an
> > individual module.  Just merge into snd-es18xx module.
> 
> ES938 does not depend on ES18xx and can be connected to any device with MIDI 
> interface. Maybe there are some other cards with this chip.

Please prove it :)

> > > ES938 is controlled by MIDI SysEx commands sent through card's MPU401
> > > port.
> > >
> > > The code opens/closes the MIDI device everytime a mixer control value is
> > > changed so userspace apps can still use the MIDI port. Changing the mixer
> > > controls will fail when the MIDI port is open by an application.
> >
> > Why the kernel open/close is needed for snd_es938_init(), too?
> > Also, adding controls after snd_card_register() call isn't good in
> > most cases.
> 
> chip->rfile must be a valid snd_rawmidi_file handle for snd_es938_write_reg() 
> and snd_es938_write_reg() to work.
> 
> IIRC, there is a chicken-and-egg problem with adding controls and sound card's 
> MIDI interface initialization:
> we need a working MIDI interface to detect ES938 presence - that's after 
> snd_card_register() is called
> 
> vs.
> 
> we need to add conttrols before snd_card_register() is called

Well, then the interface is somehow abused.  The
snd_rawmidi_kernel_read/write() are mostly only for sequencer core 
stuff, and they aren't supposed to be used by the individual driver.

That said, I'm not willing to merge the patch in the current form.
One of the reason is that this can be implemented pretty easily in
user-space.  Another is that it's a deadly old device, and likely only
handful boards are still running in the world, thus no much motivation
to bloat the kernel code for that.  We're even discussing to get rid
of ISA codes from the kernel tree nowadays.

Sorry, the patch was submitted 10 years too late.


Takashi


More information about the Alsa-devel mailing list