At Mon, 2 Jul 2007 12:27:58 +0100, TJ wrote:
Hi,
It's been a while since I last posted something. Here is the latest version of my code. It is somewhat of a mess at the moment, but I plan to tidy it all up when it works better, any // comments are not permanent features. I have been using trial and error to find why it play too fast.
I am glad to say that it does play sound correctly, bar one little issue that has me stuck at the moment, it plays too fast (for any sample frequency). Also how fast appears to depend on the player (tried aplay and ogg123).
I have cc the ALSA dev too in the hope that between the two lists someone may spot something. Please can anyone who replies cc me.
The patch was built against (applies to) linux-2.6.19.7 from linux-mips.org. It'll probably work on other versions.
The patch includes old typdefed structs which were already removed from the upstream, such as, snd_card_t. Please replace them appropriately. You can find the replacement in include/sound/typedefs.h (in the old kernel tree). Similarly, I'd recommend to avoid typedefs in your own code, too. People don't like it :)
Other things I noticed through a quick glance:
- Follow the standard coding style, e.g. 80 chars in a line, don't put if-block in a single line, etc. - Avoid non-ASCII letters, especially outside the comments - You don't need *_irqsave() in get/put callbacks of the control API. It's always schedulable, so, spin_lock_irq() suffices. - ad1843_lock could be better implemented with mutex if you have long delays inside the spinlock (except for the calls from irq handler) - please remove uneeded debug printks. If they are useful, keep it in another macro form.
Could you fix these and repost?
thanks,
Takashi