diff options
| author | Kristian Høgsberg <krh@bitplanet.net> | 2009-12-16 15:16:16 -0500 |
|---|---|---|
| committer | Eric Anholt <eric@anholt.net> | 2009-12-16 16:52:53 -0500 |
| commit | cfdf1fa23f4074c9f8766dc67a928bbf680b1ac9 (patch) | |
| tree | 447930bfa2f30e0e77e6ec24ed748f927e96f455 | |
| parent | 49ae35f2dd1ff78ee88d5f8a38d0af63c3ad9f71 (diff) | |
drm/i915: Implement IS_* macros using static tables
Instead of using the IS_I9XX etc macros that expand to a ton of
comparisons, use new struct intel_device_info to capture the
capabilities of the different chipsets. The drm_i915_private struct
will be initialized to point to the device info that correspond to
the actual device and this way, testing for a specific capability is
just a matter of checking a bit field.
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Eric Anholt <eric@anholt.net>
| -rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 144 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 112 |
3 files changed, 161 insertions, 99 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 701bfeac7f57..549e46c1a979 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
| @@ -1360,7 +1360,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) | |||
| 1360 | { | 1360 | { |
| 1361 | struct drm_i915_private *dev_priv = dev->dev_private; | 1361 | struct drm_i915_private *dev_priv = dev->dev_private; |
| 1362 | resource_size_t base, size; | 1362 | resource_size_t base, size; |
| 1363 | int ret = 0, mmio_bar = IS_I9XX(dev) ? 0 : 1; | 1363 | int ret = 0, mmio_bar; |
| 1364 | uint32_t agp_size, prealloc_size, prealloc_start; | 1364 | uint32_t agp_size, prealloc_size, prealloc_start; |
| 1365 | 1365 | ||
| 1366 | /* i915 has 4 more counters */ | 1366 | /* i915 has 4 more counters */ |
| @@ -1376,8 +1376,10 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) | |||
| 1376 | 1376 | ||
| 1377 | dev->dev_private = (void *)dev_priv; | 1377 | dev->dev_private = (void *)dev_priv; |
| 1378 | dev_priv->dev = dev; | 1378 | dev_priv->dev = dev; |
| 1379 | dev_priv->info = (struct intel_device_info *) flags; | ||
| 1379 | 1380 | ||
| 1380 | /* Add register map (needed for suspend/resume) */ | 1381 | /* Add register map (needed for suspend/resume) */ |
| 1382 | mmio_bar = IS_I9XX(dev) ? 0 : 1; | ||
| 1381 | base = drm_get_resource_start(dev, mmio_bar); | 1383 | base = drm_get_resource_start(dev, mmio_bar); |
| 1382 | size = drm_get_resource_len(dev, mmio_bar); | 1384 | size = drm_get_resource_len(dev, mmio_bar); |
| 1383 | 1385 | ||
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index b6ec949361e2..1b256de24563 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
| @@ -47,46 +47,122 @@ module_param_named(powersave, i915_powersave, int, 0400); | |||
| 47 | 47 | ||
| 48 | static struct drm_driver driver; | 48 | static struct drm_driver driver; |
| 49 | 49 | ||
| 50 | #define INTEL_VGA_DEVICE(id) { \ | 50 | #define INTEL_VGA_DEVICE(id, info) { \ |
| 51 | .class = PCI_CLASS_DISPLAY_VGA << 8, \ | 51 | .class = PCI_CLASS_DISPLAY_VGA << 8, \ |
| 52 | .class_mask = 0xffff00, \ | 52 | .class_mask = 0xffff00, \ |
| 53 | .vendor = 0x8086, \ | 53 | .vendor = 0x8086, \ |
| 54 | .device = id, \ | 54 | .device = id, \ |
| 55 | .subvendor = PCI_ANY_ID, \ | 55 | .subvendor = PCI_ANY_ID, \ |
| 56 | .subdevice = PCI_ANY_ID, \ | 56 | .subdevice = PCI_ANY_ID, \ |
| 57 | .driver_data = 0 } | 57 | .driver_data = (unsigned long) info } |
| 58 | 58 | ||
| 59 | static struct pci_device_id pciidlist[] = { | 59 | const static struct intel_device_info intel_i830_info = { |
| 60 | INTEL_VGA_DEVICE(0x3577), | 60 | .is_i8xx = 1, .is_mobile = 1, |
| 61 | INTEL_VGA_DEVICE(0x2562), | 61 | }; |
| 62 | INTEL_VGA_DEVICE(0x3582), | 62 | |
| 63 | INTEL_VGA_DEVICE(0x2572), | 63 | const static struct intel_device_info intel_845g_info = { |
| 64 | INTEL_VGA_DEVICE(0x2582), | 64 | .is_i8xx = 1, |
| 65 | INTEL_VGA_DEVICE(0x258a), | 65 | }; |
| 66 | INTEL_VGA_DEVICE(0x2592), | 66 | |
| 67 | INTEL_VGA_DEVICE(0x2772), | 67 | const static struct intel_device_info intel_i85x_info = { |
| 68 | INTEL_VGA_DEVICE(0x27a2), | 68 | .is_i8xx = 1, .is_mobile = 1, |
| 69 | INTEL_VGA_DEVICE(0x27ae), | 69 | }; |
| 70 | INTEL_VGA_DEVICE(0x2972), | 70 | |
| 71 | INTEL_VGA_DEVICE(0x2982), | 71 | const static struct intel_device_info intel_i865g_info = { |
| 72 | INTEL_VGA_DEVICE(0x2992), | 72 | .is_i8xx = 1, |
| 73 | INTEL_VGA_DEVICE(0x29a2), | 73 | }; |
| 74 | INTEL_VGA_DEVICE(0x29b2), | 74 | |
| 75 | INTEL_VGA_DEVICE(0x29c2), | 75 | const static struct intel_device_info intel_i915g_info = { |
| 76 | INTEL_VGA_DEVICE(0x29d2), | 76 | .is_i915g = 1, .is_i9xx = 1, |
| 77 | INTEL_VGA_DEVICE(0x2a02), | 77 | }; |
| 78 | INTEL_VGA_DEVICE(0x2a12), | 78 | const static struct intel_device_info intel_i915gm_info = { |
| 79 | INTEL_VGA_DEVICE(0x2a42), | 79 | .is_i9xx = 1, .is_mobile = 1, .has_fbc = 1, |
| 80 | INTEL_VGA_DEVICE(0x2e02), | 80 | }; |
| 81 | INTEL_VGA_DEVICE(0x2e12), | 81 | const static struct intel_device_info intel_i945g_info = { |
| 82 | INTEL_VGA_DEVICE(0x2e22), | 82 | .is_i9xx = 1, .has_hotplug = 1, |
| 83 | INTEL_VGA_DEVICE(0x2e32), | 83 | }; |
| 84 | INTEL_VGA_DEVICE(0x2e42), | 84 | const static struct intel_device_info intel_i945gm_info = { |
| 85 | INTEL_VGA_DEVICE(0xa001), | 85 | .is_i945gm = 1, .is_i9xx = 1, .is_mobile = 1, .has_fbc = 1, |
| 86 | INTEL_VGA_DEVICE(0xa011), | 86 | .has_hotplug = 1, |
| 87 | INTEL_VGA_DEVICE(0x35e8), | 87 | }; |
| 88 | INTEL_VGA_DEVICE(0x0042), | 88 | |
| 89 | INTEL_VGA_DEVICE(0x0046), | 89 | const static struct intel_device_info intel_i965g_info = { |
| 90 | .is_i965g = 1, .is_i9xx = 1, .has_hotplug = 1, | ||
| 91 | }; | ||
| 92 | |||
| 93 | const static struct intel_device_info intel_i965gm_info = { | ||
| 94 | .is_i965g = 1, .is_mobile = 1, .is_i965gm = 1, .is_i9xx = 1, | ||
| 95 | .is_mobile = 1, .has_fbc = 1, .has_rc6 = 1, | ||
| 96 | .has_hotplug = 1, | ||
| 97 | }; | ||
| 98 | |||
| 99 | const static struct intel_device_info intel_g33_info = { | ||
| 100 | .is_g33 = 1, .is_i9xx = 1, .need_gfx_hws = 1, | ||
| 101 | .has_hotplug = 1, | ||
| 102 | }; | ||
| 103 | |||
| 104 | const static struct intel_device_info intel_g45_info = { | ||
| 105 | .is_i965g = 1, .is_g4x = 1, .is_i9xx = 1, .need_gfx_hws = 1, | ||
| 106 | .has_pipe_cxsr = 1, | ||
| 107 | .has_hotplug = 1, | ||
| 108 | }; | ||
| 109 | |||
| 110 | const static struct intel_device_info intel_gm45_info = { | ||
| 111 | .is_i965g = 1, .is_mobile = 1, .is_g4x = 1, .is_i9xx = 1, | ||
| 112 | .is_mobile = 1, .need_gfx_hws = 1, .has_fbc = 1, .has_rc6 = 1, | ||
| 113 | .has_pipe_cxsr = 1, | ||
| 114 | .has_hotplug = 1, | ||
| 115 | }; | ||
| 116 | |||
| 117 | const static struct intel_device_info intel_pineview_info = { | ||
| 118 | .is_g33 = 1, .is_pineview = 1, .is_mobile = 1, .is_i9xx = 1, | ||
| 119 | .has_pipe_cxsr = 1, | ||
| 120 | .has_hotplug = 1, | ||
| 121 | }; | ||
| 122 | |||
| 123 | const static struct intel_device_info intel_ironlake_d_info = { | ||
| 124 | .is_ironlake = 1, .is_i965g = 1, .is_i9xx = 1, .need_gfx_hws = 1, | ||
| 125 | .has_pipe_cxsr = 1, | ||
| 126 | .has_hotplug = 1, | ||
| 127 | }; | ||
| 128 | |||
| 129 | const static struct intel_device_info intel_ironlake_m_info = { | ||
| 130 | .is_ironlake = 1, .is_mobile = 1, .is_i965g = 1, .is_i9xx = 1, | ||
| 131 | .need_gfx_hws = 1, .has_rc6 = 1, | ||
| 132 | .has_hotplug = 1, | ||
| 133 | }; | ||
| 134 | |||
| 135 | const static struct pci_device_id pciidlist[] = { | ||
| 136 | INTEL_VGA_DEVICE(0x3577, &intel_i830_info), | ||
| 137 | INTEL_VGA_DEVICE(0x2562, &intel_845g_info), | ||
| 138 | INTEL_VGA_DEVICE(0x3582, &intel_i85x_info), | ||
| 139 | INTEL_VGA_DEVICE(0x35e8, &intel_i85x_info), | ||
| 140 | INTEL_VGA_DEVICE(0x2572, &intel_i865g_info), | ||
| 141 | INTEL_VGA_DEVICE(0x2582, &intel_i915g_info), | ||
| 142 | INTEL_VGA_DEVICE(0x258a, &intel_i915g_info), | ||
| 143 | INTEL_VGA_DEVICE(0x2592, &intel_i915gm_info), | ||
| 144 | INTEL_VGA_DEVICE(0x2772, &intel_i945g_info), | ||
| 145 | INTEL_VGA_DEVICE(0x27a2, &intel_i945gm_info), | ||
| 146 | INTEL_VGA_DEVICE(0x27ae, &intel_i945gm_info), | ||
| 147 | INTEL_VGA_DEVICE(0x2972, &intel_i965g_info), | ||
| 148 | INTEL_VGA_DEVICE(0x2982, &intel_i965g_info), | ||
| 149 | INTEL_VGA_DEVICE(0x2992, &intel_i965g_info), | ||
| 150 | INTEL_VGA_DEVICE(0x29a2, &intel_i965g_info), | ||
| 151 | INTEL_VGA_DEVICE(0x29b2, &intel_g33_info), | ||
| 152 | INTEL_VGA_DEVICE(0x29c2, &intel_g33_info), | ||
| 153 | INTEL_VGA_DEVICE(0x29d2, &intel_g33_info), | ||
| 154 | INTEL_VGA_DEVICE(0x2a02, &intel_i965gm_info), | ||
| 155 | INTEL_VGA_DEVICE(0x2a12, &intel_i965gm_info), | ||
| 156 | INTEL_VGA_DEVICE(0x2a42, &intel_gm45_info), | ||
| 157 | INTEL_VGA_DEVICE(0x2e02, &intel_g45_info), | ||
| 158 | INTEL_VGA_DEVICE(0x2e12, &intel_g45_info), | ||
| 159 | INTEL_VGA_DEVICE(0x2e22, &intel_g45_info), | ||
| 160 | INTEL_VGA_DEVICE(0x2e32, &intel_g45_info), | ||
| 161 | INTEL_VGA_DEVICE(0x2e42, &intel_g45_info), | ||
| 162 | INTEL_VGA_DEVICE(0xa001, &intel_pineview_info), | ||
| 163 | INTEL_VGA_DEVICE(0xa011, &intel_pineview_info), | ||
| 164 | INTEL_VGA_DEVICE(0x0042, &intel_ironlake_d_info), | ||
| 165 | INTEL_VGA_DEVICE(0x0046, &intel_ironlake_m_info), | ||
| 90 | {0, 0, 0} | 166 | {0, 0, 0} |
| 91 | }; | 167 | }; |
| 92 | 168 | ||
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 25c1047f6ecd..0d24e034dc23 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
| @@ -172,9 +172,30 @@ struct drm_i915_display_funcs { | |||
| 172 | 172 | ||
| 173 | struct intel_overlay; | 173 | struct intel_overlay; |
| 174 | 174 | ||
| 175 | struct intel_device_info { | ||
| 176 | u8 is_mobile : 1; | ||
| 177 | u8 is_i8xx : 1; | ||
| 178 | u8 is_i915g : 1; | ||
| 179 | u8 is_i9xx : 1; | ||
| 180 | u8 is_i945gm : 1; | ||
| 181 | u8 is_i965g : 1; | ||
| 182 | u8 is_i965gm : 1; | ||
| 183 | u8 is_g33 : 1; | ||
| 184 | u8 need_gfx_hws : 1; | ||
| 185 | u8 is_g4x : 1; | ||
| 186 | u8 is_pineview : 1; | ||
| 187 | u8 is_ironlake : 1; | ||
| 188 | u8 has_fbc : 1; | ||
| 189 | u8 has_rc6 : 1; | ||
| 190 | u8 has_pipe_cxsr : 1; | ||
| 191 | u8 has_hotplug : 1; | ||
| 192 | }; | ||
| 193 | |||
| 175 | typedef struct drm_i915_private { | 194 | typedef struct drm_i915_private { |
| 176 | struct drm_device *dev; | 195 | struct drm_device *dev; |
| 177 | 196 | ||
| 197 | const struct intel_device_info *info; | ||
| 198 | |||
| 178 | int has_gem; | 199 | int has_gem; |
| 179 | 200 | ||
| 180 | void __iomem *regs; | 201 | void __iomem *regs; |
| @@ -983,67 +1004,33 @@ extern void g4x_disable_fbc(struct drm_device *dev); | |||
| 983 | extern int i915_wrap_ring(struct drm_device * dev); | 1004 | extern int i915_wrap_ring(struct drm_device * dev); |
| 984 | extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | 1005 | extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); |
| 985 | 1006 | ||
| 986 | #define IS_I830(dev) ((dev)->pci_device == 0x3577) | 1007 | #define INTEL_INFO(dev) (((struct drm_i915_private *) (dev)->dev_private)->info) |
| 987 | #define IS_845G(dev) ((dev)->pci_device == 0x2562) | 1008 | |
| 988 | #define IS_I85X(dev) ((dev)->pci_device == 0x3582) | 1009 | #define IS_I830(dev) ((dev)->pci_device == 0x3577) |
| 989 | #define IS_I865G(dev) ((dev)->pci_device == 0x2572) | 1010 | #define IS_845G(dev) ((dev)->pci_device == 0x2562) |
| 990 | #define IS_I8XX(dev) (IS_I830(dev) || IS_845G(dev) || IS_I85X(dev) || IS_I865G(dev)) | 1011 | #define IS_I85X(dev) ((dev)->pci_device == 0x3582) |
| 991 | 1012 | #define IS_I865G(dev) ((dev)->pci_device == 0x2572) | |
| 992 | #define IS_I915G(dev) ((dev)->pci_device == 0x2582 || (dev)->pci_device == 0x258a) | 1013 | #define IS_I8XX(dev) (INTEL_INFO(dev)->is_i8xx) |
| 993 | #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) | 1014 | #define IS_I915G(dev) (INTEL_INFO(dev)->is_i915g) |
| 994 | #define IS_I945G(dev) ((dev)->pci_device == 0x2772) | 1015 | #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) |
| 995 | #define IS_I945GM(dev) ((dev)->pci_device == 0x27A2 ||\ | 1016 | #define IS_I945G(dev) ((dev)->pci_device == 0x2772) |
| 996 | (dev)->pci_device == 0x27AE) | 1017 | #define IS_I945GM(dev) (INTEL_INFO(dev)->is_i945gm) |
| 997 | #define IS_I965G(dev) ((dev)->pci_device == 0x2972 || \ | 1018 | #define IS_I965G(dev) (INTEL_INFO(dev)->is_i965g) |
| 998 | (dev)->pci_device == 0x2982 || \ | 1019 | #define IS_I965GM(dev) (INTEL_INFO(dev)->is_i965gm) |
| 999 | (dev)->pci_device == 0x2992 || \ | 1020 | #define IS_GM45(dev) ((dev)->pci_device == 0x2A42) |
| 1000 | (dev)->pci_device == 0x29A2 || \ | 1021 | #define IS_G4X(dev) (INTEL_INFO(dev)->is_g4x) |
| 1001 | (dev)->pci_device == 0x2A02 || \ | 1022 | #define IS_PINEVIEW_G(dev) ((dev)->pci_device == 0xa001) |
| 1002 | (dev)->pci_device == 0x2A12 || \ | 1023 | #define IS_PINEVIEW_M(dev) ((dev)->pci_device == 0xa011) |
| 1003 | (dev)->pci_device == 0x2A42 || \ | 1024 | #define IS_PINEVIEW(dev) (INTEL_INFO(dev)->is_pineview) |
| 1004 | (dev)->pci_device == 0x2E02 || \ | 1025 | #define IS_G33(dev) (INTEL_INFO(dev)->is_g33) |
| 1005 | (dev)->pci_device == 0x2E12 || \ | ||
| 1006 | (dev)->pci_device == 0x2E22 || \ | ||
| 1007 | (dev)->pci_device == 0x2E32 || \ | ||
| 1008 | (dev)->pci_device == 0x2E42 || \ | ||
| 1009 | (dev)->pci_device == 0x0042 || \ | ||
| 1010 | (dev)->pci_device == 0x0046) | ||
| 1011 | |||
| 1012 | #define IS_I965GM(dev) ((dev)->pci_device == 0x2A02 || \ | ||
| 1013 | (dev)->pci_device == 0x2A12) | ||
| 1014 | |||
| 1015 | #define IS_GM45(dev) ((dev)->pci_device == 0x2A42) | ||
| 1016 | |||
| 1017 | #define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \ | ||
| 1018 | (dev)->pci_device == 0x2E12 || \ | ||
| 1019 | (dev)->pci_device == 0x2E22 || \ | ||
| 1020 | (dev)->pci_device == 0x2E32 || \ | ||
| 1021 | (dev)->pci_device == 0x2E42 || \ | ||
| 1022 | IS_GM45(dev)) | ||
| 1023 | |||
| 1024 | #define IS_PINEVIEW_G(dev) ((dev)->pci_device == 0xa001) | ||
| 1025 | #define IS_PINEVIEW_M(dev) ((dev)->pci_device == 0xa011) | ||
| 1026 | #define IS_PINEVIEW(dev) (IS_PINEVIEW_G(dev) || IS_PINEVIEW_M(dev)) | ||
| 1027 | |||
| 1028 | #define IS_G33(dev) ((dev)->pci_device == 0x29C2 || \ | ||
| 1029 | (dev)->pci_device == 0x29B2 || \ | ||
| 1030 | (dev)->pci_device == 0x29D2 || \ | ||
| 1031 | (IS_PINEVIEW(dev))) | ||
| 1032 | |||
| 1033 | #define IS_IRONLAKE_D(dev) ((dev)->pci_device == 0x0042) | 1026 | #define IS_IRONLAKE_D(dev) ((dev)->pci_device == 0x0042) |
| 1034 | #define IS_IRONLAKE_M(dev) ((dev)->pci_device == 0x0046) | 1027 | #define IS_IRONLAKE_M(dev) ((dev)->pci_device == 0x0046) |
| 1035 | #define IS_IRONLAKE(dev) (IS_IRONLAKE_D(dev) || IS_IRONLAKE_M(dev)) | 1028 | #define IS_IRONLAKE(dev) (INTEL_INFO(dev)->is_ironlake) |
| 1036 | 1029 | #define IS_I9XX(dev) (INTEL_INFO(dev)->is_i9xx) | |
| 1037 | #define IS_I9XX(dev) (IS_I915G(dev) || IS_I915GM(dev) || IS_I945G(dev) || \ | 1030 | #define IS_MOBILE(dev) (INTEL_INFO(dev)->is_mobile) |
| 1038 | IS_I945GM(dev) || IS_I965G(dev) || IS_G33(dev) || \ | ||
| 1039 | IS_IRONLAKE(dev)) | ||
| 1040 | 1031 | ||
| 1041 | #define IS_MOBILE(dev) (IS_I830(dev) || IS_I85X(dev) || IS_I915GM(dev) || \ | 1032 | #define I915_NEED_GFX_HWS(dev) (INTEL_INFO(dev)->need_gfx_hws) |
| 1042 | IS_I945GM(dev) || IS_I965GM(dev) || IS_GM45(dev) || \ | ||
| 1043 | IS_PINEVIEW(dev) || IS_IRONLAKE_M(dev)) | ||
| 1044 | 1033 | ||
| 1045 | #define I915_NEED_GFX_HWS(dev) (IS_G33(dev) || IS_GM45(dev) || IS_G4X(dev) || \ | ||
| 1046 | IS_IRONLAKE(dev)) | ||
| 1047 | /* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte | 1034 | /* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte |
| 1048 | * rows, which changed the alignment requirements and fence programming. | 1035 | * rows, which changed the alignment requirements and fence programming. |
| 1049 | */ | 1036 | */ |
| @@ -1055,17 +1042,14 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 1055 | #define SUPPORTS_EDP(dev) (IS_IRONLAKE_M(dev)) | 1042 | #define SUPPORTS_EDP(dev) (IS_IRONLAKE_M(dev)) |
| 1056 | #define SUPPORTS_TV(dev) (IS_I9XX(dev) && IS_MOBILE(dev) && \ | 1043 | #define SUPPORTS_TV(dev) (IS_I9XX(dev) && IS_MOBILE(dev) && \ |
| 1057 | !IS_IRONLAKE(dev) && !IS_PINEVIEW(dev)) | 1044 | !IS_IRONLAKE(dev) && !IS_PINEVIEW(dev)) |
| 1058 | #define I915_HAS_HOTPLUG(dev) (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev) || IS_I965G(dev)) | 1045 | #define I915_HAS_HOTPLUG(dev) (INTEL_INFO(dev)->has_hotplug) |
| 1059 | /* dsparb controlled by hw only */ | 1046 | /* dsparb controlled by hw only */ |
| 1060 | #define DSPARB_HWCONTROL(dev) (IS_G4X(dev) || IS_IRONLAKE(dev)) | 1047 | #define DSPARB_HWCONTROL(dev) (IS_G4X(dev) || IS_IRONLAKE(dev)) |
| 1061 | 1048 | ||
| 1062 | #define HAS_FW_BLC(dev) (IS_I9XX(dev) || IS_G4X(dev) || IS_IRONLAKE(dev)) | 1049 | #define HAS_FW_BLC(dev) (IS_I9XX(dev) || IS_G4X(dev) || IS_IRONLAKE(dev)) |
| 1063 | #define HAS_PIPE_CXSR(dev) (IS_G4X(dev) || IS_IRONLAKE(dev)) | 1050 | #define HAS_PIPE_CXSR(dev) (INTEL_INFO(dev)->has_pipe_cxsr) |
| 1064 | #define I915_HAS_FBC(dev) (IS_MOBILE(dev) && \ | 1051 | #define I915_HAS_FBC(dev) (INTEL_INFO(dev)->has_fbc) |
| 1065 | (IS_I9XX(dev) || IS_GM45(dev)) && \ | 1052 | #define I915_HAS_RC6(dev) (INTEL_INFO(dev)->has_rc6) |
| 1066 | !IS_PINEVIEW(dev) && \ | ||
| 1067 | !IS_IRONLAKE(dev)) | ||
| 1068 | #define I915_HAS_RC6(dev) (IS_I965GM(dev) || IS_GM45(dev) || IS_IRONLAKE_M(dev)) | ||
| 1069 | 1053 | ||
| 1070 | #define PRIMARY_RINGBUFFER_SIZE (128*1024) | 1054 | #define PRIMARY_RINGBUFFER_SIZE (128*1024) |
| 1071 | 1055 | ||
