I have this pending patch here...

I added calls to the PCI bus manager in Haiku to avoid both OSS and
native drivers accessing the same hardware, often resulting in a crash.

Hopefully this will allow adding OSS officially in the upcoming
R1alpha2 release.

François.
diff -r f998a89537d0 kernel/OS/BeOS/os_beos.c
--- a/kernel/OS/BeOS/os_beos.c	Fri Apr 16 18:30:49 2010 +0300
+++ b/kernel/OS/BeOS/os_beos.c	Mon Apr 19 17:56:51 2010 +0200
@@ -1070,6 +1070,16 @@
     {
     case DRV_PCI:
       /* NOP */
+#ifdef __HAIKU__
+      if (gPCI->reserve_device(osdev->dip->pciinfo.bus,
+      				   osdev->dip->pciinfo.device,
+				   osdev->dip->pciinfo.function,
+				   "oss", osdev) != B_OK) {
+      	cmn_err (CE_WARN, "Could not reserve PCI device\n");
+      	/* XXX: CLEANUP! */
+        return NULL;
+      }
+#endif
       break;
 
     case DRV_VIRTUAL:
@@ -1152,6 +1162,12 @@
       /* NOP */
       //pci_config_teardown (&osdev->pci_config_handle);
       //osdev->pci_config_handle = NULL;
+#ifdef __HAIKU__
+      gPCI->unreserve_device(osdev->dip->pciinfo.bus,
+      				 osdev->dip->pciinfo.device,
+				 osdev->dip->pciinfo.function,
+				 "oss", osdev);
+#endif
       break;
     }
 
_______________________________________________
oss-devel mailing list
oss-devel@mailman.opensound.com
http://mailman.opensound.com/mailman/listinfo/oss-devel

Reply via email to