Update of /cvsroot/alsa/alsa-driver/acore In directory sc8-pr-cvs1:/tmp/cvs-serv2278/acore
Modified Files: misc.c pci_compat_22.c pcm_native.patch Log Message: fixed for 2.2 kernels - don't reserve the area for memory regions (not existing on 2.2?) - removed release_mem_region() - added missing ifdef's in snd_pcm_mmap_status() Index: misc.c =================================================================== RCS file: /cvsroot/alsa/alsa-driver/acore/misc.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- misc.c 29 Jun 2003 14:56:18 -0000 1.22 +++ misc.c 8 Jan 2004 11:01:20 -0000 1.23 @@ -30,12 +30,14 @@ #endif if (resource == NULL) return NULL; - if (! is_memory && check_region(start, size)) { - kfree_nocheck(resource); - return NULL; + if (! is_memory) { + if (check_region(start, size)) { + kfree_nocheck(resource); + return NULL; + } + snd_wrapper_request_region(start, size, name); } memset(resource, 0, sizeof(struct resource)); - snd_wrapper_request_region(start, size, name); resource->name = name; resource->start = start; resource->end = start + size - 1; Index: pci_compat_22.c =================================================================== RCS file: /cvsroot/alsa/alsa-driver/acore/pci_compat_22.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- pci_compat_22.c 27 Nov 2003 10:56:22 -0000 1.8 +++ pci_compat_22.c 8 Jan 2004 11:01:20 -0000 1.9 @@ -351,15 +351,11 @@ return 0; flags = snd_pci_compat_get_flags(pdev, bar); if (flags & IORESOURCE_IO) { - if (!request_region(pci_resource_start(pdev, bar), - pci_resource_len(pdev, bar), res_name)) - goto err_out; - } else if (flags & IORESOURCE_MEM) { - if (!request_mem_region(pci_resource_start(pdev, bar), - pci_resource_len(pdev, bar), res_name)) + if (check_region(pci_resource_start(pdev, bar), pci_resource_len(pdev, bar))) goto err_out; + snd_wrapper_request_region(pci_resource_start(pdev, bar), + pci_resource_len(pdev, bar), res_name); } - return 0; err_out: @@ -374,15 +370,14 @@ void snd_pci_compat_release_region(struct pci_dev *pdev, int bar) { int flags; + if (pci_resource_len(pdev, bar) == 0) return; flags = snd_pci_compat_get_flags(pdev, bar); - if (flags & IORESOURCE_IO) + if (flags & IORESOURCE_IO) { release_region(pci_resource_start(pdev, bar), - pci_resource_len(pdev, bar)); - else if (flags & IORESOURCE_MEM) - release_mem_region(pci_resource_start(pdev, bar), - pci_resource_len(pdev, bar)); + pci_resource_len(pdev, bar)); + } } int snd_pci_compat_request_regions(struct pci_dev *pdev, char *res_name) Index: pcm_native.patch =================================================================== RCS file: /cvsroot/alsa/alsa-driver/acore/pcm_native.patch,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- pcm_native.patch 31 Dec 2003 13:54:38 -0000 1.3 +++ pcm_native.patch 8 Jan 2004 11:01:20 -0000 1.4 @@ -1,5 +1,5 @@ ---- ../alsa-kernel/core/pcm_native.c 2003-12-31 14:43:23.000000000 +0100 -+++ pcm_native.c 2003-12-31 14:46:29.000000000 +0100 +--- ../alsa-kernel/core/pcm_native.c 2004-01-05 12:34:33.000000000 +0100 ++++ pcm_native.c 2004-01-08 11:54:28.000000000 +0100 @@ -1,3 +1,4 @@ +#define __NO_VERSION__ /* @@ -93,7 +93,18 @@ } static struct vm_operations_struct snd_pcm_vm_ops_status = -@@ -2868,7 +2906,13 @@ +@@ -2863,12 +2901,24 @@ + if (size != PAGE_ALIGN(sizeof(snd_pcm_mmap_status_t))) + return -EINVAL; + area->vm_ops = &snd_pcm_vm_ops_status; ++#ifndef LINUX_2_2 + area->vm_private_data = substream; ++#else ++ area->vm_private_data = (long)substream; ++#endif ++#ifdef VM_RESERVED + area->vm_flags |= VM_RESERVED; ++#endif return 0; } @@ -107,7 +118,7 @@ { snd_pcm_substream_t *substream = (snd_pcm_substream_t *)area->vm_private_data; snd_pcm_runtime_t *runtime; -@@ -2880,9 +2924,15 @@ +@@ -2880,9 +2930,15 @@ page = virt_to_page(runtime->control); if (!PageReserved(page)) get_page(page); @@ -123,7 +134,7 @@ } static struct vm_operations_struct snd_pcm_vm_ops_control = -@@ -2903,8 +2953,14 @@ +@@ -2903,8 +2959,14 @@ if (size != PAGE_ALIGN(sizeof(snd_pcm_mmap_control_t))) return -EINVAL; area->vm_ops = &snd_pcm_vm_ops_control; @@ -138,7 +149,7 @@ return 0; } -@@ -2920,7 +2976,13 @@ +@@ -2920,7 +2982,13 @@ atomic_dec(&substream->runtime->mmap_count); } @@ -152,7 +163,7 @@ { snd_pcm_substream_t *substream = (snd_pcm_substream_t *)area->vm_private_data; snd_pcm_runtime_t *runtime; -@@ -2932,7 +2994,11 @@ +@@ -2932,7 +3000,11 @@ if (substream == NULL) return NOPAGE_OOM; runtime = substream->runtime; @@ -164,7 +175,7 @@ offset += address - area->vm_start; snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_OOM); dma_bytes = PAGE_ALIGN(runtime->dma_bytes); -@@ -2948,9 +3014,15 @@ +@@ -2948,9 +3020,15 @@ } if (!PageReserved(page)) get_page(page); @@ -180,7 +191,7 @@ } static struct vm_operations_struct snd_pcm_vm_ops_data = -@@ -2958,6 +3030,9 @@ +@@ -2958,6 +3036,9 @@ .open = snd_pcm_mmap_data_open, .close = snd_pcm_mmap_data_close, .nopage = snd_pcm_mmap_data_nopage, @@ -190,7 +201,7 @@ }; int snd_pcm_mmap_data(snd_pcm_substream_t *substream, struct file *file, -@@ -2985,7 +3060,11 @@ +@@ -2985,7 +3066,11 @@ runtime->access == SNDRV_PCM_ACCESS_RW_NONINTERLEAVED) return -EINVAL; size = area->vm_end - area->vm_start; @@ -202,7 +213,7 @@ dma_bytes = PAGE_ALIGN(runtime->dma_bytes); if ((size_t)size > dma_bytes) return -EINVAL; -@@ -2993,8 +3072,14 @@ +@@ -2993,8 +3078,14 @@ return -EINVAL; area->vm_ops = &snd_pcm_vm_ops_data; @@ -217,7 +228,7 @@ atomic_inc(&runtime->mmap_count); return 0; } -@@ -3009,7 +3094,11 @@ +@@ -3009,7 +3100,11 @@ substream = pcm_file->substream; snd_assert(substream != NULL, return -ENXIO); @@ -229,7 +240,7 @@ switch (offset) { case SNDRV_PCM_MMAP_OFFSET_STATUS: return snd_pcm_mmap_status(substream, file, area); -@@ -3117,9 +3206,13 @@ +@@ -3117,9 +3212,13 @@ */ static struct file_operations snd_pcm_f_ops_playback = { @@ -243,7 +254,7 @@ .open = snd_pcm_open, .release = snd_pcm_release, .poll = snd_pcm_playback_poll, -@@ -3129,9 +3222,13 @@ +@@ -3129,9 +3228,13 @@ }; static struct file_operations snd_pcm_f_ops_capture = { ------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog