mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Marcin Dalecki <martin@dalecki.de>
To: Lee Revell <rlrevell@joe-job.com>
Cc: Linux Kernel list <linux-kernel@vger.kernel.org>,
	Takashi Iwai <tiwai@suse.de>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: Mac mini sound woes
Date: Tue, 29 Mar 2005 09:47:35 +0200	[thread overview]
Message-ID: <4a7a16914e8d838e501b78b5be801eca@dalecki.de> (raw)
In-Reply-To: <1112067369.19014.24.camel@mindpipe>


On 2005-03-29, at 05:36, Lee Revell wrote:

> On Mon, 2005-03-28 at 09:42 +1000, Benjamin Herrenschmidt wrote:
>> It seems that Apple's driver has an in-kernel framework for doing 
>> volume
>> control, mixing, and other horrors right in the kernel, in temporary
>> buffers, just before they get DMA'ed (gack !)
>>
>> I want to avoid something like that. How "friendly" would Alsa be to
>> drivers that don't have any HW volume control capability ? Does 
>> typical
>> userland libraries provide software processing volume control ? Do you
>> suggest I just don't do any control ? Or should I implement a double
>> buffer scheme with software gain as well in the kernel driver ?
>
> alsa-lib handles both mixing (dmix plugin) and volume control (softvol
> plugin) in software for codecs like this that don't do it in hardware.
> Since Windows does mixing and volume control in the kernel (ugh) it's
> increasingly common to find devices that cannot do these.  You don't
> need to handle it in the driver at all.
>
> dmix has been around for a while but softvol plugin is very new, you
> will need ALSA CVS or the upcoming 1.0.9 release.

Instead of the lame claims on how ugly it is to do hardware mixing in
kernel space the ALSA fans should ask them self the following questions:

1. Where do you have true "real-time" under linux? Kernel or user space?
2. Where would you put the firmware for an DSP? Far away or as near to 
hardware as possible?
3. How do you synchronize devices on non real time system?
4. Why the hell do we have whole network protocols inside the kernel? 
Couldn't those
be perfectly handled in user space? Or maybe there are good reasons?
5. Should a driver just basically map the hardware to the user space or 
shouldn't
it perhaps provide abstraction from the actual hardware implementing it?
6. Is there really a conceptual difference between a DSP+CPU+driver and 
just
looking at the MMX IP core of the CPU as an DSP?


  parent reply	other threads:[~2005-03-29  8:00 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-27 23:42 Benjamin Herrenschmidt
2005-03-28  1:42 ` Andrea Arcangeli
2005-03-28  2:34   ` Benjamin Herrenschmidt
2005-03-29  3:36 ` Lee Revell
2005-03-29  3:41   ` Benjamin Herrenschmidt
2005-03-29  7:47   ` Marcin Dalecki [this message]
2005-03-29  8:18     ` Benjamin Herrenschmidt
2005-03-29  9:22       ` Marcin Dalecki
2005-03-29 10:22         ` Takashi Iwai
2005-03-30  1:45           ` Marcin Dalecki
2005-03-30  2:08             ` Lee Revell
2005-03-30  4:14             ` Lee Revell
2005-03-30  5:15             ` Steven Rostedt
2005-03-29 22:13         ` Lee Revell
2005-03-29 23:25           ` Chris Friesen
2005-03-29 23:39             ` Benjamin Herrenschmidt
2005-03-30  1:48               ` Marcin Dalecki
2005-03-30  5:42                 ` Lee Revell
2005-03-30  1:45           ` Marcin Dalecki
2005-03-29 10:02   ` Takashi Iwai
2005-03-29 11:04     ` Benjamin Herrenschmidt
2005-03-29 12:12       ` Takashi Iwai
2005-03-29 19:05       ` Lee Revell
2005-03-29 19:31         ` Takashi Iwai
2005-03-29 20:11           ` Lee Revell
2005-03-29 22:03           ` Benjamin Herrenschmidt

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=4a7a16914e8d838e501b78b5be801eca@dalecki.de \
    --to=martin@dalecki.de \
    --cc=benh@kernel.crashing.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rlrevell@joe-job.com \
    --cc=tiwai@suse.de \
    /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

all inboxes | Powered by JetHome®