Update of /cvsroot/alsa/alsa-driver/acore In directory sc8-pr-cvs1:/tmp/cvs-serv12496/acore
Modified Files: memalloc.inc1 pci_compat_22.c Log Message: - added pci_request/release_regions() wrapper for 2.2 kernels. - fixed pci_resource_flags() wrapper. Index: memalloc.inc1 =================================================================== RCS file: /cvsroot/alsa/alsa-driver/acore/memalloc.inc1,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- memalloc.inc1 31 May 2003 11:09:05 -0000 1.1 +++ memalloc.inc1 20 Nov 2003 10:47:30 -0000 1.2 @@ -16,6 +16,10 @@ EXPORT_SYMBOL(snd_pci_compat_get_driver_data); EXPORT_SYMBOL(snd_pci_compat_set_driver_data); EXPORT_SYMBOL(snd_pci_compat_get_pci_driver); +EXPORT_SYMBOL(snd_pci_compat_request_region); +EXPORT_SYMBOL(snd_pci_compat_release_region); +EXPORT_SYMBOL(snd_pci_compat_request_regions); +EXPORT_SYMBOL(snd_pci_compat_release_regions); #endif #ifndef CONFIG_HAVE_VMALLOC_TO_PAGE Index: pci_compat_22.c =================================================================== RCS file: /cvsroot/alsa/alsa-driver/acore/pci_compat_22.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- pci_compat_22.c 17 Nov 2003 18:31:41 -0000 1.5 +++ pci_compat_22.c 20 Nov 2003 10:47:30 -0000 1.6 @@ -199,10 +199,11 @@ dev->device == broken_addr[foo].device) return broken_addr[foo].flags; - if (foo == 0) - flags |= IORESOURCE_MEM; - if (foo == 1) + foo = dev->base_address[n_base] & PCI_BASE_ADDRESS_SPACE; + if (foo & 1) flags |= IORESOURCE_IO; + else + flags |= IORESOURCE_MEM; return flags; } @@ -340,3 +341,63 @@ return 1; } +/* + */ +int snd_pci_compat_pci_request_region(struct pci_dev *pdev, int bar, char *res_name) +{ + int flags; + + if (pci_resource_len(pdev, bar) == 0) + 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)) + goto err_out; + } + + return 0; + +err_out: + printk(KERN_WARNING "PCI: Unable to reserve %s region #%d:[EMAIL PROTECTED] for device %s\n", + flags & IORESOURCE_IO ? "I/O" : "mem", + bar + 1, /* PCI BAR # */ + pci_resource_len(pdev, bar), pci_resource_start(pdev, bar), + pci_name(pdev)); + return -EBUSY; +} + +void snd_pci_compat_release_region(struct pci_dev *pci, int bar) +{ + int flags; + if (pci_resource_len(pdev, bar) == 0) + return; + flags = snd_pci_compat_get_flags(pdev, bar); + 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)); +} + +int snd_pci_compat_request_regions(struct pci_dev *pdev, char *res_name) +{ + int i; + + for (i = 0; i < 6; i++) + if (pci_request_region(pdev, i, res_name)) + return -EBUSY; + return 0; +} + +void snd_pci_compat_release_regions(struct pci_dev *pdev) +{ + int i; + for (i = 0; i < 6; i++) + snd_pci_compat_release_region(pdev, i); +} ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog