Root/
Source at commit 307 created 12 years 11 months ago. By ifabio, merge changes from trunk (929). Also merge the module changes from Azimutz branche (fix compile error) Also edited the info.plist into AHCIPortInjector.kext: http://forum.voodooprojects.org/index.php/topic,1170.0.html | |
---|---|
1 | /*␊ |
2 | * GraphicsEnabler Module␊ |
3 | *␉Enabled many nvidia and ati cards to be used out of the box in ␊ |
4 | *␉OS X. This was converted from boot2 code to a boot2 module.␊ |
5 | *␊ |
6 | */␊ |
7 | ␊ |
8 | #include "saio_internal.h"␊ |
9 | #include "bootstruct.h"␊ |
10 | #include "pci.h"␊ |
11 | #include "nvidia.h"␊ |
12 | #include "modules.h"␊ |
13 | ␊ |
14 | ␊ |
15 | #define kGraphicsEnablerKey␉"GraphicsEnabler"␊ |
16 | ␊ |
17 | void GraphicsEnabler_hook(void* arg1, void* arg2, void* arg3, void* arg4);␊ |
18 | ␊ |
19 | ␊ |
20 | void NVIDIAGraphicsEnabler_start()␊ |
21 | {␊ |
22 | ␉register_hook_callback("PCIDevice", &GraphicsEnabler_hook);␊ |
23 | }␊ |
24 | ␊ |
25 | ␊ |
26 | void GraphicsEnabler_hook(void* arg1, void* arg2, void* arg3, void* arg4)␊ |
27 | {␊ |
28 | ␉pci_dt_t* current = arg1;␊ |
29 | ␉␊ |
30 | ␉if (current->class_id != PCI_CLASS_DISPLAY_VGA) return;␊ |
31 | ␉␊ |
32 | ␉char *devicepath = get_pci_dev_path(current);␊ |
33 | ␉␊ |
34 | ␉bool do_gfx_devprop = true;␊ |
35 | ␉getBoolForKey(kGraphicsEnablerKey, &do_gfx_devprop, &bootInfo->bootConfig);␊ |
36 | ␉␊ |
37 | ␉if (do_gfx_devprop && (current->vendor_id == PCI_VENDOR_ID_NVIDIA))␊ |
38 | ␉{␊ |
39 | ␉␉verbose("NVIDIA VGA Controller [%04x:%04x] :: %s \n",␊ |
40 | ␉␉␉␉current->vendor_id, current->device_id, devicepath);␊ |
41 | ␉␉setup_nvidia_devprop(current);␊ |
42 | ␉}␊ |
43 | ␉else␊ |
44 | ␉␉verbose("[%04x:%04x] :: %s, is not a NVIDIA VGA Controller.\n",␊ |
45 | ␉␉␉␉current->vendor_id, current->device_id, devicepath);␊ |
46 | }␊ |
47 |