You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(19) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(13) |
Feb
(12) |
Mar
(14) |
Apr
(3) |
May
(25) |
Jun
|
Jul
(9) |
Aug
|
Sep
(47) |
Oct
(24) |
Nov
(23) |
Dec
(58) |
2002 |
Jan
(87) |
Feb
(54) |
Mar
(38) |
Apr
(6) |
May
(11) |
Jun
(7) |
Jul
(13) |
Aug
(39) |
Sep
(58) |
Oct
(20) |
Nov
(63) |
Dec
(46) |
2003 |
Jan
|
Feb
|
Mar
(8) |
Apr
(52) |
May
(21) |
Jun
(2) |
Jul
(10) |
Aug
|
Sep
(6) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2004 |
Jan
|
Feb
(2) |
Mar
|
Apr
(1) |
May
(5) |
Jun
(46) |
Jul
(15) |
Aug
(1) |
Sep
(12) |
Oct
(3) |
Nov
(4) |
Dec
|
2005 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(6) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(5) |
Aug
(2) |
Sep
(2) |
Oct
(3) |
Nov
(7) |
Dec
(2) |
2007 |
Jan
(8) |
Feb
(16) |
Mar
(17) |
Apr
(16) |
May
(21) |
Jun
(17) |
Jul
(40) |
Aug
(62) |
Sep
(30) |
Oct
(14) |
Nov
(7) |
Dec
(9) |
2008 |
Jan
(4) |
Feb
(7) |
Mar
(36) |
Apr
(22) |
May
(21) |
Jun
(9) |
Jul
(35) |
Aug
(17) |
Sep
(21) |
Oct
(24) |
Nov
(61) |
Dec
(85) |
2009 |
Jan
(51) |
Feb
(36) |
Mar
(60) |
Apr
(77) |
May
(154) |
Jun
(118) |
Jul
(86) |
Aug
(30) |
Sep
(20) |
Oct
(31) |
Nov
(10) |
Dec
(25) |
2010 |
Jan
(15) |
Feb
(17) |
Mar
(38) |
Apr
(59) |
May
(84) |
Jun
(63) |
Jul
(39) |
Aug
(43) |
Sep
(12) |
Oct
(6) |
Nov
(2) |
Dec
(2) |
2011 |
Jan
(2) |
Feb
|
Mar
(3) |
Apr
(1) |
May
|
Jun
(3) |
Jul
(2) |
Aug
(1) |
Sep
(3) |
Oct
(1) |
Nov
(4) |
Dec
(1) |
2012 |
Jan
(3) |
Feb
(1) |
Mar
(4) |
Apr
|
May
(1) |
Jun
(3) |
Jul
(1) |
Aug
(2) |
Sep
(3) |
Oct
(1) |
Nov
(1) |
Dec
(3) |
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
(7) |
Oct
(8) |
Nov
(1) |
Dec
(9) |
2014 |
Jan
(8) |
Feb
(4) |
Mar
(3) |
Apr
(3) |
May
(7) |
Jun
(2) |
Jul
(5) |
Aug
(5) |
Sep
(3) |
Oct
(11) |
Nov
(5) |
Dec
(6) |
2015 |
Jan
(2) |
Feb
(2) |
Mar
(2) |
Apr
(5) |
May
(3) |
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(1) |
2016 |
Jan
(1) |
Feb
|
Mar
(4) |
Apr
(3) |
May
(7) |
Jun
(2) |
Jul
(1) |
Aug
(3) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
(3) |
2017 |
Jan
|
Feb
(1) |
Mar
(2) |
Apr
(3) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Adrian M. <ad...@mc...> - 2002-01-18 00:10:25
|
Please find below replacement (and better) patch for the sound driver. (NB: This is a patch against the code in the linuxdc cvs). A copy of the patched file - but named aica.c is also available at http://www.mcmen.demon.co.uk/linuxdc/aica/aica.c This incorporates previous patch: * eliminates dead code * streamlines existing code And incorporates further small tuning changes as well as 'proper' SNDCTL_DSP_POST and SNDCTL_DSP_SYNC ioctls. A further note on testing - I just can't get madplay to play anything well - both mpg123 and mplayer will handle high demand sound files perfectly or near perfectly, but madplay plays sound in poor quality and with lots of crackles no matter what sort of MP3 it is playing. Adrian PS: Hope I've got the patch format right this time. --- main.c Thu Jan 17 23:56:43 2002 +++ aica.c Thu Jan 17 23:57:07 2002 @@ -177,6 +177,7 @@ { uint32_t regval = readl(0xa0702c00); regval &= ~1; + spu_write_wait(); writel(regval, 0xa0702c00); } @@ -219,10 +220,8 @@ /* Start the SPU again */ spu_enable(); - // Wait one second - int j = jiffies + HZ; - while (jiffies < j) - schedule(); + // Wait a little + schedule(); @@ -270,24 +269,6 @@ static aica_dev_t *aica_dev_list; -static int aica_lock_channel(int channel) -{ - //channels exist in blocks of 32 32-bit registers - //beginning at 0xa0700000 for the SH4 - //...but there are only 64 of them! - if ((channel > 63) || (channel < 0)) { - DEBGM - ("Attempted to open a sound channel which does not exist\n"); - return -EINVAL; - } - return 0; -} - -static int aica_unlock_channel(int channel) -{ - - return 0; -} static struct aica_dev *aica_walk_devlist(void) { @@ -327,13 +308,10 @@ if (down_interruptible(&dsp_mutex)) return -ERESTARTSYS; + //Lock channels 1 & 2 + request_mem_region(0xa0700000, 0x100, "AICA Channels"); + - int err = aica_lock_channel(devc->channel); - if (err != 0) { - MOD_DEC_USE_COUNT; - up(&dsp_mutex); - return err; //failed - } //sample type - based on which device has been opened chanh = kmalloc(sizeof(aica_channel), GFP_KERNEL); if (chanh == NULL) @@ -343,9 +321,6 @@ if ((minor & 0xF) == SND_DEV_DSP) { chanh->sfmt = SM_8BIT; //AICA format devc->sformat = AFMT_U8; //OSS default format for this device - } else if ((minor & 0xF) == SND_DEV_AUDIO) { - chanh->sfmt = SM_8BIT; - devc->sformat = AFMT_MU_LAW; } else if ((minor & 0xF) == SND_DEV_DSP16) { chanh->sfmt = SM_16BIT; devc->sformat = AFMT_S16_LE; @@ -353,7 +328,7 @@ //total failure! DEBGM("Attempting to open an unsupported device file\n"); //unlock channel - aica_unlock_channel(devc->channel); + release_mem_region(0xa0700000, 0x100); up(&dsp_mutex); MOD_DEC_USE_COUNT; return -EINVAL; @@ -408,11 +383,13 @@ for (i = 0; i < (HZ * 2); i++) { - - interruptible_sleep_on_timeout(&(devc->open_wait), - 1); if (chanh->freq < 11000) - spu_write_wait(); + interruptible_sleep_on_timeout(& + (devc-> + open_wait), + 1); + + spu_write_wait(); playpoint = readl(0xa0810004 + 4); if ((playpoint * samplelength) > currentpoint) break; @@ -434,8 +411,7 @@ BUFFERL = NULL; BUFFERR = NULL; kfree(chanh); - if (devc) - aica_unlock_channel(devc->channel); + release_mem_region(0xa0700000, 0x100); MOD_DEC_USE_COUNT; total_count = 0; @@ -447,27 +423,32 @@ { //second channel has largely the same attributes as first + int z, y, x, w; *count_out = *count / 2; - BUFFER2 = kmalloc(*count_out, GFP_KERNEL); + y = *count_out; //only need to read this once + BUFFER2 = kmalloc(y, GFP_KERNEL); if (BUFFER2 == NULL) return -1; - char *BUFFER3 = kmalloc(*count_out, GFP_KERNEL); + char *BUFFER3 = kmalloc(y, GFP_KERNEL); if (BUFFER3 == NULL) return -1; - int z; + if (samplelength == 1) { - for (z = 0; z < *count_out; z++) { - BUFFER3[z] = BUFFER[z * 2]; - BUFFER2[z] = BUFFER[z * 2 + 1]; + for (z = 0; z < y; z++) { + x = z * 2; + BUFFER3[z] = BUFFER[x]; + BUFFER2[z] = BUFFER[x + 1]; } } else { - - for (z = 0; z < *count_out / samplelength; z++) { - BUFFER3[z * 2] = BUFFER[z * 4]; - BUFFER3[z * 2 + 1] = BUFFER[z * 4 + 1]; - BUFFER2[z * 2] = BUFFER[z * 4 + 2]; - BUFFER2[z * 2 + 1] = BUFFER[z * 4 + 3]; + y = y / samplelength; + for (z = 0; z < y; z++) { + x = z * 2; + w = z * 4; + BUFFER3[x] = BUFFER[w]; + BUFFER3[x + 1] = BUFFER[w + 1]; + BUFFER2[x] = BUFFER[w + 2]; + BUFFER2[x + 1] = BUFFER[w + 3]; } } @@ -477,41 +458,34 @@ } -inline static int aica_audio_tidy_buffers(aica_dev_t * devc, - int *count_out, int *count) +inline static int aica_audio_tidy_buffers(aica_dev_t * devc) { - - //about to overwrite a playing buffer? int playpoint; - do { - if (chanh->freq < 15000) + if (chanh->freq < 23000) interruptible_sleep_on_timeout(&(devc->open_wait), - 5); + 1); spu_write_wait(); playpoint = readl(0xa0810004 + 4); - } while (((playpoint * samplelength) > currentpoint) && ((playpoint * samplelength) < (currentpoint + total_count))); - - //writing past end of the buffer? - if ((currentpoint + total_count) > 0x8000) { currentpoint = 0; - //check again do { + if (chanh->freq < 23000) + interruptible_sleep_on_timeout(& + (devc-> + open_wait), + 1); spu_write_wait(); playpoint = readl(0xa0810004 + 4); } while ((playpoint * samplelength) <= total_count); } - - - return 0; } @@ -524,53 +498,44 @@ aica_dev_t *devc = (aica_dev_t *) (file->private_data); stereo = chanh->flags & 1; - BUFFER = kmalloc(count, GFP_KERNEL); - copy_from_user(BUFFER, buffer, count); int count_out = count; //check for any format changes needed samplelength = 1; if (chanh->sfmt == SM_16BIT) samplelength = 2; - switch (devc->sformat) { - case AFMT_U8: + else if (devc->sformat == AFMT_U8) convert_u8tos8(BUFFER, count); - break; - } //process stereo if required if (stereo) { if (aica_audio_process_stereo(&count_out, &count) != 0) return -1; + BUFFERR = BUFFER2; } - total_count = count_out; BUFFERL = BUFFER; BUFFER = NULL; - if (stereo) - BUFFERR = BUFFER2; BUFFER2 = NULL; - if (devc->last_write_length > 0) { - aica_audio_tidy_buffers(devc, &count_out, &count); + aica_audio_tidy_buffers(devc); } - - spu_memload(0x11000 + currentpoint, BUFFERL, total_count); if (stereo) spu_memload(0x21000 + currentpoint, BUFFERR, total_count); + if (BUFFERR) + kfree(BUFFERR); + kfree(BUFFERL); + BUFFERL = NULL; + BUFFERR = NULL; + currentpoint += total_count; if (devc->last_write_length == 0) { chanh->pos = 0; spu_memload(0x10004, (uint8_t *) chanh, sizeof(aica_channel)); chn_start(); } - currentpoint += total_count; devc->last_write_length = total_count; //store the value - kfree(BUFFERL); - kfree(BUFFERR); - BUFFERL = NULL; - BUFFERR = NULL; total_count = 0; return count; } @@ -590,11 +555,6 @@ case SNDCTL_DSP_SETFMT: get_user(newdata, (int *) arg); switch (newdata) { - case AFMT_MU_LAW: - return -1; //for now - devc->sformat = AFMT_MU_LAW; - chanh->sfmt = SM_8BIT; - break; case AFMT_U8: devc->sformat = AFMT_U8; chanh->sfmt = SM_8BIT; @@ -616,7 +576,7 @@ chanh->sfmt = SM_8BIT; //have set a default format //but should return an error - return -1; + return -ENOTTY; } put_user(devc->sformat, (int *) arg); return 0; @@ -664,7 +624,6 @@ buffer_size = 1 << s; m = 0x7fff; arg = (m << 16) | s; - put_user(0x010f, (int *) arg); return 0; case SNDCTL_DSP_GETODELAY: @@ -697,11 +656,28 @@ copy_to_user((audio_buf_info *) arg, &info, sizeof(info)); return 0; case SNDCTL_DSP_SYNC: - //wait a tick - interruptible_sleep_on_timeout(&(devc->open_wait), 1); - return 0; case SNDCTL_DSP_POST: - //do nothing + //flushes sound buffer + spu_write_wait(); + s = readl(0xa0810004 + 4); + if ((s * samplelength) > currentpoint) { + newdata = + currentpoint + 0x8000 - (s * samplelength); + } else + newdata = currentpoint - (s * samplelength); + //work out delay + newdata = newdata / samplelength; + //in milliseconds + newdata = (newdata * 1000) / chanh->freq; + //sleep that time then kill sound + newdata = (newdata * HZ) / 1000; + interruptible_sleep_on_timeout(&(devc->open_wait), + newdata); + chn_halt(); + //clear memory + spu_memset(0x21000, 0, 0x8000); + spu_memset(0x11000, 0, 0x8000); + currentpoint = 0; return 0; case SNDCTL_DSP_STEREO: get_user(newdata, (int *) arg); @@ -744,11 +720,10 @@ return 0; default: - return -1; + return -ENOTTY; } - return -1; } @@ -808,7 +783,7 @@ return 0; default: - return -1; + return -ENOTTY; } } @@ -823,7 +798,7 @@ static int __init attach_aica(void) { printk - ("AICA audio device driver for Dreamcast Linux - ver 0.1-pre10\n"); + ("AICA audio device driver for Dreamcast Linux - ver 0.1-pre13\n"); //initialise data holder for device aica_dev_t *devc = NULL; sema_init(&dsp_mutex, 1); |
From: Adrian M. <ad...@mc...> - 2002-01-16 08:46:13
|
On Tuesday 15 Jan 2002 10:09 pm, M. R. Brown wrote: > * Adrian McMenamin <ad...@mc...> on Tue, Jan 15, 2002: > > This patch: > > > > * removes some dead bits of code > > * makes a few changes to speed up code execution at the margins > > * improves responsiveness and decreases load on processor in low demand > > situations > > > > I know mrbrown has in mind posting more patches when he returns from > > hibernation. > > For God's Sake man, please use unified diffs (-u) ... this works for `cvs > diff` commands as well ... thanks! Any other convention is GNU and sucks > ... badly. > > M. R. Err...okay. I wondered why may patches didn't look like the ones I have downloaded from elsewhere, but they also seemed to work :-/ Lesson learnt. Adrian |
From: M. R. B. <mr...@0x...> - 2002-01-15 22:09:38
|
* Adrian McMenamin <ad...@mc...> on Tue, Jan 15, 2002: > This patch: >=20 > * removes some dead bits of code > * makes a few changes to speed up code execution at the margins > * improves responsiveness and decreases load on processor in low demand= =20 > situations >=20 > I know mrbrown has in mind posting more patches when he returns from=20 > hibernation. >=20 For God's Sake man, please use unified diffs (-u) ... this works for `cvs diff` commands as well ... thanks! Any other convention is GNU and sucks =2E.. badly. M. R. |
From: Adrian M. <ad...@mc...> - 2002-01-15 21:50:23
|
This patch: * removes some dead bits of code * makes a few changes to speed up code execution at the margins * improves responsiveness and decreases load on processor in low demand situations I know mrbrown has in mind posting more patches when he returns from hibernation. 35c35 < #include "../sound_config.h" --- > #include "sound_config.h" 179a180 > spu_write_wait(); 222,225c223,224 < // Wait one second < int j = jiffies + HZ; < while (jiffies < j) < schedule(); --- > // Wait a little > schedule(); 273,290d271 < static int aica_lock_channel(int channel) < { < //channels exist in blocks of 32 32-bit registers < //beginning at 0xa0700000 for the SH4 < //...but there are only 64 of them! < if ((channel > 63) || (channel < 0)) { < DEBGM < ("Attempted to open a sound channel which does not exist\n"); < return -EINVAL; < } < return 0; < } < < static int aica_unlock_channel(int channel) < { < < return 0; < } 329a311,313 > //Lock channels 1 & 2 > request_mem_region(0xa0700000, 0x100, "AICA Channels"); > 331,336d314 < int err = aica_lock_channel(devc->channel); < if (err != 0) { < MOD_DEC_USE_COUNT; < up(&dsp_mutex); < return err; //failed < } 346,348d323 < } else if ((minor & 0xF) == SND_DEV_AUDIO) { < chanh->sfmt = SM_8BIT; < devc->sformat = AFMT_MU_LAW; 356c331 < aica_unlock_channel(devc->channel); --- > release_mem_region(0xa0700000, 0x100); 437,438c412 < if (devc) < aica_unlock_channel(devc->channel); --- > release_mem_region(0xa0700000, 0x100); 457c431 < int z; --- > int z, y, x, w; 461,462c435,437 < BUFFER3[z] = BUFFER[z * 2]; < BUFFER2[z] = BUFFER[z * 2 + 1]; --- > x = z * 2; > BUFFER3[z] = BUFFER[x]; > BUFFER2[z] = BUFFER[x + 1]; 465,470c440,447 < < for (z = 0; z < *count_out / samplelength; z++) { < BUFFER3[z * 2] = BUFFER[z * 4]; < BUFFER3[z * 2 + 1] = BUFFER[z * 4 + 1]; < BUFFER2[z * 2] = BUFFER[z * 4 + 2]; < BUFFER2[z * 2 + 1] = BUFFER[z * 4 + 3]; --- > y = *count_out / samplelength; > for (z = 0; z < y; z++) { > x = z * 2; > w = z * 4; > BUFFER3[x] = BUFFER[w]; > BUFFER3[x + 1] = BUFFER[w + 1]; > BUFFER2[x] = BUFFER[w + 2]; > BUFFER2[x + 1] = BUFFER[w + 3]; 489c466 < if (chanh->freq < 15000) --- > if (chanh->freq < 23000) 491c468 < 5); --- > 1); 506a484,488 > if (chanh->freq < 23000) > interruptible_sleep_on_timeout(& > (devc-> > open_wait), > 1); 536,540c518,519 < switch (devc->sformat) { < case AFMT_U8: < convert_u8tos8(BUFFER, count); < break; < } --- > else if (devc->sformat == AFMT_U8) convert_u8tos8(BUFFER, count); > 545c524,525 < } --- > BUFFERR = BUFFER2; > } 550,551d529 < if (stereo) < BUFFERR = BUFFER2; 826c804 < ("AICA audio device driver for Dreamcast Linux - ver 0.1-pre10\n"); --- > ("AICA audio device driver for Dreamcast Linux - ver 0.1-pre12\n"); |
From: M. R. B. <mr...@0x...> - 2002-01-15 00:50:12
|
* Michael Proctor-Smith <mpr...@su...> on Mon, Jan 14, 2002: > I have been tring to get ppp working on the Dreamcsat with absolutly no > luck. In fact the kernel from CVS seems to lack Networking at all no mater > how you configure it. I am by no means a kernel hacker but I am a C coder= . I > just have no kernel experiance beond configuring it using menuconfig and > xconfig.=20 >=20 What kernel from CVS? The kernel module isn't used any longer, it's currently there for reference. You should be checking out the linux module, with "-r linux-2_4-branch" to grab the 2.4 version. Once you check out the linux tree you can use the treelink.sh script provided in linux/scripts to symlink it on top of a full Linux 2.4.16 tree. In this case the line would read: $ treelink.sh linux linux-2.4.16 > The other thing is that in order to get 2.4.13-pre2 to build I had to cha= nge > -mno-implicit-fp to -m4-nofpu using gcc-3.0.1. >=20 You shouldn't be using 3.0.1 unpatched anyway, but grab 3.0.3 from ftp.m17n.org:/pub/linux-sh/testing with the latest patchset (3.0.3-2 I belive). M. R. |
From: Adrian M. <ad...@mc...> - 2002-01-13 12:35:10
|
On Saturday 12 Jan 2002 8:34 pm, Adrian McMenamin wrote: > On Friday 11 Jan 2002 8:59 pm, Adrian McMenamin wrote: > > On Friday 11 Jan 2002 6:53 pm, Adrian McMenamin wrote: > > > I know at least one member of this list has done this (though he's not > > > about at the moment). Anybody else managed it and care to talk me > > > through it (as I am struggling at the moment). > > > > Ok, got it to work myself! If anybody wants to port it I'll tell you how > > I have now posted the patch for the MPlayer-0.60 configure file at > > http://www.mcmen.demon.co.uk/linuxdc/patch0 > > Patch the configure file then run: > > CC=sh4-linux-gcc ./configure --target=sh4-linux > > and then make install or whatever > Oops, there was an error here - this will compile, but won't play any video on the DC's framebuffer - please add --enable -fbdev to the above line: CC=sh4-linux-gcc ./configure --target=sh4-linux --enable-fbdev Please note: there is no point in doing any of this unless you've got the sound driver installed. Adrian |
From: Adrian M. <ad...@mc...> - 2002-01-12 20:35:08
|
On Friday 11 Jan 2002 8:59 pm, Adrian McMenamin wrote: > On Friday 11 Jan 2002 6:53 pm, Adrian McMenamin wrote: > > I know at least one member of this list has done this (though he's not > > about at the moment). Anybody else managed it and care to talk me through > > it (as I am struggling at the moment). > > Ok, got it to work myself! If anybody wants to port it I'll tell you how > > I have now posted the patch for the MPlayer-0.60 configure file at http://www.mcmen.demon.co.uk/linuxdc/patch0 Patch the configure file then run: CC=sh4-linux-gcc ./configure --target=sh4-linux and then make install or whatever Adrian |
From: Adrian M. <ad...@mc...> - 2002-01-11 20:58:43
|
On Friday 11 Jan 2002 6:53 pm, Adrian McMenamin wrote: > I know at least one member of this list has done this (though he's not > about at the moment). Anybody else managed it and care to talk me through > it (as I am struggling at the moment). Ok, got it to work myself! If anybody wants to port it I'll tell you how Adrian |
From: Gene M. <mcc...@en...> - 2002-01-11 19:32:30
|
Is the alpha channel supposed to work in the framebuffer driver? I am using the 2.4.5 kernel supplied in the 010605 release from m17n.org. I am developing some code that uses the alpha channel if the framebuffer driver indicates that it is there. In 32 bit mode, the Dreamcast framebuffer driver indicates that there are 8 bits of alpha, but any value in alpha shows up as completely opaque. My code has a fallback case and will do the alpha blending in software if the framebuffer indicates that the bit depth for the alpha channel is zero. This works fine in the 16 bit case, but is of course slow. Does this behave differently in a more recent kernel? |
From: Adrian M. <ad...@mc...> - 2002-01-11 19:00:09
|
I know at least one member of this list has done this (though he's not about at the moment). Anybody else managed it and care to talk me through it (as I am struggling at the moment). Alternatively, if you have managed to port another video application against which I could test the sound driver - that would do! Adrian |
From: Adrian M. <ad...@mc...> - 2002-01-10 19:12:48
|
Now we've got a sound driver I have to look at ways that it can be developed and maintained. So I have a few questions and ideas for discussion.... 1. Has anyone loaded it from the CVS? I have just upgraded my kernel to 2.4.16 (I was on 2.4.10) and when recompiling the driver once again came across the problem of unexported kernel symbols needed to get it to work. As far as I can see the code in the CVS does not patch ./arch/sh/sh_ksyms.c but I haven't loaded this off the CVS yet to check (I haven't got a coders' cable and so haven't bothered). Anybody able to confirm this? 2. Making the code SMP safe Sounds silly for the DC? Well, pre-ememption within the kernel seems a bit of a hot topic just now and I certainly seen it suggested that pre-emption could well be a standard option as the 2.5 kernel development process goes on (I don't follow this at all closely so apologies if I've got this all wrong). Pre-emption relies on a different treatment of spinlocks - hence the connection with SMP safe code. If anyone can give me reports sometime of how the sound driver does now with pre-emption patched in I'd appreiciate it (presumably it crashes and burns) 3. Exploring the DSP capabilities of the AICA A longer term project this - as nothing really seems to be documented, but I think it's worth discussing. Of course if anybody reading this knows more about how the DSP works.... 4. CD Player Another longer term one - but if they can do this in KOS, I am sure it can be done in Linux 5. MIDI I have compiled Timidity, and it runs, but won't output any sound :-< Has anybody else got anything in mind? Adrian |
From: M. R. B. <mr...@0x...> - 2002-01-10 09:22:45
|
I will be going on a 2 week "sabbatical" (strange, since I won't be leaving my house) in order to tend to a professional (bread-bringing) project desperately needing attention. In order to do that I need to cut myself off from anything LinuxDC (and all other projects from that matter). I will not be on IRC, I will not respond to list or private mail. See you in two weeks. M. R. |
From: Robert L. <rm...@te...> - 2002-01-09 21:38:26
|
On Wed, 2002-01-09 at 15:58, Adrian McMenamin wrote: > Have you tried it with your pre-emption patches? Just wonder how it went. I haven't yet tried it with preempt. I tested it only briefly on 2.4.17. I'll merge it into my DC tree, which is 2.4.18-pre2 and preemptible, soon. Is the code SMP safe? If not (particularly the user accessed functions like open and all) it could barf on itself via reentrancy if preemptible, but it should work in general until then. > Also - if you can tell me more about what you were playing/using then I can > try and use that to tune the driver some more. mp3 playback (via mpg123) was good. of course, then, normal pcm output was great. some trivial games (using raw sound out I believe) and mpg video was out of sync. It's really not bad. I should measure CPU use... > Thanks for the kind words. thank you for the driver. Robert Love |
From: Adrian M. <ad...@mc...> - 2002-01-09 20:59:51
|
On Thursday 03 Jan 2002 5:44 pm, Adrian McMenamin wrote: > Mu Law support could be added to the sound driver at the cost of a 32k look > up table (plus a bit of code to manage it). > > What do people think - is muLaw that important or not? Well I had one broadly against, one broadly for. Don't propose to add it at the moment then.... Adrian |
From: M. R. B. <mr...@0x...> - 2002-01-09 20:59:31
|
* Robert Love <rm...@te...> on Wed, Jan 09, 2002: >=20 > > For most of the day the emphasis has been on improving real time (eg vi= deo)=20 > > performance, but I have also had to ensure that low sample rate audio (= 8k=20 > > essentially) plays okay too. > >=20 > > Anyway, 0.1-pre10 is now at: http://www.mcmen.demon.co.uk/linuxdc/aica >=20 > Hey, it works. Thats an amazing improvement. Performance is "OK".=20 > Sound latency seems a bit high as noted but not too bad. >=20 Heh, hopefully you noticed it's in CVS. M. R. |
From: Adrian M. <ad...@mc...> - 2002-01-09 20:57:39
|
On Wednesday 09 Jan 2002 8:55 pm, Robert Love wrote: > On Sun, 2002-01-06 at 19:00, Adrian McMenamin wrote: > > Apologies for bombarding people with this, but work on fine tuning the > > driver has been fairly continuous throughout the day. > > No no, most appreciated ... > > > For most of the day the emphasis has been on improving real time (eg > > video) performance, but I have also had to ensure that low sample rate > > audio (8k essentially) plays okay too. > > > > Anyway, 0.1-pre10 is now at: http://www.mcmen.demon.co.uk/linuxdc/aica > > Hey, it works. Thats an amazing improvement. Performance is "OK". > Sound latency seems a bit high as noted but not too bad. > > Thank you ;) > > Robert Love > Have you tried it with your pre-emption patches? Just wonder how it went. Also - if you can tell me more about what you were playing/using then I can try and use that to tune the driver some more. Thanks for the kind words. Adrian |
From: Robert L. <rm...@te...> - 2002-01-09 20:52:57
|
On Sun, 2002-01-06 at 19:00, Adrian McMenamin wrote: > Apologies for bombarding people with this, but work on fine tuning the driver > has been fairly continuous throughout the day. No no, most appreciated ... > For most of the day the emphasis has been on improving real time (eg video) > performance, but I have also had to ensure that low sample rate audio (8k > essentially) plays okay too. > > Anyway, 0.1-pre10 is now at: http://www.mcmen.demon.co.uk/linuxdc/aica Hey, it works. Thats an amazing improvement. Performance is "OK". Sound latency seems a bit high as noted but not too bad. Thank you ;) Robert Love |
From: Espen R. <es...@ii...> - 2002-01-07 16:50:37
|
On Mon, 7 Jan 2002, Adrian McMenamin wrote: > Apologies for bombarding people with this, but work on fine tuning the driver > has been fairly continuous throughout the day. I think it's ok mails like these are sent - nice to read the progress of various parts espen |
From: Adrian M. <ad...@mc...> - 2002-01-07 00:00:19
|
Apologies for bombarding people with this, but work on fine tuning the driver has been fairly continuous throughout the day. For most of the day the emphasis has been on improving real time (eg video) performance, but I have also had to ensure that low sample rate audio (8k essentially) plays okay too. Anyway, 0.1-pre10 is now at: http://www.mcmen.demon.co.uk/linuxdc/aica Adrian |
From: M. R. B. <mr...@0x...> - 2002-01-06 16:12:59
|
* Adrian McMenamin <ad...@mc...> on Sun, Jan 06, 2002: >=20 > Maybe then it could go into the CVS? Yep. Do you know how to add the necessary stuff to drivers/sound/Config.in and drivers/sound/Makefile? If not, I'll add it before I import it. I gue= ss I need to update the tree to whatever's current as well (although I think it is against the lastest linuxsh kernel). M. R. |
From: Adrian M. <ad...@mc...> - 2002-01-06 15:59:36
|
On Sunday 06 Jan 2002 3:55 pm, M. R. Brown wrote: > > Overall, it's looking real good. I'm trying to see what's all needed to > get DMA support going - the G2 DMA itself will probably live as part as the > common Dreamcast code, and that's a bit hard to place in the current crud > of LinuxSH (all board-specific routines land in arch/sh/kernel, but this > will change in 2.5.x). > > M. R. Let me tweak it a little further tonight - think I can squeeze a little more at the expense of increasing the processor load. Maybe then it could go into the CVS? |
From: M. R. B. <mr...@0x...> - 2002-01-06 15:55:11
|
* Adrian McMenamin <ad...@mc...> on Sun, Jan 06, 2002: > Version 0.1-pre5 - which should give better real time support is now=20 > available for testing: >=20 > http://www.mcmen.demon.co.uk/linuxdc/aica >=20 >=20 > Any and all feedback welcome. >=20 I'm having issues with madplay. The audio output pops at the end of a run of samples, not a whole lot - but it's noticeable. It does play at full speed though. mpg123 plays fine, if only we knew how the AICA DSP worked so we could mix bass and treble! MPlayer sounds a lot better. With Steve Ballmer's infamous "dancemonkeyboy.mpeg" (240x176 @ 30fps video, 32000Hz mp3 audio), I get full audio playback (no skips, runs, or warbles) and only about 1/2 second delay on video output. Given the general crappyness of the LinuxDC framebuffer driver, I'm amazed it was able to hold it's on and give a near perfect framerate :P. OTOH, with Outkast's "So Fresh, So Clean" video (352x240 @ 29.97fps video, 44100Hz mp3 audio), I can get near correct playback (I get intermittent "warbles") with the NULL video driver. With video output enabled I get much more noticeable sample repeats and distortion (and not a chance in hell for video sync - /me kicks framebuffer driver). Overall, it's looking real good. I'm trying to see what's all needed to get DMA support going - the G2 DMA itself will probably live as part as the common Dreamcast code, and that's a bit hard to place in the current crud of LinuxSH (all board-specific routines land in arch/sh/kernel, but this will change in 2.5.x). M. R. |
From: Adrian M. <ad...@mc...> - 2002-01-06 14:00:28
|
Version 0.1-pre5 - which should give better real time support is now available for testing: http://www.mcmen.demon.co.uk/linuxdc/aica Any and all feedback welcome. Adrian |
From: Adrian M. <ad...@mc...> - 2002-01-05 00:55:55
|
A new, much improved, pre-release version of the open sound system (OSS) compatible AICA sounddriver for Linux on the Dreamcast is available for testing. This version implements a new buffering mechanism that has meant continuous playing of PCM and MP3 samples. The driver needs to be tested in very high demand environments (eg MPEG video) as there is potential for synchronisation problems - I haven't ported any such applications, but I know others have and could test this. Anyway: The files are at: http://www.mcmen.demon.co.uk/linuxdc/aica You need aica.c and arm7.h to build the drivers However, as this is an OSS driver you will also need a minimal OSS system on your DC. The files and a smaple makefile are also available at the above address to build this. Simply download, alter to fit your set up and install with insmod soundcore.o and insmod aica.o Please feel free to post any questions to me or (preferably) the linuxdc-dev (and others if you feel it appropriate - but don't spam people) list. Happy New Year to all, Adrian |
From: Adrian M. <ad...@mc...> - 2002-01-03 18:29:24
|
On Thursday 03 Jan 2002 5:58 pm, M. R. Brown wrote: > * Adrian McMenamin <ad...@mc...> on Thu, Jan 03, 2002: > > Mu Law support could be added to the sound driver at the cost of a 32k > > look up table (plus a bit of code to manage it). > > Feeping creaturism. > > IMHO you should focus on speeding the driver up. > > M> R. I am, I am! Even as we speak... This is a bug which I am trying to fix (ie driver now reports it supports muLaw when it doesn't). |