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) { |