Rev 2338 | Rev 2340 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2338 | Rev 2339 | ||
---|---|---|---|
Line 1... | Line -... | ||
1 | /* i915_drv.c -- i830,i845,i855,i865,i915 driver -*- linux-c -*- |
- | |
2 | */ |
1 | /* i915_drv.c -- i830,i845,i855,i865,i915 driver -*- linux-c -*- |
3 | /* |
2 | */ |
4 | * |
3 | /* |
5 | * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. |
4 | * |
6 | * All Rights Reserved. |
5 | * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. |
Line 72... | Line 71... | ||
72 | .subvendor = PCI_ANY_ID, \ |
71 | .device = id, \ |
73 | .subdevice = PCI_ANY_ID, \ |
72 | .subvendor = PCI_ANY_ID, \ |
74 | .driver_data = (unsigned long) info } |
73 | .subdevice = PCI_ANY_ID, \ |
75 | 74 | .driver_data = (unsigned long) info } |
|
Line -... | Line 75... | ||
- | 75 | ||
- | 76 | static const struct intel_device_info intel_i830_info = { |
|
- | 77 | .gen = 2, .is_mobile = 1, .cursor_needs_physical = 1, |
|
- | 78 | .has_overlay = 1, .overlay_needs_physical = 1, |
|
- | 79 | }; |
|
- | 80 | ||
- | 81 | static const struct intel_device_info intel_845g_info = { |
|
- | 82 | .gen = 2, |
|
- | 83 | .has_overlay = 1, .overlay_needs_physical = 1, |
|
- | 84 | }; |
|
- | 85 | ||
- | 86 | static const struct intel_device_info intel_i85x_info = { |
|
- | 87 | .gen = 2, .is_i85x = 1, .is_mobile = 1, |
|
- | 88 | .cursor_needs_physical = 1, |
|
- | 89 | .has_overlay = 1, .overlay_needs_physical = 1, |
|
- | 90 | }; |
|
- | 91 | ||
- | 92 | static const struct intel_device_info intel_i865g_info = { |
|
- | 93 | .gen = 2, |
|
- | 94 | .has_overlay = 1, .overlay_needs_physical = 1, |
|
- | 95 | }; |
|
- | 96 | ||
- | 97 | static const struct intel_device_info intel_i915g_info = { |
|
- | 98 | .gen = 3, .is_i915g = 1, .cursor_needs_physical = 1, |
|
- | 99 | .has_overlay = 1, .overlay_needs_physical = 1, |
|
- | 100 | }; |
|
- | 101 | static const struct intel_device_info intel_i915gm_info = { |
|
- | 102 | .gen = 3, .is_mobile = 1, |
|
- | 103 | .cursor_needs_physical = 1, |
|
- | 104 | .has_overlay = 1, .overlay_needs_physical = 1, |
|
- | 105 | .supports_tv = 1, |
|
- | 106 | }; |
|
- | 107 | static const struct intel_device_info intel_i945g_info = { |
|
- | 108 | .gen = 3, .has_hotplug = 1, .cursor_needs_physical = 1, |
|
- | 109 | .has_overlay = 1, .overlay_needs_physical = 1, |
|
- | 110 | }; |
|
- | 111 | static const struct intel_device_info intel_i945gm_info = { |
|
- | 112 | .gen = 3, .is_i945gm = 1, .is_mobile = 1, |
|
- | 113 | .has_hotplug = 1, .cursor_needs_physical = 1, |
|
- | 114 | .has_overlay = 1, .overlay_needs_physical = 1, |
|
- | 115 | .supports_tv = 1, |
|
- | 116 | }; |
|
- | 117 | ||
- | 118 | static const struct intel_device_info intel_i965g_info = { |
|
- | 119 | .gen = 4, .is_broadwater = 1, |
|
- | 120 | .has_hotplug = 1, |
|
- | 121 | .has_overlay = 1, |
|
- | 122 | }; |
|
- | 123 | ||
- | 124 | static const struct intel_device_info intel_i965gm_info = { |
|
- | 125 | .gen = 4, .is_crestline = 1, |
|
- | 126 | .is_mobile = 1, .has_fbc = 1, .has_hotplug = 1, |
|
- | 127 | .has_overlay = 1, |
|
- | 128 | .supports_tv = 1, |
|
- | 129 | }; |
|
- | 130 | ||
- | 131 | static const struct intel_device_info intel_g33_info = { |
|
- | 132 | .gen = 3, .is_g33 = 1, |
|
- | 133 | .need_gfx_hws = 1, .has_hotplug = 1, |
|
- | 134 | .has_overlay = 1, |
|
- | 135 | }; |
|
- | 136 | ||
- | 137 | static const struct intel_device_info intel_g45_info = { |
|
- | 138 | .gen = 4, .is_g4x = 1, .need_gfx_hws = 1, |
|
- | 139 | .has_pipe_cxsr = 1, .has_hotplug = 1, |
|
- | 140 | .has_bsd_ring = 1, |
|
- | 141 | }; |
|
- | 142 | ||
- | 143 | static const struct intel_device_info intel_gm45_info = { |
|
- | 144 | .gen = 4, .is_g4x = 1, |
|
- | 145 | .is_mobile = 1, .need_gfx_hws = 1, .has_fbc = 1, |
|
- | 146 | .has_pipe_cxsr = 1, .has_hotplug = 1, |
|
- | 147 | .supports_tv = 1, |
|
- | 148 | .has_bsd_ring = 1, |
|
- | 149 | }; |
|
- | 150 | ||
- | 151 | static const struct intel_device_info intel_pineview_info = { |
|
- | 152 | .gen = 3, .is_g33 = 1, .is_pineview = 1, .is_mobile = 1, |
|
- | 153 | .need_gfx_hws = 1, .has_hotplug = 1, |
|
- | 154 | .has_overlay = 1, |
|
- | 155 | }; |
|
- | 156 | ||
- | 157 | static const struct intel_device_info intel_ironlake_d_info = { |
|
- | 158 | .gen = 5, |
|
- | 159 | .need_gfx_hws = 1, .has_pipe_cxsr = 1, .has_hotplug = 1, |
|
- | 160 | .has_bsd_ring = 1, |
|
- | 161 | }; |
|
- | 162 | ||
- | 163 | static const struct intel_device_info intel_ironlake_m_info = { |
|
- | 164 | .gen = 5, .is_mobile = 1, |
|
- | 165 | .need_gfx_hws = 1, .has_hotplug = 1, |
|
- | 166 | .has_fbc = 1, |
|
- | 167 | .has_bsd_ring = 1, |
|
- | 168 | }; |
|
76 | static const struct intel_device_info intel_sandybridge_d_info = { |
169 | |
77 | .gen = 6, |
170 | static const struct intel_device_info intel_sandybridge_d_info = { |
78 | .need_gfx_hws = 1, .has_hotplug = 1, |
171 | .gen = 6, |
79 | .has_bsd_ring = 1, |
172 | .need_gfx_hws = 1, .has_hotplug = 1, |
80 | .has_blt_ring = 1, |
173 | .has_bsd_ring = 1, |
Line 87... | Line 180... | ||
87 | .has_bsd_ring = 1, |
180 | .has_fbc = 1, |
88 | .has_blt_ring = 1, |
181 | .has_bsd_ring = 1, |
89 | }; |
182 | .has_blt_ring = 1, |
90 | 183 | }; |
|
Line -... | Line 184... | ||
- | 184 | ||
- | 185 | static const struct intel_device_info intel_ivybridge_d_info = { |
|
- | 186 | .is_ivybridge = 1, .gen = 7, |
|
- | 187 | .need_gfx_hws = 1, .has_hotplug = 1, |
|
- | 188 | .has_bsd_ring = 1, |
|
- | 189 | .has_blt_ring = 1, |
|
- | 190 | }; |
|
- | 191 | ||
- | 192 | static const struct intel_device_info intel_ivybridge_m_info = { |
|
- | 193 | .is_ivybridge = 1, .gen = 7, .is_mobile = 1, |
|
- | 194 | .need_gfx_hws = 1, .has_hotplug = 1, |
|
- | 195 | .has_fbc = 0, /* FBC is not enabled on Ivybridge mobile yet */ |
|
- | 196 | .has_bsd_ring = 1, |
|
- | 197 | .has_blt_ring = 1, |
|
Line 91... | Line 198... | ||
91 | 198 | }; |
|
- | 199 | ||
- | 200 | static const struct pci_device_id pciidlist[] = { /* aka */ |
|
- | 201 | INTEL_VGA_DEVICE(0x2582, &intel_i915g_info), /* I915_G */ |
|
- | 202 | INTEL_VGA_DEVICE(0x258a, &intel_i915g_info), /* E7221_G */ |
|
- | 203 | INTEL_VGA_DEVICE(0x2592, &intel_i915gm_info), /* I915_GM */ |
|
- | 204 | INTEL_VGA_DEVICE(0x2772, &intel_i945g_info), /* I945_G */ |
|
- | 205 | INTEL_VGA_DEVICE(0x27a2, &intel_i945gm_info), /* I945_GM */ |
|
- | 206 | INTEL_VGA_DEVICE(0x27ae, &intel_i945gm_info), /* I945_GME */ |
|
- | 207 | INTEL_VGA_DEVICE(0x2972, &intel_i965g_info), /* I946_GZ */ |
|
- | 208 | INTEL_VGA_DEVICE(0x2982, &intel_i965g_info), /* G35_G */ |
|
- | 209 | INTEL_VGA_DEVICE(0x2992, &intel_i965g_info), /* I965_Q */ |
|
- | 210 | INTEL_VGA_DEVICE(0x29a2, &intel_i965g_info), /* I965_G */ |
|
- | 211 | INTEL_VGA_DEVICE(0x29b2, &intel_g33_info), /* Q35_G */ |
|
- | 212 | INTEL_VGA_DEVICE(0x29c2, &intel_g33_info), /* G33_G */ |
|
- | 213 | INTEL_VGA_DEVICE(0x29d2, &intel_g33_info), /* Q33_G */ |
|
- | 214 | INTEL_VGA_DEVICE(0x2a02, &intel_i965gm_info), /* I965_GM */ |
|
- | 215 | INTEL_VGA_DEVICE(0x2a12, &intel_i965gm_info), /* I965_GME */ |
|
- | 216 | INTEL_VGA_DEVICE(0x2a42, &intel_gm45_info), /* GM45_G */ |
|
- | 217 | INTEL_VGA_DEVICE(0x2e02, &intel_g45_info), /* IGD_E_G */ |
|
- | 218 | INTEL_VGA_DEVICE(0x2e12, &intel_g45_info), /* Q45_G */ |
|
- | 219 | INTEL_VGA_DEVICE(0x2e22, &intel_g45_info), /* G45_G */ |
|
- | 220 | INTEL_VGA_DEVICE(0x2e32, &intel_g45_info), /* G41_G */ |
|
- | 221 | INTEL_VGA_DEVICE(0x2e42, &intel_g45_info), /* B43_G */ |
|
- | 222 | INTEL_VGA_DEVICE(0x2e92, &intel_g45_info), /* B43_G.1 */ |
|
- | 223 | INTEL_VGA_DEVICE(0xa001, &intel_pineview_info), |
|
- | 224 | INTEL_VGA_DEVICE(0xa011, &intel_pineview_info), |
|
92 | static const struct pci_device_id pciidlist[] = { /* aka */ |
225 | INTEL_VGA_DEVICE(0x0042, &intel_ironlake_d_info), |
93 | INTEL_VGA_DEVICE(0x0102, &intel_sandybridge_d_info), |
226 | INTEL_VGA_DEVICE(0x0046, &intel_ironlake_m_info), |
94 | INTEL_VGA_DEVICE(0x0112, &intel_sandybridge_d_info), |
227 | INTEL_VGA_DEVICE(0x0102, &intel_sandybridge_d_info), |
95 | INTEL_VGA_DEVICE(0x0122, &intel_sandybridge_d_info), |
228 | INTEL_VGA_DEVICE(0x0112, &intel_sandybridge_d_info), |
96 | INTEL_VGA_DEVICE(0x0106, &intel_sandybridge_m_info), |
229 | INTEL_VGA_DEVICE(0x0122, &intel_sandybridge_d_info), |
97 | INTEL_VGA_DEVICE(0x0116, &intel_sandybridge_m_info), |
230 | INTEL_VGA_DEVICE(0x0106, &intel_sandybridge_m_info), |
98 | INTEL_VGA_DEVICE(0x0126, &intel_sandybridge_m_info), |
231 | INTEL_VGA_DEVICE(0x0116, &intel_sandybridge_m_info), |
- | 232 | INTEL_VGA_DEVICE(0x0126, &intel_sandybridge_m_info), |
|
- | 233 | INTEL_VGA_DEVICE(0x010A, &intel_sandybridge_d_info), |
|
- | 234 | INTEL_VGA_DEVICE(0x0156, &intel_ivybridge_m_info), /* GT1 mobile */ |
|
- | 235 | INTEL_VGA_DEVICE(0x0166, &intel_ivybridge_m_info), /* GT2 mobile */ |
|
- | 236 | INTEL_VGA_DEVICE(0x0152, &intel_ivybridge_d_info), /* GT1 desktop */ |
|
99 | INTEL_VGA_DEVICE(0x010A, &intel_sandybridge_d_info), |
237 | INTEL_VGA_DEVICE(0x0162, &intel_ivybridge_d_info), /* GT2 desktop */ |
100 | {0, 0, 0} |
238 | INTEL_VGA_DEVICE(0x015a, &intel_ivybridge_d_info), /* GT1 server */ |
Line 101... | Line 239... | ||
101 | }; |
239 | {0, 0, 0} |
102 | 240 | }; |