From: Geert U. <ge...@li...> - 2000-10-05 17:12:23
|
On Tue, 26 Sep 2000, Geert Uytterhoeven wrote: > On Mon, 25 Sep 2000, Alan Buxey wrote: > > PS on the sound subject, I'm locating the info for how to get the sound to > > operate at 44KHz instead of the standard 22 of AGA (bootstrap line > > required) but cant locate it > > You need to program htotal for a 31 kHz mode. > > Once I was working on a patch for that, but I haven't finished it yet. I'll > dig for it when I find some time... My original idea was to request_mem_region() the Denise/Lisa registers in dmasound_paula_init() and program a 31 kHz mode when amifb is not active. However, then I came up with this simpler solution: just setup a 31 kHz mode in amiga_init_sound(). If amifb is used, it will be initialized later and override the mode. If it's not used, you keep on having 56 kHz sound (and no video output on the Amiga graphics output). There's one disadvantage of this method: in the rare occasion you have a modular amifb and rmmod amifb, you cannot get the high quality sound back. With the original idea, you could (rmmod and) insmod dmasound_paula. What do you prefer? Oh, and anybody who'd like to test this patch (no testing done, not even a compile test)? Preferably someone who has a monitor (with insurance :-) on the Amiga graphics output as well... Good luck! --- linux-2.4.0-test9/arch/m68k/amiga/amisound.c Fri Jul 28 21:19:00 2000 +++ geert-31kHz-2.4.0-test9/arch/m68k/amiga/amisound.c Thu Oct 5 17:18:26 2000 @@ -51,6 +51,18 @@ /* setup divisor */ clock_constant = (amiga_colorclock+DATA_SIZE/2)/DATA_SIZE; + + if (amiga_chipset == CS_ECS || amiga_chipset == CS_AGA) { + /* program Denise/Lisa for a higher maximum play rate */ + /* (may be overridden by amifb later) */ + custom.htotal = 113; /* 31 kHz */ + custom.vtotal = 223; /* 70 Hz */ + custom.beamcon0 = 0x4390; /* HARDDIS, VAR{BEAM,VSY,HSY,CSY}EN */ + /* suspend the monitor */ + custom.hsstrt = custom.hsstop = 116; + custom.vsstrt = custom.vsstop = 226; + amiga_audio_min_period = 57; + } } static void nosound( unsigned long ignored ); Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li... 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 |