Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Ctirad Fertr <c.fertr@gmail.com>
To: alsa-devel@alsa-project.org
Subject: Re: emu10k1, how to setup DMA for 24bit playback?
Date: Sat, 23 Feb 2008 14:46:38 +0100	[thread overview]
Message-ID: <200802231446.39988.c.fertr@gmail.com> (raw)
In-Reply-To: <75b66ecd0802221705i77c753fdh7c30d7f7f30e7e05@mail.gmail.com>

Saturday 23 of February 2008 02:05:34 Lee Revell napsal(a):

Hello Lee,

thanks for your reply.

> I did quite a bit of work on this driver a few years back, among other
> things I implemented the multichannel playback support (the hw:0,3
> device).

Yes, I know. This code works well with e-mu cards as well, although it is 
limited to 16bit/48kHz. I'd like to improve this as well, but first I have to 
finish basic stereo 24bit playback via hw:0,0. 

> Do you have a web page with details on your work, or can you explain
> exactly what you've done so far and how it fails?  Preferably in patch
> form...

Well, if you look at emufx.c around line 1566, you will see how the 24 bit 
capture works. The data path (for newer e-mu cards as 1616(M) or 1212M V2) is 
following:

physical inputs (24bit) -> FPGA (internal routing) -> emu10k via A3_EMU32IN() 
(still 24bit padded to 32bit ) -> DSP code converts 32bit sample to 2 16bit 
via snd_emu10k1_audigy_dsp_convert_32_to_2x16() and feeds A_FXBUS2(x) and 
A_FXBUS(x+1) with the resulting halfs -> DMA -> PC side joins these two 16bit 
halfs into one S32_LE sample and voila, we have 24bit capture.

The driver, however, still lacks 24bit playback, and I'm trying to change 
that.  I have working DSP routine which converts two 16bit values from 
A_FXBUS(x) and A_FXBUS(x+1) into 32bit value for  A3_EMU32OUT(), where the 
FPGA and physical output are connected. 

So all I need is to send 32bit sample divided to two 16bit halfs via two 
A_FXBUS() into emu10k DSP. Unfortunatelly, simple changing the sample format 
to S32_LE did not the trick :( Any ideas? 

> How are you getting your hardware info? 

Just from the alsa emu10k source code and some hit and miss experiments. 
Unfortunatelly, there are no emu10k datasheets available :(

Ctirad

      reply	other threads:[~2008-02-23 13:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-20 23:09 emu10k1, how to setup DMA for 24bit playback? Ctirad Fertr
2008-02-23  1:05 ` Lee Revell
2008-02-23 13:46   ` Ctirad Fertr [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200802231446.39988.c.fertr@gmail.com \
    --to=c.fertr@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox