SB16 & Geode Issues/Driver availability....

Well, after doing quite a bit of testing with the new audio drivers
for 6.1, we have found some interesting issues with regards to
the SB16 and Geode/MediaGX support.

Generally speaking, the new drivers for old ISA cards do not seem
to work nearly as good as the old ALSA based drivers used to.

First off, when ISA DMA is enabled in the driver, the entire system
almost grinds to a halt when we play anything. If we play an Mpeg1
video clip with a 44.1Khz audio stream that played fine under 6.0,
the video starts totally falling apart and being unable to keep up under
6.1 with the new audio driver. If we start the sb audio driver without
DMA enabled, it still plays both video & audio quite nicely – but loses
the ability to maintain lipsync between the streams. It seems like the
legacy DMA subsystem is handled a bit differently under 6.1 but
I’m not sure if the difference is at the kernel and/or Dinkum level or
strictly in the new audio drivers.

Secondly, under 6.0, if we attempted to play a stream that was at
48Khz and the sound cards physical hardware only supported 44.1Khz
(i.e. like the SB16 and the Geode) then either the driver or PhPlay would
automatically subsample to (I assume) 24Khz and go ahead and allow the
audio stream to playback. Under 6.1, it simply returns and error message
and gives up. Once again, I don’t know if this is a difference in the new
version of PhPlay or in the new audio drivers themselves.

I understand that ISA is quickly dieing off, but these are both major
headaches for Geode based platforms – which are pretty well limited
to using the SB16 ISA drivers under RTP. And there are a LOT of
QNX based Geode platforms out there…and I’m sure we would all
like to do everything possible to help there be even more of them!

Is there any hope of either (a) this being looked at a bit up there or
(b) getting the SB16 ISA driver source released for the DDK?

Thanks!


Michael Burkey (mailto:Michael.Burkey@Nexwarecorp.com)
Nexware Corp. (http://www.nexwarecorp.com)
Software Engineer
865.546.9998 x201

I noticed such effects with another SB16-type board on Pentium system.
Sound is always chopped if you play video.

  • igor

“Michael D. Burkey” wrote:

Well, after doing quite a bit of testing with the new audio drivers
for 6.1, we have found some interesting issues with regards to
the SB16 and Geode/MediaGX support.

Generally speaking, the new drivers for old ISA cards do not seem
to work nearly as good as the old ALSA based drivers used to.

First off, when ISA DMA is enabled in the driver, the entire system
almost grinds to a halt when we play anything. If we play an Mpeg1
video clip with a 44.1Khz audio stream that played fine under 6.0,
the video starts totally falling apart and being unable to keep up under
6.1 with the new audio driver. If we start the sb audio driver without
DMA enabled, it still plays both video & audio quite nicely – but loses
the ability to maintain lipsync between the streams. It seems like the
legacy DMA subsystem is handled a bit differently under 6.1 but
I’m not sure if the difference is at the kernel and/or Dinkum level or
strictly in the new audio drivers.

Secondly, under 6.0, if we attempted to play a stream that was at
48Khz and the sound cards physical hardware only supported 44.1Khz
(i.e. like the SB16 and the Geode) then either the driver or PhPlay would
automatically subsample to (I assume) 24Khz and go ahead and allow the
audio stream to playback. Under 6.1, it simply returns and error message
and gives up. Once again, I don’t know if this is a difference in the new
version of PhPlay or in the new audio drivers themselves.

I understand that ISA is quickly dieing off, but these are both major
headaches for Geode based platforms – which are pretty well limited
to using the SB16 ISA drivers under RTP. And there are a LOT of
QNX based Geode platforms out there…and I’m sure we would all
like to do everything possible to help there be even more of them!

Is there any hope of either (a) this being looked at a bit up there or
(b) getting the SB16 ISA driver source released for the DDK?

Thanks!


Michael Burkey (mailto:> Michael.Burkey@Nexwarecorp.com> )
Nexware Corp. (> http://www.nexwarecorp.com> )
Software Engineer
865.546.9998 x201

One potential solution to some of the SB16 ISA “emulation” that goes
on with the Geode/MediaGX platforms would be to disable to built
in VSAII layer on the Geode that emulates the SB16 and then run
an AC97 style codec driver directly from QNX.

This might actually be preferable anyway as it would give full access
to the mixer controls of the LM4548 or AD1819B’s that are commonly
used on this platform. And as the SB16 emulation on the Geode is
software based anyway (SMI), it shouldn’t really be any more CPU
intensive. Actually it might be less CPU intensive (or at least intrusive),
because it would then be a prioritizable task/driver rather than an
completely non-maskable SMI interrupt that overrides everything.

I am sure the DDK’s AC97 stuff would be a good starting point but there
may be quite a bit of monkey business involved to get the VSAII layer to
shutdown gracefully (i.e. without having to resort to BIOS modification).
I have already done this myself in the past (via a hack) in order to gain
access to the extra mixer settings in the codec directly. However, the amount
of effort required to avoid fouling up the VSA layer was decidedly non-trivial
(and I was never able to find a way to just totally shut it off via software).

Does anyone out there (either at QNX or elsewhere) have any real ideas
on how to start approaching this?

Or on whether or not this is even a reasonable idea?

Of couse, if the SB16 ISA drivers were fixed this would not be that
much of a priority…


Michael Burkey (mailto:Michael.Burkey@Nexwarecorp.com)
Nexware Corp. (http://www.nexwarecorp.com)
Software Engineer
865.546.9998 x201