[alsa-devel] [RFC] alsa-kernel clean-ups
Takashi Iwai
tiwai at suse.de
Thu Dec 20 15:55:56 CET 2007
Hi,
ALSA kernel tree has lots of unused and rotten codes. I'd like to
clean up this. Here we go...
1. Indirect control element access
This is what I already suggested. This hasn't been used (we have no
proper API in alsa-lib), and 32/64bit wrapper doesn't work at all.
Also, the idea to copy such a big data area via ioctl is bad. If we
need a big matrix mixer, let make each matrix element accessible
individually. Copying the whole matrix at each time isn't
efficient.
2. PCM xfer_align parameter
This sw_params parameter has never been used in a sane manner, and
no one understands what this does exactly. The current
implementation looks also buggy because it allows write of shorter
size than xfer_align. So, if you do partial writes, the write isn't
actually aligned at all.
Removing this parameter will make some pcm_lib_* code more readable
(and less buggy).
3. PCM sleep_min and tick
The "tick" in PCM is set (again) via sw_params. And, nobody uses
this feature at all except for a command line option of aplay.
(This is literally "nobody", as I checked alsa-lib API calls in all
programs in some major distros.)
Above all, if we need finer wake-ups for the position update, it's
basically an issue that the driver should solve, not tuned by each
application.
4. sound/driver.h
This header file exists only for some hacks to adapt alsa-driver
tree. It's useless for building in the kernel. Let's move a few
lines in it to sound/core.h and remove it.
For building the modules on alsa-driver external tree, we can simply
add
#include "adriver.h"
to each build stub (alsa-driver/*/*.c) before inclusion of
alsa-kernel codes.
I'll post some patches to clean the above thing up in the following
posts. Please speak up if you have objections.
Takashi
More information about the Alsa-devel
mailing list