diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-21 11:10:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-21 11:10:09 -0400 |
commit | 44040f107e64d689ccd3211ac62c6bc44f3f0775 (patch) | |
tree | f85059028aa570e758c7fb272fd8cf823ab4f119 /drivers/gpu/drm/i915/intel_tv.c | |
parent | 388dba30471c236a290c4082bce5f2b5cd1a7a06 (diff) | |
parent | 28d520433b6375740990ab99d69b0d0067fd656b (diff) |
Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (133 commits)
drm/vgaarb: add VGA arbitration support to the drm and kms.
drm/radeon: some r420s have a CP race with the DMA engine.
drm/radeon/r600/kms: rv670 is not DCE3
drm/radeon/kms: r420 idle after programming GA_ENHANCE
drm/radeon/kms: more fixes to rv770 suspend/resume path.
drm/radeon/kms: more alignment for rv770.c with r600.c
drm/radeon/kms: rv770 blit init called too late.
drm/radeon/kms: move around new init path code to avoid posting at init
drm/radeon/r600: fix some issues with suspend/resume.
drm/radeon/kms: disable VGA rendering engine before taking over VRAM
drm/radeon/kms: Move radeon_get_clock_info() call out of radeon_clocks_init().
drm/radeon/kms: add initial connector properties
drm/radeon/kms: Use surfaces for scanout / cursor byte swapping on big endian.
drm/radeon/kms: don't fail if we fail to init GPU acceleration
drm/r600/kms: fixup number of loops per blit calculation.
drm/radeon/kms: reprogram format in set base.
drm/radeon: avivo chips have no separate int bit for display
drm/radeon/r600: don't do interrupts
drm: fix _DRM_GEM addmap error message
drm: update crtc x/y when only fb changes
...
Fixed up trivial conflicts in firmware/Makefile due to network driver
(cxgb3) and drm (mga/r128/radeon) firmware being listed next to each
other.
Diffstat (limited to 'drivers/gpu/drm/i915/intel_tv.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index 5b1c9e9fdba0..c64eab493fb0 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c | |||
@@ -1437,6 +1437,35 @@ intel_tv_detect_type (struct drm_crtc *crtc, struct intel_output *intel_output) | |||
1437 | return type; | 1437 | return type; |
1438 | } | 1438 | } |
1439 | 1439 | ||
1440 | /* | ||
1441 | * Here we set accurate tv format according to connector type | ||
1442 | * i.e Component TV should not be assigned by NTSC or PAL | ||
1443 | */ | ||
1444 | static void intel_tv_find_better_format(struct drm_connector *connector) | ||
1445 | { | ||
1446 | struct intel_output *intel_output = to_intel_output(connector); | ||
1447 | struct intel_tv_priv *tv_priv = intel_output->dev_priv; | ||
1448 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_output); | ||
1449 | int i; | ||
1450 | |||
1451 | if ((tv_priv->type == DRM_MODE_CONNECTOR_Component) == | ||
1452 | tv_mode->component_only) | ||
1453 | return; | ||
1454 | |||
1455 | |||
1456 | for (i = 0; i < sizeof(tv_modes) / sizeof(*tv_modes); i++) { | ||
1457 | tv_mode = tv_modes + i; | ||
1458 | |||
1459 | if ((tv_priv->type == DRM_MODE_CONNECTOR_Component) == | ||
1460 | tv_mode->component_only) | ||
1461 | break; | ||
1462 | } | ||
1463 | |||
1464 | tv_priv->tv_format = tv_mode->name; | ||
1465 | drm_connector_property_set_value(connector, | ||
1466 | connector->dev->mode_config.tv_mode_property, i); | ||
1467 | } | ||
1468 | |||
1440 | /** | 1469 | /** |
1441 | * Detect the TV connection. | 1470 | * Detect the TV connection. |
1442 | * | 1471 | * |
@@ -1473,6 +1502,7 @@ intel_tv_detect(struct drm_connector *connector) | |||
1473 | if (type < 0) | 1502 | if (type < 0) |
1474 | return connector_status_disconnected; | 1503 | return connector_status_disconnected; |
1475 | 1504 | ||
1505 | intel_tv_find_better_format(connector); | ||
1476 | return connector_status_connected; | 1506 | return connector_status_connected; |
1477 | } | 1507 | } |
1478 | 1508 | ||