At Tue, 18 Sep 2007 06:24:04 +0200, Rene Herman wrote:
On 09/18/2007 03:57 AM, Rene Herman wrote:
Oh. This discrepency is caused by the fact that I work against the kernel and only check ALSA HG every once in a while. Too infrequently it seems as the _interruptible was recently (and yes, wrongly) removed from ALSA:
http://hg.alsa-project.org/alsa-kernel/rev/1768363a5f1e
It's still there in 2.6.22.x which I run. The setup has been changed around in the meantime again anyway in this case but I guess I'll make a point of working against HG more directly.
And here's the others in that changeset, against current hg. As far as I'm aware, the only purpose of the _interruptible versions is bailing out when signal_pending(current) and if we're simply looping around without checking anyway, they might as well be schedule_timeout_uninterruptible(), also known as msleep().
Given that delaying for a jiffy generally doesn't make a great deal of sense given variable frequency, they might actually want to be msleep(1) directly but I didn't do that.
This also adds a barrier() to one of the /core/seq/seq_instr.c ones which as far as I can see is needed to keep the compiler from optimising the check away. For the other instances there, the spin_lock functions serve as a barrier already I believe but please check me on that -- I'm inexperienced at that level.
The wavefront_synth one was strange. It was originally (when still using _interruptible) in the absence of signals basically just doing a single:
msleep(jiffies_to_msecs(timeout));
with the dev->irq_ok check only happening when woken up by a signal which I assume was not so much intended. This now just does a sleeping loop.
Otherwise,
Signed-off-by: Rene Herman rene.herman@gmail.com
Let's leave seq_instr as is. It's a never-working concept. The only user is OPL3, and this should be rewritten using hwdep. Then we'll get rid of this whole code chunk.
The other changes look good to me. But, honestly, I couldn't follow all the pathes you sent in the right order. So, could you guys make a series of patches to be applied to HG tree? That'll be really helpful for review, too.
Thanks,
Takashi