Lines Matching +full:abs +full:- +full:flat

2  * Copyright © 2006-2008 Intel Corporation
30 * Integrated TV-out support for the 915GM and 945GM.
127 * ee = 00 = 10^-1 (0.mmmmmmmmm)
128 * ee = 01 = 10^-2 (0.0mmmmmmmmm)
129 * ee = 10 = 10^-3 (0.00mmmmmmmmm)
130 * ee = 11 = 10^-4 (0.000mmmmmmmmm)
133 * eee = 000 = 10^-1 (0.mmmmmmmmm)
134 * eee = 001 = 10^-2 (0.0mmmmmmmmm)
135 * eee = 010 = 10^-3 (0.00mmmmmmmmm)
136 * eee = 011 = 10^-4 (0.000mmmmmmmmm)
145 * ee = 00 = 10^-1 (0.mmmmmm)
160 * f = -f;
170 * mant = (1 << 9) - 1;
179 * s-video cable to the sky... or something.
181 * Pre-converted to appropriate hex value.
185 * PAL & NTSC values for composite & s-video connections
360 * dda2 = dda1_ideal - dda1_inc
376 * These values account for -1s required.
380 .name = "NTSC-M",
385 /* 525 Lines, 60 Fields, 15.734KHz line, Sub-Carrier 3.580MHz */
423 .name = "NTSC-443",
428 /* 525 Lines, 60 Fields, 15.734KHz line, Sub-Carrier 4.43MHz */
465 .name = "NTSC-J",
471 /* 525 Lines, 60 Fields, 15.734KHz line, Sub-Carrier 3.580MHz */
508 .name = "PAL-M",
514 /* 525 Lines, 60 Fields, 15.734KHz line, Sub-Carrier 3.580MHz */
551 /* 625 Lines, 50 Fields, 15.625KHz line, Sub-Carrier 4.434MHz */
552 .name = "PAL-N",
596 /* 625 Lines, 50 Fields, 15.625KHz line, Sub-Carrier 4.434MHz */
887 state = kmemdup(connector->state, sizeof(*state), GFP_KERNEL); in intel_tv_connector_duplicate_state()
891 __drm_atomic_helper_connector_duplicate_state(connector, &state->base); in intel_tv_connector_duplicate_state()
892 return &state->base; in intel_tv_connector_duplicate_state()
908 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_tv_get_hw_state()
922 struct drm_device *dev = encoder->base.dev; in intel_enable_tv()
927 to_intel_crtc(pipe_config->uapi.crtc)->pipe); in intel_enable_tv()
939 struct drm_device *dev = encoder->base.dev; in intel_disable_tv()
948 int format = conn_state->tv.mode; in intel_tv_mode_find()
957 const struct tv_mode *tv_mode = intel_tv_mode_find(connector->state); in intel_tv_mode_valid()
958 int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; in intel_tv_mode_valid()
960 if (mode->flags & DRM_MODE_FLAG_DBLSCAN) in intel_tv_mode_valid()
963 if (mode->clock > max_dotclk) in intel_tv_mode_valid()
967 if (abs(tv_mode->refresh - drm_mode_vrefresh(mode) * 1000) >= 1000) in intel_tv_mode_valid()
976 if (tv_mode->progressive) in intel_tv_mode_vdisplay()
977 return tv_mode->nbr_end + 1; in intel_tv_mode_vdisplay()
979 return 2 * (tv_mode->nbr_end + 1); in intel_tv_mode_vdisplay()
986 mode->clock = tv_mode->clock / in intel_tv_mode_to_mode()
987 (tv_mode->oversample >> !tv_mode->progressive); in intel_tv_mode_to_mode()
1000 mode->hdisplay = in intel_tv_mode_to_mode()
1001 tv_mode->hblank_start - tv_mode->hblank_end; in intel_tv_mode_to_mode()
1002 mode->hsync_start = mode->hdisplay + in intel_tv_mode_to_mode()
1003 tv_mode->htotal - tv_mode->hblank_start; in intel_tv_mode_to_mode()
1004 mode->hsync_end = mode->hsync_start + in intel_tv_mode_to_mode()
1005 tv_mode->hsync_end; in intel_tv_mode_to_mode()
1006 mode->htotal = tv_mode->htotal + 1; in intel_tv_mode_to_mode()
1019 mode->vdisplay = intel_tv_mode_vdisplay(tv_mode); in intel_tv_mode_to_mode()
1020 if (tv_mode->progressive) { in intel_tv_mode_to_mode()
1021 mode->vsync_start = mode->vdisplay + in intel_tv_mode_to_mode()
1022 tv_mode->vsync_start_f1 + 1; in intel_tv_mode_to_mode()
1023 mode->vsync_end = mode->vsync_start + in intel_tv_mode_to_mode()
1024 tv_mode->vsync_len; in intel_tv_mode_to_mode()
1025 mode->vtotal = mode->vdisplay + in intel_tv_mode_to_mode()
1026 tv_mode->vi_end_f1 + 1; in intel_tv_mode_to_mode()
1028 mode->vsync_start = mode->vdisplay + in intel_tv_mode_to_mode()
1029 tv_mode->vsync_start_f1 + 1 + in intel_tv_mode_to_mode()
1030 tv_mode->vsync_start_f2 + 1; in intel_tv_mode_to_mode()
1031 mode->vsync_end = mode->vsync_start + in intel_tv_mode_to_mode()
1032 2 * tv_mode->vsync_len; in intel_tv_mode_to_mode()
1033 mode->vtotal = mode->vdisplay + in intel_tv_mode_to_mode()
1034 tv_mode->vi_end_f1 + 1 + in intel_tv_mode_to_mode()
1035 tv_mode->vi_end_f2 + 1; in intel_tv_mode_to_mode()
1039 mode->flags = 0; in intel_tv_mode_to_mode()
1041 snprintf(mode->name, sizeof(mode->name), in intel_tv_mode_to_mode()
1043 mode->hdisplay, mode->vdisplay, in intel_tv_mode_to_mode()
1044 tv_mode->progressive ? 'p' : 'i', in intel_tv_mode_to_mode()
1045 tv_mode->name); in intel_tv_mode_to_mode()
1052 int hsync_start = mode->hsync_start - mode->hdisplay + right_margin; in intel_tv_scale_mode_horiz()
1053 int hsync_end = mode->hsync_end - mode->hdisplay + right_margin; in intel_tv_scale_mode_horiz()
1054 int new_htotal = mode->htotal * hdisplay / in intel_tv_scale_mode_horiz()
1055 (mode->hdisplay - left_margin - right_margin); in intel_tv_scale_mode_horiz()
1057 mode->clock = mode->clock * new_htotal / mode->htotal; in intel_tv_scale_mode_horiz()
1059 mode->hdisplay = hdisplay; in intel_tv_scale_mode_horiz()
1060 mode->hsync_start = hdisplay + hsync_start * new_htotal / mode->htotal; in intel_tv_scale_mode_horiz()
1061 mode->hsync_end = hdisplay + hsync_end * new_htotal / mode->htotal; in intel_tv_scale_mode_horiz()
1062 mode->htotal = new_htotal; in intel_tv_scale_mode_horiz()
1069 int vsync_start = mode->vsync_start - mode->vdisplay + bottom_margin; in intel_tv_scale_mode_vert()
1070 int vsync_end = mode->vsync_end - mode->vdisplay + bottom_margin; in intel_tv_scale_mode_vert()
1071 int new_vtotal = mode->vtotal * vdisplay / in intel_tv_scale_mode_vert()
1072 (mode->vdisplay - top_margin - bottom_margin); in intel_tv_scale_mode_vert()
1074 mode->clock = mode->clock * new_vtotal / mode->vtotal; in intel_tv_scale_mode_vert()
1076 mode->vdisplay = vdisplay; in intel_tv_scale_mode_vert()
1077 mode->vsync_start = vdisplay + vsync_start * new_vtotal / mode->vtotal; in intel_tv_scale_mode_vert()
1078 mode->vsync_end = vdisplay + vsync_end * new_vtotal / mode->vtotal; in intel_tv_scale_mode_vert()
1079 mode->vtotal = new_vtotal; in intel_tv_scale_mode_vert()
1086 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_tv_get_config()
1088 &pipe_config->hw.adjusted_mode; in intel_tv_get_config()
1092 int hdisplay = adjusted_mode->crtc_hdisplay; in intel_tv_get_config()
1093 int vdisplay = adjusted_mode->crtc_vdisplay; in intel_tv_get_config()
1096 pipe_config->output_types |= BIT(INTEL_OUTPUT_TVOUT); in intel_tv_get_config()
1118 tv_mode.clock = pipe_config->port_clock; in intel_tv_get_config()
1147 drm_dbg_kms(&dev_priv->drm, "TV mode:\n"); in intel_tv_get_config()
1151 xpos, mode.hdisplay - xsize - xpos); in intel_tv_get_config()
1153 ypos, mode.vdisplay - ysize - ypos); in intel_tv_get_config()
1155 adjusted_mode->crtc_clock = mode.clock; in intel_tv_get_config()
1156 if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) in intel_tv_get_config()
1157 adjusted_mode->crtc_clock /= 2; in intel_tv_get_config()
1161 pipe_config->mode_flags |= in intel_tv_get_config()
1175 return tv_mode->crtc_vdisplay - in intel_tv_vert_scaling()
1176 conn_state->tv.margins.top - in intel_tv_vert_scaling()
1177 conn_state->tv.margins.bottom != in intel_tv_vert_scaling()
1186 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_tv_compute_config()
1191 &pipe_config->hw.adjusted_mode; in intel_tv_compute_config()
1192 int hdisplay = adjusted_mode->crtc_hdisplay; in intel_tv_compute_config()
1193 int vdisplay = adjusted_mode->crtc_vdisplay; in intel_tv_compute_config()
1196 return -EINVAL; in intel_tv_compute_config()
1198 if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) in intel_tv_compute_config()
1199 return -EINVAL; in intel_tv_compute_config()
1201 pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; in intel_tv_compute_config()
1203 drm_dbg_kms(&dev_priv->drm, "forcing bpc to 8 for TV\n"); in intel_tv_compute_config()
1204 pipe_config->pipe_bpp = 8*3; in intel_tv_compute_config()
1206 pipe_config->port_clock = tv_mode->clock; in intel_tv_compute_config()
1215 extra = adjusted_mode->crtc_vdisplay - vdisplay; in intel_tv_compute_config()
1218 drm_dbg_kms(&dev_priv->drm, in intel_tv_compute_config()
1220 return -EINVAL; in intel_tv_compute_config()
1226 top = conn_state->tv.margins.top; in intel_tv_compute_config()
1227 bottom = conn_state->tv.margins.bottom; in intel_tv_compute_config()
1233 bottom = extra - top; in intel_tv_compute_config()
1235 tv_conn_state->margins.top = top; in intel_tv_compute_config()
1236 tv_conn_state->margins.bottom = bottom; in intel_tv_compute_config()
1238 tv_conn_state->bypass_vfilter = true; in intel_tv_compute_config()
1240 if (!tv_mode->progressive) { in intel_tv_compute_config()
1241 adjusted_mode->clock /= 2; in intel_tv_compute_config()
1242 adjusted_mode->crtc_clock /= 2; in intel_tv_compute_config()
1243 adjusted_mode->flags |= DRM_MODE_FLAG_INTERLACE; in intel_tv_compute_config()
1246 tv_conn_state->margins.top = conn_state->tv.margins.top; in intel_tv_compute_config()
1247 tv_conn_state->margins.bottom = conn_state->tv.margins.bottom; in intel_tv_compute_config()
1249 tv_conn_state->bypass_vfilter = false; in intel_tv_compute_config()
1252 drm_dbg_kms(&dev_priv->drm, "TV mode:\n"); in intel_tv_compute_config()
1259 * time -> in intel_tv_compute_config()
1261 * dsl=vtotal-1 | | in intel_tv_compute_config()
1303 * flat portion of the above graph. However this would also in intel_tv_compute_config()
1310 * num = cdclk * (tv_mode->oversample >> !tv_mode->progressive); in intel_tv_compute_config()
1311 * den = tv_mode->clock; in intel_tv_compute_config()
1313 * num = tv_mode->oversample >> !tv_mode->progressive; in intel_tv_compute_config()
1321 conn_state->tv.margins.left, in intel_tv_compute_config()
1322 conn_state->tv.margins.right); in intel_tv_compute_config()
1324 tv_conn_state->margins.top, in intel_tv_compute_config()
1325 tv_conn_state->margins.bottom); in intel_tv_compute_config()
1327 adjusted_mode->name[0] = '\0'; in intel_tv_compute_config()
1331 pipe_config->mode_flags |= in intel_tv_compute_config()
1345 hctl1 = (tv_mode->hsync_end << TV_HSYNC_END_SHIFT) | in set_tv_mode_timings()
1346 (tv_mode->htotal << TV_HTOTAL_SHIFT); in set_tv_mode_timings()
1348 hctl2 = (tv_mode->hburst_start << 16) | in set_tv_mode_timings()
1349 (tv_mode->hburst_len << TV_HBURST_LEN_SHIFT); in set_tv_mode_timings()
1354 hctl3 = (tv_mode->hblank_start << TV_HBLANK_START_SHIFT) | in set_tv_mode_timings()
1355 (tv_mode->hblank_end << TV_HBLANK_END_SHIFT); in set_tv_mode_timings()
1357 vctl1 = (tv_mode->nbr_end << TV_NBR_END_SHIFT) | in set_tv_mode_timings()
1358 (tv_mode->vi_end_f1 << TV_VI_END_F1_SHIFT) | in set_tv_mode_timings()
1359 (tv_mode->vi_end_f2 << TV_VI_END_F2_SHIFT); in set_tv_mode_timings()
1361 vctl2 = (tv_mode->vsync_len << TV_VSYNC_LEN_SHIFT) | in set_tv_mode_timings()
1362 (tv_mode->vsync_start_f1 << TV_VSYNC_START_F1_SHIFT) | in set_tv_mode_timings()
1363 (tv_mode->vsync_start_f2 << TV_VSYNC_START_F2_SHIFT); in set_tv_mode_timings()
1365 vctl3 = (tv_mode->veq_len << TV_VEQ_LEN_SHIFT) | in set_tv_mode_timings()
1366 (tv_mode->veq_start_f1 << TV_VEQ_START_F1_SHIFT) | in set_tv_mode_timings()
1367 (tv_mode->veq_start_f2 << TV_VEQ_START_F2_SHIFT); in set_tv_mode_timings()
1369 if (tv_mode->veq_ena) in set_tv_mode_timings()
1372 vctl4 = (tv_mode->vburst_start_f1 << TV_VBURST_START_F1_SHIFT) | in set_tv_mode_timings()
1373 (tv_mode->vburst_end_f1 << TV_VBURST_END_F1_SHIFT); in set_tv_mode_timings()
1375 vctl5 = (tv_mode->vburst_start_f2 << TV_VBURST_START_F2_SHIFT) | in set_tv_mode_timings()
1376 (tv_mode->vburst_end_f2 << TV_VBURST_END_F2_SHIFT); in set_tv_mode_timings()
1378 vctl6 = (tv_mode->vburst_start_f3 << TV_VBURST_START_F3_SHIFT) | in set_tv_mode_timings()
1379 (tv_mode->vburst_end_f3 << TV_VBURST_END_F3_SHIFT); in set_tv_mode_timings()
1381 vctl7 = (tv_mode->vburst_start_f4 << TV_VBURST_START_F4_SHIFT) | in set_tv_mode_timings()
1382 (tv_mode->vburst_end_f4 << TV_VBURST_END_F4_SHIFT); in set_tv_mode_timings()
1403 (color_conversion->ry << 16) | color_conversion->gy); in set_color_conversion()
1405 (color_conversion->by << 16) | color_conversion->ay); in set_color_conversion()
1407 (color_conversion->ru << 16) | color_conversion->gu); in set_color_conversion()
1409 (color_conversion->bu << 16) | color_conversion->au); in set_color_conversion()
1411 (color_conversion->rv << 16) | color_conversion->gv); in set_color_conversion()
1413 (color_conversion->bv << 16) | color_conversion->av); in set_color_conversion()
1421 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_tv_pre_enable()
1422 struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc); in intel_tv_pre_enable()
1442 switch (intel_tv->type) { in intel_tv_pre_enable()
1447 video_levels = tv_mode->composite_levels; in intel_tv_pre_enable()
1448 color_conversion = tv_mode->composite_color; in intel_tv_pre_enable()
1449 burst_ena = tv_mode->burst_ena; in intel_tv_pre_enable()
1454 if (tv_mode->burst_ena) in intel_tv_pre_enable()
1462 video_levels = tv_mode->svideo_levels; in intel_tv_pre_enable()
1463 color_conversion = tv_mode->svideo_color; in intel_tv_pre_enable()
1464 burst_ena = tv_mode->burst_ena; in intel_tv_pre_enable()
1468 tv_ctl |= TV_ENC_PIPE_SEL(intel_crtc->pipe); in intel_tv_pre_enable()
1470 switch (tv_mode->oversample) { in intel_tv_pre_enable()
1485 if (tv_mode->progressive) in intel_tv_pre_enable()
1487 if (tv_mode->trilevel_sync) in intel_tv_pre_enable()
1489 if (tv_mode->pal_burst) in intel_tv_pre_enable()
1493 if (tv_mode->dda1_inc) in intel_tv_pre_enable()
1495 if (tv_mode->dda2_inc) in intel_tv_pre_enable()
1497 if (tv_mode->dda3_inc) in intel_tv_pre_enable()
1499 scctl1 |= tv_mode->sc_reset; in intel_tv_pre_enable()
1501 scctl1 |= video_levels->burst << TV_BURST_LEVEL_SHIFT; in intel_tv_pre_enable()
1502 scctl1 |= tv_mode->dda1_inc << TV_SCDDA1_INC_SHIFT; in intel_tv_pre_enable()
1504 scctl2 = tv_mode->dda2_size << TV_SCDDA2_SIZE_SHIFT | in intel_tv_pre_enable()
1505 tv_mode->dda2_inc << TV_SCDDA2_INC_SHIFT; in intel_tv_pre_enable()
1507 scctl3 = tv_mode->dda3_size << TV_SCDDA3_SIZE_SHIFT | in intel_tv_pre_enable()
1508 tv_mode->dda3_inc << TV_SCDDA3_INC_SHIFT; in intel_tv_pre_enable()
1529 … ((video_levels->black << TV_BLACK_LEVEL_SHIFT) | (video_levels->blank << TV_BLANK_LEVEL_SHIFT))); in intel_tv_pre_enable()
1531 assert_pipe_disabled(dev_priv, pipe_config->cpu_transcoder); in intel_tv_pre_enable()
1535 if (tv_conn_state->bypass_vfilter) in intel_tv_pre_enable()
1539 xsize = tv_mode->hblank_start - tv_mode->hblank_end; in intel_tv_pre_enable()
1542 xpos = conn_state->tv.margins.left; in intel_tv_pre_enable()
1543 ypos = tv_conn_state->margins.top; in intel_tv_pre_enable()
1544 xsize -= (conn_state->tv.margins.left + in intel_tv_pre_enable()
1545 conn_state->tv.margins.right); in intel_tv_pre_enable()
1546 ysize -= (tv_conn_state->margins.top + in intel_tv_pre_enable()
1547 tv_conn_state->margins.bottom); in intel_tv_pre_enable()
1554 tv_mode->filter_table[j++]); in intel_tv_pre_enable()
1557 tv_mode->filter_table[j++]); in intel_tv_pre_enable()
1560 tv_mode->filter_table[j++]); in intel_tv_pre_enable()
1563 tv_mode->filter_table[j++]); in intel_tv_pre_enable()
1573 struct drm_crtc *crtc = connector->state->crtc; in intel_tv_detect_type()
1575 struct drm_device *dev = connector->dev; in intel_tv_detect_type()
1582 if (connector->polled & DRM_CONNECTOR_POLL_HPD) { in intel_tv_detect_type()
1583 spin_lock_irq(&dev_priv->irq_lock); in intel_tv_detect_type()
1587 spin_unlock_irq(&dev_priv->irq_lock); in intel_tv_detect_type()
1596 tv_ctl |= TV_ENC_PIPE_SEL(intel_crtc->pipe); in intel_tv_detect_type()
1621 intel_wait_for_vblank(dev_priv, intel_crtc->pipe); in intel_tv_detect_type()
1623 type = -1; in intel_tv_detect_type()
1625 drm_dbg_kms(&dev_priv->drm, "TV detected: %x, %x\n", tv_ctl, tv_dac); in intel_tv_detect_type()
1633 drm_dbg_kms(&dev_priv->drm, in intel_tv_detect_type()
1637 drm_dbg_kms(&dev_priv->drm, in intel_tv_detect_type()
1638 "Detected S-Video TV connection\n"); in intel_tv_detect_type()
1641 drm_dbg_kms(&dev_priv->drm, in intel_tv_detect_type()
1645 drm_dbg_kms(&dev_priv->drm, "Unrecognised TV connection\n"); in intel_tv_detect_type()
1646 type = -1; in intel_tv_detect_type()
1654 intel_wait_for_vblank(dev_priv, intel_crtc->pipe); in intel_tv_detect_type()
1657 if (connector->polled & DRM_CONNECTOR_POLL_HPD) { in intel_tv_detect_type()
1658 spin_lock_irq(&dev_priv->irq_lock); in intel_tv_detect_type()
1662 spin_unlock_irq(&dev_priv->irq_lock); in intel_tv_detect_type()
1675 const struct tv_mode *tv_mode = intel_tv_mode_find(connector->state); in intel_tv_find_better_format()
1679 if (intel_tv->type == DRM_MODE_CONNECTOR_Component) in intel_tv_find_better_format()
1683 if (!tv_mode->component_only) in intel_tv_find_better_format()
1689 if (!tv_mode->component_only) in intel_tv_find_better_format()
1693 connector->state->tv.mode = i; in intel_tv_find_better_format()
1701 struct drm_i915_private *i915 = to_i915(connector->dev); in intel_tv_detect()
1706 drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] force=%d\n", in intel_tv_detect()
1707 connector->base.id, connector->name, force); in intel_tv_detect()
1730 intel_tv->type = type; in intel_tv_detect()
1736 return connector->status; in intel_tv_detect()
1762 return vdisplay == mode->vdisplay; in intel_tv_is_preferred_mode()
1769 mode->type = DRM_MODE_TYPE_DRIVER; in intel_tv_set_mode_type()
1772 mode->type |= DRM_MODE_TYPE_PREFERRED; in intel_tv_set_mode_type()
1778 struct drm_i915_private *dev_priv = to_i915(connector->dev); in intel_tv_get_modes()
1779 const struct tv_mode *tv_mode = intel_tv_mode_find(connector->state); in intel_tv_get_modes()
1786 if (input->w > 1024 && in intel_tv_get_modes()
1787 !tv_mode->progressive && in intel_tv_get_modes()
1788 !tv_mode->component_only) in intel_tv_get_modes()
1792 if (IS_GEN(dev_priv, 3) && input->w > 1024 && in intel_tv_get_modes()
1793 input->h > intel_tv_mode_vdisplay(tv_mode)) in intel_tv_get_modes()
1796 mode = drm_mode_create(connector->dev); in intel_tv_get_modes()
1809 drm_dbg_kms(&dev_priv->drm, "TV mode:\n"); in intel_tv_get_modes()
1812 intel_tv_scale_mode_horiz(mode, input->w, 0, 0); in intel_tv_get_modes()
1813 intel_tv_scale_mode_vert(mode, input->h, 0, 0); in intel_tv_get_modes()
1842 if (!new_state->crtc) in intel_tv_atomic_check()
1846 new_crtc_state = drm_atomic_get_new_crtc_state(state, new_state->crtc); in intel_tv_atomic_check()
1848 if (old_state->tv.mode != new_state->tv.mode || in intel_tv_atomic_check()
1849 old_state->tv.margins.left != new_state->tv.margins.left || in intel_tv_atomic_check()
1850 old_state->tv.margins.right != new_state->tv.margins.right || in intel_tv_atomic_check()
1851 old_state->tv.margins.top != new_state->tv.margins.top || in intel_tv_atomic_check()
1852 old_state->tv.margins.bottom != new_state->tv.margins.bottom) { in intel_tv_atomic_check()
1855 new_crtc_state->connectors_changed = true; in intel_tv_atomic_check()
1875 struct drm_device *dev = &dev_priv->drm; in intel_tv_init()
1889 drm_dbg_kms(&dev_priv->drm, "Integrated TV is not present.\n"); in intel_tv_init()
1927 intel_encoder = &intel_tv->base; in intel_tv_init()
1928 connector = &intel_connector->base; in intel_tv_init()
1929 state = connector->state; in intel_tv_init()
1939 * More recent chipsets favour HDMI rather than integrated S-Video. in intel_tv_init()
1941 intel_connector->polled = DRM_CONNECTOR_POLL_CONNECT; in intel_tv_init()
1946 drm_encoder_init(dev, &intel_encoder->base, &intel_tv_enc_funcs, in intel_tv_init()
1949 intel_encoder->compute_config = intel_tv_compute_config; in intel_tv_init()
1950 intel_encoder->get_config = intel_tv_get_config; in intel_tv_init()
1951 intel_encoder->pre_enable = intel_tv_pre_enable; in intel_tv_init()
1952 intel_encoder->enable = intel_enable_tv; in intel_tv_init()
1953 intel_encoder->disable = intel_disable_tv; in intel_tv_init()
1954 intel_encoder->get_hw_state = intel_tv_get_hw_state; in intel_tv_init()
1955 intel_connector->get_hw_state = intel_connector_get_hw_state; in intel_tv_init()
1959 intel_encoder->type = INTEL_OUTPUT_TVOUT; in intel_tv_init()
1960 intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER; in intel_tv_init()
1961 intel_encoder->port = PORT_NONE; in intel_tv_init()
1962 intel_encoder->pipe_mask = ~0; in intel_tv_init()
1963 intel_encoder->cloneable = 0; in intel_tv_init()
1964 intel_tv->type = DRM_MODE_CONNECTOR_Unknown; in intel_tv_init()
1967 state->tv.margins.left = 54; in intel_tv_init()
1968 state->tv.margins.top = 36; in intel_tv_init()
1969 state->tv.margins.right = 46; in intel_tv_init()
1970 state->tv.margins.bottom = 37; in intel_tv_init()
1972 state->tv.mode = initial_mode; in intel_tv_init()
1975 connector->interlace_allowed = false; in intel_tv_init()
1976 connector->doublescan_allowed = false; in intel_tv_init()
1989 drm_object_attach_property(&connector->base, dev->mode_config.tv_mode_property, in intel_tv_init()
1990 state->tv.mode); in intel_tv_init()
1991 drm_object_attach_property(&connector->base, in intel_tv_init()
1992 dev->mode_config.tv_left_margin_property, in intel_tv_init()
1993 state->tv.margins.left); in intel_tv_init()
1994 drm_object_attach_property(&connector->base, in intel_tv_init()
1995 dev->mode_config.tv_top_margin_property, in intel_tv_init()
1996 state->tv.margins.top); in intel_tv_init()
1997 drm_object_attach_property(&connector->base, in intel_tv_init()
1998 dev->mode_config.tv_right_margin_property, in intel_tv_init()
1999 state->tv.margins.right); in intel_tv_init()
2000 drm_object_attach_property(&connector->base, in intel_tv_init()
2001 dev->mode_config.tv_bottom_margin_property, in intel_tv_init()
2002 state->tv.margins.bottom); in intel_tv_init()