diff options
| author | Zhenyu Wang <zhenyuw@linux.intel.com> | 2009-11-26 22:44:36 -0500 |
|---|---|---|
| committer | Eric Anholt <eric@anholt.net> | 2009-12-01 12:00:04 -0500 |
| commit | 103a196f4224dc6872081305cf7f82ebf67aa7bd (patch) | |
| tree | 7f204130719c2bd25e8de219d078a9e4f2a0b128 | |
| parent | c35614380d5c956bfda20eab2755b2f5a7d6f1e7 (diff) | |
drm/i915: PineView only has LVDS and CRT ports
PineView only has 2 ports for LVDS and CRT. Don't enable other
ports for it.
Cc: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index cc91cff8871c..450dcf0d25c8 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
| @@ -964,6 +964,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 964 | #define IS_845G(dev) ((dev)->pci_device == 0x2562) | 964 | #define IS_845G(dev) ((dev)->pci_device == 0x2562) |
| 965 | #define IS_I85X(dev) ((dev)->pci_device == 0x3582) | 965 | #define IS_I85X(dev) ((dev)->pci_device == 0x3582) |
| 966 | #define IS_I865G(dev) ((dev)->pci_device == 0x2572) | 966 | #define IS_I865G(dev) ((dev)->pci_device == 0x2572) |
| 967 | #define IS_I8XX(dev) (IS_I830(dev) || IS_845G(dev) || IS_I85X(dev) || IS_I865G(dev)) | ||
| 967 | 968 | ||
| 968 | #define IS_I915G(dev) ((dev)->pci_device == 0x2582 || (dev)->pci_device == 0x258a) | 969 | #define IS_I915G(dev) ((dev)->pci_device == 0x2582 || (dev)->pci_device == 0x258a) |
| 969 | #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) | 970 | #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) |
| @@ -1025,9 +1026,12 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 1025 | */ | 1026 | */ |
| 1026 | #define HAS_128_BYTE_Y_TILING(dev) (IS_I9XX(dev) && !(IS_I915G(dev) || \ | 1027 | #define HAS_128_BYTE_Y_TILING(dev) (IS_I9XX(dev) && !(IS_I915G(dev) || \ |
| 1027 | IS_I915GM(dev))) | 1028 | IS_I915GM(dev))) |
| 1029 | #define SUPPORTS_DIGITAL_OUTPUTS(dev) (IS_I9XX(dev) && !IS_IGD(dev)) | ||
| 1028 | #define SUPPORTS_INTEGRATED_HDMI(dev) (IS_G4X(dev) || IS_IGDNG(dev)) | 1030 | #define SUPPORTS_INTEGRATED_HDMI(dev) (IS_G4X(dev) || IS_IGDNG(dev)) |
| 1029 | #define SUPPORTS_INTEGRATED_DP(dev) (IS_G4X(dev) || IS_IGDNG(dev)) | 1031 | #define SUPPORTS_INTEGRATED_DP(dev) (IS_G4X(dev) || IS_IGDNG(dev)) |
| 1030 | #define SUPPORTS_EDP(dev) (IS_IGDNG_M(dev)) | 1032 | #define SUPPORTS_EDP(dev) (IS_IGDNG_M(dev)) |
| 1033 | #define SUPPORTS_TV(dev) (IS_I9XX(dev) && IS_MOBILE(dev) && \ | ||
| 1034 | !IS_IGDNG(dev) && !IS_IGD(dev)) | ||
| 1031 | #define I915_HAS_HOTPLUG(dev) (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev) || IS_I965G(dev)) | 1035 | #define I915_HAS_HOTPLUG(dev) (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev) || IS_I965G(dev)) |
| 1032 | /* dsparb controlled by hw only */ | 1036 | /* dsparb controlled by hw only */ |
| 1033 | #define DSPARB_HWCONTROL(dev) (IS_G4X(dev) || IS_IGDNG(dev)) | 1037 | #define DSPARB_HWCONTROL(dev) (IS_G4X(dev) || IS_IGDNG(dev)) |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index d2519f0136ef..002c07daf9b8 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
| @@ -4219,7 +4219,7 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
| 4219 | if (I915_READ(PCH_DP_D) & DP_DETECTED) | 4219 | if (I915_READ(PCH_DP_D) & DP_DETECTED) |
| 4220 | intel_dp_init(dev, PCH_DP_D); | 4220 | intel_dp_init(dev, PCH_DP_D); |
| 4221 | 4221 | ||
| 4222 | } else if (IS_I9XX(dev)) { | 4222 | } else if (SUPPORTS_DIGITAL_OUTPUTS(dev)) { |
| 4223 | bool found = false; | 4223 | bool found = false; |
| 4224 | 4224 | ||
| 4225 | if (I915_READ(SDVOB) & SDVO_DETECTED) { | 4225 | if (I915_READ(SDVOB) & SDVO_DETECTED) { |
| @@ -4246,10 +4246,10 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
| 4246 | 4246 | ||
| 4247 | if (SUPPORTS_INTEGRATED_DP(dev) && (I915_READ(DP_D) & DP_DETECTED)) | 4247 | if (SUPPORTS_INTEGRATED_DP(dev) && (I915_READ(DP_D) & DP_DETECTED)) |
| 4248 | intel_dp_init(dev, DP_D); | 4248 | intel_dp_init(dev, DP_D); |
| 4249 | } else | 4249 | } else if (IS_I8XX(dev)) |
| 4250 | intel_dvo_init(dev); | 4250 | intel_dvo_init(dev); |
| 4251 | 4251 | ||
| 4252 | if (IS_I9XX(dev) && IS_MOBILE(dev) && !IS_IGDNG(dev)) | 4252 | if (SUPPORTS_TV(dev)) |
| 4253 | intel_tv_init(dev); | 4253 | intel_tv_init(dev); |
| 4254 | 4254 | ||
| 4255 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { | 4255 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { |
