diff options
author | Eric Anholt <eric@anholt.net> | 2009-01-02 16:33:00 -0500 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2009-01-06 20:49:47 -0500 |
commit | 7d57382e65994ab7d01741373bd1c420370aed9f (patch) | |
tree | b0c3c5f9657a360db60c45b4c4091b7c027a637f /drivers/gpu/drm/i915/intel_display.c | |
parent | 3f8bc370ac679a5fe5c098f30d3cf8e80f62a9f8 (diff) |
drm/i915: Add support for integrated HDMI on G4X hardware.
This is ported directly from the userland 2D driver code. The HDMI audio bits
aren't hooked up yet.
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 1204d26b50db..67d06fd29d8c 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -751,6 +751,7 @@ static void intel_crtc_mode_set(struct drm_crtc *crtc, | |||
751 | is_lvds = true; | 751 | is_lvds = true; |
752 | break; | 752 | break; |
753 | case INTEL_OUTPUT_SDVO: | 753 | case INTEL_OUTPUT_SDVO: |
754 | case INTEL_OUTPUT_HDMI: | ||
754 | is_sdvo = true; | 755 | is_sdvo = true; |
755 | break; | 756 | break; |
756 | case INTEL_OUTPUT_DVO: | 757 | case INTEL_OUTPUT_DVO: |
@@ -1443,8 +1444,15 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
1443 | intel_lvds_init(dev); | 1444 | intel_lvds_init(dev); |
1444 | 1445 | ||
1445 | if (IS_I9XX(dev)) { | 1446 | if (IS_I9XX(dev)) { |
1446 | intel_sdvo_init(dev, SDVOB); | 1447 | int found; |
1447 | intel_sdvo_init(dev, SDVOC); | 1448 | |
1449 | found = intel_sdvo_init(dev, SDVOB); | ||
1450 | if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) | ||
1451 | intel_hdmi_init(dev, SDVOB); | ||
1452 | |||
1453 | found = intel_sdvo_init(dev, SDVOC); | ||
1454 | if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) | ||
1455 | intel_hdmi_init(dev, SDVOC); | ||
1448 | } else | 1456 | } else |
1449 | intel_dvo_init(dev); | 1457 | intel_dvo_init(dev); |
1450 | 1458 | ||
@@ -1458,6 +1466,11 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
1458 | 1466 | ||
1459 | /* valid crtcs */ | 1467 | /* valid crtcs */ |
1460 | switch(intel_output->type) { | 1468 | switch(intel_output->type) { |
1469 | case INTEL_OUTPUT_HDMI: | ||
1470 | crtc_mask = ((1 << 0)| | ||
1471 | (1 << 1)); | ||
1472 | clone_mask = ((1 << INTEL_OUTPUT_HDMI)); | ||
1473 | break; | ||
1461 | case INTEL_OUTPUT_DVO: | 1474 | case INTEL_OUTPUT_DVO: |
1462 | case INTEL_OUTPUT_SDVO: | 1475 | case INTEL_OUTPUT_SDVO: |
1463 | crtc_mask = ((1 << 0)| | 1476 | crtc_mask = ((1 << 0)| |