linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Re: dmasound split
@ 2000-03-21 14:24 Iain Sandoe
  0 siblings, 0 replies; 18+ messages in thread
From: Iain Sandoe @ 2000-03-21 14:24 UTC (permalink / raw)
  To: geert; +Cc: linuxppc-dev


Hi Geert,

dmasound split (update).

G3/Minitower (beige, Machine ID 510, F2 rev) OK
G3/Lombard (Machine ID 406) OK

9600/233 (Machine ID 67)  nope... :-(

/dev/sndstat appears ok
but (I *think* after the first time through which might be OK)
 cat somefile.wav >/dev/dsp breaks up to give a distorted (and apparently
buffer-repeating) mess.
<CTL-C> recovers (and no crash) - but it is broken from then on ... but I
can't be more informative as present..

Iain.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 18+ messages in thread
[parent not found: <Pine.LNX.4.05.10003152052130.6999-100000@callisto.of.borg>]
* dmasound split
@ 2000-03-07 20:50 Geert Uytterhoeven
  2000-03-07 21:49 ` Geert Uytterhoeven
  2000-03-24 19:16 ` Richard Zidlicky
  0 siblings, 2 replies; 18+ messages in thread
From: Geert Uytterhoeven @ 2000-03-07 20:50 UTC (permalink / raw)
  To: Linux/m68k, Linux/PPC for APUS, Linux/PPC Development


This is my first test release for splitting the DMA sound driver in different
parts:

  - dmasound_core: machine independent code
  - dmasound_atari: Atari TT and Falcon code (does it make sense to split this
		    further?)
  - dmasound_awacs: PowerMac `Awacs' code
  - dmasound_paula: Amiga `Paula' code

I also cleant up the code a lot, and made the following changes (let's hope I
don't forget to mention some):

  - Add more machine specific function pointers to the MACHINE struct.
  - Merge the duplicated code for write_sq and read_sq as much as possible.
  - I use lots of #defines to `do {} while (0)' to avoid having too many
    occurrencies of #ifdef HAS_READ_SOUND (for recording).
  - Generate the copy-and-convert routines for Amiga using #defines. As a
    result we now have different routines for ulaw and alaw, which expands the
    object code a bit, but it's less error-prone.
  - Use resource management on Amiga.

The total source code did grow a bit, though. Mainly due to duplicated comments
and include statements in the modules.

Note that this is meant for 2.3.x. I haven't done 2.2.x since a long time.


Tested parts:

  - I only tested the driver for Amiga, as a loadable module. It worked even
    better than the old driver, since it plays all frames now (don't ask me
    why). `cat file > /dev/audio' still hangs at the end, though (killable by
    CTRL-C). (cfr. my previous mail to the linux-m68k list).


Known problems:

  - You can still rmmod the dmasound_{atari,awacs,paula} module while sound is
    playing, causing a crash.


To do:

  - Test it on other platforms.
  - Test recording on PowerMac.
  - Fix the locking issues.
  - Use module_{init,exit}(), conforming to the latest fashion.
  - Clean up, inline more small functions.
  - Disable heartbeat when playing sound on Amiga (heartbeat influences the
    low-pass filter and thus causes distortion).
  - Provide a small module to play with htotal when amifb is not used on Amiga
    (The DMA controller assigns DMA slots to the audio controller per video
    scanline, hence increasing the horizontal sync rate allows higher playback
    rates. Yes, that's what we call `integrated multimedia' :-).


Download:

    http://home.tvd.be/cr26864/Patches/dmasound.readme
    http://home.tvd.be/cr26864/Patches/dmasound.tar.gz


Instructions:

  - Extract dmasound.tar.gz

  - Delete obsolete files:

      rm drivers/sound/dmasound.[ch]

  - Copy new files:

      cp dmasound.h dmasound_* drivers/sound

  - Apply the patch:

      patch -p1 < dmasound.diff

  - Remove all lines containing `DMASOUND' from .config

  - Run `make oldconfig' and compile and install the modules

  - Make sure to remove the old dmasound.o from /lib/modules/<version>/misc/
    if you intend to use `modprobe' instead of `insmod', since `modprobe' may
    decide to load the old module also!

Good luck!! Thanks for your comments and test results!

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2000-03-29 19:41 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-03-21 14:24 dmasound split Iain Sandoe
     [not found] <Pine.LNX.4.05.10003152052130.6999-100000@callisto.of.borg>
2000-03-15 20:15 ` Michael Schmitz
  -- strict thread matches above, loose matches on Subject: below --
2000-03-07 20:50 Geert Uytterhoeven
2000-03-07 21:49 ` Geert Uytterhoeven
2000-03-14  8:14   ` Geert Uytterhoeven
2000-03-14  9:55     ` Michael Schmitz
2000-03-14 10:10       ` Geert Uytterhoeven
2000-03-14 10:17         ` Michael Schmitz
2000-03-14 11:37           ` Jes Sorensen
2000-03-15 18:39     ` Tom Rini
2000-03-15 23:46       ` David A. Gatwood
2000-03-19  9:46     ` Michel Lanners
2000-03-20  9:47       ` Michael Schmitz
2000-03-20 10:09         ` Geert Uytterhoeven
2000-03-20 10:16           ` Michael Schmitz
2000-03-24 19:16 ` Richard Zidlicky
2000-03-26 20:30   ` Geert Uytterhoeven
2000-03-29 19:41     ` Geert Uytterhoeven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).