Additional changes for 2.5
authorAndrey Chernov <ache@FreeBSD.org>
Sat, 23 Apr 1994 04:16:53 +0000 (04:16 +0000)
committerAndrey Chernov <ache@FreeBSD.org>
Sat, 23 Apr 1994 04:16:53 +0000 (04:16 +0000)
sys/i386/isa/sound/local.h
sys/i386/isa/sound/soundcard.c

index fd44f85..a44c989 100644 (file)
@@ -7,8 +7,8 @@
 
 #define DSP_BUFFSIZE 65536
 #define SELECTED_SOUND_OPTIONS 0xffffffff
 
 #define DSP_BUFFSIZE 65536
 #define SELECTED_SOUND_OPTIONS 0xffffffff
-#define SOUND_VERSION_STRING "2.4"
-#define SOUND_CONFIG_DATE "Mon Mar 7 23:54:09 PST 1994"
-#define SOUND_CONFIG_BY "swallace"
-#define SOUND_CONFIG_HOST "freefall.cdrom.com"
+#define SOUND_VERSION_STRING "2.5"
+#define SOUND_CONFIG_DATE "Sat Apr 23 07:45:17 MSD 1994"
+#define SOUND_CONFIG_BY "ache"
+#define SOUND_CONFIG_HOST "dream.demos.su"
 #define SOUND_CONFIG_DOMAIN ""
 #define SOUND_CONFIG_DOMAIN ""
index 60b4ff3..d69e8e0 100644 (file)
@@ -69,7 +69,7 @@ static void   sound_mem_init(void);
 
 unsigned
 long
 
 unsigned
 long
-get_time()
+get_time(void)
 {
 extern struct timeval time;
 struct timeval timecopy;
 {
 extern struct timeval time;
 struct timeval timecopy;
@@ -324,27 +324,14 @@ sound_mem_init (void)
        {
          dsp_init_mask |= (1 << dev);
 
        {
          dsp_init_mask |= (1 << dev);
 
-#if 1 /* 0 */
          if (sound_dma_automode[dev])
          if (sound_dma_automode[dev])
-           {
-             sound_dma_automode[dev] = 0;      /* Not possible with FreeBSD */
-           }
-
-         if (sound_buffcounts[dev] == 1)
-           {
-             sound_buffcounts[dev] = 2;
-             sound_buffsizes[dev] /= 2;
-           }
-
-         if (sound_buffsizes[dev] > 65536)     /* Larger is not possible (yet) */
-           sound_buffsizes[dev] = 65536;
+           sound_buffcounts[dev] = 1;
 
          if (sound_dsp_dmachan[dev] > 3 && sound_buffsizes[dev] > 65536)
            dma_pagesize = 131072;      /* 128k */
          else
            dma_pagesize = 65536;
 
 
          if (sound_dsp_dmachan[dev] > 3 && sound_buffsizes[dev] > 65536)
            dma_pagesize = 131072;      /* 128k */
          else
            dma_pagesize = 65536;
 
-
          /* More sanity checks */
 
          if (sound_buffsizes[dev] > dma_pagesize)
          /* More sanity checks */
 
          if (sound_buffsizes[dev] > dma_pagesize)
@@ -352,24 +339,13 @@ sound_mem_init (void)
          sound_buffsizes[dev] &= ~0xfff;       /* Truncate to n*4k */
          if (sound_buffsizes[dev] < 4096)
            sound_buffsizes[dev] = 4096;
          sound_buffsizes[dev] &= ~0xfff;       /* Truncate to n*4k */
          if (sound_buffsizes[dev] < 4096)
            sound_buffsizes[dev] = 4096;
-#else
-       dma_pagesize = 4096;
-       sound_buffsizes[dev] = 4096;
-       sound_buffcounts[dev] = 16;     /* -> 64k */
-#endif
 
          /* Now allocate the buffers */
 
          for (snd_raw_count[dev] = 0; snd_raw_count[dev] < sound_buffcounts[dev]; snd_raw_count[dev]++)
            {
 
          /* Now allocate the buffers */
 
          for (snd_raw_count[dev] = 0; snd_raw_count[dev] < sound_buffcounts[dev]; snd_raw_count[dev]++)
            {
-             /*
-              * The DMA buffer allocation algorithm hogs memory. We allocate
-              * a memory area which is two times the requires size. This
-              * guarantees that it contains at least one valid DMA buffer.
-              * 
-              * This really needs some kind of finetuning.
-              */
-             char           *tmpbuf = contigmalloc (sound_buffsizes[dev], M_DEVBUF, M_NOWAIT, 0xFFFFFFul, 0ul, 0xFFFFul);
+             char           *tmpbuf = contigmalloc (sound_buffsizes[dev], M_DEVBUF, M_NOWAIT,
+                                                    0xFFFFFFul, 0ul, dma_pagesize <= 65536 ? 0xFFFFul : 0x1FFFFul);
 
              if (tmpbuf == NULL)
                {
 
              if (tmpbuf == NULL)
                {