Messages in this thread |  | | Date | Sat, 27 Oct 2001 04:08:47 -0400 | From | Jeff Garzik <> | Subject | Re: [PATCH] More ioctls for VIA sound driver, Flash 5 now fixed |
| |
Jeff Garzik wrote: > So, the preferred allocation algorithm would be: > > if (OSS fragment size <= PAGE_SIZE) > allocate chan->pgtbl[] in PAGE_SIZE chunks > else > allocate chan->pgtbl[] in oss_frag_size chunks > > Another key thing to rememeber is that pci_alloc_consistent usually > returns a -minimum- of one page, so it's useless to allocate less than > that, without switching the entire driver to the pci_pool_xxx API.
Another limitation, I just remembered: Each scatter-gather buffer must be a multiple of PAGE_SIZE (actually probably PAGE_CACHE_SIZE), in order for mmap(2) support (via_mm_nopage) to work properly.
I would also like to point out that mmap support via vm_operations_struct::nopage is also unique and new, and was suggested by Linus as a much better mmap(2) approach than other drivers, which using remap_page_range [a method which requires the one-big-buffer allocation approach].
Jeff
-- Jeff Garzik | Only so many songs can be sung Building 1024 | with two lips, two lungs, and one tongue. MandrakeSoft | - nomeansno
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |