diff options
| -rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index a43c98e3f077..da4ab4dc1630 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c | |||
| @@ -1490,6 +1490,27 @@ static struct input_res { | |||
| 1490 | {"1920x1080", 1920, 1080}, | 1490 | {"1920x1080", 1920, 1080}, |
| 1491 | }; | 1491 | }; |
| 1492 | 1492 | ||
| 1493 | /* | ||
| 1494 | * Chose preferred mode according to line number of TV format | ||
| 1495 | */ | ||
| 1496 | static void | ||
| 1497 | intel_tv_chose_preferred_modes(struct drm_connector *connector, | ||
| 1498 | struct drm_display_mode *mode_ptr) | ||
| 1499 | { | ||
| 1500 | struct intel_output *intel_output = to_intel_output(connector); | ||
| 1501 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_output); | ||
| 1502 | |||
| 1503 | if (tv_mode->nbr_end < 480 && mode_ptr->vdisplay == 480) | ||
| 1504 | mode_ptr->type |= DRM_MODE_TYPE_PREFERRED; | ||
| 1505 | else if (tv_mode->nbr_end > 480) { | ||
| 1506 | if (tv_mode->progressive == true && tv_mode->nbr_end < 720) { | ||
| 1507 | if (mode_ptr->vdisplay == 720) | ||
| 1508 | mode_ptr->type |= DRM_MODE_TYPE_PREFERRED; | ||
| 1509 | } else if (mode_ptr->vdisplay == 1080) | ||
| 1510 | mode_ptr->type |= DRM_MODE_TYPE_PREFERRED; | ||
| 1511 | } | ||
| 1512 | } | ||
| 1513 | |||
| 1493 | /** | 1514 | /** |
| 1494 | * Stub get_modes function. | 1515 | * Stub get_modes function. |
| 1495 | * | 1516 | * |
| @@ -1544,6 +1565,7 @@ intel_tv_get_modes(struct drm_connector *connector) | |||
| 1544 | mode_ptr->clock = (int) tmp; | 1565 | mode_ptr->clock = (int) tmp; |
| 1545 | 1566 | ||
| 1546 | mode_ptr->type = DRM_MODE_TYPE_DRIVER; | 1567 | mode_ptr->type = DRM_MODE_TYPE_DRIVER; |
| 1568 | intel_tv_chose_preferred_modes(connector, mode_ptr); | ||
| 1547 | drm_mode_probed_add(connector, mode_ptr); | 1569 | drm_mode_probed_add(connector, mode_ptr); |
| 1548 | count++; | 1570 | count++; |
| 1549 | } | 1571 | } |
