[haiku-commits] r39335 - haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia

  • From: mattmadia@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 7 Nov 2010 00:35:25 +0100 (CET)

Author: mmadia
Date: 2010-11-07 00:35:25 +0100 (Sun, 07 Nov 2010)
New Revision: 39335
Changeset: http://dev.haiku-os.org/changeset/39335
Ticket: http://dev.haiku-os.org/ticket/6798

Modified:
   haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia/cm.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia/cmedia_pci.h
Log:
Initial attempt at updating to utilize (un)reserve_device.
Compiles but otherwise untested. Relates to #6798.


Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia/cm.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia/cm.c    2010-11-06 
23:34:49 UTC (rev 39334)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia/cm.c    2010-11-06 
23:35:25 UTC (rev 39335)
@@ -514,6 +514,7 @@
 {
        pci_info info;
        int ix = 0;
+       status_t err;
 
        num_cards = 0;
 
@@ -547,8 +548,21 @@
                        }
                        memset(&cards[num_cards], 0, sizeof(cmedia_pci_dev));
                        cards[num_cards].info = info;
+#ifdef __HAIKU__
+                       if ((err = (*pci->reserve_device)(info.bus, 
info.device, info.function,
+                               DRIVER_NAME, &cards[num_cards])) < B_OK) {
+                               dprintf("%s: failed to reserve_device(%d, %d, 
%d,): %s\n",
+                                       DRIVER_NAME, info.bus, info.device, 
info.function,
+                                       strerror(err));
+                               continue;
+                       }
+#endif
                        if (setup_cmedia_pci(&cards[num_cards])) {
                                dprintf("Setup of C-Media %ld failed\n", 
num_cards+1);
+#ifdef __HAIKU__
+                               (*pci->unreserve_device)(info.bus, info.device, 
info.function,
+                                       DRIVER_NAME, &cards[num_cards]);
+#endif
                        }
                        else {
                                num_cards++;

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia/cmedia_pci.h
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia/cmedia_pci.h    
2010-11-06 23:34:49 UTC (rev 39334)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia/cmedia_pci.h    
2010-11-06 23:35:25 UTC (rev 39335)
@@ -25,6 +25,8 @@
 #define CMEDIA_PCI_JOYSTICK_MIN_LATENCY 5000           /* 200 times a second! 
*/
 #define CMEDIA_PCI_JOYSTICK_MAX_LATENCY 100000         /* 10 times a second */
 
+#define DRIVER_NAME "cmedia"
+
 typedef struct joystick cmedia_pci_joystick;
 
 


Other related posts:

  • » [haiku-commits] r39335 - haiku/trunk/src/add-ons/kernel/drivers/audio/cmedia - mattmadia