PSARC 2008/318 Boomer - potential issues
Garrett D'Amore
gdamore at sun.com
Mon Nov 3 07:41:32 PST 2008
I wanted to record some potential issues we've found. This stuff needs
to be in our case materials before final commitment review, but at some
level, we've not decided how to handle all of them, so I'd appreciate it
if anyone has any special insight.
1) Port definitions and Sun audio(7I). Sun APIs has definitions for a
number of possible output ports, but the full set is less than what OSS,
or even modern hardware, can express. For example, there can be
additional auxiliary input and outputs, video input, etc. The Sun APIs
could easily be expanded to include the additional ports we have so far,
since there are plenty of bits left in the bit array. The problem is
that legacy applications may not be coded with knowledge of these bits,
and I'm not sure how they will react in the presence of additional
bits. I'm inclined to just go ahead and add new port definitions
anyway, and file bugs against applications that break as a result.
Does anyone have any additional suggestions?
If the ability to query or change port settings (at least with values
that reflect actual hardware settings) is reserved for control
applications, then perhaps this limitation will go away -- see point 6
below.
2) Expression of additional kinds of volume controls and Sun APIs. If
an application, such as sdtaudiocontrol, uses the Sun APIs to manage
levels of a "foreign" (e.g. OSS) application, it may not be able to
control all of the virtual levels associated with the application.
(Because Sun's rather simplistic API consists solely of a single gain
and balance.) I think that as part of our implementation, we will
convert the main control applications to the full featured OSS API, and
just punt on this problem -- control applications using Sun audio(7i)
won't be able to adjust surround levels, etc.
3) An alternate option would be for us to expand the ioctls for the
legacy Sun API to include support for these other channels. In fact,
for *playing*, there is no real inherent limitation in the Sun APIs.
The issue comes in the implementation, and in the *control* API. (You
can stream as many channels as you want with the Sun API, but you can't
adjust levels for more than 2 channels.) I'm inclined for now to punt
on this, and push applications towards OSS (wants we are ready to bless
OSS as a committed API.)
4) Multiple inputs. There is no real restriction on the number of
inputs that can be active at a time. E.g. you could be mixing a CD and
a microphone input at the same time (think Karaoke). Sun APIs don't
support this. Again, this isn't a problem for regular apps, because
they don't expect to be able to do this -- but control apps only. I'm
again thinking that control apps should be written to the OSS API.
5) Separation of monitor sources and record sources. Many chips (most?)
allow the set of monitor devices to be selected independently of the set
of record devices. So you could be playing music from a CD, but only
'recording' the input from a headset mic being used for VoIP. Sun can't
express this. Again, only an issue for control apps.
6) This seems to be leading us toward the road that we should, once OSS
APIs become available everywhere, deprecate the use of Sun audio for
mixer and control applications.
7) Potential power(9e) regression for legacy device drivers. Right now,
for some legacy SPARC devices (e.g. audiocs, audiots), our work to
convert these devices to "Boomer native" devices has been done, but we
have not done the work to make these devices fully support power(9e).
(There are some challenges here, because the pm interfaces are not safe
to call in streams context, an area that was a latent bug in some of the
audio drivers!) While we could tackle this, we believe there is little
merit in the effort involved -- the amount of actual power saved is
probably quite small, particularly relative to the power consumed by the
CPUs on these systems. We'd prefer to skip this effort, and take the
small regression. This might take some of these systems out of
energystar v2 compliance, but as we believe that these systems are not
in use in applications that are sensitive to power consumption, and as
they are no longer marketed, we don't believe this should be a serious
problem for anyone. If anyone feels strongly otherwise, we'd like to
know. (Note that we do support platform power management via
suspend-to-disk on the platforms that are capable of it.)
Thanks.
-- Garrett
More information about the opensolaris-arc
mailing list