Chameleon

Chameleon Svn Source Tree

Root/branches/cparm/i386/modules/GraphicsEnabler/GraphicsEnabler.c

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 "libsaio.h"
9#include "pci.h"
10#include "bootstruct.h"
11#include "nvidia.h"
12#include "ati.h"
13#include "gma.h"
14#include "modules.h"
15
16
17#define kGraphicsEnabler"EnableGFXModule"
18
19void GraphicsEnabler_hook(void* arg1, void* arg2, void* arg3, void* arg4, void* arg5, void* arg6);
20
21void GraphicsEnabler_start()
22{
23bool enable = true;
24getBoolForKey(kGraphicsEnabler, &enable, &bootInfo->bootConfig);
25
26
27if (enable)
28{
29register_hook_callback("PCIDevice", &GraphicsEnabler_hook);
30}
31}
32
33void GraphicsEnabler_hook(void* arg1, void* arg2, void* arg3, void* arg4, void* arg5, void* arg6)
34{
35pci_dt_t* current = arg1;
36
37if(current && current->class_id == PCI_CLASS_DISPLAY_VGA)
38{
39char *devicepath = get_pci_dev_path(current);
40
41switch (current->vendor_id)
42{
43case PCI_VENDOR_ID_ATI:
44verbose("ATI VGA Controller [%04x:%04x] :: %s \n",
45current->vendor_id, current->device_id, devicepath);
46setup_ati_devprop(current);
47break;
48
49case PCI_VENDOR_ID_INTEL:
50setup_gma_devprop(current);
51break;
52
53case PCI_VENDOR_ID_NVIDIA:
54setup_nvidia_devprop(current);
55break;
56default:
57break;
58}
59
60}
61}

Archive Download this file

Revision: 1468