diff options
-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 2fbe13a0de81..a6c686cded54 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 | ||