[alsa-devel] [PATCH 1/5] allow up to 32 PCM devices
fengguang.wu at intel.com
Wed May 12 12:06:32 CEST 2010
On Wed, May 12, 2010 at 05:01:57PM +0800, Takashi Iwai wrote:
> At Wed, 12 May 2010 16:39:50 +0800,
> Wu Fengguang wrote:
> > On Wed, May 12, 2010 at 04:03:43PM +0800, Takashi Iwai wrote:
> > > At Wed, 12 May 2010 09:29:57 +0200 (CEST),
> > > Jaroslav Kysela wrote:
> > > >
> > > > On Wed, 12 May 2010, Wu Fengguang wrote:
> > > >
> > > > > Reserve 32 minor numbers for PCM playback devices.
> > > > >
> > > > > The Intel SandyBridge HDMI audio codec provides 3 PCM devices with
> > > > > indices 3, 7, 8. Among which the device 8's minor number will be
> > > > > overlapped with the first capture device's minor number in the current
> > > > > static minor number allocation scheme.
> > > > >
> > > > > Also increase SNDRV_PCM_DEVICES to make pcm_dev_bits big enough to hold
> > > > > the increasing number of PCM devices.
> > > >
> > > > I don't agree to have only 4 slots for soundcards in the static minor
> > > > numbering. Maybe the driver should be converted to use subdevices or we
> > > > might drop the static minor number allocation at all (it might have only
> > > > impact for old distros).
> > Jaroslav, will there be so many sound cards in one system?
> In the old time, yes. Now we have less and less PCI slots.
> In theory, we may have lots of USB audio devices, though :)
> Another possible solution would be to change the minor number
> assignment to a really dynamic one. So far, due to legacy /dev/aload
> and co, we have some static restriction per card basis.
Another simple option is to "borrow" 2 slots from one of
- SNDRV_MINOR_HWDEP : has 4 slots
- SNDRV_MINOR_RAWMIDI : has 8 slots
- SNDRV_MINOR_PCM_CAPTURE: has 8 slots
What do you think?
> > > Dropping such a base feature is really no good option. Better to give
> > > simply an error for more than 8 PCMs in such a case, IMO.
> > Agreed.
> > > I also wonder whether having 4 individual PCMs is a way to go. We may
> > > have PCM substreams, if any. OTOH, the current IEC958 stream
> > > assignment mechanism doesn't consider multiple substreams well, e.g.
> > > we have no proper way to match the IEC958 status bits control to a PCM
> > > substream.
> > Hmm, what if there are two monitors attached, each want to play a
> > different music track?
> PCM substreams are really independent from each other. So,
> technically seen, substreams are feasible.
> > I think the 3 HDMI devices are inherently independent. Each one can
> > have different hw rates, bits, and speaker allocation. And if
> > implemented as PCM substreams, how can the user space specify "please
> > play this music on this monitor"? AFAIK the windows driver also
> > exports 3 independent HDMI playback devices.
> Yeah, as mentioned, SPDIF status mapping isn't provided properly as
> is. Thus using PCM substreams may give some confusion indeed.
Can I ask a dumb question? Currently I select the target playback
device with the -D option:
How can I do the job when PCM substreams are used?
More information about the Alsa-devel